Aprende a romper sistemas. Sin embargo, esto es mucho más fácil decirlo que hacerlo: para romper algo, debes comprenderlo mejor que su (s) autor (es) y poder verlo en todos los niveles de abstracción simultáneamente para que puedas atravesar las abstracciones cuando sea necesario. El último bit a menudo obtiene buenos resultados exactamente porque los niveles de abstracción se crean para que las personas puedan trabajar de forma aislada del resto del sistema, más o menos por definición no ven el panorama general.
Por ejemplo, el intérprete de JavaScript en los navegadores es solo un poco de C ++: puede usarlo para preparar el montón y desencadenar un error, por lo que el navegador ejecuta su código x86 incrustado en una cadena JS, pero la gente de seguridad de JS no ve un problema con simplemente concatenando algunas cadenas (después de todo, no está accediendo a información a través de dominios ni nada), y la gente de C ++ solo ve un error de Uso después de que es poco probable que sea explotable, ya que requiere un estado y memoria de programa muy específicos diseño.
Una vez que aprenda a descifrar el código, escribir código seguro no debería ser tan difícil (excepto que siempre hay alguien con más imaginación que usted, por lo que es imposible hacerlo realmente seguro).
- ¿Cuáles son algunos de los posibles ataques que pueden llevarse a cabo en un sitio HTTP (sin SSL)?
- ¿Es realmente imposible encontrar un proveedor de correo electrónico lo suficientemente seguro contra hackers, phishers y agencias gubernamentales?
- ¿Qué sabes sobre la nueva versión de CryptXXX v.3 llamada UltraCrypter?
- ¿Por qué es importante la seguridad de la red?
- ¿Cómo protege su privacidad en línea?