- Riesgos
inherentes al entorno Web - Mitos
sobre la seguridad web - Amenazas
comunes - SQL
Injection - Puntos
importantes en una auditoria de aplicaciones Web - Conclusiones
- Bibliografía
Introducción
La seguridad, en
informática como en otras áreas, se
basa en la protección de activos. Estos
activos pueden ser elementos tan tangibles como un servidor o una
base de datos,
o pueden ser la reputación de una empresa.
Generalmente podemos evaluar la seguridad de un activo en base a
tres aspectos principales que no necesitan explicación:
integridad, disponibilidad, confidencialidad.
Estos tres aspectos a su vez dependen de otros
tres elementos principales que engloban prácticamente
todos los distintos controles que se pueden establecer en un
sistema
informático:
Autenticación: los clientes de
nuestras aplicaciones o servicios
deben ser identificados de forma única, sean usuarios
finales, otros servicios o computadoras
externas.
Autorización: no solo es necesario saber
quienes acceden a nuestros activos, también es necesario
establecer que es lo que pueden hacer con ellos. Un nivel de
autorización dado determina que tipo de operaciones o
transacciones puede efectuar un cliente dado
sobre un recurso dado.
Registro y Auditoria: luego de efectuada una
operación, es importante que esta sea registrada
adecuadamente, en particular es esencial si queremos evitar el
repudio de transacciones efectuada por un cliente.
Todos estos conceptos son especialmente
válidos en el entorno de Internet, y particularmente
importantes dado el crecimiento explosivo de los servicios y
aplicaciones accesibles a través de Internet. Si bien
cuando se habla de la seguridad de aplicaciones web se deben
considerar no sólo las amenazas externas a la
compañía sino también las internas
(administradores malintencionados, usuarios que provocan accidentes,
etc), en el presente trabajo nos
enfocaremos principalmente en las externas, por ser
(generalmente) las más peligrosas e impredecibles. Es
sabido por otro lado que las aplicaciones más robustas y
resistentes a ataques son aquellas en las cuales las cuestiones
de seguridad fueron consideradas desde las primeras etapas del
desarrollo.
En las próximas secciones exploraremos los
problemas
particulares de seguridad que presentan las aplicaciones web, y
enumeraremos los distintos tipos de ataques o amenazas externas a
las que se puede enfrentar.
Desarrollaremos algunos de ellos, en particular
concentrándonos en aquellos ataques que burlan lo que la
aplicación espera recibir por entrada del usuario;
mostraremos cómo se los puede evitar o mitigar,
especialmente desde la perspectiva del desarrollo.
Finalmente, a partir de los elementos vistos y
otros adicionales elaboraremos una lista de elementos de
seguridad que deben ser tenidos en cuenta tanto por
desarrolladores, diseñadores y administradores de la
aplicación, como por una eventual auditoría de
sistemas.
Riesgos inherentes al
entorno Web
Se ha comprobado que en los últimos
años, 75% o más de los ataques electrónicos
fueron a nivel de aplicación (y no a nivel de host o de
red).
Blancos atractivos.
Todo tipo de transacciones se realizan
actualmente en la web, y cada vez en mayor proporción.
Detalles de cuentas
bancarias, tarjetas de
crédito
y todo tipo de información confidencial y de valor circulan
en enormes cantidades y continuamente. Es por ende lógico
que la mayoría de los esfuerzos de hackers y
demás atacantes se centre en vulnerar estas
aplicaciones.
Presiones de negocio
La variedad y complejidad de los requerimientos
de usuarios finales continúa creciendo, y con ellos
aumenta la complejidad de las aplicaciones, la cantidad de
funcionalidades y fases de testeo. Esto sumado al incremento en
la competencia y en
la necesidad de superarla en el time-to-market, implican
sacrificios importantes en los aspectos no-funcionales de la
aplicación y específicamente en los aspectos de
seguridad. Especialmente cuando no existe una conciencia de
seguridad a nivel corporativo, se tiende a generar una alta
presión
para terminar el trabajo sin
considerar suficientemente las posibles vulnerabilidades.
Debilidades de HTTP.
Las aplicaciones web están en parte
definidas por su uso del protocolo HTTP
como medio de comunicación entre cliente y servidor. Este
protocolo:
Es simple y basado en ASCII – no se
requiere gran esfuerzo para generar pedidos y descifrar el
contenido de las respuestas.
Utiliza un puerto TCP bien conocido – de
poco sirve un firewall para
proteger una aplicación si tiene que admitir el
tráfico a través del puerto 80
Página siguiente |