10 Visizplatītākās tīmekļa drošības ievainojamības

Satura rādītājs:

Anonim

OWASP jeb Open Web Security Project ir bezpeļņas labdarības organizācija, kas koncentrējas uz programmatūras un tīmekļa lietojumprogrammu drošības uzlabošanu.

Organizācija publicē populārāko tīmekļa drošības ievainojamību sarakstu, pamatojoties uz dažādu drošības organizāciju datiem.

Tīmekļa drošības ievainojamības tiek priorizētas atkarībā no izmantojamības, nosakāmības un ietekmes uz programmatūru.

  • Izmantojamība -

    Kas ir nepieciešams, lai izmantotu drošības ievainojamību? Visaugstākā izmantojamība, ja uzbrukumam ir nepieciešama tikai tīmekļa pārlūkprogramma, un zemākais ir uzlabotas programmēšanas un rīki.

  • Nosakāmība -

    Cik viegli ir atklāt draudus? Augstākā ir informācija, kas tiek parādīta vietrādī URL, veidlapā vai kļūdas ziņojumā, un zemākā ir avota kods.

  • Trieciens vai bojājums -

    Cik liels kaitējums tiks nodarīts, ja tiks atklāta vai uzbrūk drošības ievainojamībai? Augstākā ir pilnīga sistēmas avārija un zemākā - vispār nekas.

OWASP Top 10 galvenais mērķis ir izglītot izstrādātājus, dizainerus, vadītājus, arhitektus un organizācijas par vissvarīgākajām drošības ievainojamībām.

10 visaugstākās drošības ievainojamības saskaņā ar OWASP Top 10 ir:

  • SQL injekcija
  • Starp vietņu skriptu izveidošana
  • Salauzta autentifikācija un sesiju pārvaldība
  • Nedrošas tiešās objektu atsauces
  • Vairāku vietņu pieprasījums par viltojumu
  • Drošības nepareiza konfigurēšana
  • Nedroša kriptogrāfiskā krātuve
  • Nespēja ierobežot piekļuvi vietnei URL
  • Nepietiekama transporta slāņa aizsardzība
  • Neapstiprināti novirzīšana un pārsūtīšana

SQL injekcija

Apraksts

Injicēšana ir drošības ievainojamība, kas ļauj uzbrucējam mainīt SQL aizmugures aizmuguri, manipulējot ar lietotāja sniegtajiem datiem.

Injicēšana notiek, kad lietotāja ievade tiek nosūtīta tulkotājam kā komandas vai vaicājuma sastāvdaļa, un maldina tulku izpildīt neparedzētas komandas un dod piekļuvi neatļautiem datiem.

SQL komanda, kas, izpildot tīmekļa lietojumprogrammu, var arī atklāt aizmugures datu bāzi.

Ietekme

  • Uzbrucējs var injicēt ļaunprātīgu saturu neaizsargātajos laukos.
  • No datu bāzes var nolasīt tādus sensitīvus datus kā lietotāju vārdi, paroles utt.
  • Datu bāzes datus var modificēt (ievietot / atjaunināt / dzēst).
  • Administrācijas darbības var veikt datu bāzē

Neaizsargātie objekti

  • Ievades lauki
  • URL, kas mijiedarbojas ar datu bāzi.

Piemēri:

  • SQL injekcija pieteikšanās lapā

Pieteikšanās lietojumprogrammā bez derīgiem akreditācijas datiem.

Derīgs lietotāja vārds ir pieejams, un parole nav pieejama.

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

Lietotājvārds: sjones

Parole: 1 = 1 vai pass123

SQL vaicājums izveidots un nosūtīts tulkotājam, kā norādīts zemāk

ATLASIET * no lietotājiem WHERE User_Name = sjones UN Password = 1 = 1 'vai pass123;

Ieteikumi

  1. Baltais saraksts ar ievades laukiem
  2. Izvairieties no detalizētu kļūdu ziņojumu parādīšanas, kas ir noderīgi uzbrucējam.

Starp vietņu skriptu izveidošana

Apraksts

Starpvietu skriptu izveidošana īslaicīgi ir pazīstama arī kā XSS.

XSS ievainojamības mērķa skripti ir iegulti lapā, kas tiek izpildīti klienta pusē, ti, lietotāja pārlūkprogrammā, nevis servera pusē. Šie trūkumi var rasties, ja lietojumprogramma ņem neuzticamus datus un nosūta tos tīmekļa pārlūkprogrammai bez pienācīgas validācijas.

Uzbrucēji var izmantot XSS, lai izpildītu ļaunprātīgus skriptus lietotājiem, šajā gadījumā upuru pārlūkprogrammās. Tā kā pārlūkprogramma nevar zināt, vai skripts ir uzticams vai ne, skripts tiks izpildīts, un uzbrucējs var nolaupīt sesijas sīkfailus, apmānīt vietnes vai novirzīt lietotāju uz nevēlamām un ļaunprātīgām vietnēm.

XSS ir uzbrukums, kas ļauj uzbrucējam izpildīt skriptus upura pārlūkprogrammā.

Ietekme:

  • Izmantojot šo drošības ievainojamību, uzbrucējs var ievadīt lietojumprogrammā skriptus, var nozagt sesijas sīkfailus, iznīcināt vietnes un palaist ļaunprātīgu programmatūru upura mašīnās.

Neaizsargātie objekti

  • Ievades lauki
  • URL

Piemēri

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

Iepriekš norādītais skripts, palaižot pārlūkprogrammā, tiks parādīts ziņojumu lodziņš, ja vietne ir neaizsargāta pret XSS.

Nopietnāku uzbrukumu var izdarīt, ja uzbrucējs vēlas parādīt vai saglabāt sesijas sīkfailu.

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

Veicot iepriekš minēto skriptu, pārlūkprogramma ielādēs neredzamu ietvaru, norādot uz vietni http://google.com .

Uzbrukumu var padarīt nopietnu, pārlūkprogrammā palaižot ļaunprātīgu skriptu.

Ieteikumi

  1. Baltā saraksta ievades lauki
  2. Ieejas izvades kodēšana

Salauzta autentifikācija un sesiju pārvaldība

Apraksts

Vietnes parasti katrai derīgai sesijai izveido sesijas sīkfailu un sesijas ID, un šīs sīkdatnes satur sensitīvus datus, piemēram, lietotājvārdu, paroli utt. vajadzētu būt jaunam cepumam.

Ja sīkdatnes netiek anulētas, sistēmā būs sensitīvi dati. Piemēram, lietotājs, kurš izmanto publisku datoru (Cyber ​​Cafe), neaizsargātās vietnes sīkfaili atrodas sistēmā un ir pakļauti uzbrucēja iedarbībai. Uzbrucējs pēc kāda laika izmanto to pašu publisko datoru, slepenie dati tiek apdraudēti.

Tādā pašā veidā lietotājs, kas izmanto publisku datoru, nevis atsakās, bet pēkšņi aizver pārlūku. Uzbrucējs izmanto to pašu sistēmu. Pārlūkojot to pašu neaizsargāto vietni, tiks atvērta iepriekšējā upura sesija. Uzbrucējs var darīt visu, ko viņš vēlas, zogot profila informāciju, kredītkartes informāciju utt.

Būtu jāveic pārbaude, lai atrastu autentifikācijas un sesiju pārvaldības stiprumu. Atslēgas, sesijas žetoni, sīkfaili ir jāievieš pareizi, neapdraudot paroles.

Neaizsargātie objekti

  • Vietrāžā URL redzamie sesiju ID var izraisīt sesijas labošanas uzbrukumu.
  • Sesijas ID ir vienādi pirms un pēc atteikšanās un pieteikšanās.
  • Sesijas taimauti netiek pareizi ieviesti.
  • Programma katrai jaunai sesijai piešķir vienu un to pašu sesijas ID.
  • Lietotnes autentificētās daļas tiek aizsargātas, izmantojot SSL, un paroles tiek glabātas jauktā vai šifrētā formātā.
  • Sesiju var atkārtoti izmantot zems privileģēts lietotājs.

Ietekme

  • Izmantojot šo ievainojamību, uzbrucējs var nolaupīt sesiju, iegūt nesankcionētu piekļuvi sistēmai, kas ļauj atklāt un modificēt neatļautu informāciju.
  • Sesijas var būt paaugstinātas, izmantojot nozagtus sīkfailus, vai sesijas, izmantojot XSS.

Piemēri

  1. Aviokompāniju rezervēšanas lietojumprogramma atbalsta URL pārrakstīšanu, ievietojot sesijas ID vietrādī URL:

    http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (Biļešu pārdošana uz Maldivu salām)

    Autentificēts vietnes lietotājs vēlas informēt savus draugus par pārdošanu un nosūta e-pastu. Draugi saņem sesijas ID, un tos var izmantot, lai veiktu neatļautas modifikācijas vai ļaunprātīgi izmantotu saglabātās kredītkartes datus.

  2. Lietojumprogramma ir neaizsargāta pret XSS, ar kuru uzbrucējs var piekļūt sesijas ID un to var izmantot, lai nolaupītu sesiju.
  3. Lietojumprogrammu taimauts nav iestatīts pareizi. Lietotājs izmanto publisku datoru un aizver pārlūkprogrammu, nevis atsakās un iet prom. Uzbrucējs kādu laiku vēlāk izmanto to pašu pārlūkprogrammu, un sesija tiek autentificēta.

Ieteikumi

  1. Visas autentifikācijas un sesiju pārvaldības prasības jādefinē atbilstoši OWASP lietojumprogrammu drošības verifikācijas standartam.
  2. Nekad neatklājiet akreditācijas datus vietrāžos URL vai žurnālos.
  3. Būtu jāpieliek lielas pūles arī, lai izvairītos no XSS trūkumiem, kurus var izmantot sesiju ID nozagšanai.

Nedrošas tiešās objektu atsauces

Apraksts

Tas notiek, kad izstrādātājs atklāj atsauci uz iekšēju ieviešanas objektu, piemēram, faila, direktorija vai datu bāzes atslēgu, kā URL vai kā FORM parametru. Uzbrucējs var izmantot šo informāciju, lai piekļūtu citiem objektiem, un var izveidot turpmāku uzbrukumu, lai piekļūtu neatļautiem datiem.

Ietekme

  • Izmantojot šo ievainojamību, uzbrucējs var piekļūt neatļautiem iekšējiem objektiem, var modificēt datus vai apdraudēt lietojumprogrammu.

Neaizsargātie objekti

  • URL.

Piemēri:

Mainot “userid” šajā URL, uzbrucējs var redzēt cita lietotāja informāciju.

http://www.vulnerablesite.com/userid=123 Pārveidots uz http://www.vulnerablesite.com/userid=124

Uzbrucējs var skatīt citu informāciju, mainot lietotāja ID vērtību.

Ieteikumi:

  1. Īstenot piekļuves kontroles pārbaudes.
  2. Izvairieties no objektu atsauču eksponēšanas vietrāžos URL.
  3. Pārbaudiet autorizāciju visiem atsauces objektiem.

Vairāku vietņu pieprasījums par viltojumu

Apraksts

Vairāku vietņu pieprasījumu viltojums ir viltots pieprasījums, kas nāca no šķērsojuma vietnes.

CSRF uzbrukums ir uzbrukums, kas rodas, kad ļaunprātīga vietne, e-pasts vai programma liek lietotāja pārlūkprogrammai veikt nevēlamu darbību uzticamā vietnē, kurai lietotājs pašlaik ir autentificēts.

CSRF uzbrukums piesaista reģistrēta upura pārlūkprogrammu nosūtīt viltotu HTTP pieprasījumu, tostarp upura sesijas sīkfailu un jebkuru citu automātiski iekļautu autentifikācijas informāciju, uz neaizsargātu tīmekļa lietojumprogrammu.

Kad lietotājs noklikšķina uz URL, piesakoties sākotnējā vietnē, uzbrucējs nosūtīs saiti upurim, dati tiks nozagti no vietnes.

Ietekme

  • Izmantojot šo ievainojamību kā uzbrucēju, var mainīt lietotāja profila informāciju, mainīt statusu, izveidot jaunu lietotāju administratora vārdā utt.

Neaizsargātie objekti

  • Lietotāja profila lapa
  • Lietotāja konta veidlapas
  • Biznesa darījumu lapa

Piemēri

Upuris tiek reģistrēts bankas vietnē, izmantojot derīgus akreditācijas datus. Viņš saņem e-pastu no uzbrucēja, kurā teikts: "Lūdzu, noklikšķiniet šeit, lai ziedotu 1 USD."

Kad upuris noklikšķina uz tā, tiks izveidots derīgs pieprasījums ziedot 1 USD konkrētam kontam.

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

Uzbrucējs notver šo pieprasījumu un izveido zem pieprasījuma un ievieto pogā ar tekstu “Es atbalstu cēloni”.

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

Tā kā sesija ir autentificēta un pieprasījums tiek nosūtīts caur bankas vietni, serveris pārskaitīs uzbrucējam 1000 USD.

Ieteikums

  1. Piešķirt lietotāja klātbūtni, veicot sensitīvas darbības.
  2. Ieviesiet tādus mehānismus kā CAPTCHA, atkārtota autentifikācija un unikālo pieprasījumu žetoni.

Drošības nepareiza konfigurēšana

Apraksts

Drošības konfigurācija ir jādefinē un jāizvieto lietojumprogrammai, ietvariem, lietojumprogrammu serverim, tīmekļa serverim, datu bāzes serverim un platformai. Ja tie ir pareizi konfigurēti, uzbrucējam var būt nesankcionēta piekļuve sensitīviem datiem vai funkcionalitātei.

Dažreiz šādi trūkumi rada pilnīgu sistēmas kompromisu. Programmatūras atjaunināšana ir arī laba drošība.

Ietekme

  • Izmantojot šo ievainojamību, uzbrucējs var uzskaitīt pamatā esošo tehnoloģiju un lietojumprogrammu serveru versiju informāciju, datu bāzes informāciju un iegūt informāciju par lietojumprogrammu, lai izveidotu vēl dažus uzbrukumus.

Neaizsargāti objekti

  • URL
  • Veidlapas lauki
  • Ievades lauki

Piemēri

  1. Lietojumprogrammu servera administratora konsole tiek automātiski instalēta un netiek noņemta. Noklusētie konti netiek mainīti. Uzbrucējs var pieteikties, izmantojot noklusējuma paroles, un var iegūt nesankcionētu piekļuvi.
  2. Jūsu serverī direktoriju uzskaitījums nav atspējots. Uzbrucējs atklāj un var vienkārši uzskaitīt direktorijus, lai atrastu jebkuru failu.

Ieteikumi

  1. Spēcīga lietojumprogrammu arhitektūra, kas nodrošina labu atdalīšanu un drošību starp komponentiem.
  2. Mainīt noklusējuma lietotājvārdus un paroles.
  3. Atspējot direktoriju sarakstus un ieviest piekļuves kontroles pārbaudes.

Nedroša kriptogrāfiskā krātuve

Apraksts

Nedroša kriptogrāfiskā krātuve ir izplatīta ievainojamība, kas pastāv, ja sensitīvie dati netiek droši glabāti.

Lietotāja akreditācijas dati, profila informācija, informācija par veselību, informācija par kredītkartēm utt. Vietnē ir slepenas informācijas informācija.

Šie dati tiks saglabāti lietojumprogrammu datu bāzē. Ja šie dati tiek nepareizi saglabāti, neizmantojot šifrēšanu vai jaukšanu *, tie būs neaizsargāti pret uzbrucējiem.

(* Sajaukšana ir virknes rakstzīmju pārveidošana par īsākām fiksēta garuma virknēm vai atslēgu. Lai atšifrētu virkni, jābūt pieejamam atslēgas veidošanai izmantotajam algoritmam.)

Ietekme

  • Izmantojot šo ievainojamību, uzbrucējs var nozagt, modificēt tik vāji aizsargātus datus, lai veiktu identitātes zādzību, krāpšanos ar kredītkartēm vai citus noziegumus.

Neaizsargāti objekti

  • Lietojumprogrammu datu bāze.

Piemēri

Vienā no bankas lietojumprogrammām paroļu datu bāzē tiek izmantotas nesālītas hashes *, lai saglabātu ikviena paroles. SQL ievadīšanas kļūda ļauj uzbrucējam izgūt paroles failu. Visas nesālītās jaucējskābes var brutāli piespiest īsā laikā, savukārt sālītās paroles prasīs tūkstošiem gadu.

(* Nesālītas hashes - sāls ir nejauši izvēlēti dati, kas pievienoti sākotnējiem datiem. Sāls tiek pievienots parolei pirms jaukšanas)

Ieteikumi

  1. Nodrošiniet atbilstošus stingrus standarta algoritmus. Neveidojiet savus kriptogrāfiskos algoritmus. Izmantojiet tikai apstiprinātus publiskos algoritmus, piemēram, AES, RSA publiskās atslēgas kriptogrāfiju un SHA-256 utt.
  2. Pārliecinieties, vai ārpuses dublējumi ir šifrēti, bet atslēgas tiek pārvaldītas un dublētas atsevišķi.

Nespēja ierobežot piekļuvi vietnei URL

Apraksts

Pirms aizsargāto saišu un pogu renderēšanas tīmekļa lietojumprogrammas pārbauda URL piekļuves tiesības. Lietojumprogrammām jāveic līdzīgas piekļuves kontroles pārbaudes katru reizi, kad piekļūstat šīm lapām.

Lielākajā daļā lietojumprogrammu privileģētās lapas, atrašanās vietas un resursi netiek parādīti priviliģētajiem lietotājiem.

Pēc inteliģenta minējuma uzbrucējs var piekļūt privilēģiju lapām. Uzbrucējs var piekļūt sensitīvām lapām, izsaukt funkcijas un skatīt konfidenciālu informāciju.

Ietekme

  • Izmantojot šo ievainojamību, uzbrucējs var piekļūt neatļautiem URL, nepiesakoties lietojumprogrammā, un izmantot ievainojamību. Uzbrucējs var piekļūt sensitīvām lapām, izsaukt funkcijas un skatīt konfidenciālu informāciju.

Neaizsargātie objekti:

  • URL

Piemēri

  1. Uzbrucējs pamana, ka URL norāda lomu kā "/ user / getaccounts". Viņš modificē kā "/ admin / getaccounts".
  2. Uzbrucējs var pievienot lomu vietrādim URL.

http://www.vulnerablsite.com var mainīt kā http://www.vulnerablesite.com/admin

Ieteikumi

  1. Īstenot stingras piekļuves kontroles pārbaudes.
  2. Autentifikācijas un autorizācijas politikām jābūt balstītām uz lomām.
  3. Ierobežojiet piekļuvi nevēlamiem URL.

Nepietiekama transporta slāņa aizsardzība

Apraksts

Nodarbojas ar informācijas apmaiņu starp lietotāju (klientu) un serveri (lietojumprogrammu). Lietojumprogrammas tīklā bieži nosūta sensitīvu informāciju, piemēram, autentifikācijas informāciju, kredītkartes informāciju un sesijas marķierus.

Izmantojot vājus algoritmus vai izmantojot sertifikātus, kuru derīguma termiņš ir beidzies vai nederīgi, vai neizmantojot SSL, komunikācija var tikt pakļauta neuzticamiem lietotājiem, kas var apdraudēt tīmekļa lietojumprogrammu un nozagt sensitīvu informāciju.

Ietekme

  • Izmantojot šo tīmekļa drošības ievainojamību, uzbrucējs var nošņaukt likumīga lietotāja akreditācijas datus un iegūt piekļuvi lietojumprogrammai.
  • Var nozagt kredītkartes informāciju.

Neaizsargāti objekti

  • Dati nosūtīti pa tīklu.

Ieteikumi

  1. Iespējot drošu HTTP un izpildiet akreditācijas datu pārsūtīšanu tikai caur HTTPS.
  2. Pārliecinieties, ka jūsu sertifikāts ir derīgs un nav beidzies tā derīguma termiņš.

Piemēri:

1. Lietojumprogramma, kas neizmanto SSL, uzbrucējs vienkārši uzraudzīs tīkla trafiku un novēro autentificētu upura sesijas sīkfailu. Uzbrucējs var nozagt šo sīkfailu un veikt uzbrukumu Man-in-the-Middle.

Neapstiprināti novirzīšana un pārsūtīšana

Apraksts

Tīmekļa lietojumprogramma izmanto dažas metodes lietotāju novirzīšanai un pārsūtīšanai uz citām lapām paredzētajam mērķim.

Ja novirzot uz citām lapām nav pareizas validācijas, uzbrucēji to var izmantot un var novirzīt upurus pikšķerēšanas vai ļaunprātīgas programmatūras vietnēm vai izmantot pārsūtīšanu, lai piekļūtu neatļautām lapām.

Ietekme

  • Uzbrucējs var nosūtīt lietotājam URL, kas satur īstu URL, kam pievienots kodēts ļaunprātīgs URL. Lietotājs, tikai redzot uzbrucēja nosūtītā URL oriģinālo daļu, var to pārlūkot un kļūt par upuri.

Piemēri

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

Pārveidots uz

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

Ieteikumi

  1. Vienkārši izvairieties no novirzīšanas un pārsūtīšanas lietojumprogrammā. Ja tiek izmantots, galamērķa aprēķinā neietveriet lietotāja parametrus.
  2. Ja nav iespējams izvairīties no galamērķa parametriem, pārliecinieties, vai piegādātā vērtība ir derīga un autorizēta lietotājam.

Šo rakstu ir veidojis Prasanthi Eati