Stručne: Penetračný test vašej aplikácie PHP ukáže, aké slabiny by mohol útočník skutočne zneužiť, skôr než to urobí niekto. Spolu so špecializovanými partnermi preveríme aplikáciu a server v písomne dohodnutom rozsahu a dodáme správu s prioritizovanými opatreniami. Po odstránení v opakovanom teste overíme, či sú medzery uzavreté.
Prečo je penetračný test pre aplikácie PHP zmysluplný
PHP2Shell ukázalo, že aj základ aplikácie, teda samotné PHP, môže obsahovať kritickú zraniteľnosť. Väčšina vlámaní do aplikácií PHP však prebieha cez známe slabiny vo vlastnom kóde alebo v konfigurácii: SQL injection, cross-site scripting, nebezpečné nahrávanie súborov, slabé relácie, zastarané závislosti alebo verejne dostupné administrátorské oblasti. OWASP Top 10 tieto kategórie zhŕňa.
Nezávislý pohľad zvonka nájde to, čo sa v bežnej prevádzke prehliada. Pre vedenie a dohľad poskytuje spoľahlivý základ na posúdenie rizík a cielené využitie rozpočtu. Pre vývojárov je to konkrétny pracovný zoznam.
Audit alebo penetračný test: čo sa hodí k vám?
| Forma | Čo sa preveruje | Hodí sa, keď |
|---|---|---|
| Audit konfigurácie | server, PHP, webový server, prístupy, zálohy | chcete poznať stav infraštruktúry |
| Code review | zdrojový kód aplikácie s nahliadnutím | existujú vlastné vývoje alebo väčšie úpravy |
| Penetračný test black-box | aplikácia zvonka bez predchádzajúcich znalostí | chcete vidieť pohľad externého útočníka |
| Penetračný test grey-/white-box | aplikácia s testovacími účtami alebo kódom | chcete v obmedzenom čase nájsť čo najviac |
Často je zmysluplná kombinácia, napríklad audit konfigurácie servera spolu s grey-box testom aplikácie. Čistý black-box test pôsobí realisticky, ale spotrebuje veľa času skúmaním. S testovacími účtami a nahliadnutím do štruktúry nájdu testeri v tom istom čase spravidla viac slabín.
Popri aplikácii sa oplatí pozrieť sa na prostredie: ktorá verzia PHP beží, sú administrátorské rozhrania verejne dostupné, ležia zálohy vo webovom adresári, sú závislosti aktuálne? Tieto body v audite preveríme tiež, pretože v praxi často vážia viac než jednotlivá chyba v kóde.
Kedy je správny čas na test?
Penetračný test prinesie najviac, ak sa uskutoční v zmysluplnom bode životného cyklu aplikácie. Typické príležitosti sú:
- pred spustením novej aplikácie, obchodu alebo zákazníckeho portálu
- po väčších zmenách, napríklad nových spôsoboch platby, rozhraniach alebo postupoch prihlásenia
- po incidente, keď je vyčistenie a spevnenie zabezpečenia ukončené a chcete nezávislú kontrolu
- v pravidelných intervaloch, ak to vyžadujú zákazníci, partneri alebo vaše riadenie rizík
Málo zmysluplný je test, kým sú otvorené známe medzery. Kto ešte prevádzkuje nezáplatované verzie PHP, mal by najprv vytvoriť základný stav. Inak platíte test za potvrdenie známeho.
Ako konkrétne pomáha PHP SOS?
- Stanoviť rozsah: S vami objasníme, ktoré aplikácie, servery a funkcie sa preveria, aký druh testu sa hodí a čo je výslovne vylúčené. Výsledkom je písomné zadanie s časovým oknom a kontaktnými osobami.
- Pripraviť: Poskytnú sa testovacie účty, prístupy do testovacieho prostredia a aktuálna záloha. Váš poskytovateľ hostingu sa v prípade potreby informuje, aby test nebol zablokovaný ako skutočný útok.
- Preveriť: Naši špecializovaní partneri testujú podľa uznávaných metód, okrem iného podľa kategórií OWASP. Kritické nálezy hlásime okamžite, nie až v záverečnej správe.
- Podať správu: Dostanete správu s manažérskym zhrnutím a technickou časťou.
- Opakovaný test: Po odstránení nájdené slabiny preveríme znova a potvrdíme, čo je uzavreté.
Mnohým nálezom sa dá predísť vopred. Návody k témam SQL injection v PHP, bezpečné nahrávanie súborov a relácie v PHP pomáhajú vývojárom pri príprave.
Čo dostanete a čo potrebujeme
Správa obsahuje každú nájdenú slabinu s popisom, dotknutým miestom, posúdením rizika a konkrétnym odporúčaním na odstránenie. Zhrnutie pre vedenie zaraďuje výsledky bez odborného žargónu. Po opakovanom teste dostanete potvrdenie, ktoré body sú odstránené. Útočné nástroje alebo spustiteľné exploity nie sú súčasťou správy.
Od vás potrebujeme:
- písomné povolenie oprávnenej osoby pre každý testovaný systém, aj keď leží u poskytovateľa hostingu
- testovacie účty s rolami, ktoré sa majú preveriť
- testovacie prostredie alebo súhlas s testovaním v živom prostredí v časovom okne
- technickú kontaktnú osobu počas testu
- pri code review: prístup k repozitáru
Čo nesľubujeme
Penetračný test nenájde každú medzeru. Je to momentka v dohodnutom rozsahu; nové funkcie alebo nové medzery v závislostiach môžu zajtra dať iný obraz. Neuvádzame certifikáty ani pečate, ktoré nemáme, a nevystavujeme potvrdenia, ktoré nahrádzajú zákonné povinnosti. Či test spĺňa vaše povinnosti, napríklad podľa NIS2, si vyjasnite so svojimi odborníkmi na právo a compliance.
Odstránenie nálezov na požiadanie prevezmeme sami alebo spolu s vašou agentúrou. Pre server a konfiguráciu PHP sa ponúka spevnenie zabezpečenia servera.
Časté otázky
Aký je rozdiel medzi bezpečnostným auditom a penetračným testom?
Audit preveruje konfiguráciu, procesy a kód podľa predpisov a skúseností, často s nahliadnutím do systémov. Penetračný test sa cielene a s vaším povolením pokúša zneužiť slabiny, aby ukázal ich skutočný účinok. Oboje sa dopĺňa.
Je penetračný test mojej aplikácie PHP nebezpečný?
Test môže zaťažiť systémy alebo zmeniť údaje. Preto sa rozsah, časové okno a hranice vopred stanovia písomne a odporúčame, kde je to možné, použiť testovacie prostredie. Aktuálna záloha patrí vždy k tomu.
Nájde penetračný test všetky bezpečnostné medzery?
Nie. Test ukáže slabiny, ktoré sa našli v dohodnutom rozsahu a období. Je to momentka a znižuje riziko, ale nedokazuje, že neexistujú ďalšie medzery.
Pomôže penetračný test pri NIS2?
Pravidelné kontroly bezpečnostných opatrení sú bežným stavebným kameňom na plnenie povinností v oblasti riadenia rizík. Aké požiadavky konkrétne platia pre vašu firmu, si prosím vyjasnite s odborníkmi na právo a compliance.