¿Es necesario aprender programación para convertirse en un hacker de sombrero blanco? ¿Debo tener un excelente dominio sobre mis habilidades de codificación?

Sí, no necesita tener habilidades de codificación de primer nivel como alguien que codifica para ganarse la vida, pero necesita conocer la programación por varias razones.

En primer lugar, para comprender un sistema, un programador buscaría el código y lo leería en algunas noches con mucho café, pero en el mundo de los piratas informáticos, la mayoría de las veces no tienes acceso al código, es completamente privado y, en estos casos, debe inferir cómo funciona el sistema analizando las pistas proporcionadas por el sistema.
Encontrar pistas sin conocimientos de programación es muy difícil, ya que ni siquiera sabría dónde buscar o si una pista es realmente una pista.

Tener habilidades de programación también ayuda tanto en la investigación como en la ejecución.
Imagine que tiene un servicio web que recibe un parámetro y devuelve una respuesta JSON. Intenta con algunas combinaciones pero siempre recibe una solicitud incorrecta. ¿Probarías todas tus combinaciones posibles a mano o codificarías algo que te sirva?
Por supuesto, somos flojos, por lo que, además de conocer la programación, necesita conocer sus herramientas, no querrá codificar algo que ya existe a menos que esté aprendiendo programación.

En mi opinión, la seguridad de la información es, junto con la inteligencia artificial, una de las áreas más complejas para desarrollar, ya que la amplia gama de posibilidades es enorme, por lo que saber que la programación no es suficiente, también necesita experiencia en el área en la que se centrará . El conocimiento requerido para hackear un sitio web y para hackear una aplicación de escritorio es extremadamente diferente, a pesar de que el proceso de hackeo es conceptualmente similar.

Además del conocimiento requerido para un área específica de piratería, también necesita una gran cantidad de conocimiento general sobre redes, sistemas operativos y la IMHO más importante, historia y por historia me refiero a saber cómo evolucionó la seguridad a lo largo de los años para impulsar su creatividad e imaginación al buscar agujeros. La mayoría de las veces, conocer las buenas técnicas y las tendencias actuales ayuda más que nada, pero cuando eso no es suficiente, necesita improvisar y ahí es donde más brilla el conocimiento técnico e histórico.

Diría que 9 de cada 10 de las 10 principales amenazas de OWASP son difíciles de entender sin el conocimiento de las cosas que he mencionado, y mucho menos posible explotarlas.

Sí, esta publicación bosqueja los elementos esenciales de la programación web, las secuencias de comandos y el desarrollo antes de dividirlos en una prueba de penetración de aplicaciones web. Es un aspecto importante comprender los conceptos básicos del desarrollo web porque ayuda a ayudar al probador de penetración con la perspectiva de un desarrollador. Si sabe cómo se creó una aplicación, con qué herramienta y por qué se creó, el paso de ‘enumeración’ se vuelve mucho más fácil para cualquier probador de penetración de aplicaciones web. Todavía no habíamos hablado sobre la fase de enumeración y ciertas otras fases, lo haremos antes cuando terminemos con algunos requisitos básicos para comprenderlos en profundidad. El alcance de este documento es bastante simple y amplio. Es comenzar a desarrollar y saber qué diversas funciones y conjunto de herramientas tendría un desarrollador al crear una aplicación web. Cómo se desplegaron es el siguiente paso. El marco que usarían para implementar está completamente en el lado de los desarrolladores. A veces, esta implementación pasa por una generación de código diferente y, por lo tanto, los vectores de explotación varían. Si observa las formas generales de los vectores de ataque web, seguramente sabrá que están limitadas a un cierto rango de tecnologías web. Un ejemplo podría ser que PHP es vulnerable a las inyecciones de SQL, los JavaScripts son vulnerables a los ataques de scripts de sitios cruzados, etc.… y más. Ruby on Rails, que es la arena más nueva y HTML5, rara vez se discuten y, por lo tanto, las vulnerabilidades se han experimentado en circunstancias excepcionales o se limitan a los probadores de penetración originales que lo hacen. ¿Cómo hacen lo que hacen? Es bastante simple nuevamente, uno tiene que estudiar la perspectiva del desarrollador para romper una aplicación. La aplicación podría construirse utilizando diferentes tecnologías web, pero la lógica web sigue siendo la misma. La mayor probabilidad de cualquier vulnerabilidad no sería el lenguaje, siempre sería la lógica de código utilizada. Pero la lógica del código sigue algunas semánticas y sintaxis que, si no se estudian, podrían ser un problema importante. Cuanta más semántica conozcamos, más fácil será para nosotros detectar vulnerabilidades de aplicaciones web que afecten a cierta tecnología web utilizada.

No vas a ser un hacker muy efectivo (ya sea sombrero blanco o negro) sin algunas habilidades de codificación. Simplemente ejecutar scripts de exploits que otras personas han desarrollado no va a llegar muy lejos.

Todo depende de dónde quieres ir. El dominio de las habilidades de codificación lleva tiempo. Pero sí, puede comenzar junto con el pirateo ético. Para comenzar, solo necesita conocimientos suficientes para comprender la función de la Aplicación.

Más habilidades son siempre mejores que menos.