web application security testing guide
softver za prepoznavanje govora najpopularniji je za
Zahvaljujući ogromnoj količini podataka pohranjenih u web aplikacijama i povećanju broja transakcija na webu, pravilno testiranje sigurnosti web aplikacija postaje vrlo važno iz dana u dan.
U ovom ćemo članku detaljno naučiti o ključnim pojmovima koji se koriste u testiranju sigurnosti web stranica i pristupu testiranja.
Što ćete naučiti:
- Što je sigurnosno testiranje?
- Neki ključni pojmovi koji se koriste u sigurnosnom testiranju
- Preporučeni alati za ispitivanje sigurnosti
- Pristup ispitivanju sigurnosti
- Metode za ispitivanje web sigurnosti
- Zaključak
- Preporučena literatura
Što je sigurnosno testiranje?
Ispitivanje sigurnosti je postupak kojim se provjerava je li povjerljivi podaci ostaju povjerljivi ili ne (tj. nije izložen pojedincima / entitetima kojima nije namijenjen), a korisnici mogu izvršavati samo one zadatke za koje su ovlašteni
Na primjer, korisnik ne bi smio uskratiti funkcionalnost web stranice drugim korisnicima ili korisnik ne bi smio mijenjati funkcionalnost web aplikacije na nenamjeran način itd.
Neki ključni pojmovi koji se koriste u sigurnosnom testiranju
Prije nego što nastavimo dalje, bilo bi korisno upoznati se s nekoliko pojmova koji se često koriste u provjeri sigurnosti web aplikacija:
Što je 'ranjivost'?
To je slabost web aplikacije. Uzrok takve 'slabosti' može biti zbog grešaka u aplikaciji, ubrizgavanja (SQL / skriptni kod) ili prisutnosti virusa.
Što je 'manipulacija URL-om'?
Neke web aplikacije u URL-u komuniciraju dodatne informacije između klijenta (preglednika) i poslužitelja. Promjena nekih podataka u URL-u ponekad može dovesti do nenamjernog ponašanja poslužitelja i to se naziva Manipulacija URL-om .
Što je 'SQL injekcija'?
Ovo je postupak umetanja SQL izraza kroz korisničko sučelje web aplikacije u neki upit koji zatim izvršava poslužitelj.
Što je 'XSS (Cross-Site Scripting)'?
Kada korisnik umetne HTML / skriptu na strani klijenta u korisničko sučelje web aplikacije, to je umetanje vidljivo ostalim korisnicima i naziva se XSS .
Što je 'lažno predstavljanje'?
Nazvano je stvaranje hoax sličnih web stranica ili e-adresa Lažiranje .
Preporučeni alati za ispitivanje sigurnosti
# 1) Acunetix
programski paket koji se najčešće koristi za izradu jednostavnih grafikona je
Acunetix je end-to-end sigurnosni skener web aplikacija. Pružit će pogled od 360 stupnjeva na sigurnost vaše organizacije. Sposoban je otkriti 6500 vrsta ranjivosti poput SQL injekcija, XSS i Slabih lozinki itd. Koristi naprednu tehnologiju makro snimanja za skeniranje složenih obrazaca na više razina.
Platforma je intuitivna i jednostavna za upotrebu. Možete planirati i odrediti prioritete cjelovitih skeniranja, kao i inkrementalna skeniranja. Sadrži ugrađenu funkcionalnost upravljanja ranjivostima. Uz pomoć CI alata poput Jenkinsa, nove se građevine mogu automatski skenirati.
=> Isprobajte Acunetix za sigurnost web aplikacija
# 2) Kiuwan
Pronađite i popravite ranjivosti u svom kodu u svakoj fazi SDLC-a.
Kiuwan je u skladu s najstrožim sigurnosnim standardima, uključujući OWASP, CWE, SANS 25, HIPPA i druge.Integrirajte Kiuwan u svoj IDE za trenutne povratne informacije tijekom razvoja. Kiuwan podržava sve glavne programske jezike i integrira se s vodećim DevOps alatima.
=> Skenirajte svoj kod besplatno
Pristup ispitivanju sigurnosti
Da bi proveo korisno sigurnosno testiranje web aplikacije, ispitivač sigurnosti trebao bi dobro poznavati HTTP protokol.
Važno je razumjeti kako klijent (preglednik) i poslužitelj komuniciraju pomoću HTTP-a.
Uz to, ispitivač bi barem trebao znati osnove SQL ubrizgavanja i XSS-a.
Nadamo se da broj sigurnosnih nedostataka prisutnih u web aplikaciji neće biti velik. Međutim, to što ćete biti u stanju točno opisati sve sigurnosne nedostatke sa svim potrebnim detaljima, svakako će vam pomoći.
Metode za ispitivanje web sigurnosti
# 1) Probijanje lozinke
Ispitivanje sigurnosti na a Web aplikacija može započeti 'Probijanje lozinke'. Da biste se prijavili u privatna područja aplikacije, možete pogoditi korisničko ime / lozinku ili upotrijebiti neki alat za razbijanje lozinki za iste. Popis uobičajenih korisničkih imena i lozinki dostupan je zajedno s programima za obradu lozinki otvorenog koda.
Ako web aplikacija ne provodi složenu lozinku ( Na primjer, s abecedama, brojevima i posebnim znakovima ili s barem potrebnim brojem znakova), možda neće trebati jako puno vremena za probijanje korisničkog imena i lozinke.
Ako se korisničko ime ili lozinka pohranjuju u kolačiće bez šifriranja, napadač može koristiti različite metode za krađu kolačića i podataka pohranjenih u kolačićima, poput korisničkog imena i lozinke.
Za više detalja pogledajte članak na temu „ Testiranje kolačića na web mjestu '.
# 2) Manipulacija URL-om putem HTTP GET metoda
Tester bi trebao provjeriti prosljeđuje li aplikacija važne informacije u nizu upita ili ne. To se događa kada aplikacija koristi HTTP GET metodu za prosljeđivanje podataka između klijenta i poslužitelja.
Java programer intervju pitanja i odgovori za svježe
Podaci se prenose kroz parametre u nizu upita. Tester može izmijeniti vrijednost parametra u nizu upita kako bi provjerio prihvaća li ga poslužitelj.
Putem HTTP GET zahtjeva korisničke informacije prosljeđuju se poslužitelju radi provjere autentičnosti ili dohvaćanja podataka. Napadač može manipulirati svakom ulaznom varijablom proslijeđenom iz ovog GET zahtjeva na poslužitelj kako bi dobio potrebne informacije ili oštetio podatke. U takvim uvjetima, svako neobično ponašanje aplikacije ili web poslužitelja vrata su vrata napadaču da uđe u aplikaciju.
# 3) SQL ubrizgavanje
Sljedeći čimbenik koji treba provjeriti je SQL Injection. Aplikacija treba odbiti unos jednog citata (‘) u bilo koji okvir za tekst. Umjesto toga, ako ispitivač naiđe na pogrešku baze podataka, to znači da se korisnički unos umetne u neki upit koji aplikacija zatim izvršava. U takvom je slučaju aplikacija ranjiva na ubrizgavanje SQL-a.
Napadi SQL ubrizgavanja vrlo su kritični jer napadač može dobiti vitalne informacije iz poslužiteljske baze podataka. Da biste provjerili točke unosa SQL ubrizgavanja u vašu web aplikaciju, pronađite kod iz baze kodova gdje se izvode MySQL upiti u bazi podataka prihvaćajući neke korisničke unose.
Ako su korisnički podaci uneseni u SQL upite za postavljanje upita u bazu podataka, napadač može ubrizgati SQL izraze ili dio SQL izraza kao korisničke unose za izvlačenje vitalnih podataka iz baze podataka. Čak i ako napadač uspije srušiti aplikaciju, iz pogreške SQL upita koja se prikazuje u pregledniku, napadač može dobiti informacije koje traži.
U takvim slučajevima sa posebnim znakovima iz korisničkih unosa treba pravilno postupati / izbjeći ih.
# 4) Cross-Site Scripting (XSS)
Tester bi trebao dodatno provjeriti web-aplikaciju za XSS (skriptiranje na više web lokacija). Bilo koji HTML Na primjer, ili bilo koju skriptu Na primjer, prijava ne bi trebala prihvatiti. Ako jest, tada aplikacija može biti sklona napadu Cross-Site Scriptingom.
Napadač može koristiti ovu metodu za izvršavanje zlonamjerne skripte ili URL-a na žrtvinom pregledniku. Koristeći skripte na više web lokacija, napadač može koristiti skripte poput JavaScript za krađu korisničkih kolačića i podataka pohranjenih u kolačićima.
Mnoge web aplikacije dobivaju neke korisne informacije i prosljeđuju ih u nekim varijablama s različitih stranica.
Na primjer, http://www.examplesite.com/index.php?userid=123 & upit = xyz
Napadač može lako proslijediti neki zlonamjerni unos ili kao parametar '& query' koji može istražiti važne podatke korisnika / poslužitelja u pregledniku.
Važno: Tijekom testiranja sigurnosti tester bi trebao biti vrlo oprezan kako ne bi promijenio bilo što od sljedećeg:
- Konfiguracija aplikacije ili poslužitelja
- Usluge koje se izvode na poslužitelju
- Postojeći podaci o korisnicima ili kupcima koje hostira aplikacija
Uz to, u proizvodnom sustavu treba izbjegavati sigurnosni test.
Zaključak
Svrha sigurnosnog testa je otkriti ranjivosti web aplikacije tako da programeri mogu ukloniti te ranjivosti iz aplikacije i zaštititi web aplikaciju i podatke od neovlaštenih radnji.
Preporučena literatura => Razlika između SAST / DAST / IAST / RASP
Slobodno podijelite svoje komentare / prijedloge o ovom članku.
Preporučena literatura
- Vodič za početnike za ispitivanje prodora web aplikacija
- Ispitivanje sigurnosti (cjelovit vodič)
- Alfa testiranje i beta testiranje (cjelovit vodič)
- Testiranje mrežne sigurnosti i najbolji alati mrežne sigurnosti
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Kompletni vodič za testiranje provjere izrade (BVT testiranje)
- Vrh 4 Alata za testiranje sigurnosti otvorenog koda za testiranje web aplikacija
- Funkcionalno ispitivanje vs nefunkcionalno testiranje