Projekt Snuffleupagus vyvíja PHP modul na blokovanie zraniteľností

V hraniciach projektu snuffleupagus sa vyvíja modul pre pripojenie k PHP7 interpreteru, určený na zlepšenie bezpečnosti prostredia a blokovanie bežných chýb, ktoré vedú k zraniteľnostiam pri behu PHP aplikácií. Modul tiež umožňuje vytvárať virtuálne záplaty na opravu špecifických problémov bez zmeny zdrojového kódu zraniteľnej aplikácie, čo je vhodné na použitie v systémoch hromadného hostingu, kde nie je možné udržiavať všetky používateľské aplikácie aktuálne. Modul je napísaný v jazyku C, je pripojený vo forme zdieľanej knižnice („extension=snuffleupagus.so“ v php.ini) a distribuovaný licencované podľa LGPL 3.0.

Snuffleupagus poskytuje systém pravidiel, ktorý vám umožňuje používať štandardné šablóny na zlepšenie bezpečnosti alebo vytvárať vlastné pravidlá na riadenie vstupných údajov a parametrov funkcií. Napríklad pravidlo „sp.disable_function.function(“system”).param(“command”).value_r(“[$|;&`\\n]”).drop();” umožňuje obmedziť používanie špeciálnych znakov v argumentoch funkcie system() bez zmeny aplikácie. Podobne môžete vytvárať virtuálne záplaty na blokovanie známych zraniteľností.

Súdiac podľa testov vykonaných vývojármi, Snuffleupagus takmer neznižuje výkon. Na zaistenie vlastnej bezpečnosti (možné zraniteľnosti v bezpečnostnej vrstve môžu slúžiť ako dodatočný vektor útokov) projekt využíva dôkladné testovanie každého odovzdania v rôznych distribúciách, používa systémy statickej analýzy a kód je naformátovaný a zdokumentovaný, aby sa zjednodušil audit.

Poskytujú sa vstavané metódy na blokovanie tried zraniteľností, ako sú problémy, súvisiace so serializáciou dát, nebezpečné používanie funkcie PHP mail(), únik obsahu cookies počas XSS útokov, problémy spôsobené načítaním súborov so spustiteľným kódom (napríklad vo formáte phar), nekvalitné generovanie náhodných čísel a substitúcia nesprávne konštrukcie XML.

Na zvýšenie bezpečnosti PHP sú podporované nasledujúce režimy:

  • Automaticky povoliť príznaky „secure“ a „samesite“ (ochrana CSRF) pre súbory cookie, šifrovanie cookie;
  • Zabudovaný súbor pravidiel na identifikáciu stôp po útokoch a kompromitácii aplikácií;
  • Nútená globálna aktivácia „prísny" (napríklad blokuje pokus zadať reťazec pri očakávaní celočíselnej hodnoty ako argumentu) a ochranu proti manipulácia s typom;
  • Predvolené blokovanie obaly protokolov (napríklad zákaz "phar://") s ich explicitným pridaním na bielu listinu;
  • Zákaz spúšťania súborov, do ktorých je možné zapisovať;
  • Čiernobiele zoznamy pre hodnotenie;
  • Vyžaduje sa na povolenie kontroly certifikátu TLS pri používaní
    zvlnenie;

  • Pridanie HMAC do serializovaných objektov, aby sa zabezpečilo, že deserializácia získa údaje uložené v pôvodnej aplikácii;
  • Vyžiadať režim protokolovania;
  • Blokovanie načítania externých súborov v libxml prostredníctvom odkazov v dokumentoch XML;
  • Schopnosť pripojiť externé obslužné programy (upload_validation) na kontrolu a skenovanie nahraných súborov;

Projekt bol vytvorený a používaný na ochranu používateľov v infraštruktúre jedného z veľkých francúzskych hostingových operátorov. Je poznamenanéže jednoduché pripojenie Snuffleupagus by ochránilo pred mnohými nebezpečnými zraniteľnosťami identifikovanými tento rok v Drupale, WordPress a phpBB. Zraniteľnosť v Magento a Horde by mohla byť zablokovaná povolením režimu
"sp.readonly_exec.enable()".

Zdroj: opennet.ru

Pridať komentár