Вы находитесь на странице: 1из 30

Tecnolgico Nacional de Mxico

Instituto Tecnolgico de Zacatecas

Portafolio de evidencias para la Materia: Seguridad de


aplicaciones Web.

Autor

Alan de la Rosa Cabrera


Nmero de control: 1245075

ndice
Temario:.............................................................................................................. 3
Evaluacin........................................................................................................... 4
Unidad 2.............................................................................................................. 5
Anlisis de informacin:...................................................................................... 5
Campo Laboral:................................................................................................... 8
Mapa conceptual:.............................................................................................. 10
Prctica 1:......................................................................................................... 11
Prctica 2:......................................................................................................... 13
Prctica 3:......................................................................................................... 23
Prctica 4:......................................................................................................... 26
Referencias:...................................................................................................... 30

Temario:
Unidad Temas
1

Subtemas

Introduccin a la seguridad de
aplicaciones Web.

1.1.

Validacin de entradas.

2.1. SQL Injection.


2.2. LDAP Injection.
2.3. XPATH Injection.
2.4. Cross-Site-Scripting.
2.5. Otros ataques inyeccin

Mecanismos de autentificacin
y proteccin

3.1. Mtodos de almacenamiento de credenciales.


3.2. Complejidad de las contraseas.
3.3. Mtodos de autentificacin.
3.4. Uso de CAPTCHA.
3.5. Manejo de sesiones.
3.6. Autorizacin.
3.7 Manejo de errores y loggin.
3.8 Seguridad en Web Services.

Encriptacin.

Seguridad en el servidor de
aplicaciones.

1.2.
1.3.
1.4.
1.5.
1.6.
1.7.

4.1.
4.2.

Qu es la seguridad en aplicaciones
informticas?
Necesidad de la seguridad.
Entorno y objetivos de la seguridad.
Requisitos funcionales.
Principios de seguridad.
Activos.
Administracin de riesgos.

Encriptacin del lenguaje de programacin.


Encriptado en conexin de BD.

5.1 Hardening de Servidores


5.1.1 Aseguramiento de recursos crticos con patches.
5.2 Hardening de Sistemas en Servidores.
5.2.1 Aseguramiento de recursos crticos en sistemas.
5.2.2 Reduccin de riesgos asociados con fraudes y
errores humanos.

Evaluacin
Excelente (100-95); Notable (94-85); Bueno (84-75); Suficiente (74-65) e
Insuficiente (64-55)

Aspectos de la
Evaluacin

Formativo.
Sumativo.
Diagnstico (Al
principio del curso,
slo una vez).
A. Se adapta a
situaciones y
contextos
complejos.
B. Hace
aportaciones a las
actividades
acadmicas
desarrolladas.
C. Propone y/o
explica soluciones
o procedimientos
no vistos en clase
(creatividad).
D. Introduce
recursos y
experiencias que
promueven un
pensamiento
crtico.
E. Incorpora
conocimientos y
actividades
Interdisciplinarias.
F. Realiza su
trabajo de manera
autnoma y
autorregulada.

Valoraci
n de los
aspectos
Sumativo
100%.

Criterios de la evaluacin
(Formativo, Diagnstico y
Sumativo)

Sumativo.

Gua tcnica. (B y C):


Pertinencia (C).
10%
Ortografa (C).
5%
Estructura (C).
5%
Funcin y fundamento terico
(B). 40%

Investigacin de informacin
(A):

Campo Laboral.
Pertinencia 3%
Ortografa 1%
Y Estructura 1%
Pertinencia. 6%
Ortografa. 2%
Y Estructura. 2%

Mapa conceptual (E)

Pertinencia 2%
Estructura 2%.
Y Ortografa 1%

Proyecto (F)

Pertinencia 5%.
Funcin 10%.

Uso de la plataforma en lnea


(D):

Evidencia. (5%)

Instrumentos de Aprendizaje

Reporte de la investigacin.
Reporte de la Gua tcnica.
Mapa conceptual.
Reporte del proyecto
Plataforma en lnea.

Nota: Con una falta de ortografa se resta 50% al porcentaje correspondiente, con la
omisin de un tema, con la omisin de un reporte y con informacin fuera de contexto de
estudio. Los criterios anteriores se evalan por tema de estudio.

Unidad 2
Competencias a desarrollar: Identificar oportunidades relacionadas a los
aspectos de seguridad en aplicaciones web. Implementar tcnicas confiables para
evitar mtodos de inyeccin

Anlisis de informacin:

2.1 SQL Injection: Un ataque por inyeccin SQL consiste en la insercin o


inyeccin de una consulta SQL por medio de los datos de entrada desde el
cliente hacia la aplicacin. Un ataque por inyeccin SQL exitoso puede leer
informacin sensible desde la base de datos, modificar la informacin (Insert/
Update/ Delete), ejecutar operaciones de administracin sobre la base de datos
(tal como parar la base de datos), recuperar el contenido de un determinado
archivo presente sobre el sistema de archivos del DBMS y en algunos casos emitir
comandos al sistema operativo. Los ataques por inyeccin SQL son un tipo
de ataque de inyeccin, en el cual los comandos SQL son insertados en la entrada
de datos con la finalidad de efectuar la ejecucin de comandos SQL predefinidos.

2.2 LDAP Injection: LDAP Injection: Las tcnicas de inyeccin de comandos LDAP
en aplicaciones web se basan en los mismos principios que las tcnicas de SQL
Injection. En una aplicacin web el programador, en un determinado punto recoge
datos enviados por el usuario que van a ser utilizados para generar una consulta
LDAP. En un entorno vulnerable el programador no realiza el filtrado de los
parmetros y el atacante aprovecha este fallo de seguridad para poder inyectar
cdigo y cambiar el resultado que se obtiene con el filtro.

2.3 XPath es un lenguaje que permite la bsqueda de informacin en documentos


XML por medio de expresiones especficas para su estructura. Est pensado para
optimizar los tiempos de bsqueda haciendo uso de la organizacin de nodos que
poseen los ficheros XML. Como cualquier medio para el almacenamiento y

bsqueda de datos, es posible implementarlo en aplicaciones web, de modo que


pueden sustituir a los SGBD (sistema gestor de base de datos) basados en SQL.
2.3.1. XPath injection y Blind XPath Injection XPath Injection es una vulnerabilidad
que radica en la modificacin de los parmetros de bsqueda a la hora de formar
una query XPath. Una inyeccin XPath sucede cuando se inserta cdigo XPath
dentro de la sentencia, y ejecuta el cdigo inyectado dentro del motor de
bsqueda XML. Este tipo de vulnerabilidades basadas en inyecciones (XPath
Injection, SQL Injection, LDAP Injection...) son fallos de seguridad causados por
una mala programacin de la aplicacin que hace la conexin contra el motor de
bsqueda, sin importar que la aplicacin sea de escritorio o web.

2.4 Cross Site Scripting (XSS):


Esta amenaza surge de los riesgos inherentes de permitir a un servidor web enviar
cdigo ejecutable (en cualquier lenguaje de scripting embebido en HTML) a un
browser. Cuando a un script de una pgina se le permite acceder a datos de otra
pgina u objeto, existe la posibilidad de que un sitio web malicioso, lo utilice para
obtener informacin confidencial.
El cross site scripting, aprovecha las vulnerabilidades en los mecanismos de
validacin de interaccin entre pginas y objetos y en lenguajes scripting que
ejecutan en el cliente.
Existe tres tipos conocidos que vulnerabilidades que implican
Tipo 1 XSS local
En esta categora el problema reside en el propio script del lado del ciente de la
pgina. Por ejemplo si un fragmento de JavaScript accede un parmetro de un
request HTML y lo utiliza para escribir HTML en su propia pgina, no codificndolo
como entidades HTML, se presenta la vulnerabilidad. Estos datos sern
reinterpretados por los browsers como HTML, que podra incluir cdigo adicional
(maligno).
Tipo 2 XSS reflejado
Este es el tipo ms comn, tambin es conocido como no-persistente. La
vulnerabilidad se presenta cuando los datos provistos por el cliente es utilizada

inmediatamente por scripts del lado del servidor para generar la pgina de
resultados. Si datos no validados provistos por el cliente son incluidos en la pgina
de resultados sin una codificacin apropiada, es posible insertar cdigo desde el
lado del cliente. Basta con un poco de ingeniera social para llevar a un usuario
desprevenido a seguir un link malicioso que inserte este cdigo en la pgina de
resultados, obtenindose acceso total a su contenido.
Tipo 3 XSS persistente
Este tipo incluye los ataques ms poderosos. La vulnerabilidad existe cuando los
datos provistos por el cliente a la aplicacin es almacenada persistentemente en el
servidor, y accesible a varios usuarios del sitio sin codificacin de entidades HTML
por ejemplo message boards. El atacante puede insertar un script una nica vez,
y con esto le basta para alcanzar a un gran nmero de usuarios, sin requerir
mucho esfuerzo de ingeniera social. Los mtodos de insercin son variados y no
es necesario utilizar la aplicacin misma para explotar la vulnerabilidad.
2.4 XSS, del ingls Cross-site scripting es un tipo de inseguridad informtica o
agujero de seguridad tpico de las aplicaciones Web, que permite a una tercera
persona inyectar en pginas web visitadas por el usuario cdigo JavaScript o en
otro lenguaje similar (ej: VBScript), evitando medidas de control como la Poltica
del mismo origen. Este tipo de vulnerabilidad se conoce en espaol con el nombre
de Secuencias de rdenes en sitios cruzados.
Es posible encontrar una vulnerabilidad XSSSO en aplicaciones que tengan entre
sus funciones presentar la informacin en un navegador web u otro contenedor de
pginas web. Sin embargo, no se limita a sitios web disponibles en Internet, ya
que puede haber aplicaciones locales vulnerables a XSS, o incluso el navegador
en s.

2.5 Otros ataques de inyeccin:


Inyeccin CRLF (CRLF Injection): Las vulnerabilidades web estn de moda, y una
de ellas es la inyeccin CRLF (CRLF Injection). Esta vulnerabilidad ocurre cuando
un atacante es capaz de inyectar datos en una peticin a un servidor, debido a la
falta de filtrado de datos de entrada por parte del mismo.
En este caso, la web afectada permite pasar directamente valores a los campos
de respuesta (Location, Set-Cookie.) sin sanearlos lo que a su vez nos permite

diversos tipos de ataque


defacement,page injection.

como

XSS,

Cache-Poisoning,

Cache-based

Campo Laboral:

1.- Qu organizaciones ofrecen servicios para pruebas de inyeccin de cdigo en


relacin a las aplicaciones Web de las compaas actuales?
http://www.isecauditors.com/
Caractersticas del servicio
Las actuaciones que se llevan a cabo para realizar la Auditora de Aplicacin,
siguen la filosofa de caja negra, es decir, en ningn momento se audita el cdigo
fuente de la aplicacin. El motivo de esta metodologa de trabajo es la de simular
la actuacin real de un atacante malicioso que, a travs de las aplicaciones
auditadas y sin disponer de su cdigo fuente, intente realizar un ataque al sistema,
bases de datos, etc...
El proceso de auditar Aplicaciones est planificado en las fases que se presentan
a continuacin:
Anlisis Funcional: Se realiza un estudio general de la aplicacin, adquiriendo
una visin global de las funcionalidades que proporciona con el fin de plantear las
actuaciones y procedimientos ptimos que se llevan a cabo en el Anlisis Tcnico.
Anlisis Tcnico: Se realiza un anlisis de la aplicacin de manera que se pueda
decidir a qu tipos de ataques es sensible.
Diseo de las pruebas: En esta fase se disean las pruebas a realizar para
explotar aquellas deficiencias de seguridad que puedan aparecer en la aplicacin
auditada.
Desarrollo de las pruebas: Se programarn las pruebas a ejecutar, y se
determinar el orden en el que se llevarn a cabo.
Realizacin de las pruebas: Durante esta fase se llevan a cabo todas las
pruebas sobre la aplicacin auditada, se analizan los resultados obtenidos y en el
caso de detectar nuevas vulnerabilidades a explotar se vuelve a la fase de diseo
para intentar explotarlas.
El principal problema que nos encontramos en las aplicaciones, es que no se
realizan adecuadamente las validaciones de los datos de entrada antes de
usarlos, esto provoca que la mayora sean sensibles a ataques contra el sistema

de ficheros o ataques de desbordamiento de buffer entre otros, al verse afectadas


por vulnerabilidades. Para llevar a cabo este anlisis se realizan las siguientes
pruebas:

Pruebas de XSS (stored, reflected y basados en el DOM).

Pruebas de Cross Site Flashing.

Pruebas de inyeccin de cdigo SQL.

Pruebas de inyeccin LDAP.

Pruebas de inyeccin ORM.

Pruebas de inyeccin XML.

Pruebas de inyeccin SSI.

Pruebas de inyeccin XPATH.

Pruebas de inyeccin IMAP/SMTP.

Pruebas de inyeccin de cdigo.

Pruebas de inyeccin de comandos de sistema operativo.

Pruebas de desbordamiento de memoria.

Pruebas de HTTP Splitting/Smuggling.

2.- En dnde?
C. Santander, 101. Edificio A. 2
E-08030 Barcelona (Spain)
3.- En Internet por medio del correo electrnico, de las redes sociales o del acceso
al sitio Web de una compaa que se dedica al establecimiento o regulacin de la
seguridad informtica en las empresas.
http://www.tgnsystems.com/sistemas/seguridad-informatica/
TGN Systems pone a su disposicin una amplia gama de servicios especializados
en materia de seguridad informtica, con la finalidad de garantizar y adaptarse a
cualquier tipo de cliente final. En nuestras soluciones de seguridad utilizamos
productos de ltima generacin de de distintas categoras: cortafuegos (firewalls),
cortafuegos de aplicaciones, prevencin de intrusiones IPS, proteccin antivirus,
antispyware, antimalware, seguridad de correo electrnico y anti spam, controles

de acceso, redes privadas virtuales SSL e IP-Sec, filtrado de contenidos web,


soluciones de Backup y copias de seguridad.

Mapa conceptual:

1 Iniciamos sesin en el sistema CentOs7 con permisos administrativos, e instalamos


el servicio web con el comando yum- y install httpd
Iniciamos el servicio:
Systemctl start httpd.service
Hacemos que se habilite el servicio cada vez que iniciamos el sistema:
Systemctl enable httpd.service

2 Instalamos el sistema gestor de bases de datos MariaDB:


yum install mariadb mariadb-server
Iniciamos el servicio:
systemctl start mariadb.service
Hacemos que se habilite el servicio cada vez que iniciamos el sistema:
systemctl enable mariadb.service
Iniciamos la instalacin de MariaDB, establecemos una contrasea segura:
mysql_secure_installation

Prctica 1:
Introduccin: En la prctica, se realizar la instalacin de la tecnologa LAMP en
un equipo virtual con el sistema operativo CentOs7.

3 Instalamos el lenguaje PHP:


yum y install php
Verificamos el funcionamiento creando un archivo .phpy conectando a la ip del
servidor desde el cliente.

4 Instalar el soporte de mysql para php


yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring
php-snmp php-soap curl curl-devel
Verificar la conectividad del lenguaje PHP con el DBMS, por medio de un script:

5 Fin.

Desarrollo:

Conclusin: LAMP hace referencia a Linux, Apache, MySQL y PHP/Perl/Python.


La combinacin de estas tecnologas es usada principalmente para definir
la infraestructura de
un servidor
web,
utilizando
un paradigma
de
programacin para el desarrollo.

Prctica 2:
Introduccin: En esta prctica, se realizar la instalacin y configuracin del
servicio dhcp, adems se realizara un ejemplo de ataque SQL Inyection.
Desarrollo:
1

Iniciar el servidor con el sistema operativo CentOs7 con la tecnologa


L.A.M.P previamente instalada, instalar y configurar el servicio dhcp

Configurar el rango de las direcciones i.p que asignar el servidor dhcp

Verificar la conexin con el servidor en los equipos de la red:

Verificar desde los clientes que el servicio php est instalado y se est
ejecutando:

Verificar desde los clientes que el servicio mySQL se est ejecutando por
medio de un script:

Crear la base de datos usuario, con las tablas: id_usuario int, nombre
varchar(50), clave varchar(10), datos varchar(60), correo varchar(40) e
insertar 3 ejemplos:

Conectar con putty desde un cliente, y crear los archivos formulario.html y


formulario.php

Verificar e interpretar el funcionamiento del archivo formulario.html y


formulario.php para hacer el ataque mySQL inyection.
Si ingresamos en el formulario un nombre, realizar la consulta y mostrar
los datos del usuario si existe en la base de datos.

Si introducimos la sentencia ' or '1'='1 realizaremos un ataque SQL


Injection el cual mostrar toda la informacin en la base de datos.

Fin.

Observacin: Durante la prctica de la configuracin del servicio dhcp no


contbamos con un Access point, utilizamos un Smartphone con el cual tenamos

conexin entre los equipos, pero el servidor dhcp no asignaba las direcciones ip a
los equipos, solamente las asign cuando realizamos la prueba conectados en la
red Servidores.

Prctica 3:
Introduccin: En la prctica se realizar un ejemplo ms de SQL Injection
Desarrollo:
1
Iniciar y autentificarse como usuario administrador en el servidor con el
sistema operativo CentOs7 con la tecnologa L.A.M.P previamente
instalada.
2
Conectar al servidor desde los dems equipos con el software putty y crear
los archivos baja.html y baja.php
Armando: baja.html

Ana: baja.php

Modificar la base de datos utilizada en la prctica anterior y agregar el


campo correo tipo varchar de tamao 40 e insertar datos como ejemplo.
Isabel:

Hacer un respaldo de la base de datos usuarios:


Jorge:

Conectarse a la direccin ip del servidor y abrir el archivo baja.html, dar


click en el enlace
Fabiola:

Al hacerlo, se eliminar de la base de datos el correo ana@hotmail.com


establecido en el archivo baja.html

Verificar que el correo se ha eliminado:

En el navegador, abrir la consola de javascript y usar la funcin:


encodeURIComponent("' OR '1'='1"); y obtendremos la secuencia
codificada: "'%20OR%20'1'%3D'1"
Alan:

Pegar la secuencia '%20OR%20'1'%3D'1 al final de la url donde se dio de


baja el usuario ana@hotmail.com

El ataque SQL elimin toda la informacin de la base de datos usuarios.

Fin.

Conclusin:
Al agregar la secuencia codificada ' OR '1'='1 se elimin toda la informacin de la
base de datos, es importante verificar la seguridad de las aplicaciones que
desarrollamos para prevenir este tipo de ataques que podran traer como
consecuencia la prdida de informacin importante.

Prctica 4:
Introduccin: Se realizar la instalacin y configuracin del servidor LDAP.
Desarrollo:
1
Iniciar y autentificarse como usuario administrador en el servidor con el
sistema operativo CentOs7, instalar el servidor LDAP

Copiar la base de datos de ejemplo, e iniciar el servicio

Configurar que el servicio se ejecute cada vez que iniciemos el sistema

Generar la contrasea encriptada y establecerla en el archivo chrootpw.ldif

Establecemos la contrasea de administrador:

Agregamos los basic schema

Establecemos el nombre del dominio en el archivo chdomain.ldif

Guardar en la base de datos.

Establecer el nombre del dominio en el archivo basedomain.ldif y agregar

las entradas con el nombre del dominio.

Crear una cuenta de usuario en el archivo ldapuser.ldif

Dar de alta el nuevo usuario:

10

Iniciar e instalar el cliente OpenLDAP en la otra terminal

Establecer la direccin del servidor LDAP y el nombre del dominio

11

Crear el archivo mkhomedir.te para agregar una regla a SELinux que


permita crear directorios automticamente en home.

12

Iniciar sesin con el usuario creado anteriormente

Crear una nueva contrasea:

13

Fin.

Conclusin: Un servidor LDAP es un protocolo a nivel de aplicacin que permite


el acceso a un servicio de directorio ordenado y distribuido para buscar diversa
informacin en un entorno de red.

Referencias:
https://prezi.com/vrbi3pe9jtgj/tipos-de-ataques-informaticos/
https://es.wikipedia.org/wiki/Cross-site_scripting
https://es.wikipedia.org/wiki/Inyecci%C3%B3n_SQL
https://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=1
https://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=2
https://www.server-world.info/en/note?os=CentOS_7&p=openldap&f=3

Вам также может понравиться