Consideraciones antes de iniciar con un pentest
El autor de este artículo pone sobre la mesa algunas cuestiones para pensar y tomar en cuenta antes de efectuar un pentest.
Llegan a la junta de proyectos y les informan que están a cargo de contratar a una empresa que haga un pentest contra la infraestructura de la empresa. Seguramente pensarán que hay ciertas consideraciones que deben de tomar antes de salir a contratar. ¿Pero cuáles son?
Deben de tomar en cuenta que un pentest descubre vulnerabilidades que pueden ser aprovechadas por atacantes maliciosos y que recolecta información sensible de la infraestructura (contraseñas, direcciones IP, versiones de sistemas operativos, nivel de parchado, etc.). Espero que quede clara la sensibilidad de los datos entorno a un pentest y el por qué sí debemos de preocuparnos por su seguridad. A continuación las consideraciones a tomar en cuenta.
Establecer el alcance
Si no saben lo que quieren, están en problemas. Antes de emprender cualquier acción, primero deben de aclarar el alcance del pentest. ¿Qué quieren probar? ¿Los servidores Linux? ¿La red? ¿Las PC de los empleados? ¿Todo? Alguien debe de definir el alcance para que puedan empezar a enlistar posibles empresas candidatas, revisar sus habilidades y explicarles lo quieren hacer.
Definir el enfoque
Hay de dos sopas. El pentest es abierto o cerrado. Abierto es cuando le dices al pentester "Eres un atacante, no te voy a dar información de la infraestructura (caja negra) y debes averiguar cómo hacer el máximo daño posible". Esto es lo ideal porque simula un ataque desde afuera sin previo conocimiento de la entrañas de las redes, y de hecho así es como suceden muchos de los ataques de hoy día. Un enfoque cerrado es aquel donde le dices exactamente qué atacar (por ejemplo, servidores Linux de la red corporativa interna); este enfoque no es ideal pero baja significativamente costos y tiempo.
Cifrar correo intercambiado
Desgraciadamente cifrar correos no es lo de hoy. En parte porque no hay productos que sean sencillos de usar para el usuario (ahí están los pasos extra que hay que realizar lo cual significa que no es transparente, y no olvidemos la molestia de intercambiar y administrar llaves). Pero para tratar asuntos del pentest con las posibles empresas, deben de hacerlo (antes, durante y después de que acabe). Con el producto que quieran que ofrezca una seguridad satisfactoria. Y si la compañía de pentest les dice que no pueden/quieren cifrar, de inmediato dejarla fuera.
Descartar el uso de la nube
Subir información del pentest a la nube es mala idea. Ya sea documentación generada en la organización o información intercambiada con la posible empresa de pentest. Prohibido subir a la nube datos relativos al pentest. Con una excepción tal vez, y me refiero a las buenas nubes que implementan el principio de PIE (Pre Internet Encryption).
Firmar un NDA
Firmar un acuerdo de confidencialidad con la empresa que vaya a realizar el pentest. Y si queremos extra seguridad, firmarlo de una vez con las posibles empresas candidatas porque van a recibir información de alcances y otros datos que pudieran ser sensibles.
Establecer horarios
El horario en el que se lleve a cabo el pentest influye en el costo. Si el cliente quiere que las actividades se hagan por la noche o la madrugada, el costo aumentará probablemente ya que no es lo mismo trabajar en horas hábiles que en no hábiles. O al contrario, tal vez sólo se desee que trabajen en horas hábiles. De cualquier forma es importante establecerlo con anticipación.
Verificar las capacidades de consultores que realmente vendrán
Confieso que esta parte es muy complicada de realizar con éxito y que no hay una sola respuesta. Podemos llegar hasta a aplicarles una prueba práctica a los posibles candidatos para ver "en campo" cómo se desempeñan y podremos ver las herramientas usadas, cómo las manejan y el dominio que tienen sobre el tema (porque estaríamos junto a ellos durante el reto). O está la posibilidad menos ideal de evaluar a los candidatos por lo que dice su CV y por medio de una entrevista. Pero quiero que estemos de acuerdo que es complejo evaluar habilidades prácticas por medio de documentos y reuniones. Y claro, recalco las palabras "verificar las capacidades de quienes realmente vendrán" porque nos llevaríamos una desagradable sorpresa si vienen a hacer el pentest personas a quienes realmente nunca verificamos sus capacidades.
Producción vs ambiente de pruebas
¿Dónde van a hacer el pentest? ¿En ambientes de producción o ambientes de pruebas? Si son pruebas, hay una alta probabilidad de que sean (muy) diferentes a los de producción. Y recordemos que los atacantes no van a abusar de ambientes de pruebas para hacernos la vida fácil. Y por otro lado si los pentesters atacan producción, hay riesgo de que "se caigan" los ambientes productivos dejándolos fuera de operación u otra afectación mayor. No hay una respuesta única.
Cuidar a los pentesters
¿Qué estarán haciendo los pentesters? ¿Estárán sólo atacando las IP que dijimos? ¿No están haciendo DDoS como establecimos? Hay quienes gustan de cuidar a los pentesters, en otras palabras, estar detrás de ellos (literalmente) o al menos estar dando vueltas periódicas para vigilarlos. Hay otros que tienen la postura de dejarlos ser y hacer su trabajo.
Cifrar discos
Algo tenemos que hacer con la información que estarán generando los pentesters durante el servicio. No queremos que sus laptops sean robadas o extraviadas con toda la información del pentest. Y si son consultores extranjeros, les pueden "revisar" sus laptops al ingresar por una frontera. En fin, cifrar la información es un "must have".
Conclusión
No doy respuesta o mi opinión en varios de los puntos aquí expuestos, de ahí que los llamo "consideraciones". Son cuestiones para pensar y tomar en cuenta antes de efectuar el pentest, pero la decisión es de ustedes y de las políticas internas de la organización.
PD: Y recuerden, un pentest es una fotografía de un momento. Si sacamos una foto en un año, será diferente. Es decir, los resultados de hoy no son permanentes y vigentes por siempre.