Hva er OWASP?
Open Web Application Security Project, eller OWASP, er en internasjonal non-profit organisasjon dedikert til web-applikasjon sikkerhet. En av OWASP viktigste prinsippene er at alle sine materialer være fritt tilgjengelig og lett tilgjengelig på sin nettside, noe som gjør det mulig for alle å forbedre sine egne web-applikasjon sikkerhet. Materialene de tilbyr inkluderer dokumentasjon, verktøy, videoer og fora. Kanskje deres mest kjente prosjekt er OWASP Top 10.
Hva er OWASP Top 10?,
OWASP Top 10 er en jevnlig oppdatert rapport som skisserer sikkerhet bekymringer for web-applikasjon sikkerhet, med fokus på de 10 mest kritiske farer. Rapporten er satt sammen av et team av sikkerhetseksperter fra hele verden. OWASP refererer til Topp 10 som en «bevissthet dokument’, og de anbefaler at alle selskaper innlemme rapporten i sine prosesser for å redusere og/eller redusere sikkerhetsrisikoer.
Nedenfor, er sikkerhetsrisikoen rapportert i OWASP Top 10 2017 rapport:
1., Injeksjon
Injeksjon angrep skje når upålitelige data som er sendt til en kode tolk gjennom en form input eller noen andre data bidrag til et web-applikasjon. For eksempel, kan en angriper skriv inn SQL-database-koden inn i en form som forventer en ren tekst brukernavn. Hvis det danner input ikke er sikret skikkelig, ville dette resultere i at SQL-kode som utføres. Dette er kjent som en SQL-injection angrep.
Injection-angrep kan forebygges ved å bekrefte og/eller desinfiserende brukeren innsendte data., (Validering betyr avvise mistenkelig utseende data, mens sanering refererer til å rydde opp i mistenkelig utseende deler av data.) I tillegg, en database administrator kan angi kontroller for å minimere mengden av informasjon som en injeksjon angrep kan utsettes.
2. Brutt Godkjenning
Sårbarheter i autentisering (innlogging) systemer kan gi angripere tilgang til brukerkontoer og til og med muligheten til å invadere et helt system ved hjelp av en administratorkonto., For eksempel, kan en angriper kan ta en liste som inneholder tusenvis av kjente brukernavn/passord-kombinasjoner som er oppnådd i løpet av et datainnbrudd og bruke et skript til å prøve alle de kombinasjoner på en login-system for å se om det er noe som fungerer.
Noen strategier for å redusere godkjenning sårbarheter krever at to-faktor autentisering (2FA) samt begrense eller forsinke gjentatt påloggingsforsøk ved hjelp av pris begrensende.
3., Sensitive Data Eksponering
Hvis web-applikasjoner ikke beskytte sensitive data, for eksempel finansiell informasjon og passord, angriper kan få tilgang til data og sellor utnytte det for nefarious formål. En populær metode for å stjele sensitiv informasjon er du bruker en av-og på-vei-angrep.
Data eksponering risiko kan reduseres ved å kryptere alle sensitive data samt deaktivere caching* av sensitiv informasjon. I tillegg, web-applikasjon utviklere bør ta vare for å sikre at de ikke blir unødvendig å lagre eventuelle sensitive data.,
*Caching er praksis for midlertidig lagring av data for gjenbruk. For eksempel, nettlesere vil ofte cache nettsider, slik at hvis en bruker besøker thosepages i et fast tidsrom, nettleseren ikke har til å hente sider fra nettet.
4. Eksterne XML-Enheter (XEE)
Dette er et angrep mot en web-applikasjon som analyserer XML – * – inngang. Denne inngangen kan henvise til en ekstern enhet, forsøker å utnytte en sårbarhet i parseren. En «ekstern enhet» i denne sammenheng refererer til en lagringsenhet, slik som en harddisk., En XML parser kan bli lurt til å sende data til en uautorisert ekstern enhet, som kan passere sensitive data direkte til en angriper.
De beste måtene å forebygge XEE-angrep er å ha web-applikasjoner godta en mindre kompleks type data, for eksempel JSON**, eller i det minste å oppdatere XML-parsere og deaktivere bruken av eksterne enheter i en XML-applikasjon.
* – eller XML-Extensible Markup Language er et kodespråk som er ment å være både lesbar og maskin-lesbar. På grunn av sin kompleksitet og sikkerhetsproblemer, det er nå fases ut av bruk i mange web-applikasjoner.,
**JavaScript Object Notation (JSON) er en type enkle, lesbar notasjon som ofte brukes til å overføre data over internett. Selv om det opprinnelig var opprettet for JavaScript, JSON er språk-agnostisk og kan tolkes av mange forskjellige programmeringsspråk.
5. Ødelagte Access Control
Access control refererer et system som styrer tilgang til informasjon eller funksjonalitet. Ødelagte tilgang til kontrollene gjøre det mulig for angripere å omgå autorisasjon og utføre oppgaver som om de var privilegerte brukere som administratorer., For eksempel en web-applikasjon, kan tillate en bruker å endre hvilken konto de er logget på som bare ved å endre en del av en url, uten noen annen bekreftelse.
få Tilgang til kontrollene kan sikres ved å sørge for at en web-applikasjon bruker autorisasjon poletter* og setter strenge kontroller på dem.
*Mange tjenester utstede autorisasjon tokens når brukere logger seg på. Hver privilegert be om at en bruker gjør vil kreve at tillatelse token være til stede. Dette er en sikker måte å sikre at brukeren er den de sier de er, uten å hele tiden oppgi påloggingsinformasjon.
6., Sikkerhet feil konfigurasjon
Sikkerhet feil konfigurasjon er den vanligste sårbarhet på listen, og er ofte resultatet av å bruke standard konfigurasjoner eller vise overdrevet verbose-feil. For eksempel, et program for å vise en bruker altfor beskrivende feil som kan avsløre sårbarheter i programmet. Dette kan bli motvirket ved å fjerne ubrukte funksjoner i koden og at feilmeldingene er mer generelle.
7., Cross-Site Scripting
Cross-site scripting sårbarheter oppstå når web-applikasjoner tillate brukere å legge til egendefinert kode inn en url-banen eller på en nettside som vil bli sett av andre brukere. Denne sårbarheten kan utnyttes til å kjøre ondsinnet JavaScript-kode på offerets nettleser. For eksempel, kan en angriper sender en e-post til et offer som ser ut til å være fra en pålitelig bank med en lenke til at bankens nettside. På denne linken kan ha noen skadelige JavaScript-kode som er merket på slutten av url., Hvis bankens side er ikke ordentlig beskyttet mot cross-site scripting, så at skadelig kode vil bli kjørt i offerets nettleser når de klikker på linken.
Avbøtende strategier for cross-site scripting inkluderer rømmer ikke klarert HTTP-forespørsler, samt kontroll og/eller desinfiserende bruker-generert innhold. Ved hjelp av moderne web-utvikling rammeverk som ReactJS og Ruby on Rails gir også noen innebygde cross-site scripting beskyttelse.
8. Usikre Deserialisering
Denne trusselen er rettet mot de mange web-applikasjoner som ofte serialisere og deserialisere data., Serialisering betyr å ta objekter fra programmet kode og konvertere dem til et format som kan brukes til et annet formål, for eksempel å lagre data til disk eller streame det. Deserialisering er nettopp det motsatte: å konvertere serialisert data tilbake til objekter som programmet kan bruke. Bedriften er liksom som pakking møbler bort i esker før en flytter, og deserialisering er som å pakke opp boksene og sette sammen møbler etter flyttingen. En usikker deserialisering angrep er som å ha movers tukle med innholdet i boksene før de blir pakket ut.,
En usikker deserialisering utnytte er resultatet av deserializing data fra upålitelige kilder, og kan resultere i alvorlige konsekvenser som DDoS angrep og ekstern kjøring av kode angrep. Mens skritt som kan tas for å prøve og fange angripere, for eksempel overvåking deserialisering og implementering av type sjekker, den eneste sikre måten å beskytte mot usikre deserialisering angrep er å forby deserialisering av data fra upålitelige kilder.
9., Bruk av Komponenter Med Kjente Sårbarheter
Mange moderne web-utviklere bruke komponenter slik som biblioteker og rammeverk i sin web-applikasjoner. Disse komponentene er biter av programvare som hjelper utviklere unngå overflødig arbeid og gi nødvendig funksjonalitet; vanlig eksempel inkluderer front-end rammer som Reagerer og mindre bibliotek som brukes til å legge til dele ikoner eller a/b-testing. Noen angripere lete etter sårbarheter i disse komponentene som de kan bruke til å legge til rette for angrep., Noen av de mer populære komponenter er brukt på hundrevis av tusenvis av nettsteder; en angriper å finne et sikkerhetshull i en av disse komponentene kunne forlate hundrevis av tusenvis av nettsteder som er sårbare for å utnytte.
Komponent utviklere tilbyr ofte sikkerhetsoppdateringene for å koble opp kjente sårbarheter, men web-applikasjon utviklere ikke alltid har oppdatert eller siste versjoner av komponenter som kjører på sine søknader., For å minimere risikoen for å kjøre komponenter med kjente sårbarheter, utviklere bør fjerne ubrukte komponenter fra sine prosjekter, samt å sikre at de mottar komponenter fra en pålitelig kilde, og sikrer at de er oppdatert.
10. Utilstrekkelig Logging Og Overvåking
Mange web-applikasjoner er ikke å ta nok trinnene for å registrere data brudd. Gjennomsnittlig discovery tid for et brudd er rundt 200 dager etter at det har skjedd. Dette gir angripere mye tid til å forårsake skade før det er noen svar., OWASP anbefaler at webutviklere skal gjennomføre logging og overvåking samt incident response planer for å sikre at de er gjort kjent med at angrep på sine søknader.
For en mer teknisk og i dybden og se på OWASP Top 10, kan du se den offisielle rapporten .