Snuffleupagus projektas kuria PHP modulį pažeidžiamoms vietoms blokuoti

Projekto ribose snuffleupagus vystosi modulis, skirtas prisijungti prie PHP7 interpretatoriaus, skirtas pagerinti aplinkos saugumą ir blokuoti įprastas klaidas, dėl kurių atsiranda pažeidžiamumas naudojant PHP programas. Modulis taip pat leidžia kurti virtualias pataisas, skirtas išspręsti konkrečias problemas, nekeičiant pažeidžiamos programos šaltinio kodo, kurį patogu naudoti masinėse prieglobos sistemose, kuriose neįmanoma atnaujinti visų vartotojų programų. Modulis parašytas C, yra prijungtas kaip bendrai naudojama biblioteka ("extension=snuffleupagus.so" php.ini) ir išplatino licencijuota pagal LGPL 3.0.

„Snuffleupagus“ pateikia taisyklių sistemą, leidžiančią naudoti standartinius šablonus, kad pagerintumėte saugumą, arba sukurti savo taisykles, skirtas įvesties duomenims ir funkcijų parametrams valdyti. Pavyzdžiui, taisyklė "sp.disable_function.function("sistema").param("command").value_r("[$|;&`\\n]").drop();" leidžia apriboti specialiųjų simbolių naudojimą sistemos() funkcijos argumentuose nekeičiant programos. Panašiai galite sukurti virtualūs pleistrai blokuoti žinomus pažeidžiamumus.

Sprendžiant iš kūrėjų atliktų testų, „Snuffleupagus“ beveik nesumažina našumo. Siekiant užtikrinti savo paties saugumą (galimi saugumo sluoksnio pažeidžiamumai gali pasitarnauti kaip papildomas atakų vektorius), projekte naudojamas nuodugnus kiekvieno įsipareigojimo testavimas skirtinguose paskirstymuose, naudojamos statinės analizės sistemos, o kodas formatuojamas ir dokumentuojamas, kad būtų supaprastintas auditas.

Pateikiami integruoti metodai, skirti blokuoti pažeidžiamumo klases, pvz., problemas, susijęs su duomenų serializavimu, nesaugu PHP mail() funkcijos naudojimas, slapukų turinio nutekėjimas XSS atakų metu, problemos dėl failų įkėlimo su vykdomuoju kodu (pvz., formatu phar), prastos kokybės atsitiktinių skaičių generavimas ir pakeitimas neteisingos XML konstrukcijos.

Siekiant pagerinti PHP saugumą, palaikomi šie režimai:

  • Automatiškai įgalinti slapukų žymas „saugi“ ir „tos pačios svetainės“ (CSRF apsauga), šifravimas Slapukas;
  • Integruotas taisyklių rinkinys, leidžiantis nustatyti atakų pėdsakus ir programų kompromisus;
  • Priverstinis visuotinis "Griežtas" (pavyzdžiui, blokuoja bandymą nurodyti eilutę, kai tikimasi sveikojo skaičiaus reikšmės kaip argumento) ir apsauga nuo tipo manipuliacija;
  • Numatytasis blokavimas protokolų įvynioklius (pavyzdžiui, uždraudžiant „phar://“) aiškiai įtraukiant į baltąjį sąrašą;
  • Draudimas vykdyti failus, kuriuos galima įrašyti;
  • Juodieji ir baltieji eval sąrašai;
  • Būtinas norint įjungti TLS sertifikato tikrinimą naudojant
    garbanoti;

  • HMAC įtraukimas į serijinius objektus, siekiant užtikrinti, kad deserializavimas nuskaitytų pradinės programos saugomus duomenis;
  • Užklausos registravimo režimas;
  • Blokuoti išorinių failų įkėlimą į libxml naudojant nuorodas XML dokumentuose;
  • Galimybė prijungti išorines tvarkykles (upload_validation), kad būtų galima patikrinti ir nuskaityti įkeltus failus;

Projektas buvo sukurtas ir naudojamas vartotojų apsaugai vieno iš didžiųjų Prancūzijos prieglobos operatorių infrastruktūroje. Pažymimakad tiesiog „Snuffleupagus“ prijungimas apsaugotų nuo daugelio šiais metais nustatytų pavojingų „Drupal“, „WordPress“ ir phpBB pažeidžiamumų. „Magento“ ir „Horde“ pažeidžiamumas gali būti užblokuotas įjungus režimą
"sp.readonly_exec.enable()".

Šaltinis: opennet.ru

Добавить комментарий