OWASP&
O&
OWASP Top
10
Top 10
Top
10
MITREPCI DSSDISAFTC
OWASP Top 10
OWASP Top 102003
20042007
2010
2013
Top 10
OWASP Top 10
owasp-topten@lists.owasp.org
dave.wichers@owasp.org
•
•
•
•
•
•
•
• OWASP
http://
http://www.owasp.org.cn
20032013 OWASP©
20062013 OWASP©
Creative Commons Attribution ShareAlike 3.0 license
I& &
!
!!!!!!!!!2013OWASP!Top!102010
2010A6
!!2013OWASP!Top!108743
OR!SaaS111
500,000Top!10
!!!!!!!!!OWASP!Top!10web
Top!10
&&&&&&&&OWASP&Top&10OWASP
OWASP!Cheat!Sheet
webweb
OWASP
OWASPweb
OWASP!Top!10
Top!10
Top!10
OWASP
ASVS
SAMMRugged!Handbook
Aspect!Security2003OWASP!Top!10
Jeff!WilliamsDave!Wichers
!
!!!!!!
2013!
• Aspect!Security—StaPsPcs!
• HP—ForPfyWebInspectStaPsPcs!
• Minded!Security—StaPsPcs!
• SoTtek—StaPsPcs!
• Trustware,!SpiderLabs—StaPsPcs!
• Veracode—StaPsPcs!
• WhiteHat!Security!Inc.—StaPsPcs!
!!Top!10
Top!10
Top!10
• !Adam!Baso!Wikimedia!FoundaPon!
• !Mike!Boberski!Booz!Allen!Hamilton!
• !Torsten!Gigler!
• !Neil!Smithline!!—!MorphoTrust!USATop!10
Wiki!
Top!10
OWASP!Top!10
!
!
!!!!!!!!!OWASP!TOP!10!!!!Rip!
!!!!!!!!!
!
20102013
OWASP Top 102013
1)
A2A3
2) CSRF2010-A52013-A8CSRFOWASP Top 10
6CSRF
3) 2010OWASP Top 10URL
2010-A8URL2013-A7
URL
4) 2010-A72010-A92013-A6
2010-A72010-A9
2013A4A7
5) 2013-A9
+2010-A6
OWASP&Top&10&–&2010&&&
OWASP&Top&10&–&2013&&
A1!
A1!
A3!
A2!
A2!XSS
A4!
A6!
A7!—A9!!
A8!URL—!
A5!CSRF
A10!
A9!
A3!XSS
A4!
A5!
A6!
A7!
A8!CSRF
A9!
A10!
2010A72013A6!
&
?&
&&&&&&&
!
!
!
!
!
!
!
!
!
!
!
!
&
!
&
?&
!!!!!!!!!!
!!!!!!!!!OWASP!Top!10
OWASP
!
!
!
!
!
!
&
&
&
OWASP
• OWASP!Risk!RaPng!Methodology!
• !!ArPcle!on!Threat/Risk!Modeling!
&
• FAIR!InformaPon!Risk!Framework!
• !!MicrosoT!Threat!Modeling!(STRIDE!
and!DREAD)!
/&
&&&&
&
&
&
/
Top!10
!
T10&
OWASP&TOP&10&<&2013&
A1&–&!
• SQLOS!LDAP
!
A2&–&
!
•
!
A3&–
XSS!
•
XSSXSS
!
A4&–&
!
•
!
A5&–&!
• web
!
A6&–&&
• WebID
!
A7&–&
&
• WebUI
!
A8&–&
CSRF!
• HTTPcookie
web
!
A9&–&
&
•
!
A10&–&
!
• Web
!
A1& &
&
&
SQL
LDAPXpath
OSXMLSMTP
!
&?&
&?&
&
/&
SQL
prepared!statementsstored!
proceduresbind!variables
1. API
APIAPI
stored!procedures
2. API
escapeOWASP
ESAPI!escape
3.
OWASPESAPI
&
&
#1SQL
&&String&query&=&"SELECT&*&FROM&accounts&WHERE&
&&custID='"&+&request.getParameter("id")&+"'";&
!
#2
HibernateHQL
&Query&HQLQuery&=&session.createQuery(“FROM&accounts&&
&WHERE&custID='“&+&request.getParameter("id")&+&"'");&
id”
’!or’1’=’1!
h\p://example.com/app/accountView?id='&or&'1'='1&&
accounts
&&
OWASP&
• !OWASP!SQL!InjecPon!PrevenPon!Cheat!Sheet!
• !OWASP!Query!ParameterizaPon!Cheat!Sheet!
• !OWASP!Command!InjecPon!ArPcle!
• !OWASP!XML!eXternal!EnPty!(XXE)!Reference!ArPcle!
• !ASVS:!Output!Encoding/Escaping!Requirements!(V6)
• OWASP!TesPng!Guide:!Chapter!on!SQL!InjecPon!TesPng!
• CWE!Entry!77!on!Command!InjecPon!
• !CWE!Entry!89!on!SQL!InjecPon!
• !CWE!Entry!564!on!Hibernate!InjecPon!
A2&
&
&
/&
ID
!
&?&
&?&
ID
1.
2.
A6
,!ID
3. IDURL,!URL
4. IDsession!fixaPon!
5. ID
6. ,ID!
7.
!ID
A6!
!
ASVSV2V3!
1.
:!
a) OWASPASVS
V2V3
b) ESAPI
API
2.
IDA3
#1URLID
URL!
&&h\p://example.com/sale/saleitems;jsessionid=&
&&2P0OC2JDPXM0OQSNDLPSKHCJUN2JV?dest=Hawaii&
ID
&
#2
#3.!
,!
&&
OWASP&
,ASVS!requirements!areas!for!
AuthenPcaPon!V2and!Session!Management!V3!
• !OWASP!AuthenPcaPon!Cheat!Sheet!
• !OWASP!Forgot!Password!Cheat!Sheet!
• !OWASP!Session!Management!Cheat!Sheet!
• !OWASP!Development!Guide:!Chapter!on!AuthenPcaPon!
• !OWASP!TesPng!Guide:!Chapter!on!AuthenPcaPon&
&
• !CWE!Entry!287!on!Improper!AuthenPcaPon!
• !CWE!Entry!384!on!Session!FixaPon!
&