guÍa de principios y buenas prÁcticas para pruebas …

29
GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS DE SEGURIDAD Bogotá D.C. 2020 Creado por: Eliana Catherine Robayo Bautista Guía de principios y buenas prácticas para pruebas de seguridad de software en aplicaciones web

Upload: others

Post on 23-Oct-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

GUÍA DE PRINCIPIOS Y BUENAS

PRÁCTICAS PARA PRUEBAS DE

SEGURIDAD

Bogotá D.C. 2020

Creado por: Eliana Catherine Robayo Bautista

Guía de principios y buenas prácticas para pruebas de seguridad de software en aplicaciones web

Page 2: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Contenido Introducción ................................................................................................................................................................ 4

Objetivo......................................................................................................................................................................... 5

Alcance de la Guía ..................................................................................................................................................... 5

Consideraciones iniciales ........................................................................................................................................ 6

Identificación de la herramienta ........................................................................................................................ 6

Especificación de la herramienta ....................................................................................................................... 6

Principios y Buenas Prácticas ................................................................................................................................. 7

Principio No. 1 .......................................................................................................................................................... 7

Identificación de requerimientos y eventos .................................................................................................... 7

Paso 1- Identificar .............................................................................................................................................. 8

Paso 2 - Crear ..................................................................................................................................................... 8

Paso 3 - Reportar ................................................................................................................................................ 8

Paso 4- Evaluar .................................................................................................................................................. 8

Paso 5 - Controlar............................................................................................................................................... 8

Principio No. 2 .......................................................................................................................................................... 9

Identificación de componentes ........................................................................................................................... 9

Paso 1 - Tipo de activo..................................................................................................................................... 10

Paso 2 - Atributo del activo............................................................................................................................. 10

Principio No. 3 ........................................................................................................................................................ 11

Herramientas de monitoreo ............................................................................................................................... 11

Recomendación 1- Splunk .............................................................................................................................. 11

Recomendación 2 - Site24x7 .......................................................................................................................... 12

Recomendación 3 - Applicare ...................................................................................................................... 13

Principio No. 4 ........................................................................................................................................................ 14

Sistema de gestión de contraseñas ................................................................................................................. 14

Paso 1 Política de control de acceso .......................................................................................................... 14

Paso 2 Acceso a redes y servicios de red ................................................................................................... 14

Principio No. 5 ........................................................................................................................................................ 16

Identificación de vulnerabilidades sobre el servidor y la aplicación ........................................................ 16

Recomendación 1 - OWASP ZAP. ZAP ......................................................................................................... 16

Recomendación 2 - VEGA. ............................................................................................................................ 17

Recomendación 3 - Wapiti – Scanner de Vulnerabilidades en Aplicaciones Web .......................... 18

Recomendación 4 - php-reaper ................................................................................................................... 18

Principio No. 6 ........................................................................................................................................................ 19

Remediación de vulnerabilidades..................................................................................................................... 19

Page 3: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Recomendación 1 - Actualización de versiones ....................................................................................... 20

Recomendación 2 - Probar y aplicar parches críticos ............................................................................. 20

Recomendación 3 - Instalación de antivirus para cada servidor .......................................................... 21

Recomendación 4 - Sanitizar los datos ........................................................................................................ 21

Principio No. 7 ........................................................................................................................................................ 22

Respaldo y restauraciones................................................................................................................................. 22

Buenas Prácticas No. 1 ........................................................................................................................................ 23

Pruebas Funcionales ........................................................................................................................................... 23

Paso 1 - Pruebas unitarias o de componentes ........................................................................................... 23

Paso 2 - Pruebas de integración .................................................................................................................... 23

Paso 3 - Pruebas de regresión ....................................................................................................................... 23

Paso 4 - Pruebas de aceptación. ................................................................................................................. 23

Herramienta propuesta - Guión de Prueba ................................................................................................ 24

Buenas Prácticas No. 2 ........................................................................................................................................ 24

Pruebas No funcionales ................................................................................................................................... 24

Paso 1 - Pruebas de carga ............................................................................................................................ 24

Paso 2 - Pruebas de estrés. ............................................................................................................................ 25

Paso 3 - Pruebas de rendimiento.................................................................................................................. 25

Herramienta propuesta - Apache de JMETER ............................................................................................ 25

Buenas Prácticas No. 3 ........................................................................................................................................ 26

Pruebas Estructurales ........................................................................................................................................ 26

Paso 1 - Pruebas de flujo de control y datos. ............................................................................................ 26

Herramienta propuesta - Flujogramas .......................................................................................................... 26

Buenas Prácticas No. 4 ........................................................................................................................................ 27

Técnicas basadas en la experiencia ............................................................................................................... 27

Paso 1 - Experiencia ........................................................................................................................................ 27

Paso 2 - Conocimiento ................................................................................................................................... 27

Paso 3 - Habilidad con TICS. ........................................................................................................................... 27

Paso 4 - Investigación. .................................................................................................................................... 27

Buenas Prácticas No. 5 ........................................................................................................................................ 28

Usuario final ........................................................................................................................................................... 28

Bibliografía.................................................................................................................................................................. 29

Page 4: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Introducción

Esta guía, es producto del trabajo

para acceder al título de Especialización

en Seguridad de la Información, de la

Universidad Católica De Colombia.

La seguridad en el desarrollo de Software se

ha convertido en uno de los objetivos

esenciales dentro del esquema de

ciberseguridad de las diferentes

organizaciones a nivel mundial, el 87% de

las organizaciones todavía operan con

niveles limitados de ciberseguridad y

resiliencia, mientras que el 77% trabaja con

medidas de protección básicas en materia

de ciberseguridad y buscan avanzar hacia

capacidades más alineadas con la

realidad de acuerdo con lo descrito por la

revista Dinero en Junio de 2019 (Revista

Dinero Virtual , 2019).

El desarrollo de software en Colombia está

en aumento, por el acelerado crecimiento

en el uso de los diferentes tipos de

dispositivos digitales y el concepto de la

Cuarta Revolución Industrial, tendencia

actual de automatización y el intercambio

de datos; las tecnologías de manufactura y

desarrollo tienen una tendencia al alza en

la inversión orientada a servicios de

seguridad en América Latina, sin embargo,

esto aún no se ve reflejado en Colombia.

La seguridad no ha sido

considerada como base primordial para el

correcto desarrollo y funcionamiento del

software, infiriendo que hay un gran campo

de la seguridad de la información y

ciberseguridad en Colombia que se

encuentra en una etapa de construcción e

implementación, pues falta motivación y

estrategias consistentes tanto legislativas,

reglamentarias y procedimentales que

apoye la creación de modelos, estándares

o guías, con el fin de mitigar el impacto

ocasionado por una puerta sin su

correspondiente seguro.

Por lo anterior, esta guía presentará algunos

de los aspectos más importantes, que se

deben tener en cuenta a la hora de realizar

una prueba de seguridad de software, en

particular a las aplicaciones web que están

de cara al usuario final y a la red.

Page 5: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Objetivo

Aplicar principios y buenas prácticas para la ejecución de pruebas de seguridad de software

en aplicaciones web, con el fin de mitigar los riesgos asociados a inyección, perdida de

autenticación, exposición de datos sensibles, entradas XML, control de acceso, entre otros.

Las pruebas de seguridad son parte fundamental

para la evaluación de la calidad de software

Alcance de la Guía

El alcance de esta guía es suministrar mecanismos y herramientas para la ejecución de

pruebas de seguridad en aplicaciones web, por el grupo de aseguramiento de la calidad

(quality assurance, QA) de una empresa privada de desarrollo de software.

Guía de principios y buenas prácticas para pruebas de seguridad de

software en aplicaciones web

La seguridad en una aplicación web cuenta con muchos frentes de investigación, por lo que

para la elaboración de esta guía se tomó como referencia el Modelo de madurez de

garantía de software, el modelo de calidad de producto ISO/IEC 25010, el modelo y esquema

para pruebas de la OWASP, Open Web Application Security Project, la base de conocimiento

de MITRE ATT&CK® y la norma internacional ISO/IEC 27001.

Con base en los estándares, modelos y esquemas seleccionados, se realizó la verificación de

los componentes enfocados a la seguridad de la información de cada uno, obteniendo los

aspectos relevantes y semejantes, los cuales permitieron el planteamiento de la presente guía

de principios y buenas prácticas para pruebas de seguridad.

Page 6: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Consideraciones iniciales

Para todo proceso de ejecución de pruebas, debe contar con un

levantamiento de información inicial, con el fin de conocer el sistema que se va

a probar; para lo cual se recomienda tener en cuenta los siguientes aspectos:

Identificación de la herramienta

Especificación de la herramienta

Información de la Entidad

•Nombre de la empresa

•Actividad

•Lider del proyecto

•Lider funcional

•Lider QA

Información de la aplicación web

•Nombre de la herramienta

•Funcionalidad

•Módulos

•Estado de la aplicación

Información de la Documentación

•Documento de arquitectura

•Documento de infraestructura

•Inventario de servicios web

•Manual de usuario

•Ficha técnica de servidores

•Documento de requisitos no funcionales

Datos transaccionales

•Cantidad de transacciones

•Pormedio por transacción

•Cantidad de usuarios

•Horaro de disponibilidad

•Horas pico

•Transacciones requieren datos unicos , reales o datos limitados

Especificación por capa

•Tipo de aplicación

•Ambiente dispuesto para pruebas

•Especificación de sistema de balanceo

•Especificación de cluster

•Especificación de failover

•Especificacion servidores

•Versión de navegadores

Funcionalidad Critica

•Especificación de transacciones criticas

•Especificación de módulos criticos

•Especificación de usuarios criticos

Page 7: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Principios y Buenas Prácticas

Principio No. 1

Identificación de requerimientos y

eventos (ISOIEC 27001, 2020) (ISOIEC 25010, s.f.)

Teniendo como base la ISO/IEC 27001 y la ISO/IEC 25010, una de las primeras

acciones a realizar es la identificación de requerimientos y eventos; para lo cual

en esta sección el grupo QA, deberá:

Page 8: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Paso 1- Identificar Identificar los diferentes actores y

participantes durante la prueba de

seguridad de la aplicación.

Rol: Función que una persona

desempeña durante la ejecución de

la prueba de seguridad.

Responsabilidad: Actividad a

ejecutar por de la cual es

responsable la persona.

Privilegios: Un derecho

perfectamente definido y requerido

para realizar una operación

Ejemplo:

Rol: Atacante

Responsabilidad: realizar inyección

de código sobre la aplicación web

Rol: Testers

Responsabilidad: verificar el

comportamiento de la herramienta

durante el ataque y posterior

identificación de la solución

Paso 2 - Crear Tomando como base las tácticas de

MITRE ATT&CK®, los diferentes roles

deberán crear los guiones de

pruebas los cuales serán ejecutados

durante el proceso de pruebas, que

permitan recrear eventos reales.

Paso 3 - Reportar Reportar oportunamente los eventos,

debilidades o vulnerabilidades

observadas.

Paso 4- Evaluar Evaluar, dar respuesta y documentar;

con el conocimiento adquirido

durante este paso se recolectarán

suficiente información como

evidencia para la implementación

de controles.

Paso 5 - Controlar implementar y aplicar el control

necesario que mitigue el resultado

de la prueba y documentar las

lecciones aprendidas durante la

prueba.

Page 9: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Principio No. 2

Identificación de componentes

La identificación de los componentes es un paso esencial durante la ejecución

de las pruebas, cada componente de una aplicación web juega un papel

importante para el funcionamiento de esta y muchos de ellos hacen parte

fundamental en el modelo OSI.

Las aplicaciones web, cuentan con componentes como:

Infraestructura TI (centro de datos, control de acceso,

servidores, dispositivos de comunicación, líneas de red, etc.)

Servicios TI (Servidores proxy, Servicios de red, antivirus, etc.)

Activos humanos (Personal, directivos, administradores de

sistemas, operadores etc.)

Page 10: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

De acuerdo con la ISO/IEC 27001 un activo de información es “algo que una

organización valora y por lo tanto debe proteger”, para lo cual debe realizar la

identificación así:

Paso 1 - Tipo de activo

Un activo tangible, es decir,

cualquier activo material que se

puede ver y tocar.

Un activo intangible, es decir,

no tiene forma física y, por lo tanto,

no se puede ver ni tocar

Paso 2 - Atributo del

activo

Indicador de valoración

que permite evaluar el impacto de la

materialización de la amenaza

clasificada bajo el siguiente

esquema:

Autenticación,

procedimiento que permite asegurar

que un usuario de un sitio web u otro

servicio similar es auténtico o quien

dice ser.

Confidencialidad, garantía

de que la información será protegida

y no será divulgada sin

consentimiento expreso a personas o

sistemas no autorizados.

Integridad, hace referencia

a la cualidad de la información para

ser correcta y no haber sido

modificada, manteniendo sus datos,

sin manipulaciones ni alteraciones

por parte de tercero.

Disponibilidad, asegurar

que los usuarios autorizados pueden

acceder a la información cuando la

necesitan a través de los canales

adecuados siguiendo los procesos

correctos.

Page 11: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Principio No. 3

Herramientas de monitoreo

Durante el proceso de pruebas de seguridad de aplicaciones web,

es recomendable contar con herramientas de monitoreo, con el fin de

identificar el comportamiento de la aplicación durante el proceso de pruebas

de la aplicación, la mayoría de las soluciones de monitoreo son personalizables

y en el mercado se cuenta con muchas opciones gratuitas, con diversas

funcionalidades que permiten hacer un monitoreo confiable, con herramientas

para cualquier tipo de monitorización. Sin embargo, carecen de servicio

técnico profesional y por lo cual requiere de capacitación de los usuarios. Entre

las herramientas disponibles en el mercado se pueden mencionar. Algunas

recomendaciones son:

Recomendación 1- Splunk (Scan de Vulnerabilidades Splunk, 2020). Es un

software para buscar, monitorizar y analizar macrodatos generados por

máquinas de aplicaciones, sistemas e infraestructura de tecnologías de la

información a través de una interfaz web; captura, indexa y correlaciona en

tiempo real, almacenándolo todo en un repositorio desde el cual generar

gráficos, alertas y paneles de fácil interpretación para el usuario. Permite la

identificación de patrones, diagnóstico de problemas y provisión de

inteligencia. Cuenta con un módulo dedicado a la seguridad de la información,

el cual está enfocado a:

• Detección avanzada de amenazas: agregar, priorizar y administrar una

amplia variedad de información sobre amenazas de fuentes ilimitadas de

listas de amenazas.

• Puntos finales: identificación de cualquier terminal para identificar ataque

externo o amenaza interna.

• Investigación de incidentes y análisis forense: Permite el análisis visual,

representación gráfica de umbrales, alarmas, indicadores y tendencias.

• Respuesta a incidentes: Permite la visualización y documentación de los

ciclos de investigación para detectar, analizar y responder a incidentes y

amenazas de seguridad.

Page 12: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

• Detección de fraudes: permite la identificación de las actividades

fraudulentas y toma de medidas y decisiones, antes de que sea

demasiado tarde.

Fuente: Tablero de Control SQL

spuntk (https://www.splunk.com/, 2003)

Recomendación 2 - Site24x7 ( (Scan de Vulnerabilidades Site24x7, s.f.)2006). Este

software permite supervisar toda la pila de aplicaciones, desde las URL hasta las

bases de datos, con total visibilidad, realizando un seguimiento de cada

transacción realizada y permite optimizarlas antes de que los usuarios finales se

vean afectados. Mediante la supervisión del rendimiento permite el seguimiento

a excepciones y configuración a la medida, para obtener información

detallada que permite evidenciar la raíz del problema. Cuenta con los

siguientes módulos para monitoreo de aplicaciones:

• Diagnóstico de causas: ayuda a descubrir, mapear y construir una vista

holística de todos los recursos que se ejecutan en una infraestructura

empresarial y las relaciones entre ellos.

• Diagnóstico de transacciones completo: permite la generación de

informes basados en atributos, Informes de análisis de tendencias, Informes

de planificación de capacidad, Informes de previsión, Informes de

inventario.

• Gestión de recursos: Identificación de recursos en toda su infraestructura

virtual de VMware, o puede especificar un rango de IP para descubrir

todos los recursos dentro de ese rango. También puede programar

redescubrimientos periódicos para mantenerse actualizado sobre nuevos

recursos.

Page 13: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Fuente: Tablero de Control Site24x7 (https://www.manageengine.com/, 2006)

Recomendación 3 - Applicare (Scan de Vulnerabilidades Applicare, s.f.), Esta

aplicación cuenta con administración y configuración de entornos para

simplificar el monitoreo, desde el principio y durante todo el ciclo de vida de

una aplicación. Entre sus componentes se encuentra:

• Inteligencia Artificial: Mediante la detección de patrones para prevenir

problemas, proporcionando una recomendación o aplicando una

solución automática.

• Monitoreo Del Usuario Final: Monitoreo de las transacciones realizadas por

cada uno de los usuarios conectados a la red empresarial.

• Análisis Automatizado De La Causa Raíz: permite la construcción

automática del perfil de la aplicación, identifica las transacciones que no

cumplen con los criterios normales y captura sus detalles completos de

ejecución.

Fuente: Tablero de Control Applicare (Applicare, s.f.)

Page 14: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Principio No. 4

Sistema de gestión de contraseñas

De acuerdo con la ISO/IEC 27001, se debe establecer, documentar y revisar con

periodicidad, un procedimiento de inicio seguro y restringido; para cumplir esta

acción el grupo QA, deberá tener en cuenta los siguientes controles:

Paso 1 Política de control

de acceso

Establecer, documentar y revisar con

periodicidad una política de control de

acceso, para lo cual debe:

• Conocer el acceso que debe ser

concedido

• Identificar quién necesita el acceso

• Verificar que necesita usar

• Validar que requiere

• Identificar la naturaleza del acceso

digital o física

Paso 2 Acceso a redes y

servicios de red

El principio de acceso

mínimo, los usuarios sólo deberán tener

acceso a la red y a los servicios de red que

necesitan usar o conocer para desarrollar

su trabajo.

Registro de usuarios y

anulación de registro

Implementar un proceso formal de registro

y cancelación de registro de usuarios.

Contar con un usuario para cada individuo,

limitar el acceso compartido, probar con

usuarios independientes e identificados

para cada rol, una vez terminada la

prueba, realizar la anulación de los usuarios

utilizados.

Aprovisionamiento de

acceso de usuario

Implementar un proceso para asignar o

revocar derechos de acceso para todos los

tipos de usuarios, a todos los sistemas y

servicios. El proceso de aprovisionamiento y

revocación debe incluir:

• Autorización para el uso de estos

activos.

• Verificar que el acceso otorgado sea

relevante para el rol que se está

realizando.

• El acceso de los usuarios siempre

debe estar dirigido y basado en los

requisitos establecidos para la

prueba.

Page 15: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Gestión de derechos de acceso

privilegiado

Administrar y controlar los niveles de

acceso privilegiados, más altos y estrictos.

Gestión de información secreta

de autenticación de usuarios

Controlar, gestionar y mantener de forma

confidencial las contraseñas asignadas a

usuarios secretos, la información secreta de

autenticación es una puerta de acceso

para llegar a activos valiosos.

Revisión de los derechos de

acceso del usuario

Revisar los derechos de acceso de los

usuarios a intervalos regulares, tanto en

torno al cambio individual – incorporación,

cambio de rol y salida realizar auditoría del

acceso a los sistemas de forma frecuente,

dada su naturaleza de mayor riesgo.

Eliminación o ajuste de los derechos

de acceso

Concluir al finalizar el vínculo laboral, el

contrato o el acuerdo, los usuarios o

accesos asignados, mediante una política

de salida.

Procedimiento de inicio seguro

Demostrar la identidad del usuario, por

medio de contraseña de múltiples factores,

biometría, tarjetas inteligentes y otros

medios de cifrado en función del riesgo

que se está considerando.

Sistema de gestión de contraseñas

Administrar las contraseñas, es garantizar

que estas sean de calidad, cumplan con el

nivel requerido y se apliquen de manera

consistente.

Uso de programas de utilidad

privilegiada

Gestionar y controlar programas que tienen

la capacidad de anular controles del

sistema y de las aplicaciones, pues suelen

ser un objetivo atractivo para atacantes

maliciosos, para lo cual debe garantizar el

acceso restringido al menor número de

personas.

Control de acceso al código

fuente del programa

Restringir el acceso al código fuente de los

programas, al igual que a los elementos

asociados como diseños, especificaciones,

planes de verificación y de validación.

No realizar la publicación de los diagramas

de arquitectura o infraestructura de la

aplicación.

Mantener de forma confidencial el nombre

de los componentes que conforman la

aplicación como son, nombres de

servidores, puertos, sistemas operativos,

aplicaciones, repositorios entre otros.

Page 16: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Principio No. 5

Identificación de vulnerabilidades

sobre el servidor y la aplicación (Open Web

Application Security Project®, s.f.)

La identificación de vulnerabilidades sobre el servidor y la aplicación

permite preparar las acciones correctivas y preventivas, requeridas para el buen

funcionamiento de la herramienta.

Por lo anterior, se recomienda realizar un análisis de vulnerabilidades antes de

iniciar con las pruebas de seguridad y una nueva prueba una vez reportados y

corregidas las inconsistencias evidenciadas durante las pruebas. Esto con el fin

de evidenciar la corrección de lo reportado por el grupo QA y el

comportamiento de la herramienta con los ajustes.

Para lo cual se recomienda hacer uso de las siguientes herramientas:

Recomendación 1 - OWASP ZAP. ZAP (Zet Attack Proxy) es una

herramienta de prueba de penetración, multiplataforma basada en Java que

puede ejecutarse incluso en Raspberry Pi. ZIP se encuentra entre un navegador

y una aplicación web para interceptar e inspeccionar mensajes. Algunas de las

funciones más usadas con esta herramienta son:

• Fuzzing

• Escáner pasivo y automatizado

• Navegación forzada

• Generación de reportes

Esta herramienta cuenta con videotutorial explicativos de su funcionamiento y

es una de las plataformas creadas por la OWASP y más recomendada por los

usuarios. Es ideal para desarrolladores y QA, libre, multiplataforma y de código

abierto.

Page 17: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Fuente: Tablero de Control ZAP

OWASP ZAP (OWASP ZAP, 2020)

Recomendación 2 - VEGA. Vega genera un examen recursivo,

controlado y configurable sobre la estructura del sitio web, proporcionando

información sobre el árbol de directorios y archivos con parámetros POST o GET.

Cuenta con módulos y funciones que permiten el análisis, de Inyecciones SQL o

Blind SQL, Local file inclusión, Cross-Site scripting (XSS), entre otros.

Genera alertas con el grado de criticidad identificando la vulnerabilidad, la

ruta, descripción, el impacto y una posible solución con su referencia.

Fuente: Tablero de Control Vega

Vega (Scanner de Vulnerabilidad VEGA) (OWASP ZAP, 2020)

Page 18: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Recomendación 3 - Wapiti – Scanner de

Vulnerabilidades en Aplicaciones Web

Wapiti es un escáner de vulnerabilidades de caja negra para aplicaciones web,

licenciado bajo la GPL v2, que busca fallos XSS, inyecciones SQL y XPath,

inclusiones de archivos (local y remota), ejecución de comandos, inyecciones

LDAP, inyecciones CRLF, también permite, inyectar cargas útiles para

comprobar la vulnerabilidad.

Esta herramienta genera reportes en diferentes formatos como HTML, XML y txt,

con enfoque orientado a Objetos Extensibilidad de las cadenas maliciosas.

Fuente: Tablero de Control Wapiti

Wapiti (OWASP ZAP, 2020)

Recomendación 4 - php-reaper

Si contamos con una aplicación web, una de las vulnerabilidades más

evidentes en las herramientas, son las inyecciones SQL, partiendo de esto, es

bueno contar con herramientas especializadas en las vulnerabilidades más

conocidas para este tipo de aplicaciones.

Las inyecciones SQL se encuentran en el TOP 10 de la OWASP, ocupando el

primer lugar, esto teniendo en cuenta que las fallas de inyección ocurren

cuando se envían datos que no son de confianza a un intérprete como parte

de un comando o consulta, engañando al intérprete para que ejecute

comandos no deseados o acceda a datos sin la debida autorización. Es una

herramienta PHP para escanear código ADOdb para Inyecciones SQL, al

Page 19: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

ejecutar esta herramienta podemos ahorrar tiempo, es rápido e identifica la

línea exacta donde se encuentra el problema, por medio del escanea de todo

el código fuente de PHP ADOdb.

Fuente: Tablero de Control desde máquina virtual Kali Linux

Principio No. 6

Remediación de vulnerabilidades

De acuerdo con la ISO/IEC 27001, una vez identifique las vulnerabilidades de la

aplicación web, debe realizar una serie de actividades para la remediación

entre las cuales destacamos las siguiente:

• Análisis de vulnerabilidad

• Priorización de acuerdo con el activo afectado

• Evaluar el impacto

• Identificar los riesgos

• Crear los controles

Page 20: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Una vez realizada esta clasificación, debe iniciar la remediación de las

vulnerabilidades y documentar los controles o actividades a ejecutar; para

aplicaciones web se recomienda aplicar las siguientes actividades de

remediación:

Recomendación 1 -

Actualización de

versiones Mantener los componentes al día,

nos garantiza que no estemos

expuestos a diferentes tipos de

riesgos como pueden ser robo de

información, pérdida de privacidad,

perjuicio económico, suplantación

de identidad, entre otros. Para esto

debemos:

• Realizar seguimiento al estado

de actualizaciones.

• Instalar las actualizaciones una

vez sean publicadas,

especialmente las de los

sistemas operativos,

navegadores y programas

antivirus, garantizando el

correcto funcionamiento de la

aplicación.

• Verificar los privilegios al

momento de realizar una

instalación

• Si cuenta con aplicaciones con

sistemas operativos antiguos

que no cuenten con soporte de

seguridad, realizar el plan para

el cambio de las herramientas.

Recomendación 2 -

Probar y aplicar parches

críticos Los sistemas operativos de los

servidores son los más afectados y los

que requieren la aplicación de

parches de seguridad, sin embargo,

antes de aplicar estos parches se

debe probar el parche a aplica y

garantizar que no se afecte el

funcionamiento de la aplicación.

Para esto se recomienda:

Page 21: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

• Identificar

• Priorizar

• Verificar la disponibilidad y

aplicabilidad

• Probar y por último desplegar

Recomendación 3 -

Instalación de antivirus

para cada servidor Si bien en los ambientes productivos

o de pruebas de las aplicaciones se

cuenta con un antivirus general, es

recomendable que cada servidor

que hace parte de la infraestructura

de la aplicación web cuente con un

antivirus y las respectivas

excepciones para el correcto

funcionamiento de la aplicación.

Recomendación 4 -

Sanitizar los datos Uno de los motivos para sanitizar los

datos, es porque se requiere la

reutilización, reparación, eliminación

o el cumplimiento de la norma de

acuerdo con el tipo de aplicación. Es

importante realizar esta acción si la

aplicación cuenta con datos

privados o personales y datos críticos.

Lo que se quiere lograr con esta

acción es que el usuario ingrese los

datos y el sistema limpie la inyección,

para sanitizar los datos de la

aplicación web puede:

• Recibir el parámetro

• Convertirlo en un array

• Lista de parámetros, para

sanitizar

• Aplicar la función

• Devolver el parámetro

Entre los tipos de sanitización de los

datos contamos con las siguientes:

Page 22: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Principio No. 7

Respaldo y restauraciones

Para esta sección es importante que el QA tenga en cuenta las siguientes

recomendaciones:

• Verificar el porcentaje de operaciones de backup exitosas.

• Verificar el porcentaje de recuperaciones de prueba exitosas.

• Verificar porcentaje de backups y archivos con datos sensibles o

valiosos que están cifrados.

• Garantizar que el sistema cuente con backups separados para

cada entorno, como son es el entorno de desarrollo, prueba y producción,

esto con el fin de reducir los riesgos de acceso o de cambios no

autorizados en el entorno operacional.

• Realizar y pruebas regulares de las copias de la información, del

software y de las imágenes del sistema, teniendo en cuenta la política de

respaldo (Backup) existente.

Page 23: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Buenas Prácticas No. 1

Pruebas Funcionales

Paso 1 - Pruebas unitarias o de componentes:

permite verificar el correcto funcionamiento de una unidad del código o

componente, una prueba común de componente para seguridad de software

es una Inyección de SQL a través de componentes de UI para asegurar la

seguridad

Paso 2 - Pruebas de integración: estas pruebas se

ejecutan después de las pruebas unitarias o de componentes, se ejecutan con

el fin de identificar el correcto funcionamiento entre los componentes.

Paso 3 - Pruebas de regresión: el objeto de

esta prueba es descubrir errores (bugs), el propósito es garantizar que las

pruebas que ya han sido exitosas permanezcan así.

Paso 4 - Pruebas de aceptación: estas

pruebas se ejecutan con el fin de aprobar las pruebas ejecutadas sobre el

software.

Page 24: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Herramienta propuesta - Guión de Prueba

Para las pruebas funcionales es vital contar con guiones de prueba claros y

específicos, en los que se resalte:

Descripción de guion de pruebas

Fuente: Elaboración propia

Buenas Prácticas No. 2

Pruebas No funcionales

Paso 1 - Pruebas de carga: Las pruebas de carga

consisten en simular demanda sobre una aplicación de software y medir el

resultado. Estas pruebas se realizan bajo demanda esperada y también en

condiciones de sobrecarga (picos en la demanda). ayudan a identificar la

Page 25: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

máxima capacidad operativa de una aplicación, así como en el identificar

cuellos de botella y las causas de posible degradación del desempeño.

Paso 2 - Pruebas de estrés: este tipo de prueba de

software se utiliza para determinar la estabilidad de un sistema o aplicación,

con especial atención en la disponibilidad y manejo de errores cuando se

enfrenta a la sobrecarga.

Paso 3 - Pruebas de rendimiento: este tipo de prueba

de software se utiliza para determinar el tiempo de respuesta de una tarea de

un sistema o aplicación.

Herramienta propuesta - Apache de JMETER

Apache JMeter esta herramienta permite probar el rendimiento tanto en

recursos estáticos como dinámicos en aplicaciones web, mediante la

simulación de carga pesada en un servidor o grupo de servidores, red u objeto

para probar su fuerza o para analizar el rendimiento general bajo diferentes

tipos de carga.

Tablero de control JMeter

Fuente: Elaboración propia

Page 26: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Buenas Prácticas No. 3

Pruebas Estructurales

Paso 1 - Pruebas de flujo de control y datos: estas pruebas seleccionan diferentes caminos del software, mediante el uso de

variables del programa.

Herramienta propuesta - Flujogramas

Para las pruebas estructurales es vital contar con flujogramas que detallen la

aplicación y cada uno de los estados en la misma, permite al QA, tener una

mejor perspectiva de las pruebas a ejecutar, pues se cuenta con un mayor

dimensionamiento de la herramienta y los posibles caminos a seguir durante la

prueba:

Flujograma módulo de la aplicación web

Fuente: Elaboración propia

Page 27: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Buenas Prácticas No. 4

Técnicas basadas en la experiencia

Estas pruebas se definen como las derivadas de la experiencia, experticia,

intuición o conocimientos del probador con las aplicaciones y tecnologías.

Estas pruebas dependen de las características del QA, entre las cuales

destacamos las siguientes características:

Paso 1 - Experiencia: conjunto de conocimientos, adquiridos en

un periodo determinado de tiempo.

Paso 2 - Conocimiento: comprender, relacionar uso de la

razón

Paso 3 - Habilidad con TICS: La capacidad de resolver

problemas de información, comunicación y conocimiento, así como dilemas

legales, sociales y éticos en ambiente digital.

Paso 4 - Investigación: capacidad para dar solución a

problemas o interrogantes.

Page 28: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Buenas Prácticas No. 5

Usuario final

El usuario final juega un papel muy importante al momento de realizar las

pruebas, puesto que permite identificar los posibles escenarios al momento de

realizar las pruebas a una aplicación.

De acuerdo con MITRE ATT & CK ®, existen técnicas de reconocimiento

directamente relacionados con los usuarios finales, como son la recopilación

de la información sobre la identidad, anfitrión, red, propiedad de la víctima,

cuentas validas, aplicación de cara al público, manipulación de cuentas, inicio

de sesión entre otros.

Como parte fundamental en la cadena para garantizar la seguridad de la

información, es importante que durante las pruebas de seguridad a la

aplicación identifiquemos los errores más comunes ejecutados por un usuario

final al momento manipular la aplicación. Este usuario debe tener

conocimientos de la necesidad que se quiere suplir con la aplicación.

Page 29: GUÍA DE PRINCIPIOS Y BUENAS PRÁCTICAS PARA PRUEBAS …

Bibliografía

ISOIEC 25010. (s.f.). Obtenido de https://iso25000.com/index.php/normas-iso-

25000/iso-25010

ISOIEC 27001. (2020). Obtenido de ISOIEC 27001: https://www.iso27000.es/

Open Web Application Security Project®. (s.f.). Obtenido de OWASP:

https://owasp.org/

OWASP ZAP. (2020). Obtenido de https://owasp.org/www-project-zap/:

https://owasp.org/www-project-zap/

Scan de Vulnerabilidades Applicare. (s.f.). Obtenido de Applicare:

https://www.arcturustech.com/

Scan de Vulnerabilidades Site24x7. (s.f.). Obtenido de Site24x7:

https://www.manageengine.com/,

Scan de Vulnerabilidades Splunk. (2020). Obtenido de

https://www.splunk.com/: https://www.splunk.com/

Scanner de Vulnerabilidad VEGA. (s.f.). Obtenido de VEGA:

https://www.incibe.es/protege-tu-empresa/catalogo-de-

ciberseguridad/listado-soluciones/vega-vulnerability-scanner