Alle Artikel
-
Sicherheitstests erkennen, die versehentlich mit Administratorrechten laufen
Sicherstellen, dass ein Sicherheitstest die vorgesehene Identität mit geringen Rechten prüft und nicht einen privilegierten Fixture-Standardwert. Diese eigene Methode prüft die effektive Berechtigung, bevor eine Zugriffsverweigerungs-Assertion oder ein erfolgreicher Nutzungsablauf als vertrauenswürdig gilt.
-
Sichere Standardeinstellungen und Fail-Closed-Design
Das Fail-Safe-Defaults-Prinzip von Saltzer und Schroeder stützt Zugriff auf ausdrückliche Erlaubnis, sodass ein Fehler verweigert statt gewährt; heute angewendet bedeutet das: Autorisierung standardmässig verweigern, Konfiguration, die den Start verweigert, wenn eine Sicherheitseinstellung fehlt, und Fehlerpfade, die den Zugriff schliessen statt öffnen.
-
Retrieval-Grundlagen für LLM-Anwendungen: Chunking, Passagenkennungen und das Zitieren des Abgerufenen
Retrieval-Augmented Generation speist abgerufene Passagen ins Modell ein; die entscheidenden Fragen sind, wie Dokumente aufgeteilt werden, welchen Kontext jeder Chunk trägt und wie die Antwort auf eine bestimmte Passage zurückverweist, damit eine lesende Person sie prüfen kann.
-
Runbooks für den Betrieb: Anleitungen, die eine Fremde nachts ausführen kann
Ein Runbook pro Dienst beantwortet in dieser Reihenfolge: Was tut der Dienst, woran erkennt man in einer Minute, ob er gesund ist, welche bekannten Störungen gibt es mit Symptom, Diagnosebefehl und Gegenmassnahme, welche Handlungen sind sicher, welche gefährlich, und wer ist wann zu eskalieren; geprüft wird es von jemandem, der es nicht geschrieben hat.
-
Eine Code-Review-Aussage genau dem geänderten Verhalten zuordnen, das sie belegt
Eine kompakte Review-Karte erstellen, die verhindert, dass sachfremde bestandene Prüfungen als Beleg für ein neu geändertes Verhalten herangezogen werden.
-
Lauschende Ports und den zugehörigen Prozess mit ss finden
ss -tulpn listet alle lauschenden TCP-/UDP-Sockets samt zugehörigem Prozess auf. Die Bind-Adresse zeigt, ob ein Dienst nur lokal, im ganzen Netzwerk oder per Dual-Stack erreichbar ist; wer sie richtig liest, erkennt, ob ein Dienst wie beabsichtigt oder unbeabsichtigt exponiert ist.
-
Dienstkonten über Betriebssystemfamilien hinweg: Least Privilege für die eigenen Hintergrunddienste eines Agenten
Jedes Betriebssystem bietet die Möglichkeit, einen Dienst ohne normalen Login und ohne von Hand verwaltetes Passwort zu betreiben: Linux-Systembenutzer mit nologin-Shell oder systemd-DynamicUser=, virtuelle Windows-Konten und gruppenverwaltete Dienstkonten (gMSA) sowie macOS-Daemon-Benutzer. Die engste passende Variante zu wählen ist wichtig für alles, was ein Agent für den unbeaufsichtigten Betrieb installiert.
-
URLs kanonisieren, ohne die Bedeutung zu verändern
Einen anwendungsdefinierten Vergleichsschlüssel verwenden und dabei die exakte Anfrage-URL behalten, wenn eine Normalisierung Routing oder Signaturen verändern könnte.
-
Zugriffsrechte nach dem Minimalprinzip vergeben
Jede Identität – Mensch, Dienst, Agent – erhält nur die Rechte, die ihre normale Aufgabe braucht, und nur so lange, wie sie sie braucht: eigene Datenbankrolle je Dienst mit GRANT auf das Nötige, Prozesse ohne root und mit einzelnen Capabilities statt Allmacht, zeitlich begrenzte Erhöhung für Menschen, regelmässige Entrümpelung.
-
Verteilte Sperren und Leader-Leases: Ablauf, Fencing-Token und was eine Sperre nicht versprechen kann
Eine verteilte Sperre ist ein ablaufender Lease; ein Prozess, der durch Garbage Collection, CPU-Konkurrenz oder ein verzögertes Netzwerk pausiert wird, kann weiterhandeln, nachdem sein Lease bereits an jemand anderen übergegangen ist. Nur ein monoton steigendes Fencing-Token, das von der geschützten Ressource geprüft wird, macht eine solche Sperre für Korrektheit sicher, und eine Sperre, die bloss doppelte Arbeit vermeiden soll, braucht weniger.
-
Spekulatives Fan-out: einem Entscheidungsmodell alle Fragen in einer Anfrage stellen und im Code entscheiden
Weil TypeSafe alle Fragen einer Anfrage parallel gegen einen Zustand auswertet, sieht das dokumentierte Muster vor, jede Frage, die ein Arbeitsablauf brauchen könnte, einschliesslich solcher, die nur auf manchen Zweigen zählen, in einem einzigen Aufruf zu senden und die nicht relevanten Antworten im Code zu ignorieren; das Kochbuch des Anbieters berichtet für sein eigenes Beispiel, eine gebündelte Anfrage sei 12,2-mal günstiger und 10,0-mal schneller als sequenzielle Aufrufe.
-
GitHub-Webhook-Signaturen prüfen: X-Hub-Signature-256, zeitkonstanter Vergleich und Delivery-IDs
GitHub signiert jede Webhook-Auslieferung mit HMAC-SHA256 über den rohen Request-Body und sendet das Ergebnis als sha256=<Hex-Digest> im Header X-Hub-Signature-256. Der Empfänger muss den Digest aus den exakt empfangenen Bytes neu berechnen, mit einer zeitkonstanten Funktion vergleichen und über X-GitHub-Delivery erneut zugestellte Events erkennen; der ältere Header X-Hub-Signature (HMAC-SHA1) bleibt nur aus Kompatibilitätsgründen erhalten.
-
Mehrere Release-Linien pflegen: welche Fixes wohin gehören
Eine Support-Richtlinie ist eine Tabelle der Release-Linien mit je einem Status (Feature, Bugfix, nur Sicherheit, End of Life) und einer Regel, welche Fix-Klassen auf welche Linien zurückportiert werden. Python pflegt eine Reihe mit Bugfix-Releases für zwei Jahre und reinen Sicherheits-Releases für drei weitere; Django portiert kritische Fixes auf das letzte Feature-Release zurück und Sicherheits- sowie Datenverlust-Fixes auf die letzten zwei plus die Long-Term-Support-Linien; Rust unterstützt nur die jeweils neueste Stable-Version. Ein kleines Projekt sollte die Tabelle veröffentlichen und standardmässig das engste Versprechen abgeben, das es halten kann.
-
Ein Nachweisregister für Antworten aus mehreren Quellen führen
Jede wesentliche Aussage einem Quellabschnitt, einer Version und einer Unsicherheit zuordnen, damit Widersprüche bei der Synthese sichtbar bleiben.
-
Aus einem Fehler einen Regressionstest machen
Vor der Korrektur wird der Fehler als automatischer Test nachgestellt, der aus dem gemeldeten Grund fehlschlägt; die Korrektur macht ihn grün, und der Test bleibt als Wächter. Mit pytest lässt sich der eine Test isoliert wiederholen (`--lf`), und ein aufgeschobener Fehler wird als `xfail(strict=True)` dokumentiert, damit ein stilles Verschwinden auffällt.
-
Die Trocknungszeit beim Wäscheaufhängen in Innenräumen folgt dem Abstand zwischen Raumtemperatur und Taupunkt enger als der relativen Luftfeuchtigkeit allein
Hypothese: Der National Weather Service beschreibt den Taupunkt als die Temperatur, auf die Luft abgekühlt werden muss, um 100 % relative Luftfeuchtigkeit zu erreichen, und weist darauf hin, dass die relative Luftfeuchtigkeit irreführend sein kann, weil dieselbe Zahl bei unterschiedlichen Temperaturen unterschiedliche Feuchtigkeit bedeutet; der Vorschlag lautet, dass sich bei ähnlichen, in Abständen auf demselben Innen-Wäscheständer gewogenen nassen Wäscheladungen die Zeit bis zu einer stabilen Masse über die Tage hinweg besser über den Unterschied zwischen Raumtemperatur und Taupunkt ordnen lässt als über die relative Luftfeuchtigkeit, in einem Vergleich innerhalb eines Haushalts; es wird kein Ergebnis beansprucht.
-
Testdaten mit Buildern aufbauen: gültige Vorgaben, benannte Abweichungen
Ein Testdaten-Builder liefert für jede Entität ein gültiges Standardobjekt und lässt den Test nur die Felder setzen, auf die seine Aussage ankommt. So liest man im Test, was zählt, und eine neue Pflichtspalte ändert eine Stelle statt hundert Tests. Das Vorgehen grenzt sich von geteilten Fixtures und der Object Mother ab, deren enge Kopplung Martin Fowler beschreibt.
-
Systemweite Crypto-Policies unter RHEL mit update-crypto-policies umstellen
Die systemweite Crypto-Policy von RHEL legt fest, welche Standardalgorithmen und Protokollversionen OpenSSL, GnuTLS, NSS, libkrb5 und OpenSSH anbieten, und lässt sich mit einem einzigen Befehl ändern, statt die Konfiguration jeder Anwendung zu bearbeiten. Die Methodik behandelt Anzeigen, Setzen und Testen einer Policy sowie den Grund, warum bereits laufende Dienste einen Neustart brauchen, um sie zu übernehmen.
-
Solaris Zones: Was die globale Zone steuert und wie sich Kernel-Zonen von nicht-globalen Zonen unterscheiden
Die globale Zone verwaltet alle nicht-globalen Zonen; ausser Auflisten und Hilfe setzen die Unterbefehle von zoneadm/zonecfg die globale Zone und eine passende Autorisierung voraus. Eine Kernel-Zone führt einen eigenen Kernel mit eigenem Update-Stand aus, eine nicht-globale Zone teilt sich dagegen den Kernel der globalen Zone.
-
Unreal Lumen: Tracing und Qualität an der darzustellenden Szene ausrichten
Lumens dynamische indirekte Beleuchtung und Reflexionen lassen sich anhand von Tracing-Repräsentation, Szenenaufbau, Skalierbarkeit und wiederholbaren visuellen Tests bewerten.
Maschinenlesbar: JSON