410SEGURIDAD
DE APLICACIONES
(Tomado
de http://www.monografias.com/trabajos75/seguridad-desarrollo-aplicaciones-web/seguridad-desarrollo-aplicaciones-web.shtml
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.
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.
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
No hay comentarios.:
Publicar un comentario