Por lo tanto, desea convertirse en un analista en el campo de la seguridad de la red ...

La traducción del artículo fue preparada especialmente para estudiantes del Pentest. Práctica de prueba de penetración " .




¿Está interesado en desarrollar métodos de piratería y desea compartir sus hallazgos con la comunidad de seguridad de la información? En este artículo, daré algunas recomendaciones a aquellos que quieran convertirse en analistas en el campo de la seguridad web, y hablaré sobre las oportunidades y las dificultades que una vez encontró en su camino.

¿Quién es un analista de seguridad de red?


Los analistas de seguridad de redes son personas que van más allá del uso de técnicas de piratería conocidas como SQLi y XSS y encuentran nuevas amenazas para los sitios web. Estas pueden ser soluciones innovadoras que complican los métodos existentes, como el enfoque para explotar vulnerabilidades XXE locales + ciegas , o clases de amenazas completamente nuevas, como el engaño de caché web (envenenamiento de caché de aplicaciones web).

Es muy difícil proteger los sitios web de métodos de ataque desconocidos, por lo que a menudo se pueden usar para operar una gran cantidad de otros sitios web seguros. Esto significa que publicar sus descubrimientos en esta área puede ayudar a los sitios web a eliminar vulnerabilidades, aumentando así el nivel general de seguridad para todo el ecosistema.

Rompiendo por la vida


La mayor parte de la investigación implica el uso de métodos existentes, que han avanzado un poco, por lo que, para empezar, sería bueno familiarizarse con el estado actual de las cosas. La forma más rápida de hacer esto es encontrar un trabajo en el que utilizará las técnicas de piratería durante la mayor parte de su tiempo. Muchas personas buenas ya han dado consejos sobre cómo ingresar a la industria de seguridad de la información, así que aquí voy a ser breve.

Recomiendo un enfoque orientado a la práctica, comenzando desde nuestra Academia de Seguridad de Red , pasando a tareas más abiertas, como en mi hackxor.net , para avanzar primero a través de tareas simples con una pequeña recompensa por los esfuerzos en HackerOne y BugCrowd , y luego finalmente Cambie a programas de vulnerabilidad genéricos bien probados, generosos y bien pagados. Después de encontrar y analizar varias vulnerabilidades, convertirse en un consultor de seguridad de la información y realizar piratería en nuevos sitios y aplicaciones web todos los días debería ser fácil.

Hay muchos recursos gratuitos en línea que le servirán en el camino, incluida nuestra metodología Burp , HackerOne Hacker 101 y la guía de pruebas OWASP . Para libros, recomendaría leer el Manual del hacker de la aplicación web y The Tangled Web . La Network Security Academy anterior está destinada a ser utilizada de manera interactiva como un reemplazo para el Manual del Hacker de WebApp, pero nos tomará un tiempo cubrir todos los temas necesarios, por lo que por ahora recomendaría usar ambas fuentes.

Ir más allá de los métodos conocidos.


Tan pronto como comience a trabajar y participe en la piratería durante toda su jornada laboral, comprenderá el nivel de carga de trabajo, después de un tiempo su experiencia será extensa y los nuevos conocimientos serán difíciles. En esta etapa, el paso más importante es no permitirse descansar en nuestros laureles y continuar aprendiendo y practicando. Solo así te convertirás en un verdadero especialista.

La caza del conocimiento olvidado.


Todos entienden que necesita mantenerse al día con los nuevos desarrollos y monitorear a los expertos de la industria , los agregadores de noticias y asistir a conferencias de seguridad. Sin embargo, seguir desarrollos exclusivamente nuevos significa no darse cuenta del valioso conocimiento e investigación que se realizó hace mucho tiempo y se olvidó.

Cada vez que encuentre un buen artículo de blog, no escatime a tiempo, lea todo el archivo. Piezas de información invaluables y olvidadas a menudo se esconden allí. Por ejemplo, tome este artículo de RSnake sobre el enlace de DNS, escrito en 2009. Volver a vincular DNS omite los controles de acceso basados ​​en IP / basados ​​en firewall en sitios web, y la única forma efectiva de evitarlo es incluir en la lista blanca su aplicación en el encabezado HTTP del host. La gente rápidamente decidió que los navegadores podían manejar esto, y nueve años después, con una nueva serie de exploits, quedó claro que esta vulnerabilidad se reutilizó.

La exploración de archivos también lo ayudará a no reinventar la rueda que otra persona ya ha inventado, por ejemplo, como fue el caso de la reinvención de los ataques CSS diez años después. Sin embargo, algunos estudios son realmente difíciles de encontrar, por lo que la duplicación accidental es inevitable. Una vez que publiqué un estudio y descubrí que kuza55 ya estaba haciendo lo mismo hace cinco años. Por lo tanto, haga todo lo posible para evitar la duplicación de la investigación, pero si esto sucede, no se asuste, le sucede a todos.

Recoge rarezas


Para conectar temas e identificar oportunidades que otras personas pierden, es muy importante recopilar información de varias fuentes. Para empezar, no se limite a leer contenido de seguridad de la información; Encontrará rápidamente documentación que lo guiará a través del exploit. Una vez más, el siguiente consejo puede ser bastante obvio, pero antes de navegar por Google o intentar formular una pregunta en Twitter / Reddit / StackOverflow, asegúrese de preguntar a sus colegas. A menudo sucede que el conocimiento necesario está en algún lugar cercano, pero algunas personas simplemente no lo comparten públicamente.

Además, trate de mantener la diversidad en su experiencia.

La realización de pruebas de penetración de caja negra para consultas de seguridad de la información debe proporcionarle una amplia gama de aplicaciones web externas e internas con las que nunca se encontrará en el programa de recompensas de errores. Sin embargo, el límite de tiempo le impedirá profundizar en el nivel de comprensión de la aplicación que viene en meses de recompensa por errores con un solo propósito. Aunque este es un proceso lento y limitado, una revisión del código fuente de caja blanca puede ofrecer una perspectiva de ataque alternativa que un pentester de caja negra no hubiera pensado. Para desarrollarse como analista, debe combinar los tres métodos de trabajo. Las características adicionales como los juegos CTF y la escritura de aplicaciones web también ampliarán su perspectiva.

No hay ideas demasiado estúpidas.


Una de las peores trampas en las que puede caer es dejar caer una gran idea, suponiendo que definitivamente no funcionará, y no intentarlo porque "alguien más lo habría notado" o "es demasiado estúpido para al trabajo ". Había sufrido tanto antes, hasta tal punto que una parte del estudio apareció dos años más tarde de lo que debería haber sido. No importa si esto pasa por alto la autenticación al volver a ingresar la misma contraseña o piratear la página de administración de Google desde su teléfono, en lugar de una computadora portátil, porque el próximo exploit significativo puede provenir de una idea realmente estúpida.

Renunciar a la comodidad


Si alguna tecnología se considera compleja, inconveniente o peligrosa, este es claramente un tema que debe investigarse. Después de repetidas experiencias de avances reales después de abordar temas que están más allá de mi zona de confort, decidí que la forma más rápida de nuevos descubrimientos es buscar activamente temas que me hagan sentir incómodo. Lo más probable es que otros hackers eviten estos temas, dándoles un potencial de investigación serio. Para mí, esta es la única explicación plausible de por qué pude tomar el equipo, documentado por primera vez en 2005, y nuevamente presentado en DEF CON en 2016, y usarlo para ganar $ 70 mil en recompensas de errores en 2019.

Repite, reinventa, comparte
Repetir


La forma más fácil de comenzar a trabajar es encontrar la investigación prospectiva de otra persona, construir algo propio basado en él, mezclar algunos métodos y luego intentar aplicar su nuevo enfoque en el campo y ver si sucede algo interesante.

Por ejemplo, este artículo sobre la configuración incorrecta de CORS señaló un comportamiento interesante y dijo que dicho comportamiento es extremadamente común, pero el autor se detuvo allí y no estudió el efecto en sitios web individuales.

Tomé el concepto propuesto como base y lo apliqué a los sitios de recompensas de errores, en los que pude experimentar legalmente e intentar evitar todas las formas posibles de protegerlos. En el camino, mejoré algo usando las conocidas técnicas de explotación de redireccionamiento abierto, finalmente descubrí el origen de "nulo" leyendo la documentación de CORS y exploré las posibilidades de envenenamiento de caché.

No hubo nada en este proceso que requiriera una intuición increíble o un conocimiento técnico sobresaliente, sin embargo, el resultado final se obtuvo fácilmente: la operación de las configuraciones incorrectas de CORS para bitcoins y recompensas .

Inventar


Repetir el trabajo de otras personas es genial, pero la mejor investigación proviene de la nada, ya sea reescribiendo el camino relativo o envenenando el caché de la aplicación web . Creo que tales descubrimientos son causados ​​por experiencias personales que se suman a las pistas. Los llamo "experiencias principales" o "migas de pan", porque a veces son misteriosas y pueden tomar muchas para llevarte a un descubrimiento útil.

Por ejemplo, en 2011, intenté descifrar la protección CSRF utilizada por addons.mozilla.org . Eludí la verificación del token, pero también verificaron que el host en el encabezado Referer coincida con el sitio actual. Le pedí sla.ckers foro sla.ckers y 'barbarianbob' dijo que Django determina el host del sitio actual mirando el valor del campo Host en los encabezados HTTP, y puede ser anulado por el encabezado X-Fordered-Host. Esta idea podría combinarse con la idea de vulnerabilidades de inyección de encabezado Flash para eludir la verificación CSRF, pero lo más importante, fue la primera ruta de acceso. Fue ella quien dirigió la idea de que las aplicaciones podían confiar en el encabezado del host para determinar su ubicación actual.
Algún tiempo después, miré el código fuente de la función de restablecimiento de contraseña de Piwik y encontré una línea que se parecía a esto:

$passwordResetLink = getCurrentUrlWithoutQueryString() + $secretToken

Sí, pensé Piwik usa PHP, que se divierte mucho manejando la ruta, por lo que puedo solicitar un restablecimiento de contraseña en piwik.com/reset.php/foo;http : //evil.com, como resultado recibo un correo electrónico con dos enlaces, y se envía el token secreto en evil.com . Esta idea funcionó, me trajo beneficios y sentó las bases para las búsquedas posteriores.

La tercera y última migaja fue cómo Piwik intentó corregir esta vulnerabilidad. Reemplazaron getCurrentUrlWithoutQueryString() con getCurrentUrlWithoutFileName() . Esto significaba que ya no podía usar mi método para explotar. Debido al hecho de que ya estaba familiarizado con Django, decidí profundizar en el código y descubrir cómo Piwik determinó cuál es el nombre de host actual. Descubrí que, como Django, usaban el encabezado del host, lo que significaba que podía generar fácilmente correos electrónicos enviados para restablecer la contraseña. Al final resultó que, este truco funcionó en addons.mozilla.org y Gallery, y Symfony, y Drupal, y varios otros sitios. Como resultado, esto condujo a la práctica de ataques con la sustitución del encabezado HTTP Host .

Describiendo la aparición de descubrimientos tan detallados, espero haber podido disipar el misterio en torno al proceso de investigación y mostrarlo a diferencia de una idea espontánea de la nada. Desde este punto de vista, parece que la habilidad principal (además del conocimiento y la experiencia existentes) es reconocer tales migas de pan y seguir el camino que indican. No puedo formular cómo hacerlo de manera accesible, pero sé cómo considerar esas cosas que te hacen decir "no tiene sentido" una y otra vez.

Compartir


Es importante compartir su investigación con la comunidad. Esto ayudará a aumentar su cartera y quizás aliente a su empleador a darle más tiempo de trabajo para la investigación. Además, esto le ayudará a evitar perder el tiempo y estimular más investigaciones. Criticar tu trabajo y comentarlo puede ayudarte a ver lo que no has notado antes. Tampoco hay nada más útil que ver cómo otro analista desarrolla sus técnicas basadas en las suyas.

Por favor, no piense que la tecnología o una idea no deberían compartirse solo porque no es innovadora. Dos logotipos y una presentación: publique todo lo que tiene (idealmente, en un blog y no en una plataforma cerrada mal indexada como Twitter).

Cuando comparte su investigación, siempre es útil mostrar un ejemplo de aplicación de su método a una aplicación web real. Sin esto, las personas inevitablemente tendrán dificultades para entenderlo, y pueden dudar de su valor práctico.

Finalmente, las presentaciones son excelentes para llegar a un público más amplio, pero no caigas en un círculo vicioso ni pierdas tu tiempo repitiendo sin cesar presentaciones pasadas.

Conclusión


Yo todavía tengo mucho que aprender sobre la seguridad de la red, por lo que volvería a este tema unos años más tarde con una nueva imagen y nuevas ideas. Además, sé que otros analistas pueden tener diferentes puntos de vista, y espero ideas que puedan compartir.

Resumen de mis consejos para convertirse en un analista de seguridad de red:

  • Busque conocimiento olvidado y lea registros de archivo;
  • Obtenga información de tantas fuentes diferentes como sea posible;
  • Profundizar en temas complejos y "aterradores";
  • Repite, inventa, comparte;
  • No hay ideas demasiado estúpidas.

Entonces, si está buscando comenzar, puedo aconsejarle sobre nuestra selección anual de las diez mejores técnicas de piratería web . Además de esto, he creado una lista de varios blogs que me han inspirado durante muchos años. ¡Buena suerte con tu investigación y diviértete!

Source: https://habr.com/ru/post/467923/


All Articles