Stručně: Penetrační test vaší aplikace v PHP ukáže, které slabiny by útočník skutečně mohl zneužít, dřív než to udělá někdo jiný. Společně se specializovanými partnery zkontrolujeme aplikaci i server v písemně dohodnutém rozsahu a dodáme zprávu s prioritizovanými opatřeními. Po odstranění nedostatků v opakovaném testu ověříme, zda jsou zranitelnosti uzavřeny.
Proč má penetrační test aplikací v PHP smysl
PHP2Shell ukázal, že i základ aplikace, tedy samotné PHP, může obsahovat kritickou zranitelnost. Většina průniků do aplikací v PHP ale vede přes známé slabiny ve vlastním kódu nebo konfiguraci: SQL injection, cross-site scripting, nebezpečné nahrávání souborů, slabé session, zastaralé závislosti nebo veřejně dostupné administrátorské oblasti. OWASP Top 10 tyto kategorie shrnuje.
Nezávislý pohled zvenčí najde to, co se v každodenním provozu přehlédne. Pro vedení a dohled poskytuje spolehlivý základ k odhadu rizik a cílenému nasazení rozpočtu. Pro vývojáře je to konkrétní seznam úkolů.
Audit, nebo penetrační test: co se hodí pro vás?
| Forma | Co se kontroluje | Hodí se, když |
|---|---|---|
| Audit konfigurace | server, PHP, webový server, přístupy, zálohy | chcete znát stav infrastruktury |
| Revize kódu | zdrojový kód aplikace s náhledem | existují vlastní vývoje nebo větší úpravy |
| Penetrační test black-box | aplikace zvenčí bez předchozích znalostí | chcete vidět pohled externího útočníka |
| Penetrační test grey-box/white-box | aplikace s testovacími účty nebo kódem | chcete v omezeném čase najít co nejvíce |
Často dává smysl kombinace, například audit konfigurace serveru společně s grey-box testem aplikace. Čistý black-box test působí realisticky, ale spotřebuje hodně času na průzkum. S testovacími účty a náhledem do struktury najdou kontroloři ve stejném čase zpravidla více slabin.
Kromě aplikace stojí za pohled i prostředí: jaká verze PHP běží, jsou administrátorská rozhraní veřejně dostupná, leží zálohy ve webovém adresáři, jsou závislosti aktuální? Tyto body zahrnujeme do auditu, protože v praxi často váží víc než jednotlivá chyba v kódu.
Kdy je správný čas na test?
Penetrační test přinese nejvíce, pokud proběhne ve smysluplném bodě životního cyklu aplikace. Typické příležitosti jsou:
- před spuštěním nové aplikace, e-shopu nebo zákaznického portálu
- po větších změnách, například nových platebních metodách, rozhraních nebo způsobech přihlášení
- po incidentu, když je vyčištění a hardening dokončen a chcete nezávislou kontrolu
- v pravidelných intervalech, pokud to požadují zákazníci, partneři nebo vaše řízení rizik
Málo smysluplný je test, dokud jsou otevřené známé zranitelnosti. Kdo stále provozuje nezáplatované verze PHP, měl by nejprve vytvořit základní stav. Jinak zaplatíte za test, který potvrdí to, co už je známo.
Jak konkrétně pomáhá PHP SOS?
- Stanovení rozsahu: S vámi ujasníme, které aplikace, servery a funkce se budou kontrolovat, jaký druh testu se hodí a co je výslovně vyloučeno. Výsledkem je písemná objednávka s časovým oknem a kontaktními osobami.
- Příprava: Připraví se testovací účty, přístupy do testovacího prostředí a aktuální záloha. Váš poskytovatel hostingu je podle potřeby informován, aby test nebyl zablokován jako skutečný útok.
- Kontrola: Naši specializovaní partneři testují podle uznávaných metod, mimo jiné podle kategorií OWASP. Kritické nálezy hlásíme okamžitě, ne až v závěrečné zprávě.
- Zpráva: Obdržíte zprávu s manažerským shrnutím a technickou částí.
- Opakovaný test: Po odstranění nedostatků nalezené slabiny znovu zkontrolujeme a potvrdíme, co je uzavřeno.
Mnoha nálezům lze předejít už předem. Vývojářům při přípravě pomohou poradenské články SQL injection v PHP, Bezpečné nahrávání souborů a Session v PHP.
Co získáte a co potřebujeme
Zpráva obsahuje každou nalezenou slabinu s popisem, dotčeným místem, hodnocením rizika a konkrétním doporučením k odstranění. Shrnutí pro vedení zařazuje výsledky bez odborného žargonu. Po opakovaném testu obdržíte potvrzení, které body jsou odstraněny. Útočné nástroje ani spustitelné exploity nejsou součástí zprávy.
Od vás potřebujeme:
- písemné svolení oprávněné osoby pro každý testovaný systém, i když leží u poskytovatele hostingu
- testovací účty s rolemi, které se mají kontrolovat
- testovací prostředí nebo svolení testovat v ostrém prostředí v časovém okně
- technickou kontaktní osobu během testu
- při revizi kódu: přístup do repozitáře
Co neslibujeme
Penetrační test nenajde každou zranitelnost. Je to momentka v dohodnutém rozsahu; nové funkce nebo nové zranitelnosti v závislostech mohou zítra přinést jiný obraz. Neuvádíme certifikáty ani pečeti, které nemáme, a nevystavujeme osvědčení, která by nahrazovala zákonné povinnosti. Zda test splňuje vaše povinnosti například podle NIS2, ujasněte s odborníky na právo a compliance.
Odstranění nálezů provedeme na přání sami nebo společně s vaší agenturou. Pro server a konfiguraci PHP se nabízí hardening serveru.
Časté dotazy
Jaký je rozdíl mezi bezpečnostním auditem a penetračním testem?
Audit zkoumá konfiguraci, procesy a kód podle požadavků a zkušeností, často s náhledem do systémů. Penetrační test se cíleně a s vaším svolením pokouší zranitelnosti zneužít, aby ukázal jejich skutečný dopad. Obojí se doplňuje.
Je penetrační test mé aplikace v PHP nebezpečný?
Test může systémy zatížit nebo změnit data. Proto se rozsah, časové okno a hranice předem písemně stanoví a doporučujeme, kde je to možné, využít testovací prostředí. Aktuální záloha k tomu patří vždy.
Najde penetrační test všechny bezpečnostní zranitelnosti?
Ne. Test ukáže slabiny, které byly nalezeny v dohodnutém rozsahu a čase. Je to momentka a snižuje riziko, ale nedokazuje, že neexistují další zranitelnosti.
Pomůže penetrační test s NIS2?
Pravidelné kontroly bezpečnostních opatření jsou obvyklou součástí plnění povinností v oblasti řízení rizik. Jaké požadavky se konkrétně vztahují na vaši firmu, ujasněte prosím s odborníky na právo a compliance.