0% encontró este documento útil (0 votos)
52 vistas21 páginas

Políticas de Seguridad en Aplicaciones Web

El documento aborda la importancia de las políticas de seguridad en el desarrollo de aplicaciones web, destacando medidas preventivas y reactivas para proteger la información. Se presentan buenas prácticas de seguridad, riesgos comunes y vulnerabilidades, así como recomendaciones de OWASP para asegurar la integridad, confidencialidad y disponibilidad de los datos. Además, se enfatiza la necesidad de implementar un sistema de autenticación robusto y medidas de protección contra ataques cibernéticos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
52 vistas21 páginas

Políticas de Seguridad en Aplicaciones Web

El documento aborda la importancia de las políticas de seguridad en el desarrollo de aplicaciones web, destacando medidas preventivas y reactivas para proteger la información. Se presentan buenas prácticas de seguridad, riesgos comunes y vulnerabilidades, así como recomendaciones de OWASP para asegurar la integridad, confidencialidad y disponibilidad de los datos. Además, se enfatiza la necesidad de implementar un sistema de autenticación robusto y medidas de protección contra ataques cibernéticos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

MODELOS DE PROGRAMACIÓN 2

Actividad evaluativa 4
Definir las políticas de Seguridad.

Aldair Novoa Garizao

Mauricio Alexander Marin

Edwin Jaider Lopez

Andres Felipe Sanchez

Tutor:

GUSTAVO ENRIQUE TABARES PARRA

Fundación Universitaria del Área Andina


Facultad de Ingeniería, Ingeniería de Sistemas
Bogotá D.C
2021
Tabla de Contenidos

Introducción i
Objetivos generales ii
Objetivos específicos ii
Actividad evaluativa iii
Buenas prácticas de seguridad a nivel web. iv
Las bases de datos y seguridad aplicativa viii
OWASP: Algunas medidas de seguridad recomendadas viii
Recopilación de Información viii
Definir políticas de seguridad. viii
Autorización. ix
Integridad ix
No repudio x
Confidencialidad x
Disponibilidad de servicios x
Seguridad de extremo a extremo x
Resultados y Conclusiones xvi
Lista de referencias xvii
Introducción

La seguridad de la información se relaciona con una serie de medidas preventivas y


reactivas de las organizaciones y sistemas tecnológicos que permiten resguardar y proteger
la información buscando mantener la confidencialidad, la disponibilidad e integridad de
datos, la seguridad de aplicaciones web es una rama de seguridad informática donde se
busca asegurar el entorno de una aplicación, servicio o sitios web..

Muchas organizaciones desarrollan aplicaciones o servicios web las cuales están expuestas
a un sin número de ataques, un desarrollo seguro y la implementación de buenas prácticas
de seguridad protegen y aseguran estas aplicaciones, servicios y sitios web, por medio de
normas y estándares se cumple con el aseguramiento de un entorno y desarrollo web.

En esta actividad abordaremos los fundamentos más importantes sobre la seguridad de las
aplicaciones web para determinar cómo es que se desarrollará un proyecto de énfasis para
estructurar una aplicación web en una empresa.
Objetivos generales 

Incursionar en los conceptos de seguridad en el desarrollo de aplicaciones orientadas a la


web, definiendo los respectivos ítems que hagan de ellas soluciones más seguras, además
de poner en práctica el trabajo colaborativo y los conceptos adquiridos a lo largo del curso.

Objetivos específicos 

● Analizar el escenario del cliente para identificar los posibles riesgos que esté
expuesto las aplicaciones web del cliente, esto con el fin de salvaguardar la
disponibilidad, integridad y confiabilidad de la información de la empresa.

● Establecer soluciones seguras que permitan el orden y control de la aplicación.

● Identificar las vulnerabilidades presentes y establecer soluciones para evitar dichos


ataques.
Actividad  

El presente taller tiene como objetivo la definición de los conceptos que hacen de las
aplicaciones soluciones más seguras no solo a nivel de software sino a nivel de hardware
(infraestructura y dispositivos). De igual manera, se indaga acerca de los componentes que
se podrían incluir en el proyecto que posiblemente no se vieron directamente en el curso. Se
debe formular un problema para que sea desarrollado con la ayuda de los conceptos
trabajados a lo largo del curso.

Instrucciones:

1. Conformar grupos de 3 estudiantes.


2. Una cooperativa desea crear una aplicación web para que sus usuarios puedan
realizar sus transacciones online (consultas, aportes, retiros, actualizaciones,
descarga de certificados, extractos, etc.). Usted ha sido la persona seleccionada para
crear una estrategia que pueda brindar las técnicas, herramientas, políticas y
protocolos que le garanticen la seguridad necesaria para su buen funcionamiento.
Por lo tanto, debe enviar un documento en el que explique qué acciones aplicaría
con el fin de obtener este nivel de seguridad.
3. Entregar en formato PDF el desarrollo del taller, debe contener introducción,
objetivos, conclusiones y bibliografía.
Buenas prácticas de seguridad a nivel web.

A continuación se relacionan una serie de prácticas básicas para el aseguramiento de


aplicaciones web las cuales pueden ser implementadas en el desarrollo de un proyecto o
aplicación.

Objetos de datos de servicio (SDO)

Son especificaciones de un modelo de programación que da acceso a datos de fondo de


manera uniforme y desconectada, con orígenes de datos independientes. El modelo permite
que los datos sean recuperados desde cualquier tipo de origen de datos (base de datos
relacional, beans de entidad EJB, servicios web, orígenes de datos XML, etc.) y se
presenten de manera uniforme como gráfico de datos estructurado (Datagraph). Los SDO
ofrecen la posibilidad de realizar operaciones desconectadas mediante la recuperación de
gráficos de datos independientes de cualquier conexión o transacción de fondo. Aun así, se
trata de una especificación propuesta enviada a través de JCP como solicitud de
especificación Java (JSR).

Imagen 1. Procesamiento de datos multiproceso


Protección de datos sensibles

La implementación de cifrado SSL es una buena práctica de seguridad para asegurar el sitio
web de la empresa. el protocolo de seguridad SSL es un mecanismo que hace que los datos
viajen de manera íntegra y segura por medio de cifrado o encriptación de datos entre el
servidor y el usuario web, de igual forma el cliente que visita el sitio web puede estar
tranquilo de la autenticidad y confiabilidad para ingresar datos personales o que realicen
transacciones a través de él, el certificado SSL normalmente es un documento digital
firmado por una entidad llamada Autoridad el cual acredita que el sitio web es seguro

Sistema seguro de restablecimiento de contraseñas

En el desarrollo de la aplicación se debe implementar la autenticación de doble factor o


multi factor para dar una capa de seguridad adicional a la identidad de los usuarios, este
sistema permite que los usuarios puedan restablecer su contraseña basado en preguntas que
solo ellos recuerden o por sistema de reconocimiento de voz, cara o huella dactilar, por lo
general las aplicaciones web se diseñan para ser utilizados en multiplataforma siempre y
cuando se tenga acceso a un navegador web.

Denegación de servicio

Un ataque DDOS es un factor determinante donde deja inútil el servicio por donde el
usuario ingresa lo que hace que no se pueda hacer nada aplicando demoras o caídas en los
procesos que se manejan
Hace que el atacante use una serie de equipos con diferente IP que sobrecarguen el servidor
donde está alojado el servicio o aplicación web lo que a esto se le llama como red zombi
por la administración de equipos con un Bot manejado por una o varias personas.

Imagen 2. BotNET DDoS Attack

1. Riesgos de las páginas web

● Exposición de datos sensibles: el atacante es capaz de tener acceso fácilmente a


los datos sensibles almacenados en la aplicación o cuando se envían datos a través
del correo electrónico. Esto usualmente ocurre con fraude en tarjetas de crédito o
robos de identidad.
● Inyección: el atacante inserta código propio en un sitio web con el objetivo de
quebrantar las medidas de seguridad y acceder a los datos protegidos. Una vez
dentro, puede controlar la base de datos del sitio web y secuestrar la información de
los usuarios. La vulnerabilidad que aprovecha el atacante es que la aplicación web
no valida correctamente los datos que introduce el usuario en el interfaz y que son
utilizados después en consultas al repositorio de datos.
● Entidades externas de XML (XXE): Las entidades externas pueden ser usadas
para divulgar archivos internos mediante el controlador de archivos URI, recursos
compartidos internos, escaneo de puertos internos, ejecución remota de código y
ataques de denegación de servicio.
● Deserialización Insegura: La deserialización insegura a menudo conduce a la
ejecución remota de código. Incluso si las fallas de deserialización no dan como
resultado la ejecución remota de código, se pueden usar para realizar ataques,
incluidos ataques de repetición, ataques de inyección y ataques de escalada de
privilegios. En el momento en que se transforman los datos serializados a un objeto, un
atacante puede abusar de la lógica de la aplicación, y realizar ataques de denegación de
servicio (DoS), omitir autenticaciones e incluso ejecutar código malicioso de forma remota.
● Registro de logs y monitoreo insuficientes: El registró y monitoreo insuficientes,
junto con una mala integración de respuesta a incidentes, permite a los atacantes
atacar aún más los sistemas, mantener la persistencia, girar a más sistemas y
manipular, extraer o destruir datos. La mayoría de los estudios de infracciones
muestran que el tiempo para detectar una infracción es de más de 200 días,
típicamente detectado por partes externas en lugar de procesos internos o monitoreo.
● Los Ataques de tipo Cross-Site Scripting Attacks: el atacante toma control sobre
el navegador de un usuario con el propósito de ejecutar código o scripts malicioso
(generalmente scripts escritos en lenguaje HTML o JavaScript) dentro del entorno
de confianza del sitio web. Si tal código es ejecutado satisfactoriamente, el atacante
puede obtener acceso, de forma activa o pasiva, a recursos del navegador Web
asociados con la aplicación (tales como cookies e identificadores de sesión).
Prevenciones:

● Mejorar la infraestructura de la red para garantizar una buena comunicación en el


que se permita controlar mediante monitoreo el flujo de mensajes al que se accede a
la página web para evitar ataques externos.
● Lograr implementar servicios de seguridad web para fortalecer el sistema de
encriptado en el que se maneja una base de datos en la página web
● Implementar firewalls en la página web para realizar inspección profunda en cada
solicitud y respuesta de cada tipo.
● Revisar y encontrar vulnerabilidades en la aplicación web para que no se afecte la
integridad y seguridad del sitio web.
● Mantener actualizados todos los sistemas de seguridad para que se penetre la página
web mediante ataques externos.
Las bases de datos y seguridad aplicativa

Muchas de las aplicaciones web modernas son usadas para almacenar información del
usuario, es decir, estas interactúan con una base de datos para así poder insertar, crear,
modificar, almacenar todos los datos necesarios.

Actualmente la inyección de bases de datos es un problema común a pesar de las distintas


recomendaciones hechas para el aseguramiento de la información; Muchos programadores
hacen caso omiso a estas instrucciones y recomendaciones debido que consideran que la
fuente donde provienen estos datos es segura, sin embargo, se deben implementar medidas
de seguridad a fondo y con redundancia, así se podrá evitar datos maliciosos o detectarlos
con tiempo de anticipación.

OWASP: Algunas medidas de seguridad recomendadas


Recopilación de Información
Una de las primeras fases para empezar a implementar medidas de seguridad es la
recopilación de información, si se recolecta una gran cantidad de información acerca de la
aplicación web se podrá analizar algunas posibles vulnerabilidades para poder corregirlas a
tiempo, esta se puede realizar de muchas formas, algunas son:

● Pruebas para encontrar firmas de Aplicaciones Web


● Identificación de puntos de entrada de la aplicación
● Spiders, Robots, y Crawlers
● Análisis de códigos de error
● Reconocimiento mediante motores de Búsqueda
● Descubrimiento de aplicaciones
Definir políticas de seguridad.
“Una cooperativa desea crear una aplicación web para que sus usuarios puedan realizar
sus transacciones online (consultas, aportes, retiros, actualizaciones, descarga de
certificados, extractos, etc.). Usted ha sido la persona seleccionada para crear una
estrategia que pueda brindar las técnicas, herramientas, políticas y protocolos que le
garanticen la seguridad necesaria para su buen funcionamiento.”

En primera instancia se debe tener claro cuál es el tipo de aplicación web que se desea
realizar (tienda en línea, e-learning web, publicitario, etc.). En esta se busca que los
usuarios puedan realizar sus transacciones online, consultas, aportes, retiros,
actualizaciones, descarga de certificados, extractos, entre otras; Por lo tanto, este implica
que se haga algún tipo de movimiento bancario o financiero donde debemos ser muy
estrictos con la seguridad que se aplicara en la aplicación web. Así que a nuestros usuarios
debemos garantizarles:

Imagen 3. Principios de calidad de software


Autorización.
Al hablar de autorización, estamos garantizando a los usuarios el acceso a los módulos de la
aplicación a los cuales tienen el derecho, y el no acceso a aquellos que están fuera de su
alcance. Así restringimos a las personas que quieran ingresar a la aplicación ya sea
buscando la información de un usuario en específico o buscando información más global.

Integridad
Cuando hablamos de integridad nos referimos a que a todo tipo de información enviada por
los usuarios se le garantizara la autenticidad, sin ningún tipo de alteración u omisión.

No repudio
El no repudio del servicio es el reconocer que un usuario uso un servicio a pesar de que tal
vez este no se haya concretado, igual debemos reconocer el uso del servicio cuando la
ejecución de este haya sido exitosa, se les conoce como no repudio del solicitante y no
repudio del receptor, respectivamente.

Confidencialidad
Nuestros usuarios deben estar seguros de que todo tipo de información que sea registrada
en la aplicación web será de uso exclusivo para ellos mismos o las personas autorizadas
para ello.

Disponibilidad de servicios
Para el usuario es fundamental que al acceder a la aplicación los servicios a los cuales desea
acceder estén disponibles, así que se busca que todo servicio ofrecido por la cooperativa a
través de la aplicación web se encuentre disponible para que el cliente pueda hacer uso de
él en el momento que lo necesite, sin preocupaciones de no disponibilidad.
Seguridad de extremo a extremo
Al ofrecerle al cliente la seguridad de extremo a extremo, le estamos dando la tranquilidad
que cualquiera de los datos ingresados estará seguro en cualquier punto del recorrido que
seguirá desde el momento en que se genera la petición, actualización etc. Hasta que esta
llega a punto final.

Ya que la aplicación que se realizará tiene información importante almacenada en una base
de datos, debemos estar seguros de que la base de datos estará blindada de ataques directos
a ella. Algunos aspectos a tener en cuenta son:

● Controlar el acceso a la base de datos


● Identificar datos sensibles o críticos
● Cifrar la información
● Hacer anónimas las bases de datos no productivas
● Monitorizar la actividad de la base de datos

Debemos guardar la aplicación de la Inyección, ya que estaremos en continua


comunicación con la base de datos, así que debemos estar seguros de que cualquier
consulta a esta será segura y no habrá espacio para filtraciones de código en la consulta, las
cuales podrían traer información extra y ser usada de forma indebida.

Según OWASP, la segunda vulnerabilidad más común es la perdida de autenticación, así


que se recomendaría el correcto manejo de sesiones, el impedimento de creación de
contraseñas débiles o muy conocidas, el almacenamiento de las contraseñas cifradas de
manera adecuada. Debemos evitar a toda costa la exposición de datos sensibles.
Proteger la aplicación web de entidades externas hará que la guardemos de posibles ataques
como la denegación de los servicios a los usuarios.

Para llevar a cabo esta tarea de manera exitosa debemos ser rigurosos en cuanto a
autenticación estamos hablando, y no solo de nuestra parte hacia el cliente. Que ellos
puedan estar seguros de que están haciendo solicitudes a la cooperativa sin riesgos de que
su información sea vulnerable, es algo que les debemos garantizar, esto nos obliga a buscar
maneras para evitar ataques del tipo MAN IN THE MIDDLE u hombre en el medio, el cual
busca comprometer la comunicación en algún punto, mayormente en dirección
usuario-aplicación.

Imagen 5. Man in the middle attack

Debemos cuidar nuestra aplicación web de los diferentes tipos de ataques que podrían ser
usados contra ella, entre ellos tenemos:

● Modificación de mensajes
● Ataques a la confidencialidad
● Hombre en el medio
● Suplantación de identidad
● Denegación de servicio
● Ataques de repetición

Resumen del proyecto anterior

En el anterior trabajo se ha realizado una conexión simple a una base de datos por medio de
un servlet y un formulario para ingresar datos, sin embargo, no se aplicaron las respectivas
medidas de seguridad para proveer integridad en la aplicación web de una manera
adecuada. Algunos de los recursos usados en el proyecto fueron:

● Base de datos MySQL - MariaDB


● Java EE Enterprise
● Glassfish Server o Tomcat JEE

En esta ocasión se dará un ejemplo de aseguramiento posible integrando un sistema de


AAA para el inicio de sesión de los usuarios que acceden a la plataforma permitiendo así el
control de acceso de usuarios mediante un panel administrativo.

El diseño del panel administrativo tendría un aspecto similar a este mostrando una interfaz
amigable e interactiva con el usuario:
Imagen 6. Web Admin panel. Fuente: Ad In Publicidad SAS.

Inicialmente se investigó sobre sistemas de logueo con MySQL y Java, procediendo a


aplicar los conceptos determinados, se obtiene un modelo de tabla de usuarios:

Solo cuando hayamos creado la tabla usuarios sobre la base de datos procedemos a crear
los archivos de control que permitirán agregar el componente de seguridad al proyecto.
Lo anterior nos permite verificar algunos aspectos de seguridad como:

● Verificación de sesión iniciada.


● Depuración de variables, limpieza de caracteres adicionales o código malicioso.
● Validación de correcta escritura de correo para el ingreso
● Encriptación de datos.

El formulario contiene dos campos donde se ingresarán el nombre de usuario el cual debe
corresponder al correo electrónico del mismo y la contraseña la cual se envía por medio del
método POST, los datos en la variable password se convierten con el algoritmo de
encriptación SHA y el string resultante se comparará con el string almacenado en la base de
datos, en caso de ser iguales podremos acceder a la página indicada.
Una vez realizado el proceso de logueo exitoso podremos acceder a nuestra interfaz
principal. Sin embargo, es necesario anotar que la seguridad hasta este punto, aunque esta
mejorada se podría complementar con la implementación de certificados SSL que
aumentarían la seguridad de los datos que viajan por la red al momento de comunicar el
cliente con el servidor principal.
Conclusiones

Hemos analizado simplemente algunos de los múltiples aspectos relativos a la seguridad en


las aplicaciones web. Aunque claramente se cubrió una pequeña parte del tema, fue
suficiente para comprobar lo fácilmente que puede ser vulnerada una aplicación cuando no
se les asigna una prioridad adecuada a los controles de seguridad en las distintas etapas de
desarrollo.

La presente realidad de la industria atenta contra la posibilidad de implementar estos


controles en forma adecuada, en particular la creciente complejidad y variedad de
tecnologías incrementa de la misma forma la variedad de puntos vulnerables y técnicas de
ataque.

Muchas de las vulnerabilidades que se pueden presentar son propias de la plataforma sobre
la que se desarrolla la aplicación (Sistema Operativo, software de base, herramientas de
desarrollo), otras son negligencia por parte de jefes de proyecto, arquitectos, diseñadores,
programadores, administradores y usuarios del sistema.

Vimos varias medidas de control, que deben ser implementadas en el marco de políticas de
seguridad establecidas, ejecutadas en varias fases distintas del ciclo de vida de la
aplicación, y controladas por un auditor, que permiten disminuir considerablemente los
riesgos e impacto de estas amenazas vistas, aunque difícilmente sea posible asegurar la
invulnerabilidad de una aplicación.
Lista de referencias

1. Weisfeld, Matt (2003). The Object-Oriented Thought Process (2nd Edition).


Sams. ISBN 0-672-32611-6.
2. Fowler, Martin (1996). Analysis Patterns: Reusable Object Models.
Addison-Wesley. ISBN 0-201-89542-0.
3. K. Fisher, F. Honsell, and J.C. Mitchell (1994). A Lambda Calculus of Objects and
Method Specialization. Nordic Journal of Computing 1: 3–37.
4. Marini, Joe (2002). Document Object Model: Processing Structured Documents.
Osborne/McGray-Hill. ISBN 0-07-222436-3.
5. Lippman, Stanley (1996). Inside the C++ Object Model. Addison-Wesley
Professional. ISBN 0-201-83454-5.
6.  Real Academia Española y Asociación de Academias de la Lengua Española
(2014). «programar». Diccionario de la lengua española (23.ª edición). Madrid:
Espasa. ISBN 978-84-670-4189-7.
7. ↑ JOSÉ LUIS LÓPEZ (Digital Marketing_) (10 de diciembre de 2019). «Aprender
por Internet». Consultado el 10 de diciembre de 2019.

También podría gustarte