domingo, 15 de agosto de 2010

Pentesteando


El hackeo ético (pentest) se refiere a pagar por los servicios de alguien con el fin de que realice un hackeo controlado y “ético”. ¿Por qué alguien pagaría para que lo hackearan?

El objetivo es evaluar el estado de la seguridad informática de una corporación; equivaldría a contratar los servicios de un perpetrador ético para que intente entrar a nuestro hogar (y que prometa no llevarse nada) e informarnos qué y cómo le hizo para en su caso tomar medidas correctivas (una nueva cerradura, una pared más alta, etc.).

Si quieres contratar los servicios de un pentesteador (sí ya sé, no existe esa palabra) en México, el primer problema al que te enfrentas es dónde buscarlo. No conozco como tal una sección amarilla completa de pentesteadores nacionales. ¿Qué hacer? Tal vez un conocido lo haya contratado y te haga una recomendación, puede ser que busques en Google y trates de ver en su página ese “algo” que te llame la atención. Podrías usar LinkedIn o Twitter para tratar de averiguar quién se dedica a esta actividad. Finalmente, algunas consultoras famosas tal vez ofrezcan estos servicios (¿tú cómo los buscarías?).

Bueno, ya que de alguna manera tuvieras un menú de posibles pentesteadores, ahora el problema es evaluarlos. ¿Los evalúas conforme lo bonito de su página web? ¿Dependiendo de quiénes fueron sus anteriores clientes? ¿Objetivos alcanzados? ¿Reportes que puedan mostrar? ¿Recomendaciones de sus clientes?

Si ves, la evaluación del mejor pentesteador para tu corporación (y que no cobre en diamantes) es medio nebulosa porque el hackeo ético es en cierta manera más un arte que una metodología. Hay esfuerzos que tratan de bajar el arte del hacking a una serie de pasos a seguir, pero el que ofrece los servicios de pentest debe de tener esa intuición, malicia, creatividad y habilidad que no te la da una “metodología”. Y ahí está la problemática: cómo evalúas la creatividad para lograr encontrar un camino vulnerable, la malicia para pensar como atacante, esa creatividad para salirte de los típicos ataques y penetrar con diversas técnicas o la habilidad para programar tus propios códigos de explotación e inclusive hasta descubrir nuevas debilidades de día cero para usarlas. ¿Cómo, cómo lo evalúas a ciencia cierta?

¿Puedes evaluar al que va a llevar a cabo el pentest con pequeños retos u objetivos a cumplir? ¿Sólo viendo sus reportes de algunos pentest pasados? ¿Preguntando por la gama de herramientas usadas? ¿Cantidad de debilidades día cero descubiertas? ¿Todo lo anterior? No sé si tú lo veas claro como el agua; pero yo lo veo gris como cielo del DF.

Supongamos que ya elegiste a alguien y lo pones a chambear. Te entrega los resultados después de semanas de trabajo y se les ve muy contentos. Te dan la mano. Te felicitan. Eres un gran experto en seguridad. ¡No encontraron nada! Seguridad perfecta. Ni un hueco. Abres el champagne. Todos sus intentos por vulnerarte fracasaron. Chups. ¿Qué haces? ¿Saltar de alegría porque no encontraron nada? ¿O decirles que su trabajo fue pésimo porque es imposible no encontrar nada? Aquí estoy siendo muy absolutista, piensen en las variantes que de todas maneras te generan dudas: encuentran sólo huecos de menor importancia; se encuentran sólo un par de debilidades importantes (¿eran todas?), etc.

Al final de cuentas, el buen hackeo ético es más un arte que una ciencia con metodología. Es como cocinar unas sabrosas costillas de cordero: si yo sigo las instrucciones te entregaré una porquería; si las hace un chef: a chuparse los dedos! (la diferencia es que con las costillas puedes decir si se hizo un buen trabajo…no así cuando te entregan los resultados del pentest -¿pudieron haber más hallazgos?-).

El trabajo de quien contrata los servicios será tratar de poner en blanco y negro su forma de evaluar a quien puede prestar dichos servicios y la forma de evaluar los resultados entregados. El trabajo de quien presta estos nobles servicios, es demostrar quién es y lo que puede ser capaz de hacer (recuerden, en PowerPoint todo se puede llegar a ver realmente muy bien).

Reflexiones aleatorias:

· Un pentest puede o no incluir la ingeniería social. Desde engañar para hacer click o la llamada telefónica al estilo Mitnick.

· Yo veo dos tipos de pentest: por objetivos (este servidor web, aquella red inalámbrica, con privilegios de administrador) o a ver qué descubren (“tú búscale y a ver qué te encuentras”).

· En mi opinión, los verdaderos hackers no usan los pasos de una metodología de hackeo (en el sentido de que no sacan su librito a ver qué paso sigue); libros como Hacking Exposed, la OSSTMM o Ethical Hacker tratan de bajar el arte del hacking hacia una metodología.

· El pentest no es sólo sentarte a ejecutar herramientitas de BackTrack o el Nessus; eso lo puedo hacer yo mismo.

· Le han hecho un “pentest” al Titanic. Te informan que no han encontrado una manera de hundirlo. Por fin te sientes tranquilo y lo pones a navegar.

2 comentarios:

des dijo...

¡Hola!. He llegado a tu blog por casualidad, me ha gustado bastante esta entrada :) .

Como apunte, me gustaría señalar que OSSTM no es una metodología de hackeo, entendido "hackeo" como un test de intrusión que no nos va a presentar una visión completa de los puntos vulnerables de nuestros sistemas.

Esta metodología busca sobre todo la completitud, es decir, buscar todos los posibles puntos de vulnerabilidad del entorno auditado. El manual de OSSTM explica en qué se diferencia de un test de intrusión.

¡Un saludo!

Fausto Cepeda dijo...

Tienes toda la razón. En efecto no es de hackeo como CEH o OffensiveSecurity. Se me fue! :-) Gracias y saludos!