Está en la página 1de 31

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
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

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 Windows Android iOS
obtenido test
1 Inicio de sesión Inicio con cuenta y contraseña creada por Logueo Pass La página N/A VERDADERO VERDADERO VERDADERO
el administrador exitoso a la automáticamente
página del redirige y no
administrador muestra un
mensaje de login
2 Inicio de sesión Inicio de sesión con usuario y contraseña Mensaje que fail No redirecciona 2 VERDADERO VERDADERO VERDADERO
errónea indica que la 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 2 VERDADERO VERDADERO VERDADERO
indica que el la página
usuario no
existe
4 Inicio de sesión Inicio de sesión con usuario inexistente y Mensaje que fail No redirecciona 2 VERDADERO VERDADERO VERDADERO
contraseña correcta indica que el la página
usuario no
existe
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 Navegadore


s
Funcionalida Crud item Android 11 Chome / Firefox
d
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 VERDADER FALSO
nueva propiedad como item si indica mensaje rojo O
propiedad no se adjuntan las adjuntar de error
imágenes correctas imagen,
aunque los
archivos ya
estén adjuntos
2 Agregación de Agregación de nueva La página Pass Redirección N/ VERDADER VERDADER VERDADER
nueva propiedad como item responde al menú del A O O O
propiedad adecuadament administrado
e agregando el r
item
3 Edición del Editar un item La página se Pass Redirecciona N/ VERDADER VERDADER VERDADER
item existente con nuevos actualiza al menú del A O O O
datos y no adjuntar las exitosamente administrado
tres imágenes r
4 Edición del Editar los datos del La página se Pass Redirecciona N/ VERDADER VERDADER VERDADER
item item y borrar uno de actualiza al menú del A O O O
sus campos exitosamente administrado
r
5 Eliminación de Eliminar los registros Los registros Pass Limpia la N/ VERDADER VERDADER VERDADER
item mediante el botón se eliminan página de A O O O
exitosamente visualización
y elimina el
registro de
item
6 Busqueda de Busqueda de item por Los resultados Pass Muestra solo N/ VERDADER VERDADER VERDADER
item caracteristicas son resultados A O O O
satisfactorios 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): ID.AM-2: Las


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

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

25
PR.AC-7: Se autentican NIST SP 800-53 Rev. 5 AC-
los usuarios, dispositivos y 7, AC-8, AC-9, AC-11, AC-12,
otros activos (por ejemplo, AC-14, IA-1, IA-2, IA-3, IA-4,
autenticación de un solo IA-5, IA-8, IA-9, IA-10, IA11
factor o 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-1: Los datos en ISO/IEC 27001:2013 A.8.2.3
(PR.DS): La información y reposo están protegidos. NIST SP 800-53 Rev. 5 MP-
los registros (datos) se 8, SC-12, SC-28
gestionan en función de la PR.DS-2: Los datos en ISO/IEC 27001:2013 A.8.2.3,
estrategia de riesgo de la tránsito están protegidos. A.13.1.1, A.13.2.1, A.13.2.3,
organización para A.14.1.2, A.14.1.3
proteger la NIST SP 800-53 Rev. 5 SC-
confidencialidad, 8, SC-11, SC-12
integridad y PR.DS-5: Se ISO/IEC 27001:2013 A.6.1.2,
disponibilidad de la implementan A.7.1.1, A.7.1.2, A.7.3.1, A.8.2.2,
información. protecciones contra las A.8.2.3, A.9.1.1, A.9.1.2, A.9.2.3,
filtraciones de datos. 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
mecanismos de A.12.2.1, A.12.5.1, A.14.1.2,
comprobación de la A.14.1.3, A.14.2.4
integridad para verificar NIST SP 800-53 Rev. 5 SC-
el software, el firmware y 16, SI-7
la integridad de la
información.
PR.DS-7: Los entornos ISO/IEC 27001:2013
de desarrollo y prueba(s) A.12.1.4
están separados del NIST SP 800-53 Rev. 5
entorno de producción. CM-2
Procesos y procedimientos de PR.IP-2: Se implementa ISO/IEC 27001:2013 A.6.1.5,
protección de la información un ciclo de vida de A.14.1.1, A.14.2.1, A.14.2.5
(PR.IP): Se mantienen y se desarrollo del sistema
utilizan políticas de para gestionar los NIST SP 800-53 Rev. 5 PL-
seguridad (que abordan el sistemas. 8, SA-3, SA-4, SA-8, SA-10,
propósito, el alcance, los SA-11, SA-12, SA-15, SA-17,
roles, las SI-12, SI-13, SI-14, SI-16, SI-
responsabilidades, el 17

26
compromiso de la jefatura PR.IP-4: Se realizan, se ISO/IEC 27001:2013
y la coordinación entre las mantienen y se prueban A.12.3.1, A.17.1.2,
entidades de la CIS CSC 10 copias de A.17.1.3, A.18.1.3
organización), procesos y seguridad de la NIST SP 800-53 Rev. 5 CP-
procedimientos para información. 4, CP-6, CP-9
gestionar la protección de PR.IP-7: Se mejoran los ISO/IEC 27001:2013
los sistemas de procesos de protección A.16.1.6, Clausula 9,
información y los activos. 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
establecidos y se A.16.1.1, A.17.1.1, A.17.1.2,
gestionan planes de A.17.1.3
respuesta (Respuesta a NIST SP 800-53 Rev. 5 CP-
Incidentes y Continuidad 2, CP-7, CP-12, CP-13, IR-7,
del Negocio) y planes de IR-8, IR-9, PE-17
recuperación
(Recuperación de
Incidentes y
Recuperación de
Desastres)
PR.IP-10: Se prueban ISO/IEC 27001:2013
los planes de respuesta y A.17.1.3 NIST SP 800-53
recuperación. Rev. 5 CP-4, IR-3, PM-14
PR.IP-12: Se desarrolla ISO/IEC 27001:2013
y se implementa un plan A.12.6.1, A.14.2.3, A.16.1.3,
de gestión de las A.18.2.2, A.18.2.3
vulnerabilidades. NIST SP 800-53 Rev. 5 RA-
3, RA-5, SI-2
Mantenimiento (PR.MA): El PR.MA-1: El ISO/IEC 27001:2013
mantenimiento y la mantenimiento y la A.11.1.2, A.11.2.4, A.11.2.5,
reparación de los reparación de los activos A.11.2.6
componentes del sistema de la organización se NIST SP 800-53 Rev. 5 MA-
de información y del realizan y están 2, MA-3, MA-5, MA-6
control industrial se registrados con
realizan de acuerdo con herramientas aprobadas
las políticas y los y controladas.
procedimientos.
Tecnología de protección PR.PT-1: Los registros ISO/IEC 27001:2013
(PR.PT): Las soluciones de auditoría o archivos se A.12.4.1, A.12.4.2, A.12.4.3,
técnicas de seguridad se determinan, se A.12.4.4, A.12.7.1
gestionan para garantizar documentan, se NIST SP 800-53 Rev. 5 AU
la seguridad y la implementan y se Family
capacidad de revisan en conformidad
recuperación de los con la política
sistemas y activos, en PR.PT-5: Se ISO/IEC 27001:2013
consonancia con las implementan A.17.1.2, A.17.2.1

27
políticas, procedimientos mecanismos (por ejemplo, NIST SP 800-53 Rev. 5 CP-
y acuerdos relacionados. a prueba de fallas, 7, CP-8, CP-11, CP13, PL-8,
equilibrio de carga, SA-14, SC-6
cambio en caliente o “hot
swap”) para lograr los
requisitos de resiliencia
en situaciones normales
y adversas.
Anomalías y Eventos DE.AE-2: Se analizan los ISO/IEC 27001:2013
(DE.AE): se detecta eventos detectados para A.12.4.1, A.16.1.1, A.16.1.4
actividad anómala y se comprender los objetivos NIST SP 800-53 Rev. 5 AU-
comprende el impacto y métodos de ataque. 6, CA-7, IR-4, SI-4
potencial de los eventos. DE.AE-5: Se establecen ISO/IEC 27001:2013
umbrales de alerta de A.16.1.4
incidentes. NIST SP 800-53 Rev. 5 IR-
4, IR-5, IR-8
Monitoreo Continuo de la DE.CM-1: Se monitorea NIST SP 800-53 Rev. 5 AC-
Seguridad (DE.CM): El la red para detectar 2, AU-12, CA-7, CM-3, SC-5,
sistema de información y posibles eventos de SC-7, SI-4
los activos son seguridad cibernética.
monitoreados a fin de DE.CM-3: Se monitorea ISO/IEC 27001:2013
identificar eventos de la actividad del personal A.12.4.1, A.12.4.3
seguridad cibernética y para detectar posibles NIST SP 800-53 Rev. 5 AC-
verificar la eficacia de las eventos de seguridad 2, AU-12, AU-13, CA-7, CM-
medidas de protección. cibernética. 10, CM-11
DE.CM-4: Se detecta el ISO/IEC 27001:2013
código malicioso. A.12.2.1
NIST SP 800-53 Rev. 5 SI-3,
SI-8
DE.CM-5: Se detecta el ISO/IEC 27001:2013
código móvil no A.12.5.1, A.12.6.2
autorizado. NIST SP 800-53 Rev. 5 SC-
18, SI-4, SC-44
DE.CM-8: Se realizan ISO/IEC 27001:2013
escaneos de A.12.6.1
vulnerabilidades. NIST SP 800-53 Rev. 5 RA-
5
Procesos de Detección DE.DP-2: Las ISO/IEC 27001:2013
(DE.DP): Se mantienen y se actividades de detección A.18.1.4, A.18.2.2, A.18.2.3
aprueban los procesos y cumplen con todos los NIST SP 800-53 Rev. 5 AC-
procedimientos de requisitos aplicables 25, CA-2, CA-7, SA-18, SI-4,
detección para garantizar PM-14
el conocimiento de los DE.DP-3: Se prueban los ISO/IEC 27001:2013
eventos anómalos. procesos de detección. A.14.2.8
NIST SP 800-53 Rev. 5 CA-
2, CA-7, PE-3, SI-3, SI-4, PM-
14

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

29
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
 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.

30
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.

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

31

También podría gustarte