En Internet Security Auditors creemos que una auditoría puede ser mucho más que el ejercicio de examinar sistemáticamente

Auditoría de Aplicación

Las empresas normalmente incluyen en su sitio Web pequeñas aplicaciones (Applets, CGIs, ActiveX, etc.) que ayudan a gestionar los datos enviados por los usuarios (datos personales, pedidos, pagos online, control de acceso, etc.). Existen otras empresas que utilizan su sitio Web para realizar una gran variedad de operaciones con sus clientes/proveedores/personal (p.e. portales corporativos, brokers/banking online, e-commerce, extranets, etc.) y esto implica la utilización de una compleja aplicación que se ejecuta en el servidor Web o de aplicaciones y que gestiona todas estas operaciones.
Por ello Internet Security Auditors ofrece un servicio para poder analizar de forma específica estas aplicaciones, de forma independiente y exhaustiva.

Características del Servicio

Las actuaciones que se llevan a cabo para realizar la Auditoría de Aplicación, siguen la filosofía de caja negra, es decir, en ningún momento se audita el código fuente de la aplicación. El motivo de esta metodología de trabajo es la de simular la actuación real de un atacante malicioso que, a través de las aplicaciones auditadas y sin disponer de su código fuente, intente realizar un ataque al sistema, bases de datos, etc...

El proceso de auditar Aplicaciones está planificado en las fases que se presentan a continuación:

  • Análisis Funcional: Se realiza un estudio general de la aplicación, adquiriendo una visión global de las funcionalidades que proporciona con el fin de plantear las actuaciones y procedimientos óptimos que se llevan a cabo en el Análisis Técnico.
  • Análisis Técnico: Se realiza un análisis de la aplicación de manera que se pueda decidir a qué tipos de ataques es sensible.
  • Diseño de las pruebas: En esta fase se diseñan las pruebas a realizar para explotar aquellas deficiencias de seguridad que puedan aparecer en la aplicación auditada.
  • Desarrollo de las pruebas: Se programarán las pruebas a ejecutar, y se determinará el orden en el que se llevarán a cabo.
  • Realización de las pruebas: Durante esta fase se llevan a cabo todas las pruebas sobre la aplicación auditada, se analizan los resultados obtenidos y en el caso de detectar nuevas vulnerabilidades a explotar se vuelve a la fase de diseño para intentar explotarlas.

Ámbito de las Pruebas

La metodología creada por Internet Security Auditors permite llevar a cabo una exhaustiva revisión sobre las aplicaciones auditadas cubriendo los siguientes aspectos de seguridad:

  1. Recopilación de información
    Antes de auditar una aplicación es necesario determinar el ámbito sobre el que se realizará la revisión de seguridad con ciertos aspectos clave sobre esta y que consiste, entre otros en estos:
    • Descubrimiento de aplicaciones.
    • Identificación de puntos de entrada a la aplicación.
    • Análisis de códigos de error.
    • Identificación de plataformas.
  2. Ingeniería Inversa de Protocolos
    Los ataques que pueden realizarse a las aplicaciones, se pueden iniciar a través del análisis de los protocolos implementados por estas. A veces pueden no implementarse controles de seguridad lo suficientemente robustos, y otras veces, implementar librerías propietarias de protocolos estándar de forma incorrecta que implican también vulnerabilidades de seguridad en el sistema.
  3. Análisis de la configuración en la infraestructura
    El análisis de la infraestructura y la topología de la arquitectura pueden revelar información como por ejemplo el código fuente, métodos HTTP soportados, funcionalidades de administración, métodos de autenticación o configuraciones de la infraestructura. En este punto se desarrollan las siguientes pruebas:
    • Pruebas sobre SSL/TLS.
    • Pruebas sobre la gestión de la configuración en la infraestructura.
    • Pruebas sobre la gestión de la configuración en la aplicación.
    • Pruebas sobre el manejo de extensiones de archivos.
    • Identificación de ficheros antiguos, de backup o no referenciados.
    • Acceso a interfaces de administración.
    • Pruebas sobre métodos HTTP y XST.
  4. Análisis del esquema de autenticación
    Autenticación: “es el acto de establecimiento o confirmación de algo (o alguien) como auténtico”. Un ejemplo de este proceso es el proceso de inicio de sesión, para realizar este análisis se realizan las siguientes pruebas:
    • Transmisión de credenciales a través de un canal cifrado.
    • Pruebas de enumeración de usuarios.
    • Pruebas de identificación de cuentas de usuario previsibles.
    • Pruebas de fuerza bruta
    • Pruebas para sobrepasar el esquema de autenticación.
    • Pruebas de finalización de sesión.
    • Pruebas sobre implementaciones de CAPTCHA.
    • Pruebas de autenticación basadas en múltiples factores.
    • Pruebas de condiciones de carrera.
  5. Análisis de gestión de sesiones
    En el núcleo de cualquier aplicación basada en web se encuentra la forma en que mantiene el control de estado y, por tanto, la interacción con el usuario. En el sentido más amplio, la gestión de sesiones abarca todos los controles sobre un usuario, desde la autenticación hasta la salida de la aplicación.
    • Pruebas del esquema de gestión de sesiones.
    • Pruebas sobre los atributos de las cookies.
    • Pruebas de fijación de sesión.
    • Pruebas sobre exposición de variables de sesión.
    • Pruebas de CSRF.
  6. Análisis del esquema de autorización
    Autorización: “Es el concepto de permitir el acceso a los recursos únicamente a aquellos permitidos a utilizarlos”. Lo que se pretende analizando el esquema de autorización es entender su funcionamiento y con esa información intentar evadir el mecanismo de autorización. Para ello realizamos las siguientes pruebas:
    • Pruebas de acceso a recursos protegidos.
    • Pruebas para sobrepasar el esquema de autorización.
    • Pruebas de elevación de privilegios.
  7. Análisis de las reglas de negocio
    Las reglas de negocio pueden incluir reglas que expresen políticas de negocio (como productos, precios o ubicaciones) o workflows basados en tareas ordenadas de transmisión de datos de un participante (una persona o un componente software) a otro.
    • Pruebas sobre las reglas de negocio.
    • Pruebas de abuso de funcionalidad.
  8. Análisis del mecanismo de validación de datos
    El principal problema que nos encontramos en las aplicaciones, es que no se realizan adecuadamente las validaciones de los datos de entrada antes de usarlos, esto provoca que la mayoría sean sensibles a ataques contra el sistema de ficheros o ataques de desbordamiento de buffer entre otros, al verse afectadas por vulnerabilidades. Para llevar a cabo este análisis se realizan las siguientes pruebas:
    • Pruebas de XSS (stored, reflected y basados en el DOM).
    • Pruebas de Cross Site Flashing.
    • Pruebas de inyección de código SQL.
    • Pruebas de inyección LDAP.
    • Pruebas de inyección ORM.
    • Pruebas de inyección XML.
    • Pruebas de inyección SSI.
    • Pruebas de inyección XPATH.
    • Pruebas de inyección IMAP/SMTP.
    • Pruebas de inyección de código.
    • Pruebas de inyección de comandos de sistema operativo.
    • Pruebas de desbordamiento de memoria.
    • Pruebas de HTTP Splitting/Smuggling.
  9. Análisis de negación de servicio
    La negación de servicio (DoS) tiene como objetivo impedir que un sistema proporcione la actividad habitual a los usuarios. Estos ataques maliciosos pueden producirse privando a un sistema de recursos críticos, explotando vulnerabilidades o mediante un abuso de funcionalidad.

    Lo que se pretende en este punto es verificar si el sistema resulta vulnerable a este tipo de amenazas, para ello se llevan a cabo las siguientes pruebas:

    • Pruebas de bloqueo de cuentas de usuario.
    • Pruebas sobre escritura en disco.
    • Pruebas sobre liberación de recursos.
    • Pruebas de consultas SQL intensivas de CPU.
  10. Análisis de Web Services
    Se llevará a cabo un análisis sobre los Web Services implementados para intentar detectar deficiencias. Se revisarán controles de acceso y seguridad a nivel IP, la configuración, fugas de información motivada por deficiencias en la gestión de errores y excepciones, filtros de validación implementados, así como la existencia de controles de auditoría y logging.
    • Pruebas de recopilación de información.
    • Pruebas sobre la estructura XML.
    • Pruebas de parámetros GET de HTTP y REST.
    • Pruebas de datos adjuntos en SOAP.
    • Pruebas de repetición en Web Services.

Resultados

Informe
Se elabora un informe detallado donde se incluye:

  • Resumen ejecutivo de alto nivel.
  • Detalle de todas las pruebas realizadas especificando su objetivo.
  • Resultados obtenidos en los diferentes tests que se han realizado.
  • Recomendaciones que permitan solucionar de la forma más acertada los problemas de seguridad encontrados.
  • Clasificación de los problemas de seguridad según su nivel de peligro. Esto permitirá a la empresa poder elaborar un plan de actuación eficiente para resolver estos problemas de seguridad.

Workshop: Reunión orientada a explicar los resultados obtenidos en la auditoría y asesorar sobre las posibles soluciones que existan para los problemas de seguridad encontrados.