Newest presentation update

polishing2
Thorsten Sick 3 years ago
parent 297d746ef2
commit f6b6c7ea11

@ -0,0 +1,3 @@
:root {
--r-heading-text-transform: none;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

@ -46,6 +46,7 @@ revealjs_script_conf = {
"history": True,
"center": True,
"transition": "slide",
"slideNumber": False
}
revealjs_script_plugins = [
{
@ -63,7 +64,7 @@ revealjs_script_plugins = [
]
revealjs_css_files = [
"revealjs4/plugin/highlight/zenburn.css",
"custom.css",
"mod.css",
]
# Graphviz

@ -8,79 +8,288 @@ Purple Dome - Kein Schwein greift mich an
:glob:
:hidden:
Spoiler
=======
Es geht um ein neues Tool, das Angriffe simuliert, damit man seine Verteidigungs-Technologie mal in Aktion sehen kann.
Kein Schwein greif mich an
Da hat man mal richtig in security investiert ...
=================================================
Die Firma hat jetzt:
* SIEM (Security Information and Event Management)
* ein SOC (Security Operation Center) Team
* eine CISO (Chief Information Security Officer)
aber....
Was ist jetzt das Problem ?
===========================
Niemand weiss ob alles funktioniert oder wie die Logs eines Angriffs aussehen....
Mehr Probleme
-------------
...Oder ob die Sensoren mit dem OS Update noch tun wie erwartet...
Noch mehr Probleme
---------------l---
...Oder ob die Logs dann minimal anders aussehen und die Regexe nicht greifen...
Sehr viel mehr Probleme
-----------------------
...Oder ob die selbstgeschriebenen Erkennungsregeln überhaupt was erkennen...
Denn: Kein Schwein greift mich an !
===================================
Früher war mehr EICAR (test-virus Datei). Damit stupst man seine File-Erkennung und schaut ob die noch lebt.
Heute ist mehr file-less
========================
* In-memory Exploits
* Admin tools (LOLBINs)
* harmlose Programme, die aber vulnerabel sind.
Das kann man mit dem EICAR test file nicht mehr so komfortabel nachbilden
Leroy Jenkins: Metasploit vs. Production environment
====================================================
Jetzt kann man selbst mit Metasploit und Mimikatz seine eigene Produktionsumgebung angreifen und schauen, was passiert. Ist dann halt kacke.
Lösung
======
Das Open Source Projekt Purple Dome kann eine in VM simulierte Umgebung von Target Maschinen hochziehen und diese dann gescripted angreifen.
Kann nix passieren
------------------
Da alles in der simulierten Umgebung läuft, kann nix passieren
Lieber trotzdem vom Firmen Netz trennen.
Alles wird aufgezeichnet !
==========================
Habe mir gerade einen neuen Event Logger auf meinem Server installiert. Die Log Details hochgedreht... und jetzt greift mich keiner an.
Sensoren auf den Targets oder im Netz zeichnen den Angriff dann auf
Keine Ahnung ob die Sensoren tun ?
----------------------------------
Wir überhaupt mitgelogged was wichtig ist ?
PurpleDome macht File-less Angriff handhabbarer
===============================================
Daten habe ich jetzt ....aber Erkennungslogik ?
-----------------------------------------------
Wir brauchen das...
Nach was greppe ich denn nun in den Logs ?
* Zum Entwickeln der Sensoren
* Zum Entwickeln der Logik
* Zum Testen der Sensoren (unter leicht modifizierten Umständen)
Viel gemacht aber alles ungetestet
==================================
Was kann das ?
==============
Aktuell als Beispiele vorhanden sind:
Angriffe
========
Die einzige Lösung: Ein Angreifer muss her. Vielleicht nicht auf mein Produktivsystem.
* Metasploit
* Kali command line
* Caldera
Simulierte Angriffe
Sensoren
========
* Logstash/filebeat
Virtuelle Maschinen
===================
Purple Dome erlaubt es, Angriffe zu simulieren. Scriptbar und als Python Pluins
* Vagrant
* standalone VirtualBox
Metasploit
----------
Vulnerabilities
===============
* RDP
* Schwache User Passwörter
Anwendung
=========
Alles automatisierbar !
Commandline
-----------
.. revealjs-code-block:: console
Caldera
./experiment_control.py run --configfile hello_world.yaml
Config
------
.. revealjs-code-block:: yaml
:linenos:
:data-line-numbers: 1|3|6|8
caldera_attacks:
linux:
- "bd527b63-9f9e-46e0-9816-b8434d2b8989"
windows:
plugin_based_attacks:
linux:
- hydra
Targets
-------
Kali Linux commandline
----------------------
Erzeugt mittels Vagrant oder als bestehende VM
Der Lauf
--------
.. todo
Simulierte Ziele
================
Ergebnisse eines Purple Dome Laufs
==================================
Die Angriffe gehen nicht auf das Produktivsystem, sondern auf VM targets
Ergebnis sind sehr viele Sensor Logs und ein PDF Dokument für die Manager.
Sensoren nach Wunsch
====================
Manager lesbares PDF - Übersicht
--------------------------------
Welche Sensoren auf den Targets laufen kann man per config und Plugin definieren
Ein PDF zum entspannt lesen
-
.. revealjs-section::
:data-background-image: _static/pdf_contents.png
:data-background-size: contain
Manager PDF - Angriffsdetails
-----------------------------
Mit Details
_
.. revealjs-section::
:data-background-image: _static/pdf_details.png
:data-background-size: contain
Angriffs Log
------------
Ein Auszug
.. revealjs-code-block:: json
:linenos:
:data-line-numbers: 1,2|3,4|5|6,7|8,9,10,11,12,13|14
"timestamp": "12:10:09.006964",
"timestamp_end": "12:15:23.064067",
"type": "attack",
"sub_type": "caldera",
"source": "http://192.168.178.126:8888/",
"target_paw": "target3",
"target_group": "red_linux",
"ability_id": "bd527b63-9f9e-46e0-9816-b8434d2b8989",
"hunting_tag": "MITRE_T1033",
"name": "Current User",
"description": "Obtain user from current session",
"tactics": "System Owner/User Discovery",
"tactics_id": "T1033",
"result": [ "vagrant" ]
Sensor Log (Filebeat)
---------------------
Hydra Angriff
.. revealjs-code-block:: json
:linenos:
:data-line-numbers: 1|2,3|4|5,6,7,8
{"@timestamp":"2022-04-07T10:18:37.907Z",
"message":"Apr 7 10:18:37 target3 sshd[3113]:
Failed password for invalid user nonexistend_user_1 from 192.168.178.126 port 44924 ssh2",
"host":{"hostname":"target3"},},
{"@timestamp":"2022-04-07T10:18:38.907Z",
"message":"Apr 7 10:18:38 target3 sshd[3113]:
Failed password for invalid user nonexistend_user_1 from 192.168.178.126 port 44924 ssh2",
"host":{"hostname":"target3"},}
Purple Dome: Wie funktioniert es ?
==================================
.. todo
Purple Dome ist eine vollautomatisierte Simulations Umgebung, in der man die File-less Angriffe nachvollziehen kann.
Aufsetzen der Ziele
-------------------
Virtuelle Maschinen mit dem Ziel OS werden aufgesetzt. So können wir unsere Sensoren mit verschiedenen OS Versionen testen.
Vulnerabilities nach Wunsch
===========================
Damit die Angriffe auch etwas Schaden hinterlassen, kann man per Plugins auch erst mal Vulnerabilities auf den Targets installieren.
Targets nach Wunsch
===================
Aufsetzen der Sensoren
======================
Erzeugt mittels Vagrant oder als bestehende VM
Sensoren werden automatisch auf den Zielen installiert. Ab jetzt wird aufgezeichnet
Wie das Ganze dann aussieht
===========================
Welche Sensoren auf den Targets laufen kann man per config und Plugin definieren
Resultat: PDF
-------------
Resultat: Sensordaten
---------------------
Durchführen der Angriffe
========================
Resultat: Angriffsdaten
-----------------------
Welche Angriffe durchgeführt werden bestimmt das Skript
Input: Commandline
------------------
* Caldera
* Metasploit
* Kali tools
Input: Config
-------------
Sammeln der Sensor Daten
========================
Daten aller Sensoren werden gesammelt. Zusammen mit einem Log der Angriffe.
Wem bringt PurpleDome sonst noch was ?
======================================
Erste Ideen kam schon an:
Schulungen
----------
Security Schulungen basierend auf Purple Dome. Besonders im Bereich Forensik
Trainings
---------
Blue vs Red Team Trainings und Erzeugen von Übungsdaten
CTF
---
Capture the Flag Herausforderungen können auf Purple Dome basieren.
Dafür muß aber das Threat Modell angepasst werden.
Wo kann ich PurpleDome kaufen ?
===============================
@ -89,15 +298,83 @@ Gar nicht. Ist kostenlos und Open Source
https://github.com/avast/PurpleDome
Bitte forken. Jetzt.
(beim Verwenden in akademischen Arbeiten, bitte den BibTeX snippet nutzen !)
Fragen ?
Erweiterbarkeit dank Plugins
============================
Viel Funktionalität ist als Plugin implementiert
* Angriffe
* Vulnerabilities
* Integration von Sensoren in die Targets
Beispiel Sensor: Linux Filebeat
===============================
Boilerplate
-----------
.. revealjs-code-block:: python
:linenos:
:data-line-numbers: 1|2|3|4,5,6
class LinuxFilebeatPlugin(SensorPlugin):
name = "linux_filebeat"
description = "Linux filebeat plugin"
required_files = ["filebeat.conf",
"filebeat.yml",
]
Install
-------
.. revealjs-code-block:: python
:linenos:
:data-line-numbers: 1|3,4
def prime(self):
fb_file = "filebeat-7.15.2-amd64.deb"
self.run_cmd(f"curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/{fb_file}")
self.run_cmd(f"sudo dpkg -i {fb_file}")
Start
-----
.. revealjs-code-block:: python
:linenos:
:data-line-numbers: 1|2,3
def start(self):
self.run_cmd("sudo filebeat modules enable system iptables")
self.run_cmd("sudo filebeat setup --pipelines --modules iptables,system,")
Collect
-------
.. revealjs-code-block:: python
:linenos:
:data-line-numbers: 1|2,3|4
def collect(self, path):
dst = os.path.join(path, "filebeat.json")
self.get_from_machine("/tmp/filebeat_collection.json", dst)
return [dst]
Origin story
------------
============
Purple Dome ist für unsere Security Firma ein weiteres Tool, um unsere eigenen Produkte zu stress testen. Es ging ca. 1 Jahr Entwicklungszeit da rein.
* Sensoren eines Behaviour Blockers müssen mit jedem OS update neu getestet werden
* Jeder neue Angriff muss verifiziert werden...
Fragen ?
========
Mastodon: @thorsi@chaos.social
https://github.com/avast/PurpleDome
Bitte forken. Jetzt.
Also wurde automatisiert.

Loading…
Cancel
Save