Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Acometiendo un ERP
Evaluando la seguridad de un software desarrollado en APEX 5
Undertaking an ERP
Evaluating the security of APEX 5 developed software
Resumen — La seguridad de la información es una preocupación characteristics that can be exploited. (IV) Analysis of the
creciente en empresas y organizaciones, siendo más alta aun vulnerabilities encountered in the previous stage. (V) Exploitation
cuando se vincula a plataformas financieras donde existe of those vulnerabilities through the selection of appropriate tools
información sensible. El presente trabajo resume las técnicas to achieve this purpose. And vi) The post-exploitation stage, where
utilizadas en el pentesting realizado tanto al servidor que aloja al the destruction of evidence of attack, the conservation of the
producto informático, como al software ERP desarrollado en la connection and the accesses obtained to extract information are
herramienta APEX 5 por la Universidad del Azuay. Se han contemplated; tests explained here were carried out within the
contemplado seis etapas que sugiere una prueba de penetración: i) facilities of the Universidad del Azuay, considering the
la conceptualización, que es la etapa que permite definir el alcance development environment in which the ERP project is currently
de las pruebas a realizar; ii) la preparación del laboratorio en la located.
que se definen algunas de las herramientas que servirán para el
inicio de las pruebas de seguridad; iii) la obtención de información Keywords: Pentesting, Information Security, APEX, ERP,
que hace referencia a las etapas de reconocimiento y escaneo en la Hacking
que se identifican posibles objetivos para luego explorar con
mayor profundidad algunas características intrínsecas que
puedan ser aprovechadas; iv) el análisis de las vulnerabilidades I. INTRODUCCIÓN
encontradas en la etapa anterior; v) la explotación de esas
vulnerabilidades mediante la selección de herramientas; y vi) la
post explotación, etapa en la que se contempla la destrucción de La seguridad de la información y la seguridad informática se
evidencias del ataque y la conservación de la conexión y los accesos basan en tres principios fundamentales: i) la disponibilidad, que
logrados para extraer información. Todas estas pruebas fueron hace referencia a que la información debe estar dispuesta en el
efectuadas dentro de las instalaciones de la Universidad del Azuay, momento que se la requiera, ii) la confidencialidad que se refiere
considerando el ambiente de desarrollo en el que actualmente se al acceso autorizado a la misma, y iii) la integridad, que hace
encuentra el proyecto ERP. relación a que la información debe ser alterada bajo
conocimiento. Además, se debe considerar que la información
Palabras clave: Pentesting, Seguridad Informática, APEX, ERP, es el recurso más valioso para una organización, y es más valioso
Hacking. para quien la tenga en el momento oportuno, además de que
tenga conocimiento de cómo utilizarla; por lo tanto, como
propone Francis Bacon la “información es poder” [1], que para
Abstract — Actually, information security is an increasing concern una empresa u organización es sinónimo de ventaja competitiva.
in organizations and enterprises, higher even in financial
platforms, where resides a big amount of sensible data. In this Las empresas están obligadas a anticiparse a los diversos
paper, we contemplate the different techniques used in the escenarios de riesgo de información, debido a una vertiginosa
pentesting performed into the server that hosts the software and evolución de la informática, el constante cambio tecnológico, y
the ERP software, developed by Universidad del Azuay, using el rápido crecimiento de las múltiples transacciones de negocio,
APEX 5 as development platform, including the six penetration en los que la información y los dispositivos computacionales
test stages: I) conceptualization, stage that allows defining the están inmersos en escenarios como ataques de hackers, usuarios
scope of the tests to be performed. II) Preparation of the del sistema, amenazas lógicas, y una gran variedad adicional.
laboratory, which defines some of the tools that we used to initiate Pero, debido a la falta de conocimiento sobre cómo protegerla
security tests. (III) Obtaining information, that refers to the stages
adecuadamente o a la complejidad exigida por muchas normas
of recognition and scanning, in which possible objectives will be
internacionales y mejores prácticas de desarrollo, múltiples
identified and then to explore in greater depth some intrinsic
organizaciones descuidan asegurarla tal como lo determinó
175
proyecto UDA ERP, equipo que mantiene una dirección IP Resultados obtenidos
privada en la red 172.16.x.x, permitiendo el acceso al aplicativo NMAP Sparta
mediante el puerto 80, únicamente dentro de los predios de la 22, 25, 1521, 3700,
institución. Además, se ha indicado que el software está 3820, 3920, 4848,
Puertos 22, 25, 1521, 4848, 7676,
desarrollado en la herramienta Oracle APEX. abiertos 8080, 8181
7676, 7776, 8080,
8181, 8686, 13335,
IV. PREPARACIÓN DEL LABORATORIO 17210, 29573
Tipo de
TCP TCP
puertos
La preparación del laboratorio exige la identificación de las Sistema Virtualizado en Oracle Virtualizado en Oracle
herramientas que serán utilizadas para la ejecución del Operativo Virtual Box Virtual Box
pentesting. Para esta validación de seguridad se ha considerado
el uso de herramientas Open Source, incluyendo a KALI Linux,
distro que contiene más de 300 herramientas para pentesting [9].
Topología n/a
Por otro lado, se ha considerado el uso de VEGA, una
herramienta que permite el escaneo de vulnerabilidades y que
otorga una plataforma para pruebas de seguridad de entornos
web, que permite la ejecución automatizada de scripts de análisis
Servidor
de inyección SQL (SQL Injection) o scripts cruzados (Cross-Site web
Glassfish 4.1.1 Glassfish 4.1.1
Scripting). Se suma el análisis del contexto con Nikto, que es un Métodos
escáner actualizable para la detección de vulnerabilidades de HTTP POST, GET POST, GET
servidores web. aceptados
Acepta
En relación con las pruebas al código fuente, se ha utilizado solicitudes Si Si
OWASP ZAP, APEX SERT y Web Developer Plug In. OWASP ICMP
ZAP es una suite que permite realizar pruebas de seguridad en
aplicaciones y servicios WEB, APEX SERT (Security
Evaluation and Recomendation Tool) es una herramienta que VI. IDENTIFICACIÓN DE VULNERABILIDADES
sirve para evaluar las aplicaciones desarrolladas específicamente
en APEX, y Web Developer Plug In, desarrollada por Chris
Pederik, que sirve para la evaluación de un sitio web, que, para En base a la información obtenida, se procedió con la
este trabajo, será aplicado específicamente en el análisis de identificación de las vulnerabilidades para los escenarios
cookies. propuestos, los mismos que se detallan a continuación.
V. OBTENCIÓN DE INFORMACIÓN
A. Identificación de vulnerabilidades en el código fuente
176
número resultante del algoritmo de Luhn conocido también D. Identificación de vulnerabilidades de denegación de
como módulo 10, y que es utilizado en el cálculo del código de servicio.
control, utilizado en la validación de números de cédula o
tarjetas de crédito [10].
Para comprobar el nivel de seguridad ante ataques de
En cuanto a la validación de contraseñas, la fortaleza de las denegación de servicio, en base a la información obtenida, se
mismas puede ser un impedimento para el atacante, debido a la aplicaron las técnicas de ataque “ICMP Flooding”, “SYN
cantidad de transacciones que le tomaría realizar. Así, según Flooding” y “Ping of death”.
Spendolini [11], una contraseña con solo 5 caracteres de
longitud, y solo con letras minúsculas del alfabeto (por ejemplo, La herramienta hping3 generó paquetes a discreción, es
la contraseña por omisión de un enrutador: “admin”), puede ser decir, crear y analizar paquetes TCP/IP. Para evadir al firewall,
vulnerada en 0.000124 segundos utilizando fuerza bruta si se será necesario generar peticiones aleatorias que terminarán en la
trata de un escenario fuera de línea, y en un escenario en línea, dirección 8080, puerto de escucha de la aplicación. Para generar
en 3.43 horas la contraseña estaría vulnerada. dichas peticiones, se ha ejecutado el comando con la opción “--
rand-source”. De acuerdo a lo que se puede observar en la figura
Una característica interesante propia de APEX es la 1, el tráfico capturado visualiza las direcciones aleatorias, las
generación de tokens aleatorios para cada sesión de usuario. Así mismas que el firewall las considerará como normales.
por ejemplo, la URL de la aplicación
“http://localhost:8080/apex/f?p=101:2:9342982341417:::::”
indica que f?p=101 es el ID de aplicación, 2 hace referencia al
ID de la página, y 9342982341417 que en este caso es el valor
aleatorio generado como único para una sesión establecida,
número que no se genera si no se utiliza el asistente de desarrollo
[11].
B. Identificación de vulnerabilidades de código cruzado Figura 1: Tráfico capturado de las direcciones aleatorias generadas
177
esta prueba, se requiere un espacio de disco considerable, pues Puerto TCP 22 Abierto El puerto 22 no es cifrado y por 4 4
el archivo que contiene estas entradas fue superior a los 14Gb. lo tanto es propenso a ataques
MITM
Puerto TCP 25 Abierto El puerto 25 no es cifrado y por 3 3
lo tanto es propenso a ataques de
fuerza bruta
VII. MODELAMIENTO DE AMENAZAS Puerto TCP 25 Abierto El puerto 25 no es cifrado y por 3 3
lo tanto es propenso a ataques
MITM
Puerto TCP 8080 Abierto Reemplazo de un recurso 4 3 4 4
Según el Proyecto OWASP [3], el modelamiento de específico mediante el método
amenazas es una representación estructurada de toda la POST.
información que afecta a la seguridad de una aplicación, y que Puerto TCP 8080 Abierto Eliminación de un recurso 3 3 4 4
específico mediante el método
se ha vuelto bastante popular en los últimos años. Menciona que DELETE.
Microsoft ha publicado un libro sobre su proceso y que incluye Puerto TCP 8080 Abierto HTTP Method (‘Allow’ Header) 3 3
a este proceso como una actividad clave en su Ciclo de vida de Métodos de riesgo potencial:
PUT, DELETE
desarrollo seguro (S-SLDC).
Puerto TCP 8181 Reemplazo de un recurso 4 3 4 4
Microsoft [13], en su análisis de modelo de amenazas sugiere Abierto específico mediante el método
POST.
realizar 7 pasos: i) Recopilar información básica, ii) crear y Puerto TCP 8181 Abierto Eliminación de un recurso 3 3 4 4
analizar el modelo de amenazas, iii) analizar las amenazas, iv) específico mediante el método
identificar las técnicas y tecnologías de mitigación, v) DELETE.
Puerto TCP 8181 Abierto HTTP Method (‘Allow’ Header) 3 3
desarrollar el modelo de seguridad y las consideraciones de Métodos de riesgo potencial:
implementación, vi) implementar y probar las mitigaciones y PUT, DELETE
vii) mantener el modelo de amenazas sincronizado con el diseño. La cabecera anti secuestro Ataques clickjacking 2 2 2 2
de clic (anti-clickjacking
Según Alcides [14], el riesgo informático es “un conjunto de X-Frame-Options header)
no está presente
normas y procedimientos que son aplicados para salvaguardar El servidor presenta WebBrowsing Fingerprinting 2 2 2 2
un sistema informático, cuya finalidad es garantizar que todos posibilidades de fuga
los recursos que conforman el sistema informático sean mediante ETags
La cabecera de protección Ataques XSS 3 3 3 3
utilizados para el fin que fueron creados sin ninguna contra ataques Cross Site
intromisión” Scripting XSS no está
definida
Para la creación y el modelamiento de amenazas, se han Puerto TCP 1521 Abierto Envenenamiento TNS [16] 3 3 3 3
utilizado las herramientas sugeridas en la metodología Puerto TCP 3700 Abierto Portal of Doom. Usado 3 3 3 3
comúnmente por troyanos [17]
ECU@Risk [15], las mismas que permitieron valorar los riesgos El sitio utiliza SSL y la Denegación de servicios 3 1 3 3
en base a las amenazas identificadas y valoradas. Aplicando la cabecera de transporte
matriz de impacto (Figura 2) sugerida por la metodología, seguro estricto (Strict-
Transport-Security HTTP
Matriz de Impacto Valoración Header) no está definida.
La cabecera de opciones Denegación de servicios 3 1 3 3
E – Extremo 5 de tipo de contenido X-
Content-Type-Options no
A – Alto 4 está establecida
El nombre de host Suplantación de identidad 4 1 3 4
M – Moderado 3 ‘172.16.1.87’ no
B – Menor 2 concuerda con el nombre
del certificado
L – Leve 1 Servidor acepta Saturación ICMP 3 3 3 3
solicitudes ICMP
Figura 2: Matriz de impacto. Fuente: [15] Acepta Métodos POST y Inundación HTTP 3 3 3 3
GET
se pudo llegar a la tabla de valoración de amenazas (tabla 2), en TCP utiliza un Syn Flood 3 3 3 3
mecanismo de
las que se incluye la vulnerabilidad identificada, la amenaza que negociación de tres vías.
puede presentarse, y su impacto en términos de Servidor acepta Ping de la muerte 1 3 1 3
solicitudes ICMP
confidencialidad, disponibilidad e integridad. La última Servidor acepta Inundación IP 1 3 1 3
columna hace referencia al valor absoluto de la amenaza, que en solicitudes ICMP
resumen es el valor más alto obtenido de las tres perspectivas. Contraseñas débiles Fuerza bruta 4 2 2 4
Así también, de acuerdo a lo que sugiere la norma, no todas las Contraseñas débiles Ataque de diccionario 4 2 2 4
Cookies Predicción de credenciales 3 2 2 3
perspectivas son afectadas, según el tipo de activo de Interesting Meta Tags Revelación no intencionada de 2 1 1 1
información y la amenaza identificada. Detected información
Vulnerabilidad Amenaza C D I V
Puerto TCP 22 Abierto El puerto 22 no es cifrado y por 4 4 En base a las vulnerabilidades y amenazas identificadas, se
lo tanto es propenso a ataques de
fuerza bruta.
sugiere priorizar las que mayor impacto pueden ocasionar a la
organización, en este caso, al software ERP y la infraestructura
178
que lo soporta; sin descuidar los correctivos que puedan estándares, que no realice MIME-sniffing o que pueda
realizarse de una forma rápida, como, por ejemplo, denegar las ser dirigido por la aplicación web / servidor web para
solicitudes ICMP en el firewall. que no realice MIME-sniffing.
Como contramedidas, se han podido establecer las • Implementar un IDS/IPS para el análisis de tráfico
siguientes: malicioso, esto permitirá alertar y bloquear los ataques
de inundación, a los cuales el servidor es vulnerable.
• Cifrar el puerto de escucha del aplicativo (uso de
HTTPS), y agregar un certificado digital del tipo
Organization SSL, el mismo que permite evaluar la
autenticidad del sitio y la organización que lo respalda. IX. CONCLUSIONES
179
adopción de certificados digitales que validen, no solo el sitio Available:
web sino además la organización, son obligatorios. https://www.seguridad.unam.mx/historico/documento/
El ataque de fuerza bruta es otro factor que debe ser index.html-id=17. [Último acceso: 14 07 2017].
considerado en la protección del servidor. Como se había visto, [3] The OWASP Project, OWASP Testing Guide 4.0,
el puerto SSH (utilizado para la administración remota) acepta N/E: The OWASP Project, 2017.
conexiones con las cuales se pudo ejecutar un ataque de este [4] T. Vieira y C. Serrao, «Web security in the finance
tipo. Una contraseña simple puede ser fácilmente vulnerada, por sector,» de 11th International Conference for Internet
cuanto se recomienda el uso de contraseñas complejas, las Technology and Secured Transactions, ICITST 2016,
mismas que deben incluir caracteres alfabéticos en mayúsculas Barcelona, 2017.
y minúsculas, caracteres numéricos y caracteres especiales.
[5] R. López, «Pentesting on web applications using
Una sesión APEX genera identificadores de sesión aleatorios ethical - hacking,» de Central American and Panama
cuyas cookies expiran al momento de cerrar el navegador, lo que Convention (CONCAPAN XXXVI), 2016 IEEE 36th,
reduce notablemente la posibilidad de ataques de fuerza bruta Panamá, 2016.
efectivos. Si bien estas cookies no pudieron ser identificadas con
la herramienta Cookie Cadger, han logrado ser encontradas con [6] S. Väli y S. Lopienski, «Deploying APEX
el plugin Web Developer de Chrome. Vulnerability Scanner,» CERN Student Report, 2016.
[7] A. Caballero, Hacking con Kali Linux, Lima, 2015.
Con el uso de las herramientas VEGA, OWASP ZAP, se han
revelado el uso de los métodos GET, POST, PUT, DELETE [8] G. Weidman, Penetration Testing, A Hands-On
provistos por un sistema web para el acceso a la información. De Introduction to Hacking (1), EEUU: No Starch Press,
los anteriores, los dos últimos deben ser manejados con mucho 2014.
cuidado, pues PUT permite cargar contenidos y DELETE [9] O. Security, «Kali Tools,» 2017. [En línea]. Available:
eliminarlos. Estos métodos deben ser analizados y evaluados https://tools.kali.org/tools-listing. [Último acceso: 31
antes de su puesta en producción. 07 2017].
Las dos herramientas indicadas anteriormente también han [10] K. Hussein, N. Sani, R. Mahmod y T. Abdullah,
permitido identificar las cabeceras HTTP expuestas. De estas, se «Enhance Luhn Algorithm for Validation of Credit
puede indicar que “Anti-MIME-Sniffing header X-Content- Cards Numbers,» de International Journal of
Type-Options” aún no ha sido establecida a “no sniff”, Computer Science and Mobile Computing, n/a, 2013.
permitiendo que navegadores antiguos interpreten el contenido
de una forma diferente a la declarada originalmente. [11] S. Spendolini, Expert Oracle Application Express
Security, Apress, 2016.
Si bien una aplicación web puede estar bien desarrollada, la
[12] J. Lemon, «Resisting SYN flood DoS attacks with a
infraestructura computacional que apoya a sus actividades
SYN cache,» USENIX, pp. 89-98, 2001.
también puede verse afectadas si las mismas no son aseguradas
de la forma correcta. En las pruebas realizadas para este [13] Microsoft, «SDL Threat Modeling Tool,» 2017. [En
escenario, se ha podido ver que el servidor es susceptible a línea]. Available: https://www.microsoft.com/en-
ataques de denegación de servicio. En estas pruebas, los ataques us/sdl/adopt/threatmodeling.aspx.
de inundación SYN Flood y TCP Flood resultaron exitosas, por [14] G. Alcides, Seguridad informática, Antioquía,
lo tanto, el uso de un IDS/IPS es recomendado tal como lo Colombia: Universidad de Antioquía, 2009.
sugieren [18] y [19].
[15] E. Crespo, Artist, Metodología de Seguridad de la
Información para la gestión del Riesgo Informático
aplicable a MPYMES. [Art]. Universidad de Cuenca,
AGRADECIMIENTOS
2016.
[16] L. Rocha, «Count Upon Security,» 29 Mayo 2014. [En
Se agradece al Ing. Fernando Balarezo, coordinador del
línea]. Available:
departamento de Tecnologías de Información de la Universidad
https://countuponsecurity.com/2014/05/29/simple-
del Azuay por el acceso dado para la ejecución de las pruebas
indicadas en este documento. and-practical-attack-part-2/.
[17] F. Gallo, Inseguridad Informática, España, 2011.
[18] S. Chakrabarti, M. Chakraborty y I. Mukhopadhyay,
X. REFERENCIAS «Study of snort-based IDS,» ACM, pp. 43-47, 2010.
[19] A. Mansoor, M. Muthuprasanna y K. Vijay, «High
[1] E. Crespo, «Ecu@Risk, Una metodología para la Speed Pattern Matching for Network IDS/IPS,» IEEE
gestión de Riesgos,» Enfoque UTE, pp. 107-121, Xplore, 2006.
2017.
[2] UNAM-CERT, «Aspectos Básicos de la Seguridad en
Aplicaciones Web,» 25 Mayo 2016. [En línea].
180