A Syswall egy új fejlesztés, amelynek célja a dinamikus tűzfal hasonlóságának megteremtése, hogy kiszűrje az alkalmazások hozzáférését a rendszerhívásokhoz. A projekt kódja Rust nyelven íródott, a licenc nincs megadva.
Ez az új fejlemény úgy néz ki, mint a strace segédprogram interaktív verziója, és lehetővé teszi, hogy nyomon kövesse a program minden rendszerhívását. A legfontosabb különbség az, hogy a rendszerhívásokról és azok végrehajtásának eredményeiről szóló információk megjelenítése mellett.
A Syswallról
syswall támogatja az interaktív módot amelyben a figyelt folyamatot leállítják, mielőtt rendszerhívást kezdeményeznének és a felhasználót arra kéri, hogy folytassa vagy hagyja figyelmen kívül a műveletet (például figyelemmel kísérheti az egyes fájlok vagy hálózati kapcsolati folyamatok megnyitásának kísérleteit).
A Syswall statisztikákat is gyűjthet az elvégzett rendszerhívásokról, és ezek alapján jelentést generálhat.
A syswall céljai a következők:
hogy a strace továbbfejlesztett változatának biztosítása ami könnyebben meghatározható, hogy a szoftver valójában mit csinál.
Biztosítson környezetet a szoftver teszteléséhez és kísérletezéséhez, lehetővé téve a rendszerhívások engedélyezésének és elutasításának részletes és interaktív megközelítését.
Minden folyamathoz tartozik egy konfigurációs fájl
Minden folyamatnál se egy konfigurációs fájlt összekapcsolhat a kifejezetten engedélyezett vagy blokkolt rendszerhívások listájával.
Támogatott hívások esetén a syswall lehetővé teszi a felhasználó számára a következő műveletek végrehajtását:
- Engedélyezze a syscall-ot egyszer
- Mindig engedélyezze az adott rendszerhívást
- A syscall egyszeri letiltása (kemény vagy puha)
- Mindig blokkolja az adott rendszerhívást (kemény vagy puha)
- Blokkoláskor a program végre tud hajtani egy blokkot (kemény vagy lágy).
Az interaktív munkamenet során lehetőség van adott rendszerhívások engedélyezésére vagy blokkolására futás közben, és a rendszerhívás esetleges hívásaira, függetlenül a program elérési helyétől.
A blokkolás "kemény" és "puha" módban támogatott.
A zárak típusai
Az első esetben a rendszerhívást nem hajtják végre, és a hozzáférési hibakódot elküldi a folyamatnak. A második esetben a rendszerhívást sem hajtják végre, de a folyamat egy fiktív sikeres visszatérési kódot kap, szimulálva a rendszerhívás sikeres végrehajtását.
Például jelenleg csak a fájlműveletekkel kapcsolatos rendszerhívás-elemzés támogatott.
A kemény blokk megakadályozza a syscall futtatását, és visszautasított hibát ad vissza a gyermek folyamatnak. Másrészről, a puha zár megakadályozza a syscall-ot, de megpróbál megfelelő választ adni a gyermek folyamatára, mintha a syscall-ot valóban végrehajtották volna.
Ebben az esetben a megerősítési kérelmek csak akkor jelennek meg, ha azok speciálisan tárcsázott vagy korábban hiányzó rendszerhívásokra vonatkoznak.
Mentsen és töltsön be egy folyamatkonfigurációt.
A végrehajtás során hozott döntéseket JSON fájlba lehet menteni. Ez a fájl egy másik futtatás során betölthető, így a fenti opciók használhatók.
Ez folyamatban lévő munka - mindig csak az engedélyezett / letiltott válaszokat menti a rendszer.
információ
Amikor a gyermekfolyamat befejeződik, a syswall rövid jelentést ad ki a gyermekfolyamat rendszerhívásairól. Jelenleg az összes nyitott vagy zárolt fájlból áll, de a későbbi kiadásokban bővíteni fogjuk.
A projekt még mindig egy funkcionális prototípus stádiumában van, és nem minden megvalósított lehetőség valósul meg.
Van még mit fejleszteni
A projekt nagy tennivalókkal rendelkezik, a jövőben a rendszerhívások további osztályainak támogatását tervezik kiegészíteni, lképesség a rendszerhíváshoz továbbított argumentumok figyelembevételével, a folyamatállapot fájlba mentésének módja a tevékenységek későbbi összehasonlításához a különböző programindítások során (például a fájlok listájának és a hálózati kapcsolatok összehasonlításához), opció a dinamikus könyvtárak betöltésének figyelmen kívül hagyása és a tipikus beállításkészlet támogatása (például zároljon minden foglalatot, de engedélyezze a fájlok elérését).