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
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
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
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.
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.
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
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á:
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.
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.)
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.
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.
• 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.
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.)
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.
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.
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.
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)
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
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
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:
• 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:
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.
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.
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
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
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
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.
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.
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