Ingo: Ich bin jetzt hier auf der CubeCon 2024 in Paris. Bei mir ist Yannick Hollenbach. Hallo Yannick.
Jannik: Moin.
Ingo: Und du machst bei einem Projekt mit, was sich Secure Code Box nennt.
Ingo: Was ist das denn? Was macht ihr da?
Jannik: Ja genau. Erstmal danke, dass ich da sein darf. Die Secure Code Box ist ein Tool,
Jannik: um auf Kubernetes Security Scanner, im speziellen Open-Source-Security-Scanning-Tools
Jannik: zu orchestrieren und die Ergebnisse zu vereinheitlichen und dann einheitlich
Jannik: verarbeiten und auswerten zu können,
Jannik: sodass man jetzt quasi eine ganze Reihe an verschiedenen Scannern quasi gleichmäßig,
Jannik: quasi mit einem gleichen Konfigurationsformat konfigurieren kann oder zumindest
Jannik: anlegen kann und die Ergebnisse dann einheitlich verarbeiten kann.
Jannik: Das heißt, wir haben so eine Parser-Ebene, die diese ganzen Ebenen und die ganzen
Jannik: Formate von den einzelnen Scannern in ein einheitliches Format übersetzt,
Jannik: sodass man die Findings dann quasi in einem Format zurückbekommt.
Jannik: Und auch gleichzeitig bietet die Secure-Root-Box eine ganze Reihe an sogenannten Hooks an.
Jannik: Das sind so Integrationspunkte, wo man diese Findings dann auch noch weiterschicken kann,
Jannik: um sie dann automatisch in Alerts, sowas wie in Slack reinzuschicken,
Jannik: um dann automatisch mitzubekommen, dass da jetzt ein neues Finding hochgekommen
Jannik: ist oder sie auch in andere Open-Source-Finding-Management-Tools hochzuladen.
Jannik: Also das Haupt-Tool, was dabei bei uns im Fokus steht, ist das OWASP-Effect-Lojo.
Ingo: Das was?
Jannik: Ein weiteres OWASP-Tool, also die Secure-Code-Box selber, ist auch ein OWASP-Projekt,
Jannik: also vom Open Web Application Security Project.
Ingo: Okay. Oder Program.
Jannik: Die OWASP hat sich auch irgendwie letztens umbenannt. Das macht das jetzt auch
Jannik: nochmal komplizierter. Ich glaube aber, das...
Jannik: Ja. Aber das OWASP-Defect-Dojo, das ist jetzt quasi eine webbasierte Plattform.
Ingo: Da steckt ja auch ein WOSP drin, ne? Also das ist Logo.
Jannik: Das ist so ein Wortspiel, genau. Die OWASP, der vielleicht nochmal als Erklärung
Jannik: ist, eine Open-Source-Security-Organisation.
Ingo: Okay.
Jannik: Vielleicht ganz leicht vergleichbar wie jetzt sowas die Linux Foundation,
Jannik: aber quasi rein fokussiert quasi auf Web-Application-Security-Tools.
Jannik: Also das bekannteste aus dem OWASP-Katalog ist wahrscheinlich dieses OWASP Top 10.
Jannik: Aber auch noch andere Projekte drin, oder wie jetzt zum Beispiel,
Jannik: das ist jetzt auch aus komplett eigenem Interesse hier nochmal genamedropped,
Jannik: der Overspew-Shop, einfach eine Vulnerable-Web-Application,
Jannik: für Security-Trainings. Name-Droppe ich jetzt mal, weil ich da auch mit dran wirke.
Ingo: Okay, die ist also von vornherein kaputt, mit der kann man dann testen,
Ingo: oder wie funktioniert das?
Jannik: Genau, also es ist hauptsächlich dafür, also jetzt wechseln wir ja gerade komplett
Jannik: das Thema, weil es geht von der Security-Coupon weg, aber da rede ich natürlich auch gern drüber.
Ingo: Ja, ich komme mir da drauf zurück.
Jannik: Also der Over-Stu-Shop ist genau eine bewusst,
Jannik: kaputtgeschriebene Anwendung, um dann selber mal richtig zu lernen,
Jannik: wie man so eine Anwendung denn hacken kann und auch einfach jetzt für,
Jannik: ich würde sagen, das Target Audience ist schon ein Anwendungsentwickler,
Jannik: quasi zu verstehen wie diese Lücken aussehen und dann innerhalb von Trainings
Jannik: oder auch einfach komplett selber drauf loszuhacken zu schauen quasi,
Jannik: was denn da für Vulnabilities drin sind,
Jannik: und genau diese OWASP ist jetzt einfach so eine Parent-Organisation,
Jannik: in der diese Projekte dann organisiert sind,
Jannik: die die bestimmte Prinzipien verfolgt und einfach versucht,
Jannik: einen Fokus auf offene Projekte zu legen, um Software Security weiter voranzubringen.
Ingo: Open Worldwide Application Security Project.
Jannik: Ich glaube, das Worldwide ist neu, weil ich glaube, es hieß früher Open Web
Jannik: Application Security Project, aber das fanden sie irgendwann zu eingrenzend
Jannik: und sind jetzt lieber auf Worldwide gegangen.
Ingo: Genau, also so steht es hier auf der Webseite. Okay, dann haben wir jetzt geklärt,
Ingo: was OWASP ist und du durftest nochmal in ein neues Projekt gehen.
Ingo: Jetzt kommen wir wieder zurück zu dieser Secure Code Box.
Ingo: Ist das jetzt irgendein Container, den ich irgendwo hinschmeiß und dann sage
Ingo: ich da, scan mal alles oder wie funktioniert das?
Jannik: Also wie das im Prinzip funktioniert ist, die Secure Code Box ist ein sogenannter
Jannik: Kubernetes Operator und Operator sind jetzt quasi mal versucht einfach zu erklären,
Jannik: ist eine Art Kubernetes zu erweitern, um mit anderen Ressourcen auch umgehen zu können.
Jannik: In unserem Fall sind das primär sogenannte Security-Scans. Das heißt,
Jannik: was man denn tut, ist, anstatt zu Kubernetes hinzugehen und zu sagen,
Jannik: hallo, Kubernetes, starte mir bitte einen Container, ist, dass du dann durch
Jannik: hingehen kannst und sagen kannst, hallo, Kubernetes,
Jannik: starte mir bitte einen, zum Beispiel einen Nmap-Scan.
Jannik: Und was die Secure Code Box denn tut, ist diesen Scan quasi zu übersetzen in
Jannik: Sachen, die Kubernetes denn versteht, also in dem Fall einen Container,
Jannik: in dem ein NMAP drinläuft und der dann ein bestimmtes Target scannt,
Jannik: und was die Secure Code Box denn auch noch macht, ist dann quasi auch noch Sachen,
Jannik: die wir quasi sagen, die gehören dazu,
Jannik: nämlich jetzt quasi diese Finding-Auswertung oder zumindest diese Finding-Unification zu machen,
Jannik: diese Findings, die dann der NMAP ausgespuckt hat von so einem sehr NMAP-spezifischen
Jannik: XML-Format in ein einheitliches JSON-Format zu übersetzen,
Jannik: was dann jetzt auch ähnlich aussieht wie zum Beispiel die Findings von einem
Jannik: anderen Security-Scanner, wie jetzt zum Beispiel einen Nikto,
Jannik: einen Oversp-SAP-Scanner, wo SAP liegt auch gar nicht mehr bei der Oversp,
Jannik: aber es gibt da eine ganze Reihe an verschiedenen anderen Scannern,
Jannik: die wir noch integriert haben.
Ingo: Ja, ihr könnt auch SSH-Scannen sehe ich hier, TYPO3-Scannen, irgendwie.
Jannik: Genau. für verschiedene Ziele.
Ingo: WordPress-Scanner, SSL-Analyze, solche Sachen sind hier irgendwie alle mit drin.
Jannik: Genau, das ist inzwischen ein ziemlicher Katalog von, ich weiß die genaue Zahl
Jannik: gar nicht, aber ich glaube es sind so, vielleicht schon so 15 bis 20 Stück,
Jannik: die wir dann jetzt quasi integriert haben, das heißt, es gibt diese Scan-Types,
Jannik: die kann man dann, das ist auch erstmal nochmal modular aufgebaut,
Jannik: das heißt, quasi wenn man jetzt die Secure-Code-Box erstmal installiert,
Jannik: dann kriegt man nur diesen Operator,
Jannik: und dann kann man noch die einzelnen Scan-Types nachzuinstallieren,
Jannik: um dann quasi jetzt der Secure-Code-Box noch beizubringen, wie man einen Nmap-Scan macht.
Jannik: Das ist aber auch komplett erweiterbar. Das heißt, wenn da jetzt ein Scan-Type
Jannik: fehlt, dann kann man das auch selber nachschreiben.
Jannik: Da muss man jetzt quasi nur ein Manifest schreiben, was dann der Secure-Code-Box
Jannik: sagt, wie es diesen Scan in die Container übersetzt.
Jannik: Was im Zweifelsfall einfach nur die Definition ist, welcher Container da gebraucht wird.
Jannik: Und dann so ein Parser zu schreiben, um diese Feine-Essens-Vereinheitlichen,
Jannik: das ist vielleicht noch das Komplizierteste.
Jannik: Aber es ist ein komplett erweiterbares System. Themen.
Ingo: Also wenn ich jetzt weiß, ich kann mit einem bestimmten Curl-Request irgendwas
Ingo: auslösen und will das jetzt bei euch einbinden, dann könnte ich das über den
Ingo: Weg machen, den du gerade beschrieben hast.
Jannik: Genau, das ist jetzt vielleicht ein sehr spezifischer Use Case.
Ingo: Wie ich sagen würde.
Jannik: Da gibt es vielleicht sogar eine bessere Lösung für. Also da gibt es dann,
Jannik: wenn man halt wirklich weiß, okay, ich kann das mit einem einzelnen Request
Jannik: machen, dann gibt es halt auch noch Scanner, die quasi von Haus aus erweiterbar sind.
Jannik: Also der eine Scanner, den wir da im Portfolio haben, nenne ich das mal,
Jannik: ist da der Nuclei, wo man dann selber auch noch Scan-Templates mitgeben kann
Jannik: und der Nuclei quasi sagen kann, okay, ich hätte jetzt gerne hier diesen einen
Jannik: spezifischen Check, den ich gerne machen möchte.
Jannik: Da könnte man das auch quasi hinbekommen, ohne selber eine eigene komplette
Jannik: Scanner-Integration schreiben zu müssen.
Jannik: Aber tendenziell lässt sich quasi wirklich einfach eigentlich alles einbauen,
Jannik: solange man das halt eh wie in einen Container gesteckt bekommt.
Jannik: Kommt. Also ich glaube, eine Sache, mit der wir mal Probleme hatten,
Jannik: war so ein Windows-spezifischer Scanner, wo wir dann so ein bisschen Probleme
Jannik: bekommen haben, da halt irgendwie so mit Windows-Containern rumzuspielen.
Jannik: Das sind dann so Sachen, die dann halt irgendwie schwieriger sind,
Jannik: aber ich glaube, hier in Radio Tux ist das vielleicht sowieso nicht die Zielgruppe,
Jannik: deswegen die meisten Tools.
Ingo: Man will ja vielleicht Windows auch angreifen, keine Ahnung.
Ingo: Apropos, gibt's dann auch so Integration, weiß ich nicht, Metasploit oder sowas,
Ingo: dass ich mich irgendwie so ja, alles einfach runterlade und dagegen schmeiße, gegen irgendein Ziel.
Jannik: Also Metasploit ist eine Sache, die wir irgendwie häufig requested bekommen,
Jannik: weil das ist bei uns das Problem, dass eigentlich keiner bei uns sich im Core-Team
Jannik: mit Metasploit auskennt.
Jannik: Und sich in Metasploit erstmal einzuarbeiten, ist halt ordentlich Arbeit.
Jannik: Also falls sich jemand richtig gut mit Metasploit auskennt, äh,
Jannik: Hätten durchaus Interesse dran, quasi das auch einzubauen, aber das müsste wahrscheinlich
Jannik: jemand machen, der nicht wir sind, weil bei uns fehlt da gerade einfach aktuell
Jannik: leider das Mittagssportleutentor.
Jannik: Aber da findet man auch irgendwie bei uns im GitHub-Projekt dann irgendwie die Issues zu.
Jannik: Da sind wir gerne offen auf jedes Feedback oder irgendwie Hinweise quasi,
Jannik: wie man das sonst auch einbauen könnte oder Hilfe für den Leuten,
Jannik: die das dann tatsächlich für uns einbauen könnten.
Ingo: Okay, das heißt, ihr habt ein GitHub und da kann einfach jeder mitmachen.
Ingo: Habt ihr auch irgendwie ein Chat-System, wo man sich einklinken kann oder macht
Ingo: ihr die ganze Entwicklung über GitHub?
Jannik: Wir haben auch, also es gibt von der OVAS-Organisation, die haben einen Slack-Channel
Jannik: oder einen Slack-Workspace, heißt das glaube ich richtig.
Jannik: Da haben wir auch einen Secure-Code-Box-Channel. Wir sind aber gerade so ein
Jannik: bisschen dabei zu versuchen, das noch stärker zu GitHub zu treiben,
Jannik: weil wir einfach oft das Problem hatten, dass halt in Slack die Diskussionen
Jannik: einfach quasi immer und immer wieder gleichgeführt wurden.
Jannik: Weil Slack halt einfach so schlecht durchsuchbar ist, dass die Leute einfach
Jannik: immer wieder mit den gleichen Problemen gekommen sind und Fragen gekommen sind.
Jannik: Wir versuchen natürlich auch irgendwie unsere Dokumentation anzupassen,
Jannik: dass die Fragen dann gar nicht mehr aufkommen, aber das ist manchmal irgendwie nur begrenzt möglich.
Jannik: Deswegen sind wir gerade so ein bisschen dabei, die Leute eher zu ermuntern,
Jannik: dieses GitHub-Discussions-Feature zu benutzen und dann auch Fragen zu stellen,
Jannik: einfach nur, dass die dann halt irgendwie von Search-Engines auch irgendwie
Jannik: indexierbar sind und gut durchsuchbar sind.
Ingo: Kann ich jetzt die Secure-Code-Box auch irgendwie in meine CI-CD-Pipeline einbinden?
Jannik: Das ist ein bisschen interessant, weil da habe ich, glaube ich,
Jannik: ein bisschen von der Norm abweichende Meinung zu.
Jannik: Weil wir haben das ganz lange versucht, quasi so Security-Tools in CI-Pipelines
Jannik: einzubauen, um quasi Software vorm Deployment zu scannen.
Ingo: Genau, da gibt es auch einige.
Jannik: Da gibt es auch einige wirklich richtig gute Lösungen. Da ist jetzt vielleicht
Jannik: noch so das Ding, wir mit der Secure-Code-Box sind primär auf dynamische Scanner
Jannik: quasi aktuell fokussiert.
Jannik: Wir haben auch ein bisschen statische Scanner drin, aber primäres Ziel ist aktuell
Jannik: quasi das Ausführen und die Orchestrierung von dynamischen Scanning-Tools,
Jannik: also Scanning-Tools in diesem Fall, die gegen eine laufende Software laufen
Jannik: und nicht nur auf quasi plainen Source-Code.
Jannik: Und da ist das Problem, wenn du sowas in eine CI-Pipeline integrieren willst,
Jannik: hast du einen ganzen Haufen an Problemen. Das Erste ist, du musst diese Software
Jannik: erstmal quasi in Gänze in deiner CI-Pipeline zu laufen zu bekommen.
Jannik: Was im Zweifel heißt, du müsst dann jetzt quasi auf deinem CI-Server auch irgendwie
Jannik: noch die Datenbank starten, irgendwie Frontend, Backend, was auch immer,
Jannik: Microservice-Container, irgendwie alles zum Laufen bekommen.
Jannik: Und dann kannst du erst das Tool dagegen schmeißen und dann wird dir vielleicht
Jannik: auch noch auffallen, dass viele von diesen Tools arschlangsam sind,
Jannik: weil sie halt einfach quasi versuchen, jede mögliche Vulnerability,
Jannik: die die Sonne je gesehen hat, in dieser Software zu finden.
Jannik: Das heißt, sie machen teilweise tausende an Requests, was jetzt quasi je nach
Jannik: Software und auch je nach Wumms, die der CI-Server dann hat, ewig lange dauern kann.
Jannik: Das heißt, unser aktuelles Recommendation dafür ist, quasi die Software quasi
Jannik: erst zu deployen, vielleicht auf einer entsprechenden Staging-Umgebung und dann
Jannik: die Secure-Code-Box dagegen laufen zu lassen.
Jannik: Da spricht jetzt auch nichts gegen, quasi die Software zu deployen und dann
Jannik: den Secure-Code-Box-Scan dagegen zu triggern.
Jannik: Was wir aber auch haben, ist quasi jetzt noch eine weiterführende Komponente.
Jannik: Das heißt, wie ich das eben schon erklärt habe, quasi so die Core-Komponente
Jannik: ist so dieses Ausführen und Orchestrieren von Scans.
Jannik: Wir haben noch eine weitere Komponente, die nennen wir die Secure-Code-Box Auto-Discovery.
Jannik: Das ist eine Komponente, die quasi versucht, automatisch aus der Kubernetes-API
Jannik: rauszuziehen, was für Software in diesem Cluster drin läuft.
Jannik: Und dann automatisch Scans gegen diese Software erstellst, sodass du in der
Jannik: Autodiscovery sagen kannst, okay, ich möchte gerne, dass jede Software,
Jannik: die hier auf diesem Cluster läuft, quasi einmal diesen Scan abbekommen hat.
Jannik: Ich glaube, das Default-Setup, was wir da haben, ist quasi ein weiteres OWASP-Projekt,
Jannik: der OWASP-SAP-Scanner.
Jannik: Das ist so ein sehr bekannter, sehr verbreiteter Web-Application-Security-Scanner.
Jannik: Denen gegen diese Software zu laufen. Und was die Autodesk KW dann macht,
Jannik: ist, indem sie halt automatisch oder quasi durchgehend auf die Kubernetes-API
Jannik: guckt und dann da jetzt auch eine Change Events mitbekommt,
Jannik: dass sie dann automatisch für jede Version der Software, die auf diesem Cluster deployed ist,
Jannik: diese Scans startet und dann kann man diese Ergebnisse dann halt auch wieder
Jannik: ausleiten aus der Secure Code Box in sowas wie eine Defect Dojo,
Jannik: sodass du dann halt quasi ein Webinterface hast mit diesem Defect Dojo,
Jannik: wo du wo du alle deine Findings zu deiner Software sehen kannst.
Jannik: Und durch diese Auto-Discovery wird automatisch dieser Scan getriggert,
Jannik: ohne dass man ihn jetzt noch über eine CI-Pipeline anstoßen muss.
Jannik: Sondern es passiert dann alles rein aus dem Cluster heraus.
Ingo: Heißt aber, das ist dann nur für die Cluster, in denen ich die Secure-Code-Box
Ingo: deployed habe. Also wenn ich mehrere habe, muss ich das in jedem...
Jannik: Genau, da wäre jetzt auch unsere Empfehlung, also besonders,
Jannik: wenn du dynamische Scans startest, das dann eher quasi gegen das Staging-Cluster
Jannik: zu werfen, zumindest mit diesen dynamischen Scans.
Jannik: Einfach nur, dass man jetzt quasi wirklich diese Scans gegen die Software startet,
Jannik: bevor sie auf Produktion deployed ist,
Jannik: und auch potenziell, ich hatte es eben schon gesagt, diese Scanner sind relativ
Jannik: ressourcenhungrig und da wir die Scanner jetzt ja quasi direkt neben der Software
Jannik: deployen, wollen wir gerne vermeiden, dass Leute aus Versehen quasi ihre eigenen
Jannik: Cluster dadurch dossen, dass sie jetzt halt,
Jannik: gerade sich die Autos also lässt sich auch inkrementell,
Jannik: ausrollen, aber so ein bisschen so das Horrorszenario ist, dass Leute uns dann
Jannik: schreiben so, ey, ich habe die Secure-Code-Box auf unser Produktionscluster
Jannik: deployed und jetzt ist das komplette Cluster überlastet, weil überall sind diese
Jannik: Security-Scanner hochgefahren worden.
Jannik: Also das ist jetzt die klare Empfehlung, quasi, wenn ihr diese Autodesk-KW benutzt,
Jannik: probiert das erstmal auf eurem Staging- oder Dev-Cluster aus.
Jannik: Vielleicht gibt da auch so eine Funktion, das ist quasi Namespace für Namespace.
Jannik: Also Namespaces sind so die Unterprojekte innerhalb eines Kubernetes-Clusters,
Jannik: das ist quasi jetzt projektweise auszurollen,
Jannik: um da jetzt quasi dann nicht irgendwie aus Versehen die Ressourcenhungrigkeit
Jannik: dieser Scanner irgendwie komplett gegen das Cluster loszulassen.
Jannik: Sondern das ein bisschen vorsichtiger zu machen.
Jannik: Und falls man denn jetzt auch das Produktionscluster scannen möchte,
Jannik: was durchaus ein valider Use Case ist, das dann vielleicht nicht mit solchen
Jannik: dynamischen Scannern wie jetzt zum Beispiel in einem ZEPP zu machen,
Jannik: sondern das eher mit Container-Level-Scans zu machen, wie jetzt so diesem Trivi.
Jannik: Ich führe jetzt hier ganz viele neue Scanner ein, die für mich total normal sind.
Jannik: Also der Trivi-Scanner ist ein richtig cooles Tool, das quasi auf Container-Images
Jannik: guckt und quasi jetzt dieses Container-Image nach Schwachstellen durchsucht.
Ingo: So nach dem Motto, du benutzt diese eine Library und die ist eh schon immer kaputt.
Jannik: Genau, also das ist auch das Coole inzwischen, dass es bei Trivi jetzt quasi
Jannik: sowohl für Libraries ist, aber auch so
Jannik: für so Kernel-Level oder jetzt so Operating-System-Level-Dependencies ist.
Jannik: Das heißt, da kann man sich jetzt echt eine richtig coole Übersicht über das
Jannik: Security-Standing von so einem Container-Image geben.
Jannik: Und sowas ist halt wirklich sehr wenig invasiv, weil das guckt halt auf dieses
Jannik: Image und nicht auf die laufende Software.
Jannik: Das heißt, das ist auch etwas, was man richtig super auf einem Produktionscluster
Jannik: machen kann, aber mit solchen dynamischen Scannern wäre ich zumindest ein bisschen
Jannik: vorsichtig, das quasi jetzt erstmal auf einem kompletten Produktionscluster auszurollen.
Ingo: Weil man sich eventuell dedosst dann selber.
Jannik: Genau, aber das ist mit einem Trivi eher unwahrscheinlich.
Ingo: Jetzt hast du vorhin gesagt, man hat dann auch so eine Web-Oberfläche,
Ingo: wo man sich Sachen anzeigen lassen kann, wie, was sehe ich da?
Ingo: Also steht da dann, Achtung, hier musst du dich um den Teil kümmern? Oder wie sieht das aus?
Jannik: Genau, das ist halt auch noch etwas schwer zu beantworten, weil das ist alles sehr konfigurierbar.
Jannik: Also ich hatte jetzt eben schon gesagt, quasi so die Hauptoberfläche oder das
Jannik: Haupt oder so eine der Hauptplattformen, in denen sich diese Findings quasi
Jannik: rausleiten lassen, ist dieses OWASP-Defect-Dojo.
Jannik: Und das Defect-Dojo ist so eine Art Vulnerability-Management-Datenbank mit einer
Jannik: Web-Oberfläche, das heißt, man kann dort Feinigs, also so eine Security-Feinigs hochladen, wie,
Jannik: hallo, hier ist eine SQL-Injection quasi unter dieser Adresse mit diesen und diesen Parametern,
Jannik: dass wenn jetzt Sachen quasi jetzt ein Defect-Dojo da anzeigen würde und was
Jannik: das Defect-Dojo zudem auch noch macht, ist, dass es die Feinigs dann dedupliziert,
Jannik: das heißt, wenn ich jetzt heute diese SQL-Injection gefunden habe und morgen
Jannik: wird der Scanner nochmal ausgeführt und findet dann die gleiche SQL-Ejection nochmal,
Jannik: dass dieses Defekt-Doto das dann quasi automatisch dedupliziert und sagt,
Jannik: das ist doch eigentlich nur einmal die gleiche Schwachstelle,
Jannik: quasi jetzt einfach nur doppelt eingetragen, dass man dann im Defekt-Doto nur
Jannik: noch diesen einen Eintrag hat und dann sehen kann, okay, das wurde da und da
Jannik: oder dann und dann gefunden.
Jannik: Dass man jetzt nicht da dumm und dämlich klickt, weil da jeden Tag die Findings neu aufkommen.
Jannik: Das heißt, diese Deluplizierung ist da so eines der Hauptfeatures von dem Defect-Dojo,
Jannik: dass die Findings da dann quasi nur einmal reinkommen und dann kann man sie
Jannik: halt auch irgendwie kommentieren, als false positives markieren,
Jannik: wenn es dann doch nicht gestimmt hat.
Jannik: Also wenn das Finding quasi vom Scanner angezeigt wurde, aber tatsächlich gar nicht existiert.
Ingo: Okay, da kann ich also schon eingreifen an der Stelle. Kann dann sagen,
Ingo: nee, du hast dich hier irrt.
Jannik: Genau, also der Scanner wird das halt trotzdem am nächsten Tag noch fleißig
Jannik: weiter reporten, aber im Defect-Dojo ist es dann halt als quasi als fehlerhaft
Jannik: markieren, dass man das dann einfach quasi nicht mehr mit auseinandersetzen muss.
Jannik: Wir haben noch andere Integrationen, dass auch das, was man jetzt sieht,
Jannik: wenn man die Webseite aufmacht, die Bilder daraus, also mir wird es hier gerade
Jannik: ins Gesicht gehalten auf einem Laptop.
Jannik: Das ist, also wir haben noch andere Integrationen, das ist primär das Elasticsearch-Integrationen,
Jannik: wo die Feinigsten jetzt quasi als einzelne Datensätze in das Elasticsearch gekippt werden.
Jannik: Und dann jetzt da jetzt quasi in dieser Elasticsearch-Document-Database quasi
Jannik: einfach als JSON-Blobs rumliegen.
Jannik: Das ist jetzt quasi bei, quasi jetzt erstmal komplett nicht dedupliziert,
Jannik: das heißt, da tauchen dann jeden Tag immer wieder die gleichen Findings bei raus.
Jannik: Und da gibt es jetzt quasi keine False-Positive-Behandlung, also dafür müsste
Jannik: man ein Defect-Dojo benutzen.
Jannik: Aber jetzt für sowas, wenn man jetzt tatsächlich sowas benutzt,
Jannik: wie ich das vorhin schon mal erwähnt, wenn man jetzt zum Beispiel einen NMAP-Scanner
Jannik: benutzt, um ein Netzwerk zu scannen, das hat halt relativ wenig False Positives,
Jannik: sondern sagt mir halt einfach, dieser Port da ist offen und dann stimmt das in der Regel auch.
Jannik: Damit kann man sich halt auch irgendwie eine relativ coole Übersicht so über
Jannik: Netzwerke bauen, quasi was für Ports sind, wann wo offen.
Jannik: Und für sowas ist dieses Elasticsearch richtig super, weil dann kannst du dir
Jannik: halt mit diesem Kibana so eine Dashboard zusammenklicken, um dann zum Beispiel
Jannik: einfach auf einen Blick zu sehen, wo sind denn jetzt hier in dem Netzwerk noch Telnet-Ports offen.
Ingo: Nicht nirgendwo, aber ja, gut.
Jannik: Ja, genau, das wäre die Hoffnung.
Jannik: Dass man da dann halt jetzt quasi eine einfach zu durchsuchende Oberfläche noch
Jannik: hat, um da diese Finings zu haben, jetzt quasi mit der Einschränkung,
Jannik: dass sie dann halt nicht dedupliziert sind.
Ingo: Du hast gesagt, man kann im Produktiv-Cluster auch die Images scannen.
Ingo: Wenn ich das jetzt so einfach die ganze Zeit nebenbei laufen lasse,
Ingo: will ich mich ja vielleicht nicht erst auf eine Web-Oberfläche einloggen und
Ingo: gucken, was da gerade abgeht.
Ingo: Hat man irgendeine Art von Alerting?
Jannik: Genau, also es funktioniert tatsächlich relativ ähnlich wie jetzt quasi das
Jannik: Hochladen von den Findings in das Elasticsearch.
Jannik: Also wir haben, habe ich glaube ich ganz am Anfang einmal gesagt,
Jannik: dieses Konzept von Hooks.
Jannik: Also es sind einfach quasi eine Programmierschnittstelle, um quasi mit diesen Scans zu interfacen.
Jannik: Da gibt es aber auch eine ganze Reihe an Vorgefertigten, wie jetzt zum Beispiel
Jannik: die Defect-Dojo-Hooks, diese Findings, die man an das Defect-Dojo hochlädt oder
Jannik: die Elasticsearch-Hook.
Jannik: Ähm, wir haben dann aber auch zusätzlich noch eine Hook,
Jannik: die nennt sich, glaube ich, einfach Notification Hook, die es einem erlaubt,
Jannik: denn quasi jetzt basierend auf bestimmten Regeln, die man auch wieder vordefinieren kann,
Jannik: Alerts an externe Systeme zu senden, was in diesem Fall halt einmal so Chat-Systeme sind,
Jannik: also ich glaube irgendwie Slack und Microsoft Teams sind da so die Hauptdinger,
Jannik: um dann quasi jetzt direkt zu sagen, dass da jetzt ein neues Feinde gefunden wird.
Jannik: Das lässt sich dann auch mit der Defect-Dojo-Hook zu quasi kombinieren,
Jannik: dass man die Findings quasi zuerst ins Defect-Dojo hochlädt,
Jannik: dann quasi wartet, bis die Deluplicierung abgeschlossen ist.
Jannik: Also es gibt da quasi so einen Sync-Back-Modus, dass er die Findings hochlädt
Jannik: und dann an die Secure-Code-Box-Findings später noch ranschreibt quasi so,
Jannik: ey, ja, das wurde hier zwar gefunden, aber es ist eigentlich ein false positive gewesen,
Jannik: dass man das dann noch quasi kombiniert mit der Notification-Hook,
Jannik: dass man dann auch nur Notifications rausschickt für Findings,
Jannik: die tatsächlich neu sind.
Jannik: Genau, dass man da dann automatisch Alerts raussenden kann an Leute,
Jannik: dass sie nicht durchgehend alle fünf Sekunden das Webinterface refreshen müssen.
Ingo: Okay, für wen würdest du sagen, wer sollte sich SecureCodeBox angucken? Alle? Oder?
Jannik: Ach, alle wäre jetzt wahrscheinlich zu viel gesagt. Aus meiner Sicht ist das
Jannik: ein durchaus sehr spannendes Tool, besonders für Leute, die schon ein Kubernetes-Cluster
Jannik: irgendwo am Laufen haben.
Jannik: Dann ist es nämlich auch jetzt einfach der Overhead, das einmal auszuprobieren,
Jannik: relativ gering, weil es ist relativ einfach zu installieren.
Jannik: Also es ist eigentlich einfach nur ein Helmchart, also für die Leute,
Jannik: die sich jetzt Kubernetes auskennen, Helm ist so ein Package-Manager für Kubernetes.
Jannik: Dann ist es sehr einfach, das auszuprobieren. Besonders mit der Autodiscovery
Jannik: ist das halt auch einfach, finde ich, ein super spannendes Tool,
Jannik: um halt automatisch so die Security von Software zu verifizieren.
Jannik: Aber es ist, finde ich, auch für klassischere Unternehmen ein super spannendes
Jannik: Tool, besonders wenn es so um Network Security geht, also einfach das Scannen
Jannik: von kompletten Netzwerken, dann ist das auch super spannend.
Jannik: Also wenn es da Probleme gibt, quasi wie so alle Software, die im Netzwerk läuft,
Jannik: quasi im Auge zu behalten, ist das ein super spannendes Tool,
Jannik: weil du kannst dann dadurch halt auch so Regeln festlegen, wie zu sagen,
Jannik: okay, ich möchte jetzt erstmal so einen kompletten Netzwerkscan machen über
Jannik: alles, was hier in dem Netzwerk läuft,
Jannik: und dann basierend auf den Ergebnissen automatisch weitere Scans zu triggern,
Jannik: wie zum Beispiel, wir hatten das eben schon gesagt,
Jannik: es gibt zum Beispiel einen NMAP-Scanner, aber es gibt auch einen SSH-Scanner,
Jannik: dann zu sagen, okay, liebe Secure-Code-Box, bitte quasi für jeden Host,
Jannik: den du mit einem offenen SSH-Port gefunden hast,
Jannik: bitte start doch jetzt gleich nochmal so einen spezialisierten SSH-Scan hinterher.
Jannik: Um automatisch jetzt auch für alle SSH-Ports oder alle SSH-Services,
Jannik: die ich in einem Netzwerk am Laufen habe, halt auch automatisch noch einen SSH-Security-Scan
Jannik: machen zu lassen, lassen zu können.
Jannik: Das ist halt super spannend, auch mit so anderen Spesen, also ein weiterer Scanner,
Jannik: ich name-droppe jetzt hier gefühlt fast alle Scanner, die wir haben.
Jannik: Also ein weiterer Scanner, den wir haben, ist der N-Track-Scanner,
Jannik: das ist so ein Schwesterprojekt vom N-Map-Scanner.
Jannik: Stimmt das, glaube ich? Ich glaube zumindest vom Namenstamm ist das ähnlich.
Jannik: Das ist so eine Art Credential Enumeration Scanner, den du quasi jetzt einfach
Jannik: gegen einen bestimmten Service richten kannst und einfach mit einer Liste von
Jannik: Nutzernamen und Passwörtern,
Jannik: und dann einfach mal den versuchen lassen kannst, die Passwörter zu bruteforcen.
Jannik: Das lässt sich dann halt auch wieder super mit diesem also wir nennen das so
Jannik: eine Cascading Scans kombinieren, also das heißt, dass man erst einen Nmap-Scan
Jannik: startet zum Beispiel, um alle SSH-Ports zu finden,
Jannik: und dann einfach mal einen Endcrack-Scan dagegen, gegen diese SSH-Ports laufen
Jannik: lassen zu können, ob da jetzt hier irgendwo,
Jannik: SSH-Ports mit irgendwie bekannten Admin-Passwörtern rumliefern.
Jannik: Also da kann ich nur mal empfehlen, das auszuprobieren, wenn man da irgendwie
Jannik: Sorgen hat, in einem Unternehmen, dass sowas passieren könnte.
Jannik: Also es lässt sich sehr gut kombinieren, indem man einfach mal bei den Admins
Jannik: fragt, was so die Standard-Passwörter sind, die sie vor ein paar Jahren noch
Jannik: verwendet haben. Also ich hoffe, dass die inzwischen alle davon weggeswitcht sind.
Jannik: Aber sich da einfach mal so eine Liste geben zu lassen von den Sachen,
Jannik: die früher vielleicht mal benutzt wurden und das dann mit so einem N-Track-Scan
Jannik: zu kombinieren um einfach mal wirklich quasi,
Jannik: kontinuierlich alle Systeme, die in diesem Netzwerk laufen, auf solche Standard-Passwörter.
Jannik: Durchtesten zu lassen, das ist halt wirklich Gold wert, einfach nur um jetzt
Jannik: quasi das irgendwie nochmal von seiner Liste abhaken zu können sich einfach
Jannik: sicher zu sein zu können, dass da jetzt kein totaler Quatsch mehr im Netzwerk läuft.
Ingo: Okay, habt ihr denn so Blueprints oder Beispiele auf der Webseite?
Ingo: Also das ist ja jetzt schon ein bisschen komplexer. Es ist nicht nur,
Ingo: ich schmeiß das Helmschad dagegen und dann passiert alles automagisch.
Ingo: Also wenn du jetzt sagst, du hast die Abhängigkeiten und der soll die ganzen
Ingo: Schritte machen und das schon ein bisschen bei sich tue. Gibt es da so Beispiele?
Jannik: Genau, also wir haben auf unserer Webseite übrigens einfach Secure Codebox IO.
Jannik: Unter der Dokumentation gibt es einen Menüreiter namens How-To's,
Jannik: was so ein bisschen quasi so Walkthroughs sind, um einfach mal quasi durchzulesen,
Jannik: quasi bestimmte Use Cases, wie man die durchspielen kann.
Jannik: Ich glaube zum Beispiel dieses Automatically Scanning Networks oder so heißt
Jannik: der glaube ich, ist glaube ich auch genau dieser Use Case beschrieben mit dem
Jannik: Nmap und Ncrack Beispiel.
Jannik: Auch irgendwie quasi jetzt einfach gibt es auch noch Beispiele,
Jannik: wie man diese Autodiscovery aufsetzt.
Jannik: Also da gibt es irgendwie inzwischen eine ganze Reihe. Ich glaube,
Jannik: es sind so fünf bis zehn verschiedene Use Cases, die da irgendwie einfach einmal
Jannik: ausführlich beschrieben sind.
Jannik: Quasi mit Beispielen zum Nachtippen in die Shell, um das einmal durchzuspielen.
Jannik: Falls es da irgendwie noch Probleme gibt oder jetzt quasi Use Cases sind,
Jannik: die euch da irgendwie einfallen, dann gerne eine GitHub-Discussion aufmachen.
Jannik: Ist immer spannend zu hören quasi, was die Leute da gerne gesehen hätten,
Jannik: was vielleicht noch fehlt.
Ingo: Okay, super. Vielen Dank, Yannick. dass du uns mal erklärt hast,
Ingo: was Secure Code Box ist, was es machen kann.
Ingo: Und genau, wenn ihr da draußen Fragen habt, dann einfach auf GitHub gehen und
Ingo: ja, Issues aufmachen und eine Diskussion starten und dann helfen euch Yannick
Ingo: und seine Kollegen dabei. Super, vielen, vielen Dank.
Jannik: Danke dir.