Snuffleupagus-projekti kehittää PHP-moduulia haavoittuvuuksien estämiseen

Projektin rajoissa snuffleupagus on kehittymässä PHP7-tulkkiin yhdistävä moduuli, joka on suunniteltu parantamaan ympäristön turvallisuutta ja estämään yleiset virheet, jotka johtavat PHP-sovellusten haavoittuvuuksiin. Moduulin avulla voit myös luoda virtuaalisia korjaustiedostoja tiettyjen ongelmien korjaamiseksi muuttamatta haavoittuvan sovelluksen lähdekoodia, mikä on kätevää käytettäväksi massahosting-järjestelmissä, joissa on mahdotonta pitää kaikkia käyttäjien sovelluksia ajan tasalla. Moduuli on kirjoitettu C-kielellä, se on yhdistetty jaetun kirjaston muodossa ("extension=snuffleupagus.so" php.inissä) ja jakelija lisensoitu LGPL 3.0:lla.

Snuffleupagus tarjoaa sääntöjärjestelmän, jonka avulla voit käyttää vakiomalleja turvallisuuden parantamiseksi tai luoda omia sääntöjä syötetietojen ja toimintoparametrien ohjaamiseen. Esimerkiksi sääntö "sp.disable_function.function("system").param("komento").value_r("[$|;&`\\n]").drop();" voit rajoittaa erikoismerkkien käyttöä system()-funktion argumenteissa ilman, että muutat sovellusta. Samalla tavalla voit luoda virtuaalisia korjaustiedostoja estämään tunnetut haavoittuvuudet.

Kehittäjien tekemien testien perusteella Snuffleupagus tuskin heikentää suorituskykyä. Oman turvallisuutensa varmistamiseksi (suojauskerroksen mahdolliset haavoittuvuudet voivat toimia lisävektorina hyökkäyksille) projekti testaa perusteellisesti jokaisen commitin eri jakeluissa, käyttää staattisia analyysijärjestelmiä ja koodi formatoidaan ja dokumentoidaan auditoinnin yksinkertaistamiseksi.

Sisäänrakennettuja menetelmiä tarjotaan haavoittuvuuksien, kuten ongelmien, liittyvät tietojen serialisoinnin kanssa, turvaton PHP mail() -funktion käyttö, evästeen sisällön vuotaminen XSS-hyökkäysten aikana, suoritettavan koodin tiedostojen lataamisesta johtuvat ongelmat (esimerkiksi muodossa phar), huonolaatuinen satunnaislukujen luominen ja korvaaminen virheellisiä XML-rakenteita.

Seuraavia tiloja tuetaan PHP-suojauksen parantamiseksi:

  • Ota automaattisesti käyttöön "secure" ja "samesite" (CSRF-suojaus) -liput evästeille, salaus Evästeet;
  • Sisäänrakennettu sääntösarja hyökkäysten ja sovellusten vaarantumisen jälkien tunnistamiseksi;
  • Pakotettu globaali aktivointitiukka" (estää esimerkiksi yrityksen määrittää merkkijono, kun argumenttina odotetaan kokonaislukuarvoa) ja suojaus tyyppinen manipulointi;
  • Oletusesto protokollakääreet (esimerkiksi kieltää "phar://") niiden nimenomaisella sallittujen luettelolla;
  • Kielto suorittaa tiedostoja, jotka ovat kirjoitettavissa;
  • Mustat ja valkoiset listat evalille;
  • Vaaditaan, jotta TLS-varmenteen tarkistus otetaan käyttöön käytön aikana
    kiemura;

  • HMAC:n lisääminen serialisoituihin objekteihin sen varmistamiseksi, että deserialointi noutaa alkuperäisen sovelluksen tallentamat tiedot;
  • Pyydä kirjaustilaa;
  • Ulkoisten libxml-tiedostojen lataamisen estäminen XML-dokumenttien linkkien kautta;
  • Mahdollisuus liittää ulkoiset käsittelijät (upload_validation) ladattujen tiedostojen tarkistamiseen ja skannaukseen;

Projekti luotiin ja sitä käytettiin suojelemaan käyttäjiä yhden suuren ranskalaisen hosting-operaattorin infrastruktuurissa. On huomattavaettä pelkkä Snuffleupaguksen yhdistäminen suojaa monilta vaarallisilta haavoittuvuuksilta, jotka tunnistettiin tänä vuonna Drupalissa, WordPressissä ja phpBB:ssä. Magenton ja Horden haavoittuvuudet voidaan estää ottamalla tila käyttöön
"sp.readonly_exec.enable()".

Lähde: opennet.ru

Lisää kommentti