Az Amazon kiadta a Rexet, egy nyílt forráskódú runtime-ot, amely úgy javítja a szkriptek biztonságát, hogy a rendszer műveleteinek engedélyezése előtt érvényesíti az autorizációs szabályokat.
A Rex (a TRusted Remote Execution rövidítése) a szkripteket Cedar szabályokkal párosítja, és futásidőben minden műveletet ezekhez a szabályokhoz ellenőriz. A szkriptek Rhai nyelven készülnek, ami egy könnyű nyelv, beépített rendszerhozzáférés nélkül. A host elérése csak a Rex által biztosított műveleteken keresztül lehetséges, és mindegyikhez autorizáció szükséges a végrehajtás előtt.
A projekt alapötlete egyszerű: egy gyakori automatizálási problémát kezel, amikor a szkriptek sokszor öröklik a futtatási környezet jogosultságait. Például egy naplófájl ellenőrzésére szánt szkript a környezettől kapott engedélyek miatt fájlokat is módosíthat vagy törölhet. A Rex szétválasztja a szkript tervezett műveleteit a host tulajdonosa által megadott jogosultságoktól.
Az Amazon szerint ez különösen fontos az AI-ügynököknél, ahol a szkriptek dinamikusan, emberi ellenőrzés nélkül is létrejöhetnek, így nem nézi át senki az egyes rendszerhívásokat. Problémát okozhat a hallucinált kód, a prompt injection vagy a feladat túl tág értelmezése. A Rex minden olyan műveletet megtagad, amit a szabály nem engedélyez.
A háttérben a Rex a Cedarre, az Amazon szabálynyelvére támaszkodik a szkriptek hozzáféréseinek meghatározásához. A szabályok engedélyezhetik vagy tilthatják például a fájlok megnyitását, könyvtárak olvasását, adatok írását, hostnevek feloldását és más műveleteket. A szkriptek nem férnek hozzá közvetlenül a hosthoz; minden műveletet a runtime által biztosított, Rust-alapú API-kon keresztül közvetít.
A projekt GitHub tárolója szerint a Rex egy sandboxolt Rhai szkriptvégrehajtó motor, amely minden rendszer-műveletre Cedar autorizációt alkalmaz. Finomhangolt autorizációs ellenőrzésekkel szabályozza a fájl I/O-t, a hálózati hozzáférést, a folyamatkezelést és a rendszerlekérdezéseket. A Rex emellett, ahol lehet, útvonalak helyett file descriptorokat használ, hogy csökkentse a symlinkekkel és a race conditionökkel kapcsolatos kockázatokat.
Az adminisztrátorok Cedar szabályt határoznak meg, majd a Rhai szkripteket a
rex-runner
segítségével futtatják. Ha egy szkript olyan műveletet próbál végrehajtani, amit a szabály nem engedélyez, a Rex blokkolja, és autorizációs hibát ad vissza. Például ha egy szkript fájlt próbál létrehozni és írni, miközben a szabály csak olvasást enged, az írási kísérlet sikertelen lesz, amíg nem frissítik a szabályt.
A Rex Linuxra és macOS-re is elérhető, és a Rust Cargo csomagkezelőjével telepíthető a cargo install rex-runner paranccsal. A projekt Apache 2.0 licenc alatt érhető el, a fejlesztés pedig nyilvánosan zajlik a GitHub-on.
További részletekért nézd meg a projekt dokumentációját.

