sans top 20 security vulnerabilities software applications
Leer en begrijp de SANS top 20 kritieke beveiligingsproblemen in softwaretoepassingen met voorbeelden in deze zelfstudie:
Het woord ZONDER is niet zomaar een gewoon woordenboekwoord, het staat er eerder voor SysAdmin Audit Netwerk , en Veiligheid
In deze zelfstudie leren we over de 20 zwakke punten in de beveiliging van SANS die we kunnen vinden in softwareprogramma's en wat we kunnen doen om deze te verhelpen.
Wat je leert:
- SAN's impact op cyberbeveiligingsgemeenschap
- Lijst met SANS Top 20 kritieke kwetsbaarheden in software
- # 1) CWE-119: Fout in geheugenbuffer
- # 2) CWE-79: Cross-site scripting
- # 3) CWE-20: niet-gevalideerde invoerfout
- # 4) CWE-200: Blootstellingsfout gevoelige informatie
- # 5) CWE-125: Leesfout buiten het bereik
- # 6) CWE-89: SQL-injectie
- # 7) CWE-416: Eerder vrijgekomen geheugen
- # 8) CWE-190: Overloopfout integer
- # 9) CWE-352: Cross-Site Request Forgery
- # 10) CWE-22: Directory Traversal
- # 11) CWE-78: OS-opdrachtinjectie
- # 12) CWE-787: schrijffout buiten het bereik
- # 13) CWE-287: Onjuiste verificatiefout
- # 14) CWE-476: Dereferencing A NULL Pointer
- # 15) CWE-732: Onjuiste toewijzing van toestemming
- # 16) CWE-434: onbeperkt uploaden van bestanden
- # 17) CWE-611: Blootstelling van informatie via XML-entiteiten
- # 18) CWE-94: Code-injectie
- # 19) CWE-798: hardgecodeerde toegangssleutel
- # 20) CWE-400: Ongecontroleerd verbruik van hulpbronnen
- Veel Gestelde Vragen
- Gevolgtrekking
SAN's impact op cyberbeveiligingsgemeenschap
Volgens ZONDER , de ZONDER Instituut is opgericht als een onderzoeks- en onderwijsorganisatie. De verschillende beveiligingsprogramma's zijn zeer uitgebreid en hebben een positief effect op meer dan 165.000 beveiligingsprofessionals wereldwijd.
beste mp3-speler-downloader voor Android
We kunnen met recht zeggen dat met dit soort berichtgeving afkomstig van SANS en andere positieve recensies die ze krijgen, ze de meest vertrouwde en verreweg de grootste organisatie voor InfoSec-training en verschillende beveiligingscertificeringen ter wereld maakt.
Dit artikel gaat over de SANS top 20-fouten die uw software kwetsbaar kunnen maken voor aanvallen en enkele van de beveiligingsmaatregelen die u kunt implementeren om deze fouten te beperken. Hoewel we er meer dan 20 kunnen vinden, zullen we de top 20 kwetsbaarheden bespreken.
Lijst met SANS Top 20 kritieke kwetsbaarheden in software
- CWE-119 : Fout in geheugenbuffer
- CWE-79 : Cross-site scripting
- CWE-20 : Niet-gevalideerde invoerfout
- CWE-200 : Gevoelige informatie Blootstellingsfout
- CWE-125 : Fout bij lezen buiten het bereik
- CWE-89 : SQL injectie
- CWE-416 : Fout in vrij geheugen
- CWE-190 : Integer Overflow-fout
- CWE-352 : Cross-Site Request Forgery
- CWE-22 : Directory Traversal
- CWE-78 : OS-opdrachtinjectie
- CWE-787 : Buiten bereik schrijffout
- CWE-287 : Onjuiste verificatiefout
- CWE-476 : Dereferentie NULL Pointer
- CWE-732 : Onjuiste machtigingstoewijzing
- CWE-434 : Onbeperkt uploaden van bestanden
- CWE-611 : Informatieblootstelling via XML-entiteiten
- CWE-94 : Code-injectie
- CWE-798 : Hardgecodeerde toegangssleutel
- CWE-400 : Ongecontroleerd verbruik van hulpbronnen
Wat betekent de term CWE?
De Gemeenschappelijke opsomming van zwakke punten (CWE) is een door de gemeenschap geaccepteerde lijst van kwetsbaarheden in software en hardware met een identificatiecode toegewezen aan elke zwakte. Het doel is om verschillende tekortkomingen in software en hardware te identificeren om al die tekortkomingen te kunnen verhelpen en verminderen.
# 1) CWE-119: Fout in geheugenbuffer
Deze fout wordt meestal geïntroduceerd tijdens Architectuur en Ontwerp, Implementatie, Operationele fasen van de SDLC.
Deze bufferoverloop treedt op wanneer een toepassingsproces probeert meer gegevens op te slaan dan in het geheugen kan worden opgeslagen. Aangezien de buffers slechts een bepaald niveau aan gegevens kunnen opslaan en wanneer dat niveau wordt bereikt en overschreden, stromen de gegevens naar een andere geheugenlocatie die de gegevens die al in die buffer aanwezig zijn, kan beschadigen.
Dit incident gebeurt soms per ongeluk door een programmeerfout, maar het nawerking kan rampzalig zijn, omdat hierdoor gegevens kunnen worden gewist, vertrouwelijke informatie kan worden gestolen en zelfs de hele applicatie kan crashen als gevolg van deze bufferoverloop.
Het onderstaande voorbeeld toont een buffer die is toegewezen met 8 bytes opslag. Maar het liep over met 2 bytes omdat er meer gegevens werden verzonden voor uitvoering.
(beeld bron
# 2) CWE-79: Cross-site scripting
Cross-site Scripting (XSS) is een injectie-aanval die meestal plaatsvindt wanneer een kwaadwillende actor of een aanvaller een kwaadaardig of schadelijk script injecteert in een webtoepassing die kan worden uitgevoerd via de webbrowsers. Zodra het kwaadaardige script zijn weg vindt naar het gecompromitteerde systeem, kan het worden gebruikt om verschillende kwaadaardige activiteiten uit te voeren.
Sommige van de kwaadaardige activiteiten kunnen de vorm hebben van het overbrengen van privé-informatie, zoals cookies die de sessie-informatie van de computer van het slachtoffer naar de computer van de aanvaller hebben.
Voorkomen van cross-site scripting:
- Wanneer niet-gevalideerde en niet-vertrouwde gegevens worden ingevoerd in een webtoepassing via het webformulierverzoek.
- Wanneer de webtoepassing onmiddellijk een webpagina uitvoert die deze schadelijke gegevens bevat.
- Tijdens het genereren van een pagina slaagt de software er niet in om te valideren op basis van de gegevens die de inhoud bevatten die kan worden uitgevoerd door een webbrowser, zoals HTML en JavaScript.
- Het slachtoffer bezoekt onbewust de pagina die is gegenereerd via een webbrowser, die het kwaadaardige script bevat dat is geïnjecteerd door het gebruik van de niet-vertrouwde gegevens.
- Het kwaadaardige script is afkomstig van een pagina die is verzonden door de webserver van de aanvaller, de gecompromitteerde webbrowser van het systeem gaat vervolgens verder om het kwaadaardige script te verwerken.
- Deze actie is in strijd met het beleid van de webbrowser ten aanzien van dezelfde oorsprong, waarin wordt bepaald dat scripts die afkomstig zijn van het ene domein geen toegang mogen hebben tot bronnen of code mogen uitvoeren in een ander ander domein dan het eigen domein.
(beeld bron
# 3) CWE-20: niet-gevalideerde invoerfout
De applicatie ontvangt invoer, maar valideert de invoer niet, of het alle noodzakelijke details heeft die nodig zijn om te worden geaccepteerd in het systeem voor verwerking.
Wanneer er invoeropschoning is, kan dit worden gebruikt om potentieel gevaarlijke invoer te controleren om er zeker van te zijn dat de invoer veilig kan worden verwerkt met de broncode of wanneer het een invoer is die nodig is om te communiceren met andere componenten.
Wanneer dergelijke invoer niet correct wordt opgeschoond of gevalideerd, maakt dit de weg vrij voor een aanvaller om een kwaadwillende invoer te verzenden die de hoofdtoepassing royaal zal verwerken en dit zal leiden tot veranderingen in de controlestroom, willekeurige controle over een bron of willekeurige code uitvoering.
De onderstaande afbeeldingen laten zien dat een goede applicatie geen script of commando als invoer zou moeten accepteren. Als dergelijke invoer niet correct wordt opgeschoond, zal de app deze verwerken in de veronderstelling dat het een geldig verzoek is.
(beeld bron
# 4) CWE-200: Blootstellingsfout gevoelige informatie
Dit gebeurt wanneer de toepassing bewust en onbewust informatie onthult die vertrouwelijk en gevoelig is voor een aanvaller die geen toestemming heeft om toegang te krijgen tot deze informatie.
Verschillende fouten leiden ertoe dat deze informatie wordt blootgesteld aan een aanvaller. De ernst van deze fout hangt af van de context waarin de applicatie werkt, het type gevoelige informatie dat wordt onthuld en wat de actor kan halen uit de blootgestelde informatie.
Hieronder staan enkele gevoelige informatie die kan worden weergegeven:
- Persoonlijke informatie zoals persoonlijke berichten, financiële gegevens, gezondheidsstatusrecords, geografische locatie of contactgegevens
- Systeemconfiguratiedetails en omgeving, bijvoorbeeld, het besturingssysteem en geïnstalleerde pakketten
- Bedrijfsgegevens en intellectueel eigendom
- Netwerkconfiguratiedetails
- Interne applicatiestatus
- Metadata zoals de berichtkoppen
Soms kan er technische jeuk zijn, zoals een database-verbindingsfout, een runtime-fout en een netwerkfout op onze applicaties of websites.
Als dergelijke fouten tijdens de ontwikkeling niet correct worden afgehandeld, d.w.z. wanneer de toepassing het foutbericht weergeeft, kan het informatie aan het publiek tonen die een aanvaller mogelijk kan gebruiken voor kwaadaardige doeleinden, zoals de afbeelding hieronder.
# 5) CWE-125: Leesfout buiten het bereik
Dit gebeurt meestal wanneer de toepassing gegevens voorbij het normale niveau leest, hetzij tot het einde of vóór het begin van de buffer. Dit geeft een aanvaller onbevoegde toegang om gevoelige informatie van andere geheugenlocaties te lezen, wat ook kan leiden tot een systeem- of applicatiecrash.
Er zal zeker een crash optreden wanneer de code gegevens leest en denkt dat er een indicator aanwezig is die de leesbewerking stopt zoals een NULL die wordt toegepast op een string
In de volgende code haalt de functie een waarde op uit een array-indexlocatie, die op zijn beurt de invoerparameter voor de functie is.
(beeld bron
Uit de bovenstaande code kunnen we zien dat de functie verifieert dat de gegeven array-index kleiner is dan de maximale lengte van de array, maar niet valideert voor de minimumwaarde.
Deze niet-validatie zal leiden tot de acceptatie van een negatieve waarde als een input-array-index, waardoor een out-of-bounds read wordt veroorzaakt, wat op zijn beurt toegang geeft tot gevoelig geheugen.
Het is nodig om de invoerarray-index te verifiëren als deze binnen het maximale en minimale bereik valt dat vereist is voor de array.
Als u nu het onderstaande voorbeeld bekijkt, ziet u dat de IF-instructie moet worden aangepast om een minimale bereikvalidatie op te nemen.
# 6) CWE-89: SQL-injectie
SQL injectie is een vorm van beveiligingslek waarbij de aanvaller een SQL-code (Structured Query Language) in het invoervak van het webformulier injecteert om toegang te krijgen tot bronnen of om gegevens te wijzigen waartoe geen toegang is verleend.
Deze kwetsbaarheid kan in de applicatie worden geïntroduceerd tijdens de ontwerp-, implementatie- en exploitatiefasen.
Wat deze SQL-query doet, is een ongeautoriseerd verzoek indienen bij de database om bepaalde informatie. Bij een normale invoerbewerking wordt een webformulier gebruikt voor gebruikersauthenticatie. Wanneer een gebruiker zijn naam en wachtwoord invoert in de tekstvakken, worden deze waarden ingevoegd in een SELECT-query.
Als de invoerwaarden correct zijn, krijgt de gebruiker toegang tot de applicatie of het verzoek, maar als de waarden onjuist zijn, wordt de toegang geweigerd.
Sommige webformulieren hebben tegenwoordig geen mechanismen om kwaadwillende invoer te blokkeren. Een aanvaller kan de invoervakken gebruiken om kwaadaardige verzoeken naar de database te sturen. Dit enkele verzoek kan hen toegang verlenen tot de volledige database die gevoelige informatie kan bevatten.
# 7) CWE-416: Eerder vrijgekomen geheugen
Dit probleem wordt veroorzaakt door het verwijzen naar geheugen nadat het is vrijgegeven, wat ernstig kan leiden tot een programma-crash. Wanneer u een eerder vrijgemaakt geheugen gebruikt, kan dit nadelige gevolgen hebben, zoals het beschadigen van geldige gegevens en het uitvoeren van willekeurige code die afhankelijk is van de timing van fouten.
Twee veelvoorkomende oorzaken zijn:
- Foutcondities in de software en in enkele andere uitzonderlijke gevallen.
- Geen uitleg over welk deel van het programma het vrije geheugen veroorzaakte.
In dit geval wordt het geheugen toegewezen aan een andere aanwijzer onmiddellijk nadat het is vrijgegeven. De vorige wijzer naar het vrijgekomen geheugen wordt opnieuw gebruikt en wijst nu ergens rond de nieuwe toewijzing. Tegen de tijd dat de gegevens worden gewijzigd, kan dit het gebruikte geheugen beschadigen en kan de toepassing zich op een ongedefinieerde manier gedragen.
# 8) CWE-190: Overloopfout integer
Wanneer een berekening wordt verwerkt door een toepassing en er een logische aanname is dat de resulterende waarde groter zal zijn dan de exacte waarde, treedt er een overloop van gehele getallen op. Hier wordt een geheel getal verhoogd tot een waarde die niet op een locatie kan worden opgeslagen.
Wanneer dit gebeurt, wordt de waarde gewoonlijk teruglopen tot een zeer kleine of negatieve waarde. Als de verpakking wordt verwacht, is dat prima, maar er kunnen veiligheidsconsequenties zijn als de verpakking onverwacht is. Wanneer dit scenario zich voordoet, zou het kritiek kunnen worden genoemd, omdat het resultaat wordt gebruikt voor het beheren van looping, beveiligingsbeslissingen, gebruikt om geheugen toe te wijzen en nog veel meer.
Deze zwakte leidt doorgaans tot grillig gedrag en kan tot crashes leiden. Als de waarde belangrijk is voor gegevens dan om te stromen, kan een eenvoudige gegevensbeschadiging optreden. Maar als de omsingeling leidt tot verdere voorwaarden zoals bufferoverflows, kan geheugenbeschadiging optreden.
Dit probleem kan bufferoverflows veroorzaken, die kunnen worden gebruikt om willekeurige code door een aanvaller uit te voeren. Deze integer-overflowfout wordt meestal in het systeem geïntroduceerd tijdens de ontwerp- en implementatiefasen van de SDLC.
# 9) CWE-352: Cross-Site Request Forgery
Dit is wanneer een webtoepassing het HTTP-verzoek niet voldoende verifieert, of het verzoek daadwerkelijk van de juiste gebruiker kwam of niet. De webservers zijn ontworpen om alle verzoeken te accepteren en erop te reageren.
Laten we aannemen dat een client meerdere HTTP-verzoeken verstuurt binnen een of meerdere sessies. Het is erg moeilijk voor een webserver om te weten of alle verzoeken authentiek waren of niet, en het wordt meestal verwerkt. Het kan zijn dat een aanvaller een klant dwingt om een speciaal vervaardigde webpagina te bezoeken en nu bepaalde verzoeken kan uitvoeren, zoals geldoverboekingen, het wijzigen van hun e-mailadres en nog veel meer.
Een aanvaller heeft onmiddellijk toegang en hij kan gegevens stelen en zelfs gegevens vernietigen. Ze kunnen altijd hun toegang behouden en als ze klaar zijn, kunnen ze het auditlogboek in gevaar brengen om toekomstige forensische onderzoeken te voorkomen die hun misbruik zouden kunnen blootleggen.
De onderstaande afbeelding toont een aanvaller die een gebruiker ertoe aanzet om acties uit te voeren die ze niet van plan zijn uit te voeren.
# 10) CWE-22: Directory Traversal
Directory traversal of file path traversal is een webbeveiligingsprobleem waardoor een aanvaller willekeurige bestanden kan lezen op de server waarop momenteel een toepassing wordt uitgevoerd.
Deze bestanden kunnen een toepassingscode, aanmeldingsgegevens voor back-endsystemen en de besturingssysteembestanden zijn. In een ander scenario kan een aanvaller naar deze willekeurige bestanden op de server schrijven, waardoor hij toepassingsgegevens of -gedrag kan wijzigen, waardoor hij volledige controle over de server krijgt.
(beeld bron
# 11) CWE-78: OS-opdrachtinjectie
Het gaat over de onjuiste opschoning van speciale elementen die kunnen leiden tot de wijziging van de bedoelde OS-opdracht die naar een downstream-component wordt gestuurd. Een aanvaller kan deze kwaadaardige opdrachten uitvoeren op een doelbesturingssysteem en heeft toegang tot een omgeving die ze niet mochten lezen of wijzigen.
Hierdoor zou een aanvaller steevast gevaarlijke opdrachten rechtstreeks in het besturingssysteem kunnen uitvoeren.
Wanneer deze kwetsbaarheid zich voordoet in een geprivilegieerd programma, kan de aanvaller opdrachten gebruiken die in de omgeving zijn toegestaan of andere opdrachten aanroepen met bevoegdheden die de aanvaller niet heeft, waardoor de hoeveelheid schade die kan optreden toeneemt.
# 12) CWE-787: schrijffout buiten het bereik
Dit gebeurt wanneer de toepassing gegevens voorbij het einde of vóór het begin van de aangewezen buffer schrijft.
Wanneer dit gebeurt, is het eindresultaat meestal gegevensbeschadiging, systeem- of applicatiecrash. Wat de applicatie doet, is een soort aanwijzerberekening die wordt gebruikt om te verwijzen naar een geheugenlocatie buiten de buffergrenzen.
# 13) CWE-287: Onjuiste verificatiefout
Dit is wanneer een aanvaller beweert een geldige identiteit te hebben, maar de software heeft niet geverifieerd of bewezen dat de claim correct is.
Een software valideert de inloggegevens van een gebruiker op een verkeerde manier en als gevolg daarvan kan een aanvaller bepaalde rechten binnen de applicatie krijgen of gevoelige informatie vrijgeven waarmee hij toegang kan krijgen tot gevoelige gegevens en willekeurige code kan uitvoeren.
# 14) CWE-476: Dereferencing A NULL Pointer
Dereferentie naar een null-pointer is wanneer de toepassing een pointer dereferentieert die een geldig resultaat zou moeten retourneren in plaats daarvan NULL retourneert en dit leidt tot een crash. Het derefereren van een null-pointer kan gebeuren door veel gebreken, zoals race-omstandigheden en een programmeerfout.
De processen die worden uitgevoerd met behulp van de NULL-pointer leiden meestal tot mislukking en de mogelijkheid om het proces uit te voeren is erg klein. Dit helpt aanvallers om schadelijke code uit te voeren.
(beeld bron
# 15) CWE-732: Onjuiste toewijzing van toestemming
Dit beveiligingslek treedt op wanneer een toepassing machtigingen toewijst aan een zeer belangrijke en kritieke bron op een zodanige manier dat de bron wordt blootgesteld aan toegang voor een kwaadwillende gebruiker.
Als u veel mensen toestemming geeft voor een bron, kan dit ertoe leiden dat gevoelige informatie wordt blootgesteld of gewijzigd door een aanvaller. Als er geen controles zijn op dit soort benadering voor het toewijzen van machtigingen aan bronnen, kan dit tot een zeer rampzalig einde leiden als een programmaconfiguratie of bepaalde gevoelige gegevens in de verkeerde hand terechtkomen.
# 16) CWE-434: onbeperkt uploaden van bestanden
Dit beveiligingslek doet zich voor wanneer de toepassing de bestandstypen niet valideert voordat bestanden naar de toepassing worden geüpload. Deze kwetsbaarheid is taalonafhankelijk, maar komt meestal voor in applicaties die zijn geschreven in ASP- en PHP-taal.
Een gevaarlijk type bestand is een bestand dat automatisch kan worden verwerkt binnen de applicatieomgeving.
Het volgende programma toont een upload van een PHP-bestand. Het bestandstype is niet geverifieerd en gevalideerd voordat het werd geüpload in de webroot-directory. Als gevolg van deze zwakte kan een aanvaller een willekeurig PHP-bestand uploaden en dit uitvoeren door rechtstreeks toegang te krijgen tot het geüploade bestand.
# 17) CWE-611: Blootstelling van informatie via XML-entiteiten
Wanneer een XML-document wordt geüpload naar een applicatie voor verwerking en dit document bevat XML-entiteiten met een uniforme resource-ID die wordt omgezet naar een ander document op een andere locatie dan de beoogde locatie. Deze anomalie kan ervoor zorgen dat de toepassing onjuiste documenten aan de uitvoer toevoegt.
De XML-documenten bevatten soms een Document Type Definition (DTD), die wordt gebruikt om de XML-entiteiten en andere functies te definiëren. Via de DTD kan de uniforme resource-id dienen als een vorm van een vervangende string. Wat de XML-parser zal doen, is toegang krijgen tot wat er in de uniforme bron-ID is opgenomen en deze inhoud opnieuw invoeren in het XML-document voor uitvoering.
(beeld bron
# 18) CWE-94: Code-injectie
Het bestaan van codesyntaxis in de gegevens van de gebruiker vergroot de mogelijkheid van de aanvaller om het geplande controlegedrag te veranderen en willekeurige code uit te voeren. Dit beveiligingslek wordt 'injectiezwaktes' genoemd en door deze zwakte kan een gegevenscontrole door de gebruiker worden beheerd.
Dit beveiligingslek geeft een scenario weer waarin software niet-vertrouwde gegevens in de code toelaat en geen validatie van speciale tekens uitvoert, wat een negatieve invloed kan hebben op zowel het gedrag van het codesegment als de syntaxis.
Kortom, een aanvaller zou een soort willekeurige code kunnen injecteren en deze binnen de applicatie kunnen uitvoeren. De volgende PHP-code toont het gebruik van de functie eval () in niet-vertrouwde gegevens. In de onderstaande code kan een aanvaller in de code de 'param' -parameter willekeurige code invoeren die vervolgens in de software wordt uitgevoerd.
In het onderstaande voorbeeld wordt de oproep naar het phpinfo () functie. Deze kwetsbaarheid kan verder worden uitgebuit in andere om willekeurige OS-opdrachten op de doelsoftware uit te voeren via de system () aanroep.
# 19) CWE-798: hardgecodeerde toegangssleutel
Dit is wanneer het wachtwoord en de toegangssleutel rechtstreeks in de toepassing worden gecodeerd voor inkomende authenticatiedoeleinden en uitgaande communicatie met sommige externe componenten en voor codering van interne gegevens. Hardgecodeerde inloggegevens veroorzaken meestal een kwetsbaarheid die de weg baant voor een aanvaller om de authenticatie te omzeilen die is geconfigureerd door de softwarebeheerder.
De systeembeheerder zal het altijd erg moeilijk vinden om deze kwetsbaarheid op te sporen en op te lossen.
Er zijn twee hoofdstromen naar deze zwakte:
- Inkomend : De applicatie bevat een authenticatiesysteem dat de invoerreferenties valideert aan de hand van de hardgecodeerde details.
- Uitgaande : De applicatie maakt verbinding met een ander systeem en details om verbinding te maken met het andere systeem worden hard gecodeerd in het systeem.
In de inkomende stream is er altijd een standaard beheerdersaccount dat wordt aangemaakt en de inloggegevens voor toegang worden hard gecodeerd in de applicatie en gekoppeld aan dat standaard beheerdersaccount.
De hardgecodeerde details zijn meestal hetzelfde voor elke installatie van de applicatie, en dit kan door niemand worden gewijzigd of uitgeschakeld. Zelfs de systeembeheerders hebben niet het recht, behalve dat ze de applicatie handmatig kunnen wijzigen. Als het wachtwoord ooit openbaar wordt gemaakt, kan een aanvaller toegang krijgen tot de volledige applicatie en deze voor eigen gewin manipuleren.
Aangezien alle installaties van de applicatie hetzelfde wachtwoord hebben, zelfs wanneer ze in afzonderlijke organisaties zijn geïnstalleerd, kan dit zeer massale aanvallen veroorzaken over alle grenzen van de organisatie heen, bijvoorbeeld, het injecteren van een worm in de applicatie die zich verspreidt.
De uitgaande stream is alleen van toepassing op front-end-systemen die worden geverifieerd met een back-end-service. De back-endservice vereist mogelijk een hardcode of een vast wachtwoord dat gemakkelijk kan worden ontdekt. Wat de programmeur doet, is die back-endreferenties gewoon hard coderen in de front-end-software. Elke gebruiker van die applicatie kan het wachtwoord eruit halen.
Elke client-side software waarin het wachtwoord en de toegangssleutel hard gecodeerd zijn, vormt gewoonlijk een grotere bedreiging dan software die niet hard gecodeerd is, omdat het extraheren van een wachtwoord uit een binair bestand meestal heel gemakkelijk is.
# 20) CWE-400: Ongecontroleerd verbruik van hulpbronnen
Deze kwetsbaarheid doet zich voor wanneer de applicatie de toewijzing en het onderhoud van een beperkte bron niet goed beheert, hierdoor kan een aanvaller invloed uitoefenen op de hoeveelheid gebruikte bronnen, wat uiteindelijk zal leiden tot uitputting van de beschikbare bronnen.
Een deel van de beperkte bronnen omvat geheugen, bestandssysteemopslag, databaseverbindingspoolingangen en CPU.
Laten we aannemen dat een aanvaller de toewijzing van deze beperkte bronnen kan activeren en het aantal of de grootte van de bronnen niet wordt gecontroleerd, dan kan de aanvaller chaos veroorzaken door denial of service die alle beschikbare bronnen verbruikt.
Wanneer dit gebeurt, zouden geldige gebruikers geen toegang krijgen tot de applicatie, wat steevast een negatieve impact zal hebben op het milieu. Bijvoorbeeld, wanneer het applicatiegeheugen een uitputtingsaanval doormaakt, kan dit zowel de hele applicatie als het hostbesturingssysteem vertragen.
De drie verschillende gevallen die kunnen leiden tot uitputting van hulpbronnen zijn:
- Tekort aan beperking voor het aantal toegewezen bronnen
- Alle verwijzingen naar een bron verliezen voordat de afsluitingsfase wordt bereikt
- Een bron na verwerking niet sluiten / retourneren
Het probleem van uitputting van middelen is meestal het gevolg van een onjuiste implementatie van de volgende scenario's:
- Foutcondities en andere uitzonderlijke omstandigheden.
- Er is een gemengde reactie over welk deel van het programma de bron vrijgeeft.
Het volgende voorbeeld helpt om de aard van dit beveiligingslek te demonstreren en methoden te beschrijven die kunnen worden gebruikt om het risico te verkleinen.
wat voor soort softwareprogramma's zijn access, oracle, db2, mysql en sql server?
In het volgende voorbeeld wordt de kwetsbaarheid uitgelegd:
(beeld bron
Dit programma houdt niet bij hoeveel verbindingen er zijn gemaakt en het beperkt het aantal beschikbare verbindingen niet. Forking is slechts een van de manieren die door een aanvaller wordt gebruikt om ervoor te zorgen dat het systeem zonder CPU, processen of geheugen komt te zitten door een groot aantal verbindingen te maken.
Wat een aanvaller doet, is alle beschikbare verbindingen gebruiken om te voorkomen dat anderen op afstand toegang krijgen tot het systeem.
Veel Gestelde Vragen
V # 1) Waar staat SANS voor?
Antwoord: SANS staat voor SysAdmin, Audit, Network en Security.
V # 2) Noem enkele voorbeelden van kwetsbaarheden.
Antwoord: De voorbeelden zijn als volgt:
- Software kwetsbaarheden
- Firewall-kwetsbaarheden
- Netwerkkwetsbaarheden
- Kwetsbaarheden in het besturingssysteem
- Kwetsbaarheden in de webserver
- Database kwetsbaarheden
V # 3) Wat is het verschil tussen bedreigingen en kwetsbaarheden?
Antwoord: Bedreiging is de mogelijkheid om een kwaadwillende of ongewenste handeling uit te voeren in een poging om een computersysteem of applicatie te beschadigen door bestaande kwetsbaarheden in het systeem. Voorbeeld: ransomware.
Kwetsbaarheden zijn zwakke punten binnen een systeem die ongewenste of ongeautoriseerde toegang van een aanvaller mogelijk hebben gemaakt om schade aan een organisatie te infiltreren. Voorbeeld: Foutieve configuratie van de firewall.
V # 4) Wat zijn de meest voorkomende kwetsbaarheden?
Antwoord: Dit zijn de volgende:
- SQL injectie
- Cross-site scripting
- Misconfiguratie van de beveiliging
- Gevoelige gegevensblootstelling
- Gebroken authenticatie
- Sessiebeheer
Gevolgtrekking
Deze SANS top 20-lijst met kwetsbaarheden is geen regel of beleid, maar een gids om ons te helpen softwarekwetsbaarheden te vermijden. Of we nu een ontwikkelaar of een beveiligingsexpert zijn, het wordt nu aan ons overgelaten om deze gids te volgen over wat we kunnen doen om fouten te voorkomen die kunnen leiden tot kwetsbaarheden in onze applicatie die een achterdeur kunnen creëren voor een actor om een kwaadwillige handeling uit te voeren.
Aanbevolen literatuur
- Beveiligingstests (een complete gids)
- Acunetix Web Vulnerability Scanner (WVS) Beveiligingstesttool (hands on review)
- Gids voor netwerkkwetsbaarheid en -beheer
- Top 10 krachtigste scantools voor kwetsbaarheidsbeoordeling in 2021
- Kwetsbaarheidsbeoordeling en verschil in penetratietesten
- Jenkins Security: Matrix voor beveiliging en projectbeveiliging inschakelen
- Top 4 cyberbeveiligingsfouten die u moet vermijden bij het testen van software
- 10 BESTE netwerkbeveiligingssoftware (ALLEEN TOP SELECTIEF 2021)