SlideShare una empresa de Scribd logo
1 de 61
Descargar para leer sin conexión
Detección de
amenazas a escala
con osquery
Javier Marcos
@javutin
▪ Detección / IR / Ingeniería de Seguridad
▪ Open source contributor (github.com/javuto)
▪ (ex)
▪ (ahora)
$ whoami
Parte 1: Desmitificando osquery
▪ ¿Qué es osquery?
▪ Introducción al CLI: osqueryi
▪ Tablas en osquery
▪ Ejemplos
Agenda
Agenda
Parte 2: Uso de osquery a escala
▪ ¿Necesitas un demonio? osqueryd!
▪ Configuración y flags
▪ Scheduled queries y packs
▪ Rendimiento
Agenda
Parte 3: Usando la API remota
▪ ¿Que es un endpoint TLS?
▪ Configuración y flags
▪ On-demand queries
▪ File carving
▪ Usando un TLS endpoint
¿Qué es osquery?
▪ Exploración de tu sistema operativo usando SQL
▪ Monitorización basada en sistemas HIDS
🚨 100% uso de OS API, sin forks de execve 🚨
● https://osquery.io
● https://github.com/facebook/osquery
¿Quien usa osquery?
¿Por qué osquery?
▪ ¿Qué hosts corporativos tienen instalada la
extensión de navegador abc123?
▪ ¿Cuántos descriptores de archivos se abrieron
ayer por hora en los sistemas de producción?
▪ ¿Hay alguna máquina enrutando VPN a LAN?
¿Por qué usar SQL?
▪ Los conceptos básicos de SQL son universales
▪ El lenguaje SQL es muy popular entre devs y
administradores de sistema
SELECT pid,name,uid FROM processes
¿Por qué usar SQL?
SELECT pid,name,uid FROM processes
[concepto]
¿Por qué usar SQL?
SELECT pid,name,uid FROM processes
[atributos] [concepto]
¿Por qué usar SQL?
SELECT pid,name,uid FROM processes
WHERE uid != 0
[restricciones]
[concepto][atributos]
¿Por qué usar SQL?
WHERE uid != 0
[join]
JOIN users ON processes.uid=users.uid
SELECT pid,name,uid FROM processes
[concepto][atributos]
[restricciones]
osqueryi
▪ CLI y shell interactiva para lanzar consultas y
ver resultados
▪ Para explorar un host local y manualmente
▪ Una vez definidas las consultas, se pasa a la
automatización
https://osquery.readthedocs.io/en/stable/introduction/using-osqueryi/
osquery> .help
Welcome to the osquery shell. Please explore your OS!
You are connected to a transient 'in-memory' virtual database.
.all [TABLE] Select all from a table
.bail ON|OFF Stop after hitting an error
.echo ON|OFF Turn command echo on or off
.exit Exit this program
.features List osquery's features and their statuses
.headers ON|OFF Turn display of headers on or off
.help Show this message
osqueryi basics
=> crontab
=> curl
=> curl_certificate
=> deb_packages
=> device_file
=> device_hash
=> device_partitions
=> disk_encryption
=> dns_resolvers
=> docker_container_labels
=> docker_container_mounts
=> docker_container_networks
=> docker_container_ports
...
osquery> .tables
=> acpi_tables
=> apt_sources
=> arp_cache
=> augeas
=> authorized_keys
=> block_devices
=> carbon_black_info
=> carves
=> chrome_extensions
=> cpu_time
=> cpuid
osqueryi basics
osqueryi basics
osquery> pragma table_info(‘system_info’);
+-----+--------------------+---------+---------+------------+----+
| cid | name | type | notnull | dflt_value | pk |
+-----+--------------------+---------+---------+------------+----+
| 0 | hostname | TEXT | 0 | | 0 |
| 1 | uuid | TEXT | 0 | | 0 |
| 2 | cpu_type | TEXT | 0 | | 0 |
| 3 | cpu_subtype | TEXT | 0 | | 0 |
| 4 | cpu_brand | TEXT | 0 | | 0 |
| 5 | cpu_physical_cores | INTEGER | 0 | | 0 |
| 6 | cpu_logical_cores | INTEGER | 0 | | 0 |
| 7 | cpu_microcode | TEXT | 0 | | 0 |
Tablas de osquery
▪ 229 tablas en la versión 3.3.2
▪ 4 plataformas diferentes
▫ Mac, windows, linux y freebsd
▪ Datos fáciles de recoger y correlar
https://osquery.io/schema/3.3.2
https://osquery.io/schema/3.3.2
▪ acpi_tables
▪ arp_cache
▪ apps
▪ authorized_keys
▪ autoexec
▪ battery
▪ block_devices
▪ browser_plugins
▪ certificates
▪ cpu_time
...
▪ cpu_info
▪ crontab
▪ cups_jobs
▪ deb_packages
▪ disk_info
▪ dns_resolvers
▪ docker_info
▪ drivers
▪ etc_hosts
▪ elf_info
...
▪ etc_services
▪ event_taps
▪ file
▪ iptables
▪ kernel_info
▪ known_hosts
▪ launchd
▪ mounts
▪ preferences
...
¡Y muchas más!
Tablas de osquery
Ejecución de tablas al invocar
osquery> SELECT datetime FROM time;
+----------------------+
| datetime |
+----------------------+
| 2019-03-01T04:16:07Z |
+----------------------+
...
Ejecución de tablas al invocar
osquery> SELECT datetime FROM time;
+----------------------+
| datetime |
+----------------------+
| 2019-03-01T04:20:18Z |
+----------------------+
...
Ejecución de tablas al invocar
SELECT datetime FROM time;
2019-03-01T04:16:07Z
...
SELECT datetime FROM time;
2019-03-01T04:20:18Z
Tablas con parámetros
osquery> SELECT directory FROM file WHERE path =
‘/etc/issue’;
+-----------+
| directory |
+-----------+
| /etc |
+-----------+
Tablas con parámetros
osquery> SELECT md5 FROM file JOIN hash USING
(path) WHERE path = ‘/etc/issue’;
+----------------------------------+
| md5 |
+----------------------------------+
| b954418e6a50d4d4cb8f02776d867550 |
+----------------------------------+
Ejemplos de tablas básicas
osquery> SELECT * FROM rpm_packages;
osquery> SELECT * FROM users;
osquery> SELECT * FROM kernel_modules;
osquery> SELECT * FROM startup_items;
¡Ejemplos!
▪ ¿Cuál es el hostname del sistema?
▪ ¿Qué usuarios hay en el sistema?
▪ ¿Qué procesos están corriendo?
¡Ejemplos!
▪ ¿Cuál es el hostname del sistema?
▪ ¿Qué usuarios hay en el sistema?
▪ ¿Qué procesos están corriendo?
SELECT hostname FROM system_info;
¡Ejemplos!
▪ ¿Cuál es el hostname del sistema?
▪ ¿Qué usuarios hay en el sistema?
▪ ¿Qué procesos están corriendo?
SELECT hostname FROM system_info;
SELECT uid, username FROM users;
¡Ejemplos!
▪ ¿Cuál es el hostname del sistema?
▪ ¿Qué usuarios hay en el sistema?
▪ ¿Qué procesos están corriendo?
SELECT hostname FROM system_info;
SELECT uid, username FROM users;
SELECT pid, name, path FROM processes;
¡Ejemplos!
▪ ¿Cuál es el usuario y la shell de los procesos
que están corriendo?
¡Ejemplos!
▪ ¿Cuál es el usuario y la shell de los procesos
que están corriendo?
SELECT p.pid, p.name, p.path, u.username,
u.shell FROM processes AS p JOIN users AS u ON
p.uid = u.uid;
El demonio osqueryd
▪ Init, systemd, launchd, servicio windows
▪ Ejecución de queries programadas
▪ Logs de estado y resultados
▪ Muchísimas opciones de configuración
https://osquery.readthedocs.io/en/stable/introduction/using-osqueryd/
El demonio osqueryd
casos de uso para respuesta a incidentes
gestión centralizada (backend)
sistema operativo, usuarios, servicios
configuración logging
osqueryd
osquery.flags
▪ Flag para inicializar la configuración
$ osqueryd --flagfile /etc/osquery/osquery.flags
▪ Muy común usar chef/puppet para flags
$ osqueryd/osqueryi --help
osquery.conf - options
$ osquery[d-i] --config_path /path/to/osquery.conf
"options": {
"config_plugin": "filesystem",
"logger_plugin": "filesystem",
"schedule_splay_percent": "10",
"utc": "true"
...
}
osquery.conf - decorators
"decorators": {
"load": [
"SELECT uuid FROM system_info;"
],
"always": [
"SELECT pid FROM osquery_info;"
]
}
Scheduled queries
query: La consulta que se va a ejecutar
interval: Frecuencia de ejecución en segundos
platform: Limita la consulta a ésta plataforma
shard: Ejecuta la consulta en éste % de hosts
snapshot: Devuelve todos los resultados siempre
osquery.conf - schedule
"schedule": {
"example_query1": {
"query": "SELECT * FROM users;",
"interval": 60
},
"example_query2": {
"query": "SELECT * FROM processes;",
"interval": 3600
},
}
Query packs
query: La consulta que se va a ejecutar
interval: Frecuencia de ejecución en segundos
version: Versión de osquery para ejecutar
description: Descripción de la consulta
value: Detalles de por qué ésta consulta
osquery.conf - packs
"packs": {
"osquery-monitoring": "osquery-monitoring.conf",
"incident-response": "incident-response.conf",
"it-compliance": "it-compliance.conf",
"osx-attacks": "osx-attacks.conf",
"vuln-management": "vuln-management.conf"
"hardware-monitoring": "hardware-monitoring.conf",
"ossec-rootkit": "ossec-rootkit.conf",
"windows-hardening": "windows-hardening.conf",
"windows-attacks": "windows-attacks.conf"
},
osquery.conf - packs
// incident-response.conf
"queries": {
"launchd": {
"query" : "select * from launchd;",
"interval" : "3600",
"platform" : "darwin",
"version" : "1.4.5",
},
...
osqueryd watchdog
▪ Por defecto osqueryd corre en un único hilo
▪ Periódicamente se analiza el uso de CPU/memoria
▪ reiniciar si: > 60% uso de CPU durante 9 s
▪ reiniciar si: > 200M memoria asignada
API remota de osqueryd
▪ Algunas opciones de endpoint TLS disponibles
➔ Uptycs
➔ Kolide
➔ CB LiveOps
➔ AlienVault
➔ Zentral
➔ Doorman
➔ SGT
➔ Zentral
➔ Windmill
➔ Kolide
API remota de osqueryd
▪ Plugin TLS permite la gestión centralizada de osquery
--tls_client_cert Optional path to a TLS client-auth PEM certificate
--tls_client_key Optional path to a TLS client-auth PEM private key
--tls_hostname TLS/HTTPS hostname for Config, Logger, and Enroll
--tls_server_certs Optional path to a TLS server PEM certificate(s)
bundle
Endpoint TLS para osquery
...
Resultados
Logs
Configuración
TLS endpoint
Endpoint TLS básico
▪ Enroll
POST /path/to/enroll
▪ Configuración
POST /path/to/config
https://osquery.readthedocs.io/en/stable/deployment/remote/
▪ Logs
POST /path/to/log
▪ Extras
(On-demand queries)
(File carving)
...
▪ Consultas de osquery en tiempo (casi) real
➔ Los resultados se reciben inmediatamente
➔ Muy útil en investigaciones
TLS endpoint: On-demand queries
// on-demand queries osquery flags
--disable_distributed=false
--distributed_interval=10
--distributed_plugin=tls
--distributed_tls_max_attempts=3
--distributed_tls_read_endpoint=/path/to/read
--distributed_tls_write_endpoint=/path/to/write
TLS endpoint: On-demand queries
TLS Endpoint: File carving
▪ Extracción de ficheros a través de osquery
➔ Recibidos inmediatamente
➔ Ficheros o directorios completos
SELECT * FROM carves WHERE carve=1 AND path LIKE
'/home/user/%%';
TLS Endpoint: File carving
// file carving osquery flags
--disable_carver=false
--carver_disable_function=false
--carver_start_endpoint=/path/to/start
--carver_continue_endpoint=/path/to/continue
osctrl: Arquitectura de servicios
Resultados
Logs
Configuración
osctrl-tls
osctrl-admin
operator
▪ Servicio TLS endpoint para nodos de osquery
▪ En internet sin autenticación
▪ Pensado para escalar proporcionalmente
osctrl-tls
Logs / Resultados
Configuración
osctrl-admin
▪ Servicio de administración del TLS endpoint
▪ Comunicación con osctrl-tls mediante DB
▪ Puede estar en una red privada, detrás de VPN
osctrl-tlsosctrl-adminoperator
osctrl-cli
▪ Línea de comandos para osctrl
▪ Utilidad para evitar acciones directas en la DB
▪ Pensada para automatizar tareas
Demostración!
osctrl TODO
▪ Loggers para ELK, Kinesis, Kafka…
▫ Idealmente con un sistema modular
▪ Soporte de s3 para file carving
▪ Caché con Redis para osctrl-tls
▪ Documentación y tests
Bonus: osquery avanzado
▪ FIM (File Integrity Monitoring)
▪ Tablas de eventos / audit
▪ Extensiones de osquery (C/C++, Go, Python)
▪ Tablas custom con ATC (Automated Table
Construction)
Documentación osquery
▪ Wiki
https://osquery.readthedocs.io
▪ Código
https://osquery.io
https://osquery-slack.herokuapp.com
¿Alguna pregunta?
¡Muchas gracias!
@javutin @javuto

Más contenido relacionado

Similar a Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]

Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slonyJohanna Mendez
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0wcuestas
 
Conferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingConferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingHacking Bolivia
 
Mongodb administración
Mongodb administraciónMongodb administración
Mongodb administraciónJuan Ladetto
 
Depuración Avanzada Con Win Dbg Y Vs 2010 (Extendida)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Extendida)Depuración Avanzada Con Win Dbg Y Vs 2010 (Extendida)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Extendida)Pablo Alvarez Doval
 
Ansible administracion simplificada
Ansible   administracion simplificada Ansible   administracion simplificada
Ansible administracion simplificada bcoca
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magentoOnestic
 
Anatomía de un ataque a tns listener
Anatomía de un ataque a tns listenerAnatomía de un ataque a tns listener
Anatomía de un ataque a tns listeneryt f
 
Presentacion Demo Open Solaris
Presentacion Demo Open SolarisPresentacion Demo Open Solaris
Presentacion Demo Open Solarisguest926912
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)Emanuel Calvo
 
Open Source Modern Web Development
Open Source Modern Web DevelopmentOpen Source Modern Web Development
Open Source Modern Web DevelopmentJaime Irurzun
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAVíctor Bolinches
 
José Luis Verdeguer - FreePBX for fun & profit [Rooted CON 2013]
José Luis Verdeguer - FreePBX for fun & profit [Rooted CON 2013]José Luis Verdeguer - FreePBX for fun & profit [Rooted CON 2013]
José Luis Verdeguer - FreePBX for fun & profit [Rooted CON 2013]RootedCON
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sasRafael Toro
 

Similar a Javier Marcos - Detección de amenazas a escala con osquery [rooted2019] (20)

Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Replicacion con postgresql y slony
Replicacion con  postgresql y slonyReplicacion con  postgresql y slony
Replicacion con postgresql y slony
 
Scripting para Pentesters v1.0
Scripting para Pentesters v1.0Scripting para Pentesters v1.0
Scripting para Pentesters v1.0
 
Conferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical HackingConferencia Innovación en Técnicas de Ethical Hacking
Conferencia Innovación en Técnicas de Ethical Hacking
 
Mongodb administración
Mongodb administraciónMongodb administración
Mongodb administración
 
Nagios
NagiosNagios
Nagios
 
Depuración Avanzada Con Win Dbg Y Vs 2010 (Extendida)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Extendida)Depuración Avanzada Con Win Dbg Y Vs 2010 (Extendida)
Depuración Avanzada Con Win Dbg Y Vs 2010 (Extendida)
 
Ansible administracion simplificada
Ansible   administracion simplificada Ansible   administracion simplificada
Ansible administracion simplificada
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Anatomía de un ataque a tns listener
Anatomía de un ataque a tns listenerAnatomía de un ataque a tns listener
Anatomía de un ataque a tns listener
 
Presentacion Demo Open Solaris
Presentacion Demo Open SolarisPresentacion Demo Open Solaris
Presentacion Demo Open Solaris
 
Dbdeployer
DbdeployerDbdeployer
Dbdeployer
 
Trabajo zabbix
Trabajo zabbixTrabajo zabbix
Trabajo zabbix
 
LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)LSWC PostgreSQL 9.1 (2011)
LSWC PostgreSQL 9.1 (2011)
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
Open Source Modern Web Development
Open Source Modern Web DevelopmentOpen Source Modern Web Development
Open Source Modern Web Development
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
José Luis Verdeguer - FreePBX for fun & profit [Rooted CON 2013]
José Luis Verdeguer - FreePBX for fun & profit [Rooted CON 2013]José Luis Verdeguer - FreePBX for fun & profit [Rooted CON 2013]
José Luis Verdeguer - FreePBX for fun & profit [Rooted CON 2013]
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sas
 

Más de RootedCON

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRootedCON
 
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...RootedCON
 
Rooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRootedCON
 
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_RootedCON
 
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...RootedCON
 
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...RootedCON
 
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...RootedCON
 
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRootedCON
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...RootedCON
 
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRootedCON
 
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...RootedCON
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRootedCON
 
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...RootedCON
 
Rooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRootedCON
 
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRootedCON
 
Rooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRootedCON
 
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...RootedCON
 
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...RootedCON
 
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRootedCON
 
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRootedCON
 

Más de RootedCON (20)

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
 
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
 
Rooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amado
 
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
 
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
 
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
 
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
 
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
 
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
 
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molina
 
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
 
Rooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopez
 
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
 
Rooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jara
 
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
 
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
 
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
 
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
 

Último

Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 

Último (20)

Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 

Javier Marcos - Detección de amenazas a escala con osquery [rooted2019]

  • 1. Detección de amenazas a escala con osquery Javier Marcos @javutin
  • 2. ▪ Detección / IR / Ingeniería de Seguridad ▪ Open source contributor (github.com/javuto) ▪ (ex) ▪ (ahora) $ whoami
  • 3. Parte 1: Desmitificando osquery ▪ ¿Qué es osquery? ▪ Introducción al CLI: osqueryi ▪ Tablas en osquery ▪ Ejemplos Agenda
  • 4. Agenda Parte 2: Uso de osquery a escala ▪ ¿Necesitas un demonio? osqueryd! ▪ Configuración y flags ▪ Scheduled queries y packs ▪ Rendimiento
  • 5. Agenda Parte 3: Usando la API remota ▪ ¿Que es un endpoint TLS? ▪ Configuración y flags ▪ On-demand queries ▪ File carving ▪ Usando un TLS endpoint
  • 6. ¿Qué es osquery? ▪ Exploración de tu sistema operativo usando SQL ▪ Monitorización basada en sistemas HIDS 🚨 100% uso de OS API, sin forks de execve 🚨 ● https://osquery.io ● https://github.com/facebook/osquery
  • 8. ¿Por qué osquery? ▪ ¿Qué hosts corporativos tienen instalada la extensión de navegador abc123? ▪ ¿Cuántos descriptores de archivos se abrieron ayer por hora en los sistemas de producción? ▪ ¿Hay alguna máquina enrutando VPN a LAN?
  • 9. ¿Por qué usar SQL? ▪ Los conceptos básicos de SQL son universales ▪ El lenguaje SQL es muy popular entre devs y administradores de sistema SELECT pid,name,uid FROM processes
  • 10. ¿Por qué usar SQL? SELECT pid,name,uid FROM processes [concepto]
  • 11. ¿Por qué usar SQL? SELECT pid,name,uid FROM processes [atributos] [concepto]
  • 12. ¿Por qué usar SQL? SELECT pid,name,uid FROM processes WHERE uid != 0 [restricciones] [concepto][atributos]
  • 13. ¿Por qué usar SQL? WHERE uid != 0 [join] JOIN users ON processes.uid=users.uid SELECT pid,name,uid FROM processes [concepto][atributos] [restricciones]
  • 14. osqueryi ▪ CLI y shell interactiva para lanzar consultas y ver resultados ▪ Para explorar un host local y manualmente ▪ Una vez definidas las consultas, se pasa a la automatización https://osquery.readthedocs.io/en/stable/introduction/using-osqueryi/
  • 15. osquery> .help Welcome to the osquery shell. Please explore your OS! You are connected to a transient 'in-memory' virtual database. .all [TABLE] Select all from a table .bail ON|OFF Stop after hitting an error .echo ON|OFF Turn command echo on or off .exit Exit this program .features List osquery's features and their statuses .headers ON|OFF Turn display of headers on or off .help Show this message osqueryi basics
  • 16. => crontab => curl => curl_certificate => deb_packages => device_file => device_hash => device_partitions => disk_encryption => dns_resolvers => docker_container_labels => docker_container_mounts => docker_container_networks => docker_container_ports ... osquery> .tables => acpi_tables => apt_sources => arp_cache => augeas => authorized_keys => block_devices => carbon_black_info => carves => chrome_extensions => cpu_time => cpuid osqueryi basics
  • 17. osqueryi basics osquery> pragma table_info(‘system_info’); +-----+--------------------+---------+---------+------------+----+ | cid | name | type | notnull | dflt_value | pk | +-----+--------------------+---------+---------+------------+----+ | 0 | hostname | TEXT | 0 | | 0 | | 1 | uuid | TEXT | 0 | | 0 | | 2 | cpu_type | TEXT | 0 | | 0 | | 3 | cpu_subtype | TEXT | 0 | | 0 | | 4 | cpu_brand | TEXT | 0 | | 0 | | 5 | cpu_physical_cores | INTEGER | 0 | | 0 | | 6 | cpu_logical_cores | INTEGER | 0 | | 0 | | 7 | cpu_microcode | TEXT | 0 | | 0 |
  • 18. Tablas de osquery ▪ 229 tablas en la versión 3.3.2 ▪ 4 plataformas diferentes ▫ Mac, windows, linux y freebsd ▪ Datos fáciles de recoger y correlar https://osquery.io/schema/3.3.2
  • 19. https://osquery.io/schema/3.3.2 ▪ acpi_tables ▪ arp_cache ▪ apps ▪ authorized_keys ▪ autoexec ▪ battery ▪ block_devices ▪ browser_plugins ▪ certificates ▪ cpu_time ... ▪ cpu_info ▪ crontab ▪ cups_jobs ▪ deb_packages ▪ disk_info ▪ dns_resolvers ▪ docker_info ▪ drivers ▪ etc_hosts ▪ elf_info ... ▪ etc_services ▪ event_taps ▪ file ▪ iptables ▪ kernel_info ▪ known_hosts ▪ launchd ▪ mounts ▪ preferences ... ¡Y muchas más! Tablas de osquery
  • 20. Ejecución de tablas al invocar osquery> SELECT datetime FROM time; +----------------------+ | datetime | +----------------------+ | 2019-03-01T04:16:07Z | +----------------------+ ...
  • 21.
  • 22. Ejecución de tablas al invocar osquery> SELECT datetime FROM time; +----------------------+ | datetime | +----------------------+ | 2019-03-01T04:20:18Z | +----------------------+ ...
  • 23. Ejecución de tablas al invocar SELECT datetime FROM time; 2019-03-01T04:16:07Z ... SELECT datetime FROM time; 2019-03-01T04:20:18Z
  • 24. Tablas con parámetros osquery> SELECT directory FROM file WHERE path = ‘/etc/issue’; +-----------+ | directory | +-----------+ | /etc | +-----------+
  • 25. Tablas con parámetros osquery> SELECT md5 FROM file JOIN hash USING (path) WHERE path = ‘/etc/issue’; +----------------------------------+ | md5 | +----------------------------------+ | b954418e6a50d4d4cb8f02776d867550 | +----------------------------------+
  • 26. Ejemplos de tablas básicas osquery> SELECT * FROM rpm_packages; osquery> SELECT * FROM users; osquery> SELECT * FROM kernel_modules; osquery> SELECT * FROM startup_items;
  • 27. ¡Ejemplos! ▪ ¿Cuál es el hostname del sistema? ▪ ¿Qué usuarios hay en el sistema? ▪ ¿Qué procesos están corriendo?
  • 28. ¡Ejemplos! ▪ ¿Cuál es el hostname del sistema? ▪ ¿Qué usuarios hay en el sistema? ▪ ¿Qué procesos están corriendo? SELECT hostname FROM system_info;
  • 29. ¡Ejemplos! ▪ ¿Cuál es el hostname del sistema? ▪ ¿Qué usuarios hay en el sistema? ▪ ¿Qué procesos están corriendo? SELECT hostname FROM system_info; SELECT uid, username FROM users;
  • 30. ¡Ejemplos! ▪ ¿Cuál es el hostname del sistema? ▪ ¿Qué usuarios hay en el sistema? ▪ ¿Qué procesos están corriendo? SELECT hostname FROM system_info; SELECT uid, username FROM users; SELECT pid, name, path FROM processes;
  • 31. ¡Ejemplos! ▪ ¿Cuál es el usuario y la shell de los procesos que están corriendo?
  • 32. ¡Ejemplos! ▪ ¿Cuál es el usuario y la shell de los procesos que están corriendo? SELECT p.pid, p.name, p.path, u.username, u.shell FROM processes AS p JOIN users AS u ON p.uid = u.uid;
  • 33. El demonio osqueryd ▪ Init, systemd, launchd, servicio windows ▪ Ejecución de queries programadas ▪ Logs de estado y resultados ▪ Muchísimas opciones de configuración https://osquery.readthedocs.io/en/stable/introduction/using-osqueryd/
  • 34. El demonio osqueryd casos de uso para respuesta a incidentes gestión centralizada (backend) sistema operativo, usuarios, servicios configuración logging osqueryd
  • 35. osquery.flags ▪ Flag para inicializar la configuración $ osqueryd --flagfile /etc/osquery/osquery.flags ▪ Muy común usar chef/puppet para flags $ osqueryd/osqueryi --help
  • 36. osquery.conf - options $ osquery[d-i] --config_path /path/to/osquery.conf "options": { "config_plugin": "filesystem", "logger_plugin": "filesystem", "schedule_splay_percent": "10", "utc": "true" ... }
  • 37. osquery.conf - decorators "decorators": { "load": [ "SELECT uuid FROM system_info;" ], "always": [ "SELECT pid FROM osquery_info;" ] }
  • 38. Scheduled queries query: La consulta que se va a ejecutar interval: Frecuencia de ejecución en segundos platform: Limita la consulta a ésta plataforma shard: Ejecuta la consulta en éste % de hosts snapshot: Devuelve todos los resultados siempre
  • 39. osquery.conf - schedule "schedule": { "example_query1": { "query": "SELECT * FROM users;", "interval": 60 }, "example_query2": { "query": "SELECT * FROM processes;", "interval": 3600 }, }
  • 40. Query packs query: La consulta que se va a ejecutar interval: Frecuencia de ejecución en segundos version: Versión de osquery para ejecutar description: Descripción de la consulta value: Detalles de por qué ésta consulta
  • 41. osquery.conf - packs "packs": { "osquery-monitoring": "osquery-monitoring.conf", "incident-response": "incident-response.conf", "it-compliance": "it-compliance.conf", "osx-attacks": "osx-attacks.conf", "vuln-management": "vuln-management.conf" "hardware-monitoring": "hardware-monitoring.conf", "ossec-rootkit": "ossec-rootkit.conf", "windows-hardening": "windows-hardening.conf", "windows-attacks": "windows-attacks.conf" },
  • 42. osquery.conf - packs // incident-response.conf "queries": { "launchd": { "query" : "select * from launchd;", "interval" : "3600", "platform" : "darwin", "version" : "1.4.5", }, ...
  • 43. osqueryd watchdog ▪ Por defecto osqueryd corre en un único hilo ▪ Periódicamente se analiza el uso de CPU/memoria ▪ reiniciar si: > 60% uso de CPU durante 9 s ▪ reiniciar si: > 200M memoria asignada
  • 44. API remota de osqueryd ▪ Algunas opciones de endpoint TLS disponibles ➔ Uptycs ➔ Kolide ➔ CB LiveOps ➔ AlienVault ➔ Zentral ➔ Doorman ➔ SGT ➔ Zentral ➔ Windmill ➔ Kolide
  • 45. API remota de osqueryd ▪ Plugin TLS permite la gestión centralizada de osquery --tls_client_cert Optional path to a TLS client-auth PEM certificate --tls_client_key Optional path to a TLS client-auth PEM private key --tls_hostname TLS/HTTPS hostname for Config, Logger, and Enroll --tls_server_certs Optional path to a TLS server PEM certificate(s) bundle
  • 46. Endpoint TLS para osquery ... Resultados Logs Configuración TLS endpoint
  • 47. Endpoint TLS básico ▪ Enroll POST /path/to/enroll ▪ Configuración POST /path/to/config https://osquery.readthedocs.io/en/stable/deployment/remote/ ▪ Logs POST /path/to/log ▪ Extras (On-demand queries) (File carving) ...
  • 48. ▪ Consultas de osquery en tiempo (casi) real ➔ Los resultados se reciben inmediatamente ➔ Muy útil en investigaciones TLS endpoint: On-demand queries
  • 49. // on-demand queries osquery flags --disable_distributed=false --distributed_interval=10 --distributed_plugin=tls --distributed_tls_max_attempts=3 --distributed_tls_read_endpoint=/path/to/read --distributed_tls_write_endpoint=/path/to/write TLS endpoint: On-demand queries
  • 50. TLS Endpoint: File carving ▪ Extracción de ficheros a través de osquery ➔ Recibidos inmediatamente ➔ Ficheros o directorios completos SELECT * FROM carves WHERE carve=1 AND path LIKE '/home/user/%%';
  • 51. TLS Endpoint: File carving // file carving osquery flags --disable_carver=false --carver_disable_function=false --carver_start_endpoint=/path/to/start --carver_continue_endpoint=/path/to/continue
  • 52. osctrl: Arquitectura de servicios Resultados Logs Configuración osctrl-tls osctrl-admin operator
  • 53. ▪ Servicio TLS endpoint para nodos de osquery ▪ En internet sin autenticación ▪ Pensado para escalar proporcionalmente osctrl-tls Logs / Resultados Configuración
  • 54. osctrl-admin ▪ Servicio de administración del TLS endpoint ▪ Comunicación con osctrl-tls mediante DB ▪ Puede estar en una red privada, detrás de VPN osctrl-tlsosctrl-adminoperator
  • 55. osctrl-cli ▪ Línea de comandos para osctrl ▪ Utilidad para evitar acciones directas en la DB ▪ Pensada para automatizar tareas
  • 57. osctrl TODO ▪ Loggers para ELK, Kinesis, Kafka… ▫ Idealmente con un sistema modular ▪ Soporte de s3 para file carving ▪ Caché con Redis para osctrl-tls ▪ Documentación y tests
  • 58. Bonus: osquery avanzado ▪ FIM (File Integrity Monitoring) ▪ Tablas de eventos / audit ▪ Extensiones de osquery (C/C++, Go, Python) ▪ Tablas custom con ATC (Automated Table Construction)
  • 59. Documentación osquery ▪ Wiki https://osquery.readthedocs.io ▪ Código https://osquery.io https://osquery-slack.herokuapp.com