A Snuffleupagus projekt PHP modult fejleszt a sebezhetőségek blokkolására
A projekt határain belül snuffleupagusfejlődik egy modul a PHP7 értelmezőhöz való csatlakozáshoz, amelyet a környezet biztonságának javítására és a PHP-alkalmazások futtatásának sebezhetőségéhez vezető gyakori hibák blokkolására terveztek. A modul lehetővé teszi virtuális javítások létrehozását is az egyes problémák megoldására a sérülékeny alkalmazás forráskódjának megváltoztatása nélkül, ami kényelmesen használható tömeges hosting rendszerekben, ahol lehetetlen minden felhasználói alkalmazást naprakészen tartani. A modul C nyelven íródott, megosztott könyvtár formájában csatlakozik ("extension=snuffleupagus.so" a php.ini-ben) és forgalmazza LGPL 3.0 licenccel.
A Snuffleupagus olyan szabályrendszert biztosít, amely lehetővé teszi szabványos sablonok használatát a biztonság javítása érdekében, vagy saját szabályok létrehozását a bemeneti adatok és a funkcióparaméterek vezérléséhez. Például az "sp.disable_function.function("rendszer").param("command").value_r("[$|;&`\\n]").drop();" lehetővé teszi, hogy korlátozza a speciális karakterek használatát a system() függvény argumentumaiban az alkalmazás megváltoztatása nélkül. Hasonlóképpen létrehozhat virtuális javítások az ismert sebezhetőségek blokkolására.
A fejlesztők által végzett tesztek alapján a Snuffleupagus alig csökkenti a teljesítményt. A projekt saját biztonsága érdekében (a biztonsági réteg esetleges sérülékenységei további támadási vektorként szolgálhatnak) a projekt minden egyes véglegesítés alapos tesztelését végzi el a különböző disztribúciókban, statikus elemző rendszereket használ, a kód formázása és dokumentálása az auditálás egyszerűsítése érdekében történik.
Beépített módszerek állnak rendelkezésre a sebezhetőségi osztályok blokkolására, mint például a problémák, összefüggő adatsorosítással, nem biztonságos PHP mail() függvény használata, Cookie-tartalom kiszivárgása XSS-támadások során, problémák futtatható kóddal (például formátumban) phar), rossz minőségű véletlenszám generálás és helyettesítés helytelen XML konstrukciók.
A következő módok támogatottak a PHP biztonságának fokozása érdekében:
Automatikusan engedélyezze a „biztonságos” és „samesite” (CSRF-védelem) jelzőket a cookie-k számára, Titkosítás Aprósütemény;
Beépített szabálykészlet a támadások nyomainak és az alkalmazások kompromittálásának azonosítására;
Kényszerített globális aktiválása a "szigorú" (például blokkolja a karakterlánc megadására irányuló kísérletet, amikor egész értéket vár argumentumként) és védelmet típusú manipuláció;
Alapértelmezés szerint blokkolva protokoll burkolók (például a "phar://" kitiltása) kifejezett engedélyezési listájukkal;
Írható fájlok végrehajtásának tilalma;
Fekete-fehér listák az eval számára;
Szükséges a TLS-tanúsítvány-ellenőrzés engedélyezéséhez használat közben
becsavar;
HMAC hozzáadása a szerializált objektumokhoz annak biztosítására, hogy a deszerializálás lekérje az eredeti alkalmazás által tárolt adatokat;
Kérjen naplózási módot;
Külső fájlok betöltésének blokkolása a libxml-ben az XML dokumentumokban lévő hivatkozásokon keresztül;
Külső kezelők csatlakoztatásának képessége (upload_validation) a feltöltött fájlok ellenőrzéséhez és vizsgálatához;
A projektet az egyik nagy francia hosting szolgáltató infrastruktúrájának felhasználói védelmére hozták létre és használták. Megjegyezzükhogy a Snuffleupagus egyszerű csatlakoztatása védelmet nyújtana a Drupal, a WordPress és a phpBB idén azonosított számos veszélyes sebezhetősége ellen. A Magento és a Horde sebezhetőségei blokkolhatók a mód engedélyezésével
"sp.readonly_exec.enable()".