OWASP Top 8
- Injection
- Cross-Site Scripting (XSS)
- Broken Authentication and Session Management
- Insecure Direct Object References
- Cross-Site Request Forgery (CSRF)
- Security Misconfiguration
- Insecure Cryptographic Storage
- Failure to Restrict URL Access
- Insufficient Transport Layer Protection
- Unvalidated Redirects and Forwards
A1 Injection flaws
Attacker sends simple text-based attacks that exploit the syntax of the targeted interpreter. Almost any source of data can be an injection vector, including internal sources.
A2 Cross-site scripting
Attacker sends text-based attack scripts that exploit the interpreter in the browser. Almost any source of data can be an attack vector, including internal sources such as data from the database.
A4 Insecure direct object reference
Attacker, who is an authorized system user, simply changes a parameter value that directly refers to a system object to another object the user isn’t authorized for. Is access granted?
A8 Failure to restrict URL access
Attacker, who is an authorized system user, simply changes the URL to a privileged page. Is access granted? Anonymous users could access private pages that aren’t protected.
http://www.example.com/apage?object=myobject
http://www.example.com/apage?object=notmyobject
eller
http://www.example.com/mypage
http://www.example.com/notmypage
eller
http://www.example.com/show?page=mypage
http://www.example.com/show?page=notmypage
handlar det om samma problem. Vem har tillgång till vad.
Den bästa anledningen till att separera "vanlig" injection och HTML injection (XSS) i vanliga diskussioner är att den förra är en attack mot applikationen medan den senare i regel är en attack mot andra användare. Även detta resonemang haltar dock lite; att sno administratörens cookie via XSS och använda den för att autentisera sig mot applikationen, är det verkligen en attack mot administratören?
Hårklyverier kanske.
--
Stefan Pettersson
Bra skrivet.
Men varför tror du att OWASP har gjort som man har? Är det av pedagogiska skäl kanske?
Tack!
Ingen aning men för XSS gissar jag att det är för att den kan anses vara riktad mot användare (i likhet med CSRF). En bidragande orsak är väl också att det skulle vara kontroversiellt att likställa det med SQL injection (av någon outgrundlig anledning).
I det andra fallet kan det vara så att man uppfattar det annorlunda som utvecklare medan jag ser det ur en testares synvinkel. Om jag skulle göra en uppdelning skulle det nog vara tillgång till (A8) äkta filer i filsystemet och (A4) allt annat. Denna haltar dock lite i moderna ramverk.
...sen kan det givetvis vara så att de inte är lika anala som jag är. :-)
Ytterligare en irriterande detalj i historien Top 10 är att upphovsmännen och förespråkarna alltid är tydliga med att påpeka att "det här bara är tio stycken, det finns många, många mer". Jag är inte så övertygad. Det går nog att koka ner väldigt många av våra "attackklasser" till ett fåtal i en ordentlig taxanomi.
Jag kan tänka mig att det finns någon sådan redan, den togs säkert fram för många år sen, de bakom Project Athena eller Multics var säkert inblandade och ClickJacking går säkert att placera i någon av klasserna.
Intressant. Jag kan tänka mig flera perspektiv i detta, men det första som slog mig är att det kändes lite som marknadsföring. Frasen "det finns många, många fler" känns som den vill sälja något. Att lista det tio hetaste sårbarheterna är ju en form av marknadsföring (för OWASP?). Då kanske man är noga med igenkänningsfaktorn i de namn och akronymer som hamnar på listan.