NAPADI VEZANI UZ AUTENTIKACIJU

Napadi zlonamjernih korisnika vezani uz autentikaciju (eng. Authentication Hacking)

Autentikacija igra ključnu ulogu u sigurnosti web aplikacija. To je proces kojim se provjerava identitet korisnika određene web aplikacije. Nakon uspješne provjere, aplikacija dodjeljuje korisniku točno određene ovlasti na temelju utvrđenog identiteta.

HTTP protokol podržava nekoliko različitih autentifikacijskih mehanizama:

  • Basic – korisničko ime i lozinka kodiraju se sustavom Base 64.
  • Digest – kao basic, ali se lozinke kriptiraju.
  • Form-based – za unos korisničkog imena i lozinke koristi se prilagođeni obrazac koji se obrađuje unaprijed utvrđenom logikom.
  • NTLM – autentifikacijski protokol u vlasništvu Microsoft-a koji je ugrađen u HTTP zaglavlju, a radi po principu zahtjeva i odgovora.
  • Negotiate – novi protokol iz Microsoft-a koji omogućuje bilo koji tip prethodno navedene autentikacije između klijenta i poslužitelja. Također, kod ovog mehanizma se koristi sustav Kerberos za klijente koji koriste Microsoft Internet Explorer 5 i novije inačice.
  • Client-Side Certificates – iako se rijetko koristi, SSL/TLS sustav pruža mogućnost provjere autentičnosti digitalnog certifikata kojeg unosi sam korisnik. Ukratko, to je provjera autentičnosti pomoću tokena.
  • Microsoft Passport – Microsoft je pokrenuo tzv. Single-Sign-in (SSI) uslugu koja omogućuje web stranicama (nazvanima „Passport Partners“) autentikaciju korisnika na temelju njihovog članstva u Passport usluzi. Mehanizam koristi ključeve podijeljene između Microsoft-a i partnera za stvaranje web kolačića kojima se obavlja jedinstvena identifikacija korisnika.

Ovi autentifikacijski protokoli rade preko HTTP (ili SSL/TSL) protokola namijenjenog za prijenos podataka po principu zahtjev/odgovor (klijent pošalje zahtjev, poslužitelj šalje odgovor).

Ova vrsta napada ne iskorištava tehnološke sigurnosne propuste u operacijskom sustavu ili poslužitelju. Ona ovisi o načinu na koji su lozinke pohranjene, o njihovoj složenosti te o sigurnosti mreže (koliko je lako zlonamjernom korisniku doći do poslužitelja).

Što zlonamjerni korisnik može učiniti ranjivoj web stranici?

Ako zlonamjerni korisnik uspije prevariti sustav te se prijavi kao poznati i valjani korisnik, on dobiva sve ovlasti koje je administrator odobrio tom korisniku.

To znači da će napadač, ako se prijavi kao običan korisnik, moći pristupiti točno određenim povjerljivim podacima. No s druge strane, ukoliko se uspije prijaviti kao administrativni korisnik s potpunim pristupom sustavu, on će preuzeti nadzor nad svim aplikacijama zajedno s njihovim sadržajem (uključujući i nadzor nad ograničenjima samih korisnika).

Alati koje koristi zlonamjerni korisnik

Općenito zlonamjerni korisnik prvo pokušava ostvariti pristup stranici za prijavu (eng. login screen) gdje će se od njega zahtijevati unos korisničkog imena i lozinke.

Sljedeći korak je unos korisničkog imena i lozinke koje će aplikacija prepoznati kao ispravne. Napadaču je uvijek u interesu da se prijavi kao korisnik sa što većim privilegijama u sustavu.

Iako nije najbolji način napada, metoda pogađanja lozinke je jedna od najučinkovitijih metoda za probijanje web autentikacije. Ova tehnika može se izvesti ručno ili putem automatiziranih procedura.

Slijede primjeri čestih korisničkih imena/lozinka koje upotrebljavaju napadači u napadu vezanom uz autentifikaciju:

Uobičajena korisnička imena Uobičajene lozinke
[NULL] [NULL]
root, administrator, admin [NULL], root, administrator, admin, password, [company_name]
operator, webmaster, backup [NULL], operator, webmaster, backup
guest, demo, test, trial [NULL], guest, demo, test, trial
member, private  member, private 
[company_name] [NULL], [company_name], password
[known_username] [NULL], [known_username]


Ako se s metodom pogađanja lozinke ne postignu željeni rezultati, sljedeći korak za napadača je isprobavanje drugih kombinacija lozinki pomoću posebno prilagođenih alata koji su dostupni na internetu, kao što su WebCracker i Brut.

Tim, posebno prilagođenim, alatima koji koriste unaprijed definirane liste korisničkih imena i lozinki, napad rječnikom te brute force napad pokušava se ostvariti uspješna autentifikacija. Napad rječnikom (eng. dictionary attack) je tehnika za probijanje autentifikacije kod koje se uzastopnim isprobavanjem velikog broja riječi ili kombinacija riječi koje se nalaze u nekom rječniku pokušava naći traženo korisničko ime i lozinka.

Brute force napad je metoda koja se često koristi za probijanje kriptografskih algoritama sustavnim pronalaženjem i isprobavanjem svih mogućih kombinacija. Brute force napadom moguće je pronaći ključ pomoću kojeg će se iz nekog zaštićenog teksta dobiti njegov izvoran oblik.

Kako provjeriti sve stranice koje zahtjevu autentikaciju

Kako bi ispitali snagu Vaših autentikacijskih mehanizama, koristite alat za automatsku provjeru. Skener web ranjivosti uključuje alat za provjeru autentifikacije koji se može namjestiti da automatski provjerava sve vaše web stranice.

Sprječavanje napada vezanih uz autentikaciju

Na temelju odgovora koje na pokušaje autentikacije šalje web poslužitelj, automatizirani alati procjenjuju je li faza napada bila uspješna. Iz sigurnosnih razloga, praksa ja da se kod bilo kakve pogreške ili neočekivanog zahtjeva oblikuje „HTTP 200 OK“ odgovor, umjesto odgovora „HTTP 4XX“ kojim se označava neka od korisničkih pogrešaka. Na ovaj način će zlonamjerni korisnik puno teže razlikovati valjani od nevaljanog pokušaja prijave.

Važna mjera u zaustavljanju automatiziranog Brute force napada je dodavanje slučajnog sadržaja na stranicu koju prikazuje preglednik prilikom autentikacije. Korisnik mora tijekom procesa autentikacije unijeti i slučajni sadržaj kako bi mogao nastaviti dalje s prijavom na web stranicu ili aplikaciju. Uobičajeno je slučajni sadržaj prikazivati grafički u GIF, JPG ili PNG formatu koristeći slučajne fontove i boje. Na taj način se automatizirani proces gotovo u potpunosti onesposobljava. Pogledajte sljedeće slike za ilustraciju.