Izvor: B92, 21.Feb.2009, 16:37 (ažurirano 02.Apr.2020.)
Sve boje hakerskih šešira (2)
Nastavljamo priču o različitim tipovima hakera i načinima koje koriste da upadu u slabo zaštićene računarske siteme.
Milan Troskot i Snježana Horvat Kadežabek, VIDI
Hakeri danas uglavnom koriste izuzetno dobro dokumentovane i poznate metode za dobijanje pristupa resursima i podacima kojima inače nemaju pravo pristupiti. Ili što bi u slučaju takozvanih white hat hakera, odnosno stručnjaka za sigurnost bilo - za otkrivanje rupa u sistemu >> Pročitaj celu vest na sajtu B92 << koje zli momci mogu iskoristiti.
Kod sigurnosti računarskih sistema obično važi pravilo da se protiv vatre najbolje boriti vatrom. To bi značilo da stručnjaci za sigurnost koriste iste tehnike kao i black hat hakeri.
Ali kada otkriju način ugrožavanja sistema, ne taje ga i ne koriste za neovlašćn pristup i menjanje ili brisanje tuđih podataka, rušenje sistema ili neku drugu zlonamjernu akciju, već zakrpe rupu i učine sigurnosni propust javnim kako bi se i drugi sistemi mogli zaštiti. Sada bismo mogli ući u objašnjavanje nekih tehnika. Ukoliko ćete iskušavati i igrati se na način i s tehnikama te softverom opisanim u daljnjem tekstu, autor vam toplo preporučuje igranje u vlastitoj mreži.
Ili barem uz pristanak osobe u čiji sistempokušavate upasti. Uvek se može dogoditi da nešto krene po zlu i srušite sistem, ili ako imate zle namere da vas uhvate pa se intimnije upoznate bilo s besom opakog komšije, ili još gore - zakonima naše države.
Socijalni inženjering
Šta je tačno SQL injection napad? Radi se o iskorišćavanju ne grešaka u tehnologiji, nego u implementaciji tehnologija. Dakle, web aplikacije komuniciraju s bazom podataka i prosleđuju varijable. Kako sam web ne pamti vrednosti varijabli, one se prosljeđuju GET ili POST metodom. Problem s tim načinima prosleđivanja (posebno GET metodom koja varijable prosleđuje serveru u adresnoj liniji browsera) je što ih korisnik može menjati, čitati i na temelju njih donositi pretpostavke o građi baze i izgledu upita SQL serveru. POST je malo skrivenija metoda, ali GET se može menjati i čitati iz same web adrese. Pretpostavimo da web aplikacija radi nešto jednostavno, na primer vadi sve podatke o korisniku prema korisničkom imenu. Recimo da upit u kodu izgleda ovako: upit = "SELECT * FROM users WHERE name = '" + userName + "';"
Dakle, upit radi baš ono što bi trebao. Problem nastaje ako nije implementirana provera varijable.
Pretpostavimo na primer da korisnik prosledi vrednost varijable userName kao bla' or 'a'='a. Kada bismo sastavili upit dobili bismo: SELECT * FROM users WHERE name = 'bla' OR 'a'='a';
Očito je kako bi upit vratio podatke o svim korisnicima (a je uvek a pa je upit uvek istinit neovisno o prvom delu uslova). Greška u kodu koji bi to dopuštao je što nisu pravilno filtrirani znakovi navoda (' ) i napadač može, prosleđujući ih kao deo varijable, menjati prirodu upita. Dakle, ovo su greške u implementaciji kojih je sve manje i jednostavno ih je izbeći, ali kako je PHP, na primer, jezik u kojem aplikacije razvija velik broj samoukih entuzijasta, vredi ih spomenuti da se skrene pozornost na njih.
Socijalni inženjering odnosi se na netehničke (shvatimo to kao ne potpuno tehničke) napade na sistem. Sastavni deo svakoga računarskog sistema su ljudi i ovakva vrsta napada koristi ljudske slabosti kako bi napadač zadobio prava koja nema u sistemu. Raspon meta napada može varirati od pojedinca do cele organizacije i u velikoj meri zavisi od drskosti (ili hrabrosti ako želite) samog napadača - naravno, ukoliko je on black hat, a ne profesionalac kod kojega je naručen takav napad kako bi se procenilo sigurnosno stanje samog sistema. Socijalni inženjeri koriste sklonost pružanja (neopravdanog) poverenja ljudima oko sebe ili se koriste informacijama koje su saznali o pojedincima. Opišimo to klasičnim primerima. Velik broj poslovnih sistema ima svoje web stranice na kojima su predstavljene informacije o poslovnim sistema, često i više informacija nego što bi trebalo biti. Dovoljno je uzeti neku veću firmu i temeljno je izguglati i vjrojatno ćete doći do brojeva neke od službi za korisničku podršku.
Vešti napadač bi zatim mogao nazvati istu službu i praviti se da je korisnik (ukoliko je prikupio podatke o nekom ovlašćenom korisniku, može glumiti njega ili nju) koji ima problema s logovanje u sistem. U tom slučaju napadač koristi lakovernost službene osobe. Ipak, verovatniji je scenario u kojem će napadač doći do broja običnoga korisnika (a ne nekog obučenog korisnika iz službe za podršku) i glumiti da je služba za podršku i ima sigurnosni problem s korisnikovim računom.
Ovakva vrsta napada na sistem može ići tako daleko da se napadač "zbliži" s korisnikom za kojeg je saznao da ima pristup onome čemu on želi pristupiti. Zatim mu pomogne s nekom nevoljom (nekim problemom na računaru, kojega je vjerojatno sam napadač i stvorio) i zatim traži protivuslugu. Za osobe koje smatramo prijateljima i u koje imamo poverenja spremni smo učiniti stvari koje nikada ne bismo učinili za nekoga tko vam samo priđe i kaže: "Treba mi pristup tvom računalu i tvoje lozinke". I ovakav pristup ponekad radi. Poznati su slučajevi (u velikim sistemima gde se izmenjuje mnogo ljudi) kada bi napadač (naručeni procenitelj sigurnosti sustava) jednostavno nekoliko dana proveo skupljajući informacije o funkcionisanju ciljane mete (poslovne zgrade) i imena ljudi te podatke o njima. Zatim bi jednostavno ušetao u zgradu, došao do pulta za informacije i glumio zaposlenog kojemu je to prvi dan na poslu. Procenitelji sigurnosti sistema su na taj ačin dolazili do sigurnosnih iskaznica: uspevali su ući u prostorije s pristupom samo za zaposlene osobe i neretko su dobijali pristup samom računarskom sistemu iznutra. Naravno, kod takvih procena zaposleni se ne smeju unapred upozoriti da je sistem pod procenom. Malo tehničkiji primer socijalnog inženjeringa je takozvani phishing. Phishing je korišćenje pohlepe (najčešće) i naivnosti korisnika, ne bi li ga se podstaklo da sam instalira malware.
Česti oblik je i nuđenje downloada programa pomoću kojega možete s interneta besplatno skidati filmove i muzike. Lakoverni korisnik poveruje i instalira program te možda čak i može skidati obećano, ali usput dopusti neovlašćeni pristup svom računaru...
Zasigurno najpoznatiji socijalni inženjer današnjice je Kevin Mitnick, najpoznatiji haker, koji je bio i u zatvoru, o njemu je snimljen film - a danas je jedan velo cenjen konsultant za sigurnost koji je objavio nekoliko knjiga na temu socijalnog inženjeringa. Morate voleti korporativni svet današnjice. Po njegovim rečima često mu je bilo lakše uveriti korisnika da mu otkrije lozinku, nego je dobiti čisto tehnološkim putem.
Preuzeto iz Vidija broj 154


















