Īsi sakot: Pentests vai ievainojamību skenēšana nav jautājums „vai nu, vai”, bet secības jautājums. Ievainojamību skenēšana automatizēti atrod zināmas nepilnības un nepareizas konfigurācijas, ātri un lēti, bet ar kļūdainiem trauksmes signāliem un aklajām zonām. Penetrācijas tests mērķtiecīgi pārbauda, ko uzbrucējs tiešām varētu sasniegt. Bug Bounty programma atver pārbaudi ārējiem pētniekiem un atmaksājas tikai tad, kad skenēšana un pentesti ir kļuvuši par rutīnu. Lielākajai daļai MVU secība ir: regulāri skenēt, novērst konstatējumus, mērķtiecīgi pasūtīt testu, izveidot nepilnību ziņošanas vietu.
Kāpēc jautājums pēc PHP2Shell tiek uzdots no jauna
Kas pēc PHP2Shell pārbauda savu vietni ar tiešsaistes skeneri, var saņemt mulsinošus rezultātus. Viens skeneris, iespējams, ziņo par kritisku nepilnību, kaut gan hostinga pakalpojumu sniedzējs ielāpu ir apstiprinājis. Cits neziņo neko, kaut gan serveris joprojām izmanto veco PHP versiju, jo versijas norāde ir paslēpta.
Cēlonis ir darbības veidā. Daudzi skeneri ievainojamību atvasina no parādītās versijas. Distribūcijas tomēr uzstāda atpakaļportējumus (backport), nemainot versijas numuru; saskaņā ar ziņojumiem, piemēram, Ubuntu 24.04 pēc atjauninājuma joprojām rāda 8.3.6. Kāpēc tā ir, izskaidro Kāpēc php -v pēc atjauninājuma rāda to pašu numuru. Uzticamu apliecinājumu dod pakotnes izmaiņu žurnāls, skatiet PHP versijas un ielāpa stāvokļa pareiza pārbaude.
Tas nav arguments pret skeneriem, bet arguments zināt to robežas un apvienot tos ar citām metodēm.
Pentests vai ievainojamību skenēšana: trīs metodes salīdzinājumā
| Kritērijs | Ievainojamību skenēšana | Penetrācijas tests | Bug Bounty |
|---|---|---|---|
| Kurš pārbauda? | Automatizēts rīks | Pasūtīti speciālisti | Ārēji pētnieki, bieži caur platformu |
| Ko atrod? | Zināmas nepilnības, novecojušas versijas, nepareizas konfigurācijas | Izmantojamas ievainojamības, loģikas kļūdas, ķēdes | Ko pētnieki atrod un ziņo, bieži neparasto |
| Dziļums | Plaša, bet virspusēja | Dziļi saskaņotajā apjomā | Atšķirīgs, atkarīgs no dalībniekiem |
| Kļūdaini trauksmes signāli | Bieži | Reti, konstatējumi tiek pierādīti | Daudz ziņojumu, kas jānovērtē |
| Plānojamība | Augsta, patvaļīgi atkārtojama | Augsta, fiksēts laika posms un apjoms | Zema, ziņojumi nāk nepārtraukti |
| Priekšnosacījumi uzņēmumā | Kāds, kas novērtē rezultātus | Saskaņots apjoms, testa vide vai apkopes logs | Nobriedis process novērtēšanai, novēršanai un atlīdzībai |
| Tipisks pielietojums | Pastāvīgi, piemēram, ikmēneša vai pēc izmaiņām | Pirms palaišanas, pēc lielākām izmaiņām, regulāri | Papildus nobriedušām, pakļautām lietojumprogrammām |
Neviena metode neaizstāj citas. Skenēšana īsā laikā parāda daudz, pentests parāda to, kas tiešām ir svarīgi, un Bug Bounty atrod to, par ko neviens nedomāja.
Skeneriem vērts paskatīties vēlreiz uz skenēšanas veidu. Skenēšana no ārpuses redz tikai to, ko redz katrs apmeklētājs, un versijas bieži jāmin no servera atbildēm. Autentificēta skenēšana, kurā rīks ar savām piekļuves datiem nolasa uzstādītās pakotnes serverī, dod ievērojami uzticamākus rezultātus, īpaši attiecībā uz PHP faktisko pakotnes stāvokli. Tomēr tai jāiestata ierobežota piekļuve un tā labi jāaizsargā. Paša PHP lietojumprogrammu atkarībām savukārt ir savi pārbaudes rīki, piemēram, composer audit Composer pakotnēm.
Lietderīgā secība MVU
- Inventārs un skenēšana: vispirms zināt, kādas vietnes un serveri pastāv, tad regulāri skenēt. Konstatējumus nepārņemt nepārbaudītus, bet novērtēt.
- Novērst pamatus: novērst novecojušu programmatūru, trūkstošus atjauninājumus un acīmredzamas nepareizas konfigurācijas. Pentestu pasūtīt neielāpotām sistēmām ir budžeta izšķiešana.
- Mērķtiecīgs penetrācijas tests: svarīgākajām lietojumprogrammām, piemēram, veikalam, klientu portālam vai saskarnēm, ar skaidri saskaņotu apjomu un atkārtotu testu.
- Koda pārbaude pašu izstrādnēm: kas darbina savas PHP lietojumprogrammas, tas testu papildina ar pirmkoda pārskatu. Kā tas norit, apraksta PHP projektu drošības koda pārskats (Code Review).
- Nepilnību ziņošanas vieta: politika, kā ārēji var ziņot par nepilnībām, un security.txt fails pēc RFC 9116 vietā
/.well-known/security.txtar kontaktu un derīguma beigu datumu. - Bug Bounty, kad pamati ir sakārtoti: tikai tad, kad ziņojumi tiek uzticami novērtēti un nepilnības ātri novērstas.
Lai no tā rastos pastāvīga norise, vērts apskatīt Ievainojamību pārvaldība vidējiem uzņēmumiem.
Ko nespēj neviena no metodēm
Neviena pārbaudes metode nepierāda, ka sistēma ir droša. Tā rāda tikai to, kas konkrētā laikā ar noteiktām metodēm tika atrasts. Tīrs pentesta ziņojums no pavasara neko neizsaka par nepilnību, kāda ir PHP2Shell, kas kļūst zināma oktobrī.
Tāpat ne skenēšana, ne pentests neatbild uz jautājumu, vai serveris jau ir kompromitēts. Tam vajadzīga pēdu meklēšana pašā sistēmā: procesi, faili, cron uzdevumi, konti, savienojumi. Tas ir atsevišķs uzdevums ar savām metodēm.
Pārbaudīt ļaujiet tikai sistēmas, uz kurām jums ir tiesības, un hostētu sistēmu gadījumā iepriekš noskaidrojiet pakalpojumu sniedzēja noteikumus. Penetrācijas testam vajadzīgs rakstveida pasūtījums ar apjomu, laika posmu un kontaktpersonām.
Kad ārējs tests nav vajadzīgs
Vienkāršai uzņēmuma vietnei bez veidlapām ar sensitīviem datiem, pie hostinga pakalpojumu sniedzēja, kas atjauninājumus uzstāda uzticami, bieži pietiek ar regulāru skenēšanu ar kritisku rezultātu novērtējumu. Penetrācijas tests šeit parasti būtu nesamērīgs. Svarīgāka ir aktuāla programmatūra, stipras piekļuves un rezerves kopijas.
Ārējs tests atmaksājas veikaliem, portāliem, pašu izstrādnēm, saskarnēm uz iekšējām sistēmām un visur, kur klienti vai standarti prasa neatkarīgu apliecinājumu.
Kā PHP SOS palīdz konkrēti?
- Mēs iestatām regulāru skenēšanu un novērtējam rezultātus, ieskaitot kļūdainus trauksmes signālus atpakaļportējumu dēļ.
- Mēs palīdzam novērst pamatus, pirms nauda tiek ieguldīta pentestā.
- Kopā ar specializētiem partneriem mēs veicam drošības auditus un penetrācijas testus ar saskaņotu apjomu un atkārtotu testu.
- Mēs atbalstām nepilnību ziņošanas vietas un security.txt izveidi.
Secinājums
Skenēšana, pentests un Bug Bounty ir pakāpes, nevis konkurenti. Kas sāk ar regulāru skenēšanu, novērš pamatus un tad mērķtiecīgi pasūta testu, par savu budžetu iegūst visvairāk drošības. Bug Bounty ir papildu uzdevums organizācijām, kuru pienākumi jau ir sakārtoti.
Biežāk uzdotie jautājumi
Kāda ir atšķirība starp pentestu un ievainojamību skenēšanu?
Ievainojamību skenēšana automatizēti pārbauda, vai ir atpazīstamas zināmas nepilnības vai nepareizas konfigurācijas. Penetrācijas tests iet tālāk: speciālisti saskaņotā ietvarā mēģina nepilnības tiešām izmantot un savienot ķēdēs un novērtē sekas.
Vai skeneris noskaidro, vai mans serveris ir ielāpots pret PHP2Shell?
Tikai ierobežoti. Daudzi skeneri nolasa parādīto PHP versiju. Ja distribūcija uzstāda atpakaļportējumu, numurs bieži paliek tāds pats, un skeneris ziņo par nepilnību, kas sen ir aizvērta. Un otrādi, var tikt parādīts jauns numurs, kamēr joprojām darbojas veci procesi.
Vai Bug Bounty programma der maziem uzņēmumiem?
Parasti vēl ne. Bug Bounty paredz, ka ziņojumi tiek ātri novērtēti un nepilnības ātri novērstas. Labs sākums ir vienkārša nepilnību ziņošanas politika ar security.txt failu.
Vai savu vietni drīkstu pārbaudīt pats ar skeneri?
Savas sistēmas parasti jā, ja jums tam ir tiesības. Ja vietne atrodas pie hostinga pakalpojumu sniedzēja, iepriekš noskaidrojiet, vai skenēšana ir atļauta vai jāpiesaka. Svešas sistēmas pārbaudiet tikai ar uzturētāja rakstveida atļauju.
Cik bieži jāveic pentests?
Fiksēta noteikuma nav. Parasti tests tiek veikts pirms jaunas lietojumprogrammas palaišanas, pēc lielākām izmaiņām un regulāros intervālos, ko nosaka jūsu risks un, iespējams, klientu vai standartu prasības.