Aplicaciones WEB
e identificación de amenazas
Semana 05
• Es una aplicación a la cual se tiene
acceso a través de un navegador Web
sobre una red, ya sea Internet o una
Intranet. Es de agregar que las
aplicaciones web son codificadas en un
lenguaje soportado por un navegador
(Mozilla Firefox, Google Chrome, Internet
Explorer, entre otros).
• “Una Aplicación Web es un tipo especial de aplicación
Cliente/Servidor, en el que el cliente (Navegador
Web), el Servidor (Servidor Web) y el Protocolo
(HTTP) canal de comunicación están estandarizados
y no es creado por el programador de aplicaciones”
Seguridad informática
• “El objetivo de la seguridad informática
será mantener la integridad,
disponibilidad, privacidad, control y
autenticidad de la información manejada
por computadora”
VULNERABILIDADES, AMENAZAS Y
RIESGOS DE LAS APLICACIONES WEB
• Son todos aquellos problemas de seguridad que
afectan las páginas web, por lo general estos
problemas permiten modificación y extracción de
la información, lo cual es muy grave para las
organizaciones. La mayoría de éstos son
registrados por medio de un identificador de CVE
(Common Vulnerabilty Exposure), él cual es un
diccionario de los problemas de seguridad
encontrados en Internet.
CROSS SITE SCRIPTING (XSS)
• “Es una técnica Hacking que permite a un
atacante explotar vulnerabilidades en
aplicaciones web e inyectar scripts del
lado del cliente en éstas. Un ataque
exitoso puede permitir al atacante
secuestrar sesiones de usuario, robar
información sensible o cambiar
información en el sitio web”
• El no persistente o reflejado. Este ataque es uno de los
más comunes, la raíz de la vulnerabilidad es el manejo
inapropiado (falta de validación) de solicitudes de datos
HTTP por el código del servidor, permitiendo a los sitios
maliciosos reflejar código malicioso y atacar a otros
usuarios. El principal vector de ataque es usualmente un
mensaje de correo que contiene una URL maliciosa,
cuando el usuario da clic en la URL, el código malicioso es
ejecutado. Esta vulnerabilidad aprovecha el concepto de
arquitectura cliente servidor (Servidor WEB Navegador
Web), el navegador ejecuta el código porque cree que es
el código original y no uno alterado.
El no persistente o reflejado
• Este ataque es uno de los más comunes,
la raíz de la vulnerabilidad es el manejo
inapropiado (falta de validación) de
solicitudes de datos HTTP por el código
del servidor, permitiendo a los sitios
maliciosos reflejar código malicioso y
atacar a otros usuarios. El principal vector
de ataque es usualmente un mensaje de
correo que contiene una URL maliciosa,
cuando el
INYECCIÓN DE CÓDIGO SQL (SQL
Injection)
• Esta vulnerabilidad surge de las malas prácticas de
programación en las solicitudes HTTP (POST y
GETs), así un atacante aprovecha el mal manejo de
éstas, inyectando código SQL adicional, por
ejemplo: sSql = “SELECT LocationName FROM
Locations” + “WHERE Location|D =” + Request
[“Location|D”]; La variable Request [“Location|D”];
puede recibir consultas SQL y el atacante puede
aprovecharse para modificar la consulta y sacar
información.
EJECUCIÓN DE COMANDOS (Command
Execution)
• Este tipo de vulnerabilidad toma ventaja de la falta
de validación en las entradas en un sitio web, donde
el atacante puede correr comandos del sistema
operativo en la aplicación web vulnerada.
Generalmente, esta vulnerabilidad permite
aprovechar, que los datos de usuario son pasados
como parámetros a operaciones de entrada y
salida, para así añadir comandos de sistema
operativo por medio de caracteres especiales.
DESBORDAMIENTO DE BUFFER (Buffer
Overflow)
• “Es un ataque que ocurre cuando un usuario malicioso
sobrecarga la memoria del sistema temporal (llamada
buffer) para causar estragos en la máquina de la
víctima. A menudo, los atacantes también incluyen
código de instrucción para aprovechar más la
vulnerabilidad, como por ejemplo ejecutar código
malicioso, acceder o modificar datos confidenciales o
incluso enviar información al atacante”
DENEGACIÓN DE SERVICIO (DoS)
• Es un tipo de vulnerabilidad que permite a un
atacante agotar los recursos informáticos de un
sistema, por medio de millones de solicitudes,
agotando recursos como CPU, Memoria, acceso a
la red, que imposibilitan el acceso a dicho sistema.
“Este ataque tiene una variante llamada Ataque de
Denegación de Servicio Distribuido (DDoS), en el
cual varios computadores infectados con virus
atacan el servidor objetivo desde muchos lugares”
CROSS-SITE REQUEST FORGERY
(CSRF)
Es un ataque que presiona a la víctima a
cargar una página que contiene una
solicitud maliciosa, es maliciosa en el
sentido en que hereda la identidad y
privilegios de la víctima para ejecutar
acciones no deseadas en ella, por ejemplo,
cambiar la dirección de correo de la víctima,
la dirección del hogar, o la contraseña.
INCLUSIÓN REMOTA DE ARCHIVOS
(Remote File Inclusion)
• Es una técnica de ataque usada para
explotar “la inclusión dinámica de
librerías”, por ejemplo: $incfile =
$_REQUEST["pag"];
include($incfile.".php");
Diferentes enfoques para realizar un
análisis de vulnerabilidades
• Black box (Caja negra): Para este tipo de análisis los
auditores se ponen en la piel de un atacante el cual no tienen
conocimiento alguno de la aplicación o de los sistemas
asociados a ésta. ➢ White box (Caja blanca): En los análisis
de caja blanca se presenta a los auditores con todo el
conocimiento del aplicativo, así como con una copia del
código fuente para que la revisen a conciencia. ➢ Grey box
(Caja gris): Este enfoque consiste en una mezcla de los dos
anteriores. En esta ocasión se facilitará a los técnicos una
parte de información acerca del funcionamiento de la
aplicación y de los sistemas con los que interactúa y con
ella procederán a realizar el análisis de vulnerabilidades.
Como identificar una vulnerabilidad
• Verificando que se separe la información
no confiable del comando o consulta,
usando variables parametrizadas en todas
las sentencias preparadas y
procedimientos almacenados, evitando las
consultas dinámicas.
• Utilizar herramientas de análisis de
códigos.
• Análisis dinámico
Amenazas de las aplicaciones Web
• Hay diferentes tipos de Amenazas como
son: • Amenazas físicas • Amenazas
Ambientales • Amenazas de Software
Malicioso • Amenazas de Robo •
Amenazas de Destrucción o modificación
de la Información • Amenaza de Errores
los cuales pueden ser intencionados o No
intencionados
Arquitectura cliente servidor
Gestión de riesgo en la seguridad
informática
• La Gestión de Riesgo es un método para
determinar, analizar, valorar y clasificar el riesgo
para posteriormente implementar mecanismos
que permitan controlarlo. La Gestión de Riesgo
se divide en cuatro Partes:
• ✓ Análisis
• ✓ Clasificación
• ✓ Reducción
• ✓ Control
Análisis de riesgos
• Cuando se quiere dotar de seguridad a un sistema informático es necesario
determinar los elementos o activos que requieren protección, identificar el nivel de
vulnerabilidad de cada uno frente a determinadas amenazas y valorar el impacto que
un ataque ocasionaría sobre el sistema informático. “Los activos son los recursos
que pertenecen al sistema de información, se pueden clasificar en: Datos: Los datos
son el núcleo (Core) de la organización, toda empresa u organización depende de
sus datos y éstos pueden ser: Económicos, fiscales, recurso humano, clientes o
proveedores. Software: Son el conjunto de aplicaciones instaladas que se
encuentran en los equipos, que hacen parte del sistema de información, estas
aplicaciones reciben, gestionan o transforman los datos. Hardware: Conjunto de
equipos (Servidores y Terminales) que contienen las aplicaciones y permiten su
funcionamiento, de igual manera almacenan los datos del sistema de información.
Redes: Representa la vía de comunicación y transmisión de datos. La red informática
nombra al conjunto de computadoras y otros equipos interconectados, que
comparten información, recursos y servicios. Puede a su vez dividirse en diversas
categorías, según su alcance (red de área local o LAN, red de área metropolitana o
MAN, red de área amplia o WAN, etc.)
Riesgos más importantes en las
aplicaciones Web
Planteamiento del Problema
• El conocimiento de los catedráticos y estudiantes, es el
activo más grande y menos aprovechado.
• El Internet posee tanta información que mucha de esta
no nos resulta útil y valiosa.
• En la universidad existe poca difusión y utilización de
herramientas que permitan mantener y reunir todos los
conocimientos individuales para llevarlos hacia un
conocimiento grupal.
Solución propuesta
Generalidades
• Gestionar los conocimiento es la gestión de las
capacidades de los recursos humanos de una
organización para la resolución de problemas y
situaciones eficaz y eficientemente, con el objetivo final
de generar ventajas competitivas a medio y largo plazo.
• Los Sistemas de Gestión del Conocimiento son aquellos
sistemas que articulan y potencian el paso del
conocimiento individual al conocimiento de la
comunidad, siendo capaces de preservar, indexar y
formalizar el conocimiento en las organizaciones.
Solución propuesta
Sistema Web para la Gestión del Conocimiento
• Lograr que la mayor parte del conocimiento permanezca
dentro de una organización.
• Accesar la información desde cualquier lugar del mundo
y en cualquier momento.
• Reutilizar los conocimientos para mejorar la
competencia y efectividad.
• Participar activamente de la creación, utilización y
compartición de conocimientos, es decir, adoptar una
cultura orientada al conocimiento.
Solución propuesta
Objetivo Principal
Administrar el conocimiento adquirido por los integrantes de la
Facultad de Ingeniería en Electricidad y Computación (FIEC)
mediante un sistema colaborativo con entorno Web que permita
construir un repositorio de conocimientos útiles y de calidad.
Objetivos Específicos
• Implementar un Sistema Web para la Gestión del Conocimiento que permita crear,
organizar y compartir conocimientos de interés común para los integrantes de la
FIEC adquiridos mediante la experiencia.
• Materializar el conocimiento que poseen los integrantes de la FIEC con el fin de
hacerlo capitalizable, observable, transmisible y valorable.
• Proveer una herramienta que permita pasar el conocimiento individual al
conocimiento de la comunidad.
• Diseñar un sistema enfocado al trabajo en grupo.
• Convertir al Sistema Web para la Gestión del Conocimiento en fuente primaria de
consulta para los integrantes de la FIEC.
• Maximizar el rendimiento y disminuir gastos de aprendizaje.
Funcionalidad
• Provee un “árbol de conocimientos”
Nivel 0: Nodo raíz SGC
compuesto por categorías.
• Permite el almacenamiento de Nivel 1: Facultad
“conocimientos”.
Nivel 2: Carrera
• Proporciona acceso a foros de
discusión. Nivel 3: Especialización
• Autoriza el ingreso de usuarios ESPOL Nivel 4: Materia
y externos.
Conocimiento
• Roles: Administrador, Moderador, Nivel 5: Nodo hoja
Participante e Invitado.
Tecnologías de Implementación
CAPA DE DATOS
CAPA DE CAPA DE LÓGICA DE
PRESENTACIÓN NEGOCIO
ASP.net Agentes de
Referencias
Interfaz Servicios
Web Servicios
Directorio ESPOL
Web
HTML
Cliente
Cliente A
A Internet
Navegador
Explorer C#.net
Componentes
Modelo deSQL
Acceso a
Helper
Datos
C#.net
Cliente Servidor
IIS Web
Cliente B
B
BaseSQL
de Datos Relacional
Server 2000
Tecnologías de Implementación
Software
Software de Servidor
• Sistema Operativo: Windows 2000 SP4, Windows XP SP2
• Buscador de Internet: Internet Explorer 6.0 SP2
• Motor de Base de Datos: Microsoft SQL Server 2000
• Software Adicional: Microsoft Framework .Net 1.1 ó superior
• Servicio de Internet: Internet Information Server
Software de Cliente
• Sistema Operativo: Windows 98, Windows Me, Windows
2000 SP4, Windows XP SP2, Windows 2003.
• Buscador de Internet: Internet Explorer 6.0 SP2
Pruebas y Resultados
Pruebas
• Periodo de pruebas: 31 de Julio del 2006 al 2 de Septiembre del
2006.
• Objetivo: Evaluar la funcionalidad propuesta para los usuarios con rol
participante y realizar recomendaciones que permitan mejorar la
utilización del sistema y dar un valor agregado.
• Participantes: Estudiantes de la materia Sistema de Toma de
Decisiones del I término del año 2006.
Pruebas y Resultados
Pruebas y Resultados
Pruebas y Resultados
Pruebas y Resultados
Análisis de Costos
• Periodo de base: tres años.
• Costos a considerar:
Costo Inicial de la solución.
Costo de Administración.
Costo de Operación.
Costo de Soporte a usuarios.
• Cálculo del Costo Total de propiedad
Costo Total de Propiedad = Ci + Ca + Co + Cs
Análisis de Costos
Cálculo del Costo Total de propiedad
Costo Total de Propiedad = Ci + Ca + Co + Cs
Resumen de Costos de la Solución
Costo Inicial de la Solución (Ci) $ 48.802,00
Costo de Administración (Ca) $ 9.000,00
Costo de Operación (Co) $ 1.350,00
Costo de Soporte (Cs) $ 1.350,00
Total de la Solución $ 60.502,00
Resumen de Costos de la Solución para la FIEC
Costo Inicial de la Solución $ 2.100,00
Costo de Administración $ 9.000,00
Costo de Operación $ 1.350,00
Costo de Soporte $ 1.350,00
Total de la Solución para la FIEC $ 13.800,00
Conclusiones y Recomendaciones
Conclusiones
• Administra eficientemente los conocimientos ingresados por los
usuarios.
• La plataforma web lo hace altamente disponible pudiendo ser
accedido desde cualquier parte y en todo momento.
• La estructura del árbol facilita la creación, organización y
búsqueda de los conocimientos en el sistema.
• Es una herramienta capaz de preservar en el tiempo los
conocimientos que han sido calificados como valiosos.
• Los conocimientos pueden ser revisados por todos los usuarios
sin restricción alguna de acceso.
• Promueve la reutilización de los conocimientos aprovechando
la experiencia de otros para ahorrar tiempo.
• Los foros de discusión proveen un medio de colaboración que
permite la interacción grupal de los usuarios del sistema.
Conclusiones y Recomendaciones
Recomendaciones
• Plantear estrategias para promover permanentemente la
utilización del sistema.
• Tener un administrador y la colaboración de los profesores para
apoyar a la gestión de los conocimientos.
• Enfocar la creación de un sitio desde el cual el sistema se
alimente y pueda generar la estructura del árbol de
conocimientos de manera automática.
• Establecer políticas de monitoreo de disponibilidad y
crecimiento de información.
• Incluir procesos de generación de estadísticas y de depuración
automática de conocimientos no útiles.