Soy un estudiante de TI y ahora estoy en el tercer año en la universidad. Hasta ahora hemos estado estudiando muchos temas relacionados con las computadoras en general (programación, algoritmos, arquitectura de computadoras, matemáticas, etc.).
Estoy muy seguro de que nadie puede aprender todo acerca de la seguridad, pero estoy seguro de que hay un conocimiento "mínimo" que todo programador o estudiante de TI debe saber y mi pregunta es ¿cuál es este conocimiento mínimo?
¿Puedes sugerir algunos libros electrónicos o cursos o cualquier cosa que pueda ayudar a comenzar con este camino?
Respuestas:
Principios a tener en cuenta si desea que sus aplicaciones sean seguras:
Hay algunos libros y artículos excelentes en línea sobre cómo hacer que sus aplicaciones sean seguras:
Entrene a sus desarrolladores en las mejores prácticas de seguridad de aplicaciones
Codebashing (pagado)
Innovación de seguridad (pago)
Brújula de seguridad (de pago)
OWASP WebGoat (gratis)
fuente
Regla n. ° 1 de seguridad para programadores: no lance su propia
A menos que usted sea un experto en seguridad y / o criptógrafo, use siempre una plataforma, marco o biblioteca de seguridad bien diseñada, bien probada y madura para hacer el trabajo por usted. Estas cosas han pasado años siendo pensadas, parcheadas, actualizadas y examinadas por expertos y hackers por igual. Desea obtener esas ventajas, no descartarlas tratando de reinventar la rueda.
Ahora, eso no quiere decir que no necesite aprender nada sobre seguridad. Ciertamente necesita saber lo suficiente para comprender lo que está haciendo y asegurarse de estar usando 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 # 1.
fuente
Todo programador debe saber cómo escribir código de explotación.
Sin saber cómo se explotan los sistemas, está deteniendo accidentalmente vulnerabilidades. Saber cómo parchear el código no tiene ningún sentido a menos que sepa cómo probar sus parches. La seguridad no es solo un montón de experimentos mentales, debes ser científico y probar tus experimentos.
fuente
La seguridad es un proceso, no un producto.
Muchos parecen olvidarse de este hecho obvio.
fuente
Sugiero revisar CWE / SANS TOP 25 errores de programación más peligrosos . Fue actualizado para 2010 con la promesa de actualizaciones periódicas en el futuro. La revisión de 2009 también está disponible.
De http://cwe.mitre.org/top25/index.html
fuente
Un buen curso de iniciación podría ser el curso MIT en Redes y seguridad informática . Una cosa que sugeriría es no olvidarse de la privacidad. La privacidad, en algunos sentidos, es realmente fundamental para la seguridad y a menudo no se cubre en cursos técnicos sobre seguridad. Puede encontrar material sobre privacidad en este curso sobre Ética y Derecho en relación con Internet.
fuente
El equipo de Web Security en Mozilla compiló una gran guía , que cumplimos en el desarrollo de nuestros sitios y servicios.
fuente
La importancia de los valores predeterminados seguros en marcos y API:
fuente
Debes saber sobre las tres A's. Autenticación, Autorización, Auditoría. El error clásico es autenticar a un usuario, sin verificar si el usuario está autorizado para realizar alguna acción, por lo que un usuario puede mirar las fotos privadas de otros usuarios, el error que cometió la Diáspora. Muchas, muchas más personas se olvidan de Auditoría, usted necesita, en un sistema seguro, poder saber quién hizo qué y cuándo.
fuente
fuente
Yo agregaría lo siguiente:
Comprenda cómo funcionan los diferentes vectores de ataque:
Puedes buscar fácilmente en Google todo esto. Esto te dará una buena base. Si desea ver las vulnerabilidades de las aplicaciones web, hay un proyecto llamado google gruyere que le muestra cómo explotar una aplicación web que funcione.
fuente
cuando está creando una empresa o cualquiera de sus propios softwares, debería pensar como un hacker. Como sabemos, los hackers tampoco son expertos en todas las cosas, pero cuando encuentran alguna vulnerabilidad, comienzan a buscar información sobre todo las cosas y finalmente atacar nuestro software. para prevenir tales ataques debemos seguir algunas reglas bien conocidas como:
Puede encontrar más recursos de seguridad en los siguientes enlaces:
para obtener más información en google sobre los flujos de seguridad de su proveedor de aplicaciones.
fuente
fuente
Para obtener información general sobre seguridad, recomiendo leer a Bruce Schneier . Tiene un sitio web, su boletín de criptogramas , varios libros y ha realizado muchas entrevistas .
También me familiarizaría con la ingeniería social (y Kevin Mitnick ).
Para un buen libro (y bastante entretenido) sobre cómo se desarrolla la seguridad en el mundo real, recomendaría el excelente (aunque un poco anticuado) 'The Cuckoo's Egg' de Cliff Stoll.
fuente
También asegúrese de consultar la Lista de los 10 principales de OWASP para obtener una clasificación de todos los principales vectores de ataque / vulnerabilidades.
Es fascinante leer sobre estas cosas. Aprender a pensar como un atacante te entrenará sobre qué pensar mientras escribes tu propio código.
fuente
Saca y pica las contraseñas de tus usuarios. Nunca los guarde en texto sin formato en su base de datos.
fuente
Solo quería compartir esto para los desarrolladores web:
guía de seguridad para desarrolladores
https://github.com/FallibleInc/security-guide-for-developers
fuente