sans top 20 security vulnerabilities software applications
Spoznajte in razumejte 20 kritičnih varnostnih ranljivosti SANS v programskih aplikacijah s primeri v tej vadnici:
Beseda BREZ ni le običajna slovarska beseda, temveč pomeni SysAdmin , Revizija , Omrežje , in Varnost .
V tej vadnici bomo spoznali 20 največjih varnostnih pomanjkljivosti SANS, ki jih najdemo v programih, in kako jih lahko ublažimo.
Kaj se boste naučili:
- Vpliv SAN na skupnost za kibernetsko varnost
- Seznam 20 najpomembnejših ranljivosti programske opreme SANS
- # 1) CWE-119: Napaka medpomnilnika
- # 2) CWE-79: Skriptiranje med spletnimi mesti
- # 3) CWE-20: Neveljavljena napaka pri vnosu
- # 4) CWE-200: Napaka pri izpostavljenosti občutljivim informacijam
- # 5) CWE-125: Napaka branja zunaj meja
- # 6) CWE-89: SQL Injection
- # 7) CWE-416: Prej osvobojeni spomin
- # 8) CWE-190: Napaka celovitega prelivanja
- # 9) CWE-352: Ponarejanje zahtev na več mestih
- # 10) CWE-22: Prehod po imeniku
- # 11) CWE-78: Vbrizgavanje ukaza OS
- # 12) CWE-787: Napaka pri pisanju izven meja
- # 13) CWE-287: Napaka pri nepravilni overitvi
- # 14) CWE-476: Odstranjevanje referenc NULL kazalec
- # 15) CWE-732: Napačna dodelitev dovoljenja
- # 16) CWE-434: Neomejen prenos datotek
- # 17) CWE-611: Izpostavljenost informacij prek entitet XML
- # 18) CWE-94: Injekcija kode
- # 19) CWE-798: trdo kodiran dostopni ključ
- # 20) CWE-400: Nekontrolirana poraba virov
- Pogosto zastavljena vprašanja
- Zaključek
Vpliv SAN na skupnost za kibernetsko varnost
Po navedbah BREZ , BREZ Inštitut je bil ustanovljen kot raziskovalna in izobraževalna organizacija. Njeni različni varnostni programi so zelo obsežni in pozitivno vplivajo na več kot 165.000 varnostnih strokovnjakov po vsem svetu.
Upravičeno lahko rečemo, da jih s tovrstno pokritostjo SANS-a in drugimi pozitivnimi ocenami dobijo najbolj zaupanja vredno in daleč največjo organizacijo za izobraževanje InfoSec in različna varnostna potrdila na svetu.
Ta članek se bo osredotočil na največ 20 napak SANS, zaradi katerih je vaša programska oprema ranljiva za napade, in nekatere varnostne kontrole, ki jih lahko uporabite za ublažitev teh napak. Čeprav jih lahko najdemo več kot 20, bomo pa razpravljali o 20 glavnih ranljivostih.
Seznam 20 najpomembnejših ranljivosti programske opreme SANS
- CWE-119 : Napaka medpomnilnika
- CWE-79 : Skriptiranje med spletnimi mesti
- CWE-20 : Neveljavljena napaka pri vnosu
- CWE-200 : Napaka pri izpostavljenosti občutljivim informacijam
- CWE-125 : Napaka branja zunaj meja
- CWE-89 : SQL Injection
- CWE-416 : Napaka prostega pomnilnika
- CWE-190 : Celotna napaka pri prelivanju
- CWE-352 : Ponarejanje zahtev na več mestih
- CWE-22 : Prehajanje imenika
- CWE-78 : OS Command Injection
- CWE-787 : Napaka pri pisanju zunaj meja
- CWE-287 : Napaka pri napačni overitvi
- CWE-476 : Odstranjevanje referenc NULL kazalec
- CWE-732 : Napačna dodelitev dovoljenja
- CWE-434 : Neomejen prenos datotek
- CWE-611 : Izpostavljenost informacij prek entitet XML
- CWE-94 : Injekcija kode
- CWE-798 : Trdo kodiran ključ za dostop
- CWE-400 : Nekontrolirana poraba virov
Kaj pomeni izraz CWE?
The Skupno naštevanje šibkosti (CWE) je skupni seznam ranljivosti programske in strojne opreme z identifikacijsko kodo, dodeljeno za vsako slabost. Cilj je prepoznati različne pomanjkljivosti programske in strojne opreme, da bi lahko odpravili in ublažili vse te napake.
# 1) CWE-119: Napaka medpomnilnika
Ta napaka se ponavadi pojavi v fazah arhitekture in oblikovanja, izvedbe in obratovanja SDLC.
To prelivanje medpomnilnika se zgodi, ko postopek aplikacije poskuša shraniti več podatkov, kot jih lahko shrani v pomnilnik. Ker lahko medpomnilniki shranijo le določeno raven podatkov in ko je ta raven dosežena in presežena, se podatki pretakajo na drugo mesto v pomnilniku, kar lahko poškoduje podatke, ki so že v tem vmesniku.
Ta incident se včasih zgodi po naključju zaradi kakšne programske napake, vendar je lahko nadaljnji učinek katastrofalen, saj lahko izbriše podatke, ukrade zaupne podatke in celo celotna aplikacija se lahko zaradi tega prelivanja medpomnilnika zruši.
Spodnji primer prikazuje medpomnilnik, dodeljen s 8 bajti pomnilnika. Toda zaradi večjega števila podatkov, poslanih v izvršitev, je presegel 2 bajta.

(slika vir )
# 2) CWE-79: Skriptiranje med spletnimi mesti
Cross-site Scripting (XSS) je napad z vbrizgom, ki se običajno zgodi, ko zlonamerni igralec ali napadalec v spletno aplikacijo vbrizga zlonamerni ali škodljivi skript, ki ga je mogoče izvesti prek spletnih brskalnikov. Ko se zlonamerni skript znajde v ogroženem sistemu, se lahko z njim izvajajo različne zlonamerne dejavnosti.
Nekatere zlonamerne dejavnosti so lahko v obliki prenosa zasebnih podatkov, kot so piškotki, ki vsebujejo podatke o seji, iz žrtvinega računalnika v računalnik napadalca.
Pojav skriptiranja med spletnimi mesti:
- Ko se neverenirani in nezaupljivi podatki vnesejo v spletno aplikacijo prek zahteve za spletni obrazec.
- Ko spletna aplikacija takoj prikaže spletno stran, ki vsebuje te zlonamerne podatke.
- Med postopkom ustvarjanja strani se programska oprema ne preveri glede podatkov, v katerih je vsebina, ki jo lahko zažene spletni brskalnik, kot sta HTML in JavaScript.
- Žrtev nevede obišče stran, ki je bila ustvarjena prek spletnega brskalnika, v kateri je zlonamerni skript, ki je bil vstavljen z uporabo nezaupljivih podatkov.
- Zlonamerni skript prihaja s strani, ki jo je poslal napadalčev spletni strežnik, nato pa ogroženi sistemski brskalnik nadaljuje z obdelavo zlonamernega skripta.
- To dejanje krši pravilnik spletnega brskalnika o istem izvoru, ki določa, da skripti, ki prihajajo iz ene domene, ne smejo imeti dostopa do virov ali izvajati kode v drugi domeni, razen v svoji domeni.

(slika vir )
# 3) CWE-20: Neveljavljena napaka pri vnosu
Aplikacija prejme vnos, vendar vnosa ne preveri, ali ima vse potrebne podrobnosti, potrebne za sprejem v sistem za obdelavo.
Ko gre za sanacijo vhodov, jo lahko uporabimo za preverjanje morebitnih nevarnih vhodov, da zagotovimo, da so vhodi varni za obdelavo z izvorno kodo ali kadar gre za vhod, ki je potreben za komunikacijo z drugimi komponentami.
spletna mesta za ogled brezplačne anime v angleščini
Če takšni vnosi niso pravilno sanirani ali potrjeni, bo to napadalcu omogočilo, da pošlje zlonamerni vhod, ki ga bo glavna aplikacija radodarno obdelala, kar bo privedlo do sprememb v nadzornem toku, samovoljnem nadzoru vira ali poljubni kodi usmrtitev.
Spodnje slike kažejo, da dobra aplikacija ne sme sprejeti skripta ali ukaza kot vhod. Če takšni vnosi niso pravilno sanirani, jih bo aplikacija obdelala, misleč, da je to veljavna zahteva.


(slika vir )
# 4) CWE-200: Napaka pri izpostavljenosti občutljivim informacijam
To se zgodi, ko aplikacija zavestno in nevede razkrije informacije, ki so zaupne in občutljive za napadalca, ki nima dovoljenja za dostop do teh informacij.
Različne napake povzročajo, da so te informacije izpostavljene napadalcu. Resnost te napake se razlikuje glede na kontekst, v katerem deluje aplikacija, vrsto občutljivih informacij, ki se razkrijejo, in kaj lahko igralec pridobi od izpostavljenih informacij.
Spodaj je nekaj občutljivih informacij, ki bi jih lahko razkrili:
- Osebni podatki, kot so osebna sporočila, finančni podatki, evidence zdravstvenega stanja, zemljepisni položaj ali kontaktni podatki
- Podrobnosti o konfiguraciji sistema in okolju, na primer, operacijski sistem in nameščene pakete
- Poslovna evidenca in intelektualna lastnina
- Podrobnosti o omrežni konfiguraciji
- Interno stanje aplikacije
- Metapodatki, kot so glave sporočil
Včasih lahko v naših aplikacijah ali na spletnih mestih pride do tehničnih srbenja, kot so napake pri povezovanju baze podatkov, napake med izvajanjem in omrežne napake.
Če se takšne napake med razvojem ne obdelujejo pravilno, tj. Ko aplikacija prikaže sporočilo o napaki, lahko javnosti prikaže informacije, ki jih lahko napadalec uporabi v zlonamerne namene, kot je spodnja slika.

# 5) CWE-125: Napaka branja zunaj meja
To se običajno zgodi, ko aplikacija prebere podatke, ki presegajo normalno raven, bodisi do konca bodisi pred začetkom vmesnega pomnilnika. To napadalec daje privilegiran dostop do branja občutljivih informacij z drugih pomnilniških mest, kar lahko vodi tudi do zrušitve sistema ali aplikacije.
Do zrušitve se bo zagotovo prišlo, ko koda prebere podatke in misli, da obstaja nameščen indikator, ki ustavi bralno operacijo, kot je NULL, ki se uporabi za niz
V naslednji kodi funkcija pridobi vrednost z mesta indeksa matrike, kar pa je vhodni parameter funkcije.

(slika vir )
Iz zgornje kode lahko vidimo, da funkcija preveri, ali je dani indeks polja manjši od največje dolžine polja, vendar ne preveri minimalne vrednosti.
Ta neveljavitev bo privedla do sprejetja negativne vrednosti kot indeksa vhodne matrike, kar bo povzročilo branje zunaj meja, kar pa bo omogočilo dostop do občutljivega pomnilnika.
Treba je preveriti indeks vhodnega polja, če je znotraj največjega in najmanjšega obsega, ki je potreben za polje.
Če zdaj preverite spodnji primer, boste videli, da je treba stavek IF spremeniti, da bo vključeval preverjanje minimalnega obsega.

# 6) CWE-89: SQL Injection
Vbrizgavanje SQL je oblika varnostne ranljivosti, pri kateri napadalec vnese kodo strukturiranega poizvedbe (SQL) v vnosno polje spletnega obrazca, da pridobi dostop do virov ali spremeni podatke, za katere dostop ni dovoljen.
To ranljivost lahko aplikacijo vnesete v fazi načrtovanja, izvajanja in delovanja.
Ta poizvedba SQL naredi nepooblaščeno zahtevo za bazo podatkov za nekatere informacije. V običajnem postopku vnosa se za preverjanje pristnosti uporabnika uporablja spletni obrazec. Ko uporabnik v besedilno polje vnese svoje ime in geslo, se te vrednosti vstavijo v poizvedbo SELECT.
Če so vhodne vrednosti pravilne, se uporabniku odobri dostop do aplikacije ali zahteve, če pa so napačne, bo dostop zavrnjen.
Nekateri spletni obrazci danes nimajo vzpostavljenih mehanizmov za blokiranje zlonamernih vnosov, ki jih lahko napadalec z vnosnimi polji pošlje zlonamernim zahtevam v bazo podatkov. Ta ena zahteva jim lahko omogoči dostop do celotne baze podatkov, ki lahko vsebuje občutljive podatke.

# 7) CWE-416: Prej osvobojeni spomin
Težavo povzroča sklicevanje na pomnilnik po sprostitvi, kar lahko resno povzroči zrušitev programa. Ko uporabljate predhodno osvobojeni pomnilnik, ima to lahko škodljive posledice, kot so pokvaritev veljavnih podatkov, samovoljno izvajanje kode, ki je odvisno od časa napake.
Dva pogosta vzroka sta:
- Pogoji napak v programski opremi in v nekaterih drugih izjemnih primerih.
- Brez razlage, kateri del programa je povzročil prosti pomnilnik.
V tem primeru je pomnilnik dodeljen drugemu kazalcu takoj po sprostitvi. Prejšnji kazalec na osvobojeni pomnilnik se ponovno uporabi in zdaj kaže nekje okoli nove dodelitve. Ko se podatki spremenijo, lahko to poškoduje uporabljeni pomnilnik in povzroči, da se aplikacija obnaša na nedefiniran način.
# 8) CWE-190: Napaka celovitega prelivanja
Ko aplikacija obdela izračun in obstaja logična predpostavka, da bo nastala vrednost večja od natančne vrednosti, se zgodi celotno prelivanje. Tu se celoštevilčna vrednost poveča na vrednost, ki je ni mogoče shraniti na lokaciji.
Ko se to zgodi, se vrednost ponavadi zavije v zelo majhno ali negativno vrednost. Če je zavijanje pričakovano, je v redu, če pa je zavitek nepričakovan, lahko pride do varnostnih posledic. Ko pride do tega scenarija, bi ga lahko označili za kritičnega, saj se rezultat uporablja za upravljanje zank, varnostnih odločitev, dodeljevanje pomnilnika in še veliko več.
Ta šibkost bo na splošno povzročila neredno vedenje in lahko povzroči zrušitve. Če je vrednost za podatke pomembna kot za pretok, lahko pride do preproste poškodbe podatkov. Če pa ovijanje okoli vodi do nadaljnjih pogojev, kot je prelivanje medpomnilnika, se lahko zgodi poškodba spomina.
Ta težava lahko sproži prelive medpomnilnika, ki jih napadalec lahko uporabi za izvajanje poljubne kode. Ta celoštevilčna napaka pri prelivanju se običajno vnese v sistem med fazami načrtovanja in izvedbe SDLC.

# 9) CWE-352: Ponarejanje zahtev na več mestih
Takrat spletna aplikacija ne preveri v zadostni meri zahteve HTTP, ne glede na to, ali je zahteva dejansko prišla od pravega uporabnika ali ne. Spletni strežniki so zasnovani tako, da sprejmejo vse zahteve in nanje odgovorijo.
Recimo, da odjemalec v eni ali več sejah pošlje več zahtev HTTP. Spletni strežnik je zelo težko vedeti, ali so bile vse zahteve pristne ali ne, in je običajno obdelan. Napadalec lahko stranko prisili, da obišče posebej izdelano spletno stran, zdaj pa lahko izvede nekatere zahteve, kot so nakazilo sredstev, sprememba e-poštnega naslova in še veliko več.
Takoj ima napadalec dostop in lahko bo ukradel podatke in jih lahko celo uničil. Vedno lahko ohranijo svoj dostop in ko končajo, lahko ogrozijo revizijski dnevnik, da preprečijo morebitno sodno medicino, ki bi lahko razkrila njihovo izkoriščanje.
Spodnja slika prikazuje napadalca, ki uporabnika spodbudi k izvedbi dejanj, ki jih ne namerava izvesti.

# 10) CWE-22: Prehod po imeniku
Prehod imenika ali pot datoteke je ranljivost spletne varnosti, ki napadalec omogoča branje poljubnih datotek na strežniku, ki trenutno izvaja aplikacijo.
Te datoteke so lahko koda aplikacije, poverilnice za zaledne sisteme in datoteke operacijskega sistema. V nekaterih drugih primerih lahko napadalec v te poljubne datoteke na strežniku piše, kar jim omogoča spreminjanje podatkov ali vedenja aplikacije, kar jim bo omogočilo popoln nadzor nad strežnikom.

(slika vir )
# 11) CWE-78: Vbrizgavanje ukaza OS
Gre za nepravilno sanacijo posebnih elementov, ki bi lahko privedla do spremembe predvidenega ukaza OS, ki je poslan nadaljnji komponenti. Napadalec lahko te zlonamerne ukaze izvaja v ciljnem operacijskem sistemu in lahko dostopa do okolja, ki ga ne bi smel brati ali spreminjati.
To bi napadalcu vedno omogočilo, da nevarne ukaze izvaja neposredno v operacijskem sistemu.
Kadar koli se ta ranljivost pojavi v privilegiranem programu, omogoča napadalcu, da uporablja ukaze, ki so dovoljeni v okolju, ali da pokliče druge ukaze s privilegiji, ki jih napadalec nima, kar bi lahko povečalo količino škode, ki bi lahko nastala.

# 12) CWE-787: Napaka pri pisanju izven meja
To se zgodi, ko aplikacija zapiše podatke mimo konca ali pred začetkom določenega medpomnilnika.
Ko se to zgodi, je končni rezultat ponavadi poškodba podatkov, zrušitev sistema ali aplikacije. Aplikacija naredi nekakšno aritmetiko kazalca, ki se uporablja za sklicevanje na pomnilniško lokacijo zunaj meja medpomnilnika.
# 13) CWE-287: Napaka pri nepravilni overitvi
Takrat napadalec trdi, da ima veljavno identiteto, vendar programska oprema ni mogla preveriti ali dokaže, da je trditev pravilna.
Programska oprema napačno preveri uporabniške podatke za prijavo, zato lahko napadalec pridobi določene privilegije v aplikaciji ali razkrije občutljive podatke, ki jim omogočajo dostop do občutljivih podatkov in izvajanje poljubne kode.
# 14) CWE-476: Odstranjevanje referenc NULL kazalec
Preimenovanje ničelnega kazalca je takrat, ko aplikacija preimenuje kazalec, ki naj bi vrnil veljaven rezultat, namesto tega vrne NULL in to vodi do zrušitve. Premestitev referenčnega ničelnega kazalca se lahko zgodi zaradi številnih napak, kot so dirkalni pogoji in nekatere programske napake.
Procesi, ki se izvajajo s pomočjo kazalca NULL, običajno vodijo do okvare, možnost izvedbe postopka pa je zelo majhna. To pomaga napadalcem pri izvajanju zlonamerne kode.

(slika vir )
# 15) CWE-732: Napačna dodelitev dovoljenja
Ta ranljivost se zgodi, če aplikacija zelo pomembnemu in kritičnemu viru dodeli dovoljenja na tak način, da zlonamerni uporabnik dostopa do vira.
Ko mnogim omogočite vir, lahko napadalec izpostavi ali spremeni občutljive podatke. Če ni preverjanj glede tovrstnega pristopa k dodeljevanju dovoljenj virom, lahko pride do zelo katastrofalnega konca, če konfiguracija programa ali nekateri občutljivi podatki pridejo v napačno roko.
# 16) CWE-434: Neomejen prenos datotek
Ta ranljivost se pojavi, ko aplikacija pred nalaganjem datotek v aplikacijo ne potrdi vrst datotek. Ta ranljivost ni odvisna od jezika, vendar se običajno pojavi v aplikacijah, napisanih v jeziku ASP in PHP.
Nevarna vrsta datoteke je datoteka, ki jo je mogoče samodejno obdelati v okolju aplikacije.
Naslednji program prikazuje nalaganje datoteke PHP. Pred nalaganjem v imenik webroot vrsta datoteke ni bila preverjena in potrjena. Zaradi te šibkosti lahko napadalec naloži poljubno datoteko PHP in jo izvrši z neposrednim dostopom do naložene datoteke.


# 17) CWE-611: Izpostavljenost informacij prek entitet XML
Ko je dokument XML naložen v aplikacijo za obdelavo in ta vsebuje entitete XML z enotnim identifikatorjem vira, ki se razreši na drug dokument na drugem mestu, ki se razlikuje od predvidenega. Zaradi te nepravilnosti lahko aplikacija v svoj izhod priloži napačne dokumente.
Dokumenti XML včasih vsebujejo definicijo vrste dokumenta (DTD), ki se uporablja za definiranje entitet XML in drugih funkcij. Preko DTD lahko enotni identifikator vira služi kot oblika nadomestitvenega niza. Razčlenjevalnik XML bo naredil dostop do vsebine enotnega identifikatorja vira in vnos te vsebine nazaj v dokument XML za izvedbo.

(slika vir )
# 18) CWE-94: Injekcija kode
Obstoj sintakse kode v uporabnikovih podatkih povečuje možnost napadalca, da spremeni načrtovano vedenje nadzora in izvede poljubno kodo. Ta ranljivost se imenuje 'slabosti vbrizgavanja', zaradi česar lahko nadzor podatkov postane uporabniško nadzorovan.
Ta ranljivost prikazuje scenarij, v katerem programska oprema dovoljuje nezaupljive podatke v kodo in ne izvaja preverjanja veljavnosti posebnih znakov, ki lahko negativno vplivajo na vedenje segmentov kode in sintakso.
Skratka, napadalec bi lahko vbrizgal nekakšno poljubno kodo in jo izvršil znotraj aplikacije. Naslednja koda PHP prikazuje uporabo funkcije eval () v nezaupljivih podatkih. V spodnji kodi lahko napadalec prenese v kodo poljubno kodo parametra 'param', ki se nato izvede v programski opremi.

Spodnji primer pojasnjuje klic na phpinfo () funkcijo. To ranljivost je mogoče nadalje izkoristiti v drugih za izvajanje poljubnih ukazov OS na ciljni programski opremi prek sistemskega () klica.

# 19) CWE-798: trdo kodiran dostopni ključ
Takrat je geslo in ključ za dostop trdo kodiran v aplikacijo neposredno za namene vhodne overitve in odhodne komunikacije z nekaterimi zunanjimi komponentami ter za šifriranje notranjih podatkov. Trdo kodirani podatki za prijavo običajno povzročijo ranljivost, ki napadalcu omogoči, da zaobide preverjanje pristnosti, ki ga je konfiguriral skrbnik programske opreme.
Sistemski skrbnik bo vedno zelo težko zaznal to ranljivost in jo odpravil.
Obstajata dva glavna toka te slabosti:
- Vhodno : Aplikacija vsebuje sistem za preverjanje pristnosti, ki potrjuje vhodne poverilnice glede na trdo kodirane podrobnosti.
- Odhodni : Aplikacija se poveže z drugim sistemom in podrobnosti za povezavo z drugim sistemom so trdo kodirane v sistem.
V toku Dohodni je vedno ustvarjen privzeti skrbniški račun, poverilnice za dostop pa bodo trdo kodirane v aplikacijo in povezane s tem privzetim skrbniškim računom.
Trdo kodirane podrobnosti so pri vsaki namestitvi aplikacije običajno enake in tega nihče ne more spremeniti ali onemogočiti. Tudi skrbniki sistema nimajo pravice, razen če lahko ročno spremenijo aplikacijo. Če je geslo kdaj razkrito javnosti, ima lahko napadalec dostop do celotne aplikacije in lahko z njo manipulira v lastno korist.
Ker imajo vse namestitve aplikacije isto geslo, tudi če so nameščene v ločenih organizacijah, lahko to povzroči zelo velike napade čez vse meje organizacije, na primer, vbrizganje črva v aplikacijo, ki se bo razširil.
Izhodni tok velja samo za čelne sisteme, ki se overjajo z zaledno storitvijo. Vmesniška storitev bo morda zahtevala trdo kodo ali določeno geslo, ki ju je mogoče zlahka odkriti. Programer preprosto naredi, da te vhodne poverilnice trdo kodira v prednjo programsko opremo. Vsak uporabnik te aplikacije bo morda lahko izvlekel geslo.
Vsaka odjemalska programska oprema, pri kateri je geslo in ključ za dostop trdo kodirana, ponavadi predstavlja večjo grožnjo kot tista, ki ni trdno kodirana, ker je pridobivanje gesla iz binarne datoteke običajno zelo enostavno doseči.
# 20) CWE-400: Nekontrolirana poraba virov
Ta ranljivost se zgodi, če aplikacija ne nadzoruje dodeljevanja in vzdrževanja omejenega vira, kar omogoča napadalcu, da lahko vpliva na količino porabljenih virov, kar bo sčasoma povzročilo izčrpanje razpoložljivih virov.
Del omejenih virov vključuje pomnilnik, pomnilnik datotečnega sistema, vnose v bazo povezav baze podatkov in CPU.
Recimo, da lahko napadalec sproži dodeljevanje teh omejenih virov in da število ali velikost virov ni nadzorovana, potem lahko napadalec povzroči zavrnitev storitve, ki porabi vse razpoložljive vire.
V tem primeru veljavnim uporabnikom onemogoči dostop do aplikacije, kar bo vedno negativno vplivalo na okolje. Na primer, ko gre pomnilnik aplikacije skozi napad izčrpanja, lahko to upočasni celotno aplikacijo in gostiteljski operacijski sistem.
Trije različni primeri, ki lahko vodijo do izčrpanja virov, so:
- Pomanjkanje omejevanja števila dodeljenih virov
- Izguba vseh referenc na vir, preden pride do stopnje zaustavitve
- Po obdelavi ni bilo mogoče zapreti / vrniti vira
Vprašanje izčrpanja virov je običajno posledica nepravilne izvedbe naslednjih scenarijev:
- Pogoji napak in druge izjemne okoliščine.
- Obstaja mešana reakcija glede tega, kateri del programa sprosti vir.
Naslednji primer pomaga prikazati naravo te ranljivosti in opisati metode, ki jih je mogoče uporabiti za zmanjšanje tveganja.
Naslednji primer pojasnjuje ranljivost:

(slika vir )
Ta program ne sledi, koliko povezav je bilo vzpostavljenih in ne omejuje števila razpoložljivih povezav. Forking je le eden od načinov, s katerimi napadalec z velikim številom povezav povzroči, da sistemu zmanjka CPU, procesov ali pomnilnika.
Napadalec naredi, da porabi vse razpoložljive povezave in prepreči drugim dostop do sistema na daljavo.
Pogosto zastavljena vprašanja
V # 1) Kaj pomeni SANS?
Odgovor: SANS pomeni SysAdmin, Audit, Network in Security.
V # 2) Naštejte nekaj primerov ranljivosti.
Odgovor: Primeri so naslednji:
- Ranljivosti programske opreme
- Ranljivosti požarnega zidu
- Omrežne ranljivosti
- Ranljivosti operacijskega sistema
- Ranljivosti spletnega strežnika
- Ranljivosti zbirke podatkov
V # 3) Kakšna je razlika med grožnjami in ranljivostmi?
Odgovor: Grožnja je možnost izvedbe zlonamernega ali neželenega dejanja v poskusu poškodbe računalniškega sistema ali aplikacije zaradi obstoječih ranljivosti v sistemu. Primer: ransomware.
Ranljivosti so slabosti, ki obstajajo v sistemu in bi lahko omogočile neželen ali nepooblaščen dostop napadalca, da bi škodoval organizaciji. Primer: Napačna konfiguracija požarnega zidu.
V # 4) Katere so najpogostejše ranljivosti?
Odgovor: To so naslednji:
- SQL Injection
- Cross-Site Scripting
- Varnostna napačna konfiguracija
- Izpostavljenost občutljivim podatkom
- Broken Authentication
- Upravljanje sej
Zaključek
Ta seznam največjih ranljivosti SANS 20 ni pravilo ali pravilnik, temveč vodnik, ki nam pomaga, kako se izogniti ranljivostim programske opreme. Ne glede na to, ali smo razvijalec ali strokovnjak za varnost, je zdaj prepuščeno temu navodilu o tem, kaj lahko storimo, da se izognemo kakršni koli napaki, ki bi lahko povzročila ranljivosti v naši aplikaciji, ki lahko ustvarijo zakulisje za igralca, da izvede zlonamerno dejanje.
Priporočeno branje
- Testiranje varnosti (popoln vodnik)
- Orodje za preizkušanje varnosti Acunetix Web Vulnerability Scanner (WVS) (Hands on Review)
- Priročnik za ocenjevanje in upravljanje omrežne ranljivosti
- 10 najbolj zmogljivih orodij za pregledovanje ranljivosti v letu 2021
- Razlika v oceni ranljivosti in testiranju penetracije
- Jenkins Security: Omogočanje varnostne in projektne varnostne matrice
- 4 najboljše napake na področju kibernetske varnosti, ki se jim je treba izogniti med testiranjem programske opreme
- 10 NAJBOLJŠIH programov za omrežno varnost (2021 SAMO IZBRANI)