Sigurnost

10 vrsta sigurnosnih ranjivosti

10 vrsta sigurnosnih ranjivosti
Nenamjerna ili slučajna greška u softverskom kodu ili bilo kojem sustavu koji ga čini potencijalno iskoristivim u smislu pristupa nelegitimnim korisnicima, zlonamjernom ponašanju poput virusa, trojanaca, crva ili bilo kojeg drugog zlonamjernog softvera naziva se sigurnosna ranjivost. Korištenje softvera koji je već iskorišten ili upotreba slabih i zadanih lozinki također rezultira ranjivošću sustava na vanjski svijet. Ove vrste sigurnosnih ranjivosti zahtijevaju zakrpe kako bi spriječili hakere da ponovno koriste prethodno korištene exploit-ove na njima kako bi stekli neovlašteni pristup sustavu. Sigurnosna ranjivost koja se naziva i sigurnosna rupa ili slabost je mana, greška ili kvar u implementaciji koda, dizajna i arhitekture web aplikacije i poslužitelja, što ako se ne adresira može rezultirati kompromitiranjem sustava i čini cijela mreža ranjiva na napad. Ljudi koji će se zaraziti uključuju vlasnika aplikacije, korisnike aplikacije i bilo koju drugu osobu koja se oslanja na tu aplikaciju. Pogledajmo najopasnije i najčešće sigurnosne rizike za web aplikacije.

Sadržaj

  1. Injekcija baze podataka
  2. Prekinuta autentifikacija
  3. Izloženost osjetljivim podacima
  4. XML vanjski entiteti (XEE)
  5. Neispravna kontrola pristupa
  6. Pogrešna konfiguracija sigurnosti
  7. Cross-site Scripting (XSS)
  8. Nesigurna deserijalizacija
  9. Korištenje komponenata s poznatim ranjivostima
  10. Nedovoljno bilježenje i praćenje

Injekcija baze podataka:

U slučaju slanja nepouzdanih dijelova podataka tumaču kao dijela naredbe kroz bilo koje područje koje uzima korisnički unos i.U unosu obrasca ili bilo kojem drugom području za predaju podataka pojavljuju se nedostaci u ubrizgavanju. Zlonamjerni upiti napadača mogu prevesti tumača da izvrši naredbe koje mogu prikazati povjerljive podatke za koje korisnik nema ovlaštenje da ih pogleda. Na primjer, u napadu SQL ubrizgavanja, kada unos obrasca nije pravilno saniran, napadač može ući u SQL bazu podataka i pristupiti njezinom sadržaju bez autorizacije, samo unošenjem zlonamjernog koda SQL baze podataka u oblik koji očekuje otvoreni tekst. Bilo koja vrsta polja koja uzima korisnikov unos može se ubrizgati i.e parametri, varijable okruženja, sve web usluge itd.

Aplikacija je ranjiva na napad ubrizgavanjem kada podaci koje korisnik dostavi nisu sanirani i provjereni, upotrebom dinamičkih upita bez izbjegavanja kontekstualnog saznanja i izravnom upotrebom neprijateljskih podataka. Nedostaci u injekciji mogu se lako otkriti ispitivanjem koda i upotrebom automatiziranih alata poput skenera i raspršivača. Da bi se spriječili napadi ubrizgavanjem, postoji neka mjera koja se može poduzeti poput odvajanja podataka od naredbi i upita, upotreba sigurnog API-ja koji pruža parametrizirano sučelje, upotreba provjere unosa na bijeloj listi na strani poslužitelja putem alata poput Snort, bijeg od posebnih znakova pomoću specifične sintakse za bijeg, itd.

Napad ubrizgavanjem može dovesti do velikog gubitka podataka, otkrivanja povjerljivih podataka, uskraćivanja pristupa, a može dovesti i do potpunog preuzimanja aplikacije. Neke SQL kontrole poput LIMIT-a mogu se koristiti za kontrolu ogromnih količina gubitka podataka u slučaju napada. Neke vrste napada ubrizgavanjem su SQL, OS, NoSQL, LDAP napadi ubrizgavanjem.

Neispravna provjera autentičnosti:

Napadači mogu pristupiti korisničkim računima i čak mogu kompromitirati cijeli sustav hosta putem administratorskih računa, koristeći ranjivosti u sustavima za provjeru autentičnosti. Propusti u provjeri autentičnosti omogućuju napadaču da ugrozi lozinke, tokene sesije, ključeve za provjeru autentičnosti i mogu biti lančano povezani s drugim napadima koji mogu dovesti do neovlaštenog pristupa bilo kojem drugom korisničkom računu ili sesiji privremeno, au nekim slučajevima i trajno. Recimo da korisnik ima popis riječi ili rječnik milijuna valjanih korisničkih imena i lozinki dobivenih tijekom kršenja. Može ih koristiti jednu po jednu u izuzetno kraćem vremenu pomoću automatiziranih alata i skripti na sustavu za prijavu da vidi radi li itko. Loša primjena upravljanja identitetom i kontrola pristupa dovodi do ranjivosti poput slomljene provjere autentičnosti.

Aplikacija je ranjiva na napad provjere autentičnosti kada dopušta isprobavanje različitih korisničkih imena i lozinki, dopušta napade rječnika ili grube napade bez ikakve obrambene strategije, koristi jednostavne, zadane lozinke ili lozinke koje procure u bilo kojem kršenju, izlaže ID-ove sesija u URL-u, koristi loša shema oporavka lozinke, koristi obrazac kolačića. Prekinuta provjera autentičnosti može se lako iskoristiti pomoću jednostavnih alata za forsiranje grubih i rječničkih napada uz dobar rječnik. Te se vrste napada mogu spriječiti korištenjem višefaktorskih sustava za provjeru autentičnosti, primjenom slabih provjera lozinki pokretanjem lozinke kroz bazu podataka loših lozinki, ne korištenjem zadanih vjerodajnica, usklađivanjem politike složenosti lozinki, upotrebom dobre strane poslužitelja upravitelj sesija koji generira novi slučajni ID sesije nakon prijave itd.

Neispravna ranjivost provjere autentičnosti može dovesti do ugrožavanja nekoliko korisničkih računa i administratorskog računa, to je sve što napadač treba da ugrozi sustav. Te vrste napada dovode do krađe identiteta, prijevara socijalnog osiguranja, pranja novca i otkrivanja visoko povjerljivih podataka. Napadi uključuju napade rječnika, forsiranje grubih napada, otmice sesija i napade na upravljanje sesijama.

Izloženost osjetljivim podacima:

Ponekad web aplikacije ne štite osjetljive podatke i informacije poput lozinki, vjerodajnica baze podataka itd. Napadač može lako ukrasti ili izmijeniti ove slabo zaštićene vjerodajnice i koristiti ih u nelegitimne svrhe. Osjetljivi podaci trebali bi se šifrirati dok miruju ili su u tranzitu i imati dodatni nivo zaštite, u protivnom ih napadači mogu ukrasti. Napadači mogu doći do osjetljivih izloženih podataka i ukrasti raspršene ili očistiti tekstne podatke i vjerodajnice baze podataka s poslužitelja ili web preglednika. Na primjer, ako baza podataka lozinki koristi neslane ili jednostavne hashove za pohranu lozinki, nedostatak prijenosa datoteke može omogućiti napadaču da dohvati bazu podataka lozinki što će dovesti do otkrivanja svih lozinki s duginom tablicom unaprijed izračunatih hashova.

Glavna mana nije samo u tome što podaci nisu šifrirani, čak i ako su šifrirani, već generiranje slabog ključa, slabi algoritmi raspršivanja, slaba upotreba šifre također mogu rezultirati ovim vrstama jednog od najčešćih napada. Da biste spriječili ove vrste napada, prvo klasificirajte koju vrstu podataka možete smatrati osjetljivom prema zakonima o privatnosti i primijenite kontrole prema klasifikaciji. Pokušajte ne pohraniti nikakve klasificirane podatke koji vam nisu potrebni, nego ih operite čim ih upotrijebite. Za podatke u prijenosu šifrirajte ih sigurnim protokolima i.e TLS s PFS šiframa, itd.

Ove vrste ranjivosti mogu rezultirati otkrivanjem vrlo osjetljivih podataka poput vjerodajnica na kreditnim karticama, zdravstvenih kartona, lozinki i svih drugih osobnih podataka koji mogu dovesti do krađe identiteta i prijevare u banci itd.

XML vanjski entiteti (XEE):

Loše konfigurirani XML procesori obrađuju reference vanjskih entiteta unutar XML dokumenata. Ovi vanjski entiteti mogu se koristiti za dohvaćanje podataka internih datoteka poput / etc / passwd datoteku ili za izvršavanje drugih zlonamjernih zadataka.  Ranjivi XML procesori mogu se lako iskoristiti ako napadač može prenijeti XML dokument ili uključiti XML itd. Ovi ranjivi XML entiteti mogu se otkriti pomoću SAST i DAST alata ili ručno pregledavanjem ovisnosti i konfiguracija.

Web aplikacija je ranjiva na XEE napad iz mnogih razloga, primjerice ako aplikacija prihvaća izravan XML unos iz nepouzdanih izvora, omogućene su definicije vrste dokumenta (DTD) u aplikaciji, aplikacija koristi SAML za obradu identiteta jer SAML koristi XML za identitet umetanja itd. XEE napadi mogu se ublažiti izbjegavanjem serializacije osjetljivih podataka, korištenjem manje kompliciranih formata podataka i.e JSON, krpanje XML procesora aplikacija se trenutno koristi, pa čak i knjižnice, onemogućava DTD-ove u svim XML parserima, provjera valjanosti funkcionalnosti prijenosa XML datoteka pomoću XSD provjere, itd.

Aplikacija ranjiva na ove vrste napada može dovesti do DOS napada, napada Billion Laughs, skeniranja internih sustava, unutarnjeg skeniranja porta, izvršavanja udaljene naredbe što rezultira utjecajem na sve podatke aplikacije.

Neispravna kontrola pristupa:

Kontrola pristupa korisnicima daje privilegije za obavljanje određenih zadataka. Neispravna ranjivost kontrole pristupa događa se kada korisnici nisu pravilno ograničeni na zadatke koje mogu obavljati. Napadači mogu iskoristiti ovu ranjivost koja može završiti u pristupu neovlaštenoj funkcionalnosti ili informacijama. Recimo da web aplikacija omogućuje korisniku da promijeni račun s kojeg je prijavljen samo promjenom URL-a na račun drugog korisnika bez daljnje provjere.  Iskorištavanje ranjivosti kontrole pristupa pravi je napad bilo kojeg napadača, a ova se ranjivost može pronaći ručno, kao i pomoću alata SAFT i DAFT. Te ranjivosti postoje zbog nedostatka testiranja i automatiziranog otkrivanja web aplikacija, iako je najbolji način da se pronađu ručno.

Ranjivosti sadrže eskalaciju privilegija i.ponašate se kao korisnik koji niste ili djelujete kao administrator dok ste korisnik, zaobilazeći provjere kontrole pristupa samo mijenjanjem URL-a ili promjenom stanja aplikacije, manipulacijom metapodacima, omogućujući da se primarni ključ promijeni kao primarni ključ drugog korisnika, itd. Da bi se spriječile ove vrste napada, mehanizmi kontrole pristupa moraju se implementirati u kod poslužitelja gdje napadači ne mogu mijenjati kontrole pristupa. Moraju se osigurati provođenje jedinstvenih poslovnih ograničenja aplikacija prema modelima domena, onemogućavanje popisa direktorija poslužitelja, upozorenje administratora na ponovljene neuspjele pokušaje prijave, poništavanje JWT tokena nakon odjave kako bi se ublažile ove vrste napada.

Napadači mogu djelovati kao drugi korisnik ili administrator koji koristi ovu ranjivost za izvršavanje zlonamjernih zadataka poput stvaranja, brisanja i izmjene zapisa itd. Veliki gubitak podataka može se dogoditi ako podaci nisu osigurani ni nakon kršenja.

Pogrešna konfiguracija sigurnosti:

Najčešća ranjivost je pogrešna konfiguracija sigurnosti. Glavni razlog ranjivosti je upotreba zadane konfiguracije, nepotpune konfiguracije, Adhoc konfiguracija, loše konfiguriranih HTTP zaglavlja i detaljnih poruka o pogreškama koje sadrže više informacija nego što je korisnik zapravo trebao znati. Na bilo kojoj razini web aplikacije mogu se dogoditi pogrešne konfiguracije i.e baza podataka, web poslužitelj, poslužitelj aplikacija, mrežne usluge itd. Napadači mogu iskorištavati neupravljene sustave ili pristupiti nezaštićenim datotekama i direktorijima kako bi neovlašteno zadržali sustav. Na primjer, aplikacija pretjerano opširnih poruka o pogreškama koje pomažu napadaču da sazna ranjivosti u aplikacijskom sustavu i načinu na koji to radi. Automatski alati i skeneri mogu se koristiti za otkrivanje ovih vrsta sigurnosnih nedostataka.

Web aplikacija sadrži ranjivost ove vrste ako joj nedostaju mjere sigurnosnog učvršćivanja u bilo kojem dijelu aplikacije, otvoreni su nepotrebni priključci ili omogućuje nepotrebne značajke, koriste se zadane lozinke, rukovanje pogreškama otkriva informativne pogreške napadaču, a koristi neotkriveni ili zastarjeli sigurnosni softver itd. To se može spriječiti uklanjanjem nepotrebnih značajki koda, tj.minimalna platforma bez nepotrebnih značajki, dokumentacije itd., koja omogućava zadatku da ažurira i popravi sigurnosne rupe kao dio procesa upravljanja zakrpama, korištenje postupka za provjeru učinkovitosti poduzetih sigurnosnih mjera, upotreba ponovljivog postupka otvrdnjavanja lako je primijeniti drugo okruženje koje je ispravno zaključano.

Ove vrste ranjivosti ili nedostataka omogućuju napadaču neovlašteni pristup podacima sustava što dovodi do potpune kompromitacije sustava.

Cross-Site Scripting (XSS):

XSS ranjivosti događaju se u trenutku kada web aplikacija uključuje nepouzdane podatke u novu stranicu web stranice bez legitimnog odobrenja ili bijega ili osvježava trenutnu stranicu web stranice podacima klijenta, koristeći API preglednika koji može stvoriti HTML ili JavaScript.  XSS nedostaci javljaju se u slučaju da web stranica dopušta korisniku dodavanje prilagođenog koda u URL stazu koju drugi korisnici mogu vidjeti. Te se pogreške koriste za pokretanje zlonamjernog JavaScript koda na ciljanom pregledniku. Recimo, napadač može žrtvi poslati vezu koja sadrži vezu do web mjesta bilo koje tvrtke. U ovu bi vezu mogla biti ugrađen zlonamjerni JavaScript kôd. U slučaju da web stranica banke nije na odgovarajući način zaštićena od XSS napada, klikom na vezu zlonamjerni kod pokrenut će se u pregledniku žrtve.

Cross-Site Scripting sigurnosna je ranjivost prisutna u gotovo ⅔ web aplikacija. Aplikacija je ranjiva na XSS ako aplikacija pohranjuje nesanitizirani korisnički unos koji drugi korisnik može vidjeti, upotrebom JavaScript struktura, aplikacija na jednoj stranici i API-ja koji snažno uključuju informacije koje kontrolira napadač na stranicu bespomoćne su protiv DOM XSS-a. XSS napadi mogu se ublažiti upotrebom okvira koji izbjegavaju i saniraju unos XSS-a po prirodi kao što je React JS itd., Učenjem ograničenja okvira i njihovim pokrivanjem pomoću vlastitih slučajeva, izbjegavanjem nepotrebnih i nepouzdanih HTML podataka svugdje i.e u HTML atributima, URI-ju, Javascriptu, itd., upotreba kodiranja osjetljivog na kontekst u slučaju izmjene dokumenta na strani klijenta, itd.

Napadi temeljeni na XSS-u su tri vrste i.e Reflektirani XSS, DOM XSS i pohranjeni XSS. Sve vrste ovih napada imaju značajan utjecaj, ali u slučaju pohranjenog XSS-a učinak je još veći i.krađa vjerodajnica, slanje zlonamjernog softvera žrtvi itd.

Nesigurna deserializacija:

Serijalizacija podataka znači uzimanje predmeta i njihovo pretvaranje u bilo koji format kako bi se ti podaci kasnije mogli koristiti u druge svrhe, dok deserializacija podataka znači suprotno od onoga. Deserijalizacija raspakira ove serializirane podatke za upotrebu aplikacija. Nesigurna deserializacija znači kaljenje podataka koji su serializirani neposredno prije nego što će se raspakirati ili deserializirati.  Nesigurna deserializacija dovodi do daljinskog izvršavanja koda i koristi se za izvršavanje drugih zadataka u zlonamjerne svrhe poput eskalacije privilegija, napada ubrizgavanjem, napada ponovnog prikazivanja itd. Dostupni su neki alati za otkrivanje takvih vrsta nedostataka, ali za potvrđivanje problema često je potrebna ljudska pomoć. Iskorištavanje deserializacije pomalo je teško jer exploiti neće raditi bez nekih ručnih promjena.

Kada aplikacija deserializira zlonamjerne objekte koje je isporučio napadački entitet. To može dovesti do dvije vrste napada i.Napadi povezani sa strukturom podataka i objektima u kojima napadač modificira logiku aplikacije ili izvršava udaljeni kôd i tipični napadi na neovlašteno miješanje podataka u kojima se postojeće podatkovne strukture koriste s modificiranim sadržajem, na primjer napadi povezani s kontrolom pristupa.  Serijalizacija se može koristiti u udaljenoj procesnoj komunikaciji (RPC) ili međuprocesnoj komunikaciji (IPC), predmemoriranju podataka, web uslugama, poslužitelju predmemorije baza podataka, datotečnim sustavima, API tokenima za provjeru autentičnosti, HTML kolačićima, parametrima HTML obrasca itd. Deserijalizacijski napadi mogu se ublažiti ne korištenjem serializiranih objekata iz nepouzdanih izvora, provođenjem provjera integriteta, izoliranjem koda koji se izvodi u malo privilegiranom okruženju, nadziranjem dolaznih i odlaznih mrežnih veza sa poslužitelja koji se često deserijaliziraju.

Korištenje komponenata s poznatim ranjivostima:

Većina programera u web aplikaciji koristi različite komponente poput knjižnica, okvira i softverskih modula. Te knjižnice pomažu programeru da izbjegne nepotreban rad i pružaju potrebne funkcije. Napadači traže nedostatke i ranjivosti u tim komponentama kako bi koordinirali napad. U slučaju pronalaska sigurnosne rupe u komponenti mogu sve web lokacije koje koriste istu komponentu učiniti ranjivima. Eksploativi ovih ranjivosti već su dostupni dok je pisanje prilagođenog exploita od nule potrebno puno truda. Ovo je vrlo često i široko rasprostranjeno pitanje, upotreba velike količine komponenata u razvoju web aplikacija može dovesti do toga da se čak ni ne znaju i ne razumiju sve korištene komponente, popravljanje i ažuriranje svih komponenata je dug put.

Aplikacija je ranjiva ako programer ne zna verziju korištene komponente, ako je softver zastario, tj.e, operativni sustav, DBMS, pokrenut softver, runtime okruženja i knjižnice, skeniranje ranjivosti ne obavlja se redovito, kompatibilnost zakrpljenog softvera programeri ne testiraju. To se može spriječiti uklanjanjem neiskorištenih ovisnosti, datoteka, dokumentacije i knjižnica, redovitim provjeravanjem verzije klijentskih i poslužiteljskih komponenata, pribavljanjem komponenata i knjižnica iz službenih i pouzdanih sigurnih izvora, nadziranjem neupravljenih knjižnica i komponenata, osiguravanjem plana za redovito ažuriranje i krpanje osjetljivih komponenata.

Te ranjivosti dovode do manjih utjecaja, ali mogu dovesti i do ugrožavanja poslužitelja i sustava. Mnoga velika kršenja oslanjala su se na poznate ranjivosti komponenata. Korištenje ranjivih komponenata potkopava obranu aplikacije i može biti polazna točka za veliki napad.

Nedovoljno bilježenje i nadzor:

Većina sustava ne poduzima dovoljno mjera i koraka za otkrivanje kršenja podataka. Prosječno vrijeme odgovora na incident je 200 dana nakon što se dogodio, ovo je puno vremena za napraviti sve gadne stvari za napadačkog entiteta. Nedovoljno zapisivanje i nadzor omogućuju napadaču daljnji napad na sustav, zadržavanje zadržavanja na sustavu, petljanje, zadržavanje i izvlačenje podataka prema potrebi. Napadači koriste nedostatak nadzora i odgovora u svoju korist za napad na web aplikaciju.
U bilo kojem trenutku dolazi do nedovoljnog zapisivanja i praćenja i.Evidencije aplikacija koje se ne nadgledaju zbog neobičnih aktivnosti, događaji koji se mogu revidirati poput neuspjelih pokušaja prijave i visokih vrijednosti transakcija nisu pravilno zabilježeni, upozorenja i pogreške generiraju nejasne poruke pogreške, nema upozorenja okidača u slučaju pentestiranja pomoću automatiziranih DAST alata, jer nisu u mogućnosti otkriti ili brzo upozorite na aktivne napade itd. To se može ublažiti osiguravanjem svih prijava, neuspjeha kontrole pristupa i provjere valjanosti unosa na strani poslužitelja radi identificiranja zlonamjernog korisničkog računa i zadržati dovoljno vremena za odgođeno forenzičko istraživanje, osiguravajući da generirani dnevnici budu u formatu kompatibilno s centraliziranim rješenjima za upravljanje dnevnicima, osiguravanjem provjera integriteta kod transakcija velike vrijednosti, uspostavljanjem sustava za pravovremeno upozoravanje na sumnjive aktivnosti itd.

Većina uspješnih napada započinje provjerom i ispitivanjem ranjivosti u sustavu, što omogućava da ispitivanje ranjivosti može dovesti do ugrožavanja cijelog sustava.

Zaključak:

Sigurnosne ranjivosti u web aplikaciji utječu na sve entitete povezane s tom aplikacijom. Moramo se pobrinuti za ove ranjivosti kako bismo korisnicima osigurali sigurno i sigurno okruženje. Napadači mogu koristiti ove ranjivosti da kompromitiraju sustav, dokopaju se njega i povećaju privilegije. Učinak kompromitirane web aplikacije može se vizualizirati od ukradenih vjerodajnica na kreditnoj kartici i krađe identiteta do curenja visoko povjerljivih podataka itd. ovisno o potrebama i vektorima napada zlonamjernih entiteta.

Kako promijeniti lijevu i desnu tipku miša na računalu sa sustavom Windows 10
Sasvim je normalno da su svi uređaji računalnog miša ergonomski dizajnirani za dešnjake. Ali postoje dostupni uređaji za miš koji su posebno dizajnira...
Emulirajte klikove mišem lebdeći mišem bez klika u sustavu Windows 10
Korištenje miša ili tipkovnice u pogrešnom držanju pretjerane upotrebe može rezultirati mnogim zdravstvenim problemima, uključujući naprezanje, sindro...
Dodajte geste miša u sustav Windows 10 pomoću ovih besplatnih alata
Posljednjih godina računala i operativni sustavi uvelike su se razvili. Bilo je vrijeme kada su korisnici morali koristiti naredbe za navigaciju kroz ...