No estoy seguro de que exista una buena definición que pueda simplemente "citar".
Por ejemplo, ¿qué significa "TCP / IP"? Bueno, significa "protocolo de control de transmisión / protocolo de internet". Eso es completamente correcto, pero al mismo tiempo, completamente inútil. Si no sabía qué era TCP / IP para empezar, expandir el acrónimo no lo ayudará.
Una definición útil es la siguiente: Los hackers explotan ciertos tipos de errores en el software para ingresar en la computadora; La seguridad del software es la ciencia de deshacerse de esos errores.
Por ejemplo, una vulnerabilidad de los piratas informáticos es el "desbordamiento de búfer". Ocurren porque se reserva una cierta cantidad de memoria para guardar algo, pero los hackers proporcionan más de lo que el programador esperaba. Por ejemplo, en una base de datos que contiene el nombre de usuario, el programador puede asumir que nadie tendrá un nombre con más de 1000 letras. Es cierto, no lo harán, pero eso no impedirá que los piratas informáticos intenten ingresar nombres falsos durante tanto tiempo y, cuando lo hacen, los búferes se desbordan, los piratas informáticos sobrescriben otras partes de la memoria y toman el control del sistema.
Sabemos por qué los desbordamientos de búfer son tan comunes. Tome el lenguaje C / C ++, por ejemplo. En la década de 1970, se desarrolló con frecuencia el código reutilizado como "strcpy ()" y "sprint ()" que copia los buffers en la memoria sin verificar la longitud. Por lo tanto, los piratas informáticos simplemente buscan software para los usos de estos fragmentos de código y encuentran estos errores. La seguridad del software hace esto antes que el hacker, encontrando todos los usos de "strcpy ()" y eliminándolos.