Академический Документы
Профессиональный Документы
Культура Документы
Ingeniería de sistemas
Autores
Kamilo Andrés Pinedo Sánchez
Hugo Rafael Villero González
Jorge Leonardo González
septiembre 2019
Modelos de programación 2
1
Introducción
Con la llegada del internet la forma de transmitir la información ha ayudado grandemente a toda
la humanidad, ya que con solo un clic se puede acceder a toda esa información ya almacena en
distintos servidores en el planeta, por otro lado, también se ha venido beneficiado en el ámbito
económico y en este caso muchas empresas se han unido a estas plataformas virtuales para
hacer transacciones y manejo de dinero de manera virtual, para ello se han implementado
muchos métodos de seguridad, debido a que al ser de forma virtual pueden ser atacados de
distintas maneras y alcanzar lograr el objetivo de acceder a los datos de los usuarios y en casos
más extremos de acceder a los datos de estas empresas perdiendo información útil que pueden
acarrear en robos informáticos, para ello es indispensable tener una buena seguridad en todo
sentido, tanto como en el software utilizado que cumpla con unos lineamientos al igual que el
hardware sea lo más actualizado posible y así minimizar a los riesgos.
2
Objetivos
1. 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.
2. 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.
3
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.
Entre estos están:
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 perdida de la información. Para prevenir inyecciones se
requiere separar los datos de los comandos y las consultas usando una API segura
Perdida 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 seria no almacenar datos sensibles y si los almacena colocar algún tipo de
cifrado.
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 este 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
4
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 paginas 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
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 auditoria con controles de integridad para prevenir alteraciones o
eliminaciones.
5
https://sites.google.com/site/605bredesdecomputadoras/_/rsrc/1412949952391/home/11-politicas-de-seguridad-y-firewall/Firewall.jpg
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 abarcan 3 problemas muy comunes los cuales son:
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.
Escán automatizado de las páginas en un sitio web con el fin de encontrar archivos infectados.
6
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.
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.
En el caso de WordPress.
En lo que respecta a la seguridad de una página web bajo WordPress aparte de la
actualización de la versión, están las instalaciones y actualizaciones de plugins.
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.
7
La restricción de intentos de logins por los llamados «Ataques de Fuerza Bruta» a 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; es decir, un atacante puede vulnerar la seguridad de una página web atacando
al formulario de Login desde 1, 25, 50 o miles de IPs diferentes.
Para prevenir estos ataques se hace lo siguiente:
Conclusiones
Bibliografía
Martínez, F. (2013). Seguridad en aplicaciones web (I). Recuperado de
https://www.portantier.com/seguridad-en-aplicaciones-web-i.html
https://www.owasp.org/images/5/5e/OWASP-Top-10-2017-es.pdf
http://timoh6.github.io/2015/05/07/Rate-limiting-web-application-login-attempts.html