Definitivamente deberías aprender métodos formales. Estas son las principales herramientas utilizadas en la ingeniería de software para demostrar que el código del programa se comporta bien, es lógicamente sólido y cumple con las especificaciones. Esto no prueba, en sí mismo, la corrección o la seguridad. Lo que demuestra es que las fuentes comunes de incorrección e inseguridad están ausentes. Si la especificación también se demuestra segura, entonces, implícitamente, la fuente del software * debe serlo.
* Los archivos binarios requieren que pruebe bibliotecas de soporte, el compilador, el sistema operativo y todos los componentes impulsados por la lógica, como la CPU.
Debe conocer el protocolo forense. Este es un campo utilizado por los atacantes, debe saber qué información expone y si eso representa un riesgo de seguridad o una violación de los requisitos.
- ¿Cómo es un día en la vida de un ingeniero de software?
- ¿Una carrera en SIG es una buena opción?
- ¿Qué tipo de proyectos puedo construir como principiante que me ayudarán a ingresar a prestigiosas universidades para la ingeniería?
- ¿Ser un representante médico es un buen trabajo en una empresa de marca?
- Tengo 35 años. ¿Soy demasiado viejo para unirme a Google, Facebook, Microsoft o Apple como ingeniero de software?
Debe conocer al menos una metodología de codificación segura. Desafortunadamente, no puedo aconsejar ya que nadie me recomendó ninguno. Solo puedo decir que el Wiki CERT es un buen punto de partida.