🔒 Security Analysis

Análisis de Seguridad con Consultas SQL

Proyecto que utiliza SQL para buscar actividades sospechosas en una organización. Análisis de intentos de inicio de sesión fallidos y accesos desde lugares inusuales con datos de ejemplo.

6 Consultas
SQL Base de Datos
🔍 Análisis

¿En qué consiste este proyecto?

Una empresa guarda registros de accesos al sistema, y realizo un análisis de estos datos para proteger la información

🎯

Propósito

Imagina que una empresa guarda registros de quién intenta entrar a sus sistemas y quiénes son sus empleados. Utilizo SQL para analizar estos datos y encontrar posibles problemas, como alguien intentando entrar a horas inusuales o desde otra localización.

🛡️

Protección

  • Detección de accesos fuera de horario
  • Identificación de ubicaciones sospechosas
  • Análisis de empleados por departamento
  • Prevención de amenazas internas

Tablas de Ejemplo

Para que entiendas cómo funcionan las consultas, aquí tienes las tablas con datos

🔐 Tabla de intentos de inicio de sesión

Esta tabla registra quién intentó entrar al sistema, cuándo, desde dónde y si lo logró.

Usuario Fecha Hora País Éxito
jdoe 2022-05-08 14:00 MEX
jdoe 2022-05-08 20:15 MEX No
asmith 2022-05-09 03:00 USA No
mlopez 2022-05-09 09:45 MEX
hacker1 2022-05-09 02:30 RUS No
csanchez 2022-05-10 16:20 MEX

👥 Tabla de empleados

Esta tabla muestra quiénes trabajan en la empresa, en qué departamento y en qué oficina.

Nombre Departamento Oficina
Ana García Marketing East-101
Luis Pérez Marketing East-203
María López Finance West-301
Juan Gómez Sales East-105
Sofía Ramírez Technology of Information West-102
Carlos Ruiz Finance West-304

💡 Importante

Estas tablas nos ayudan a ver cómo las consultas SQL filtran datos para encontrar lo que queremos. Observa los registros marcados en rojo - son actividades sospechosas que nuestras consultas detectarán automáticamente.

Consultas SQL que Utilicé

Ejemplos específicos de las consultas utilizadas en el análisis

a) Intentos fallidos después de las 6:00 p.m.

¿Quién intentó entrar al sistema después del horario laboral y falló?
intentos_fallidos_horario.sql
SELECT * 
FROM log_in_attempts 
WHERE login_time > '18:00' 
  AND success = FALSE;
Explicación: Busca intentos de inicio de sesión después de las 6:00 p.m. que no funcionaron (contraseña incorrecta).
Ejemplo de resultado:
UsuarioFechaHoraPaísÉxito
jdoe2022-05-0820:15MEXNo

b) Intentos en fechas específicas

¿Qué intentos de inicio de sesión hubo el 8 y 9 de mayo de 2022?
intentos_fechas_especificas.sql
SELECT * 
FROM log_in_attempts 
WHERE login_date = '2022-05-09' 
   OR login_date = '2022-05-08';
Explicación: Busca todos los intentos de inicio de sesión en esos dos días, ya sea que hayan tenido éxito o no.
Ejemplo de resultado:
UsuarioFechaHoraPaísÉxito
jdoe2022-05-0814:00MEX
jdoe2022-05-0820:15MEXNo
asmith2022-05-0903:00USANo
mlopez2022-05-0909:45MEX
hacker12022-05-0902:30RUSNo

c) Intentos desde fuera de México

¿Hubo intentos de inicio de sesión desde fuera de México?
intentos_fuera_mexico.sql
SELECT * 
FROM log_in_attempts 
WHERE NOT country LIKE 'MEX%';
Explicación: Busca intentos de inicio de sesión desde países que no empiecen con "MEX".
Ejemplo de resultado:
UsuarioFechaHoraPaísÉxito
asmith2022-05-0903:00USANo
hacker12022-05-0902:30RUSNo

d) Empleados en Marketing del edificio Este

¿Quiénes trabajan en Marketing y están en el edificio Este?
empleados_marketing.sql
SELECT * 
FROM employees 
WHERE department = 'Marketing' 
  AND office LIKE 'East%';
Explicación: Busca empleados del departamento de Marketing que trabajen en oficinas que empiecen con "East".
Ejemplo de resultado:
NombreDepartamentoOficina
Ana GarcíaMarketingEast-101
Luis PérezMarketingEast-203

e) Empleados en Finanzas o Ventas

¿Quiénes trabajan en los departamentos de Finanzas o Ventas?
empleados_finanzas_ventas.sql
SELECT * 
FROM employees 
WHERE department = 'Finance' 
   OR department = 'Sales';
Explicación: Busca empleados que estén en Finanzas o en Ventas.
Ejemplo de resultado:
NombreDepartamentoOficina
María LópezFinanceWest-301
Juan GómezSalesEast-105
Carlos RuizFinanceWest-304

f) Empleados que no son de Tecnología

¿Quiénes no trabajan en el departamento de Tecnología?
empleados_no_ti.sql
SELECT * 
FROM employees 
WHERE NOT department = 'Technology of Information';
Explicación: Busca empleados que no estén en el departamento de TI.
Ejemplo de resultado:
NombreDepartamentoOficina
Ana GarcíaMarketingEast-101
Luis PérezMarketingEast-203
María LópezFinanceWest-301
Juan GómezSalesEast-105
Carlos RuizFinanceWest-304

🚀 ¿Te ha gustado este proyecto?

Conecta conmigo y explora más proyectos de ciberseguridad