La criticidad de los actuales sistemas de información en diferentes dominios de la sociedad determina que, si bien es importante asegurar que el software se desarrolla de acuerdo a las necesidades del usuario (requerimientos funcionales), también lo es garantizar que el mismo sea seguro. Hasta hace poco tiempo la Ingeniería de Software y la Ingeniería de Seguridad venían desarrollándose de forma independiente, limitando la posibilidad de que la seguridad sea considerada como parte del proceso de desarrollo de sistemas de software seguros.

Si no se dispone de una definición precisa de lo que significa seguridad y cómo debe comportarse un software, no tiene sentido alguno preguntarse si el mismo es seguro o no. Es necesario revisar la terminología y definir un conjunto de conceptos de manera más rigurosa, considerar y comparar diferentes metodologías de tratamiento de la seguridad pasibles de ser articuladas con las metodologías para el proceso del ciclo de vida del desarrollo de software ya existentes, y considerar los modelos de madurez y aseguramiento de calidad.

sistemasseguridad

La  seguridad  de  software  aplica  los  principios  de  la  seguridad  de  información  al  desarrollo  de  software. Information security (La seguridad de información) se refiere a la seguridad de información comúnmente como  la  protección  de  sistemas  de  información  contra  el  acceso  desautorizado  o  la  modificación  de información, si está en una fase de almacenamiento, procesamiento o tránsito.

También la protege contra la negación  de  servicios  a  usuarios  desautorizados  y  la  provisión  de  servicio  a  usuarios  desautorizados, incluyendo las medidas necesarias para detectar, documentar, y contrariar tales amenazas.

Muchas preguntas con respecto a la seguridad, son relacionadas al ciclo vital de software. En particular, la  seguridad del código y el proceso de software; deben de ser considerados durante  la  fase del diseño y  desarrollo. Además,  la  seguridad  debe  de  ser  preservada  durante  la  operación  y  el mantenimiento  para  asegurar la integridad de una parte (pedazo) de software.