Sikkerhed

10 typer sikkerhedssårbarheder

10 typer sikkerhedssårbarheder
En utilsigtet eller utilsigtet fejl i softwarekoden eller ethvert system, der gør den potentielt udnyttet med hensyn til adgang til ulovlige brugere, ondsindet opførsel som vira, trojanere, orme eller anden malware kaldes en sikkerhedssårbarhed. Brugen af ​​software, der allerede er blevet udnyttet eller brugen af ​​svage adgangskoder og standardadgangskoder, resulterer også i, at systemet bliver sårbart over for omverdenen. Disse typer sikkerhedssårbarheder kræver patch til at forhindre hackere i at bruge tidligere anvendte exploits på dem igen for at få uautoriseret adgang til systemet. En sikkerhedssårbarhed, også kaldet sikkerhedshul eller svaghed, er en fejl, en fejl eller en fejl i implementeringen af ​​kode, design og arkitektur for en webapplikation og servere, som når de ikke adresseres, kan resultere i kompromis med systemet og gør hele netværket sårbart over for angrebet. De mennesker, der bliver inficeret, inkluderer applikationsejeren, applikationsbrugere og enhver anden person, der stoler på den applikation. Lad os se på de farligste og mest almindelige sikkerhedsrisici for webapplikationer.

Indholdsfortegnelse

  1. Databaseinjektion
  2. Brudt godkendelse
  3. Følsom dataeksponering
  4. XML-eksterne enheder (XEE)
  5. Brudt adgangskontrol
  6. Fejlkonfiguration af sikkerhed
  7. Cross-site Scripting (XSS)
  8. Usikker deserialisering
  9. Brug af komponenter med kendte sårbarheder
  10. Utilstrækkelig logning og overvågning

Databaseinjektion:

I tilfælde af at sende ikke-betroede stykker data til tolken som en del af kommandoen gennem ethvert område, der tager brugerinput i.e formularinput eller ethvert andet dataindsendelsesområde, der opstår injektionsfejl. Angriberens ondsindede forespørgsler kan narre tolken til at udføre kommandoer, der kan vise fortrolige data, som brugeren ikke har tilladelse til at se på. For eksempel i et SQL-injektionsangreb, når formularinput ikke er korrekt renset, kan angriberen komme ind i SQL-databasen og få adgang til dens indhold uden autorisation, bare ved at indtaste ondsindet SQL-databasekode i en form, der forventer en almindelig tekst. Enhver type felt, der tager brugerens input, kan injiceres i.e-parametre, miljøvariabler, alle webtjenester mv.

Applikationen er sårbar over for injektionsangrebet, når brugerleverede data ikke renses og valideres ved brug af dynamiske forespørgsler uden kontekstbevidst undslippe og brugen af ​​fjendtlige data direkte. Injektionsfejl kan let opdages ved undersøgelse af kode og ved brug af automatiserede værktøjer som scannere og fuzzere. For at forhindre injektionsangreb er der en eller anden foranstaltning, der kan tages som at adskille data fra kommandoer og forespørgsler, brug af en sikker API, der giver en parametreret grænseflade, brug af "hvidliste" validering af serversiden på input gennem værktøjer som Snort, undslippe af specialtegn ved hjælp af specifik escape-syntaks osv.

Et injektionsangreb kan føre til et massivt datatab, videregivelse af fortrolige oplysninger, nægtelse af adgang, og det kan endda føre til en fuldstændig overtagelse af applikationer. Nogle SQL-kontroller som LIMIT kan bruges til at kontrollere enorme mængder datatab i tilfælde af et angreb. Nogle typer injektionsangreb er SQL-, OS-, NoSQL-, LDAP-injektionsangreb.

Brudt godkendelse:

Angribere kan få adgang til brugerkonti og kan endda kompromittere hele værtssystemet gennem adminkonti ved hjælp af sårbarhederne i godkendelsessystemer. Godkendelsesfejl gør det muligt for angriberen at kompromittere adgangskoder, sessionstokener, godkendelsesnøgler og kan lænkes sammen med andre angreb, der kan føre til uautoriseret adgang til enhver anden brugerkonto eller session midlertidigt og i nogle tilfælde permanent. Lad os sige, at en bruger har en ordliste eller en ordbog med millioner af gyldige brugernavne og adgangskoder opnået under et brud. Han kan bruge dem en efter en på ekstremt kortere tid ved hjælp af automatiserede værktøjer og scripts på login-systemet for at se om nogen fungerer. Dårlig implementering af identitetsstyring og adgangskontrol fører til sårbarheder som brudt godkendelse.

Applikationen er sårbar over for godkendelsesangreb, når den tillader prøvning af forskellige brugernavne og adgangskoder, tillader ordbogangreb eller brute force-angreb uden nogen forsvarsstrategi, bruger lette, standardadgangskoder eller adgangskoder, der lækkes i ethvert brud, udsætter session-id'er i URL, bruger dårlig adgangskodegendannelsesordning bruger et mønster af cookies. Brudt autentificering kan let udnyttes ved hjælp af enkle værktøjer til brute-force og ordbogangreb med en god ordbog. Disse typer angreb kan forhindres ved hjælp af multifaktorautentificeringssystemer ved at implementere svage adgangskodekontroller ved at køre en adgangskode gennem en dårlig adgangskodedatabase ved ikke at bruge standardlegitimationsoplysninger, ved at tilpasse adgangskodens kompleksitetspolitik ved brug af god server-side session manager, der genererer en ny tilfældig session-id efter login osv.

Brudt godkendelsessårbarhed kan resultere i kompromis med et par brugerkonti og en admin-konto, det er alt, hvad en hacker har brug for for at kompromittere et system. Disse typer angreb fører til identitetstyveri, social sikringssvindel, hvidvaskning af penge og videregivelse af meget klassificerede oplysninger. Angrebene inkluderer ordbogangreb, brutal tvang, sessionskapring og sessionstyringsangreb.

Følsom dataeksponering:

Nogle gange beskytter webapplikationer ikke følsomme data og info som adgangskoder, databaseoplysninger osv. En angriber kan let stjæle eller ændre disse svagt beskyttede legitimationsoplysninger og bruge det til ulovlige formål. Følsomme data skal krypteres under hvile eller under transport og have et ekstra sikkerhedslag, ellers kan angribere stjæle dem. Angribere kan få fat i følsomme eksponerede data og stjæle hashede eller klare tekstbrugere & databaseoplysninger fra serveren eller en webbrowser. For eksempel, hvis en adgangskodedatabase bruger usaltet eller simpelt hash til at gemme adgangskoder, kan en filuploadfejl tillade en hacker at hente adgangskodedatabasen, hvilket vil føre til eksponering af alle adgangskoder med en regnbue-tabel med forudberegnede hashes.

Hovedfejlen er ikke kun, at dataene ikke krypteres, selvom de er krypteret, men svag nøglegenerering, svage hashingalgoritmer, svag kryptering kan også resultere i disse typer af et af de mest almindelige angreb. For at forhindre disse typer angreb skal du først klassificere, hvilken type data der kan betragtes som følsomme i henhold til lovgivningen om beskyttelse af personlige oplysninger og anvende kontroller i henhold til klassificering. Prøv ikke at gemme nogen klassificerede data, du ikke har brug for, vask dem så snart du bruger dem. For data under transport skal du kryptere dem med sikre protokoller i.e TLS med PFS-cifre osv.

Disse typer af sårbarheder kan resultere i eksponering af meget følsomme oplysninger som kreditkortoplysninger, sundhedsoptegnelser, adgangskoder og andre personlige data, der kan føre til identitetstyveri og bankbedrageri osv.

XML-eksterne enheder (XEE):

Dårligt konfigurerede XML-processorer behandler eksterne enhedsreferencer i XML-dokumenter. Disse eksterne enheder kan bruges til at hente interne filers data som f.eks / etc / passwd fil eller til at udføre andre ondsindede opgaver.  Sårbare XML-processorer kan let udnyttes, hvis en hacker kan uploade et XML-dokument eller inkludere XML osv. Disse sårbare XML-enheder kan opdages ved hjælp af SAST- og DAST-værktøjer eller manuelt ved at inspicere afhængigheder og konfigurationer.

En webapplikation er sårbar over for XEE-angrebet på grund af mange grunde, som hvis applikationen accepterer direkte XML-input fra ikke-betroede kilder, er Document Type Definitions (DTD'er) på applikationen aktiveret, applikationen bruger SAML til identitetsbehandling, da SAML bruger XML til identitet indsættelser osv. XEE-angreb kan afhjælpes ved at undgå serialisering af følsomme data ved hjælp af mindre komplicerede dataformater i.e JSON, lapper af XML-processorer, applikationen er for tiden ved hjælp af og endda bibliotekerne, deaktivering af DTD'er i alle XML-parsere, validering af XML-filuploadfunktionalitet ved hjælp af XSD-verifikation osv.

Den applikation, der er sårbar over for disse typer angreb, kan føre til DOS-angreb, Billion Laughs-angreb, scanning af interne systemer, intern havnescanning, udførelse af en fjernkommando, der resulterer i at alle applikationsdata påvirkes.

Brudt adgangskontrol:

Adgangskontrol giver brugerne rettigheder til at udføre specifikke opgaver. Brudt adgangskontrolsårbarhed finder sted, når brugerne ikke er ordentligt begrænset til de opgaver, de kan udføre. Angribere kan udnytte denne sårbarhed, der kan ende med at få adgang til uautoriseret funktionalitet eller information. Lad os sige, at en webapplikation giver brugeren mulighed for at ændre den konto, han er logget ind på ved blot at ændre URL'en til en anden brugers konto uden yderligere bekræftelse.  Udnyttelse af adgangskontrolsårbarheden er et go-to-angreb fra enhver angriber, denne sårbarhed kan findes manuelt såvel som ved hjælp af SAFT- og DAFT-værktøjer. Disse sårbarheder findes på grund af manglende test og automatiseret detektion af webapplikationer, selvom den bedste måde at finde dem på er at gøre det manuelt.

Sårbarheder indeholder eskalering af rettigheder i.e handler som en bruger, du ikke er, eller fungerer som administrator, mens du er bruger, omgår adgangskontrolchecks ved blot at ændre URL'en eller ændre applikationens tilstand, manipulere metadata, så den primære nøgle kan ændres som en anden brugers primære nøgle, etc. For at forhindre denne slags angreb skal adgangskontrolmekanismer implementeres i serversides kode, hvor angribere ikke kan ændre adgangskontrollerne. Håndhævelse af unikke applikationsforretningsgrænser af domænemodeller, deaktivering af notering af servermapper, alarmadministrator ved gentagne mislykkede loginforsøg, ugyldiggørelse af JWT-tokens efter logout skal sikres for at afbøde denne slags angreb.

Angribere kan fungere som en anden bruger eller administrator ved hjælp af denne sårbarhed til at udføre ondsindede opgaver som at oprette, slette og ændre poster osv. Massivt datatab kan opstå, hvis dataene ikke er sikret, selv efter et brud.

Fejlkonfiguration af sikkerhed:

Den mest almindelige sårbarhed er fejlkonfiguration af sikkerhed. Hovedårsagen til sårbarheden er brugen af ​​standardkonfiguration, ufuldstændig konfiguration, Adhoc-konfigurationer, dårligt konfigurerede HTTP-headere og detaljerede fejlmeddelelser, der indeholder mere info, end brugeren faktisk burde have kendt. På ethvert niveau af en webapplikation kan der opstå fejlkonfigurationer i.e-database, webserver, applikationsserver, netværkstjenester osv. Angribere kan udnytte ikke-patchede systemer eller få adgang til ubeskyttede filer og mapper for at få et uautoriseret greb om systemet. For eksempel uddyber et program overdrevent fejlmeddelelser, der hjælper angriberen med at kende sårbarheder i applikationssystemet og den måde, det fungerer på. Automatiske værktøjer og scannere kan bruges til at opdage denne type sikkerhedsfejl.

En webapplikation indeholder denne type sårbarhed, hvis den mangler sikkerhedshærdningsforanstaltninger overalt i en hvilken som helst del af applikationen, unødvendige porte er åbne, eller det muliggør unødvendige funktioner, der bruges standardadgangskoder, fejlhåndtering afslører informative fejl til angriberen, den bruger upatchet eller forældet sikkerhedssoftware osv. Det kan forhindres ved at fjerne unødvendige funktioner i koden, dvs.en minimal platform uden unødvendige funktioner, dokumentation osv., der gør det muligt for en opgave at opdatere og lappe sikkerhedshullerne som en del af patchhåndteringsprocesser, brugen af ​​en proces for at verificere effektiviteten af ​​de trufne sikkerhedsforanstaltninger, brugen af ​​gentagelig hærdningsproces for at gøre det er let at implementere et andet miljø, der er korrekt låst.

Disse typer af sårbarheder eller mangler tillader angriberen at få uautoriseret adgang til systemdata, hvilket fører til fuldstændig kompromis med systemet.

Cross-Site Scripting (XSS):

XSS-sårbarheder opstår på det tidspunkt, hvor en webapplikation inkorporerer upålidelige data på en ny websideside uden legitim godkendelse eller undslippe, eller opdaterer en aktuel websideside med klienttilvejebragte data ved hjælp af en browser-API, der kan lave HTML eller JavaScript.  XSS-fejl opstår, hvis webstedet tillader en bruger at tilføje brugerdefineret kode til en URL-sti, som kan ses af andre brugere. Disse fejl bruges til at køre ondsindet JavaScript-kode i målets browser. Lad os sige, en angriber kan sende et link til offeret indeholdende et link til enhver virksomheds hjemmeside. Denne forbindelse kunne have indbygget nogle ondsindede JavaScript-koder. I tilfælde af at bankens webside ikke er passende sikret mod XSS-angreb, vil den ondsindede kode ved at klikke på linket køres i offerets browser.

Cross-Site Scripting er en sikkerhedssårbarhed, der findes i næsten ⅔ af webapplikationerne. En applikation er sårbar over for XSS, hvis applikationen gemmer en usanitiseret brugerindgang, der kan ses af en anden bruger, ved hjælp af JavaScript-strukturer, applikationer med en side og API'er, der kraftigt inkorporerer angribers kontroloplysninger til en side, er hjælpeløse over for DOM XSS. XSS-angreb kan afbødes ved brug af rammer, der undslipper og desinficerer XSS-input af naturen som React JS osv., Ved at lære begrænsningerne ved rammer og dække dem ved hjælp af ens egne sager, undgå unødvendige og utroede HTML-data overalt, hvor jeg.e i HTML-attributter, URI, Javascript osv., brug af kontekstafhængig kodning i tilfælde af ændring af dokument på klientsiden osv.

XSS-baserede angreb er af tre typer i.e Reflekteret XSS, DOM XSS og lagret XSS. Alle typer af disse angreb har en betydelig indvirkning, men i tilfælde af Stored XSS er virkningen endnu større i.e stjæle legitimationsoplysninger, sende malware til offeret osv.

Usikker deserialisering:

Serialisering af data betyder at tage objekter og konvertere dem til ethvert format, så disse data kan bruges til andre formål senere, mens deserialisering af data betyder det modsatte af det. Deserialisering udpakker disse serielle data til brug af applikationer. Usikker deserialisering betyder temperering af data, der er blevet serialiseret lige før, der er ved at blive pakket ud eller deserialiseret.  Usikker deserialisering fører til udførelse af fjernkode, og den bruges til at udføre andre opgaver til ondsindede formål som eskalering af rettigheder, injektionsangreb, gentagelsesangreb osv. Der er nogle værktøjer til rådighed til at opdage denne slags fejl, men menneskelig hjælp er ofte nødvendig for at validere problemet. At udnytte deserialisering er lidt vanskeligt, da exploits ikke fungerer uden nogle manuelle ændringer.

Når applikationen deserialiserer ondsindede objekter leveret af den angribende enhed. Dette kan føre til to typer angreb i.e angreb relateret til datastruktur og objekter, hvor angriberen ændrer applikationslogik eller udfører fjernkode og typiske dataf manipuleringsangreb, hvor eksisterende datastrukturer bruges med ændret indhold, f.eks. adgangskontrolrelaterede angreb.  Serialisering kan bruges i RPC (Remote Process Communication) eller en intercommunication (IPC), cache af data, webservices, databases cache-server, filsystemer, API-godkendelsestokens, HTML-cookies, HTML-formularparametre osv. Deserialiseringsangreb kan afhjælpes ved ikke at bruge serieliserede objekter fra ikke-betroede kilder, implementere integritetskontrol, isolere koden, der kører i et miljø med lavt privilegium, overvåge indgående og udgående netværksforbindelser fra servere, der ofte deserialiserer.

Brug af komponenter med kendte sårbarheder:

Forskellige komponenter som biblioteker, rammer og softwaremoduler bruges af de fleste udviklere i webapplikationen. Disse biblioteker hjælper udvikleren med at undgå unødvendigt arbejde og levere den nødvendige funktionalitet. Angribere ser efter mangler og sårbarheder i disse komponenter for at koordinere et angreb. I tilfælde af at finde et sikkerhedssmuthul i en komponent kan gøre alle websteder, der bruger den samme komponent, sårbare. Udnyttelse af disse sårbarheder er allerede tilgængelig, mens det kræver en stor indsats at skrive en brugerdefineret udnyttelse fra bunden. Dette er et meget almindeligt og udbredt problem, brugen af ​​store mængder komponenter til udvikling af en webapplikation kan føre til ikke engang at kende og forstå alle anvendte komponenter, lappe og opdatere alle komponenter er lang tid.

En applikation er sårbar, hvis udvikleren ikke kender versionen af ​​en anvendt komponent, softwaren er forældet i.e operativsystemet, DBMS, kørsel af software, runtime-miljøer og bibliotekerne, scanning af sårbarhed udføres ikke regelmæssigt, kompatibiliteten af ​​patched software testes ikke af udviklerne. Det kan forhindres ved at fjerne ubrugte afhængigheder, filer, dokumentation og biblioteker, kontrollere versionen af ​​klient- og serversides komponenter regelmæssigt, hente komponenter og biblioteker fra officielle og pålidelige sikre kilder, overvåge de ikke-patchede biblioteker og komponenter og sikre en plan til regelmæssig opdatering og patch af sårbare komponenter.

Disse sårbarheder fører til mindre påvirkninger, men kan også føre til kompromis med serveren og systemet. Mange store overtrædelser var afhængige af kendte sårbarheder i komponenter. Brugen af ​​sårbare komponenter undergraver applikationsforsvar og kan være et udgangspunkt for et stort angreb.

Utilstrækkelig logning og overvågning:

De fleste systemer tager ikke tilstrækkelige foranstaltninger og trin til at opdage databrud. Den gennemsnitlige svartid for en hændelse er 200 dage efter, at den er sket, det er meget tid til at gøre alt det grimme for en angribende enhed. Utilstrækkelig logning og overvågning gør det muligt for angriberen at angribe systemet yderligere, fastholde sit greb om systemet, manipulere, holde og udtrække data efter behov. Angribere bruger manglen på overvågning og respons til deres fordel for at angribe webapplikationen.
Utilstrækkelig logning og overvågning forekommer når som helst i.e-logfiler over applikationer, der ikke overvåges for usædvanlige aktiviteter, auditerbare hændelser som mislykkede loginforsøg og høje transaktionsværdier er ikke korrekt logget, advarsler og fejl genererer uklare fejlmeddelelser, ingen triggeralarm i tilfælde af pentesting ved hjælp af automatiserede DAST-værktøjer, der ikke er i stand til at opdage eller alarmere aktive angreb hurtigt osv. Disse kan afhjælpes ved at sikre, at al login, adgangskontrolfejl og validering af input på serversiden kan logges for at identificere ondsindet brugerkonto og holdes i tilstrækkelig tid til forsinket retsmedicinsk undersøgelse ved at sikre, at de genererede logfiler er i et format kompatibel med centraliserede loghåndteringsløsninger ved at sikre integritetskontrol ved værdifulde transaktioner, ved at etablere et system til rettidig advarsel om mistænkelige aktiviteter osv.

De fleste af de vellykkede angreb starter med at kontrollere og undersøge sårbarheder i et system, så disse sårbarhedsundersøgelser kan resultere i at kompromittere hele systemet.

Konklusion:

Sikkerhedssårbarhederne i en webapplikation påvirker alle enheder, der er relateret til den applikation. Disse sårbarheder skal tages hånd om for at give brugerne et sikkert miljø. Angribere kan bruge disse sårbarheder til at kompromittere et system, få fat i det og eskalere privilegier. Virkningen af ​​en kompromitteret webapplikation kan visualiseres fra stjålne kreditkortoplysninger og identitetstyveri til utæthed af meget fortrolige oplysninger osv. afhængigt af ondsindede enheds behov og angrebsvektorer.

Sådan installeres og afspilles Doom på Linux
Introduktion til undergang Doom-serien opstod i 90'erne efter frigivelsen af ​​den originale Doom. Det var et øjeblikkeligt hit, og fra den tid af har...
Vulkan til Linux-brugere
Med hver nye generation af grafikkort ser vi spiludviklere skubbe grænserne for grafisk troskab og komme et skridt tættere på fotorealisme. Men på tro...
OpenTTD vs Simutrans
Oprettelse af din egen transportsimulering kan være sjovt, afslappende og ekstremt lokkende. Derfor skal du sørge for at prøve så mange spil som mulig...