Ponente | Temática |
---|---|
Javier Marcos de Prado | Digital Forensics and Incident Response (DFIR) |
🔗 | https://www.incibe.es/summer-bootcamp/sbc2021/programa/TC6 |
📁 | https://docs.google.com/presentation/d/1oodsJSDxfStu288sPkf5_mzGR1sz6R1VCXU_PvAZjLY/edit?usp=sharing |
-
Introducción a la necesidad de desplegar infraestructura de detección, tanto en entornos corporativos como de producción.
-
Enumeración de los pasos necesarios para la automatización y despliegue de osquery como agente dentro de una red distribuida y escalable.
-
Muestra del servidor centralizado o TLS endpoint (osctrl), y la configuración y uso de sus diferentes componentes para una detección de amenazas y para la respuesta a incidentes y la gestión de flotas.
Todas las demostraciones y ejemplos del taller se realizarán en directo pero en el caso de querer seguir las mismas de un modo interactivo, se pueden seguir las indicaciones mediantes el uso de osquery (cliente) y osctrl (servidor).
💥 Instalación de osquery
Se recomienda la descarga e instalación de osquery, version 4.9.0
, siendo ésta la última versión disponible en el momento de escribir esta guía. Para su instalación, se puede descargar para múltiples plataformas.
También es posible la instalación a través de gestores de paquetes en macOS, Windows, diferentes versiones de Linux (RPM y DEB) y FreeBSD:
▫️ macOS usando brew
brew install --cask osquery
▫️ Windows usando chocolatey
choco install osquery
▫️ Debian Linux (DEB)
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys $OSQUERY_KEY
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt-get update
sudo apt-get install osquery
▫️ RPM Linux
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
sudo yum-config-manager --enable osquery-s3-rpm-repo
sudo yum install osquery
▫️ FreeBSD
cd /usr/ports/sysutils/osquery && make install clean
pkg install osquery
portmaster sysutils/osquery
💥 Despliegue de osctrl
La instalación de osctrl
en un entorno de desarrollo puede realizarse de varias formas. El resultado será una instancia 100% funcional con la que seguir las indicaciones y ejemplos del taller.
El primer paso es descarga o clonado del repositorio https://github.com/jmpsec/osctrl:
git clone https://github.com/jmpsec/osctrl
▫️ Despliegue con Docker
Para desplegar osctrl
usando Docker la mejor opción es la utilidad dockerize.sh
ya que realiza algunas tareas de configuración previas al lanzamiento de osctrl
. También se puede utilizar el Makefile y el comando make docker_all
para simplificar las cosas, o directamente dockerize.sh
:
./deploy/docker/dockerize.sh -u -b -f
El comando se encargará del build (-b
) y ejecución (-u
), con creación de nuevos certificados y configuración (-f
).
Para más informacion sobre dockerize.sh
se puede utilizar -h
para una ayuda detallada.
Una vez finalizado, la nueva instancia de osctrl
con Docker estará disponible en https://localhost:8443 con usuario admin
y password admin
.
▫️ Despliegue con Vagrant
El despliegue de osctrl
con Vagrant es básicamente lo mismo que el despliegue en una máquina virtual convencional, pero con una configuración pre-establecida a través del Vagrantfile. El comando para la creación del entorno es el siguiente:
vagrant up
Una vez finalizado, la nueva instancia de osctrl
con Vagrant estará disponible en https://10.10.10.5:8443 con usuario admin
y password admin
. Esa dirección IP está establecida por defecto puede personalizar sin hacer cambios mediante variables de entorno. Por ejemplo, si se quisiera cambiar la IP a 1.2.3.4
, el comando a utilizar sería el siguiente:
OSCTRL_IP_ADDRESS="1.2.3.4" vagrant up
▫️ Despliegue standalone en Ubuntu 20.04
La instalación estándar de osctrl
puede hacerse en un sistema con Ubuntu 20.04, teniendo en cuenta que es necesaria la dirección IP del sistema, en el caso de ser 1.2.3.4
, el comando será el siguiente:
./deploy/provision.sh --nginx --postgres --enroll --all-hostname "1.2.3.4" --password "adminUbuntu"
Una vez finalizada la instalación y configuración de osctrl
y sus componentes, estará disponible en https://1.2.3.4:8443 con usuario admin
y password adminUbuntu
.
Para más informacion sobre provision.sh
se puede utilizar -h
para una ayuda detallada.
osquery tables
osquery> .tables
Show table in osquery
osquery> pragma table_info("processes");
osquery> .mode line
osquery> select * from processes limit 1;