Content Security Policy

Content Security Policy

CSP - the panacea for XSS or placebo? Taras Ivashchenko Information Security Officer $ whoami Information security officer at Yan"e#$s product security team %eb application security researcher !et another security blogger .o#def.info 2 XSS XSS Why again about XSS?! Still one of the the most common web application security issues Ok, but please don't show me those alerts 4 Prevention Input validation Output escaping depending on conte#t httponly session cookie *rowser based solutions: IE filter, NoScript ? 5 CSP Content Security Policy *rowser side mechanism to mitigate XSS attacks Source whitelists for client side resources of web application Content-Security-Policy HTTP header %/C Candidate Recommendation 7 How it Works HTML Template <h1>Test XSS page</h1> <h3>Hello, <i> {{ foo | safe }}!</i></h3> 3emo URL http://127.0.0.1:5000/xss?foo= <img src="http://www.oxdef.info/exploit.png"> 8 9 %ithout CSP CSP in Action Content-Security-Policy: img-src 'self' 10 Control JavaScript Policy Content-Security-Policy: default-src 'self'; script-src 'self' static.example.com HTML <!doctype html><html><head> <meta charset="utf-8"> <script src="/js/jquery-1.10.2.js"></script> <script src="//evil.net/evil.js"></script>... console.lo& Refused to load the script 'http://evil.net/evil.js' because it violates... 11 Unsafe-inline and unsafe-eval • unsafe-inline allows: – Inline scripts and styles – onclick=”...” – javascrtipt: – !ou should not include it in the policy! • unsafe-eval allows: – eval() – new Function – setTimeout, setInterval with string as a first ar&ument – !ou should not include it in the policy! 12 Other Directives media-src – audio and video object-src - plugin objects (e.g. Flash; frame-src – iframe sources font-src – font files connect-src – XMLHttp0equest, WebSockets, ,ventSource 13 0eporting Policy Content-Security-Policy-Report-Only: ...; report-uri csp.php 2o& contents { "csp-report": { "violated-directive": "img-src data: ... *.example.com", "referrer": "", "blocked-uri": "https://static.doubleclick.net", "document-uri": "https://example.com/foo", "original-policy": "default-src ...; report-uri csp.php" } } 14 Browser Support Content-Security-Policy 2>? =/? 1'A? X-Content-Security-Policy 4 - 22 1C (sandbo#; X-WebKit-CSP 1B - 2> 5'@? Mobile browsers: 7'C+ 2D+ 2/+ 15 Bypass Manipulating HTTP response headers Implementation bugs: MFSA 2C@=-36: Content Security Policy inline-script bypass JSONP XSS without JS 16 See in the Ne#t Version: nonce-source Policy Content-Security-Policy: script-src 'self' nonce-Nc3n83cnSAd HTML Co"e <!doctype html> <html> <head> <meta charset="utf-8"> <script src="/js/jquery.min.js"></script> </head> <body> <script nonce="Nc3n83cnSAd"> // Some inline code here </script> 17 Case-study About the Service One of the most popular mail services in Russia Over @= million email messages daily 2ots of client side code and hosts to communicate with 19 CSP Tester ,#tension for Chromium based browsers Simple and Advanced modes Content-Security-Policy and X-WebKit- CSP headers Help links for directives https://github.com/o#def/csp-tester 20 21 CSP Tester in action The Plan @'Test it on the corporate mail ='It's ok - let's try it on production in Report- Only mode /'AnalyHe tons of logs ;-( B':ix bugs and improve the policy >'Switch to block mode E'Profit! :-) 22 Changes in service Try to remove all inline code 23 2og Analysis awk, grep, sort,head for gigabytes of logs? !es, but we can do it in more complex ay with help of Python Charts for directives and blocked URIs 24 Problems *rowser implementations differ /rd party JS libraries Inline styles in HTML letters *rowser e#tensions What is that *** e#ternal code doing in our DOM? 25 :rom Report-Only to Block mode :ix bugs from CSP logs Use only standard CSP HTTP header Allow browser e#tensions unsafe-inline for style-src unsafe-eval for script-src 26 Tips Teach your front-end developers Add CSP as security requirement for new products Don't forget about mobile versions! 0esearch your core front-end components to support CSP Assign developer responsible for CSP 27 CSP Based IDS XSS XSS Test & Fix Magic XSS 28 Conclusion CSP is not a panacea but it's a goo" «yet another level» to protect your users against XSS attacks 29 To be continued ;-) 30 Taras Ivashchenko Information Security Officer [email protected] http://company.yandex.com/security Thanks.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    31 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us