It Snuffleupagus-projekt ûntwikkelet in PHP-module foar it blokkearjen fan kwetsberens

Yn 'e grinzen fan it projekt snuffleupagus ûntwikkelet in module foar ferbining mei de PHP7-tolk, ûntworpen om de feiligens fan 'e omjouwing te ferbetterjen en mienskiplike flaters te blokkearjen dy't liede ta kwetsberens by it útfieren fan PHP-applikaasjes. De module lit jo ek firtuele patches oanmeitsje om spesifike problemen te reparearjen sûnder de boarnekoade fan 'e kwetsbere applikaasje te feroarjen, wat handich is foar gebrûk yn massa-hostingsystemen wêr't it ûnmooglik is om alle brûkersapplikaasjes aktueel te hâlden. De module is skreaun yn C, is ferbûn yn 'e foarm fan in dielde bibleteek ("extension=snuffleupagus.so" yn php.ini) en ferspraat troch lisinsje ûnder LGPL 3.0.

Snuffleupagus jout in regels systeem wêrmei jo te brûken standert sjabloanen te ferbetterjen feiligens, of meitsje dyn eigen regels foar in kontrôle ynfier gegevens en funksje parameters. Bygelyks, de regel "sp.disable_function.function("system").param("kommando").value_r("[$|;&`\\n]").drop();" kinne jo beheine it brûken fan spesjale tekens yn systeem () funksje arguminten sûnder feroarjen de applikaasje. Op deselde manier kinne jo meitsje firtuele patches om bekende kwetsberens te blokkearjen.

Beoardielje troch de tests útfierd troch de ûntwikkelders, Snuffleupagus ferminderet amper prestaasjes. Om syn eigen feiligens te garandearjen (mooglike kwetsberens yn 'e feiligenslaach kinne as in ekstra fektor foar oanfallen tsjinje), brûkt it projekt yngeande testen fan elke commit yn ferskate distribúsjes, brûkt statyske analysesystemen, en koade wurdt opmakke en dokuminteare om kontrôle te ferienfâldigjen.

Ynboude metoaden wurde levere om klassen fan kwetsberens te blokkearjen, lykas problemen, besibbe mei serialisaasje fan gegevens, ûnfeilich gebrûk fan de PHP-post()-funksje, lekkage fan Cookie-ynhâld by XSS-oanfallen, problemen troch it laden fan triemmen mei útfierbere koade (bygelyks yn it formaat phar), minne kwaliteit willekeurige getal generaasje en ferfanging ferkearde XML-konstruksjes.

De folgjende modi wurde stipe om PHP-feiligens te ferbetterjen:

  • Automatysk "feilige" en "samesite" (CSRF-beskerming) flaggen ynskeakelje foar cookies, fersifering Koekje;
  • Ynboude set regels om spoaren fan oanfallen en kompromis fan applikaasjes te identifisearjen;
  • Forced globale aktivearring fan 'e "strikt" (Blokkeart bygelyks in besykjen om in tekenrige op te jaan by it ferwachtsjen fan in heule getal wearde as argumint) en beskerming tsjin type manipulaasje;
  • Standert blokkearje protokol wrappers (bygelyks ferbean "phar://") mei harren eksplisite whitelisting;
  • Ferbod op it útfieren fan triemmen dy't skriuwber binne;
  • Swarte en wite listen foar eval;
  • Fereaske om TLS-sertifikaatkontrôle yn te skeakeljen by it brûken
    curl;

  • It tafoegjen fan HMAC oan serialisearre objekten om te soargjen dat deserialisaasje de gegevens opslein troch de orizjinele applikaasje ophelje;
  • Logging modus oanfreegje;
  • Blokkearje fan laden fan eksterne bestannen yn libxml fia keppelings yn XML-dokuminten;
  • Mooglikheid om eksterne handlers te ferbinen (upload_validation) om uploadde bestannen te kontrolearjen en te scannen;

It projekt waard makke en brûkt om brûkers te beskermjen yn 'e ynfrastruktuer fan ien fan' e grutte Frânske hostingoperators. It wurdt opmurkendat gewoan ferbinen fan Snuffleupagus soe beskermje tsjin in protte fan 'e gefaarlike kwetsberens dy't dit jier identifisearre binne yn Drupal, WordPress en phpBB. Kwetsberheden yn Magento en Horde koene wurde blokkearre troch de modus yn te skeakeljen
"sp.readonly_exec.enable()".

Boarne: opennet.ru

Add a comment