SICHERHEIT / ARCHITEKTUR
Microsegmentation hat Netzwerke sicherer gemacht: Kein Rechner erreicht einen anderen, ohne dass eine Regel es erlaubt. Picosegmentation macht dasselbe im Code. Kein Teil des Programms erreicht einen anderen, ohne dass ein Gate es erlaubt. iSCSI4NAS ist so gebaut.
Alles im Code erzeugt eine Wirkung. Ein Admin-Passwort genauso wie eine einfache HTTP-Anfrage. Picosegmentation gibt jeder Wirkung ihre eigene Zone.
Microsegmentation teilt das Netz in Segmente. Picosegmentation teilt den Programmcode in Schichten und Zonen. Die Schichten sind Eingabe, Verarbeitung und Ausgabe. Die Verarbeitung ist zusätzlich in Zonen geteilt: Ein Passwort wird in einer anderen Zone verarbeitet als ein einfacher HTTP-Aufruf.
Zwischen zwei Zonen gibt es genau einen Übergang, das Gate. Dort fällt die Entscheidung, ob ein Vorgang stattfinden darf. Einen zweiten Weg gibt es nicht. Eine Wirkung entsteht nur an einem Gate im Code.
Daraus folgt der wichtigste Satz dieser Seite: Ein Fehler darf in seiner Zone liegen. Für die Wirkung einer anderen Zone lässt er sich nicht benutzen, weil der Weg dorthin fehlt.
Sicherheit endet nicht am Ende der Hardware.
Eine Grenze, an der die Prüfung aufhört, ist eine Lücke. Microsegmentation schließt diese Lücke im Netz. Picosegmentation schließt sie im Code, also dort, wo Fehler tatsächlich entstehen.
Die einzelnen Bausteine kennt die Informatik seit Jahrzehnten, etwa Berechtigungen am Objekt, Typprüfung und getrennte Rechte. Der Schutz entsteht erst aus der geschlossenen Architektur, die sie im Code zu einem Ganzen verbindet. Diese Architektur hat Aviontex entwickelt.
Das SI-Präfix-Sicherheitsmodell ordnet Schutz in fünf Ebenen. Die Namen kennt man von Maßeinheiten wie Mikrometer und Nanometer: Von Stufe zu Stufe wird es feiner. Picosegmentation ist eine dieser Ebenen, die Ebene im Code.
| Ebene | Was getrennt wird |
|---|---|
| Micro | Netzwerk und Verbindungen |
| NanoiSCSI4NAS | Prozesse und Sandboxen: eigene Prozesse für iSCSI und für die App |
| PicoiSCSI4NAS | Programmcode: Schichten und Zonen |
| Femto | Hardware |
| Atto | Mikroarchitektur des Chips |
Keine Ebene ersetzt eine andere. iSCSI4NAS setzt Picosegmentation vollständig im eigenen Code um. Für Nano nutzt es Apples Plattformbausteine: getrennte Prozesse und Sandboxen. Deshalb lässt sich die App aktualisieren, ohne die Verbindungen zum NAS zu trennen. Für die übrigen Ebenen stützt es sich auf dein Netzwerk, die Hardware von Apple und den Chiphersteller.
Heute sucht man Sicherheit meist im Nachhinein: Code schreiben, Lücke finden, Patch verteilen. Picosegmentation dreht das um.
Fehler im Code gibt es in jeder Software. Mit Picosegmentation fehlt ihnen der Weg zur Wirkung. Daten aus dem Netz bleiben Daten. Sie werden nie zu Programmcode, Steuerung oder Konfiguration. Damit fehlt Angriffen wie Injection die Grundlage, nicht nur einer einzelnen Lücke.
Jede Wirkung braucht ihr Gate. Wer im Code eine Wirkung ohne Gate erzeugen will, merkt es sofort. Entscheidungen fallen an wenigen benannten Stellen, werden protokolliert und jede Ablehnung nennt ihren Grund. Ein Fehler in der Logik zeigt sich deshalb früh: beim Entwickeln, im Betrieb und in der Prüfung.
Jeder Vorgang braucht eine Freigabe, die nur am vorgesehenen Gate entsteht. Wer den Code verändert, unterbricht diese Kette. iSCSI4NAS arbeitet dann nicht weiter und zeigt die Stelle. Dazu kommt macOS: Ein verändertes Programm verliert seine Signatur und macOS lädt den Treiber nicht.
Was wäre gewesen, wenn PHP mit Picosegmentation gebaut worden wäre?
Im Oktober 2026 mussten weltweit PHP-Server dringend aktualisiert werden. Zwei Lücken im Kern von PHP erlaubten es, ohne Anmeldung fremden Code auszuführen (CVE-2026-109618 und CVE-2026-109619, behoben in PHP 8.5.12). Bei der ersten bringt ein Upload den Speicher an sein Ende und beim Aufräumen gilt eine halb fertige Anfrage als gültig. Bei der zweiten rutscht Zustand aus einer Anfrage in die nächste.
Beide folgen demselben Muster wie viele Lücken davor: Etwas, das nur Daten sein sollte, erreicht eine Wirkung, für die es nie gedacht war. Genau diesen Weg gibt es mit Picosegmentation nicht. PHP eignet sich deshalb gut für ein Gedankenexperiment. Es geht dabei nicht um Kritik an PHP. Viele der Probleme hat PHP über die Jahre selbst behoben.
Das Grundproblem: Im klassischen PHP gab es für fast alles nur einen Typ, den Text. Dazu kamen vier Eigenschaften:
$_GET, $_POST und $_COOKIE waren in jeder Zeile lesbar, ungeprüft.eval, include und unserialize hebelten jede Ordnung aus.So konnte jeder Wert aus einer Anfrage an jeder Stelle für jede Wirkung benutzt werden: als Datenbankabfrage, als HTML, als Dateiname, als Befehl für die Shell oder als Code. Gelesen heißt nicht vertrauenswürdig. Gespeichert heißt nicht freigegeben.
Der Beweis dauert Sekunden. Nimm eine bekannte Fehlerklasse, bei der Text aus dem Netz eine Wirkung erreicht. Frag dann, über welchen Übergang er dorthin gekommen ist. Mit Picosegmentation gibt es diesen Übergang nicht. Das gilt nicht für einzelne Lücken, sondern für ganze Klassen.
| Fehlerklasse | Was passiert ist | Mit Picosegmentation |
|---|---|---|
| Speicher und Zustand (Oktober 2026) | Ein Upload mit beliebig vielen Kopfzeilen bringt den Speicher an sein Ende. Das Aufräumen behandelt die halb fertige Anfrage als gültig. Zustand aus einer Anfrage wird in der nächsten gelesen. | Der Fehler bleibt in der Zone, die den Upload liest. Aufräumen und Sitzung liegen in eigenen Zonen und nehmen nur an, was ihr Gate freigibt. Eine halb fertige Anfrage ist dort kein gültiger Wert. |
| register_globals | Aus ?admin=1 in der Adresse wurde die Variable $admin im Programm. Daten aus dem Netz wurden direkt zu Programmzustand. | Es gibt keinen Weg von der Anfrage in den Programmzustand. Eingaben erreichen das Programm nur über ein Gate, als geprüfte Werte mit Herkunft. |
| SQL-Injection | Eingaben wurden in Datenbankabfragen eingesetzt und von der Datenbank als Befehl ausgeführt. | Abfragen entstehen nur auf einem eigenen Weg mit Platzhaltern. Ein Eingabewert bleibt ein Wert und wird nie Teil des Befehls. |
| Remote File Inclusion | Mit include($_GET['page']) ließ sich fremder Code von außen laden und ausführen. | Was geladen werden darf, steht in einer festen Liste. Ein Wert aus der Anfrage kann nie zum Ladeziel werden. |
| Fehlerklasse | Was passiert ist | Mit Picosegmentation |
|---|---|---|
| Cross-Site-Scripting | Eingaben landeten ungefiltert im HTML einer Seite und liefen als Skript im Browser anderer Nutzer. | HTML entsteht nur über das Gate für die Ausgabe. Ein Eingabewert bleibt dort Text und wird nie zu Markup oder Skript. |
| Object Injection | unserialize() erzeugte aus Daten aus dem Netz beliebige Objekte. Über deren automatische Methoden ließ sich Code ausführen. | Es entstehen nur festgelegte Typen, jeder über sein eigenes Gate. Daten aus dem Netz können kein Objekt nach Wahl erzeugen. |
| Type Juggling | Der lockere Vergleich "0e123" == "0e456" ergab wahr, weil PHP beide Texte als Zahl las. So ließen sich Anmeldungen umgehen. | Ein Token ist ein eigener Typ mit einem festen Vergleich. Er wird nie als Zahl gelesen. |
| Code aus Eingaben | eval(), preg_replace mit dem Schalter /e oder Funktionsaufrufe mit Namen aus der Anfrage führten Eingaben als Code aus. | Was aufgerufen werden darf, steht fest. Ein Name aus der Anfrage kann nie zu einem Aufruf werden. |
| magic_quotes | PHP hat jede Eingabe pauschal maskiert, ohne zu wissen, wohin sie geht. Das schützte oft nicht und richtete an anderer Stelle Schaden an. | Maskiert wird nur am Gate in die jeweilige Wirkung, passend zu genau dieser Wirkung. Nie pauschal am Eingang. |
| Stelle | Was der Code tut | Was daraus wird |
|---|---|---|
Zend/zend_alloc.czend_mm_safe_error |
Der Speicher reicht nicht mehr. Der Code setzt die Markierung zurück und bricht den Request ab.
|
Der Abbruch führt ins Aufräumen des Requests. Das Aufräumen behandelt den halb fertigen Request als gültig. |
main/rfc1867.cmultipart_buffer_headers |
Jede Kopfzeile eines Uploads wird gespeichert. Eine Grenze für die Anzahl gibt es nicht.
|
Bytes aus dem Upload bestimmen, wie viel Speicher belegt wird. So bringt ein gewöhnlicher Upload den Speicher an sein Ende. |
ext/session/session.cearly_find_sid_in |
Die Sitzung liest globale Werte, bevor der nächste Request seinen eigenen Zustand hat.
|
Was der vorige Request liegen ließ, liest der nächste als seinen eigenen Zustand. |
Segmentierung auf der falschen Ebene. PHP hat Schutz durch Trennung durchaus versucht: mit safe_mode, open_basedir und disable_functions. Das sind grobe Schranken für den ganzen Prozess. Die Wirkungen innerhalb des Codes blieben dabei ungetrennt.
Den sicheren Weg gab es schon. Abfragen mit Platzhaltern kannte PHP seit Langem. Sie waren aber nur eine Möglichkeit unter mehreren. Mit Picosegmentation wären sie der einzige Weg gewesen.
Das Ergebnis: Fehler im Code hätte es weiterhin gegeben. Sie wären aber in ihrer Zone geblieben, weil kein Weg existiert hätte, auf dem ein Text aus dem Netz eine dieser Wirkungen erreicht. Genau so ist iSCSI4NAS gebaut. Was bei PHP Text aus einer Anfrage ist, sind bei iSCSI4NAS die Daten, die vom NAS über das Netz kommen.
Picosegmentation braucht keinen Neuanfang.
Niemand muss dafür Millionen Zeilen Code auf einmal ändern. So wie Microsegmentation Segment für Segment im laufenden Netz entsteht, wächst Picosegmentation Zone für Zone im Code. Man beginnt an der kritischen Stelle, dort, wo aus Daten eine Wirkung wird: wo Daten aus dem Netz hereinkommen, wo gespeichert wird und wo etwas ausgeführt wird.
Schon dieses eine Gate nimmt einem Angriff einen Weg. Jedes weitere Update bringt die nächste Zone, während die Software im Einsatz bleibt. Nach außen ändert sich dabei nichts: Schnittstellen und Verhalten bleiben gleich. Das sind Tage und Wochen, nicht Jahre.
Jeder Block, den du auf deinem NAS speicherst oder liest, läuft durch den Initiator. Darunter können sehr sensible Daten sein.
Ein Angriff auf den Initiator wäre deshalb immer auch ein Angriff auf deine Daten: sie unbemerkt verändern, zwischen Laufwerken vermischen oder an ein fremdes Ziel umleiten. Picosegmentation ist für die Sicherheit des Initiators, für dich und für deine Daten da.
Im Initiator gibt es für solche Angriffe keinen Weg. Die Beschreibung einer Verbindung liegt getrennt von allem, was über das Netz hereinkommt. Daten aus dem Netz können eine Verbindung deshalb nicht umlenken. Ein Lese- oder Schreibvorgang gilt nur für genau die Verbindung und genau das Laufwerk, für die er zugelassen wurde. Und wird das Programm manipuliert, steht es still. Es arbeitet nicht unbemerkt mit veränderten Regeln an deinen Daten weiter.
Auf dem Weg durch dein Netzwerk sind die Daten derzeit unverschlüsselt. Diese Strecke schützt die Netzwerkebene, also dein eigenes Netz zwischen Mac und NAS.
Selbst nachsehen: In der App zeigt iSCSI4NAS unter Diagnostics › Security das Ergebnis des Picosegmentation-Integritätstests und ob die Verbindung zwischen Oberfläche und Kern authentifiziert ist.

iSCSI4NAS ist von der ersten Zeile an picosegmentiert. Jede Wirkung hat ihre Zone, jede Zone ihr Gate. Daten aus dem Netz bleiben Daten. Eine manipulierte App arbeitet nicht weiter. macOS lädt einen Treiber ohne gültige Signatur nicht.