E6 - Pia
E6 - Pia
PIA
Hora: N2
Grupo: 006
Solicitud:
El estudio de los activos críticos de una empresa no es una tarea fácil. Pero, es un
ejercicio elemental, que además de ayudar a comprender mejor el negocio, permite
inversiones y ahorros financieros más asertivos, en la mayoría de las veces.
No todos los datos y activos de la empresa tienen el mismo grado de importancia,
por eso es necesario que estos activos sean reconocidos y tengan la prioridad
dentro de la estrategia de seguridad.
Datos, softwares y equipos, son macrotipos que pueden ser considerados activos
críticos en una determinada empresa. Y cada macro-tipo, puede contener una serie
de ítems, fundamentales para la sostenibilidad de la empresa.
Protocolos
• Syslog: El Protocolo de registro del sistema (Syslog) es una forma en que
los dispositivos de red pueden usar un formato de mensaje estándar para
comunicarse con un servidor de registro. Fue diseñado específicamente para
facilitar el monitoreo de dispositivos de red.
• Utilizar ORM (Object-Relational Mapping): Utilizar tecnologías ORM puede
ayudar a mitigar el riesgo de inyecciones SQL al mapear objetos de la
aplicación directamente a las tablas de la base de datos, evitando la
necesidad de construir consultas SQL manualmente
• CORS (Cross-Origin Resource Sharing): CORS es un protocolo que
permite que los recursos web sean solicitados desde otro dominio que el
dominio que sirve el recurso. Su configuración adecuada ayuda a evitar
ataques de solicitudes entre sitios (CSRF) y mejora la seguridad en
aplicaciones web críticas.
Para garantizar que MedCare no sufra ataques de inyección SQL debemos realizar
validaciones exhaustivas en todos los datos de entrada, para así rechazar cualquier
dato que no cumpla nuestras validaciones. Además, es importante desarrollar
planes de recuperación ante desastres para así garantizar del negocio ante algún
ataque, es importante realiza pruebas regulares de seguridad y evaluaciones de
penetración para identificar y corregir posibles vulnerabilidades en la capa de
activos de misión crítica. También debemos utilizar el protocolo de Kerberos el cual
es un protocolo de autentificación y puede ayudar a MedCare a garantizar la
seguridad y la autentificación ya se a los usuarios o servicios.
1. Encriptación de Datos:
a. Transmisión Segura (SSL/TLS): Utilizar conexiones seguras mediante SSL/TLS para
cifrar la comunicación entre los clientes y el servidor de base de datos. Esto
protege los datos mientras se transmiten a través de la red.
b. Cifrado de SQL Server: El cifrado no resuelve los problemas de control de acceso.
Pero mejora la seguridad porque limita la pérdida de datos, incluso si se superan
los controles de acceso. Por ejemplo, si el equipo host de base de datos no está
configurado correctamente y un usuario malintencionado obtiene datos
confidenciales, esa información robada podría resultar inservible si está cifrada.
2. En contra de Inyección SQL:
a. Declaraciones Preparadas: Una sentencia SQL preparada es un proceso de
programación que indica a las entradas qué valores espera recibir. De esta forma,
se descarta que el usuario ingrese comandos en la entrada que vayan a ser
concatenados con la ejecución de código de la aplicación. Así, se bloquea la
posibilidad de hacer inyecciones de código mediante consulta SQL en la página y
se aprende cómo evitar la inyección SQL. Por eso, las declaraciones preparadas son
la mejor respuesta a la pregunta de cómo prevenir la inyección SQL.
b. PHP Data Objects: Existe una extensión para PHP, llamada PHP Data Objects
(PDO), que ofrece funciones para facilitar la elaboración de declaraciones
preparadas. Esto también te protegerá correctamente de este tipo de ataques,
pero no es recomendado fiarte de las configuraciones predeterminadas y es mejor
verificar que el código esté escrito correctamente de forma manual. De este modo,
estarás 100% seguro de que funcionará la defensa contra inyecciones SQL.
Capa de Aplicaciones
Protocolos:
Capa de red
Es ventajoso limitar cualquier problema causado por el error humano, así como el
impacto negativo de cualquier dispositivo que pueda estar comprometidos.
Tipos de protocolos
Para mantener esta capa segura debemos hacer que MedCare utilice certificados
de entidades de certificación confiables, además debemos configurar el servidor de
base de datos para aceptar solo conexiones seguras. Utilizando el protocolo el
protocolo SSL/TLS: Podemos implementarlo en MedCare para encriptar la
comunicación y así evitar las inyecciones SQL, también podemos cifrar la
comunicación entre la aplicación y la base de datos, podemos configurar el servidor
de base de datos para solo aceptar conexiones seguras, también es importante que
solo usemos certificados emitidos por autoridades y que sean certificaciones
confiables para así garantizar la autenticidad del servidor y protegernos de ataques.
Podemos configurar el servidor web (IIS) de MedCare para utilizar conexiones
seguras, además podemos implementar el protocolo RADIUS para autentificar los
usuarios, y así poder verificar las credenciales antes de darle acceso, podemos
configurar el sistema de monitoreo para analizar y detectar intentos de ataques o
comportamientos anómalos.
Ademas para evitar inyecciones SQL se recomienda Implementar registros de
eventos (logs) para registrar consultas SQL, errores y eventos importantes.
Monitorear y revisar regularmente los registros de eventos para identificar
actividades inusuales. También podemos implementar validaciones de datos en el
lado del cliente y del servidor y así asegurarnos que solo aceptaran datos válidos.
Se recomienda que evitemos la concatenación de cadenas para las consultas SQL,
lo que se recomienda es utilizar consultas parametrizadas o procedimientos
almacenados.
Capa Humana
Para lograr una respuesta inmediata ante cualquier patrón de ataque en la red y
automatizar políticas de acceso/protección para prevenir inyecciones de SQL,
puedes seguir estas estrategias:
• Sistema de Detección de Intrusiones (IDS): Implementar un IDS para
monitorear la red y detectar patrones de tráfico sospechosos o intentos de
inyección de SQL, además de configurar alertas inmediatas para notificar al
personal de seguridad en tiempo real.
• Automatización de Respuesta a Incidentes: Desarrollar scripts o utilizar
herramientas para la automatización de respuestas a incidentes definiendo
acciones automáticas basadas en reglas predefinidas para bloquear
direcciones IP, cerrar puertos o tomar otras medidas correctivas.
• Firewalls: Utilizar firewalls que puedan adaptarse dinámicamente a las
amenazas, configurando reglas que bloqueen automáticamente tráfico
malicioso, como patrones específicos de inyección de SQL.
• Políticas de Acceso Dinámicas: Implementar políticas de acceso dinámicas
que se ajusten automáticamente según el nivel de amenaza y definir las
reglas que restrinjan el acceso a ciertas áreas críticas o limiten ciertos tipos
de consultas SQL.
• Sandboxing y Aislamiento: Emplear técnicas de sandboxing para aislar
procesos sospechosos y prevenir la propagación de ataques además de
configurar entornos aislados para ejecutar consultas SQL de forma segura y
evaluar su comportamiento.
• Análisis de Comportamiento: Implementar soluciones que realicen análisis
de comportamiento para identificar patrones de anomalía en el tráfico de red
teniendo configuraciones de respuestas automáticas en función de
comportamientos inusuales asociados con intentos de inyección de SQL.
• Integración con SIEM (Security Information and Event Management):
Integrar la solución de respuesta con un SIEM para una visión más amplia y
centralizada de la seguridad utilizando la información recopilada para mejorar
continuamente las políticas de respuesta automática.
• Actualizaciones Continuas: Mantener actualizadas las firmas de amenazas
y las reglas de detección para asegurar una respuesta efectiva contra las
tácticas de ataque.
• Entrenamiento de Machine Learning: Implementar modelos de machine
learning para identificar patrones de ataque y mejorar la precisión de las
respuestas automáticas.
• Revisión y Mejora Continua: Realizar revisiones periódicamente de las
respuestas automáticas para ajustar y mejorar las políticas según las nuevas
amenazas y cambios en el entorno.
Es muy común que a quienes desarrollamos backend nos pidan hacer aplicaciones
web o APIs que, en la mayoría de casos, requieren de una conexión a base de
datos. Por esto, si no tenemos cuidado al implementar los queries podemos llegar
a permitir un ataque de sql injection.
Esta url pone un limite de 3 al query, pero además dropea la tabla de usuarios, esto
se debe a la mala implementación por parte del desarrollador, que utilizo
interpolación de strings para tomar el input del usuario y utilizarlo en el query, un
desastre total.
Ahora, ¿que podemos hacer para prevenir esto en un caso tan común para quien
desarrolla backend? Simple, utilizar bindins:
Esto lo que hará será poner el input del usuario de manera segura en la posición del
signo de interrogación, esta es la práctica recomendada para cuando se toman
inputs de usuario para utilizar en queries. Aunque también se recomienda utilizar
directamente el ORM del framework que se esté utilizando así como validar los
inputs antes de utilizarlos tan burdamente cono se hizo en el ejemplo.
Esta propuesta ofrece una visión general de las herramientas y enfoques que los
administradores de sistemas pueden explorar para maximizar la seguridad en entornos
basados en Windows Server 2019 utilizando Windows Defender ATP.
Este enfoque se centra en cómo NMAP puede ser aprovechado para identificar
debilidades específicas en sistemas Windows, proporcionando a los profesionales
de seguridad y administradores de sistemas una herramienta valiosa para fortalecer
sus defensas. Desde la identificación de servicios y puertos abiertos hasta la
exploración de configuraciones específicas, NMAP se erige como un aliado crucial
en la batalla constante contra amenazas cibernéticas. Este artículo explorará las
capacidades de NMAP para detectar vulnerabilidades en sistemas Windows,
brindando una visión integral de su aplicación práctica en el ámbito de la seguridad
informática.
| smb-vuln-ms08-067:
| VULNERABLE:
| Microsoft Windows system vulnerable to remote code execution (MS08-
067)
| State: VULNERABLE
| IDs: CVE:CVE-2008-4250
| The Server service in Microsoft Windows 2000 SP4, XP SP2 and
SP3, Server 2003 SP1 and SP2,
| Vista Gold and SP1, Server 2008, and 7 Pre-Beta allows remote
attackers to execute arbitrary
| code via a crafted RPC request that triggers the overflow
during path canonicalization.
|
| Disclosure date: 2008-10-23
| References:
| https://technet.microsoft.com/en-us/library/security/ms08-
067.aspx
|_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-4250
-BYOD
Objetivo: Facilitar la integración de dispositivos personales de los empleados en el
entorno laboral de MedCare, promoviendo la eficiencia y reduciendo costos
operativos, al tiempo que se garantiza la ciberseguridad y el cumplimiento de
normativas de privacidad.
Alcance: Esta política se aplica a todos los empleados y miembros del personal de
MedCare que deseen utilizar sus propios dispositivos para realizar actividades
laborales y acceder a la red corporativa.
Registro de Dispositivos:
Los empleados deben registrar sus dispositivos personales con el departamento de
TI antes de conectarlos a la red corporativa.
El departamento de TI verificará que los dispositivos cumplan con los requisitos
mínimos de seguridad y estén actualizados.
Seguridad y Privacidad:
Los dispositivos registrados estarán sujetos a políticas de seguridad establecidas
por MedCare, incluyendo software antivirus y medidas de cifrado.
MedCare se reserva el derecho de realizar auditorías de seguridad en los
dispositivos para garantizar el cumplimiento de las políticas.
Actualizaciones y Configuraciones:
Los administradores de TI podrán realizar actualizaciones y cambios de
configuración en los dispositivos registrados para garantizar la seguridad y el
rendimiento óptimo de la red corporativa.
Soporte Técnico:
El soporte técnico proporcionado por MedCare se limitará a problemas relacionados
con la conectividad a la red corporativa y la seguridad. Problemas generales de los
dispositivos deberán ser gestionados por los propietarios.
Beneficios:
Reducción de Costos, minimización de costos operativos al no ser necesario
proporcionar dispositivos corporativos a los empleados.
Incremento en la Productividad:
Mayor eficiencia al permitir a los empleados utilizar dispositivos con los que están
familiarizados, evitando la necesidad de configuración y formación adicional.
Flexibilidad Laboral:
Mayor flexibilidad para los empleados al permitirles trabajar desde sus propios
dispositivos.
Revisión y Actualización: Esta política será revisada periódicamente para
asegurar su efectividad y se actualizará según sea necesario para adaptarse a los
cambios en la tecnología y las normativas de seguridad.
-MDM
-Contraseñas
-AAA
12. Conclusiones
Gracias a este proyecto pude aprender más sobre la ciberseguridad y los diferentes
tipos de vulnerabilidades que existen en la actualidad, además de aprender de la
gran variedad de opciones para proteger una página web de un tipo de ataque. Este
proyecto me gustó mucho, ya que es sobre un tema que siempre me ha interesado
mucho y en general siento que es sobre algo que se tendría que tener más en
cuenta, ya que todas las páginas web tienen brechas o vulnerabilidades.
13. Recomendaciones
Para los ataques de tipo inyección SQL se recomienda aplicar múltiples capas de
defensa para así poder evitar que esto ocurra. Esto incluye la configuración de
cortafuegos y la implantación de mecanismos de autenticación fuerte para todos tus
usuarios, como la autenticación de dos factores (2FA).
Si tu empresa ya fue atacada por inyección SQL se recomienda hacer lo siguiente,
implementar medidas pertinentes y cancelar las contraseñas que se vieron
comprometidas y vulnerables por dicho ataque, además se recomienda enviar un
correo informando la situación a los usuarios.
Para que estos logren cambiar su contraseña sin ningún problema, de igual manera,
en el correo se les recomendaba cambiar cualquier otra contraseña similar o igual
a la utilizada en su cuenta.
Al crear cuentas nuevas, lo mejor es asignar sólo los privilegios mínimos necesarios
para que la cuenta funcione correctamente. Por ejemplo, cree dos cuentas
diferentes con privilegios distintos si necesita una cuenta que pueda crear informes,
pero no eliminarlos. De este modo, los piratas informáticos tendrán más dificultades
para acceder a datos confidenciales o hacerse con el control de las cuentas
aprovechando cualquier vulnerabilidad del código de tu aplicación o de los archivos
de configuración.