Wir greifen jetzt mal ein paar Gartner-Empfehlungen raus.
Dann gucken wir, wir es Leuten ergangen ist, die der Empfehlung gefolgt sind.
FortiGate is the only NGFW with unified management for hybrid mesh firewall
Where AI/ML Security and Enterprise Networking Converge
Ich hab keine Ports offen, die man filtern könnte.
Revolutionary Threat Detection and Response
Protect against attacks and secure your hybrid and multi-cloud infrastructure
A vulnerability exists in TA for Windows 5.7.8 and earlier, which
allows local users, during install/upgrade workflow, to replace one
of the Agent's executables before it can be executed. This allows
the user to elevate their permissions.
A heap-based overflow vulnerability in TA (Windows and Linux) 5.7.8 and earlier allows a remote user to alter the page heap in the macmnsvc process memory block, resulting in the service becoming unavailable.
Ich setze kein Schlangenöl ein.
Prepare for a password[less] future by embracing pervasive password management today.
$ grep Password /etc/sshd_config PasswordAuthentication no PermitEmptyPasswords no
Ich logge mich mit public key ein.
Wenn Sie sich wo einloggen wollen, fragt der Server die Cloud.
Die Cloud poppt dann auf Ihrem Telefon eine App hoch.
Da klicken Sie den "Ja"-Button
Die Cloud sagt dann dem Server: Ist OK.
Wenn Sie genau hingucken, werden Sie feststellen, dass die Cloud auch ohne den Button "Ist OK" sagen könnte. Braucht keinen Hack, um unsicher zu sein!
Sie merken schon, ich hatte viel Zeit.
Ich musste nicht ständig Katastrophen von Zulieferern und Cloud-Diensten hinterherräumen.
Was habe ich mit der Zeit getan?
„Ich will ein Blog betreiben“
Was muss das können?
Statische Inhalte anzeigen. OK, Suchfunktion wäre nett.
Kommentarfunktion brauche ich nicht. Macht auch nur Ärger.
Webserver mit FastCGI.
Wieso nicht Webserver-Plugin? Damit das CGI mit einer anderen UID als der Webserver laufen kann. Sonst könnte das CGI den TLS Private Key aus dem Webserver auslesen.
Außerdem wollte ich mir den Spaß machen, möglichst viele Perf-Security-Tradeoffs für Security zu entscheiden, um zu zeigen, dass nicht die Security eure ranzigen Webseiten langsam macht.
Foto: IBM Cybertruck
In einem LDAP-Server, den ich gerade für ein anderes Projekt gehackt hatte. Warum?
$ ls -s =postgres =slapd tinyldap 8156 /opt/postgres/bin/postgres 1756 /opt/openldap/libexec/slapd 92 tinyldap
tinyldap wird von tcpserver gestartet. Ein fork+exec pro
Request.
Codegröße: 4656 LOC (inkl Unittests) plus libc.
Foto: Full Spectrum Cyber
Wenn jemand das Blog-CGI hackt, kann der Dateien öffnen.
Das sollte ich verhindern.
Seccomp kann open() verbieten.
Aber ich muss selber open machen.
*Bartzwirbel*
*Glühbirne* Ich öffne die Dateien, bevor ich Input vom Angreifer gesehen habe. Dann verbiete ich open(). Dann gucke ich den Input an.
Foto: https://www.mantech.com/sites/default/files/styles/hero_image/public/2022-09/Full-Spectrum-Cyber.jpg?itok=wffMwY-K
*Bartzwirbel* Wenn jemand das Blog-CGI hackt, kann er Passwörter (von anderen einkommenden Verbindungen) sehen.
1. CGI statt FastCGI, 2. ptrace() verbieten!
Angreifer kann immer noch Zugriffsschutz im Blog-CGI aushebeln!
*Glühbirne* Dann mach ich die im tinyldap!
*haarlose Katze streichel*
https://www.crowdstrike.com/cybersecurity-101/threat-intelligence/threat-intelligence-feeds/
Wenn ein Angreifer das Blog-CGI hackt und vor dort aus den tinyldap, dann kann er Zugriffsschutz umgehen und Passwörter sehen!
1. Ein tinyldap-Prozess pro Request, ptrace() verbieten
OK aber in der LDAP-Datenbank stehen ja immer noch Passwörter. Die kann der Angreifer sehen!
Dann tu ich da halt nur Hashes rein, an dem kann sich der Angreifer zu Tode cracken.
Der Angreifer kann meine Datenbank verschlüsseln!
*Glühbirne* Die Datenbank mache ich read-only. Änderungen hänge ich hinten an ein Journal an. Ab und zu füge ich Datenbank und Journal zusammen.
Der tinyldap-Prozess darf nur mit O_APPEND öffnen.
Das Journal-Zusammenführen macht nicht tinyldap sondern ich manuell alle paar Wochen.
Der Angreifer kann immer noch Müll in mein Blog schreiben!
Ja, aber ich kann dann Schreiben deaktivieren, das Journal abschneiden. Das macht allen Vandalismus ungeschehen und ich kann in Ruhe herausfinden, wie er reingekommen ist.
Das war mein Optimierungsziel: Stressreduktion im Ernstfall.
„USB-Sticks sind böse“-Awarenesskampagne
Was wenn jemand den Webserver hackt?
Dann hab ich immer noch verloren. Der sieht den durchlaufenden Traffic und die Private Keys fürs TLS.
Zukunftsvision: TLS-Handshake in separatem Prozess machen, dann Sockets mit konfiguriertem Kernel-TLS per File Descriptor Passing zurückliefern.
Illustration: Cookiebanner
Ich setze keine Cookies.
Der User kann bei mir selber Cookies setzen. Dafür brauche ich keine Zustimmung.
Schafft auf meinem Intel-Atom-Reiselaptop 2000 Anfragen pro Sekunde (ohne Caching).
Wieviel schafft Ihre Servlet-Hölle so?
Kommt auf die Security-Definition an.
Meine Definition: Die Anwendung kann alles, was sie braucht, um zu tun, was ich von ihr will. Nicht mehr.
Die interessantere Frage: Wieso ist das so aufwendig?!
Weil man Anwendung heute nicht mehr programmiert.
Man stöpselt sie aus Frameworks und Fertigteilen zusammen.
Die Komponenten werden nach Flexibilität ausgewählt.
Die Komponenten haben keine Ahnung, wofür ich sie verwenden werde. Sie können daher nicht Least Privilege haben.
Bei Agile weiß auch der Entwickler nicht, was die Anwendung am Ende tun soll / können muss.