Está en la página 1de 28

Universidad Mariano Gálvez de Guatemala

Ingeniería en Sistemas de Información y Ciencias de la Computación


Catedrático: Ing. David Marroquín
Curso: Seguridad y Auditoria de Sistemas

Página Web
Control de insumos hospitalarios

José Manuel Álvarez Escobar


9941-18 -14337

Guatemala, septiembre del 2,022


ÍNDICE

INTRODUCCIÓN...................................................................................................................................................3

BUENAS PRÁCTICAS PARA EL DESARROLLO DE CÓDIGO SEGURO........................................................6

HERRAMIENTAS DE ANÁLISIS DE CÓDIGO...................................................................................................9

PRINCIPIOS DE SEGURIDAD DE LA INFORMACIÓN...................................................................................10

DIRECTRICES DE PROGRAMACIÓN SEGURA..............................................................................................13

1. Explicación de forma correcta su proyecto y documentación (video explicando su proyecto)......................15

Pruebas Funcionales Realizadas.............................................................................................................................16

2. Controles De La Aplicación Web...................................................................................................................24

CONCLUSIÓN......................................................................................................................................................31

REFERENCIAS BIBLIOGRÁFICAS...................................................................................................................31
INTRODUCCIÓN

Este trabajo relata sobre una página web para insumos de hospitales públicos, como manejar la auditoria
informática, y algunos aspectos que la engloban tales como: áreas de aplicación, que trata de los
diferentes procedimientos que se van a emplear en el área informática, así como también el
procesamiento electrónico de datos, puesto que
el auditor debe conocer el programa que va a utilizar. También se observará cuáles son los
objetivos primordiales de una auditoria de sistemas, pues son de mucha importancia centrarse en ellos
debido a que se evalúa la operatividad del sistema y el control de la función
informática, que influyen mucho en los resultados obtenidos (informe final); los procedimientos que se
realizan en la auditoria consiste en la metodología que se va a aplicar para realizar el análisis
correspondiente.
EVALUACIÓN DE RIESGOS

Análisis de riesgo.

El objetivo del análisis de riesgo es identificar los riesgos basados en la identificación de los activos, de
sus amenazas y vulnerabilidades.

1-Definición del alcance del modelo: el primer paso que se siguió de acuerdo a la metodología propuesta
fue definir el alcance de esta evaluación de riesgo.

2- Identificación de activos: una vez definido el alcance se procedió a identificar los activos. Se


identificaron 8 activos de información vitales. Entre los activos de información, según la clasificación de
la ISO 17799:2005, se encuentran:

● Activos de información (datos, de manuales de usuario, entre otros)

● Documentos en papel (contratos)

● Activos de software (aplicación, software de sistemas, entre otros)

● Activos físicos (computadoras, servidores, medios magnéticos, enrutadores, entre otros)

● Personal (estudiantes, clientes, empleados, entre otros)

● Imagen de la compañía y reputación

● Servicios (comunicaciones, entre otros)

3-Tasación de activos: una vez que se estableció el alcance y se identificaron los activos pertenecientes a
una entidad en particular, se procedió a la tasación de dichos activos (esto con la finalidad de poder
identificar posteriormente la protección apropiada a los activos, ya que es necesario tasar su valor en
términos de importancia a la gestión tanto académica como administrativa de la Universidad Simón
Bolívar, o dadas ciertas oportunidades determinar su

En este caso (activos en custodia de la DST), se tasó su impacto con relación a su confidencialidad,
integridad y disponibilidad. Se estableció utilizar la escala cualitativa de: Alto, Mediano y Bajo.

4- Identificación de amenazas: una vez realizada la tasación, se efectuó la identificación de amenazas.

Una amenaza es la existencia de algún mecanismo, que activado, permite explotar una vulnerabilidad.
Una amenaza para poder causar daño a un activo debe estar asociada a una vulnerabilidad en el sistema,
aplicación o servicio. Un incidente es cuando coinciden una vulnerabilidad y una amenaza afectando el
funcionamiento de la organización, es decir, es la concreción de una amenaza.

Se realizaron reuniones con las personas encargadas de estos activos, con la finalidad de explorar las
principales amenazas por cada activo de información.
5-Probabilidad de ocurrencia de las amenazas: el siguiente paso fue establecer la posibilidad de
ocurrencia de amenazas y el impacto económico que pudiese ocasionar en la organización. La
probabilidad de ocurrencia de una amenaza es el número de probables incidentes que pudiese sufrir un
activo expuesto a una amenaza sin ningún tipo de contramedida para defenderlo.

Es importante señalar, que no todas las amenazas tienen la misma probabilidad de ocurrencia. Existen
amenazas cuya frecuencia es baja y otras que son altas.

Para ello, también se utilizó la escala cualitativa de Alta, Media o Baja probabilidad de ocurrencia.

6- Identificación de vulnerabilidades: una vulnerabilidad es un error que representa un problema


potencial, es decir, es una condición de debilidad, que le permite a una amenaza producir un daño en la
organización.

En esta fase de la investigación se realizaron reuniones con los encargados de los activos, estableciendo
por cada amenaza las posibles vulnerabilidades relacionadas con cada activo de información.

7- Posible explotación de vulnerabilidades: una amenaza para poder causar algún tipo de daño a un
activo, tendría que explotar la vulnerabilidad del sistema, aplicación o servicio. Las vulnerabilidades son
condiciones que pueden permitir que las amenazas las exploten y causen daño.

La evaluación incluyó la identificación de debilidades en el ambiente físico, organizacional,


procedimientos, gestión, administración, hardware, software o en equipos de comunicación, que podrían
ser explotados por una fuente de amenazas para causarle daño a un activo en particular.

Una vez identificada las distintas vulnerabilidades por cada amenaza, se debe hallar el grado en que la
amenaza puede explotar cada vulnerabilidad. Se produjo un listado de aquellas vulnerabilidades
consideradas importantes.

BUENAS PRÁCTICAS PARA EL DESARROLLO DE CÓDIGO SEGURO


DEFINICIÓN DE REQUISITOS. ALCANCE DEL PROYECTO.

El análisis de unos requisitos y la redacción de un documento de alcance nos evitará más de un dolor de
cabeza durante y en la finalización del proyecto. al menos debo conocer que tengo que programar y para
qué va a servir, pero no es así, la mayor parte de los clientes no saben realmente que es lo que quieren y
mucho menos como implementarlo en un desarrollo. Merece la pena sentarse con el cliente y los
usuarios finales de la aplicación y definir a donde se quiere llegar y como lo haremos. Es imprescindible
redactar un documento de alcance y que todos los participantes del proyecto (programadores, analistas,
jefes de proyecto, cliente que solicita el desarrollo y usuarios finales que harán uso de la aplicación)
estén totalmente de acuerdo.

DIVIDIR LOS DESARROLLOS EN FASES O ENTREGABLES.

Dividir el proyecto en fases, sprint o secciones nos permitirá marcarnos objetivos en periodos cortos e ir
mostrando los resultados. Una vez redactado un alcance, es conveniente separar en proyecto en
secciones o fases que permitan al cliente ir viendo resultados durante el desarrollo. Si un proyecto tiene
una duración de 10 meses, no podemos tener al cliente sin ver nada durante los 10 meses de desarrollo,
hay que ir mostrando los resultados, cosa que también nos servirá para ir realizando determinados
ajustes y no llegar al final del proyecto y el cliente nos haga cambiar más de la mitad de los desarrollos.

ELECCIÓN DE UN IDE QUE SE ADAPTE A TUS NECESIDADES.

Si vamos a hacer un desarrollo en php o html podemos hacer uso de PhpStorm. Si, por el contrario,
queremos hacer uso de un IDE que pueda servirnos para varios lenguajes de programación, podemos
hacer uso de alguno que permita importar librerías y funciones de algún lenguaje concreto como es
sublimetext. Dependiendo del lenguaje de programación que vayamos a utilizar, será conveniente el uso
de un Entorno de Desarrollo integrado (IDE) u otro, ya que cada IDE está enfocado a uno o varios
lenguajes de programación. Por ejemplo, si vamos a programar en java, sería conveniente hacer uso de
los IDE NetBeans o Eclipse, si vamos a hacerlo en Python podemos hacer uso de Atom o Visual Studio
Code

ESTANDARIZAR LAS REGLAS DEL DESARROLLO.

Un código que no sigue alguna normalización resulta más complicado de mantener, cuando vamos a
comenzar con los desarrollos hay que definir nuestra forma de trabajar: La forma de llamar y definir las
funciones, las variables, el nombre de los ficheros, atributos, etc. En un buen código se distinguen
fácilmente estos elementos.

DOCUMENTACIÓN.

Durante los desarrollos intenta documentar todo lo que haces para facilitar el entendimiento del
desarrollo y funcionamiento del software al personal del proyecto y futuras personas que trabajen en él.

FACILITAR MANTENIMIENTO

Si durante el desarrollo se ha seguido unas pautas correctas, el tiempo dedicado al mantenimiento será el
que necesiten el desarrollo de las modificaciones, sí, por el contrario, la programación ha sido repetitiva
y no modular, nos tocará realizar cambios en bastantes partes del código, aumentando los tiempos de
desarrollo y la probabilidad de que caigamos en algún error. Una vez finalizado el código y puesto en
producción, es normal tener que realizar ajustes o pequeñas modificaciones para satisfacer las
necesidades de los usuarios.

FACILITAR LA ESCALABILIDAD.

Un código bien estructurado, sencillo y limpio facilita la integración con nuevos módulos o desarrollos
que complementen la funcionalidad inicial de la aplicación. Si nuestro código es complicado y está mal
estructurado es difícil identificar y reestructurar los puntos o módulos donde tenemos que trabajar para
implementar los nuevos desarrollos.

FACILITAR EL TESTEO, LOCALIZACIÓN Y RESOLUCIÓN DE ERRORES.


Realizar pruebas en una programación es una de las partes más importantes por no decir la más
importante, comprobar que el programa funciona según los requisitos es esencial para presentar un
producto de calidad y acorde a las necesidades del cliente. Se realizarán pruebas durante y al final del
desarrollo.

NO INVENTES.

Si ya se disponen de módulos y librerías ya testeadas y optimizadas, no pierdas el tiempo en un


desarrollo. Los IDE actuales disponen de librerías que te ayudarán en tus desarrollos.

COMENTA TU CÓDIGO.

Para facilitar las modificaciones y mantenimiento, pero recuerda, un buen código es aquel que no
necesita comentarios. Redacta sentencias simples e intenta elaborar una solución sencilla y corta. Cuanto
más corta sea, menos errores se producirán y más fácil será localizarlos y solventarlos.

DIVIDE Y VENCERÁS.

Divide los desarrollos complejos en varios más sencillos. Enrocarse en buscar una solución que abarque
todas las posibilidades o funcionalidades te va a hacer perder mucho el tiempo. Divide el desarrollo en
funcionalidades y prográmalas atendiendo a su función principal y a la integración con el resto.

TESTEO DE CÓDIGO.

Realizarás muchas pruebas durante el desarrollo del software y sobre todo al final de este. Prepara una
batería de pruebas que puedas ejecutar en cualquier momento. Muchas veces el ajuste de algunos
elementos provoca alguna incongruencia con otros, con tu batería de pruebas debes poder detectar esto.

OPTIMIZACIÓN.

No todas las instrucciones y módulos necesitan la misma capacidad de procesamiento intenta utilizar
siempre las más sencillas.

SEGURIDAD.

Durante el desarrollo de nuestro software se debe tener en cuenta los siguientes puntos:

 El acceso a los ficheros (tanto de forma física, como permisos).


 La posibilidad de modificar el código en la misma ejecución o la inyección sql.
 Desbordamiento de buffer al hacer uso de un array sin tamaño controlado.
 Formateo de los datos de entrada (en formularios).
 Actualización del IDE y las funciones. Una función obsoleta puede originar un agujero de
seguridad en nuestro código.
 Uso de contraseñas en el código. Las contraseñas deben estar cifradas y en la base de datos.
HERRAMIENTAS DE ANÁLISIS DE CÓDIGO

El uso de un analizador de código fuente es considerado como una buena práctica en el desarrollo de
código seguro ya que tiene como objetivo principal garantizar que el código fuente cumpla con un cierto
nivel de seguridad establecido por una serie de reglas establecidas por las necesidades del negocio.

Existen varias formas de realizar esta actividad, se puede realizar una inspección de código manual
realizada por un par del proceso de desarrollo que puede ser el líder de desarrollo el cual debe verificar
si el código cumple con las reglas establecidas por la organización, el problema que tiene este proceso es
que se pueden pasar por alto algunos errores no evidentes.
Estos errores pueden conducir a errores de seguridad significativos en las aplicaciones, es por esto por lo
que es bueno automatizar estos procesos por medio de herramientas analizadoras de código automáticas.
Las cuales deben contar con algunos de los siguientes atributos:
 Flexibilidad: las herramientas de inspección de código deben contar con varias opciones para
ejecutar esta actividad entre las cuales sobresalen: análisis estatice de código fuente como
checkstyle, pmd y findbugs entre otros.
 Precisión: el objetivo de estas herramientas es poder encontrar el máximo de errores que
permitan depurar y otorgar calidad y confianza sobre el código fuente que se va a liberar.
 Facilidad de uso: debido a la utilidad que brinda esta clase de herramientas en el ciclo de vida del
software debe ser fácil de usar e intuitiva debido a que no solo personal de T.I. pueda operarlas
 Reportar Hallazgos: estas herramientas deben reportar los errores encontrados en el escaneo de
código fuente para permitir dar solución a estos problemas.

Algunas herramientas analizadoras de código fuente:


a) ConQAT: es un motor de análisis altamente configurable calidad del software. ConQAT se basa
en una arquitectura de tuberías y filtros que permiten realizar configuraciones complejas de
análisis de una manera muy aplicable debido a su entorno gráfico. Esta herramienta esta
soportada para los lenguajes de programación Java, C#, C++, JavaScript entre otros.

b) Parasoft: es una herramienta bastante poderosa en la prevención de defectos de desarrollo, se


encuentra soportada para los lenguajes de programación c,c++ y .net.
Finalmente existe una herramienta que he podido comprobar la funcionalidad y su versatilidad y se
trata de SONAR que es una plataforma para gestionar la calidad del código y como tal abarca 7 ejes
de la calidad del código.

PRINCIPIOS DE SEGURIDAD DE LA INFORMACIÓN

Seguridad en Aplicaciones, es el uso de principios y/o buenas prácticas de SEGURIDAD durante el


ciclo de vida del software (SDLC), pudiendo ser este adquirido o desarrollado.
Por su estructura los servidores web abren una ventana entre la red y el mundo. El cuidado que se tenga
con el mantenimiento, la actualización y la codificación de la página web creada definirá el tamaño de
esa ventana. La seguridad web puede ser relativa y siempre está acompañada de dos componentes: uno
interno y uno público.

Seguridad web son las medidas aplicadas para proteger una página web y garantizar que los datos no
están expuestos ante los criminales; es un proceso continuo y una parte esencial de administrar un sitio
web.

La ciberseguridad es importante porque los sitios web desprotegidos están expuestos a sufrir situaciones
como:
 Robo de información guardada en el servidor web.
 Explotación de datos personales como: direcciones de correo electrónico, información de
pagos de los visitantes para usarlos inadecuadamente como robo de identidad, extorsiones,
abuso de confianza, estafas, entre otros.
 Redireccionamiento a páginas web maliciosas.
 Mostrar anuncios no deseados.
 Engañar a los bots y rastreadores de los motores de búsqueda para hacer SEO de “sombrero
negro” (Black Hat SEO), cuyo objetivo es atraer tráfico a sitios web que no siguen las
mejores prácticas de internet.
 Utilizar las computadoras de los visitantes para hacer minería de criptomonedas.
 Recibir ataques DDoS que pueden alentar tu página o hacer que deje de funcionar de manera
inesperada, haciéndola inaccesible para los visitantes.
 Realizar descargas de software malicioso.

¿CÓMO HACER QUE UN SITIO WEB SEA SEGURO?

Para no ser vulnerables y correr riesgos se puede aplicar acciones de seguridad web como:
1. Instalar un certificado de seguridad.
Los certificados de seguridad son una medida básica para proteger la información que
recolectas en tu página web, como emails o números de tarjetas bancarias. Pero ojo: los
certificados SSL solo protegen los datos en tránsito, es decir, los que van desde el navegador
de tus visitantes hacia tu servidor, por eso es mucho mejor si incluyes otras de las medidas
que explicamos a continuación.
2. PROTEGER TU PÁGINA CON UN FIREWALL DE APLICACIONES WEB.

Un Firewall, también conocido como cortafuegos, es un sistema (ya sea hardware o software)
que actúa como un ‘guardia de seguridad’, que deja pasar (o no) los datos que fluyen entre dos
redes (por ejemplo, entre tu sitio web e internet).

Los cortafuegos existen para impedir que los sistemas no autorizados puedan conectarse a tu
página web y, por lo tanto, obtengan los datos que compartes a través de ella. Entre sus
ventajas, los Firewall de Aplicaciones Web incluyen:

a) Filtrar y monitorear el tráfico HTTP entre tu sitio web e internet, para identificar cuando
existan intentos de ataques como Cross-site scripting (que consiste en insertar código
malicioso), SQL Injection (que hace vulnerable a la base de datos del servidor)
o Denial-Of-Service (que imposibilita al servidor para realizar correctamente las
peticiones de los usuarios).
b) Establecer distintos niveles de seguridad entre los usuarios que tienen acceso a tu red.
3. UTILIZAR UN ESCÁNER WEB.
Un escáner de seguridad sirve para revisar tu sitio web cada determinado tiempo. Su objetivo
es detectar malware o actividades sospechosas, así como descubrir si tu página está en las
listas negras –también conocidas como blacklists– de los motores de búsqueda, lo cual podría
conllevar a que tu sitio sea inaccesible o tus datos estén en riesgo.

4. ACTUALIZAR EL SOFTWARE CON FRECUENCIA.


Es indispensable que actualices el software que ayuda a mantener tu página en línea, tan
pronto como esté disponible cualquier complemento o renovación. ¿Por qué? Porque las
actualizaciones no solo sirven para modernizar un software, sino también para implementar
mejoras de seguridad o poner ‘parches’ a las vulnerabilidades anteriores del sistema.

Piensa que muchos ataques cibernéticos ocurren de forma automatizada, es decir, que los bots
rastrean en internet las páginas web que no están actualizadas para explotarlas.

Aquí también entra la importancia del Firewall, porque éste pone un ‘parche digital’ a los
agujeros de seguridad que puedan existir, tan pronto como apliques las actualizaciones.

5. UTILIZAR CONTRASEÑAS FUERTES.


El utilizar contraseñas fuertes tiene un enorme impacto en los sitios web. Las personas que se
dedican a corregir y desinfectar páginas web atacadas por cibercriminales, necesitan iniciar
sesión en el sitio o servidor web; si la contraseña es débil sería muy difícil que un especialista
pueda ingresar a la página web para arreglarla.

Cinco tips básicos de Google para fortalecer la contraseña de tu cuenta (los cuales aplican


prácticamente para cualquier contraseña online):

a) Procura que tu contraseña sea larga (8 caracteres o más).


b) Combina letras, números y símbolos.
c) No utilices una contraseña insegura como “contrasena123”.
d) Utiliza contraseñas aleatorias. Los programas que descifran contraseñas están diseñados para
utilizar palabras encontradas en línea o en diccionarios.
e) Intenta que sea fácil de recordar para ti, pero prácticamente imposible de adivinar para otra
persona.
6. LIMITAR EL ACCESO DE LOS USUARIOS Y LOS PERMISOS EN TU SITIO WEB.
En el portal de welivesecurity tienen una explicación muy interesante sobre por qué deberías
limitar los accesos y permisos a tu sitio web:

Ellos explican que el “principio del menor privilegio” consiste en otorgar a cada persona los
permisos o privilegios mínimos que necesita para realizar su trabajo, así no podrán realizar
acciones prohibidas como acceder, obtener o modificar cierta información.

7. CAMBIAR LOS AJUSTES PREESTABLECIDOS DE TU CMS (CONTENT MANAGEMENT


SYSTEM),

Los sistemas de gestión de contenido (CMS por sus siglas en inglés) son muy fáciles de usar,
pero pueden ser vulnerables cuando dejas la configuración preestablecida de tu cuenta. Como
mencionamos previamente, los bots trabajan automáticamente para atacar a los sitios
desactualizados o fáciles de descifrar.

En este aspecto, es mejor que cambies los ajustes preestablecidos de los comentarios, los
usuarios, la visibilidad de datos del usuario y los permisos de archivos.

REALIZAR COPIAS DE SEGURIDAD DE TU PÁGINA WEB.

Las copias de seguridad ayudan a recuperar lo que existía antes del incidente en la página web. No lo
pienses como una solución para ahorrarte otros métodos de seguridad, sino como una capa extra de
seguridad cuando un pirata informático quiere robarse tus datos o falla tu servidor web.

DIRECTRICES DE PROGRAMACIÓN SEGURA


Existen numerosas directrices y consejos que un programador puede implementar para ayudar en la
prevención de los errores de seguridad comunes en las aplicaciones. Muchos de estos pueden ser
aplicados a cualquier lenguaje de programación, y otros pueden estar generados específicamente para un
lenguaje de programación como por ejemplo java,php,perl entre otros. Es por esto, que en este capítulo
se desprenden una serie de directrices que deberían ser tomadas en cuenta por los desarrolladores a la
hora de iniciar a codificar una aplicación:

VALIDACIONES DE ENTRADA
Los datos de entrada de una aplicación se puede definir como el conjunto de parámetros que van hacer
digitados y posteriormente capturados para ser manipulados en codificación y para esto, en términos de
implementación, validación de entrada se debe definir un conjunto de caracteres válidos los cuales
deben ser validado cada carácter de entrada y si no se encuentra un carácter dentro de esta selección de
caracteres validos se debe generar un error o ser manejado por medio de excepciones, las cuales deben
traducir estos errores a un lenguaje comprensible para el usuario. En ninguno de los casos se debe
arrojar la línea del código ni tampoco se deben notar la clase, evento o método ya que esto puede dar
indicios al presunto atacante sobre las tecnologías implementadas.

SENTENCIAS SQL

Cuando las consultas se construyen directamente con los datos del usuario entre líneas o concatenan
directamente con el texto de la consulta, en lugar de utilizar los parámetros de vinculación de tipo
seguro, esto puede permitir al atacante realizar un ataque de inyección de sql y consiste en una debilidad
de programación en que la aplicación construye dinámicamente consultas SQL utilizando la
concatenación de cadenas de datos, esto puede permitir que el atacante pueda modificar consultas como
por ejemplo para saltarse el proceso de autenticación de usuario, un ejemplo de cómo deberían ejecutar
consultas SQL para evitar esto sería el siguiente:

CÓDIGO COMENTADO

Todo código comentado dentro de la aplicación debe ser eliminado antes de ser lanzado en producción
debido a que el código comentado puede generar el uso accidental en producción que puede alterar el
correcto funcionamiento de la aplicación, como también puede llegar a contar con código quemado. Es
por esto que por ningún motivo puede salir a producción, en la vida real es un proceso muy común
encontrar código comentado, debido a que muchas veces en el proceso de desarrollo se usa para la
generación de pruebas, pero casi nunca se eliminan en el momento de liberar el código.

MENSAJES DE ERROR

Todos los mensajes de error que lleguen al usuario final no deben contener información confidencial
como sistema operativo, red, lenguaje de programación, línea del error, motor de base de datos, estos
errores deben darse tratamiento y ser estandarizados de forma genérica y comprensible para el
desarrollador pero que sea entendible para el usuario como por ejemplo “Se presentó el error 1281 no se
pudo registrar el usuario, póngase en contacto con el proveedor de servicio.”

CONTENIDO URL

En el contenido url nunca se debe mostrar información sobre la url como passwords, nombre de
servidores, direcciones ip, lenguaje de programación o las rutas del sistema de archivos que revelan la
estructura de los directorios del servidor web, ya que para un atacante esto se convierte en información
valiosa ya que le da una visión sobre objetivo.

VALORES QUEMADOS

En muchas ocasiones los desarrolladores de software tienden a utilizar HARDCODE (Código Quemado)
que consiste en dejar variables definidas por defecto en el código, esto puede configurar un problema de
seguridad ya que algunas de estos valores preestablecidos como puede ser un usuario, contraseña,
dirección ip entre muchas otras, pueden salir a un ambiente de producción y un atacante puede
aprovechar esta vulnerabilidad en el código para conocer el entorno y explotar fallas de seguridad como
por ejemplo.

CIFRADO DE CONTRASEÑAS

Las Contraseñas que sean utilizadas en la codificación de software deben estar cifradas ya sea en Sha1,
MD5 el algoritmo de cifrado que la organización considere conveniente ya que, de no implementar una
política de contraseñas, estas pueden viajar en texto plano y puede ser capturada y explotada por un
atacante.

MENOR PRIVILEGIO

Este es un principio fundamental de seguridad ya que para las aplicaciones desarrolladas se debe
garantizar que la información sea visible solamente para los que la requieren y para esto la organización
debe implementar una política de roles y privilegios ya que todos los usuarios del sistema no requieren
la misma información.

1. Explicación de forma correcta todo su proyecto y documentación (video


explicando su proyecto)

https://drive.google.com/drive/recent
Caso de prueba Inicio de sesión Dispositivos Navegadores
Funcionalidad Datos de usuario Android 12 Chome / Firefox
Plataforma web-móvil Windows 10 Chome / Firefox
home
Nº Escenario Test Resultado Resultado Detalles Re test Windows Android iOS
obtenido
1 Inicio de sesión Inicio con cuenta y contraseña creada por el Logueo exitoso Pass La página N/A VERDADERO VERDADERO VERDADERO
administrador a la página del automáticamente
administrador redirige y no
muestra un mensaje
de login
2 Inicio de sesión Inicio de sesión con usuario y contraseña Mensaje que fail No redirecciona la 2 VERDADERO VERDADERO VERDADERO
errónea indica que página
indica que la
credencial es
incorrecta
3 Inicio de sesión Inicio de sesión con usuario inexistente Mensaje que fail No redirecciona la 2 VERDADERO VERDADERO VERDADERO
indica que el página
usuario no
existe
4 Inicio de sesión Inicio de sesión con usuario inexistente y Mensaje que fail No redirecciona la 2 VERDADERO VERDADERO VERDADERO
contraseña correcta indica que el página
usuario no
existe
                   

Pruebas Funcionales Realizadas

En la página Web de insumos de hospitales públicos, en donde se incluyeron pruebas unitarias y pruebas de interfaz, pruebas funcionales se centra
en comprobar que los sistemas desarrollados funcionan acorde a las especificaciones funcionales y requisitos del cliente. Este servicio ayuda a su
organización a detectar los posibles defectos derivados de errores en la fase de programación.

Prueba inicio de sesión


Inicio con cuenta y contraseña creada por el administrador
Inicio de sesión con usuario y contraseña errónea
Control de pruebas administración

Caso de prueba Administración Dispositivos Navegadores


Funcionalidad Crud item Android 11 Chome / Firefox
Plataforma web-móvil Windows 11 Chome / Firefox
home
Nº Escenario Test Resultado Resultado Detalles Re Windows Android iOS
esperado test
1 Agregación de Agregación de nueva La página me fail Muestra un 2 FALSO VERDADERO FALSO
nueva propiedad propiedad como item si no indica adjuntar mensaje rojo de
se adjuntan las imágenes imagen, aunque error
correctas los archivos ya
estén adjuntos
2 Agregación de Agregación de nueva La página Pass Redirección al N/A VERDADERO VERDADERO VERDADERO
nueva propiedad propiedad como item responde menú del
adecuadamente administrador
agregando el
item
3 Edición del item Editar un item existente con La página se Pass Redirecciona al N/A VERDADERO VERDADERO VERDADERO
nuevos datos y no adjuntar actualiza menú del
las tres imágenes exitosamente administrador
4 Edición del item Editar los datos del item y La página se Pass Redirecciona al N/A VERDADERO VERDADERO VERDADERO
borrar uno de sus campos actualiza menú del
exitosamente administrador
5 Eliminación de Eliminar los registros Los registros se Pass Limpia la N/A VERDADERO VERDADERO VERDADERO
item mediante el botón eliminan página de
exitosamente visualización y
elimina el
registro de item
6 Busqueda de item Busqueda de item por Los resultados Pass Muestra solo N/A VERDADERO VERDADERO VERDADERO
caracteristicas son satisfactorios resultados
coincidentes

Agregación stock medicamento


CRUD Ingreso de Medicamentos

Imagen 9 modificación de ítem


Pruebas en la visualización del stock de medicamentos

Caso de prueba Inicio Dispositivos Navegadores


Funcionalidad Datos del Item Android 11 Chome / Firefox
Plataforma web-móvil Windows 11 Chome / Firefox
home
N Escenario Test Resultado Resultado Detalles Re Windows Android iOS
º esperado test
1 Visualización Funcionalidad de los Devuelve Pass Muestra 1 VERDADERO VERDADERO VERDADERO
de los items datos los datos todos los
solicitados detalles
2. Controles De La Aplicación Web

Los controles de aplicaciones se establecen bajo los marcos de trabajo NIST e ISO/IEC 27001 para
proporcionar una seguridad razonable de que se cumplen los objetivos gerenciales y funcionamiento
óptimo de la aplicación web.
Los controles de aplicación permiten garantizar la integridad y manejo de los datos a medida que las
aplicaciones informáticas
Los controles de aplicación consisten de actividades manuales y/o automatizadas que asegurar que la
información cumple con ciertos criterios, los que NIST, ISO 27001 refiere como requerimientos de
negocio para la información. Estos criterios son:
 Efectividad
 Eficiencia
 Confidencialidad
 Integridad
 Disponibilidad
 Cumplimiento
 Confiabilidad
Es necesario asegurarse de que existen suficientes controles para mitigar los riesgos y que están
operando con la efectividad necesaria para proveer información confiable

MARCO DE SEGURIDAD DE LA APLICACIÓN WEB:

Gestión de activos (ID.AM): Los ID.AM-2: Las plataformas


datos, el personal, los de software y las ISO/IEC 27001:2013 A.8.1.1,
dispositivos, los sistemas y las aplicaciones dentro de la A.8.1.2, A.12.5.1
instalaciones que permiten a la organización están NIST SP 800-53 Rev. 5 CM-8,
organización alcanzar los inventariadas. PM-5
objetivos empresariales se ID.AM-6: Los roles y las
identifican y se administran de responsabilidades de la ISO/IEC 27001:2013 A.6.1.1
forma coherente con su seguridad cibernética para NIST SP 800-53 Rev.5 CP-2, PS-
importancia relativa para los toda la fuerza de trabajo y 7, PM-11
objetivos organizativos y la terceros interesados
estrategia de riesgos de la
organización
Evaluación de riesgos (ID.RA): ID.RA-1: Se identifican y se ISO/IEC 27001:2013 A.12.6.1,
La organización comprende el documentan las A.18.2.3 NIST SP 800-53 Rev.5
riesgo de seguridad cibernética vulnerabilidades de los CA-2, CA-7, CA-8, RA-3, RA-5,
para las operaciones de la activos. SA-5, SA-11, SI-2, SI-4, SI-5
organización (incluida la ID.RA-3: Se identifican y se ISO/IEC 27001:2013: Cláusula
misión, las funciones, la imagen documentan las amenazas, 6.1.2 NIST SP 800-53 Rev.5 RA-
o la reputación), los activos de tanto internas como externas. 3, SI-5, PM-12, PM-16
la organización y las personas. ID.RA-5: Se utilizan las ISO/IEC 27001:2013:A.12.6.1

22
amenazas, las NIST SP 800-53 Rev.5 RA-2,
vulnerabilidades, las RA-3, PM-16
probabilidades y los
impactos para determinar el
riesgo.
ID.RA-6: Se identifican y ISO/IEC 27001:2013 : Cláusula
priorizan las respuestas al 6.1.3 NIST SP 800-53 Rev.5:
riesgo. PM-4, PM-9
Estrategia de gestión de riesgos ID.RM-1: Los actores de la ISO/IEC 27001:2013 Cláusula
(ID.RM): Se establecen las organización establecen, 6.1.3
prioridades, restricciones, gestionan y acuerdan los NIST SP 800-53 Rev. 5 PM-9
tolerancias de riesgo y procesos de gestión de
suposiciones de la organización riesgos.
y se usan para respaldar las
decisiones de riesgos
operacionales.
Gestión de identidad, PR.AC-1: Las identidades y ISO/IEC 27001:2013 A.9.2.1,
autenticación y control de credenciales se emiten, se A.9.2.2, A.9.2.3, A.9.2.4, A.9.2.6,
acceso (PR.AC): El acceso a los administran, se verifican, se A.9.3.1, A.9.4.2, A.9.4.3
activos físicos y lógicos y a las revocan y se auditan para los NIST SP 800-53 Rev. 5 AC-1,
instalaciones asociadas está dispositivos, usuarios y AC-2, IA-1, IA-2, IA-3, IA4, IA-
limitado a los usuarios, procesos procesos autorizados. 5, IA-6, IA-7, IA-8, IA-9, IA-10,
y dispositivos autorizados, y se IA-11
administra de forma coherente PR.AC-3: Se gestiona el ISO/IEC 27001:2013 A.6.2.1,
con el riesgo evaluado de acceso acceso remoto. A.6.2.2, A.11.2.6, A.13.1.1,
no autorizado a actividades A.13.2.1
autorizadas y transacciones. PR.AC-4: Se gestionan los ISO/IEC 27001:2013 A.6.1.2,
permisos y autorizaciones de A.9.1.2, A.9.2.3, A.9.4.1, A.9.4.4,
acceso con incorporación de A.9.4.5
los principios de menor NIST SP 800-53 Rev.5 AC-1,
privilegio y separación de AC-2, AC-3, AC-5, AC-6, AC-
funciones. 14, AC-16, AC-24
PR.AC-7: Se autentican los NIST SP 800-53 Rev. 5 AC-7,
usuarios, dispositivos y otros AC-8, AC-9, AC-11, AC-12, AC-
activos (por ejemplo, 14, IA-1, IA-2, IA-3, IA-4, IA-5,
autenticación de un solo factor o IA-8, IA-9, IA-10, IA11
múltiples factores) acorde al
riesgo de la transacción (por
ejemplo, riesgos de seguridad y
privacidad de individuos y otros
riesgos para las organizaciones).

Seguridad de los datos (PR.DS): PR.DS-1: Los datos en ISO/IEC 27001:2013 A.8.2.3
La información y los registros reposo están protegidos. NIST SP 800-53 Rev. 5 MP-8,
(datos) se gestionan en función SC-12, SC-28
de la estrategia de riesgo de la PR.DS-2: Los datos en ISO/IEC 27001:2013 A.8.2.3,
organización para proteger la tránsito están protegidos. A.13.1.1, A.13.2.1, A.13.2.3,
confidencialidad, integridad y A.14.1.2, A.14.1.3
disponibilidad de la NIST SP 800-53 Rev. 5 SC-8,
información. SC-11, SC-12

23
PR.DS-5: Se implementan ISO/IEC 27001:2013 A.6.1.2,
protecciones contra las A.7.1.1, A.7.1.2, A.7.3.1, A.8.2.2,
filtraciones de datos. A.8.2.3, A.9.1.1, A.9.1.2, A.9.2.3,
A.9.4.1, A.9.4.4, A.9.4.5, A.10.1.1,
A.11.1.4, ISO/IEC 27001:2013
A.6.1.2, A.7.1.1, A.7.1.2, A.7.3.1,
A.8.2.2, A.8.2.3, A.9.1.1, A.9.1.2,
A.9.2.3, A.9.4.1, A.9.4.4, A.9.4.5,
A.10.1.1, A.11.1.4,
PR.DS-6: Se utilizan ISO/IEC 27001:2013 A.12.2.1,
mecanismos de A.12.5.1, A.14.1.2, A.14.1.3,
comprobación de la A.14.2.4
integridad para verificar el NIST SP 800-53 Rev. 5 SC-16,
software, el firmware y la SI-7
integridad de la información.
PR.DS-7: Los entornos de ISO/IEC 27001:2013 A.12.1.4
desarrollo y prueba(s) están NIST SP 800-53 Rev. 5 CM-2
separados del entorno de
producción.
Procesos y procedimientos de PR.IP-2: Se implementa un ISO/IEC 27001:2013 A.6.1.5,
protección de la información ciclo de vida de desarrollo A.14.1.1, A.14.2.1, A.14.2.5
(PR.IP): Se mantienen y se del sistema para gestionar los
utilizan políticas de seguridad sistemas. NIST SP 800-53 Rev. 5 PL-8,
(que abordan el propósito, el SA-3, SA-4, SA-8, SA-10, SA-11,
alcance, los roles, las SA-12, SA-15, SA-17, SI-12, SI-
responsabilidades, el 13, SI-14, SI-16, SI-17
compromiso de la jefatura y la PR.IP-4: Se realizan, se ISO/IEC 27001:2013 A.12.3.1,
coordinación entre las entidades mantienen y se prueban CIS A.17.1.2,
de la organización), procesos y CSC 10 copias de seguridad A.17.1.3, A.18.1.3
procedimientos para gestionar de la información. NIST SP 800-53 Rev. 5 CP-4,
la protección de los sistemas de CP-6, CP-9
información y los activos. PR.IP-7: Se mejoran los ISO/IEC 27001:2013 A.16.1.6,
procesos de protección Clausula 9, Clausula 10
NIST SP 800-53 Rev. 5 CA-2,
CA-7, CP-2, IR-8, PL-2, PM-6
PR.IP-9: Se encuentran ISO/IEC 27001:2013 A.16.1.1,
establecidos y se gestionan A.17.1.1, A.17.1.2, A.17.1.3
planes de respuesta NIST SP 800-53 Rev. 5 CP-2,
(Respuesta a Incidentes y CP-7, CP-12, CP-13, IR-7, IR-8,
Continuidad del Negocio) y IR-9, PE-17
planes de recuperación
(Recuperación de Incidentes
y Recuperación de Desastres)
PR.IP-10: Se prueban los ISO/IEC 27001:2013 A.17.1.3
planes de respuesta y NIST SP 800-53 Rev. 5 CP-4,
recuperación. IR-3, PM-14
PR.IP-12: Se desarrolla y se ISO/IEC 27001:2013 A.12.6.1,
implementa un plan de A.14.2.3, A.16.1.3, A.18.2.2,
gestión de las A.18.2.3
vulnerabilidades. NIST SP 800-53 Rev. 5 RA-3,
RA-5, SI-2

24
Mantenimiento (PR.MA): El PR.MA-1: El mantenimiento ISO/IEC 27001:2013 A.11.1.2,
mantenimiento y la reparación y la reparación de los activos A.11.2.4, A.11.2.5, A.11.2.6
de los componentes del sistema de la organización se realizan NIST SP 800-53 Rev. 5 MA-2,
de información y del control y están registrados con MA-3, MA-5, MA-6
industrial se realizan de herramientas aprobadas y
acuerdo con las políticas y los controladas.
procedimientos.
Tecnología de protección PR.PT-1: Los registros de ISO/IEC 27001:2013 A.12.4.1,
(PR.PT): Las soluciones auditoría o archivos se A.12.4.2, A.12.4.3, A.12.4.4,
técnicas de seguridad se determinan, se documentan, A.12.7.1
gestionan para garantizar la se implementan y se revisan NIST SP 800-53 Rev. 5 AU
seguridad y la capacidad de en conformidad con la Family
recuperación de los sistemas y política
activos, en consonancia con las PR.PT-5: Se implementan ISO/IEC 27001:2013 A.17.1.2,
políticas, procedimientos y mecanismos (por ejemplo, a A.17.2.1
acuerdos relacionados. prueba de fallas, equilibrio NIST SP 800-53 Rev. 5 CP-7,
de carga, cambio en caliente CP-8, CP-11, CP13, PL-8, SA-14,
o “hot swap”) para lograr los SC-6
requisitos de resiliencia en
situaciones normales y
adversas.
Anomalías y Eventos (DE.AE): DE.AE-2: Se analizan los ISO/IEC 27001:2013 A.12.4.1,
se detecta actividad anómala y eventos detectados para A.16.1.1, A.16.1.4
se comprende el impacto comprender los objetivos y NIST SP 800-53 Rev. 5 AU-6,
potencial de los eventos. métodos de ataque. CA-7, IR-4, SI-4
DE.AE-5: Se establecen ISO/IEC 27001:2013 A.16.1.4
umbrales de alerta de NIST SP 800-53 Rev. 5 IR-4, IR-
incidentes. 5, IR-8
Monitoreo Continuo de la DE.CM-1: Se monitorea la NIST SP 800-53 Rev. 5 AC-2,
Seguridad (DE.CM): El sistema red para detectar posibles AU-12, CA-7, CM-3, SC-5, SC-7,
de información y los activos son eventos de seguridad SI-4
monitoreados a fin de cibernética.
identificar eventos de seguridad DE.CM-3: Se monitorea la ISO/IEC 27001:2013 A.12.4.1,
cibernética y verificar la actividad del personal para A.12.4.3
eficacia de las medidas de detectar posibles eventos de NIST SP 800-53 Rev. 5 AC-2,
protección. seguridad cibernética. AU-12, AU-13, CA-7, CM-10,
CM-11
DE.CM-4: Se detecta el ISO/IEC 27001:2013 A.12.2.1
código malicioso. NIST SP 800-53 Rev. 5 SI-3, SI-
8
DE.CM-5: Se detecta el ISO/IEC 27001:2013 A.12.5.1,
código móvil no autorizado. A.12.6.2
NIST SP 800-53 Rev. 5 SC-18,
SI-4, SC-44
DE.CM-8: Se realizan ISO/IEC 27001:2013 A.12.6.1
escaneos de vulnerabilidades. NIST SP 800-53 Rev. 5 RA-5
Procesos de Detección (DE.DP): DE.DP-2: Las actividades de ISO/IEC 27001:2013 A.18.1.4,
Se mantienen y se aprueban los detección cumplen con todos A.18.2.2, A.18.2.3
procesos y procedimientos de los requisitos aplicables NIST SP 800-53 Rev. 5 AC-25,
detección para garantizar el CA-2, CA-7, SA-18, SI-4, PM-14

25
conocimiento de los eventos DE.DP-3: Se prueban los ISO/IEC 27001:2013 A.14.2.8
anómalos. procesos de detección. NIST SP 800-53 Rev. 5 CA-2,
CA-7, PE-3, SI-3, SI-4, PM-14

Planificación de la Respuesta RS.RP-1: El plan de ISO/IEC 27001:2013 A.16.1.5


(RS.RP): Los procesos y respuesta se ejecuta durante o NIST SP 800-53 Rev. 5 CP-2,
procedimientos de respuesta se después de un incidente. CP-10, IR-4, IR-8
ejecutan y se mantienen a fin de
garantizar la respuesta a los
incidentes de seguridad
cibernética detectados.
Análisis (RS.AN): Se lleva a RS.AN-5: Se establecen NIST SP 800-53 Rev. 5 SI-5,
cabo el análisis para garantizar procesos para recibir, PM-15
una respuesta eficaz y apoyar analizar y responder a las
las actividades de recuperación. vulnerabilidades divulgadas a
la organización desde fuentes
internas y externas (por
ejemplo, pruebas internas,
boletines de seguridad o
investigadores de seguridad).
Mitigación (RS.MI): Se realizan RS.MI-2: Los incidentes son ISO/IEC 27001:2013 A.12.2.1,
actividades para evitar la mitigados. A.16.1.5
expansión de un evento, mitigar NIST SP 800-53 Rev. 5 IR-4
sus efectos y resolver el RS.MI-3: Las ISO/IEC 27001:2013 A.12.6.1
incidente. vulnerabilidades NIST SP 800-53 Rev. 5 CA-7,
recientemente identificadas RA-3, RA-5
son mitigadas o se
documentan como riesgos
aceptados.
Planificación de la recuperación RC.RP-1: El plan de ISO/IEC 27001:2013 A.16.1.5
(RC.RP): Los procesos y recuperación se ejecuta NIST SP 800-53 Rev.
procedimientos de recuperación durante o después de un 5 CP-10, IR-4, IR-8
se ejecutan y se mantienen para incidente de seguridad
asegurar la restauración de los cibernética.
sistemas o activos afectados por
incidentes de seguridad
cibernética
Mejoras (RC.IM): La RC.IM-2: Se actualizan las ISO/IEC 27001:2013 A.16.1.6,
planificación y los procesos de estrategias de recuperación. Cláusula 10
recuperación se mejoran al NIST SP 800-53 Rev. 5 CP-2,
incorporar en las actividades IR-4, IR-8
futuras las lecciones aprendidas.

DEPENDENCIA DE LOS CONTROLES GENERALES DE TI.


Los controles generales de TI son aquellos que tienen que ver con el ambiente de proceso de TI en el
cual operan los controles de aplicación. Entre los controles generales están, por ejemplo:
 Control de cambios a programas

26
 Controles de acceso físico
 Controles de acceso lógico
 Controles de continuidad operativa
Con base a estos controles generales de TI se desglosan los controles objetivos los cuales mantendrán la
estabilidad del marco de ciberseguridad y gestión de la información.
CONTROLES OBJETIVO:
 Preparación y autorización de información fuente.
 Recolección y entrada de información fuente.
 Chequeos de exactitud, integridad y autenticidad.
 Integridad y validez del procesamiento.
 Revisión de salidas, reconciliación y manejo de errores.
CONTROLES ESPECÍFICOS DE LA APLICACIÓN:
 Verificación: este control es de edición de datos de entrada.
 Validación: cuando la aplicación antes de proceder con un proceso realiza validaciones previas.
Por ejemplo: verificación de saldos, límites de autorización, stock, otros.
 Cálculo: corresponde a controles donde la aplicación realiza cálculos, por ejemplo: ingresos por
ventas, costos, intereses.
 Interfaz: cuando la aplicación se comunica con otra e intercambiar información. Para este tipo de
control se debe proceder con mecanismos de control que validen la integridad de la información.
 Autorización: corresponde a controles que operan previa autorización, de tal manera que sin ella
no procede a una siguiente etapa la operación en cuestión.

CONCLUSIÓN

La seguridad debe estar presente en cada fase del desarrollo de software, lo cual, genera mayor robustez
sobre el código desarrollado; para poder alcanzar un desarrollo seguro debe incluir al SDLC (Seguridad
Durante el Ciclo de Vida del Software), deben estandarizarse controles y requisitos, mediante guías y
formularios.
La seguridad no es un producto es una sumatoria de tecnología, procesos y personas involucradas en el
ciclo de vida del desarrollo; aplicar la seguridad al final y no durante el proceso suele ser más costoso.

27
REFERENCIAS BIBLIOGRÁFICAS

¿Qué es seguridad en la web? Manual básico. (n.d.). Retrieved September 16, 2022, from
https://co.godaddy.com/blog/que-es-seguridad-en-la-web-manual-basico/

http://polux.unipiloto.edu.co:8080/00001881.pdf

28

También podría gustarte