Prueba de penetración - Penetration test

Una prueba de penetración , conocido coloquialmente como una prueba de la pluma o hacking ético , es un simulado autorizado ataque cibernético en un sistema de ordenador, realizado para evaluar la seguridad del sistema; esto no debe confundirse con una evaluación de vulnerabilidad . La prueba se realiza para identificar debilidades (también conocidas como vulnerabilidades), incluida la posibilidad de que partes no autorizadas obtengan acceso a las características y datos del sistema, así como las fortalezas, lo que permite completar una evaluación de riesgos completa.

El proceso generalmente identifica los sistemas de destino y un objetivo en particular, luego revisa la información disponible y emprende varios medios para lograr ese objetivo. Un objetivo de la prueba de penetración puede ser una caja blanca (sobre la cual se proporcionan antecedentes y la información del sistema por adelantado al evaluador) o una caja negra (sobre la cual solo se proporciona información básica, si la hay, además del nombre de la empresa). Una prueba de penetración de caja gris es una combinación de las dos (donde el conocimiento limitado del objetivo se comparte con el auditor). Una prueba de penetración puede ayudar a identificar las vulnerabilidades de un sistema para atacar y estimar qué tan vulnerable es.

Los problemas de seguridad que descubra la prueba de penetración deben informarse al propietario del sistema. Los informes de las pruebas de penetración también pueden evaluar los impactos potenciales para la organización y sugerir contramedidas para reducir el riesgo.

El Centro Nacional de Seguridad Cibernética del Reino Unido describe las pruebas de penetración como: "Un método para obtener seguridad en la seguridad de un sistema de TI al intentar violar parte o toda la seguridad de ese sistema, utilizando las mismas herramientas y técnicas que un adversario".

Los objetivos de una prueba de penetración varían según el tipo de actividad aprobada para cualquier compromiso dado, con el objetivo principal centrado en encontrar vulnerabilidades que podrían ser explotadas por un actor nefasto e informar al cliente de esas vulnerabilidades junto con las estrategias de mitigación recomendadas.

Las pruebas de penetración son un componente de una auditoría de seguridad completa . Por ejemplo, el Estándar de seguridad de datos de la industria de tarjetas de pago requiere pruebas de penetración en un horario regular y después de cambios en el sistema.

Existen varios marcos y metodologías estándar para realizar pruebas de penetración. Estos incluyen el Manual de metodología de pruebas de seguridad de código abierto (OSSTMM), el Estándar de ejecución de pruebas de penetración (PTES), la Publicación especial NIST 800-115, el Marco de evaluación de seguridad del sistema de información (ISSAF) y la Guía de pruebas OWASP .

La metodología de hipótesis de fallas es una técnica de análisis de sistemas y predicción de penetración en la que se compila una lista de fallas hipotéticas en un sistema de software a través del análisis de las especificaciones y la documentación del sistema. La lista de fallas hipotéticas luego se prioriza sobre la base de la probabilidad estimada de que realmente exista una falla y de la facilidad para explotarla hasta el punto de control o compromiso. La lista de prioridades se utiliza para dirigir las pruebas reales del sistema.

Historia

A mediados de la década de 1960, la creciente popularidad de los sistemas informáticos de tiempo compartido que hacían accesibles los recursos a través de las líneas de comunicación creó nuevos problemas de seguridad. Como explican los eruditos Deborah Russell y GT Gangemi Sr., "La década de 1960 marcó el verdadero comienzo de la era de la seguridad informática".

En junio de 1965, por ejemplo, varios de los principales expertos en seguridad informática de EE. UU. Celebraron una de las primeras conferencias importantes sobre seguridad de sistemas, organizada por el contratista del gobierno, System Development Corporation (SDC). Durante la conferencia, alguien señaló que un empleado de SDC había podido socavar fácilmente varias salvaguardas del sistema agregadas al sistema informático de tiempo compartido AN / FSQ-32 de SDC . Con la esperanza de que fuera útil realizar más estudios sobre la seguridad del sistema, los asistentes solicitaron "... que se lleven a cabo estudios en áreas tales como romper la protección de seguridad en el sistema de tiempo compartido". En otras palabras, los participantes de la conferencia iniciaron una de las primeras solicitudes formales para utilizar la penetración de la computadora como una herramienta para estudiar la seguridad del sistema.

En la Conferencia Conjunta de Computación de la primavera de 1967, muchos de los principales especialistas en computación se reunieron nuevamente para discutir los problemas de seguridad del sistema. Durante esta conferencia, los expertos en seguridad informática Willis Ware , Harold Petersen y Rein Turn, todos de RAND Corporation , y Bernard Peters de la Agencia de Seguridad Nacional (NSA), utilizaron la frase "penetración" para describir un ataque contra una computadora. sistema. En un documento, Ware se refirió a los sistemas de tiempo compartido accesibles de forma remota de los militares, advirtiendo que "deben anticiparse los intentos deliberados de penetrar tales sistemas informáticos". Sus colegas Petersen y Turn compartieron las mismas preocupaciones y observaron que los sistemas de comunicación en línea "... son vulnerables a las amenazas a la privacidad", incluida la "penetración deliberada". Bernard Peters de la NSA hizo el mismo punto, insistiendo en que la entrada y salida de la computadora "... podría proporcionar grandes cantidades de información a un programa penetrante". Durante la conferencia, la penetración de las computadoras se identificaría formalmente como una de las principales amenazas para los sistemas informáticos en línea.

La amenaza que representaba la penetración informática se describió a continuación en un importante informe organizado por el Departamento de Defensa de los Estados Unidos (DoD) a fines de 1967. Esencialmente, los funcionarios del DoD recurrieron a Willis Ware para liderar un grupo de trabajo de expertos de la NSA, la CIA , el DoD, la academia y la industria para evaluar formalmente la seguridad de los sistemas informáticos de tiempo compartido. Basándose en muchos artículos presentados durante la Conferencia Conjunta de Computación de la primavera de 1967, el grupo de trabajo confirmó en gran medida la amenaza a la seguridad del sistema que representaba la penetración de las computadoras. El informe de Ware fue inicialmente clasificado, pero muchos de los principales expertos en informática del país identificaron rápidamente el estudio como el documento definitivo sobre seguridad informática. Jeffrey R. Yost, del Instituto Charles Babbage, ha descrito más recientemente el informe Ware como "... con mucho el estudio más importante y completo sobre cuestiones técnicas y operativas relacionadas con los sistemas informáticos seguros de su período de tiempo". En efecto, el informe de Ware reafirmó la principal amenaza que representa la penetración de las computadoras en los nuevos sistemas informáticos de tiempo compartido en línea.

Para comprender mejor las debilidades del sistema, el gobierno federal y sus contratistas pronto comenzaron a organizar equipos de penetradores, conocidos como equipos de tigre , para usar la penetración de computadoras para probar la seguridad del sistema. Deborah Russell y GT Gangemi Sr. declararon que durante la década de 1970 "... los 'equipos tigre' aparecieron por primera vez en la escena informática. Los equipos tigre eran equipos de crackers patrocinados por el gobierno y la industria que intentaban romper las defensas de los sistemas informáticos en un esfuerzo por descubrir, y eventualmente parchear, los agujeros de seguridad ".

Un destacado estudioso de la historia de la seguridad informática, Donald MacKenzie, señala de manera similar que "RAND había realizado algunos estudios de penetración (experimentos para eludir los controles de seguridad informática) de los primeros sistemas de tiempo compartido en nombre del gobierno". Jeffrey R. Yost del Charles Babbage Institute, en su propio trabajo sobre la historia de la seguridad informática, también reconoce que tanto la Corporación RAND como la SDC se habían "involucrado en algunos de los primeros llamados 'estudios de penetración' para intentar infiltrarse sistemas de tiempo compartido para probar su vulnerabilidad ". En prácticamente todos estos primeros estudios, los equipos de tigres penetraron con éxito en todos los sistemas informáticos específicos, ya que los sistemas de tiempo compartido del país tenían defensas deficientes.

De las primeras acciones del equipo tigre, los esfuerzos de RAND Corporation demostraron la utilidad de la penetración como herramienta para evaluar la seguridad del sistema. En ese momento, un analista de RAND señaló que las pruebas habían "... demostrado la practicidad de la penetración del sistema como una herramienta para evaluar la efectividad y adecuación de las salvaguardas de seguridad de datos implementadas". Además, varios analistas de RAND insistieron en que todos los ejercicios de prueba de penetración ofrecían varios beneficios que justificaban su uso continuado. Como señalaron en un artículo, "Un penetrador parece desarrollar un estado de ánimo diabólico en su búsqueda de las debilidades y la incompletud del sistema operativo, que es difícil de emular". Por estas y otras razones, muchos analistas de RAND recomendaron el estudio continuo de las técnicas de penetración por su utilidad en la evaluación de la seguridad del sistema.

Presumiblemente, el principal experto en penetración informática durante estos años de formación fue James P. Anderson, que había trabajado con la NSA, RAND y otras agencias gubernamentales para estudiar la seguridad del sistema. A principios de 1971, la Fuerza Aérea de los Estados Unidos contrató a la compañía privada de Anderson para estudiar la seguridad de su sistema de tiempo compartido en el Pentágono. En su estudio, Anderson describió una serie de factores importantes que intervienen en la penetración de las computadoras. Anderson describió una secuencia de ataque general en pasos:

  1. Encuentra una vulnerabilidad explotable.
  2. Diseña un ataque a su alrededor.
  3. Prueba el ataque.
  4. Aprovecha una línea en uso.
  5. Entra en el ataque.
  6. Aproveche la entrada para recuperar información.

Con el tiempo, la descripción de Anderson de los pasos generales de penetración de computadoras ayudó a orientar a muchos otros expertos en seguridad, que se basaron en esta técnica para evaluar la seguridad del sistema informático de tiempo compartido.

En los años siguientes, la penetración de las computadoras como herramienta para la evaluación de la seguridad se volvió más refinada y sofisticada. A principios de la década de 1980, el periodista William Broad resumió brevemente los esfuerzos en curso de los equipos tigre para evaluar la seguridad del sistema. Como informó Broad, el informe patrocinado por el Departamento de Defensa de Willis Ware "... mostró cómo los espías podían penetrar activamente en las computadoras, robar o copiar archivos electrónicos y subvertir los dispositivos que normalmente protegen la información ultrasecreta". El estudio inició más de una década de actividad silenciosa por parte de grupos de élite de científicos informáticos que trabajan para el gobierno que intentaron ingresar a computadoras sensibles. Lo lograron en todos los intentos ".

Si bien estos diversos estudios pueden haber sugerido que la seguridad informática en los EE. UU. Seguía siendo un problema importante, el académico Edward Hunt ha hecho más recientemente un punto más amplio sobre el estudio extenso de la penetración de la computadora como herramienta de seguridad. Hunt sugiere en un artículo reciente sobre la historia de las pruebas de penetración que el establecimiento de defensa en última instancia "... creó muchas de las herramientas utilizadas en la guerra cibernética moderna", ya que definió e investigó cuidadosamente las muchas formas en que los intrusos informáticos podían piratear sistemas específicos. .

Instrumentos

Se encuentra disponible una amplia variedad de herramientas de evaluación de seguridad para ayudar con las pruebas de penetración, incluido el software gratuito y el software comercial .

Distribuciones de SO especializadas

Varias distribuciones de sistemas operativos están orientadas a las pruebas de penetración. Estas distribuciones normalmente contienen un conjunto de herramientas preempaquetadas y preconfiguradas. El probador de penetración no tiene que buscar cada herramienta individual, lo que podría aumentar las complicaciones de riesgo, como errores de compilación, problemas de dependencia y errores de configuración. Además, la adquisición de herramientas adicionales puede no ser práctica en el contexto del evaluador.

Entre los ejemplos notables de SO de pruebas de penetración se incluyen:

Muchos otros sistemas operativos especializados facilitan las pruebas de penetración, cada uno más o menos dedicado a un campo específico de pruebas de penetración.

Varias distribuciones de Linux incluyen vulnerabilidades conocidas de aplicaciones y sistemas operativos, y se pueden implementar como objetivos para practicar. Estos sistemas ayudan a los nuevos profesionales de la seguridad a probar las últimas herramientas de seguridad en un entorno de laboratorio. Los ejemplos incluyen Damn Vulnerable Linux (DVL), OWASP Web Testing Environment (WTW) y Metasploitable.

Marcos de software

Fases de prueba de penetración

El proceso de prueba de penetración se puede simplificar en las siguientes cinco fases:

  1. Reconocimiento: El acto de recopilar información importante en un sistema objetivo. Esta información se puede utilizar para atacar mejor al objetivo. Por ejemplo, los motores de búsqueda de código abierto se pueden usar para encontrar datos que se pueden usar en un ataque de ingeniería social .
  2. Escaneo: utiliza herramientas técnicas para mejorar el conocimiento del sistema por parte del atacante. Por ejemplo, Nmap se puede utilizar para buscar puertos abiertos.
  3. Obtener acceso: utilizando los datos recopilados en las fases de reconocimiento y escaneo, el atacante puede usar una carga útil para explotar el sistema objetivo. Por ejemplo, Metasploit se puede utilizar para automatizar ataques a vulnerabilidades conocidas.
  4. Mantener el acceso: Mantener el acceso requiere tomar los pasos necesarios para poder estar persistentemente dentro del entorno de destino para recopilar la mayor cantidad de datos posible.
  5. Cubrir pistas: el atacante debe borrar cualquier rastro de comprometer el sistema de la víctima, cualquier tipo de datos recopilados, registrar eventos, para permanecer en el anonimato.

Una vez que un atacante ha aprovechado una vulnerabilidad, puede obtener acceso a otras máquinas, por lo que el proceso se repite, es decir, buscan nuevas vulnerabilidades e intentan aprovecharlas. Este proceso se denomina pivotar.

Vulnerabilidades

Las operaciones legales que permiten al evaluador ejecutar una operación ilegal incluyen comandos SQL sin escape, contraseñas hash sin cambios en proyectos de fuente visible, relaciones humanas y funciones antiguas de hash o criptográficas. Es posible que una sola falla no sea suficiente para permitir un exploit críticamente serio. Casi siempre se requiere aprovechar múltiples fallas conocidas y dar forma a la carga útil de una manera que parezca una operación válida. Metasploit proporciona una biblioteca ruby ​​para tareas comunes y mantiene una base de datos de exploits conocidos.

Cuando se trabaja con limitaciones de tiempo y presupuesto, el fuzzing es una técnica común que descubre vulnerabilidades. Su objetivo es obtener un error no controlado a través de una entrada aleatoria. El probador utiliza una entrada aleatoria para acceder a las rutas de código que se utilizan con menos frecuencia. Las rutas de código más transitadas suelen estar libres de errores. Los errores son útiles porque exponen más información, como fallas del servidor HTTP con rastreo completo de información, o se pueden usar directamente, como desbordamientos de búfer .

Imagina que un sitio web tiene 100 cuadros de entrada de texto. Algunos son vulnerables a las inyecciones de SQL en determinadas cadenas. Es de esperar que el envío de cadenas aleatorias a esos cuadros por un tiempo llegue a la ruta del código con errores. El error se muestra como una página HTML rota a la mitad debido a un error de SQL. En este caso, solo los cuadros de texto se tratan como flujos de entrada. Sin embargo, los sistemas de software tienen muchos flujos de entrada posibles, como cookies y datos de sesión, el flujo de archivos cargados, canales RPC o memoria. Pueden ocurrir errores en cualquiera de estos flujos de entrada. El objetivo de la prueba es primero obtener un error no manejado y luego comprender la falla en función del caso de prueba fallido. Los evaluadores escriben una herramienta automatizada para probar su comprensión de la falla hasta que sea correcta. Después de eso, puede resultar obvio cómo empaquetar la carga útil para que el sistema de destino active su ejecución. Si esto no es viable, se puede esperar que otro error producido por el fuzzer dé más frutos. El uso de un fuzzer ahorra tiempo al no verificar las rutas de código adecuadas donde las vulnerabilidades son poco probables.

Carga útil

La operación ilegal, o carga útil en la terminología de Metasploit, puede incluir funciones para registrar pulsaciones de teclas, tomar capturas de pantalla, instalar software publicitario , robar credenciales, crear puertas traseras usando shellcode o alterar datos. Algunas empresas mantienen grandes bases de datos de exploits conocidos y proporcionan productos que prueban automáticamente los sistemas de destino en busca de vulnerabilidades:

Servicios de pruebas de penetración gubernamentales estandarizados

La Administración de Servicios Generales (GSA) ha estandarizado el servicio de "prueba de penetración" como un servicio de soporte previamente examinado, para abordar rápidamente vulnerabilidades potenciales y detener a los adversarios antes de que afecten a los gobiernos locales, estatales y federales de EE. UU. Estos servicios se conocen comúnmente como servicios de ciberseguridad altamente adaptables (HACS) y se enumeran en el sitio web de US GSA Advantage.

Este esfuerzo ha identificado proveedores de servicios clave que han sido revisados ​​y examinados técnicamente para proporcionar estos servicios de penetración avanzados. Este servicio de GSA tiene como objetivo mejorar el pedido y la implementación rápidos de estos servicios, reducir la duplicación de contratos con el gobierno de EE. UU. Y proteger y respaldar la infraestructura de EE. UU. De una manera más oportuna y eficiente.

132-45A Las pruebas de penetración son pruebas de seguridad en las que los asesores de servicios imitan los ataques del mundo real para identificar métodos para eludir las características de seguridad de una aplicación, sistema o red. Los servicios de pruebas de penetración de HACS generalmente prueban estratégicamente la efectividad de las medidas de seguridad preventivas y de detección de la organización empleadas para proteger los activos y los datos. Como parte de este servicio, los piratas informáticos éticos certificados suelen realizar un ataque simulado a un sistema, sistemas, aplicaciones u otro objetivo en el entorno, en busca de debilidades de seguridad. Después de las pruebas, normalmente documentarán las vulnerabilidades y describirán qué defensas son efectivas y cuáles pueden ser derrotadas o explotadas.

En el Reino Unido, los servicios de pruebas de penetración están estandarizados a través de organismos profesionales que trabajan en colaboración con el Centro Nacional de Seguridad Cibernética.

Los resultados de las pruebas de penetración varían según los estándares y las metodologías utilizadas. Hay cinco estándares de pruebas de penetración: Manual de metodología de pruebas de seguridad de código abierto (OSSTMM), Proyecto de seguridad de aplicaciones web abiertas (OWASP), Instituto Nacional de Estándares y Tecnología (NIST00), Marco de evaluación de seguridad de sistemas de información (ISSAF) y Metodologías de pruebas de penetración y Estándares (PTES).

Ver también

Referencias generales

  • Largo, Johnny (2011). Hacking de Google para probadores de penetración , Elsevier
  • La guía definitiva para las pruebas de penetración

Referencias