From f6b6c7ea115116c8fa3c36ba63500eb369902aa3 Mon Sep 17 00:00:00 2001 From: Thorsten Sick Date: Thu, 28 Apr 2022 12:23:18 +0200 Subject: [PATCH 1/6] Newest presentation update --- presentations/gpn_2022/_static/mod.css | 3 + .../gpn_2022/_static/pdf_contents.png | Bin 0 -> 42713 bytes .../gpn_2022/_static/pdf_details.png | Bin 0 -> 68204 bytes presentations/gpn_2022/conf.py | 3 +- presentations/gpn_2022/index.rst | 367 +++++++++++++++--- 5 files changed, 327 insertions(+), 46 deletions(-) create mode 100644 presentations/gpn_2022/_static/mod.css create mode 100644 presentations/gpn_2022/_static/pdf_contents.png create mode 100644 presentations/gpn_2022/_static/pdf_details.png diff --git a/presentations/gpn_2022/_static/mod.css b/presentations/gpn_2022/_static/mod.css new file mode 100644 index 0000000..6408c47 --- /dev/null +++ b/presentations/gpn_2022/_static/mod.css @@ -0,0 +1,3 @@ +:root { + --r-heading-text-transform: none; + } \ No newline at end of file diff --git a/presentations/gpn_2022/_static/pdf_contents.png b/presentations/gpn_2022/_static/pdf_contents.png new file mode 100644 index 0000000000000000000000000000000000000000..886cb2ce8e58645c0bcbbfb8bd3731f49e3c5445 GIT binary patch literal 42713 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 PKjLSkPsg6T_UL~A(D+sY literal 0 HcmV?d00001 diff --git a/presentations/gpn_2022/conf.py b/presentations/gpn_2022/conf.py index c04afe5..863ac2d 100644 --- a/presentations/gpn_2022/conf.py +++ b/presentations/gpn_2022/conf.py @@ -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 diff --git a/presentations/gpn_2022/index.rst b/presentations/gpn_2022/index.rst index d815e74..a46fd6d 100644 --- a/presentations/gpn_2022/index.rst +++ b/presentations/gpn_2022/index.rst @@ -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. From 9f8cab40e0614a4ff89fb13462b9e7f53e5c9da8 Mon Sep 17 00:00:00 2001 From: Thorsten Sick Date: Thu, 28 Apr 2022 12:23:31 +0200 Subject: [PATCH 2/6] AFK message added --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 4bcfa67..fcdbfe6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,8 @@ ![main branch test](https://github.com/avast/PurpleDome/actions/workflows/main_by_makefile.yml/badge.svg?branch=main) ![develop branch test](https://github.com/avast/PurpleDome/actions/workflows/develop_by_makefile.yml/badge.svg?branch=develop) +**Important: During the next months the main developer is mostly AFK. There are fallback maintainers, but you can expect reduced response time. Please plan accordingly, fork and cooperate. Thanks** + # PurpleDome creates simulated systems which hack each other It creates several virtual machines to simulate a target network. A Kali attacker will be spawned and use configured attacks to blast at the targets. Those attacks can be Kali command line tools, Caldera abilities or Metasploit tools. From 4f69f7144b28e93f1c3e78cb6989b779fbb89324 Mon Sep 17 00:00:00 2001 From: Thorsten Sick Date: Fri, 29 Apr 2022 11:39:54 +0200 Subject: [PATCH 3/6] Presentation content update --- presentations/gpn_2022/index.rst | 41 ++++++++++++++++---------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/presentations/gpn_2022/index.rst b/presentations/gpn_2022/index.rst index a46fd6d..cffc9f1 100644 --- a/presentations/gpn_2022/index.rst +++ b/presentations/gpn_2022/index.rst @@ -122,7 +122,7 @@ Vulnerabilities Anwendung ========= -Alles automatisierbar ! +...was geht rein ? Commandline ----------- @@ -131,6 +131,7 @@ Commandline ./experiment_control.py run --configfile hello_world.yaml +Dann ein paar Minuten warten Config ------ @@ -153,15 +154,14 @@ Targets Erzeugt mittels Vagrant oder als bestehende VM -Der Lauf --------- - -.. todo - Ergebnisse eines Purple Dome Laufs ================================== -Ergebnis sind sehr viele Sensor Logs und ein PDF Dokument für die Manager. +Was raus kommt: + +* sehr viele Sensor Logs +* Angriffs log +* und ein PDF Dokument für die Manager Manager lesbares PDF - Übersicht -------------------------------- @@ -231,18 +231,22 @@ Hydra Angriff "host":{"hostname":"target3"},} -Purple Dome: Wie funktioniert es ? -================================== +Purple Dome: Was im Hintergrund geschieht +========================================= -.. todo +Nach dem Start von der Kommandozeile startet die vollautomatisierte Simulations Umgebung -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. +Starten der Maschinen +===================== + +Targets und Attacker werden gestartet + Vulnerabilities nach Wunsch =========================== @@ -255,7 +259,6 @@ Sensoren werden automatisch auf den Zielen installiert. Ab jetzt wird aufgezeich Welche Sensoren auf den Targets laufen kann man per config und Plugin definieren - Durchführen der Angriffe ======================== @@ -291,14 +294,10 @@ 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 ? -=============================== - -Gar nicht. Ist kostenlos und Open Source - -https://github.com/avast/PurpleDome +Mehr Ideen bitte ! +------------------ -(beim Verwenden in akademischen Arbeiten, bitte den BibTeX snippet nutzen !) +Das war sicher noch nicht alles Erweiterbarkeit dank Plugins ============================ @@ -308,6 +307,7 @@ Viel Funktionalität ist als Plugin implementiert * Angriffe * Vulnerabilities * Integration von Sensoren in die Targets +* Unterstützte VMs Beispiel Sensor: Linux Filebeat =============================== @@ -338,7 +338,6 @@ Install 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 ----- From 71e52727f7643c983f7b40f06d145ef610c95b05 Mon Sep 17 00:00:00 2001 From: Thorsten Sick Date: Fri, 13 May 2022 10:51:09 +0200 Subject: [PATCH 4/6] Requirements update --- presentations/gpn_2022/index.rst | 9 ++++++++- requirements.txt | 11 ++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/presentations/gpn_2022/index.rst b/presentations/gpn_2022/index.rst index cffc9f1..277a287 100644 --- a/presentations/gpn_2022/index.rst +++ b/presentations/gpn_2022/index.rst @@ -13,6 +13,13 @@ Spoiler Es geht um ein neues Tool, das Angriffe simuliert, damit man seine Verteidigungs-Technologie mal in Aktion sehen kann. +Ich +=== + +* Thorsten Sick +* Erfahrener Entwickler einiger Angriffs Analyse Tools und MW Erkennungs Technologien +* u.a. viele Beiträge zur Cuckoo Sandbox + Da hat man mal richtig in security investiert ... ================================================= @@ -122,7 +129,7 @@ Vulnerabilities Anwendung ========= -...was geht rein ? +Ein gut automatisierbares Tool mit commandline und config files Commandline ----------- diff --git a/requirements.txt b/requirements.txt index b28ed6e..fd551ed 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,14 +10,15 @@ paramiko==2.10.1 pymetasploit3==1.0.3 pylint==2.12.2 flask==2.0.3 -pydantic==1.9.0 +pydantic dotmap==1.3.26 # Sphinx stuff -sphinx-argparse==0.3.1 -sphinxcontrib-autoyaml==0.6.1 -sphinx-pyreverse==0.0.17 -sphinxcontrib.asciinema==0.3.3 +sphinx>=4.2.0 +sphinx-argparse +sphinxcontrib-autoyaml +sphinx-pyreverse>=0.0.17 +sphinxcontrib.asciinema>=0.3.3 sphinx-revealjs # sphinx-pydantic # This one has issues that must be fixed upstream first From 6cb2a7724d513c4540d8dcf844a53b096d746698 Mon Sep 17 00:00:00 2001 From: Thorsten Sick Date: Fri, 13 May 2022 15:49:43 +0200 Subject: [PATCH 5/6] S.K. changes --- presentations/gpn_2022/index.rst | 71 ++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/presentations/gpn_2022/index.rst b/presentations/gpn_2022/index.rst index 277a287..24d7d18 100644 --- a/presentations/gpn_2022/index.rst +++ b/presentations/gpn_2022/index.rst @@ -65,6 +65,27 @@ Heute ist mehr file-less Das kann man mit dem EICAR test file nicht mehr so komfortabel nachbilden +In-memory Exploits +------------------ + +Wenn man als Angreifer ein System hacked, das nur einen Datei scanner hat, kommt man unbemerkt durch, solange man keine Datei anlegt + +LOLBins +------- + +Living-off-the-land binaries. Also zum Angriff nehmen was eh schon als Tools rumliegt. Fällt weniger auf. + +Vulnerable programme +-------------------- + +Signierte aber veraltete und verwundbare Treiber sind da ein Klassiker. Die schaffen dem Angreifer Systemrechte. + +EICAR test file für Behaviour +----------------------------- + +Es gibt einige Scripte, die um Dinge auf dem Rechner anrichten, um Behaviour Detection zu testen. +Sie haben aber eher schwankende Qualität und nicht unbedingt Aussagekraft + Leroy Jenkins: Metasploit vs. Production environment ==================================================== @@ -109,6 +130,42 @@ Angriffe * Kali command line * Caldera +Metasploit +---------- + +* Metasploit kann per implant oder exploit auf das Target kommen +* Es baut danach eine Verbindung zum Attacker auf +* und kann das System auf verschiedene Arten (meist Windows API) beeinflussen + +Caldera +------- + +* Caldera benötigt implants +* Es baut eine Verbindung zum Attacker auf +* Es beeinflusst das System vor allem über Kommandozeilen Befehle (powershell, shell) + +Kali +---- + +Die aktuell verwendeten Kali tools sind Netzwerk zentriert und dienen vor allem dazu, im Purple Dome Kontext Netzwerkprotokolle zu füllen + +(hydra, nmap) + +Mimikatz +-------- + +* Wird im Rahmen von Metasploit eingesetzt +* Extrahiert Credentials aus dem Speicher des Targets +* Bei realen Angriffen oft ein Standard-Bestandteil + +Cobalt +------ + +* Ähnlich wie Metasploit +* Wird stark von Malware Angriffen genutzt +* Benötigt eine Lizenz +* Ist (noch) nicht implementiert in Purple Dome + Sensoren ======== @@ -368,6 +425,17 @@ Collect self.get_from_machine("/tmp/filebeat_collection.json", dst) return [dst] +Weitere potentielle Sensoren +============================ + +Nicht alle sind bereits Bestandteil des Open Source projekts, mit ihnen habe ich aber "gespielt" oder werde es noch: + +* EBPF (system API monitor) +* Frida (process API monitor) +* OSQuery (system stats) +* Sysmon (von MS, auch für Linux) +* Volatility (memory forensics) + Origin story ============ @@ -383,4 +451,7 @@ https://github.com/avast/PurpleDome Bitte forken. Jetzt. +Danke +===== +Vielen Dank fürs zuhören. Und jetzt: abschalten From 7cd0d80a88b4716393eae2edde54af0f52f1d1f8 Mon Sep 17 00:00:00 2001 From: Thorsten Sick Date: Sat, 14 May 2022 11:05:37 +0200 Subject: [PATCH 6/6] Britta changes --- presentations/gpn_2022/index.rst | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/presentations/gpn_2022/index.rst b/presentations/gpn_2022/index.rst index 24d7d18..fb7694c 100644 --- a/presentations/gpn_2022/index.rst +++ b/presentations/gpn_2022/index.rst @@ -20,6 +20,12 @@ Ich * Erfahrener Entwickler einiger Angriffs Analyse Tools und MW Erkennungs Technologien * u.a. viele Beiträge zur Cuckoo Sandbox +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. + + Da hat man mal richtig in security investiert ... ================================================= @@ -86,6 +92,11 @@ EICAR test file für Behaviour Es gibt einige Scripte, die um Dinge auf dem Rechner anrichten, um Behaviour Detection zu testen. Sie haben aber eher schwankende Qualität und nicht unbedingt Aussagekraft +Behaviour und AV +---------------- + +Schon seit vielen Jahren hat jede ernst zu nehmende AV Software eine Behaviour Komponente + Leroy Jenkins: Metasploit vs. Production environment ==================================================== @@ -436,11 +447,6 @@ Nicht alle sind bereits Bestandteil des Open Source projekts, mit ihnen habe ich * Sysmon (von MS, auch für Linux) * Volatility (memory forensics) -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. - Fragen ? ========