EITC/IS/WAPT Penetration Testing Web Applications je europski program IT certifikacije o teoretskim i praktičnim aspektima testiranja penetracije web aplikacija (bijelo hakovanje), uključujući različite tehnike za paukove web stranice, skeniranje i tehnike napada, uključujući specijalizirane alate i pakete za testiranje penetracije .
Nastavni plan i program EITC/IS/WAPT testiranja penetracije web aplikacija pokriva uvod u Burp Suite, web spridering i DVWA, testiranje grube sile sa Burp Suiteom, detekciju zaštitnog zida web aplikacije (WAF) sa WAFW00F, opseg cilja i spidering, otkrivanje skrivenih datoteka sa ZAP, skeniranje ranjivosti WordPress-a i nabrajanje korisničkog imena, skeniranje balansera opterećenja, skriptiranje na različitim lokacijama, XSS – odraženi, pohranjeni i DOM, proxy napadi, konfiguriranje proxyja u ZAP-u, napadi na datoteke i direktorije, otkrivanje datoteka i direktorija s DirBuster-om, praksa web napada , OWASP Juice Shop, CSRF – Falsifikovanje zahtjeva na više lokacija, prikupljanje kolačića i obrnuti inženjering, HTTP atributi – krađa kolačića, SQL injekcija, DotDotPwn – fuzzing preko direktorija, iframe injekcija i HTML injekcija, Heartbleed eksploatacija – otkrivanje i eksploatacija, ubrizgavanje PHP koda bWAPP – HTML injekcija, reflektovani POST, injekcija OS komandi sa Commix-om, na strani servera uključuje SSI injekciju, pentestiranje u Docker-u, OverTheWire Natas, LFI i ubrizgavanje komandi, Google hakovanje za pentestiranje, Google Dorks za testiranje penetracije, Apache2 ModSecurity, kao i Nginx ModSecurity, u okviru sljedeće strukture, koja obuhvata sveobuhvatan video didaktički sadržaj kao referencu za ovu EITC certifikat.
Sigurnost web aplikacija (koja se često naziva Web AppSec) je koncept dizajniranja web stranica kako bi normalno funkcionirale čak i kada su napadnute. Pojam je integracija skupa sigurnosnih mjera u web aplikaciju kako bi se zaštitila njena sredstva od neprijateljskih agenata. Web aplikacije, kao i svaki softver, sklone su nedostacima. Neke od ovih nedostataka su stvarne ranjivosti koje se mogu iskoristiti i predstavljaju rizik za preduzeća. Ovakvih nedostataka štiti sigurnost web aplikacija. To podrazumijeva korištenje sigurnih razvojnih pristupa i postavljanje sigurnosnih kontrola tokom životnog ciklusa razvoja softvera (SDLC), osiguravajući da se riješe nedostaci u dizajnu i problemi implementacije. Online penetracijsko testiranje, koje provode stručnjaci koji imaju za cilj da otkriju i iskoriste ranjivosti web aplikacija koristeći takozvani pristup bijelog hakovanja, neophodna je praksa kako bi se omogućila odgovarajuća obrana.
Test penetracije webom, također poznat kao test web olovke, simulira sajber napad na web aplikaciju u cilju pronalaženja iskorištavih nedostataka. Testiranje penetracije se često koristi za dopunu zaštitnog zida web aplikacije u kontekstu sigurnosti web aplikacija (WAF). Testiranje olovkom, općenito, podrazumijeva pokušaj prodora u bilo koji broj aplikacijskih sistema (npr. API-ji, frontend/backend serveri) kako bi se pronašle ranjivosti, kao što su neočišćeni ulazi koji su ranjivi na napade ubrizgavanjem koda.
Nalazi online testa penetracije mogu se koristiti za konfigurisanje sigurnosnih politika WAF-a i adresiranje otkrivenih ranjivosti.
Ispitivanje penetracije ima pet koraka.
Procedura testiranja olovke podijeljena je u pet koraka.
- Planiranje i izviđanje
Definiranje obima i ciljeva testa, uključujući sisteme kojima se treba baviti i metodologije testiranja koje će se koristiti, je prva faza.
Da biste bolje razumjeli kako cilj funkcionira i njegove potencijalne slabosti, prikupite obavještajne podatke (npr. imena mreže i domena, mail server). - skeniranje
Sljedeća faza je shvatiti kako će ciljna aplikacija reagirati na različite vrste pokušaja upada. To se obično postiže korištenjem sljedećih metoda:
Statička analiza – Ispitivanje koda aplikacije da se predvidi kako će se ponašati kada se pokrene. U jednom prolazu, ovi alati mogu skenirati cijeli kod.
Dinamička analiza je proces inspekcije koda aplikacije dok ona radi. Ova metoda skeniranja je praktičnija jer pruža uvid u performanse aplikacije u realnom vremenu. - Dobivanje pristupa
Da bi se pronašle slabosti cilja, ovaj korak koristi napade na web aplikacije kao što su skriptovanje na više lokacija, SQL injekcija i backdoor. Da bi razumjeli štetu koju ove ranjivosti mogu nanijeti, testeri pokušavaju da ih iskoriste povećanjem privilegija, krađom podataka, presretanjem saobraćaja i tako dalje. - Zadržavanje pristupa
Svrha ove faze je da se proceni da li se ranjivost može iskoristiti za uspostavljanje dugoročnog prisustva u kompromitovanom sistemu, omogućavajući lošem akteru da dobije dubinski pristup. Cilj je oponašati napredne trajne prijetnje, koje mogu ostati u sistemu mjesecima kako bi ukrale najosjetljivije informacije kompanije. - analiza
Rezultati testa penetracije se zatim stavljaju u izvještaj koji uključuje informacije kao što su:
Ranjivosti koje su detaljno iskorišćene
Podaci koji su dobijeni bili su osjetljivi
Koliko je vremena tester olovke bio u stanju da ostane neprimijećen u sistemu.
Stručnjaci za sigurnost koriste ove podatke da pomognu u konfiguraciji WAF postavki preduzeća i drugih sigurnosnih rješenja aplikacija kako bi zakrpili ranjivosti i spriječili dalje napade.
Metode ispitivanja penetracije
- Eksterno testiranje penetracije fokusira se na imovinu kompanije koja je vidljiva na internetu, kao što je sama web aplikacija, web stranica kompanije, kao i serveri e-pošte i imena domena (DNS). Cilj je dobiti pristup i izvući korisne informacije.
- Interno testiranje podrazumijeva da tester ima pristup aplikaciji iza zaštitnog zida kompanije koja simulira neprijateljski insajderski napad. Ovo nije neophodna simulacija lažnog radnika. Zaposlenik čiji su akreditivi stečeni kao rezultat pokušaja krađe identiteta uobičajena je polazna tačka.
- Slijepo testiranje je kada se testeru jednostavno navede ime kompanije koja se testira. Ovo omogućava stručnjacima za sigurnost da vide kako bi se stvarni napad na aplikaciju mogao odigrati u realnom vremenu.
- Dvostruko slijepo testiranje: U dvostruko slijepom testu, sigurnosni profesionalci nisu svjesni simuliranog napada unaprijed. Neće imati vremena da ojačaju svoja utvrđenja prije pokušaja proboja, baš kao u stvarnom svijetu.
- Ciljano testiranje – u ovom scenariju, tester i osoblje obezbjeđenja sarađuju i prate međusobno kretanje. Ovo je odlična vježba za obuku koja sigurnosnom timu daje povratnu informaciju u realnom vremenu iz perspektive hakera.
Firewall web aplikacije i testiranje penetracije
Testiranje penetracije i WAF su dvije odvojene, ali komplementarne sigurnosne tehnike. Tester će vjerovatno koristiti WAF podatke, kao što su evidencije, da pronađe i iskoristi slabe oblasti aplikacije u mnogim vrstama testiranja olovkom (sa izuzetkom slijepih i dvostruko slijepih testova).
Zauzvrat, podaci o testiranju olovke mogu pomoći WAF administratorima. Nakon završetka testa, WAF konfiguracije se mogu modificirati kako bi se zaštitile od nedostataka otkrivenih tokom testa.
Konačno, testiranje olovkom zadovoljava određene zahtjeve usklađenosti metoda sigurnosne revizije, kao što su PCI DSS i SOC 2. Određeni zahtjevi, kao što je PCI-DSS 6.6, mogu se ispuniti samo ako se koristi certificirani WAF. Međutim, zbog gore navedenih prednosti i mogućnosti modifikacije WAF postavki, ovo ne čini testiranje olovkom manje korisnim.
Kakav je značaj testiranja web sigurnosti?
Cilj testiranja web sigurnosti je identificiranje sigurnosnih nedostataka u web aplikacijama i njihovom postavljanju. Aplikacioni sloj je primarni cilj (tj. ono što se izvodi na HTTP protokolu). Slanje različitih oblika unosa web aplikaciji kako bi se izazvali problemi i natjerali sistem da reaguje na neočekivane načine uobičajen je pristup testiranju njegove sigurnosti. Ovi “negativni testovi” traže da li sistem radi nešto što nije trebalo da postigne.
Takođe je važno shvatiti da testiranje bezbednosti na vebu podrazumeva više od samo provere bezbednosnih karakteristika aplikacije (kao što su autentifikacija i autorizacija). Takođe je ključno osigurati da se druge funkcije bezbedno primenjuju (npr. poslovna logika i upotreba odgovarajuće validacije ulaza i izlaznog kodiranja). Svrha je osigurati da su funkcije web aplikacije sigurne.
Koje su mnoge vrste sigurnosnih procjena?
- Test za sigurnost dinamičke aplikacije (DAST). Ovaj automatizovani bezbednosni test aplikacija je najprikladniji za aplikacije sa niskim rizikom, unutrašnje okrenute, koje moraju ispunjavati regulatorne bezbednosne zahteve. Kombinacija DAST-a s nekim ručnim online sigurnosnim testiranjem za uobičajene ranjivosti je najbolja strategija za aplikacije srednjeg rizika i ključne aplikacije koje prolaze kroz manje promjene.
- Sigurnosna provjera za statičke aplikacije (SAST). Ova sigurnosna strategija aplikacije uključuje i automatske i ručne metode testiranja. Idealan je za otkrivanje grešaka bez potrebe za pokretanjem aplikacija u živom okruženju. Takođe omogućava inženjerima da skeniraju izvorni kod kako bi otkrili i popravili sigurnosne nedostatke softvera na sistematski način.
- Ispitivanje penetracije. Ovaj ručni sigurnosni test aplikacije idealan je za osnovne aplikacije, posebno one koje prolaze kroz značajne promjene. Da bi se pronašli napredni scenariji napada, evaluacija koristi poslovnu logiku i testiranje zasnovano na protivniku.
- Samozaštita aplikacije u vremenu izvođenja (RASP). Ova rastuća metoda sigurnosti aplikacije uključuje različite tehnološke tehnike za instrumentiranje aplikacije tako da se prijetnje mogu pratiti i, nadamo se, spriječiti u realnom vremenu kako se pojave.
Kakvu ulogu ima testiranje sigurnosti aplikacija u smanjenju rizika kompanije?
Velika većina napada na web aplikacije uključuje:
- SQL Injection
- XSS (Cross Site Scripting)
- Daljinsko izvršavanje komandi
- Path Traversal Attack
- Ograničen pristup sadržaju
- Kompromitovani korisnički nalozi
- Instalacija zlonamjernog koda
- Izgubljeni prihod od prodaje
- Narušavanje povjerenja kupaca
- Šteta reputaciji brenda
- I puno drugih napada
U današnjem Internet okruženju, Web aplikacija može biti oštećena raznim izazovima. Gornja grafika prikazuje nekoliko najčešćih napada koje počine napadači, od kojih svaki može uzrokovati značajnu štetu pojedinačnoj aplikaciji ili cijelom poslu. Poznavanje mnogih napada koji aplikaciju čine ranjivom, kao i mogućih rezultata napada, omogućava kompaniji da otkloni ranjivosti prije vremena i efikasno ih testira.
Kontrole za ublažavanje mogu se uspostaviti u ranim fazama SDLC-a kako bi se spriječili bilo kakvi problemi identifikacijom osnovnog uzroka ranjivosti. Tokom testa bezbednosti veb aplikacije, znanje o tome kako ove pretnje funkcionišu se takođe može koristiti za ciljanje poznatih mesta od interesa.
Prepoznavanje uticaja napada je takođe važno za upravljanje rizikom kompanije, jer se uticaji uspešnog napada mogu koristiti za određivanje ukupne ozbiljnosti ranjivosti. Ako se ranjivosti otkriju tokom sigurnosnog testa, određivanje njihove ozbiljnosti omogućava kompaniji da efikasnije odredi prioritete u popravljanju problema. Da biste smanjili rizik za kompaniju, počnite sa problemima kritične ozbiljnosti i spustite se na probleme sa manjim uticajem.
Pre nego što identifikujete problem, procena mogućeg uticaja svakog programa u biblioteci aplikacija kompanije će vam pomoći da date prioritet testiranju bezbednosti aplikacije. Wenb sigurnosno testiranje se može zakazati tako da prvo cilja na kritične aplikacije kompanije, sa ciljanijim testiranjem kako bi se smanjio rizik za poslovanje. Sa utvrđenom listom aplikacija visokog profila, Wenb sigurnosno testiranje se može zakazati tako da prvo cilja na kritične aplikacije firme, sa ciljanijim testiranjem kako bi se smanjio rizik po poslovanje.
Tokom testa sigurnosti web aplikacije, koje karakteristike treba ispitati?
Tokom testiranja sigurnosti web aplikacije, razmotrite sljedeću neiscrpnu listu funkcija. Neefikasna implementacija svakog od njih mogla bi rezultirati slabostima, dovodeći kompaniju u opasnost.
- Konfiguracija aplikacije i servera. Šifriranje/kriptografske postavke, konfiguracije web servera i tako dalje su primjeri potencijalnih nedostataka.
- Validacija unosa i rukovanja greškama Loša obrada ulaza i izlaza dovodi do SQL injekcije, skriptiranja na više lokacija (XSS) i drugih tipičnih problema sa injekcijom.
- Autentifikacija i održavanje sesija. Ranjivosti koje mogu dovesti do lažnog predstavljanja korisnika. Također treba uzeti u obzir snagu vjerodostojnosti i zaštitu.
- Autorizacija. Kapacitet aplikacije da zaštiti od vertikalne i horizontalne eskalacije privilegija se testira.
- Logika u poslovanju. Većina programa koji pružaju poslovnu funkcionalnost oslanjaju se na njih.
- Logika na strani klijenta. Ova vrsta funkcije postaje sve češća kod modernih web stranica sa teškim JavaScriptom, kao i kod web stranica koje koriste druge vrste tehnologija na strani klijenta (npr. Silverlight, Flash, Java apleti).
Da biste se detaljno upoznali sa nastavnim planom i programom sertifikacije, možete proširiti i analizirati tabelu ispod.
Kurikulum za certifikaciju testiranja penetracije web aplikacija EITC/IS/WAPT upućuje na didaktičke materijale otvorenog pristupa u video obliku. Proces učenja je podijeljen u strukturu korak po korak (programi -> lekcije -> teme) koja pokriva relevantne dijelove kurikuluma. Takođe su obezbeđene neograničene konsultacije sa stručnjacima iz domena.
Za detalje o proceduri certifikacije provjerite Kako funkcionira.
Preuzmite kompletne pripremne materijale za offline samoučenje za EITC/IS/WAPT program za testiranje penetracije web aplikacija u PDF datoteci
EITC/IS/WAPT pripremni materijali – standardna verzija
EITC/IS/WAPT pripremni materijali – proširena verzija sa pitanjima za pregled