¿Qué debería saber todo programador sobre seguridad? [cerrado]

Resuelto Mohamad Alhamoud asked hace 14 años • 17 respuestas

Soy estudiante de informática y ahora estoy en el tercer año de la universidad. Hasta ahora hemos estado estudiando muchas materias relacionadas con la informática en general (programación, algoritmos, arquitectura de ordenadores, matemáticas, etc).

Estoy muy seguro de que nadie puede aprender todo sobre seguridad, pero estoy seguro de que hay un conocimiento "mínimo" que todo programador o estudiante de TI debería saber al respecto y mi pregunta es ¿cuál es este conocimiento mínimo?

¿Puedes sugerir algunos libros electrónicos o cursos o algo que pueda ayudar a comenzar en este camino?

Mohamad Alhamoud avatar May 08 '10 19:05 Mohamad Alhamoud
Aceptado

Principios a tener en cuenta si quieres que tus aplicaciones sean seguras:

  • ¡Nunca confíes en ninguna entrada!
  • Valide las entradas de todas las fuentes que no sean de confianza: utilice listas blancas, no listas negras
  • Planifique la seguridad desde el principio: no es algo que pueda implementar al final
  • Manténgalo simple: la complejidad aumenta la probabilidad de que se produzcan agujeros de seguridad
  • Mantenga su superficie de ataque al mínimo
  • Asegúrate de fallar de forma segura
  • Usa la defensa en profundidad
  • Adherirse al principio de privilegio mínimo
  • Utilice modelos de amenazas
  • Compartimente : para que su sistema no sea todo o nada
  • Ocultar secretos es difícil, y los secretos ocultos en el código no permanecerán secretos por mucho tiempo.
  • No escribas tu propia criptografía
  • Usar criptomonedas no significa que estés seguro (los atacantes buscarán un eslabón más débil)
  • Tenga en cuenta los desbordamientos del búfer y cómo protegerse contra ellos

Hay algunos libros y artículos excelentes en línea sobre cómo hacer que sus aplicaciones sean seguras:

  • Escritura de código seguro, segunda edición : creo que todo programador debería leer esto
  • Creación de software seguro: cómo evitar problemas de seguridad de la manera correcta
  • Libro de recetas de programación segura
  • Explotación de software
  • Ingeniería de seguridad : una lectura excelente
  • Programación segura para Linux y Unix CÓMO

Capacite a sus desarrolladores sobre las mejores prácticas de seguridad de aplicaciones

Codebashing (pago)

Innovación en seguridad (pago)

Brújula de seguridad (pago)

OWASP WebGoat (gratis)

bignum avatar May 08 '2010 12:05 bignum

Regla número 1 de seguridad para programadores: no hagas la tuya propia

A menos que sea un experto en seguridad y/o un criptógrafo, utilice siempre una plataforma, marco o biblioteca de seguridad maduro, bien diseñado y probado para que haga el trabajo por usted. Estas cosas han pasado años siendo pensadas, parcheadas, actualizadas y examinadas tanto por expertos como por piratas informáticos. Quiere obtener esas ventajas, no descartarlas intentando reinventar la rueda.

Ahora bien, eso no quiere decir que no necesites aprender nada sobre seguridad. Sin duda, necesita saber lo suficiente para comprender lo que está haciendo y asegurarse de que está utilizando las herramientas correctamente. Sin embargo, si alguna vez se encuentra a punto de comenzar a escribir su propio algoritmo de criptografía, sistema de autenticación, desinfectante de entrada, etc., deténgase, dé un paso atrás y recuerde la regla número 1.

 avatar May 08 '2010 12:05

Todo programador debería saber cómo escribir código de explotación.

Sin saber cómo se explotan los sistemas, estás deteniendo accidentalmente las vulnerabilidades. Saber cómo parchear el código no tiene ningún sentido a menos que sepa cómo probar los parches. La seguridad no es sólo un montón de experimentos mentales, debes ser científico y probar tus experimentos.

rook avatar May 08 '2010 17:05 rook

La seguridad es un proceso, no un producto.

Muchos parecen olvidarse de este hecho obvio.

 avatar May 10 '2010 11:05