10 najpogostejših ranljivosti spletne varnosti

Kazalo:

Anonim

OWASP ali Open Web Security Project je neprofitna dobrodelna organizacija, ki se osredotoča na izboljšanje varnosti programske opreme in spletnih aplikacij.

Organizacija na podlagi podatkov različnih varnostnih organizacij objavi seznam glavnih varnostnih ranljivosti.

Ranljivosti spletne varnosti imajo prednost glede na izkoriščenost, zaznavnost in vpliv na programsko opremo.

  • Izkoriščenost -

    Kaj je potrebno za izkoriščanje varnostne ranljivosti? Največja izkoristljivost, ko napad potrebuje le spletni brskalnik, najnižja pa napredno programiranje in orodja.

  • Zaznavnost -

    Kako enostavno je zaznati grožnjo? Najvišja je informacija, prikazana v URL-ju, obrazcu ali sporočilu o napaki, najnižja pa izvorna koda.

  • Vpliv ali škoda -

    Koliko škode bo storjeno, če bo varnostna ranljivost izpostavljena ali napadena? Najvišja je popolna zrušitev sistema, najnižja pa sploh nič.

Glavni cilj OWASP Top 10 je poučiti razvijalce, oblikovalce, menedžerje, arhitekte in organizacije o najpomembnejših varnostnih ranljivostih.

10 najboljših varnostnih ranljivosti po OWASP Top 10 so:

  • SQL Injection
  • Cross Site Scripting
  • Broken Authentication in upravljanje sej
  • Nevarni referenci neposrednih predmetov
  • Ponarejanje zahtev na več mestih
  • Varnostna napačna konfiguracija
  • Nevarno kriptografsko shranjevanje
  • Dostop do URL-jev ni bil omejen
  • Nezadostna zaščita transportnega sloja
  • Nepreverjene preusmeritve in naprej

SQL Injection

Opis

Vbrizgavanje je varnostna ranljivost, ki napadalcu omogoča spreminjanje stavkov SQL v ozadju z manipulacijo uporabnikovih podatkov.

Vbrizgavanje se zgodi, ko se uporabniški vnos pošlje tolmaču kot del ukaza ali poizvedbe in prevede tolmača v izvajanje nenamernih ukazov in omogoči dostop do nepooblaščenih podatkov.

Ukaz SQL, ki ga pri izvajanju spletne aplikacije lahko razkrije tudi zaledna baza podatkov.

Implication

  • Napadalec lahko na ranljiva polja vbrizga zlonamerno vsebino.
  • Iz baze podatkov lahko beremo občutljive podatke, kot so uporabniška imena, gesla itd.
  • Podatke v zbirki podatkov je mogoče spremeniti (Vstavi / Posodobi / Izbriši).
  • Administratorske operacije se lahko izvajajo v bazi podatkov

Ranljivi predmeti

  • Vnosna polja
  • URL-ji, ki sodelujejo z bazo podatkov.

Primeri:

  • Vbrizgavanje SQL na strani za prijavo

Prijava v aplikacijo brez veljavnih poverilnic.

Veljaven userName je na voljo in geslo ni na voljo.

Preizkusni URL: http://demo.testfire.net/default.aspx

Uporabniško ime: sjones

Geslo: 1 = 1 'ali pass123

Poizvedba SQL je bila ustvarjena in poslana Interpreterju kot spodaj

SELECT * FROM Users WHERE User_Name = sjones IN Password = 1 = 1 'ali pass123;

Priporočila

  1. Bela navaja vnosna polja
  2. Ne prikazujte podrobnih sporočil o napakah, ki so koristna napadalcu.

Cross Site Scripting

Opis

Cross Site Scripting je v kratkem znan tudi kot XSS.

Ranljivosti XSS ciljajo na skripte, vdelane na strani, ki se izvajajo na odjemalski strani, tj. Na uporabniškem brskalniku in ne na strežniški strani. Te napake se lahko pojavijo, ko aplikacija zajema nezaupljive podatke in jih brez ustreznega preverjanja pošlje v spletni brskalnik.

Napadalci lahko uporabljajo XSS za izvajanje zlonamernih skriptov uporabnikov, v tem primeru brskalnikov žrtev. Ker brskalnik ne more vedeti, ali je skript zanesljiv ali ne, bo skript izveden, napadalec pa lahko ugrabi piškotke seje, uniči spletna mesta ali uporabnika preusmeri na neželena in zlonamerna spletna mesta.

XSS je napad, ki napadalcu omogoča izvajanje skript v brskalniku žrtve.

Posledice:

  • Z uporabo te varnostne ranljivosti lahko napadalec v aplikacijo vbrizga skripte, lahko ukrade piškotke seje, uniči spletna mesta in zažene zlonamerno programsko opremo na žrtevinih računalnikih.

Ranljivi predmeti

  • Vnosna polja
  • URL-ji

Primeri

1. http://www.vulnerablesite.com/home?" < script > alert(" xss") script >

Zgornji skript se pri zagonu v brskalniku prikaže s sporočilom, če je spletno mesto ranljivo za XSS.

Resnejši napad lahko storimo, če želi napadalec prikazati ali shraniti piškotek seje.

2. http://demo.testfire.net/search.aspx?txtSearch > http://google.com width = 500 height 500>

Zgornji skript bo ob zagonu brskalnik naložil neviden okvir, ki kaže na http://google.com .

Napad je lahko resen z zagonom zlonamernega skripta v brskalniku.

Priporočila

  1. Bela polja za vnos na seznamu
  2. Vhodno izhodno kodiranje

Broken Authentication in upravljanje sej

Opis

Spletna mesta običajno ustvarijo piškotek seje in ID seje za vsako veljavno sejo, ti piškotki pa vsebujejo občutljive podatke, kot so uporabniško ime, geslo itd. Ko se seja zaključi z odjavo ali nenadnim zapiranjem brskalnika, je treba te piškotke razveljaviti, tj. Za vsako sejo naj bo nov piškotek.

Če piškotki ne bodo razveljavljeni, bodo v sistemu obstajali občutljivi podatki. Na primer, uporabnik, ki uporablja javni računalnik (Cyber ​​Cafe), piškotki ranljive strani sedijo v sistemu in so izpostavljeni napadalcu. Napadalec čez isti čas uporabi isti javni računalnik, občutljivi podatki so ogroženi.

Na enak način uporabnik, ki uporablja javni računalnik, namesto da se odjavi, nenadoma zapre brskalnik. Napadalec uporablja isti sistem. Ko brska po istem ranljivem mestu, se odpre prejšnja seja žrtve. Napadalec lahko naredi vse, kar želi, od kraje podatkov o profilu, podatkov o kreditni kartici itd.

Treba je preveriti, ali je moč preverjanja pristnosti in upravljanja sej močna. Ključe, žetone sej, piškotke je treba pravilno izvajati brez ogrožanja gesel.

Ranljivi predmeti

  • ID-ji sej, ki so izpostavljeni URL-ju, lahko privedejo do napada fiksacije seje.
  • ID-ji sej so enaki pred in po odjavi in ​​prijavi.
  • Časovne omejitve seje niso pravilno izvedene.
  • Aplikacija za vsako novo sejo dodeli isti ID seje.
  • Preverjeni deli aplikacije so zaščiteni s protokolom SSL, gesla pa so shranjena v zgoščeni ali šifrirani obliki.
  • Nizko privilegiran uporabnik lahko sejo ponovno uporabi.

Implication

  • Z uporabo te ranljivosti lahko napadalec ugrabi sejo, pridobi nepooblaščen dostop do sistema, ki omogoča razkritje in spreminjanje nepooblaščenih informacij.
  • Seje se lahko visoko prikradejo z ukradenimi piškotki ali seje z uporabo XSS.

Primeri

  1. Aplikacija za letalsko rezervacijo podpira prepisovanje URL-jev, tako da v URL vstavi ID-je sej:

    http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldivi (Prodaja vstopnic na Maldive)

    Preverjeni uporabnik spletnega mesta želi svoje prijatelje obvestiti o prodaji in pošlje e-poštno sporočilo. Prijatelji prejmejo ID seje in jih lahko uporabijo za nepooblaščene spremembe ali zlorabo shranjenih podatkov o kreditni kartici.

  2. Aplikacija je ranljiva za XSS, s pomočjo katerega lahko napadalec dostopa do ID-ja seje in ga lahko uporabi za ugrabitev seje.
  3. Časovne omejitve za aplikacije niso pravilno nastavljene. Uporabnik uporablja javni računalnik in zapre brskalnik, namesto da se odjavi in ​​odide. Napadalec uporablja isti brskalnik nekaj časa kasneje in seja je overjena.

Priporočila

  1. Vse zahteve za preverjanje pristnosti in upravljanje sej bi morale biti opredeljene v skladu s standardom za preverjanje varnosti aplikacije OWASP.
  2. Nikoli ne izpostavljajte poverilnic v URL-jih ali dnevnikih.
  3. Močno si je treba tudi prizadevati, da bi se izognili napakam XSS, ki jih je mogoče uporabiti za krajo ID-jev sej.

Nevarni referenci neposrednih predmetov

Opis

To se zgodi, ko razvijalec izpostavi sklic na notranji izvedbeni objekt, kot je datoteka, imenik ali ključ baze podatkov, kot je v URL-ju ali kot parameter FORM. Napadalec lahko te informacije uporabi za dostop do drugih predmetov in lahko ustvari prihodnji napad za dostop do nepooblaščenih podatkov.

Implication

  • Z uporabo te ranljivosti lahko napadalec dobi dostop do nepooblaščenih notranjih predmetov, lahko spremeni podatke ali ogrozi aplikacijo.

Ranljivi predmeti

  • V URL-ju.

Primeri:

Če spremenite "userid" v naslednjem URL-ju, lahko napadalec vidi podatke drugih uporabnikov.

http://www.vulnerablesite.com/userid=123 Spremenjeno v http://www.vulnerablesite.com/userid=124

Napadalec si lahko ogleda podatke drugih s spreminjanjem vrednosti ID uporabnika.

Priporočila:

  1. Izvedite preglede nadzora dostopa.
  2. Izogibajte se izpostavljanju referenc na predmete v URL-jih.
  3. Preverite pooblastilo za vse referenčne objekte.

Ponarejanje zahtev na več mestih

Opis

Ponarejanje zahtev za več spletnih mest je ponarejena zahteva, ki je prišla s spletnega mesta.

Napad CSRF je napad, ki se zgodi, ko zlonamerno spletno mesto, e-pošta ali program povzroči, da uporabnikov brskalnik izvede nezaželena dejanja na zaupanja vrednem spletnem mestu, za katerega je uporabnik trenutno overjen.

Napad CSRF prisiljen prijavljeni brskalnik žrtve pošlje ponarejeno zahtevo HTTP, vključno s piškotkom seje žrtve in vsemi drugimi samodejno vključenimi podatki za preverjanje pristnosti, ranljivi spletni aplikaciji.

Napadalec pošlje povezavo žrtvi, ko uporabnik klikne URL, ko je prijavljen na prvotno spletno mesto, podatki pa bodo ukradeni s spletnega mesta.

Implication

  • Uporaba te ranljivosti kot napadalca lahko spremeni podatke o uporabniškem profilu, spremeni stanje, ustvari novega uporabnika v skrbniškem imenu itd.

Ranljivi predmeti

  • Stran uporabniškega profila
  • Obrazci za uporabniške račune
  • Stran s poslovnimi transakcijami

Primeri

Žrtev je prijavljena na spletno mesto banke z veljavnimi poverilnicami. Od napadalca prejme pošto z besedo: "Kliknite tukaj, če želite prispevati 1 USD."

Ko žrtev klikne nanjo, bo ustvarjena veljavna zahteva za doniranje 1 USD na določen račun.

http://www.vulvablebank.com/transfer.do?account=cause&amount=1

Napadalec zajame to zahtevo in ustvari spodnjo zahtevo ter vdela gumb z napisom "I Support Cause."

http://www.vulvablebank.com/transfer.do?account=Attacker&amount=1000

Ker je seja overjena in zahteva prihaja prek spletnega mesta banke, bi strežnik napadalcu nakazal 1000 dolarjev.

Priporočilo

  1. Naredite prisotnost uporabnika med izvajanjem občutljivih dejanj.
  2. Izvedite mehanizme, kot so CAPTCHA, ponovna overitev in enolični žetoni zahtev.

Varnostna napačna konfiguracija

Opis

Varnostno konfiguracijo je treba definirati in razviti za aplikacijo, ogrodja, aplikacijski strežnik, spletni strežnik, strežnik baz podatkov in platformo. Če so ti pravilno konfigurirani, ima lahko napadalec nepooblaščen dostop do občutljivih podatkov ali funkcij.

Včasih takšne napake povzročijo popoln kompromis v sistemu. Posodabljanje programske opreme je tudi dobra varnost.

Implication

  • Z uporabo te ranljivosti lahko napadalec našteje osnovne informacije o tehnologiji in informacije o različici strežnika aplikacij, podatke o zbirki podatkov in pridobi informacije o aplikaciji, da izvede še nekaj napadov.

Ranljivi predmeti

  • URL
  • Polja obrazca
  • Vnosna polja

Primeri

  1. Skrbniška konzola strežnika aplikacij se samodejno namesti in ne odstrani. Privzeti računi se ne spremenijo. Napadalec se lahko prijavi s privzetimi gesli in lahko pridobi nepooblaščen dostop.
  2. Seznam imenikov na vašem strežniku ni onemogočen. Napadalec odkrije in lahko preprosto poimenuje imenike, da najde katero koli datoteko.

Priporočila

  1. Močna arhitektura aplikacije, ki zagotavlja dobro ločitev in varnost med komponentami.
  2. Spremenite privzeta uporabniška imena in gesla.
  3. Onemogočite sezname imenikov in izvedite preverjanje nadzora dostopa.

Nevarno kriptografsko shranjevanje

Opis

Negotovo kriptografsko shranjevanje je pogosta ranljivost, ki obstaja, ko občutljivi podatki niso varno shranjeni.

Poverilnice uporabnikov, podatki o profilu, podatki o zdravstvenem stanju, podatki o kreditnih karticah itd. Spadajo pod informacije o občutljivih podatkih na spletnem mestu.

Ti podatki bodo shranjeni v zbirki podatkov aplikacije. Če se ti podatki nepravilno shranijo, če ne uporabite šifriranja ali razprševanja *, bodo napadalci ranljivi.

(* Razprševanje je pretvorba nizovnih znakov v krajše nize fiksne dolžine ali v ključ. Za dešifriranje niza mora biti na voljo algoritem, uporabljen za oblikovanje ključa)

Implication

  • Z uporabo te ranljivosti lahko napadalec ukrade, spremeni tako šibko zaščitene podatke za krajo identitete, prevaro s kreditno kartico ali druga kazniva dejanja.

Ranljivi predmeti

  • Baza podatkov aplikacij.

Primeri

V eni od bančnih aplikacij zbirka podatkov gesel uporablja neslane zgoščevalne znake * za shranjevanje gesel vseh. Napaka vbrizgavanja SQL omogoča napadalcu, da pridobi datoteko z geslom. Vse neslane hashe je mogoče v kratkem silo izsiliti, nasoljena gesla pa bi trajala tisoče let.

(* Nesoljeni hashi - sol je naključni podatek, ki je dodan prvotnim podatkom. Sol je dodana geslu pred razprševanjem)

Priporočila

  1. Zagotovite ustrezne močne standardne algoritme. Ne ustvarjajte lastnih kriptografskih algoritmov. Uporabljajte samo odobrene javne algoritme, kot so AES, kriptografija javnega ključa RSA in SHA-256 itd.
  2. Zagotovite, da so varnostne kopije zunaj mesta šifrirane, ključi pa se upravljajo in varnostno kopirajo ločeno.

Dostop do URL-jev ni bil omejen

Opis

Spletne aplikacije preverjajo pravice dostopa do URL-jev, preden upodabljajo zaščitene povezave in gumbe. Aplikacije morajo opraviti podobna preverjanja nadzora dostopa vsakič, ko dostopajo do teh strani.

V večini aplikacij privilegirane strani, lokacije in viri niso predstavljeni privilegiranim uporabnikom.

Z inteligentnim ugibanjem lahko napadalec dostopa do strani s privilegiji. Napadalec lahko dostopa do občutljivih strani, prikliče funkcije in si ogleda zaupne informacije.

Implication

  • Z uporabo tega napadalca ranljivosti lahko dobite dostop do nepooblaščenih URL-jev, ne da bi se prijavili v aplikacijo in izkoristili ranljivost. Napadalec lahko dostopa do občutljivih strani, prikliče funkcije in si ogleda zaupne informacije.

Ranljivi predmeti:

  • URL-ji

Primeri

  1. Napadalec opazi, da URL označuje vlogo kot "/ user / getaccounts." Spremeni se kot "/ admin / getaccounts".
  2. Napadalec lahko URL-ju doda vlogo.

http://www.vulnerablsite.com je mogoče spremeniti kot http://www.vulnerablesite.com/admin

Priporočila

  1. Izvedite močne preglede nadzora dostopa.
  2. Politike avtentifikacije in avtorizacije morajo temeljiti na vlogah.
  3. Omejite dostop do neželenih URL-jev.

Nezadostna zaščita transportnega sloja

Opis

Ukvarja se z izmenjavo informacij med uporabnikom (odjemalec) in strežnikom (aplikacija). Aplikacije pogosto po omrežju prenašajo občutljive podatke, kot so podrobnosti o preverjanju pristnosti, podatki o kreditni kartici in žetoni sej.

Če uporabljate šibke algoritme ali uporabite potekla ali neveljavna potrdila ali če ne uporabljate SSL, lahko komunikacijo izpostavite nezaupnim uporabnikom, kar lahko ogrozi spletno aplikacijo ali ukrade občutljive podatke.

Implication

  • Z uporabo te ranljivosti spletne varnosti lahko napadalec povoha legitimne poverilnice uporabnika in pridobi dostop do aplikacije.
  • Lahko ukrade podatke o kreditni kartici.

Ranljivi predmeti

  • Podatki, poslani po omrežju.

Priporočila

  1. Omogočite varen HTTP in vsilite prenos poverilnic samo prek HTTPS.
  2. Prepričajte se, da je vaše potrdilo veljavno in da ni poteklo.

Primeri:

1. Programer, ki ne uporablja SSL, bo preprosto nadziral omrežni promet in opazoval overjen piškotek seje žrtve. Napadalec lahko piškotek ukrade in izvede napad Man-in-the-Middle.

Nepreverjene preusmeritve in naprej

Opis

Spletna aplikacija uporablja nekaj načinov za preusmeritev in usmerjanje uporabnikov na druge strani za predvideni namen.

Če med preusmerjanjem na druge strani ni ustreznega preverjanja veljavnosti, lahko napadalci to izkoristijo in žrtve preusmerijo na spletna mesta z zlonamerno programsko opremo ali zlonamerno programsko opremo ali uporabijo naprej za dostop do nepooblaščenih strani.

Implication

  • Napadalec lahko uporabniku pošlje URL, ki vsebuje pristen URL, dodan s kodiranim zlonamernim URL-jem. Uporabnik lahko, ko samo vidi originalni del poslanega URL-ja napadalca, po njem brska in lahko postane žrtev.

Primeri

1. http://www.vulnerablesite.com/login.aspx?redirectURL=ownsite.com

Spremenjeno v

http://www.vulnerablesite.com/login.aspx?redirectURL=evilsite.com

Priporočila

  1. Preprosto se izogibajte uporabi preusmeritev in naprej v aplikaciji. Če se uporablja, pri izračunu cilja ne uporabljajte uporabniških parametrov.
  2. Če se ciljnim parametrom ni mogoče izogniti, zagotovite, da je navedena vrednost veljavna in pooblaščena za uporabnika.

Ta članek prispeva Prasanthi Eati