Čitatelji poput vas podržavaju MUO. Kada kupite putem poveznica na našoj stranici, možemo zaraditi partnersku proviziju. Čitaj više.

Injekcioni napadi jedan su od najčešćih načina na koji hakeri napadaju sustave jer im to omogućuje jednostavno pokretanje mnogih naredbi i kodova. Ubrizgavanje OS naredbi jedan je takav napad ubrizgavanjem kojeg morate biti svjesni. Time se iskorištava ranjivost koju bi administratori sustava, baze podataka i web aplikacija trebali shvatiti vrlo ozbiljno.

Dakle, što je napad ubrizgavanjem OS naredbi?

Definicija OS Command Injection

Ubacivanje OS naredbi omogućuje zlonamjernom napadaču pokretanje bilo koje naredbe koju želi iskorištavanjem ranjivog operativnog sustava, programa, aplikacije, baze podataka ili dodatka. To se događa kada aplikacije ne uspiju pravilno potvrditi i očistiti parametre koje koriste pri pozivanju funkcija ljuske kao što su sustav() ili exec() za izvršavanje naredbi sustava.

Kako bismo bolje razumjeli otkrivanje i iskorištavanje ubacivanja OS naredbi, korisno je ispitati ovo pitanje u tri glavne kategorije.

instagram viewer

1. Izravno ubrizgavanje naredbi

Razmotrite ovo iz perspektive napadača. Cybernapadač otkriva da aplikacija izvodi određenu sistemsku naredbu; unose zlonamjernu naredbu kao dio očekivanih argumenata. Aplikacija tada izvršava izvornu naredbu nakon koje slijedi zlonamjerna.

Napadač koristi različite pristupe kako bi pronašao takvu ranjivost. Najlakši način za borbu protiv toga je da operativni sustav stalno bude ažuriran; to možete učiniti u suradnji s kompetentnim IT timom. Trebali biste izbjegavati sve aplikacije i programe koji mogu uzrokovati ranjivost sustava jer napadač može izravno umetnuti kod, a šteta je nepredvidiva.

2. Indirektno uvođenje naredbi

U slučaju neizravnog ubacivanja naredbe, napadač ne unosi izravno kod ili naredbu u sustav. Za to koriste ranjivu aplikaciju ili program u sustavu. Ranjivost stvara most između napadača i operativnog sustava. Iskorištavajući ovu komunikaciju, napadač ima za cilj pokrenuti zlonamjerne kodove i naredbe na meti.

Napadač izvršava niz testova kako bi identificirao ovu ranjivost i otkriva da softver koristi podatke iz vanjskog izvora, kao što je datoteka ili varijabla okruženja, za pozivanje naredbe sustava. Napadač zatim mijenja sadržaj vanjskog izvora, tako da sada sadrži zlonamjernu naredbu. To se zatim izvršava zajedno s uputama izvorne aplikacije.

Glavna razlika između izravnog i neizravnog ubacivanja naredbi je u tome što napadač koristi aplikaciju za komunikaciju s operativnim sustavom. Ali ne postoji stvarna razlika između štete koju dva oblika ubrizgavanja mogu učiniti, pa se treba pozabaviti obama. Zato biste trebali provjeriti jesu li programi u vašoj mreži pouzdani i potrebni. Nemojte držati aplikacije u koje ne vjerujete na svom uređaju.

3. Injekcija slijepe naredbe

Druga vrsta ubacivanja OS naredbi je slijepo ubacivanje naredbi. To znači da aplikacija ne vraća nikakav izlaz iz naredbe u HTTP odgovoru. Napadač koristi različite tehnike kao što su vremenska odgoda i izlazno usmjeravanje kako bi iskoristio ovu ranjivost.

Zamislite da tražite web mjesto, a vrijednost "/?search=id" u URL-u mijenja se sa svakim pretraživanjem. ID vrijednost ovdje može biti korisnička stranica, adresa fotografije proizvoda ili bilo koja stranica na web mjestu. Promjenom ID vrijednosti napadač može dobiti različite rezultate. Teško je to učiniti ručno, ali postoje alate poput Burp Suite za ovo. Kasnije, napadač otkriva neobičnost na stranici: može se vratiti vrijednost ID-a koja, iako nije pokazala nikakve rezultate, odgovor web stranice bio je 200, što znači da je sve u redu. U takvom slučaju, napadač bi mogao upotrijebiti slijepo ubacivanje naredbe.

Posebno je korisna tehnika kao što je vremenska odgoda. Budući da će stranica koja se otvori biti prazna, nećete dobiti nikakav odgovor, ali ćete ipak moći prikupiti informacije o tome što je pohranjeno u bazi podataka na temelju vremenskih odgoda koje učitavaju stranicu samo ako je određeni znak predstaviti. Ovo oduzima previše vremena da bi bio ručni proces, ali mnoštvo alata može automatizirati napad.

Primjer scenarija napada

Pregledajmo sve gore navedeno kroz primjer. Zamislite da imate aplikaciju za kupnju koja korisniku omogućuje da vidi ima li proizvoda na zalihama. Upotrijebimo URL kao što je ovaj u nastavku za pristup svim ovim informacijama:

example_unsafe_store.com/stockStatus? productID=245&storeID=

Zamislite prosljeđivanje ID-ova proizvoda i pohrane kao argumenata naredbi ljuske, kao što je "stockstat.pl 245 38", budući da bi aplikacija morala tražiti stare zapise. Ako programer ne poduzme ništa protiv ubacivanja naredbi, napadač može poslati ulaz za izvršenje željene naredbe:

& jeka this_a_harmful_command &

Ako ovaj unos ide u parametar productID, naredba koju izvršava aplikacija bit će:

stockstat.pl & jeka this_a_harmful_command & 38

Naredba echo korisna je metoda za otkrivanje ubacivanja naredbi, kao i za osiguravanje da se navedeni niz pojavljuje u izlazu. Znak "&" je a separator naredbi ljuske, tako da se izvršavaju tri odvojene naredbe, jedna za drugom. Kao rezultat, izlaz koji se vraća korisniku bit će:

Greška -ID proizvoda nije pronađen
ova_štetna_naredba
38: naredba nije pronađeno

Ovdje je datoteka "stockstat.pl" izvršila naredbu bez argumenata koje je očekivala i stoga je vratila poruku o pogrešci. Zatim se pokrenula naredba echo koju je ubacio napadač i napadač je vidio izraz koji je unio na ekranu. Izvorni argument, "38", pokrenut je kao naredba koja uzrokuje pogrešku.

Kako se zaštititi od ubacivanja OS naredbi

Iako je ubacivanje naredbe moćan i štetan vektor napada, postoje neki trikovi za njegovo izbjegavanje. Obrazloženje iza napada ubrizgavanjem OS naredbi je izvršavanje određenih naredbi operativnog sustava pomoću aplikacije. Moraš spriječiti da se ovo dogodi. Treba razmotriti neka pitanja:

  1. Morate spriječiti bilo koga s pristupom aplikaciji da može pokrenuti kod.
  2. Trebali biste spriječiti bilo koga s pristupom aplikaciji da šalje zahtjeve poslužitelju pomoću sintaktičkih izraza.
  3. Morate šifrirati fraze koje svatko s pristupom postavlja zahtjeve.

Prođimo kroz svaku stavku jednu po jednu. Dobro rješenje za prvi problem je da koristite metodu bijele liste kako bi se spriječilo da bilo tko dođe do aplikacijskog sloja pokrene određene kodove ili zahtjeve. Svatko koga ne identificirate neće moći pokrenuti kod.

Rješenje drugog je da ne prihvatite neke tekstualne izraze koji se koriste u naredbama. Korisnik može unijeti samo numeričke vrijednosti. Primijenite ovo zajedno s metodom bijele liste i imat ćete mnogo sigurniji sustav.

Treća stavka odnosi se na enkripciju sintaktičkih parametara kao što su uneseni znak i razmaci. Kao rezultat toga, metoda popisa dopuštenih, sintaktička provjera unosa i šifriranje unosa trebali bi vas zaštititi od ubacivanja OS naredbi.

Napadi injekcijom se razvijaju svaki dan

Postoje mnoge metode ubrizgavanja s različitim tehnikama napada, kao što su OS naredba, SQL, SSI i XPath. Nije lako spriječiti svaku od njih. Imajte na umu da se svi ti napadi razvijaju svaki dan i iskorištavaju male ranjivosti koje su programeri previdjeli. Zato je važno da uvijek budete u tijeku i pomno pratite aktualna zbivanja u svijetu kibernetičke sigurnosti.