PROGRAMACIÓN APLICACIÓN WEB
DEFINIR POLÍTICAS DE SEGURIDAD WEB
Nicolas Andres Rincon
Fabian Danilo León
Andres Felipe Gutierrez Betancur
Fundación Universidad del Área Andina
Junio 8 del año 2020
Facultad Ingeniería de Sistemas, Modelos de programación II, Fundación Universidad del
Area Andina
1
PROGRAMACIÓN APLICACIÓN WEB
INTRODUCCIÓN 2
OBJETIVOS 4
OBJETIVOS GENERALES 4
OBJETIVOS ESPECÍFICOS 4
PLANTEAMIENTO DEL PROBLEMA 5
Métodos más utilizados para vulnerar los aplicativos Web 5
Inyección 5
Pérdida de autenticación 5
Exposición de datos sensibles 5
Entidades Externas XML (XXE) 6
Pérdida de Control de Acceso 6
Configuración de Seguridad Incorrecta 6
Secuencia de Comandos en Sitios Cruzados (XSS) 7
Deserialización Insegura 7
Componentes con vulnerabilidades conocidas 7
Registro y Monitoreo Insuficientes 7
ACCIONES PARA OBTENER UN ALTO NIVEL DE SEGURIDAD EN MI
APLICACIÓN WEB 8
1. Proteger la integridad del código de tu Sitio 8
2. Ejecutar monitoreos de seguridad 8
3. Crear contraseñas fuertes y solicitar renovaciones periódicas 9
4. Actualización de softwares, frameworks y plugins de tu página web 10
5. Restricción de logins contra ataques de fuerza bruta 10
6. Restricción de permisos de escritura 11
7. Utilizar certificados SSL (HTTPS para la confianza de tus usuarios) 11
2
PROGRAMACIÓN APLICACIÓN WEB
INTRODUCCIÓN
Un mundo bastante globalizado, donde la tecnología y en particular el uso de
internet al interior de diversos dispositivos es el pan de cada día, nace la imperiosa
necesidad de generar entornos seguros que faciliten el intercambio de información
de forma eficiente y segura para quienes interactúan allí. En donde manejamos toda
clase de información manejamos tambien cuentas información laboral entre otras,
información que se puede usar de forma incorrecta cuando no generamos la
seguridad necesaria por esta razón queremos dar a conocer las políticas de seguridad
.
3
PROGRAMACIÓN APLICACIÓN WEB
OBJETIVOS
OBJETIVOS GENERALES
El objetivo de este documento es dar solución a un problema de seguridad brindando
estrategias para la protección de los datos de una aplicación web que requiere de políticas
apropiadas de seguridad de la información.
OBJETIVOS ESPECÍFICOS
● Proponer los protocolos a utilizar en dicha programación que permita que los usuarios
tengan plena confianza en la seguridad de sus datos ante ataques cibernéticos.
● Abordar la seguridad no solo desde la perspectiva de quien accede o no a una
aplicación bajo esquemas tradicionales de usuarios y contraseñas, sino para
saber cómo mantener esa información de tal manera que exista una gran
confianza para los usuarios que utilizan soluciones de software y la información
que depositan allí.
4
PROGRAMACIÓN WEB
PLANTEAMIENTO DEL PROBLEMA
Se desea crear una aplicación web para realizar transacciones online sobre consultas, retiros, aportes,
entre otros, para ello se necesitan adoptar unos estándares de seguridad altos ya que habrá manejo
monetario dentro dicha aplicación. se tendrán en cuenta como referencia los métodos más utilizados para
vulnerar los aplicativos webs y así obtener la protección adecuada frente a ellos, aunque hay muchísimos
más y siempre habrá la posibilidad o riesgo de aparecer nuevas alternativas de vulnerabilidad siendo así
una prioridad estar constantemente actualizando dicho aplicativo para así minimizar los riegos.
❖ Métodos más utilizados para vulnerar los aplicativos Web
➔ Inyección
Este método es utilizado en forma de consulta SQL, NoSQL, OS o LDAP los archivos dañinos del agresor
hacen que se ejecuten comandos sin permisos, o otorga permisos de manera inconsciente, este puede
llegar a causar pérdida de la información. Para prevenir inyecciones se requiere separar los datos de los
comandos y las consultas usando una API segura
➔ Pérdida de autenticación
Las formas de gestión de inicio de sesión mal desarrolladas pueden permitir que un posible atacante logre
obtener datos de usuario y contraseñas y así poder hacer suplantaciones, para prevenir estos ataques se
tiene que hacer implementación de autenticación multi-factor y controles de contraseñas débiles que
obliguen a escribir a los usuarios contraseñas con más combinaciones.
➔ Exposición de datos sensibles
Como se quiere desarrollar un aplicativo web sobre transacciones bancarias se debe tener mucha más
protección a los datos bancarios ya que son susceptibles a robo de esta información y posteriormente en
tales casos hacer fraudes con tarjetas de crédito, como recomendación para proteger estos datos sería no
almacenar datos sensibles y si los almacena colocar algún tipo de cifrado.
5
PROGRAMACIÓN WEB
➔ Entidades Externas XML (XXE)
Muchos procesadores XML antiguos o mal configurados evalúan referencias a entidades externas en
documentos XML. Las entidades externas pueden utilizarse para revelar archivos internos mediante la URI
como también escanear puertos de la LAN, ejecutar código de forma remota, para prevenir ataques por
esta forma es necesario tener actualizada las bibliotecas XML que esté utilizando la aplicación y si es
posible usar formatos de datos menos complejos como JSON.
➔ Pérdida de Control de Acceso
Las restricciones sobre lo que los usuarios autenticados pueden hacer no se aplican correctamente, debido
a estos fallos pueden obtener acceso de forma no autorizada de manera que podrán ver, modificar y
cambiar permisos de otros usuarios, se deben implementar mecanismos de control de acceso una vez y
reutilizarlo en todo el aplicativo web
➔ Configuración de Seguridad Incorrecta
Como su nombre lo indica tener ámbitos de seguridad malos y sin falta de actualizaciones, como también
páginas no utilizadas y sin protección son un atractivo para el atacante, se debe crear el aplicativo web de
forma sencilla solo componentes que se van a utilizar nada de funcionalidades sin uso que provocaría una
entrada factible para el agresor.
➔ Secuencia de Comandos en Sitios Cruzados (XSS)
Los XSS ocurren cuando una aplicación toma datos no confiables y los envía al navegador web sin una
validación y codificación apropiada, estos ataques roban sesión, apropiación de las cuentas y descarga de
software malicioso al cliente, para prevenir lo recomendable es usar frameworks seguros como Ruby 3.0
6
PROGRAMACIÓN WEB
➔ Deserialización Insegura
Los agresores crean objetos serializados que son usados para realizar ataque de repetición o inyecciones y
en el peor de los casos poder tener una conexión remota con el servidor, para prevenir estos objetos se
realiza la verificación de firmas digitales como también aislar el código que realiza la deserialización.
➔ Componentes con vulnerabilidades conocidas
Las bibliotecas o frameworks y otros tienen los privilegios que toda la aplicación, por lo cual estos tienen la
necesidad de mantenerse actualizados, para protegerse de estas vulnerabilidades es necesario no tener
componentes sin utilizar y obtenerlos desde orígenes oficiales.
➔ Registro y Monitoreo Insuficientes
El no monitoreo del aplicativo web hace que frente a una amenaza e incidente no sea detectado o
detectado de manera tardía para esto es necesario que las transacciones importantes que se realicen
tengan una auditoría con controles de integridad para prevenir alteraciones o eliminaciones.
7
PROGRAMACIÓN WEB
ACCIONES PARA OBTENER UN ALTO NIVEL DE SEGURIDAD EN MI
APLICACIÓN WEB
Fuente:[Link]
1. 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).
Aunque la protección de la integridad del código de un sitio web abarca muchos puntos los servicios de
seguridad de páginas web abarca 3 problemas muy comunes los cuales son:
❏ Inclusión Remota de Archivos (Remote File Inclusion/RFI)
❏ Secuencia de Comandos en Sitios Cruzados (Cross-site scripting/XSS)
❏ Falsificación de Petición en Sitios Cruzados
2. 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.
❖ ¿Qué incluye un servicio de monitoreo de seguridad?
❏ Los servicios más básicos de monitoreo de seguridad por lo general abarcan:
❏ Escán automatizado de las páginas en un sitio web con el fin de encontrar archivos infectados.
❏ Escán de vulnerabilidad, el cual consiste en la detección e identificación de partes de un sitio web
propensas a ser atacadas por hackers.
8
PROGRAMACIÓN WEB
❏ Almacenaje de reportes para analizar patrones en caso de futuras infecciones.
❖ Verificación contra listas negras
❏ Esto consiste en comprobar que un sitio web no esté listado en las principales bases de datos de listas
negras alrededor del mundo.
3. 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 una 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.
❖ Aplicar una autenticación HTTP que se basa en formularios:
La información que viaja entre el servidor y el cliente va encriptada, haciendo uso del método de
criptografía de llave pública. Este lo soportan gran variedad de los navegadores y es el más seguro frente a
otros métodos. Como desventaja puede mencionarse el hecho de que requiere un aval por parte de una
entidad certificadora y, además, el costo de implementación y soporte es elevado.
4. Actualización de softwares, frameworks y plugins de tu página web
9
PROGRAMACIÓN 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.
❏ XML Encryption
En este hay un framework que se utiliza para el cifrado de documentos XML. En el ejemplo siguiente se
muestra cómo debe usarse este estándar asociado a llaves simétricas.
5. Restricción de logins contra ataques de fuerza bruta
La restricción de intentos de logins por los llamados (Ataques de Fuerza Bruta) 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.
Los Ataques de Fuerza Bruta suelen prevenirse bloqueando los intentos de acceso desde 1 o más orígenes;
Para prevenir estos ataques se hace lo siguiente:
❏ Se limita la tasa de intentos de login por cada origen
❏ Se limita la tasa de intentos de login por cada cuenta
❏ Se limita la tasa global de intentos
6. Restricción de permisos de escritura
10
PROGRAMACIÓN WEB
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.
7. Utilizar certificados SSL (HTTPS para la confianza de tus usuarios)
HTTP ([Link] es un protocolo de transmisión de información entre un punto A en internet a un
punto B
HTTPS ([Link] 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.
Para efectuar el protocolo HTTPS se debe generan certificados de seguridad SSL (Secure Sockets Layer) que
se encargan de autenticar la información del punto A al B asimismo como garantizar la privacidad de la
información.
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.
11
PROGRAMACIÓN WEB
CONCLUSIONES
Teniendo en cuenta que la seguridad en la información de los usuarios es lo más importante y
que los ataques cibernéticos que vulneran la seguridad en la información en gran proporción
van dirigido a páginas que contienen información económica y financiera de empresas y
personas, nos permitimos proponer unas herramientas, políticas y protocolos que garanticen
la seguridad de la información de los usuarios queriendo con esto minimizar la probabilidad
de un ciberataque.
12
PROGRAMACIÓN WEB
BIBLIOGRAFÍA
❖ Niño Benitez, Y., & Silega Martínez, N. (2018). Requisitos de Seguridad para aplicaciones web.
Revista Cubana de Ciencias Informáticas, 12, 205-221.
❖ Stallings, W. (1994). Fundamentos de seguridad en redes: aplicaciones y estándares. Pearson
Educación.
❖ Acevedo, R. V., & Reinoso, C. R. (2011). Una comparación de metodologías para el modelado de
aplicaciones web. Revista Cubana de Ciencias Informáticas, 5(2).
❖ Avilés, G. G. (2015). Seguridad en bases de datos y aplicaciones web. IT Campus Academy.
❖ Medidas de seguridad en páginas web que protegerán tuSEO [Link]/seguridad-en-
paginas-web-para-cuidar-tu-seo/
13