Thema: security
-
Ablauf von TLS-Zertifikaten auf jedem Endpunkt überwachen, nicht nur auf der Hauptwebsite
Ein abgelaufenes Zertifikat ist ein Ausfall mit exakt vorhersagbarem Zeitpunkt; das notAfter-Datum jedes tatsächlich ausgelieferten Zertifikats (Web, API, Mail, interne Panels, Load Balancer) von aussen abfragen, mit ausreichendem Vorlauf für eine manuelle Erneuerung alarmieren und sowohl die Zwischenzertifikate als auch das Endzertifikat prüfen.
-
Audit-Logs: was aufzuzeichnen ist, wie man sie unverändert hält und wer sie lesen darf
Ein Audit-Log beantwortet, wer was an welchem Objekt getan hat, wann und mit welchem Ergebnis; es wird von der Anwendung für jede sicherheitsrelevante Aktion geschrieben, getrennt von Debug-Logs gehalten, durch zügiges Verschieben in einen Append-only- oder Write-once-Speicher vor Veränderung geschützt und nur unter protokolliertem, eingeschränktem Zugriff gelesen.
-
Unix-Dateiberechtigungen und die umask
Jede Datei besitzt Berechtigungsbits für Eigentümer, Gruppe und Andere zum Lesen, Schreiben und Ausführen, dazu setuid-, setgid- und Sticky-Bit; neue Dateien erhalten ihre Berechtigungen von der umask des Prozesses. Geheimnisse gehören in Dateien mit 0600, Verzeichnisse benötigen Ausführen, um durchquert zu werden, und Dienste sollten unter einem dedizierten Benutzer laufen.
-
Rate-Limits gestalten, die den Dienst schützen und den Client informieren
Nach der verifizierbaren Identität begrenzen (Konto, Netzwerkpräfix), atomare Zähler in festen oder gleitenden Fenstern verwenden, mit 429 und Retry-After antworten, getrennte Budgets für Lese-, Schreib- und Registrierungsvorgänge führen und die geltenden Limits veröffentlichen.
-
Durchgang durch einen Datei-Upload-Dienst: Tickets direkt zum Speicher, asynchrones Scannen und Kontingente
Ein Design-Durchgang für Uploads, die an den Anwendungsservern vorbeigehen: ein Ticket, das Kontingent reserviert und eine signierte Upload-URL zurückgibt, ein Abschlussschritt, der das gespeicherte Objekt verifiziert, ein Scan-Worker, der es freigibt oder löscht, Lebenszyklusregeln für abgebrochene Uploads sowie ein Statusmodell, das jedes gespeicherte Objekt erklärt.
-
Cross-Site-Scripting durch Ausgabe-Encoding verhindern
Daten passend zum jeweiligen Einfügekontext escapen (HTML-Text, Attribut, JavaScript, URL, CSS), ein Templating verwenden, das standardmässig escaped, HTML nie durch String-Konkatenation zusammenbauen und das Ganze mit einer strikten CSP absichern.
-
Kurzlink-Dienste mit fortlaufenden Kennungen erhalten mehr Enumerationsanfragen als Dienste mit zufälligen Kennungen
Hypothese: Ein URL-Verkürzer, dessen Schlüssel ein in Base62 codierter Zähler sind, erlaubt es jedem, sämtliche Links der Reihe nach durchzugehen, während zufällige Schlüssel fester Länge die meisten Rateversuche ins Leere laufen lassen; die These lautet, dass Dienste mit fortlaufenden Schlüsseln einen höheren Anteil an Anfragen für bestehende Schlüssel von Clients sehen, die den Link nie erhalten haben, und dass der Anteil an 404-Antworten allein die beiden Fälle nicht unterscheidet.
-
Die Same-Origin Policy: was eine Origin ist und was sie isoliert
Eine Origin besteht aus Schema, Host und Port einer URL. Skripte dürfen Dokumente, Speicher und Antworten derselben Origin lesen und ändern; ursprungsübergreifende Lesezugriffe sind standardmässig blockiert, während ursprungsübergreifende Schreibzugriffe wie Formularübermittlungen sowie Einbettungen wie Bilder und Skripte grundsätzlich erlaubt sind. CORS lockert Lesezugriffe; CSRF-Schutzmassnahmen bleiben trotzdem nötig.
-
Nach Eingang eines Schwachstellenberichts: bestätigen, bewerten, privat beheben, offenlegen
Sobald ein Bericht die Sicherheitskontaktstelle des Projekts erreicht, ist die Arbeit eine Abfolge mit Terminen: schnell bestätigen, klassifizieren (wie vorgesehen, Bug, Feature-Wunsch, Schwachstelle), mit der meldenden Person ein Embargo vereinbaren, den Fix privat entwickeln, eine CVE-Kennung beschaffen, dann veröffentlichen und ein Advisory publizieren, das betroffene und behobene Versionen nennt und die meldende Person würdigt. Der OpenSSF-Leitfaden für Maintainer und GitHubs Hinweise zur Offenlegung beschreiben diesen Prozess; dieser Artikel fasst ihn für ein Projekt mit ein bis fünf Maintainern zusammen.
-
Agentenhandlungen sandboxen: Grenzen für Dateisystem, Netzwerk und Zugangsdaten
Ein Agent, der Befehle oder Code ausführt, sollte dies innerhalb einer Grenze tun, die einschränkt, auf welche Dateien er zugreifen, welche Hosts er erreichen und welche Geheimnisse er lesen kann; Container mit entzogenen Capabilities und einem seccomp-Profil, User-Space-Kernel wie gVisor, ein standardmässig gesperrtes Netzwerk und kurzlebige, eng begrenzte Zugangsdaten sind die Bausteine dafür.
-
Dependency Confusion: wenn ein öffentliches Paket ein privates verdrängt
Löst ein Build Paketnamen sowohl über einen privaten als auch einen öffentlichen Index auf, kann ein Angreifer, der den privaten Namen öffentlich mit einer höheren Version veröffentlicht, seinen eigenen Code installiert bekommen; die pip-Dokumentation nennt --extra-index-url für private Pakete deshalb ausdrücklich unsicher. Gegenmassnahmen sind an eine Registry gebundene Namensräume, ein einzelner proxyierender Index, Hash-Pinning und das Beanspruchen von Namen.
-
YAML sicher laden
Volle YAML-Loader können aus getaggten Knoten beliebige Objekte instanziieren; stets einen sicheren Loader verwenden, die YAML-Versionssemantik festnageln und das Ergebnis vor der Verwendung gegen ein Schema validieren.
-
Der TLS-1.3-Handshake im Überblick
TLS 1.3 handelt Schlüssel in einem einzigen Roundtrip aus: Das ClientHello trägt bereits einen Key Share, das ServerHello antwortet mit seinem eigenen, und alles danach, einschliesslich des Zertifikats, ist verschlüsselt. Resumption nutzt Pre-Shared Keys aus Session-Tickets; 0-RTT Early Data ist optional und wiederholbar (replayfähig).
-
Datei-Uploads von Nutzern validieren, speichern und ausliefern
Nur die Dateitypen akzeptieren, die das Feature braucht; den Typ per Erlaubnisliste der Endung plus Inhaltsprüfung bestimmen statt über den Content-Type des Clients; auf eine zufällige Kennung umbenennen; Grössenlimiten vor und nach der Dekomprimierung durchsetzen; ausserhalb des Web-Roots oder auf einem separaten Host speichern und über einen Handler ausliefern, der Typ, nosniff und Content-Disposition setzt, idealerweise von einem separaten Ursprung aus.
-
Einen Agenten-Workflow als Red Team angreifen, bevor er echte Berechtigungen erhält
Den Agenten so angreifen, wie es Inhalte und Nutzer tun werden: indirekte Prompt-Injection über jede Eingabe, die er liest, Manipulation von Tool-Argumenten, Exfiltration über Tool-Aufrufe und Budgeterschöpfung; skriptgesteuerte Sonden plus manuelle Versuche fahren, festhalten, was der Agent getan hat, und die Grenze reparieren, nicht nur den Prompt.
-
Subresource Integrity für Skripte und Stylesheets von Drittanbietern
Ein integrity-Attribut an einem script- oder link-Element trägt einen base64-kodierten SHA-256-, SHA-384- oder SHA-512-Hash der erwarteten Datei; der Browser verweigert Ausführung oder Anwendung einer Ressource, deren Inhalt nicht übereinstimmt. Es legt exakt fest, was ein CDN ausliefern darf, setzt CORS für Cross-Origin-Dateien voraus und funktioniert deshalb nur für Ressourcen mit festem Inhalt.
-
Ausgehende Webhooks entwerfen, denen Empfänger vertrauen können
Jede Zustellung mit einem HMAC über Body und Zeitstempel signieren, mindestens einmal mit Wiederholungen und idempotenten Ereignis-IDs zustellen, Payloads klein halten mit einem Link zum Abrufen der Details, und Empfängern die Prüfung ermöglichen, ohne Geheimnisse in URLs zu platzieren.
-
JSON Web Tokens: Was schiefgehen kann und die Antworten von RFC 8725
JWTs sind signierte Claims, keine verschlüsselten Geheimnisse; den Algorithmus gegen eine Positivliste prüfen, Aussteller, Zielgruppe und Ablauf verifizieren, Lebensdauern kurz halten, 'none' nie akzeptieren, und daran denken, dass sich ein zustandsloses Token ohne serverseitige Liste nicht widerrufen lässt.
-
Abhängigkeitshygiene und Prüfungen der Software-Lieferkette
Wissen, wovon man abhängt, es festpinnen und verifizieren, auf bekannte Schwachstellen achten und aus vertrauenswürdigen Quellen bauen; SLSA-Stufen, OpenSSF Scorecard und hash-geprüfte Installationen liefern konkrete Schritte.
-
Reaktion auf Sicherheitsvorfälle für ein kleines Team: ein Minimalverfahren
Ein Zweierteam kann kein Security Operations Center betreiben, aber es kann im Voraus eine Kontaktliste, eine Checkliste zur Eindämmung und eine Regel zur Beweissicherung vorbereiten; NIST SP 800-61 Rev. 3 fasst die Reaktion auf Vorfälle als Teil des laufenden Risikomanagements auf, und dieses Verfahren ist das Minimum, das die erste Stunde vorhersehbar macht.
Maschinenlesbar: JSON