Descargar trabajo - premios de eset latinoamerica

Anuncio
LUIS ARTURO FELICIANO CARDONA
CARNÉ: 0903-10-12483
UNIVERSIDAD MARIANO GALVEZ | GUATEMALA C.A.
1 CONTENIDO
2
Introducción ............................................................................................................................................1
3
Summer...................................................................................................................................................1
4
Malware ...................................................................................................................................................2
5
Base de datos ..........................................................................................................................................4
5.1
Control de acceso. ............................................................................................................................4
5.2
Control de acceso basado en Roles: ..................................................................................................4
5.3
Control de acceso mediante Triggers .................................................................................................5
5.4
Control de acceso mediante Views.....................................................................................................5
5.5
Grant – Revoke ................................................................................................................................5
5.6
Encriptación de password. ................................................................................................................6
6
Olap ........................................................................................................................................................7
7
Minería de datos.......................................................................................................................................8
8
La intercepción de datos confidenciales .....................................................................................................9
9
Aplicaciones Web. ....................................................................................................................................9
10
Inyección de código sql ........................................................................................................................9
11
Bypass de acceso ............................................................................................................................... 10
12
Cross-site scripting ............................................................................................................................. 10
13
Metadatos ......................................................................................................................................... 11
14
Recomendaciones .............................................................................................................................. 12
14.1
Evaluación de la vulnerabilidad y la configuración ............................................................................. 12
14.2
Endurecimiento (hardening en db) .................................................................................................. 12
14.3
Audite............................................................................................................................................ 13
14.4
Monitoreo ...................................................................................................................................... 13
14.5
Testeo web .................................................................................................................................... 13
15
Conclusión ......................................................................................................................................... 14
16
Referencias........................................................................................................................................ 15
17
Anexos .............................................................................................................................................. 16
2 INTRODUCCIÓN
Iniciamos hablando sobre LA CALIDAD. Según la NORMA INTERNACIONAL ISO 9000, la calidad es el “grado en el
que un conjunto de características inherentes cumple con los requisitos”. De forma sencilla podemos entender a la
calidad en aplicaciones web como la satisfacción de las necesidades de los usuarios, que sean confiables y sobre
todo que cuenten con la mejora continua en su desempeño.
Hoy día vivimos en una serie de transiciones tecnológicas que cada vez hacen de nuestras actividades cotidianas
tales como compras, ventas, transacciones monetarias, etc., un proceso sencillo, confiable, optimizando los recursos
más importantes como el tiempo y costo. Con la web semántica, el proceso será aún mejor ya que será posible
intercambiar información entre dos o más sistemas informáticos, haciendo uso de los agentes inteligentes.
Sin duda las aplicaciones web son cada vez más utilizadas a nivel mundial. Sin embargo esto nos lleva a la siguiente
interrogante: ¿Son seguras las nuevas aplicaciones web? De forma rápida describimos la estructura de una
aplicaciones web distribuida en capas: Capa 1: Aplicaciones cliente. Capa 2: Servidor Wen. Capa 3: Servidor de
base de datos. Siendo la última capa lo más importante de cualquier sistema. Nuestro activo más importante se
resume en la siguiente palabra: Información.
.
3 SUMMER
We begin by talking about QUALITY. According to the INTERNATIONAL STANDARD ISO 9000, quality is the
"degree in which a group of inherent characteristics fulfills the requirements." Simply speaking we can understand
quality in web applications as satisfying the users' needs, that they be reliable and especially that they have
continual improvement in performance.
Today we live in a series of technological transitions that increasingly make our everyday activities such as buying,
selling, monetary transactions, etc., a simple, reliable process, optimizing the most important resources such as
time and cost. With the Semantic Web, the process will be even better since it will be possible to exchange
information between two or more computer systems, using intelligent agents.
No doubt web applications are increasingly used worldwide. But this brings us to the question: are the new web
applications secure? Briefly we describe the structure of a web application distributed in layers: Layer 1: Client
applications. Layer 2: Web Server. Layer 3: Server database. The latter being the most important layer of any
system. Our most important asset is summarized in the following word: information.
“No se puede asegurar lo que no se conoce”
Principios básicos de seguridad informática
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
1
4 MALWARE
El “Malware” es uno de los términos que más hacemos uso, a la hora de referirnos a la seguridad
informática. En sí ¿Qué es Malware? Veamos lo que nos dice Eldad Eilam: “El software malicioso (o
malware) es cualquier programa que va en contra del propietario o del usuario del sistema. En términos
generales, los usuarios esperan que el equipo y que todo el software que se ejecuta en él trabaje para su
beneficio. Cualquier programa que viole esta regla se considera malware, porque funciona para el interés
de otras personas.” 1
Virus
Gusanos
Su característica no es infectar archivos sino la modificación de claves en el Registro para ejecutarse en el
inicio del sistema o explotar vulnerabilidades en el OS o aplicaciones. Es capara de reproducirse a sí mismo.
Medios utilizados según la variante: Envío por Email, cliente IM, propagación por redes P2P, por
vulnerabilidades de software, por dispositivos USB.
Troyanos
Simula ser inofensivo, útil o benigno para el usuario. No infecta archivos y necesita del usuario para su
propagarción. Se caracterizan por una alta utilización de técnicas de Ingeniería Social. Existe una gran
cantidad de troyanos los cuáles suelen clasificarse según el daño que causan, entre ellos están los siguientes:
Downloader, Banker, Dropper, Clicker, Keylogger, Backdoor y los Bot.
Se instala en el sistema sin que el usuario lo note, cuya función es descargar y/o mostrar textos o imágenes
de publicidad en la pantalla de la víctima. El adware utiliza información recopilada por algún spyware.
Spyware
Produce algún daño en el sistema del usuario. Posee 3 características particulares: infecta archivos, actúa
de forma transparente al usuario y tiene la capacidad de reproducirse a sí mismo.
Adware
El malware es una palabra compuesta de “malicious” y “software” es decir software o código malicioso.
Como lo vimos anteriormente, es todo aquel software que perjudica el funcionamiento de una
computadora. Pero éste no sólo perjudica el funcionamiento, sino puede ir más allá, al tratar de una o
varias formas el cómo aprovechar recursos informáticos y sobre todo obtener información sensible de
usuarios, organizaciones, empresas, bancos hasta incluso información clasificada de gobiernos. Existe una
gran cantidad de malware que se diferencian por la forma de propagación, los daños que ocasionan entre
otras características. Veamos el siguiente resumen de la clasificación de Malware según ESET 2:
1
2
Conocido como progrma espía, es una aplicación cuyo fin es recolectar información del usuario sin su
consentimiento. La información puede ser: Historial de navegación, Descarga de archivos, Compras vía ecommerce, Información demográfica (edad, sexo, etc.), Intereses comerciales.
Reversing Secrets of Reverse Engineering (Pág. 273)
ESET Análisis de malware – Conceptos básicos (Págs. 7-14 )
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
2
Rogue
Simula ser un programa de seguridad, con el fin de lograr que el usuario pague por una aplicación dañina o
inexistente. Intenta generar miedo en el operador de la PC, indicando falsas alertas sobre infecciones y/o
problemas que pudiera tener el sistema. Utilizado por 2 fines: Instalación de malware y cobro de dinero.
Ransomware
Cifra o bloquea el acceso a la información; para que el usuario pueda volver acceder a ella necesita realizar
el pago de una determinada cantidad de dinero. Algunas de las acciones que se incluyen en su
funcionamiento son: Cifrado de archivos de disco, bloque total de acceso al sistema, bloqueo de ciertos
archivos.
Rootkit
Herramienta diseñada para mantener en forma encubierta el control de una computadora. Es decir cualquier
componente lógico que permita al atacante mantener el acceso y el control del sistema: programas, archivos,
procesos, puertos, etc. El rootkit no es un software maligno en sí mismo, sino que permite ocultar las acciones
dañinas que ejecute un atacante en el sistema.
La ingeniería social es otro tema muy importante en cuanto a la seguridad informática. De acuerdo a
Christopher Hadnagy se define a la Ingeniería Social como “El acto de manipular a una persona para que lleve
a cabo una acción que -puede ser o no- lo más conveniente para cumplir con cierto objetivo. Este puede ser la
obtención de información, conseguir algún tipo de acceso o logar que se realice una determinada acción”.3
Existen personas con altos grados de
conocimientos en informática, en donde hacen
uso de sus conocimientos con el objetivo de
delitos informáticos. Los laboratorios de ESET a
nivel mundial identifican aproximadamente 240,000
nuevos códigos maliciosos por día. Es increíble la
cantidad de malware en donde el usuario final está
expuesto. Para su propagación existe diversidad de
metodologías y técnicas. En esta oportunidad
simplemente mencionamos los más conocidos: Las
redes sociales, los correos electrónicos en donde se
hace uso de los (spam, hoax, scam), el Phishing.
A nivel regional, las empresas encuestadas en
Colombia,
Venezuela,
Ecuador,
Perú
y
Nicaragua son la que reportaron mayores
niveles de infecciones con códigos maliciosos. 4
Esto no es una sorpresa cuando observamos
que, por ejemplo, en Colombia las detecciones
de botnets crecieron un 10% durante 2014, y
3
4
Ingeniería Social. El Arte del Hacking Personal, Christopher Hadnagy.
ESET Security Reports Latinoamérica 20015
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
3
en países como Ecuador y Venezuela encontramos variantes de códigos maliciosos que no son los más
comunes comparados con el resto de Latinoamérica. 5
5 BASE DE DATOS
5.1 CONTROL DE ACCESO.
El control de acceso se define en dos enfoques: Control de acceso direccional y el control de acceso obligatorio. El
control de acceso direccional es cuando un usuario específico tendrá generalmente diferentes derechos de acceso
(también conocidos como privilegios) sobre diferentes objetos. 6 Es decir; cuando un administrador de base de datos
otorga los privilegios a cada usuario, éste puede tener diferentes tipos de acceso según las tareas que se le asignen.
El DBA garantiza privilegios a usuarios, incluyendo la capacidad para acceder archivos de datos específicos, registros
o campos para operar de una manera determinada (read, insert, delete, o update).
Ejemplo:
GRANT SCHEMA Nombre EsqBD AUTHORIZATION usuario;
GRANT privilegios ON objeto TO usuarios [WITH GRANT OPTION]
REVOKE [GRANT OPTION FOR] privilegio ON objeto FROM usuarios
{CASCADE | RESTRICT}
El control de acceso obligatorio es cuando cada objeto de datos está etiquetado con un nivel de clasificación
determinado y a cada usuario se le da un nivel de acreditación y los esquemas obligatorios tienden a ser jerárquicos
por naturaleza.6 Lo que quiere decir, es que el control de acceso obligatorio cede los privilegios de forma jerárquica
de tal manera que la seguridad de toda la organización esté dividida estratégicamente y así obtener un mejor
control en cuanto quién puede tener acceso a información confidencial.
Este nivel de seguridad en cuanto a los controles de acceso, obligan a que un objeto de datos específico sólo puede
ser accedido por los usuarios que tengan el nivel de acreditación adecuado y principalmente clasifica los usuarios
y datos en múltiples niveles de seguridad, y luego fuerza determinadas reglas acordes a cada nivel.
5.2 CONTROL DE ACCESO BASADO EN ROLES:
El acceso obligatorio o mandatorio es rígido porque hay que asignar permisos de una determinada clase a cada
objeto y sujeto.6 En el mundo real, los privilegios de acceso están asociados con el rol de una persona en la
organización.


Cada rol debe ser creado con determinados privilegios.
Cada usuario es asociado a un rol.
5
Botnets a la orden del día. http://www.welivesecurity.com/la -es/2014/10/23/zombis-colombia-ecuadorvenezuela-botnets/
6
Jorge Sánchez Asenjo (2009) Apuntes Completos Sistemas Gestores de Base de Datos. España
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
4
Este tipo de control, según las necesidades, puede ser el más adecuado, ya que según los roles que cada
usuario desempeña, así será su tipo de privilegio, en cuanto más delicado sea el rol, más delicado será su
responsabilidad con la información de la compañía.
5.3 CONTROL DE ACCESO MEDIANTE TRIGGERS
Con la utilización de los triggers es posible crear mecanismo de seguridad más complejos que pueden ser disparados
cada vez que se llama un evento.7
El comando Insert en la tabla es un ejemplo de un evento que puede ser usado para disparar un Triggers, además
de eso, los mismos pueden ser disparados antes o después del comando especificado con el objetivo de proveer
mayor rigor en el control de la seguridad. Si el comando ejecutado por el usuario no es validado por los Triggers,
salta un error en el cuerpo del propio trigger para impedir que la tabla sea modificada indebidamente.
Los triggers la utilizamos generalmente para asegurar reglas de negocio complejas y auditar cambios en los datos,
es por ello la necesidad inmediata de los controles.
5.4 CONTROL DE ACCESO MEDIANTE VIEWS
Las vistas constituyen otro método de control de acceso, normalmente son utilizadas para restringir el acceso
directo a los datos.7
Con la view es posible permitir el acceso de un usuario concediendo privilegios, ocultar líneas y columnas de
informaciones confidenciales o restringir a los residentes en la tabla original de las indicaciones del SQL. Los
privilegios y concesiones están definidos solamente en la view y no afectan a la tabla base, estando el acceso de
los usuarios delimitando por la view, la cual se genera creando un subconjunto de datos en la tabla referenciada.
Privilegio sobre una vista: Para el caso de las vistas podemos a un usuario otorgar permisos de la siguiente
forma. Como Ejemplo hacemos uso de la tabla alumnos y el campo Luis.
SELECT, INSERT, UPDATE, DELETE, DEBUG, REFERENCES.
SQL > GRANT ALL ON vista_alumnos TO Luis
Otorgamos al usuario Luis todos los permisos sobre la vista vista_alumnos.
5.5 GRANT – REVOKE
Un usuario o papel al que se le concede un privilegio no está autorizado de manera predeterminada a concedérselo
a otros usuarios o papeles. Si se desea conceder un privilegio a un usuario y permitirle que lo transmita a otros
usuarios hay que añadir la cláusula with grant option a la orden grant correspondiente.8
7
Gabriel Gallardo Avilés (Seguridad en Base de Datos y Aplicaciones Web)
8
Fundamentos de Base de Datos. Cuarta Edición. Madrid. Mc Graw Hill
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
5
A un usuario podemos otorgarle una serie de privilegios. Un privilegio permite a un usuario acceder a ciertos
objetos o realizar ciertas acciones:



Privilegios sobre Objetos (Object privileges)
Privilegios del Sistema (System privileges)
Privilegios sobre Roles (Role privileges)
Para otorgar privilegios utilizamos la sentencia GRANT, para quitar un privilegio o permiso a un usuario utilizamos
la sentencia REVOKE.9
Ejemplo:
Privilegio sobre una tabla:
SQL > GRANT ALL ON tabla_alumnos TO byron
Siendo tabla_alumnos una tabla de nuestra base de datos y byron un usuario de esta, hemos asignado mediante
GRANT ALL, todos los permisos al usuario byron sobre esta tabla.
GRANT ALL = permisos SELECT, INSERT, UPDATE, DELETE
Si queremos asignar sólo uno de estos permisos utilizamos la misma sentencia pero con el permiso que queramos
otorgar.
SQL > GRANT SELECT ON tabla_alumnos TO byron
SQL > GRANT SELECT, INSERT ON tabla_alumnos TO byron
QUITANDO PRIVILEGIOS
Si queremos quitar un privilegio a uno de estos objetos haremos lo mismo que con GRANT pero utilizando la
sentencia REVOKE.
SQL > REVOKE ALL ON tabla_usuarios FROM byron
5.6 ENCRIPTACIÓN DE PASSWORD.
Nunca debemos guardar las contraseñas de los usuarios sin cifrar. Esto es un error más común de lo que pueda
parecer ya que los clientes suelen pedir como requisito el que se pueda "recordar" la contraseña a los usuarios
(enviar por correo la contraseña actual, no una nueva).10
Las contraseñas siempre han de guardarse en la base de datos "cifradas" de algún modo, de forma que el atacante
no pueda conocerlas. Si es requisito indispensable el que las contraseñas puedan ser "recordadas", deberán cifrarse
con un algoritmo de "doble sentido" para que puedan ser descifradas por la aplicación. Pero este sistema es muy
9
Jorge Sánchez Asenjo (2009) Apuntes Completos Sistemas Gestores de Base de Datos. España
10
Luis M. (s/f) Encriptar y Guardar Contraseñas en Base de Datos.
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
6
poco recomendable ya que el atacante podrá también descifrarlas. Lo mejor es cifrar las contraseñas con un
algoritmo de "un sólo sentido" de forma que no se puedan descifrar.
6 OLAP
Según la Wikipedia, OLAP es: “OLAP es el acrónimo en inglés de procesamiento analítico en línea (On-Line Analytical
Processing). Es una solución utilizada en el campo de la llamada inteligencia empresarial (o Business Intelligence)
cuyo objetivo es agilizar la consulta de grandes cantidades de datos. Para ello utiliza estructuras multidimensionales
(o cubos OLAP) que contienen datos resumidos de grandes bases de datos o Sistemas Transaccionales (OLTP). Se
usa en informes de negocios de ventas, marketing, informes de dirección, minería de datos y áreas similares.”11
Veamos el
siguiente
ejemplo de un
comercial de
Pizza Freschetta,
en donde vemos
como una mujer
haciendo una
combinación de
datos y filtrando
características de
una pizza entre
varias.
Finalmente
encuentra la
deseada.
Porque OLAP no es más que: Una manera de acceder a tu información utilizando un “lenguaje natural”.
En el mundo corporativo, los analistas acceden a la información filtrando sus indicadores de negocio por regiones,
por producto, por tiempo, etc. A partir de esta definición básica, existen distintas tecnologías que lo implementan
(ROLAP, MOLAP), pero básicamente todas hacen las mismas acciones básicas sobre la información:


11
Segmentar: Como cuando pides las ventas por producto y por trimestre.
Filtrar: Como cuando pides el informe de ventas de Toyota en San Marcos, Guatemala.
WIKIPEDIA recuperado en https://es.wikipedia.org/wiki/OLAP
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
7



Profundizar (Drill down): Como cuando ves los datos de trimestre 2 y te interesa el desglose de abril, mayo,
junio.
Sintetizar (Drill up): Cuando deshaces el desglose anterior y vuelves al desglose por trimestre.
Rotar (Drill anywhere): Cuando en lugar de pasar de un desglose por trimestres a uno mensual, te interesa
un desglose por familia de producto, o por nacionalidad, es decir, por una característica de una jerarquía
distinta a la que lo estás viendo actualmente. 12
OLAP nos permite “navegar” fácilmente por la información, solicitándola con el detalle preciso y con los filtros
adecuados, y que podemos hacerlo de manera dinámica, fácil, ad hoc, sobre la marcha, sin necesitar asistencia,
rápido, y utilizando el lenguaje de negocio.
7 MINERÍA DE DATOS.
La minería de datos es el proceso de detectar la información accionale de grandes conjuntos de datos. Utiliza el
análisis matemático para deducir los patrones y tendencias que existen en los datos. Normalmente, estos patrones
no se pueden detectar mediante la exploración tradicional de los datos porque las relaciones son demasiado
complejas o porque hay demasiado datos.13
Todas las herramientas tradicionales de minería de datos asumen que los datos que usarán para construir los
modelos contienen la información necesaria para lograr el propósito buscado: obtener suficiente conocimiento que
pueda ser aplicado al negocio (o problema) para obtener un beneficio (o solución).
Ejemplos de uso de la minería de datos
Negocios
Análisis de la cesta de la compra
Patrones de fuga
Fraudes
Recursos humanos
Comportamiento en Internet
Terrorismo
Juegos
Ciencia e Ingeniería
Genética
Ingeniería eléctrica
Análisis de gases
El ejemplo clásico de aplicación de la minería
de datos tiene que ver con la detección de
hábitos de compra en supermercados. Un
estudio muy citado detectó que los viernes
había una cantidad inusualmente elevada de
clientes que adquirían a la vez pañales y
cerveza. Se detectó que se debía a que dicho
día solían acudir al supermercado padres
jóvenes cuya perspectiva para el fin de
semana consistía en quedarse en casa
cuidando de su hijo y viendo la televisión con
una cerveza en la mano. El supermercado
pudo incrementar sus ventas de cerveza
colocándolas próximas a los pañales para
fomentar las ventas compulsivas.
12
Pau Urquizu, socio de Crono Analytics. Business Intelligence recuperado en
fácilhttp://www.businessintelligence.info/definiciones/que-es-olap.html
13
Microsoft – Recuperado en: https://msdn.microsoft.com/es-es/library/ms174949(v=sql.120).aspx
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
8
8 LA INTERCEPCIÓN DE DATOS CONFIDENCIALES
Según las investigaciones que se han realizado para escribir la presente monografía, es interesante dar a
conocer la postura de Marc, J (s/f):
El cuarto riesgo importante que amenaza a la empresa es la intercepción por parte de un tercero de datos
confidenciales. Es necesario tomar conciencia de un hecho: es una conexión de red y/o internet normal, el 99.9%
de los datos que circulan no están cifrados por lo que pueden ser interceptados por cualquiera. Es más, es una
operación simple y al alcance de cualquier pirata. Existen muchos programas que permiten guardar y luego
consultar todo lo que pasa por una red informática, llamados “Packet sniffer”(p. 23)
Tal como se expresa en la cita anterior, la confidencialidad de los datos de una compañía representa gran
valor; por lo que se hace necesario los conocimientos necesarios en cuanto a los pasos a seguir para proteger la
información de cualquier hacker o cracker en la red.
9 APLICACIONES WEB.
Una aplicación web es una página web especial, que tiene información sobre la que se puede interactuar e incluso
cambiar. La diferencia con las aplicaciones de escritorio es que no se instala ni se ejecuta en tu ordenador, sino a
través de un navegador. Ejemplos de aplicaciones web son: Gmail, Hotmail, Google.
Muchas aplicaciones web tienen descuidos en programación y de administración. Si estos sitios están vulnerables,
de algún modo exponen información o datos. Como una de las metas del hacking ético es encontrar esas brechas
antes de que un atacante real lo haga, en nuestra tarea como profesionales éticos la clave es buscar, interpretar,
analizar, generar errores y revisar de modo intensivo, hasta encontrar. No todo lo encontrado puede ser explotable,
pero podría ser una muy buena pista para dar con algo sensible, o bien, mejorar la seguridad.14
10 INYECCIÓN DE CÓDIGO SQL
Es impresionante el alcance que tiene un descuido en los activos por la deficiente implementación de seguridad
informática, tanto en el código como en la administración de un contexto donde se lleva a cabo la gestión de
información con base de datos relacionales. ( Tori, 2008, 166); pareciera que los efectos que puede ocasionar la
deficiente administración de la seguridad informática, específicamente la seguridad en las bases de datos, no
afectaran grandemente, pero desafortunadamente grandes compañías han perdido gran cantidad de información
a causa de esta problemática.
“El descuido que permite inyectar código SQL (Structured Query Language) va a perdurar tanto, por lo humano, y
es tan interesante”. (Tori, 2008, 166), actualmente, un gran número de sitios y aplicaciones web interactúan con
bases de datos, teniendo en cuenta que a través de éstos, se maneja información de diferentes niveles de criticidad,
que deben ser almacenados, consultados y modificados, es decir, gestionados; toda esta información es accedida
a través de sentencias SQL, embebidas desde el mismo código fuente de la página o scripts incluidos.
14
Hacking Ético por Carlos Tori 2008
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
9
11 BYPASS DE ACCESO
En términos generales. Cuando nos referimos al bypass de acceso nos referimos a un salto de login. Es decir
tratamos de evadir el ingreso a un sitio web.
Veamos el siguiente ejemplo para comprender mejor una vulnerabilidad. En el código, se verá la sintaxis
transaccional SQL a la base de datos: 15
SELECT id
FROM login
WHERE usuario = ‘$usuario’
AND clave = ‘$clave’
AND cuenta = ‘$cuenta’
SELECT id
FROM login
WHERE usuario = ‘admin’
AND clave = ’ OR 1=1
Algunos ejemplos de inyección para bypass de
accesos son:






“ or 0=0 #
‘ or 1=1 –
a” or “a”=”a
)’or 1=1;
or 0=0 #
“ or “a”=”a
12 CROSS-SITE SCRIPTING
El Cross-Site-Scripting, conocido también como XSS por sus siglas en inglés, es una vulnerabilidad que muchos
desarrolladores dejan pasar por alto, quizás por falta de un planeamiento de análisis de riesgos en el proceso de
diseño, desarrollo e implementación de sus aplicativos, o simplemente no lo vean como una falla que les va a
presentar problemas en su aplicación, incluso por desconocimiento de esta vulnerabilidad.
15
Hacking Ético por Carlos Tori 2008
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
10
Sea cual sea el motivo por el cual no se ejecuten medidas de prevención con respecto a esta vulnerabilidad, es
necesario saber, que es un tipo de ataque que se extiende cada día más, hoy en día es muy común encontrar sitios
y usuarios afectados por este tipo de agresión.
Para ejecutar este tipo de ataque no es necesario ser un gurú en el campo de la programación, ni desarrollar o
utilizar herramientas complejas, basta nada más con manejar un poco de las etiquetas de HTML y algún lenguaje
de Scripting, es suficiente para utilizar el cross-site-scripting en sitios que no están protegidos contra este tipo de
ataque.
Ahora bien, la forma de Proteccion también son métodos básicos y de fácil implementación, que no conllevan
ninguna tarea complicada que signifique un retrazo significativo en el tiempo de desarrollo de la aplicación, ni un
quebradero de cabeza para implementar en sitios ya desarrollados, ya que dicha solución consiste en implantar un
sistema de validación en los campos de entrada de datos, además de tener claro que no podemos fiarnos de datos
que vengan de nuestras propias bases de datos cuando estos datos pueden ser insertados o modificados por el
usuario.
La clave primordial en el campo de la seguridad es no confiar en la entrada de datos de ningún usuario, ya que en
algún momento estas entradas se puede convertir en una inserción de código malicioso, es por ello que la aplicación
debe de validar cada uno de los campos en donde el usuario pueda o le sea requerido el ingreso de datos y dejar
de lado la política de confianza al usuario.
13 METADATOS
Comúnmente, se define a los metadatos como un conjunto de datos sobre datos. Si lo llevamos a la vida diaria, un
ejemplo podría ser el siguiente: si el dato en cuestión es un libro, la ficha que podríamos tener sobre ese libro en
una biblioteca serían los metadatos, es decir, su autor, fecha de publicación, editorial y demás especificaciones del
libro (dato). 16
Para el caso de archivos como fotos, música y documentos de ofimática, estos archivos también traen consigo
metadatos que, en muchas ocasiones, servirán para buscar un archivo creado en una fecha específica, de un autor
preciso e inclusive saber con qué calidad se encuentra un archivo de audio.
16
ESET - Guía de Privacidad en Internet
PUBLICADO 28 SEP 2015 - http://www.welivesecurity.com/wp-content/uploads/2015/09/eset-guia-privacidadinternet.pdf
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
11
Sin embargo, hay veces en las cuales a través de imágenes se puede conocer una posición geográfica (mediante
coordenadas GPS) en el caso de los Smartphone, o subiendo algún archivo de ofimática a la nube se puede ver el
nombre de usuario de un equipo. Es por esto que se debe tener un cuidado especial entendiendo que la información
que se sube a Internet puede contener (o brindar) más datos que meramente lo que se ve en una foto o se muestra
en un archivo.
Si bien en la actualidad la mayoría de las Redes Sociales elimina los
metadatos, no se puede saber a ciencia cierta si futuras redes también lo
harán, por lo cual nos parece importante resaltar su existencia y los posibles
peligros que traen aparejados
Ejemplo:
¿Una foto habla más de la cuenta?
Si no se toman los recaudos necesarios, sí: esta simple foto podría entregar
información muy sensible a un atacante. A continuación veremos qué
información trae escondida nuestro “amiguito” amarillo.
14 RECOMENDACIONES
14.1 EVALUACIÓN DE LA VULNERABILIDAD Y LA CONFIGURACIÓN
Evalúe su configuración de bases de datos, para asegurarse que no tiene huecos de seguridad.
Esto incluye la verificación de la forma en que se instaló la base de datos y su sistema operativo (por
ejemplo, la comprobación privilegios de grupos de archivo -lectura, escritura y ejecución- de base de
datos y bitácoras de transacciones). Asimismo con archivos con parámetros de configuración y programas
ejecutables. Además, es necesario verificar que no se está ejecutando la base de datos con versiones que
incluyen vulnerabilidades conocidas; así como impedir consultas SQL desde las aplicaciones o capa de
usuarios. Para ello se pueden considerar (Como administrador):



Limitar el acceso a los procedimientos a ciertos usuarios.
Delimitar el acceso a los datos para ciertos usuarios, procedimientos y/o datos.
Declinar la coincidencia de horarios entre usuarios que coincidan.
14.2 ENDURECIMIENTO (HARDENING EN DB)
Como resultado de una evaluación de la vulnerabilidad a menudo se dan una serie de recomendaciones
específicas. Este es el primer paso en el endurecimiento de la base de datos. Otros elementos de
endurecimiento implican la eliminación de todas las funcion es y opciones que se no utilicen. Aplique una
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
12
política estricta sobre que se puede y que no se puede hacer, pero asegúrese de desactivar lo que no
necesita. 17
14.3 AUDITE
Una vez que haya creado una configuración y controles de endurecimiento, realice auto eval uaciones y
seguimiento a las recomendaciones de auditoría para asegurar que no se desvíe de su objetivo (la
seguridad).
Automatice el control de la configuración de tal forma que se registre cualquier cambio en la misma
implementando una bitácora. Implemente alertas sobre cambios en la configuración. Cada vez que un
cambio se realice, este podría afectar a la seguridad de la base de datos.
14.4 MONITOREO
Monitoreo en tiempo real de la actividad de base de datos es clave para limitar su exposición, aplique o
adquiera agentes inteligentes de monitoreo, detección de intrusiones y uso indebido.
Por ejemplo, alertas sobre patrones inusuales de acceso, que podrían indicar la presencia de un ataque
de inyección SQL, cambios no autorizados a los datos, cambios en priv ilegios de las cuentas, y los cambios
de configuración que se ejecutan a mediante de comandos de SQL.
Recuerde que el monitoreo usuarios privilegiados, es requisito para la gobernabilidad de datos y
cumplimiento de regulaciones como SOX y regulaciones de privacidad. También, ayuda a detectar
intrusiones, ya que muchos de los ataques más comunes se hacen con privilegios de usuario de alto nivel.
El monitoreo dinámico es también un elemento esencial de la evaluación de vulnerabilidad, le permite ir
más allá de evaluaciones estáticas o forenses. Un ejemplo clásico lo vemos cuando múltiples usuarios
comparten credenciales con privilegios o un número excesivo de inicios de sesión de base de datos.
14.5 TESTEO WEB
El auge de las aplicaciones Web en el mercado de software ha propiciado el desarrollo de sistemas utilizando
metodologías convencionales, sin considerar los nuevos problemas que este tipo de soluciones traen aparejadas.
El comercio electrónico, las aplicaciones distribuidas, el trabajo colaborativo, entre otras, son actividades comunes
en el desarrollo de software convencionales y muy factibles de migrar a aplicaciones basadas en la Web. Pero si
17
Gabriel Gallardo Avilés (Seguridad en Base de Datos y Aplicaciones Web)
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
13
esta tarea es realizada de forma directa, sin tener en cuenta las diferencias existentes, no tendrá un éxito. Si se
considera un sistema de escritorio tradicional y se migra a un entorno Web.18
o
o
o
o
o
o
o
o
Clientes dinámicos: Ya no se tiene un cliente de forma estática, sino que el servidor va a ir generando
dinámicamente las interfaces del cliente para cada petición.
Clientes desde Sistemas Operativos diferentes: Es posible que los clientes se conecten desde
sistemas operativos diferentes, por lo que las interfaces deben funcionar correctamente en cada uno de
ellos.
Diferentes tipos de conexión: Los clientes pueden conectarse a través de diferentes tipos de redes. Los
puntos de conexión pueden variar de velocidades, tiempo de respuesta, protocolos de transmisión, etc.
Alteraciones del control de flujo por parte del usuario: En una aplicación convencional los usuarios
no pueden alterar el flujo del programa, mientras que en las aplicaciones Web los usuarios pueden alterar
el flujo de control presionando las teclas de retroceso o actualización de página, cambiando el contexto de
ejecución y generando efectos inesperados. Estas posibilidades deben estar contempladas en el desarrollo
de una aplicación Web.
Cambios de configuración: El usuario puede cambiar la configuración del cliente (como por ejemplo
deshabilitando cookies), produciendo así un cambio de comportamiento en la aplicación.
Problemas en la programación: Existen características particulares en el desarrollo de sistemas
orientados a la web, que generan una necesidad de mayor testeo que en las aplicaciones de escritorio
estándar. Algunas de esas características son la utilización de varios lenguajes para su codificación (entre
otros, HTML o Javascript en el cliente y Java o Perl para ser ejecutado en el servidor), el alto re-uso de
código existente (sin implicar que este código ya esté testeado) y la utilización de componentes de terceros
(que no siempre son garantía de calidad).
Problemas de interacción: Los sistemas distribuidos basados en la Web se caracterizan por utilizar o
brindar servicios de otros sitios. Tal es el caso de los sistemas que admiten pagos con tarjetas de crédito,
en los cuales se interactúa con un sistema bancario que brinde efectivamente el servicio de cobro con
tarjeta.
o La información que utiliza un sistema Web puede estar distribuida en diferentes bases de datos
ubicadas en diversos puntos geográficos.
o Además, la usabilidad característica de estos sistemas, hace que personas con diversas aptitudes
sean usuarios potenciales.
o Las particularidades enunciadas generan un problema inherente en la interacción de los sistemas
web con otros sistemas, con las bases de datos manipuladas y con la gran diversidad de usuarios
hipotéticos existentes, incrementándose la necesidad de testeo de estas aplicaciones.
Mantenimiento: Las tecnologías utilizadas en las aplicaciones basadas en la Web avanzan muy rápido, lo
que requiere que el mantenimiento se deba llevar a cabo más frecuentemente y de forma más eficiente,
especialmente en lo que respecta a seguridad.
15 CONCLUSIÓN
Sin duda la importancia de la seguridad en aplicaciones web y bases de datos son una prioridad alta en toda
compañía. Como vimos que un grupo de crackers exponen 38 millones de infidelidades.
El grupo de crackers The Impact Team ha accedido a las bases de datos que albergaban en Avid Life Media. Vicente
Fernández, director del Grupo SAI y Luis Fernando García Alcaraz, experto en seguridad informática del citado
grupo. Se les hace la siguiente pregunta: ¿Qué técnicas actuales se conocen que permitan hackear una web y robar
18
Offutt J., “Quality Attributes of Web Software Applications”.
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
14
los datos de los usuarios, como el caso de Ashley Madison? Respuesta: Una de las más conocidas es SQL Injection,
que trata de actuar de manera activa sobre la base de datos desde la propia página WEB víctima.
Para evitar cualquier robo de información, es necesario implementar una serie de políticas de seguridad a distintos
niveles. Evaluación de riesgos sin duda es indispensable realizar. Un constante monitoreo y test de seguridad
periódicas tanto a las bases de datos como a las aplicaciones web.
16 REFERENCIAS
















Para imágenes utilizadas: http://www.freeimages.com
Seguridad de Base de Datos: http://www.teamshatter.com/
Offutt J., “Quality Attributes of Web Software Applications”. IEEE Software: Special, Issue on Software
Engineering of Internet Software 19 (2):25-32, Marzo/ Abril 2002.
ESET Latinoamérica. Análisis de malware (Conceptos básicos) Juan Díaz de Solís 1270, 2do. Pisco – Vicente
López. Buenos Aires.
Autor: Jorge Sánchez Asenjo (2009) Apuntes Completos Sistemas Gestores de Base de Datos. España
Abraham Silberschatz, Henry F. Korth y S. Sudarshan. (2002) Fundamentos de Base de Datos. Cuarta
Edición. Madrid. Mc Graw Hill
Gabriel Gallardo Avilés (Seguridad en Base de Datos y Aplicaciones Web).
Kenneth C. Laudon Jane P. Laudorn (2008) Sistemas de Información Gerencial (Administración de la
Empresa Digital) Décima Edición. México. Pearson Educación
Luis M. (s/f) Encriptar y Guardar Contraseñas en Base de Datos. Recuperado de:
http://www.arumeinformatica.es/blog/encriptar-y-guardar-contrasenas-en-base-de-datos/
Microsoft (2015) Recuperado de: https://technet.microsoft.com/es-es/library/ms365343(v=sql.105).aspx
Reversing Secrets of Reverse Engineering (Pág. 273)
Análisis de malware – Conceptos básicos (Págs. 7-14 )
Ingeniería Social. El Arte del Hacking Personal, Christopher Hadnagy.
ESET Security Reports Latinoamérica 20015
WIKIPEDIA recuperado en https://es.wikipedia.org/wiki/OLAP.
Hacking Ético por Carlos Tori 2008
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
15
17 ANEXOS
SEGURIDAD DEL SITIO WEB DE RENAP
Seguridad de Sitio Web : https://www.renap.gob.gt/
Herramienta Utilizada: FOCA Free 3.1
FOCA Free es una herramienta para la realización de procesos
de fingerprinting e information gathering en trabajos de
auditoría web. La versión Free realiza búsqueda de servidores,
dominios, URLs y documentos publicados, así como el
descubrimiento de versiones de software en servidores y clientes. FOCA se hizo famosa por la extracción de
metadatos en documentos públicos, pero hoy en día es mucho más que eso
Hallazgo
Hallazgo
Al realizar análisis de Metadatos del sitio web de
RENAP: https://www.renap.gob.gt/
determinamos que es posible obtener archivos
sensibles como el archivo siguiente archivo.
FILETYPE:DOC
Nombre: Declaración jurada testigo no puede firmar
Recomendación
El Administrador web debe hacer uso de estándares de
programación de calidad. El cual nos ayuda a la
declaración correcta de variables, clases, métodos,
funciones. Dentro de los estándares, debemos obtener
la capacidad máxima para el uso de .htaccess, donde
podemos controlar determinados aspectos de nuestro
sitio web, incluyendo el rendimiento.
También con la técnica de iframe. Se trata de utilizar la
etiqueta <iframe> con algunas modificaciones, y con
el agregado de algunas propiedades CSS.
Ej. <iframe src="xxxxxxxxx.html"></iframe>
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
16
Mapa de Servidores
Hallazgo
Al realizar análisis de Metadatos del sitio web de
RENAP: https://www.renap.gob.gt/
determinamos que el acceso al mapa de los
servidores del sitio web.
Recomendación
Se debe realizar las respectivas correcciones en cuanto
a configuraciones del acceso del NOS de los servidores.
Ej.
!=================================
!Configuraciones Basicas para R1
!=================================
enable
configure terminal
hostname Router_Renap_1
no ip domain-lookup
!
enable secret AS_security
#banner motd #Prohibido el acceso sin autorización, sistema
sujeto a monitoreo solo personal autorizado#
!
line con 0
password cisco
login
loggin synchronous
!
line vty 0 4
password AS_security_
login
loggin synchronous
!
end
write
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
17
Vulnerabilidades Encontradas:

Juicy Files: Todos esos ficheros suelen contener datos jugosos, y en la FOCA existen listas para
clasificarlos cuando sean encontrados, son los "Juicy Files". Es configurable cuándo debe ser tomado un
fichero de este tipo, y dependerá de cada proyecto, pero por defecto lo será cualquier fichero con una
extensión que no sea de las comunes.
Hallazgo
Al realizar análisis de Metadatos del sitio web de
RENAP: https://www.renap.gob.gt/
determinamos vulnerabilidades de tipo Juicy Files.
Recomendación
Hacer uso de estándares a la hora de nombrar los
archivos, sabiendo que éstos pueden ser usados por
terceros.
Ej. Renap_AS1.pdf
Seguridad de Datos sitio Web: https://www.renap.gob.gt/
Herramienta Utilizada: METAGOOFIL (KALI)
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
18
Seguridad de Sitio Web : https://www.renap.gob.gt/
Herramienta Utilizada: EXIFTOOL (KALI)
ARCHIVO: informativo-tecnologico-no1-2014.pdf
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
19
ARCHIVO: 23_informe_de_auditoria_contraloria_cuentas_del_2011_0.pdf
Hallazgo
Al obtener metadatos de archivos, puede ser
sumamente dañino para el Sistema de Información de
nuestra empresa, por lo que se debe de evitar que
nuestros archivos tengan enriquecido los metadatos.
Recomendación
Tenemos las siguientes aplicaciones de forma gratuita
para la eliminación de metadatos.
 MetaStripper 0.92
 MetaClean 2.7.2
 BatchPurifier 3.1
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
20
Seguridad de contraseñas en un sitio web:
CMS: DRUPAL 7.3
Encriptación: Simple md5 hex. Hash
A continuación modificaremos la contraseña de administrador:
Primero: Modificamos el archivo index.php con el siguiente código:
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
menu_execute_active_handler();
DESPUÉS:
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
require('includes/password.inc');
echo user_hash_password('PUE_2015');
die();
menu_execute_active_handler();
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
21
Modificamos la tabla user de la base de datos:
Rectificamos el archivo index.php a su estado normal.
Y luego intentamos logearnos como administradores con la contraseña que indicamos anteriormente: PUE_2015
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
22
Es importante velar por el cumplimiento de normas que impidan este tipo de errores de
programación, para ofrecer una mejor seguridad de nuestros datos.
Seguridad en Base de Datos & Aplicaciones Web
Luis Feliciano
23
Descargar