среда, 15. новембар 2017.

Kako sigurno upravljati nalozima i lozinkama

Imam utisak da se veoma neoprezno rukuje sa nalozima i lozinkama za pristup različitim sistemima pa zbog toga želim da kroz ovaj post malo skrenem pažnju na to. Ono što je još gore ne samo što krajnji korisnici ne koriste lozinke na pravi način već ni sistem administratori ne rade baš sve kako treba.

Prvo malo o korisničkim nalozima
Posebno treba obratiti pažnju na nekoliko stvari vezano za upravljanje korisničkim nalozima a naravno direktno u vezi sa tim i korisničkim lozinkama. Prva stvar jeste da je potrebno raditi obavezno sa grupama a ne sa pojedinačnim korisnicima jer na taj način se određena prava dodeljuju ili oduzimaju grupi i svim njenim članovima a ne pojedinačnim korisnicima. Druga stvar jeste neprestano praćenje korisničkih naloga što podrazumeva logovanje svih aktivnosti korisnika na sistemu. Treća stvar jesu neaktivni nalozi koji postoje na sistemu i o kojima treba posebno voditi pažnju jer ih hakeri mogu reaktivirati na različite načine. Neko se može zapitati zašto ne brisati nepotrebne naloge već ih sam privremeno deaktivirati (disable). Odgovor na ovo pitanje je direktno vezan za stavku koju sam već ranije pomenuo a tiče se logovanja aktivnosti naloga. Ukoliko se nalog obriše sa sistema brišu se i svi prateće podaci dok u slučaju deaktivacije sve je i dalje tu sem što korisnik više ne može da pristupi sistemu. Poslednja ali možda i najbitnija stvar jesu takozvani Shared accounts nalozi koje više ljudi zna i koriste se za pristup nekim resursima. Na primer kupi se samo jedna licenca nekog programa a onda više ljudi se loguje preko istog korisničkog imena i lozinke po potrebi. Preporuka stručnjaka jeste da ovakve naloge skoro nikada ne koristiti osim u slučajevima kada drugačije nije moguće.

Šta možemo uraditi da bi kroz upravljanje nalozima otežali ili sprečili otkrivanje lozinke?
Prvo što možemo uraditi jeste voditi računa o minimalnoj kompleksnosti lozinke (Password strength). Kada pričamo o kompleksnim lozinkama mislimo na to koje elemente mora da sadrži (mala slova, velika slova, brojevi i specijalni simboli)
Druga stvar koju možemo podesiti jesti isticanje (Expiration) korisničkog naloga ili lozinke. Ovo može biti korisno jer korisnik mora da periodično promeni svoju lozinku ili da ponovo aktivira nalog i postavi novu lozinku u zavisnosti od polise.
Treća stvar jeste podešavanje koliko se puta ne može ponovo postaviti ista lozinka (Password history/reuse). Ovo je korisno ako korisnici vrte u krug svoje lozinke, recimo imaju 3 lozinke koje vrte u krug. Na ovaj način takav način rada će biti onemogućen i samim tim biće otežan rad hakera na otkrivanje šifre.
Još jedna od mera koja je u direktnoj vezi sa prvom jeste minimalna dužina lozinke (Password length). Ovo podešavanje zavisi od tipa naloga i danas je standard da se za obične naloge koristi minimum dužina 8 karaktera a za admin i privilegovane naloge minimum 12 karaktera.
Mera koja sprečava online napade efikasno poznata je kao Lockout a radi se o tome da se posle nekoliko pogrešno unetih lozinki zaključa korisnički nalog određeni vremenski period. Ovo drastično otežava odnosno onemogućava online napad grubom silom. Sam MS Windows operativni sistem ima podešeno da se na 5 pokušaja nalog zaključa na 3-5min i ovo se može menjati po potrebi.
Ono o čemu još treba povesti računa jeste proces oporavka lozinke u slučaju da je zaboravljena (Recovery). Da li je taj proces automatizovan preko nekog portala ili se to radi tako što se pozove odgovorno lice koje će to uraditi direktno na sistemu. U oba slučaja postoje opasnosti jer u slučaju automatskog sistema neko može pokušati da promeni šifru postojećeg korisnika a u slučaju da to nije sistem već čovek mogu se koristiti tehnike socijalnog inženjeringa kako bi se taj čovek prevario i promenio lozinku.

Gde se nalaze lozinke i u kom su obliku?
Prvo što je izuzetno važno istaći jeste da se lozinke ne čuvaju nikada u čistom tekstu već kao heš vrednosti (Hashed values) gde se uglavnom koriste neki od popularnih algoritama za ovu namenu kao što su md5 i različite varijante sha algoritma). U ovom slučaju čak i da neko dođe u posed heš vrednosti neće moći lako da dođe do same lozinke.
Ako gledamo MS Windows operativni sistem postoje dva mesta gde se mogu naći hešovane vrednosti lozinke. Na svakom računaru sa Windows operativnim sistemom se nalazi takozvani SAM fajl gde se nalaze lokalni korisnici ali i korisnici koji su se preko domena logovali na računar. Ovo je veoma opasno jer se možda neki od privilegovanih korisnika logovao na sistem i ostavio svoje podatke u SAM bazi. Sa druge strane ako se koristi opcija Run as administrator koja postoji na sistemu tada se uneseni podaci neće ubeležiti u SAM bazu. Što se tiče samog fajla on se nalazi u Windows/System32/Config folderu. Drugo mesto na kome se mogu naći heš vrednosti lozinki jeste AD server i na njemu fajl pod nazivom ntds.dit koji je mnogo teži za rad od SAM fajla a i mnogo je teže doći do njega jer se nalazi na samom AD serveru.
Kod operativnog sistema Linux stvari su sasvim drugačije i heš vrednosti lozinki se uvek nalaze u jednom od sledeća dva foldera etc/passwrd i etc/shadow. Odavde ih možete iskopirati na neki eksterni disk i onda ih kasnije razbijati offline tipom napada.

Kako se hakuje lozinka?
Prva stvar jeste da je potrebno ovaj proces razdvojiti u odnosu na to da li imamo pristup samom sistemu (online) ili smo uspeli da iskopiramo fajl sa heš vrednostima lozinki i da ih onda u lokalu obrađujemo (offline). Druga opcija je mnogo bolja jer na napadača ne utiče Lockout naloga koji može biti podešen ili brzina samog linka i servera odnosno krajnjeg računara.
Sledeće metode se mogu koristiti za otkrivanje lozinke:
- Pogađanje, shoulder surf (na osnovu podataka koje znamo o korisniku (datum rođenja, ime članova porodice, ime kućnog ljubimca, automobil koji vozi i slično) ili tako što pratimo šta radi na računaru i možda uspemo da uhvatimo i lozinku koju unosi na tastaturi)
- Sniffing (ovo je tehnika koja se može koristiti samo ako je lozinka u čistom (clear) tekstu u suprotnom ćemo uhvatiti podatke koji nam neće biti od koristi)
- Dictionary (za ovu tehniku nam je potrebno da imamo dobar rečnik za različite jezike, što veći broj reči i sveobuhvatniji rečnik to su nam šanse veće, međutim ova metoda ne garantuje da će se otkriti lozinka jer ako se u lozinci ne nalazi smislena reč neće biti moguće naći odgovarajuću vrednost)
- Brute force (ovo je tehnika grube sile i izuzetno je zahtevna vremenski jer je potrebno ispitati sve moguće vrednosti kombinacije karaktera za određenu dužinu lozinke, sigurno je da će u jednom momentu biti otkrivena lozinke ovom metodom međutim to može da bude i posle nekoliko stotina godina)

Saveti za kraj
1. nikada ne koristiti istu lozinku na više različitih mesta jer ako neko uspe da otkrije na jednom mestu sigurno će pokušati da isproba istu lozinku na drugom mestu
2. nikada ne zapisivati lozinku na papiru i onda ostaviti ispod tastature ili još gore zalepiti na monitor računara gde svako može da je vidi (ako već zapisujete čuvajte kod sebe u novčaniku ili negde gde može biti pod ključem)
3. nikada prilikom kreiranja lozinke ne unositi smislene reči zbog napada rečnikom koji će u tom slučaju biti efikasan.
4. uvek koristiti kompleksnu lozinku sa svim elementima i dužinom nikada manjom od 8 karaktera.
5. nikada ni unositi svoju lozinku na stranici koja nema sertifikat (to možete videti kroz zeleni katanac sa leve strane u internet pretraživaču u suprotnom ne unositi podatke)
6. nikada i nikom ne slati putem elektronske pošte ili otkrivati putem telefona svoju lozinku jer neko može prisluškivati mrežu ili telefonsku liniju i na taj način doći do lozinke. Takođe moguće je i da se neko posluži tehnikama socijalnog inženjeringa i pokuša da se predstavi kao neko drugi.
7. koristiti program za upravljanje lozinkama - Password manager o kom je već bilo reči u jedno od prethodnih postova (zanimljivo je da je po nekim istraživanjima prosečan korisnik ovakvih programa imao 91 zabeleženu lozinku)

Nadam se da sam ovim postom bar malo uspeo da skrenem pažnju na problem koji je izuzetno izražen i koji je mnoge kompanije mnogo koštao. Ako se bar malo zamislite oko ove teme mislim da sam postigao svoj cilj.

0 коментара:

Постави коментар