Anda di halaman 1dari 22

DEFINIR LAS POLÍTICAS DE SEGURIDAD EN EL DESARROLLO DE

APLICACIONES ORIENTADAS A LA WEB

ANA CAROLINA CABRERA BLANDÓN


ANDRÉS FELIPE ROA RÍOS
ORLANDO ALFONSO ZAMBRANO ZAMBRANO

FUNDACIÓN UNIVERSITARIA DEL ÁREA ANDINA


FACULTAD DE INGENIERÍA Y CIENCIAS BÁSICAS
INGENIERÍA DE SISTEMAS
MODELOS DE PROGRAMACIÓN II
2019
TABLA DE CONTENIDOS

1. Introducción
2. Objetivos
2.1 General
2.2 Especificos
3. Desarrollo de la Actividad
3.1 Consecuencias de ataques exitosos a aplicaciones web vulnerables
3.2 Evaluación de riesgos
3.3 Threat modelling
4. Aplicación de las buenas practicas de owasp
4.1 Protocolos seguros y Criptografía
4.2 Autenticación de los usuarios
4.3 Protección frente a ataques de inyección
4.4 Control De Acceso
4.5 Trazabilidad
4.6 Base de Datos
4.7 Protección De Infraestructura
5. Phishing
5.1 Recomendaciones para el Phishing
6. Seguridad informática en aplicaciones web
6.1 Problemas en la programación
6.2 Usuario y Contraseña
6.3 Rastrea los datos y encriptarlos
6.4 Filtros
6.5 Escapados
7. Cuáles son los Ataques más comunes en Aplicaciones web
8. CONCLUSIONES
9. Bibliografía
1. Introducción

El presente documento contiene los aspectos generales y requisitos de seguridad


de la información a tener en cuenta para el desarrollo de una aplicación WEB
segura, para este caso se expondrán los requerimientos que debe tener la
aplicación transaccional de la cooperativa, con el fin de presentar un sistema de
seguridad óptimo y saber que vulnerabilidad hay en el sistema. Mejorado la forma
como presenta los datos a los usuarios, mejor rendimiento, dinamismo, protección,
organización de la información son unos de los diferentes cambios de los más
relevantes en la tecnología.

Si bien la usabilidad y la seguridad en una aplicación web no son excluyentes una


de la otra, alguna medida tomada para incrementar la seguridad con frecuencia
afecta la usabilidad. Normalmente siempre se debe pensar en las maneras en que
usuarios ilegítimos nos pueden atacar y la facilidad de uso para los usuarios
Legítimos.
2. OBJETIVOS

2.1 GENERAL

Definir las políticas de seguridad en el desarrollo de aplicaciones orientadas a la


web, recomendaciones de pruebas para las aplicaciones web en desarrollo para
prevenir y combatir los ciberataques a aplicaciones vulnerables.

2.2 ESPECIFICOS

Realizar un análisis de las amenazas o ataques más comunes realizados a los


aplicativos WEB, con el fin de dar los lineamientos, buenas prácticas y
recomendaciones de pruebas para las aplicaciones web.

Contar con un sistema de seguridad óptimo y saber que vulnerabilidad hay en el


sistema. Mejorado la forma como presenta los datos a los usuarios, mejor
rendimiento, dinamismo, protección, organización de la información son unos de los
diferentes cambios de los más relevantes en la tecnología.

Asegurar y velar por que existan controles adecuados para la protección de esta
información desarrollando plataformas seguras, sin vulnerabilidades y con los
controles adecuados para la prevención de ataques más comunes.
3. DESARROLLO DE LA ACTIVIDAD

El presente documento contiene los aspectos generales y requisitos de seguridad


de la información a tener en cuenta para el desarrollo de una aplicación WEB
segura, para este caso se expondrán los requerimientos que debe tener la
aplicación transaccional de la cooperativa, con el fin de tener una línea base para
el desarrollo de una aplicación WEB segura con el fin de garantizas la integridad,
confidencialidad y disponibilidad de la información de los clientes.

Para la aplicación web se recomienda saber que las aplicaciones bancarias son más
vulnerables ya que los usuarios prefieren acceder a sus cuentas bancarias por
medio online y hacer los trámites o consultas que necesiten. Para esto se tiene
que contar con un sistema de seguridad óptimo y saber que vulnerabilidad hay en
el sistema.

La Web ha estado enfrentada a diferentes cambios, las cuales al pasar de los


tiempos ha mejorado la forma como presenta los datos a los usuarios, mejor
rendimiento, dinamismo, protección, organización de la información son unos de los
diferentes cambios de los más relevantes en la tecnología. De igual manera muchas
de estas aplicaciones WEB tienen uno de los activos más importantes que es la
información de sus clientes, lo cual entidades bancarias, portales transaccionales
de empresas, cooperativas, pasarelas de pago, deben asegurar y velar por que
existan controles adecuados para la protección de esta información desarrollando
plataformas seguras, sin vulnerabilidades y con los controles adecuados para la
prevención de ataques más comunes.
3.1 CONSECUENCIAS DE ATAQUES EXITOSOS A APLICACIONES WEB
VULNERABLES

Los atacantes constantemente están buscando aplicaciones vulnerables en el


mercado con el fin de generar diversos de ataques para fines maliciosos,
anteriormente el objetivo de los atacantes era realizar la mayor cantidad de ataques
exitosos a diferentes objetivos con el fin de obtener un reconocimiento o reputación
frente a su grupo de atacantes donde obtenía respecto y admiración por sus
conocimientos técnicos en el bajo mundo de la informática.

Sin embargo, en la actualidad ese objetivo cambió, ahora el objetivo es mucho más
valioso para los atacantes, ya que no solo es a nivel de reconocimiento sino también
por objetivo político, de dinero y búsqueda de afectación de los objetivos
seleccionados. Para lo cual la población de atacantes ha incrementado cada vez
más pues las motivaciones son cada vez más interesantes, ahora, uno de los
riesgos que pueden generarse en caso tal de que un atacante realice una
explotación de un ataque exitoso sobre una aplicación WEB vulnerable de una
empresa reconocida mundial o regionalmente, puede llegar a generar las siguientes
consecuencias negativas:

• Robo de información
• Perdida Financiera
• Riesgo Reputacional
• Desconfianza por parte de los clientes
• Interrupción de la operación1
3.2 EVALUACIÓN DE RIESGOS

Si bien la usabilidad y la seguridad en una aplicación web no son excluyentes una


de la otra, alguna medida tomada para incrementar la seguridad con frecuencia
afecta la usabilidad. Normalmente siempre se debe pensar en las maneras en que
usuarios ilegítimos nos pueden atacar y la facilidad de uso para los usuarios
Legítimos.

La identificación de las necesidades de seguridad es vital a la hora de crear


protocolos efectivos. Es en esta etapa donde se deben tomar en cuenta y evaluar
aquellos factores más propensos a causar un impacto en la seguridad de
aplicaciones web. Por ejemplo: Nivel de sensibilidad de los datos manejados en la
aplicación, accesibilidad, rastreabilidad, tipo de usuarios que tendrán acceso, etc.
Después del proceso de identificación lo más recomendable es priorizar los factores
de mayor impacto para así proceder a establecer las estrategias efectivas.

Lo anterior es necesario con el fin de identificar que riesgos se pueden


desencadenar en las organizaciones y así establecer planes de acción necesarios
para poder mitigarlos, esto va muy de la mano con el proceso de gestión de
vulnerabilidades pues esto debe ser periódico y constante.

3.3 THREAT MODELLING

Desde hace unos años el proceso de modelado de amenazas ha tenido una


repercusión bastante importante, pues ayuda significativamente en los nuevos
proyectos de aplicaciones WEB a tener un panorama más claro de las amenazas
que se pueden presentar en los proyectos de desarrollo de software o aplicaciones,
con base a esto establecer planes de trabajo adecuados para la mitigación de las
amenazas evitando riesgos e impactos críticos una vez la aplicación este en
producción. El proceso debe aplicarse en las primeras etapas de desarrollo del
aplicativo, esto con el fin de detectar amenazas en etapas tempranas y no días
previos a la salida de producción. El modelado de amenazas puede ser desarrollado
con el equipo de desarrollo, arquitectos, y personal de seguridad de la información,
compuesto de fases para:

Entendimiento de la aplicación
Entendimiento de la arquitectura de la aplicación y sus dependencias.
Identificación de amenazas
Clasificación de las amenazas
Creación de Flujo de Datos de Threat Modeling.
Creación de plan de mitigación.

Las clasificaciones de las amenazas se realizarán con base en el modelo STRIDE,


dicho modelo fue creado por Microsoft, y su estructura permite clasificar las
amenazas relacionadas frente a los riesgos informáticos más comunes de las
aplicaciones.

Sus siglas corresponden a:

S= Spoofing (Identidad)
T= Tampering (Afectación de los datos)
I= Information Disclosure (Revelar información confidencial o sensible)
D= Denial of Service (Denegación de servicio)
E= Elevation of Privilege (Elevación de Privilegios)
Los beneficios que se pueden obtener con este modelo son:

 Evitar reprocesos
 Ahorro de Dinero
 Cumplimiento de los estándares y buenas prácticas de Seguridad.
 Etapas de remediación tempranas en paralelo al desarrollo del producto.
4. APLICACIÓN DE LAS BUENAS PRACTICAS DE OWASP

OWASP (Open Web Aplication Security Project) es un proyecto sin ánimo de lucro
que tiene como objetivo ayudar a los desarrolladores y personal de seguridad
informática a desarrollar y probar aplicaciones web seguras.

El proyecto tiene como objetivo realizar un análisis de las amenazas o ataques más
comunes realizados a los aplicativos WEB, con el fin de dar los lineamientos,
buenas prácticas y recomendaciones de pruebas para las aplicaciones web en
desarrollo para prevenir y combatir los ciberataques a aplicaciones vulnerables.

Es esencial la aplicación de estos conceptos en el momento de realizar desarrollo


de aplicaciones, pues con base a la experiencia de miles de colaboradores de
distintas partes del mundo contribuyen a dejar el mejor material, recomendaciones,
buenas prácticas correctamente para proteger la web.

Dentro de su lista general de vulnerabilidades es muy conocido por su paper Top


10 Owasp, pues aquí documentan los 10 riesgos de seguridad más críticos, y que
las mismas deben estar solucionadas con el fin de cerciorarse que la aplicación a
desarrollar esta segura.

El Top 10 Owasp del año 2017 contiene:


A1:2017 - Inyección
A2:2017 - Pérdida de Autenticación
A3:2017 - Exposición de Datos Sensibles
A4:2017 - Entidades Externas XML (XXE)
A5:2017 - Pérdida de Control de Acceso
A6:2017 - Configuración de Seguridad Incorrecta
A7:2017 - Cross-Site Scripting (XSS)
A8:2017 - Deserialización Insegura
A9:2017 - Uso de Componentes con Vulnerabilidades Conocidas
A10:2017 - Registro y Monitoreo Insuficientes

Para desglosar lo anterior se puede detallar a modo general en las siguientes


recomendaciones a nivel de aseguramiento de aplicaciones WEB:

4.1 PROTOCOLOS SEGUROS Y CRIPTOGRAFIA

Para cumplir con este ítem la aplicación WEB y plataforma que la soporta deberá
contar con:

Protocolo de transporte seguro HTTPS: Sobre todo para aplicaciones que manejen
portales transaccionales e información sensible, el uso de este protocolo garantiza
que la comunicación siempre sea segura y que la información transmitida viaje
encriptada.
El uso de protocolo inseguro como HTTP permite que la información viaje sin cifrar,
lo cual puede ser interceptada por un atacante.

Uso de certificados digitales seguros: Al usar un protocolo seguro deberá también


usarse certificados digitales los cuales ayudarán a garantizar la comunicación punto
a punto y la confiabilidad de los sitios, los certificados deberán ser emitidos por una
entidad certificadora confiable y con algoritmos y llaves robustas.

Uso de algoritmos robustos: Deberá usarse algoritmo de transporte seguros en la


actualidad TLS.

Lo anterior será esencial puesto que en la aplicación de la cooperativa se evidencia


data en tránsito teniendo en cuenta las siguientes acciones (consultas, aportes,
retiros, actualizaciones, descarga de certificados, extractos) todo esto es data en
tránsito, y la data que está viajando tanto de subida como de descarga debe estar
cifrada con el uso de protocolos seguros.

4.2 AUTENTICACIÓN DE LOS USUARIOS

 Forzar a los usuarios en la creación de los usuarios a generar contraseñas


seguras y robustas que puedan ser difíciles de descifrar por medio de un ataque
de fuerza bruta.
 Utilizar cookies de sesión o token seguros.

 Implementar un time-out en la aplicación, esto quiere decir que se debe


implementar un control que cierre la aplicación después de un tiempo
determinado una vez no se detecte ninguna interacción por parte del usuario.

 Se debe implementar un control de evasión de ataques de robot como captcha,


esto también ayudara a combatir los ataques de fuerza bruta.

 No se debe permitir accesos con contraseñas débiles ni que la contraseña sea


similar al usuario.

 La función de cierre de sesión debe funcionar correctamente, una vez el usuario


da clic en cerrar sesión las cookies deben ser destruidas y no pueden ser
reutilizadas.

4.3 PROTECCIÓN FRENTE A ATAQUES DE INYECCIÓN

Los ataques más comunes a nivel de inyección a nivel de aplicación son los ataques
de SQL Injection y Cross Site Scripting, para combatirlos hay que tener en cuenta
las siguientes recomendaciones:
 Parametrizar las consultas
 Escapar caracteres especiales
 No mostrar información de errores de base de datos en el aplicativo WEB
 Invocar procesos almacenados en las operaciones mas no invocar las
sentencias directamente.
 Verificar siempre los datos que ingresan a la aplicación tanto en la URL como
en los campos.
 Sanitizar el código de la aplicación.

4.4 CONTROL DE ACCESO

 Parametrizar correctamente los roles por usuario o grupos de usuarios.


 Evitar elevación de privilegios.
 Utilizar y recordar el principio en base al menor privilegio.

Aunque se relacionan las más importantes a nivel de aplicativo, esto también se


relaciona con los accesos que se suministran a los administradores de plataforma y
servidores.

4.5 TRAZABILIDAD (NO REPUDIO)

Cualquier acción, cambio, modificación, eliminación o adición en alguno de los


sistemas debe quedar registrado en un log de auditoria para evitar el no repudio,
así mismo registrado en lo posible en un correlacionador de eventos de la compañía.

De igual manera deben configurarse eventos de auditoria de inicios fallidos y


exitosos en la aplicación.
4.6 BASE DE DATOS

 Las cadenas de conexión hacia la base de datos deben estar cifradas y


deben utilizar contraseñas seguras.
 El DBA es el único que tiene derecho a acceder con privilegios
administrativos al motor de base de datos.
 Las bases de datos deben aplicarse encriptación como protección ante el
robo de la misma.
 En caso de que la base de datos contenga información sensible en los
campos, estos deben ir enmascarados, por ejemplo, número de tarjetas de
créditos, información médica de clientes, etc.

Teniendo en cuenta que la aplicación de la cooperativa tendrá información sensible


de los clientes la base de datos deberá tener los controles adecuados para proteger
la información de los usuarios.

4.7 PROTECCIÓN DE INFRAESTRUCTURA

Es de vital importancia asegurar las plataformas que soportan los aplicativos WEB,
pues la infraestructura como servidores de base de datos, servidores de front-end y
back-end son la base de las aplicaciones y si desde la base no se encuentra
correctamente asegurada, los riesgos pueden llegar a generar impactos
catastróficos, para esto es importante tener las siguientes consideraciones y
recomendaciones para la instalación de los servidores de aplicaciones y base de
datos:

 Se deben instalar las últimas versiones de los sistemas operativos


liberadas por el fabricante.
 Los componentes o plataformas de aplicaciones como IIS, Nginx,
Apache, Drupal, etc, deben ser instaladas las últimas versiones liberadas
por el fabricante, adicionalmente las librerías también deben estar
actualizadas.
 Deshabilitar todos los protocolos inseguros habilitados en el servidor por
defecto.
 Deshabilitar todos los servicios inseguros habilitados en el servidor por
defecto.
 Los usuarios por defecto deben ser renombrados o eliminados.
 Se debe mantener un proceso continuo de gestión de parches, con el fin
de mantener instalados los parches que solucionan vulnerabilidades en
el sistema operativo.
 Los sistemas operativos deben contar con actualización periódica según
corresponda. Los servidores deben contar con un proceso de gestión de
vulnerabilidades continuo donde sean identificadas y remediadas las
vulnerabilidades halladas en el proceso.

5. Phishing

El crecimiento de internet ha Impactado en la seguridad de la información que esta


contiene. Información sensible uno de los puntos más críticos de la seguridad
informática es cuando interactúan con el cliente. Por estar razones el phishing es
una vulnerabilidad para el cliente y para la cooperativa.

También tenemos que tener en cuenta. Que los ciberdelincuente pueden llegar a
clonar. Nuestra. Aplicación web manipulando visualización engañando a nuestros
clientes y sacando su información. Personal y enviándola.
5.1 Recomendaciones para el Phishing

Conociendo este método de engaño se puede recomendar capacitar o darle a


entender al cliente como evitar estos sucesos de engaño.

Lo primero es informar al cliente que nunca Vaya a llenar Información personal por
medio de un correo electrónico por qué esto sería un ataque de phishing. Y
recomendar al cliente entrar en la aplicación web con la barra de Direcciones y
poder observar la cansada ala izquierda que indica que esta página es segura.

También se recomienda que no ingrese a la aplicación web en redes abiertas y


públicas estas son las que encontramos en restaurantes hoteles por medio de wifi
estas redes todos tienen acceso y se puede producir un ataque de Phishing.

6. Seguridad informática en aplicaciones web

6.1 Problemas en la programación

No todo ataque es por fallas del clientes toca tener en cuenta que se pueden
generar fallas por malas prácticas por los programadores. Para llegar a Tener una
aplicación web que cumpla con los objetivos que se buscan y una seguridad óptima
toca tener en cuenta los riesgos que puede correr la información en un sistema.
Los problemas principales a la hora de la programación y tener la seguridad
necesaria son debido a dos grandes casusas la entrada y la salida del
sistema.

 Entrada al sistema: son los datos de entrada que llega a ser


proporcionadas por un usuario. Y esto son procesados por la aplicación
con el fin de realizar las tareas que se especificó.
 Salida del sistema: esta es la información que se llega a obtener de la
entrada y del proceso interno de la aplicación.

Es importante tener en cuenta también la exposición accidental que consta en un


ataque para el sistema. Son los mensajes de error que envía un servidor y pueden
llegar a ser utilizados para llegar a obtener la información de su sistema.

6.2 Usuario y contraseña

Este es un método de seguridad básica que sirve para aumentar la seguridad


en la aplicación web. Esto se usa para dificultar la entrada del atacante al sistema
y facilitar la entra a los usuarios legítimos.

Este con el fin de llevar una lista de acceso de usuarios con secciones registradas.
Por eso se recomida este método sencillo y necesario que llega a ser eficiente
para mitigar cualquier tipo de ataque. Y hacer menos vulnerable la aplicación
web.
6.3 Rastrea los datos y encriptarlos

Es muy importante tener el conocimiento y el control de donde ha pasado la


información en todos los momentos. Y tener claro de donde viven los datos y
a donde van si están encriptado o no.
Lo más recomendable para estas aplicaciones Web es tener la información
encriptado. Para esto podemos utilizar HTTPS ya que esto cifra nuestros. Datos.

Con el fin de llegar a entender los orígenes de la información y llegar a identificar


cuáles son las salidas que tiene la aplicación y hacia donde retornan los
resultado
6.4 Los filtros

Estos filtros son muy recomendados para las aplicaciones web para poder
comprobar la validez de los datos. Si los datos son filtrados se puede llegar a
afirmar que los datos maliciosos son eliminados. Ya que este proceso es una
inspección esto con listas blancas.

6.5 Escapados

Estos nos ayudan a decodificar y codificar los datos para tener un mayor nivel
de seguridad y los datos estén preservados pero tiene que cumplir con estos
pasos:

 Identificar las salidas


 Escapar las salidas
 Escapados y no escapados
Se recomienda usar los Servet para crear parámetros de seguridad de
confidencialidad en la aplicación web.

7. Cuáles son los ataques más comunes en aplicaciones web

Se va a enlistar los ataques más comunes de las aplicaciones web. Para tener
un conocimientos de ellas.

 Peticiones HTTP falsificada


 Ataques URL
 Ataques de cross-side (Ataques de scripts que es un ataque de código
malicioso
 Ataques request forgery

También se tiene que tener en cuenta que la mayoría de las aplicaciones web
son conductos para usos de bases de datos. Toca tener en cuenta el filtrado en
las consultas de las bases de datos ya que no son confiables.

Ya que pueden hacer un ataque de credenciales de acceso que afecta el


almacenamiento de las credenciales ya que ay se almacena el nombre de usuario
y la contraseña. En los peores casos Tenemos que contar que los servidores
tengan alta seguridad por qué si no pueden llegar a tener un ataque. Que ejecute
un consigo de forma remota para comprometer los servidores y tener como
consecuencias la perdida de la información de los clientes.

También podemos encontrar ataques como;

 Exposición de datos
 Sistemas de autentificación
 SQL injection
 Ataques de fuerza bruta
8. CONCLUSIONES

La seguridad en aplicaciones web involucra al desarrollador pero siempre se van a


encontrar defectos o vulnerabilidades que pueden llegar a ser utilizadas por los
atacantes.

Toca tener en cuenta que la información envía o recibida no cumplan con las
características esperadas o predefinidas todas las entradas tiene que pasar por el
filtro todo esto lo tiene que tener claro el programador y tener un mapa de los
procesos ejecutados para tener un control y saber si está siendo atacado.

También toca tener control de los procesos de salida y tener un control de


codificación que tiene los datos antes de ser enviados
9. BIBLIOGRAFÍA

 Niño Benitez, Yisel, & Silega Martínez, Nemury. (2018). Requisitos de


Seguridad para aplicaciones web.. Revista Cubana de Ciencias Informáticas,
12(Supl. 1), 205-221. Recuperado el 28 de septiembre de 2019, de
http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S2227-
18992018000500015&lng=pt&tlng=pt
 World, C. (s.f.). Obtenido de ¿Qué razones llevan a un hacker a atacar una
empresa?: https://cso.computerworld.es/cibercrimen/que-razonesllevan-a-un-
hacker-a-atacar-una-empresa
 Rometo, A. (s.f.). Obtenido de Aspectos Básicos de la Seguridad en
Aplicaciones Web: https://www.seguridad.unam.mx/historico/documento/ind
ex.html-id=17
 Rivas, G. (s.f.). Obtenido de Seguridad de aplicaciones web: 5 mejores
prácticas que necesitas conocer: https://www.gb-advisors.com/es/seguridad-
deaplicaciones-web-5-mejores-practicas/
 Redaccion Computing. (s.f.). Obtenido de
https://www.computing.es/seguridad/informes/110196200
2501/consecuencias-de-ciberataques-mas-afectanempresas.1.html
 OWASP. (s.f.). Obtenido de Open Web Aplication Security Project:
https://www.owasp.org/index.php/Main_Page
 OWASP. (s.f.). Obtenido de Aplication Threat Modeling:
https://www.owasp.org/index.php/Application_Threat_M odeling
 Benjamin, P. (s.f.). Obtenido de Demystifying STRIDE Threat Models:
https://dev.to/petermbenjamin/demystifying-stride-threatmodels-230m
 Geeks.ms. (s.f.). Obtenido de Tips para evitar SQL Injection:
https://geeks.ms/gtorres/2010/10/29/tips-paraevitar-sql-injection/
 Cruz, O. A. (s.f.). Obtenido de DISEÑO E IMPLEMENTACIÓN DE UN
PROCESO DE HARDENING:
https://repository.libertadores.edu.co/bitstream/handle/11371/1298/cruzoscar2
017.pdf?sequence=3&isAllowed=y
 RODRÍGUEZ, J. D. (s.f.). Obtenido de ACCIONES DE HARDENING PARA
MEJORAR LA SEGURIDAD:
https://stadium.unad.edu.co/preview/UNAD.php?url=/bits
tream/10596/19575/1/1094927136.pdf

Anda mungkin juga menyukai