Está en la página 1de 26

Universidad Tecnológica de Panamá

Facultad de Ingeniería de Sistemas Computacionales


Carrera: Ingeniería de Sistemas y Computación

Asignatura
Seguridad en tecnología de Computación

Profesora
Ing. Omaira Ruiloba

Proyecto de Investigación
Seguridad en sitio web

Integrantes
Edwin Martínez C 8-913-1448
Thania Powell 2-747-1016
Abraham Vega 8-917-118
Irma Kwiers 8-911-333

Grupo
1IL-151

2019
Contenido

I. Introducción .................................................................................................... 3
II. La seguridad en sistemas informáticos........................................................ 4
2.1 Principios básicos.................................................................................... 5
2.2 Políticas de seguridad. ............................................................................ 6
2.3 Ataques informáticos............................................................................... 8
2.4 Ataques vía Web....................................................................................... 8
2.5 Aplicación de las políticas de seguridad ............................................. 11
III. Herramienta de análisis ............................................................................ 13
3.1 Rapid Scan.............................................................................................. 13
3.2 Características ....................................................................................... 13
3.3 Controles de vulnerabilidad .................................................................. 14
3.4 Requerimientos ...................................................................................... 14
3.5 Interfaz .................................................................................................... 14
IV. Análisis del sitio web ................................................................................ 16
4.1 Resultados .............................................................................................. 16
V. Recomendaciones ........................................................................................ 22
VI. Conclusión ................................................................................................. 24
VII. Referencias ................................................................................................ 25

2
I. Introducción

Actualmente, no hay día que no se reporte que millones de páginas de internet,


servidores y equipos móviles a escala mundial son blancos de la ciber delincuencia.
Ante ello debes entender la importancia de este tema.
Lamentablemente, los sitios web son de los más propensos a ser atacados por los
llamados piratas informáticos. También lo son las redes a las que se conectan los
servidores de internet, sin olvidar los riesgos creados por los empleados que
desconocen los temas de ciber seguridad o el mal uso de los recursos. Siempre hay
un eslabón débil en la cadena, y debes asegurarte que este no se rompa y origine
un problema.
Los servidores web, por estructura, abren una ventana entre tu red y el mundo. El
cuidado que tengas en su mantenimiento, las actualizaciones de las Apps y la
codificación del sitio en internet definirán el tamaño de esa ventana. Ante ello, lo
recomendable es que, ante un buen trabajo de análisis interno, establezcas el grado
de seguridad web que quieres tener para evitar ser una víctima.
Los sitios web son de los más propensos a ser atacados por los llamados piratas
informáticos. También lo son las redes a las que se conectan los servidores de
internet, sin olvidar los riesgos creados por los empleados que desconocen los
temas de ciber seguridad o el mal uso de los recursos. Siempre hay un eslabón
débil en la cadena, y debes asegurarte que este no se rompa y origine un problema.
En el documento en cuestión vamos a ver los resultados obtenidos luego de realizar
un análisis a un determinado sitio web, las vulnerabilidades que posee el mismo y
las posibles soluciones a estas , así como también la herramienta que utilizamos
para la realización de dicho análisis.

3
II. La seguridad en sistemas informáticos
El 22 de noviembre de 1988 Robert T. Morris un estudiante graduado de la
Universidad de Cornell, protagonizó un gran incidente de la seguridad informática:
uno de sus programas se convirtió en el famoso gusano de Internet llamado “El
Gusano de Morris”. Miles de computadoras conectados a la red se vieron
inutilizadas durante días, y las pérdidas fueron estimadas en millones de dólares.
Desde ese momento el tema de la seguridad en sistemas operativos, redes,
hardware y software han adquirido una gran importancia [1].
Hoy en día la seguridad informática es cada vez más reconocida e importante a
nivel mundial, tanto en las empresas privadas como en las instituciones públicas,
ya que Internet es la principal fuente de acceso de cualquier tipo de información y
por ello se han diseñado e implementado un sinnúmero de aplicaciones para casi
todas las áreas del conocimiento. Esto ha permitido que se automaticen muchos
procesos que habitualmente se realizaban de forma manual, lo que permitió que se
agiliten los procesos y simplificado el trabajo de las personas. Por tal razón las
personas se han vuelto muy dependientes de Internet, lo que podría ser un
problema debido a los fraudes de inseguridad informática [2].
La definición de Seguridad Informática es un concepto más amplio y se puede definir
como cualquier medida que impida la ejecución de operaciones no autorizadas
sobre un sistema o red informática, cuyos efectos pueden producir daños de la
información y comprometer su confidencialidad, autenticidad e integridad. [3]
Los profesionales de la seguridad de la información deben proporcionar dos
funciones distintas, la dirección ejecutiva y el rol táctico. La dirección ejecutiva de la
información es necesaria para tomar decisiones de riesgo oportuna, sensible y
realista en materia de gestión de la información. El rol táctico hay que tomar en
consideración la parte operacional (el impacto que tiene un incidente en nuestra
capacidad para apoyar al proceso del negocio), de recuperación (el impacto y el
precio de nuestras acciones) y el financiero (el gasto de compensación de las horas
extraordinaria, gasto directo en efectivo y otros gastos) [4]. El valor de la seguridad
está constituido por la relación calidad-precio. Cuando mejor sea la relación, mayor
será el valor.
José Ángel de Bustos hace una reflexión y afirma que para que un sistema
informático sea seguro no basta con utilizarlo correctamente. Hace falta que esté
libre de fallos, que no tenga puertas traseras4 y que no posea ninguna funcionalidad
"no documentada". La única forma de poder fiarnos de la seguridad de un programa
informático es tener a nuestra disposición el código fuente, ya que de esta manera
podemos ver cómo ha sido desarrollado [5].
Es cierto que esta reflexión tiene dos caras, la primera es que al tener el código
fuente disponible y por ende los intrusos tienen ventajas, ya que pueden descubrir
los fallos y aprovecharse de ellos, y también existe gente dedicada a la "caza" de

4
bugs que descubre los fallos, los pone en conocimiento de los usuarios y los arregla,
con lo cual los usuarios pueden obrar en consecuencia.
Lo que ocurre es que no hay una “cultura” de seguridad en Internet. La sociedad en
que vivimos nos ha enseñado desde que éramos niños unas reglas básicas de
protección de nuestros objetos personales para evitar pérdidas o robos. En cambio,
nuestra experiencia con Internet es muy breve y es una realidad que cada vez más
personas necesitaran conocer el manejo de las computadoras, así como las
protecciones que día a día se van ofreciendo para garantizarnos la seguridad en el
manejo de la información.

2.1 Principios básicos


Al hablar de aplicaciones Web se está haciendo directamente referencia a seguridad
lógica6, ya que en lo que se refiere a seguridad física pertenece a otras instancias
distintas de un desarrollado Web. Por tal razón, en este trabajo tomaremos como
referencia a la norma ISO/IEC 177997. Esta norma evalúa el nivel de protección de
un sistema informático analizando la confidencialidad, integridad y disponibilidad,
dependiendo del tipo de organización.
• Confidencialidad: los objetos de un sistema han de ser accedidos únicamente por
elementos autorizados a ello. Asegura el secreto de las comunicaciones contenidas
en los mensajes.
• Integridad: los objetos sólo pueden ser modificados por elementos autorizados, y
de una manera controlada. Hace referencia al hecho de que la información no pueda
ser manipulada en el proceso de envío.
• Disponibilidad: los objetos del sistema tienen que permanecer accesibles a
elementos autorizados. [6].
Las aplicaciones Web, por definición, permiten el acceso de usuarios a recursos
centrales tal como al servidor Web y el cual permite el acceso a otros servidores de
base de datos. Con los conocimientos y la implementación correcta de medidas de
seguridad, se pueden proteger los recursos, así como proporcionar un entorno
seguro en el cual los usuarios trabajen cómodos con su aplicación.
Una aplicación Web, especialmente que se ejecuta en Internet, es muy vulnerable
a ataque del hacker que una aplicación autónoma o cliente-servidor típica. Hay
varias razones para esto:
Disponibilidad y accesibilidad: Muchas aplicaciones Web están disponibles para los
usuarios públicos en cualquier momento del día o de la noche. Como los servidores
Web tienen que permitir el acceso a usuarios públicos y no tienen la protección
completa de los cortafuegos típicos de una empresa.
Familiaridad: La mayoría de los atacantes, incluso los menos sofisticados, conocen
las interfaces Web. Un navegador Web es fácil de obtener y es uno de los
programas de aplicación más comunes. El protocolo HTTP está bien definido, y

5
existen muchas herramientas de hacking9 creados específicamente para ayudar a
los atacantes a penetrar y comprometer las aplicaciones Web.
Facilidad: La configuración de un servidor Web, contenedor Web y aplicación Web
para uso público es extremadamente compleja. Los atacantes, frecuentemente,
pueden aprovechar esta complejidad y explotar deficiencias en la configuración de
la aplicación o del sistema. Publicidad: El ego de algunos hackers experimentados
es la publicidad, la fama, o un simple deseo de probar que pueden hacer algo que
pocas otras personas pueden hacer [7].

2.2 Políticas de seguridad.


El término política de seguridad se suele definir como un conjunto de requisitos
definidos por los responsables de un sistema, que indica en términos generales que
está y que no está permitido en el área de seguridad durante la operación general
del sistema Web [9].
La evolución de Internet y su gran desarrollo en la década de 1990 planteó la
importancia de las políticas de seguridad para las transacciones a distancia. Los
datos sensibles tuvieron que ser protegidos, y los nodos de la Internet tenían que
ser protegidos de accesos no deseados.
La mayoría de errores involuntarios de seguridad se dan en el código de la misma
aplicación Web, independiente de la tecnología usada en la implementación de
seguridad en los servidores Web.
Según Scott D. y Sharp R. [10] afirma que la aplicación de una política de seguridad
a través de una aplicación Web es difícil debido a:
 La aplicación se puede escribir en una variedad de idiomas. En este caso, no
hay manera fácil de abstractos relacionados con la seguridad de código.
 Los lenguajes utilizados para el desarrollo Web no siempre son favorables a
la escritura relacionada con la seguridad (en especial del código en tiempo
de compilación). Un sitio Web puede estar formada por cientos si no miles,
de direcciones URL.
 El rendimiento es un factor crítico.
 Es importante ser capaz de evitar el procesamiento excesivo y ser capaz de
imponer comprobaciones suficientes cuando sea necesario para garantizar
la seguridad de la aplicación.
 Las aplicaciones Web a menudo contienen componentes de terceros. Ya que
no puede ser viable para modificar la fuente de dichos componentes.
La política se refleja en una serie de normas, reglamentos y protocolos a seguir,
donde se definen las medidas a tomar para proteger la seguridad del sistema; pero,
ante todo, una política de seguridad es una forma de comunicarse con los usuarios
Siempre hay que tener en cuenta que la seguridad comienza y termina con personas
y debe:

6
Ser holística, es decir cubrir todos los aspectos relacionados con la seguridad. No
tiene sentido proteger el acceso con una puerta blindada si a esta no se la ha
cerrado con llave. Adecuarse a las necesidades y recursos. Ser atemporal. El
tiempo en el que se aplica no debe influir en su eficacia y eficiencia. Definir
estrategias y criterios generales a adoptar en distintas funciones y actividades,
donde se conocen las alternativas ante circunstancias repetidas.
Una política de seguridad ha de contemplar los elementos claves antes
mencionados como son: la Integridad, Disponibilidad, Privacidad y, adicionalmente,
Control, Autenticidad y Utilidad [11].
Otro punto importante dentro de las políticas de seguridad es el control de acceso.
Esta medida determinará que el usuario solo tendrá acceso a los datos académicos
que le sean necesarios para desempeñar su trabajo. Así que un usuario profesor
solo tendrá acceso a los datos académicos de sus alumnos y a su asignatura. Para
el control de acceso es necesario establecer un grupo de usuario con sus
respectivos roles, especificar que tareas van a realizar y documentar esta
información. El control de accesos descrito hasta el momento se lo denomina como
control lógico [8].
La privacidad de la información es importante en cualquier para cualquier sistema
Web y en España existe un decreto16 que protege la privacidad de la información.
Este decreto, establece tres niveles de protección de datos que son: Básico, Medio
y Alto.
 Nivel Básico: Todos los ficheros que contengan datos personales,
circunstancias sociales, académicas, profesionales, laborables, comerciales
o económicas.
 Nivel Medio: Cuando los datos se refieren a infracciones administrativas o
penales, Hacienda Pública, servicios financieros o solvencia patrimonial o de
crédito.
 Nivel Alto: Los ficheros que contengan datos especialmente protegidos como
los relacionados con la ideología, religión, creencias, origen racial, vida
sexual, salud y datos recabados para fines policiales [12].
Según el decreto, esta seguridad es aplicable a todos los datos, el reglamento define
medidas de seguridad concretas que van desde cosas básicas como un registro de
incidencias y asegurar la correcta identificación y autenticación de los usuarios que
accedan a los datos personales, medidas de nivel medio como auditorías y control
de acceso físico hasta medidas de nivel alto como el cifrado de las comunicaciones
o un registro de acceso detallado que guarda cómo mínimo la identificación del
usuario, la fecha y hora en que se realizó, el fichero accedido, el tipo de acceso y si
ha sido autorizado o denegado.
El responsable del sistema debe elaborar el documento de seguridad que recogerá
las medidas de índole técnica y organizativa acordes a la normativa de seguridad

7
vigente que será de obligado cumplimiento para el personal con acceso a los
sistemas de información.

2.3 Ataques informáticos.


Un ataque informático consiste en aprovechar alguna debilidad o falla en el
software, en el hardware, e incluso, en las personas que forman parte de un
ambiente informático; a fin de obtener un beneficio, por lo general de índole
económico, causando un efecto negativo en la seguridad del sistema, que luego
repercute directamente a una organización.
Para minimizar el impacto negativo provocado por ataques, existen procedimientos
y mejores prácticas que facilitan la lucha contra las actividades delictivas y reducen
notablemente el campo de acción de los ataques. Uno de los pasos más importantes
en seguridad, es la educación. Comprender cuáles son las debilidades más
comunes que pueden ser aprovechadas y cuáles son sus riesgos asociados,
permitirá conocer de qué manera se ataca un sistema informático ayudando a
identificar las debilidades y riesgos para luego desplegar de manera inteligente
estrategias de seguridad efectivas [13].
Fases mediante la cual los atacantes de redes y sistemas Web realizan sus
intrusiones, ésta contempla un conjunto de 5 pasos para obtener y mantener los
accesos a los sistemas Web y son:
 Reconocimiento: Esta etapa involucra la obtención de información con
respecto a una potencial víctima que puede ser una persona u organización.
Por lo general, durante esta fase se recurre a diferentes recursos de Internet
como Google, entre tantos otros, para recolectar datos del objetivo.
 Exploración: Esta etapa se utiliza la información obtenida en la fase de
reconocimiento y tratar de obtener datos como direcciones IP, nombres de
host, datos de autenticación, entre otros.
 Obtener acceso: En esta instancia comienza a materializarse el ataque a
través de la explotación de las vulnerabilidades y defectos del sistema
descubiertos durante las fases de reconocimiento y exploración.
 Mantener el acceso: Una vez que el atacante ha conseguido acceder al
sistema, buscará implantar herramientas que le permitan volver a acceder en
el futuro desde cualquier lugar donde tenga acceso a Internet.
 Borrar huellas: Una vez que el atacante logró obtener y mantener el acceso
al sistema, intentará borrar todas las huellas que fue dejando durante la
intrusión para evitar ser detectado por el profesional de seguridad o los
administradores de la red. En consecuencia, buscará eliminar los archivos de
registro.

2.4 Ataques vía Web.


Los ataques a las páginas Web de una organización son casi siempre los más
vistosos, en cuestión de minutos piratas de todo el mundo se enteran de cualquier

8
problema de una página Web principal. Por supuesto, la noticia de la modificación
salta inmediatamente a los medios, que gracias a ella pueden rellenar alguna
cabecera sensacionalista sobre los piratas de la red, y así se consigue que la
imagen de la empresa atacada caiga notablemente y la del grupo de piratas suba
entre la comunidad nacional o internacional.
La mayor parte de estos ataques tiene éxito gracias a una configuración incorrecta
del servidor, errores de diseño del mismo, al código de la propia aplicación Web, en
organizaciones grandes estos ataques suelen ser bastante complejos(alta
disponibilidad, balanceo de carga, sistemas propietarios de actualización de
contenidos...) y difíciles de administrar correctamente, mientras que si la empresa
es pequeña es muy posible que haya elegido un servidor Web simple en su
instalación y administración pero en el cual es casi imposible garantizar una mínima
seguridad. Sea por el motivo que sea, la cuestión es que cada día es más sencillo
para un pirata ejecutar órdenes de forma remota en una máquina, o al menos
modificar contenidos de forma no autorizada, gracias a los servidores Web que un
sistema pueda albergar. Cualquier analizador de vulnerabilidades18 que podamos
ejecutar contra nuestros sistemas es capaz de revelar información que nos va a
resultar útil a la hora de reforzar la seguridad de nuestros servidores Web.
En cualquier servidor Web es muy importante el usuario bajo cuya identidad se
ejecuta el demonio httpd, ese usuario no debe ser nunca el root del sistema, pero
tampoco un usuario genérico como nobody, se ha de tratar siempre de un usuario
dedicado y sin acceso real al sistema. Por supuesto, las páginas HTML nunca deben
ser de su propiedad, y mucho menos ese usuario ha de tener permiso de escritura
sobre los mismos, con un acceso de lectura es más que suficiente en la mayoría de
los casos.
Hemos de tener en cuenta que, si el usuario que ejecuta el servidor puede escribir
en las páginas Web, y un pirata consigue ejecutar órdenes bajo la identidad de dicho
usuario, podría modificar las páginas Web sin ningún problema.
Una característica importante de la detección de ataques vía Web es que no suelen
generar muchos falsos positivos, por lo que la configuración de la base de datos
inicial es rápida y sencilla, OWASP afirma que las amenazas para las aplicaciones
Web cambian constantemente. Los factores clave en esta evolución son los
avances hechos por los atacantes, la liberación de nueva tecnología, así como la
instalación de sistemas cada vez más complejos. Los atacantes pueden
potencialmente usar muchas diferentes rutas a través de su aplicación para causar
daño en su negocio u organización. Cada una de estas rutas representa un riesgo
que puede, o no, ser lo suficientemente serio como para merecer atención. A veces,
estas rutas son triviales de encontrar y explotar y a veces son extremadamente
difíciles. De manera similar, el daño causado puede ir de ninguno hasta incluso
sacarlo del negocio. Para determinar el riesgo para su organización, puede evaluar
la probabilidad asociada con cada agente de amenaza, vector de ataque19 y

9
debilidad de seguridad y combinarla con una estimación del impacto técnico y de
negocios en su organización. Juntos, estos factores determinan el riesgo total.

Figura 1: Riesgos de seguridad en aplicaciones Web

OWASP enfoca los riesgos más serios y más comunes para un amplio tipo de
organizaciones incluyendo los SWGA. Estos riesgos fueron publicados en el 2007
y se basó en los datos de la lista CVE20, que durante 5 años has estado siguiendo
los tipos de errores que conllevan a vulnerabilidades en los sistemas Web. El
resumen de resultados estableció que en el año 2005 y 2006 que XSS fue la
vulnerabilidad más crítica con el 18,5%, e Inyección SQL fue la segunda con 13.6%
[15].
Inyección SQL y XSS permiten a los atacantes el acceso no autorizado a datos (leer,
insertar, modificar o borrar), acceder a las cuentas de base de datos, a suplantar a
otro usuario (por ejemplo, el administrador), imitan a las aplicaciones web para
obtener el acceso con el servidor web, etc.
José Fonseca y Marco Vieira realizaron la evaluación de 6 aplicaciones Web, y
concluyeron que XSS e Inyección SQL son las vulnerabilidades que más existen a
nivel mundial, en la tabla 3 se muestran los resultados obtenidos [16].

Figura 2: Distribución XSS e Inyección SQL.

La vulnerabilidad Inyección SQL se presente en la incorrecta validación de las


variables de entrada del usuario y las que contiene sentencias SQL. Con el
propósito de atacar a los servidores web o base de datos, los hackers utilizan
códigos maliciosos en los formularios web o URL para construir sentencias SQL a
través de una vulnerabilidad de inyección SQL. Es una clase más general de
vulnerabilidades que puede ocurrir en cualquier lenguaje de programación o script.
El código siguiente ilustra un tipo de vulnerabilidad de Inyección SQL:

10
Sentencia = SELECT*FROM usuario where nombre=' + nombreUsuario + ''' ; ''
El “usuario” es la variable en la cual el usuario debe ingresar datos, y una vez que
los hackers explotan esta variable (un ejemplo 'a'='a), la sentencia SQL se verá en
la obligación de ejecutarla.
Jone';DROP TABLE usuario; SELECT * FROM infoUsuario WHERE 'a' = 'a
Esta sentencia eliminará la tabla “usuario” y revela la información de los usuarios.

2.5 Aplicación de las políticas de seguridad


Desde finales de los 90‟s, los atacantes han conseguido realizar múltiples ataques
en las aplicaciones Web a través de Internet, aunque éstas estén protegidas
mediante técnica de seguridad en redes tradicionales como firewall25, IDS26 y
mecanismos criptográficos como podemos observar en la figura 4. Pero es
necesario implementar nuevos esquemas que no solo permitan proteger al cliente
desde su navegador, un servidor web y de correo electrónico. Hay que comprender
que la seguridad de un sistema informático y en especial los SWGA engloba todo
su ciclo de vida, desde su análisis hasta la fase de montaje o mantenimiento.

Figura 3: Esquema básico de seguridad en un sistema de red e informático.

Por lo tanto, es importa integrar todas las técnicas existentes como son las de
desarrollo seguro, modelos de programación segura para detectar anomalías o
mecanismos genéricos de validación de entradas. En este proyecto nos vamos a
centrar en un esquema de análisis de contenido para intentar solucionar ataques
tanto de Inyección SQL y XSS.
Este análisis básico puede ser fácilmente implementado definiendo una lista de
caracteres no aceptables, luego, el proceso de análisis simplemente rechaza todo
lo que está incluido en dicha lista para mejorar el proceso de filtrado de una petición
realizado por el usuario. De todas maneras, consideramos que esta estrategia es
básica, demasiada limitada y fácil de evadir por algún atacante experto. Scott, D
[20] proponen un servidor proxy que se situaría en el servidor de la aplicación Web

11
con la finalidad de filtrar el flujo de datos de entrada y salida. Dicho proceso de
filtrado tiene en cuenta un conjunto de políticas de seguridad diseñada por los
desarrolladores de las aplicaciones Web.
En consecuencia, la falta de análisis sobre las estructuras de un SWGA puede ser
utilizada por atacantes expertos para evadir sus mecanismos de detección y realizar
peticiones maliciosas. El simple uso de expresiones regulares (código de Inyección
SQL) puede ser utilizado para evadir estos filtros. Hay que tener en cuenta que todo
análisis que se realice hay que evitar los falsos positivos.
La aplicación de las políticas de seguridad no solo se debe aplicar y ejecutar de
forma aislada, sino se debe aplicar desde un entorno general, esto signifique, que
cada etapa del ciclo de vida de un sistema Web debe ser evaluada para evitar en lo
más mínimo las fallas de seguridad.

Figura 4: Esquema de seguridad aplicando un servidor de seguridad de red o sistema


informático.

En conclusión, podemos observar en la Figura 5 que el diagrama del modelo clásico


de seguridad ha cambiado ligeramente, se ha agregado un servidor de seguridad,
el mismo que se encargará y se hará responsable del manejo de las políticas de
seguridad, los códigos de diseño de un conjunto de restricciones de validación y las
peticiones de entrada que los analistas programadores hayan ingresado o
configurado. Además, dentro de las restricciones de validación es necesario
imponer restricciones en los datos de las cookies, los parámetros URL.
Para terminar esta apartado, los usuarios de los sistemas Web se preguntarán cómo
un atacante puede acceder a la información que almacenan los sistemas Web.
Tomemos como ejemplo un servidor de base de datos que se encuentra detrás de
una serie de seguridades de redes clásicas como Firewall, IDS u otros mecanismos
de protección, existe un canal de comunicación entre el servidor Web y el servidor
de base de datos y por la cual el atacante utiliza para llegar hasta los datos

12
guardados en la base de datos. Ahora hay que entender la naturaleza o arquitectura
que comúnmente tiene un sistema Web, existen tres niveles claramente definidos,
el primero de ellos es la vista o interfaz de usuario y es el encargado de la interacción
entre los usuarios y el sistema. El GAUR y el SGA son aplicaciones típicas de los
SWGA. El segundo de los niveles es donde reside la lógica de la aplicación. Esta
correrá sobre los servidores Web, los de correo electrónico y los de aplicación. Y el
tercer nivel tendremos el almacén de datos, es decir, el repositorio de la información
de una institución universitaria, que podría ser la UPV o la UNL. Cada nivel existe
una conexión.

III. Herramienta de análisis


3.1 Rapid Scan
Para nuestro proyecto utilizamos Rapid Scan que es una herramienta cuyo
propósito es ejecutar herramientas de escaneo de seguridad una tras otra a través
de la automatización. Ejecutar múltiples herramientas de exploración para descubrir
vulnerabilidades, juzgar efectivamente los falsos positivos, correlacionar
colectivamente los resultados y ahorrar un tiempo.
Rapid Scan utiliza diferentes herramientas para realizar el análisis entre las cuales
están nmap, dnsrecon, wafw00f, uniscan, sslyze, fierce, lbd, theharvester, dnswalk,
golismero etc.
Este es muy fácil de instalar, ya que es un script y se instala fácilmente en un solo
paso. Básicamente lo que hace es utilizar las diferentes herramientas provenientes
de Linux que se ejecutan automáticamente y al finalizar el escaneo nos muestra la
vulnerabilidades que presenta, el nivel de dicha vulnerabilidad y como mitigar la
misma.
Es una muy buena herramienta para detectar y darnos cuenta en que parte somos
propensos a ser atacados en nuestro sitio web y para más nos proporciona la
solución para resolver la vulnerabilidad en cuestión.
El programa aún está en desarrollo, funciona y actualmente admite 80 pruebas de
vulnerabilidad.

3.2 Características
 Ahorra tiempo
 Ejecuta una multitud de herramientas de escaneo de seguridad.
 Comprueba las mismas vulnerabilidades con múltiples herramientas para
ayudarle a concentrarse en falsos positivos de manera efectiva.
 Información para ayudar a comprender qué pruebas pueden tomar más
tiempo, por lo que se pueden omitir si es necesario.
 las definiciones de vulnerabilidad le indican qué es realmente la
vulnerabilidad y la amenaza que puede plantear.

13
 El resumen ejecutivo le brinda un contexto general de la exploración
realizada con problemas críticos, altos, bajos e informativos descubiertos.
 Informe detallado completo.

3.3 Controles de vulnerabilidad


 Equilibradores de carga DNS y HTTP y firewalls de aplicaciones web.
 Verificaciones de Joomla, WordPress y Drupal
 Vulverabilidades relacionadas con SSL (HEARTBLEED, FREAK, POODLE,
CCS Injection, LOGJAM, OCSP Stalin).
 Puertos comúnmente abiertos.
 markTransferencias de zona DNS utilizando múltiples herramientas (Fierce,
DNSWalk, DNSRecon, DNSEnum).
 Subdominios de fuerza bruta.
 Abrir el directorio / archivo de fuerza bruta.
 Shallow XSS, SQLi y Banners BSQLi.
 Slow-Loris DoS Attack, LFI (inclusión de archivos locales), RFI (inclusión de
archivos remotos) y RCE (ejecución remota de código).

3.4 Requerimientos
 Python 2.7
 Kali OS (Preferido, ya que se entrega con casi todas las herramientas)
 Para otros tipos de SO, trabajando en un soporte de docker. Aférrate.

3.5 Interfaz
Rapid Scan es una herramienta bastante amigable al inicio nos muestra de que
manera debemos utilizarla, nos da algunos comandos para realizarlo de forma
rápida, nos muestra el tiempo de duración según el nivel del escaneo y también los
niveles de vulnerabilidad que puede presentar.

Figura 5. Inicio de Rapid Scan

14
Esta herramienta como mencionamos anteriormente y como se muestra en la figura
1 presenta diferentes niveles de vulnerabilidades que nos indican que tanta
probabilidad tiene tu sitio web de ser atacado. A continuación se definen dichos
niveles con su respectiva definición o advertencia:
Crítico: requiere atención inmediata.
Alto: no es de atender de inmediato, pero existe una alta probabilidad de
ataque.
Medio: el atacante puede correlacionar múltiples vulnerabilidades de este
tipo para lanzar un ataque sofisticado.
Bajo: no es un problema serio, pero recomendable de atender.
Informativo: no se considera una vulnerabilidad, pero es una alerta a ser
considerada.

Figura 6. Análisis realizado con Rapid Scan al sitio web https://www.banconal.com.pa/.

15
IV. Análisis del sitio web
En nuestro proyecto decidimos evaluar el sitio web del Banco Nacional de Panamá,
ya que nos pareció importante conocer sobre las vulnerabilidades que presenta una
de las instituciones importantes del país.
El Banco Nacional de Panamá es la entidad bancaria oficial de Panamá. Fundado
en 1904, realiza algunas funciones propias de banco central.

Figura 7. Sitio web analizado, Banco Nacional de Panamá

4.1 Resultados
Al finalizar el análisis del sitio web https://www.banconal.com.pa/ se obtuvo el
resultado de que cuenta con muchas vulnerabilidades con un total de 18 casos.
A continuación mostraremos una tabla con las vulnerabilidades encontradas, el nivel
de peligro que arrojo el escaneo y la posible solución para protegerse contra dicha
vulnerabilidad.
Cuadro de vulnerabilidades encontradas
Vulnerabilidad Nivel de vulnerabilidad Posible solución
Este ataque funciona al Crítico Si está utilizando el
abrir varias conexiones módulo Apache,
simultáneas al servidor ‘mod_antiloris’ ayudaría.
web y las mantiene con
vida el mayor tiempo
posible al enviar
continuamente
solicitudes parciales de
HTTP, que nunca se
completan. Se deslizan

16
fácilmente a través de
IDS enviando solicitudes
parciales.
Con esta vulnerabilidad, Alto La actualización de
el atacante podrá realizar OpenSSL a la última
un ataque MiTM y versión mitigará este
comprometer así el factor problema.
de confidencialidad.
Los atacantes pueden Alto Se recomienda bloquear
lanzar ataques remotos el servicio al mundo
para bloquear el servicio exterior y hacer que el
o herramientas como servicio sea accesible
ncrack para intentar solo a través de un
forzar la contraseña en el conjunto de direcciones
objetivo. IP permitidas que solo
son necesarias.
Los piratas informáticos Alto La validación de entrada
podrán robar datos del adecuada debe
backend y también realizarse antes de
podrán autenticarse en el consultar directamente la
sitio web y hacerse pasar información de la base de
por cualquier usuario, ya datos. Un desarrollador
que tienen control total debe recordar no confiar
sobre el backend. Incluso en la entrada de un
pueden borrar toda la usuario final. Al seguir
base de datos. Los una metodología de
atacantes también codificación segura,
pueden robar la ataques como SQLi, XSS
información de las y BSQLi.
cookies de un usuario
autenticado e incluso
puede redirigir el destino
a cualquier dirección
maliciosa o dañar
totalmente la aplicación.
Con el ataque LOGJAM, Alto
el atacante podrá
degradar la conexión Asegúrese de que las
TLS, lo que le permite bibliotecas TLS que
leer y modificar cualquier utiliza estén actualizadas,
información que se pase de que los servidores que
por la conexión. mantiene utilizan primos
de 2048 bits o más

17
grandes, y de que los
clientes que mantiene
rechacen los números
primos de Diffie-Hellman
menores de 1024 bits.
Sin un servidor de Medio Activar el firewall
seguridad de aplicación
web, un atacante puede
intentar inyectar varios
patrones de ataque de
forma manual o utilizando
escáneres automáticos.
Los atacantes pueden Medio A veces es aconsejable
recopilar más información bloquear subdominios
de los subdominios como el desarrollo, en
relacionados con el preparación para el
dominio principal. Los mundo exterior, ya que
atacantes pueden incluso proporciona más
encontrar otros servicios información al atacante
de los subdominios y sobre la pila de
tratar de aprender la tecnología.
arquitectura del objetivo.
Incluso hay posibilidades
de que el atacante
encuentre
vulnerabilidades a
medida que la superficie
de ataque se hace más
grande con más
subdominios
descubiertos.
Los atacantes pueden Medio A veces es aconsejable
recopilar más información bloquear subdominios
de los subdominios como el desarrollo, en
relacionados con el preparación para el
dominio principal. Los mundo exterior, ya que
atacantes pueden incluso proporciona más
encontrar otros servicios información al atacante
de los subdominios y sobre la pila de
tratar de aprender la tecnología.
arquitectura del objetivo.
Incluso hay posibilidades
de que el atacante
encuentre
18
vulnerabilidades a
medida que la superficie
de ataque se hace más
grande con más
subdominios
descubiertos.
Los piratas informáticos Medio Use un firewall para
podrán leer cadenas de la bloquear los puertos del
comunidad a través del mundo exterior.
servicio y enumerar toda
una información del
objetivo. Además, existen
múltiples
vulnerabilidades de
Ejecución remota de
código y Denegación de
servicio relacionadas con
los servicios SNMP.
Los atacantes pueden Medio A veces es aconsejable
recopilar más información bloquear subdominios
de los subdominios como el desarrollo, en
relacionados con el preparación para el
dominio principal. Los mundo exterior, ya que
atacantes pueden incluso proporciona más
encontrar otros servicios información al atacante
de los subdominios y sobre la pila de
tratar de aprender la tecnología.
arquitectura del objetivo.
Incluso hay posibilidades
de que el atacante
encuentre
vulnerabilidades a
medida que la superficie
de ataque se hace más
grande con más
subdominios
descubiertos.
Como el objetivo carece Medio Los navegadores
de este encabezado, los modernos no enfrentan
navegadores más ningún problema con esta
antiguos serán vulnerabilidad.
propensos a los ataques
XSS reflejados.

19
Los atacantes intentan Medio Banner Grabbing debe
aprender más sobre el estar restringido y el
objetivo de la cantidad de acceso a los servicios.
información expuesta en
los encabezados. Un
atacante puede saber
qué tipo de pila
tecnológica está
enfatizando una
aplicación web y mucha
otra información.

Los puertos abiertos dan Bajo Se recomienda cerrar los


a los atacantes una pista puertos de los servicios
para explotar los no utilizados y usar un
servicios. Los atacantes firewall para filtrar los
intentan recuperar puertos donde sea
información de banner a necesario.
través de los puertos y
entienden qué tipo de
servicio está ejecutando
el host.

Las posibilidades son Bajo Dado que las


muy pocas para posibilidades de
comprometer un objetivo explotación son débiles,
con direcciones de correo no es necesario actuar.
electrónico. Sin embargo, La remediación perfecta
los atacantes utilizan esto sería elegir diferentes
como datos de apoyo nombres de usuario para
para recopilar diferentes servicios será
información sobre el más reflexivo.
objetivo. Un atacante
puede utilizar el nombre
de usuario en la dirección
de correo electrónico y
realizar ataques de fuerza
bruta no solo en los
servidores de correo
electrónico, sino también
en otros paneles
legítimos como SSH,
CMS, etc. con una lista de
contraseñas, ya que
20
tienen un nombre
legítimo. Esto es, sin
embargo, un disparo en el
escenario oscuro, el
atacante puede o no ser
exitoso dependiendo del
nivel de interés.

Esto no tiene nada que Bajo Los equilibradores de


ver con los riesgos de carga son altamente
seguridad, sin embargo, recomendables para
los atacantes pueden cualquier aplicación web.
usar esta indisponibilidad Mejoran los tiempos de
de los equilibradores de rendimiento, así como la
carga como una ventaja disponibilidad de datos en
para aprovechar un tiempos de interrupción
ataque de denegación de del servidor.
servicio en ciertos
servicios o en toda la
aplicación.

No es una vulnerabilidad, Información Se recomienda


solo una alerta implementar IPv6.
informativa. El host no
tiene soporte para IPv6.
IPv6 proporciona más
seguridad a medida que
IPSec (responsable de
CIA - Confidencialidad,
integridad y
disponibilidad) se
incorpora a este modelo.
Por eso es bueno tener
soporte para IPv6.

21
V. Recomendaciones
 Proteger la integridad del código de tu Sitio
Proteger la integridad del código es lo mismo que tomar las medidas necesarias
para que hackers no modifiquen el código de los archivos que conforman tu página
web o la base de datos con el fin de utilizar tu sitio web para extraer información
sensible de los usuarios que la visitan, propagar malwares o simplemente “tumbar
un servidor”.
 Ejecutar monitoreos de seguridad
Monitorear tu página web con frecuencia es un arma muy efectiva para detectar
ataques, intentos de intrusiones, intentos de inyección de código, archivos corruptos
o infectados, etc…
Existen múltiples soluciones automatizadas que permiten ahorrarnos tiempo, pero
sobre todo que hacen las veces de la primera trinchera defensiva en la batalla contra
ataques digitales.
 Crear contraseñas fuertes y solicitar renovaciones periódicas
Sea que utilicemos un sistema de administración de contenido, un framework o que
el desarrollo esté enteramente a nuestro cargo, crear y solicitar contraseñas fuertes
representa un gran mecanismo de protección.
Una cifra considerable de intrusiones no autorizadas se debe a contraseñas de baja
complejidad.
Por otro lado, la solicitud de renovación periódica de contraseñas es otro
mecanismo para añadir una capa de seguridad adicional a cualquier desarrollo.
 Actualización de softwares, frameworks y plugins de tu página web
Una gran parte de la web está desarrollada sobre plataformas de administración de
contenido como WordPress, Joomla, Magento, etc., los equipos de desarrollo de
estos “frameworks” liberan versiones actualizadas cada cierto tiempo donde se
corrigen errores de seguridad, por consecuencia mantenerlos actualizados minimiza
las probabilidades de ser vulnerados.
 Restricción de logins contra ataques de fuerza bruta
La restricción de intentos de logins por los llamados “Ataques de Fuerza Bruta” a
una sección de tu página web es una medida extraordinaria que te evitará un gran
dolor de cabeza, porque previene que un atacante intente ingresar a ella mediante
la generación automática de contraseñas.
 Oculta páginas de acceso administrativo
Una práctica simple, fácil de aplicar y efectiva es ocultar a los buscadores las
páginas de acceso a administrativo mediante la creación del archivo “Robots.txt”.

22
 Restricción de permisos de escritura
Restringir la escritura de archivos desde la web a través de la asignación de
permisos de “Sólo Lectura” es otra capa adicional de seguridad que puedes utilizar
para proteger los archivos de tu sitio.
Al restringir la escritura de archivos desde la web imposibilitas a un usuario con fines
dudosos a modificar el código contenido dentro de un archivo de tu página web.
 Crear copias de respaldo (Back-ups)
Generar copias de respaldo con frecuencia es la manera más eficaz de estar
preparado ante la eventualidad más indeseable para un desarrollador: la infección
de su página web y posterior pérdida de data importante de su página web.
 Utilizar certificados SSL (HTTPS para la confianza de tus usuarios)
HTTP (http://) es un protocolo de transmisión de información entre un punto A en
internet a un punto B y HTTPS (https://) representa un protocolo de transmisión pero
cifrado; es decir, encriptado para hacer mucho más difícil descifrar un mensaje
interceptado por un Hacker.
Instalar un certificado de seguridad SSL en tu servidor es una capa adicional de
protección que no solo te protegerá la data sensible de tus usuarios, también
representa un símbolo de confianza en internet.

23
VI. Conclusión

24
VII. Referencias
1. WBGLinks, La historia completa del Hacking,
http://www.sindominio.net/suburbia/spip.php?article33 (2003), Accedido el 13 de
Junio de 2010
2. Furnell, S..: Vulnerability Exploitation: the Problem of Protecting our Weakest
Links, Computer&Fraud, United Kingdom (2003)
3. Gómez, A., Seguridad Informática Básica, España, 1ª Edición (2010)
4. Mathew, P..: What do Mean by “Information Security”, Computer&Fraud, United
Kingdom (2004)
5. Bustos, S. Seguridad y Software Libre. http://www.kriptopolis.org/seguridad-
ysoftware-libre, Kriptópolis (2002), Accedido el 01 de junio de 2010
6. International Organization for Standarizadion, Estandar ISO/IEC International
17799 ISO/IEC 17799:2005 2da edition (2005).
7. Saura, J., Implantación de seguridad en entornos Web, Universidad Politécnica
de Cartagena, Colombia, 165pp (2006).
8. Canaleta, X., Gestión académica y protección de datos, Universidad Ramón Llull,
España, Abril (2010).
9. Huerta, A., Villalón. Seguridad en Unix y redes, Capítulo 16, Página 259, España
(2002) 10. Scott. D., Sharp. R., Specifying and Enforcing Application-Level Web
Security Policies, IEEE Knowledge and Data Engineering, United Kingdom (2003).
11. Segu-Info, http://www.seguinfo.com.ar/politicas/polseginf.htm (2008), Accedido
el 11 de Juno de 2010.
12. Protección de datos. http://protecciondedatos.org/info.php, Accedido el 09 de
junio de 2010.
13. Mieres, J., Ataques informáticos. Debilidades de Seguridad Comúnmente
Explotas, Evil Finger, (2009)
14. International Council Of Electronic Commerce Consultants, Ethical Hacking.
Official Course Material, OSB, http://www.eccouncil.org/ (2004)
15. Steve, C., Martin, R., "Vulnerability Type Distributions in CVE",
http://cwe.mitre.org/documents/vuln-trends/index.html#summary (2007), Accedido
el 13 de Junio de 2010
16. Fonseca, J., Vieira, M., Mapping Software Faults with Web Security
Vulnerabilities, IEEE, International Conference on Dependable Systems&Networks,
Alaska (2008)

25
17. AlfaroWang Xin, otros, Hidden Web Crawling For Inyeción SQL Detection, IEEE,
China (2010)
18. Garcia, A., Prevención de ataques de Cross-Site Scripting en aplicaciones Web,
Universidad Autónoma de Barcelona (2007)
19. Wang Xin, otros, Hidden Web Crawling for Injection SQL Detection, IEEE, China
(2010) 20. Scott, D. and Sharp, R. Abstracting application-level web security. 11th
Internation Conference on the WWW, (2002).
20. Anónimo. (Diciembre 3, 2018). RapidScan - The Multi-Tool Web Vulnerability
Scanner. Julio 10, 2019, de GitHub Sitio web: https://github.com/skavngr/rapidscan

26

También podría gustarte