Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 482/582: Computer Security

Similar presentations


Presentation on theme: "CSC 482/582: Computer Security"— Presentation transcript:

1 CSC 482/582: Computer Security
Cross-Site Security CSC 482/582: Computer Security

2 Topics Same Origin Policy Credential Caching
Cross-Site Request Forgery Cross-Site Scripting (XSS) XSS Variants CSC 482/582: Computer Security

3 Web Page Interactions Possible interactions limited by same-origin policy (a.k.a. cross-domain security policy) Links, embedded frames, data inclusion across domains still possible Client-side scripts can make requests cross-domain HTTP & cookie authentication two common modes (both are usually cached) Cached credentials associated with browser instance Future (possibly malicious) requests don’t need further authentication

4 Same Origin Policy Modern browsers use DHTML
Support style layout through CSS Behavior directives through JavaScript Access Document Object Model (DOM) allowing reading/modifying page and responding to events Origin: protocol, hostname, port, but not path Same-origin policy: scripts can only access properties (cookies, DOM objects) of documents of same origin

5 Same-Origin Examples Same Origin All Different Origins
same protocol: http, host: examplesite, default port 80 All Different Origins Different protocol: http vs. https, different ports: 80 vs. 8080, different hosts: examplesite vs. hackerhome

6 Interactions between Different Origins
hackerhome.org can link to us, can’t control <a href=" here!</a> Or include a hidden embedded frame: <iframe style="display: none" src=" some_url"></iframe> No visible cue to the user (style attribute hides it) Happens automatically, without user interaction Same-origin policy prevents JavaScript on hackerhome direct access to our DOM

7 Possible Interactions
Occasionally, data loaded from one domain is considered to originate from different domain <script src=" hackerhome can include this script loaded from our site, but it is considered to originate from hackerhome instead Included script can inspect contents of enclosing page which can define evaluation environment for script

8 Possible Interactions
Another way attacker can initiate requests from user’s browsers to our server: Form is submitted to our server without any input from user Only has a hidden input field, nothing visible to user Form has a name, so script can access it via DOM and automatically submit it <form name="f" method="POST" action=" <input type="hidden" name="cmd" value="do_something"> ... </form> <script>document.f.submit();</script>

9 HTTP Request Authentication
HTTP is stateless, so web apps have to associate requests with users themselves HTTP authentication: username/passwd automatically supplied in HTTP header Cookie authentication: credentials requested in form, after POST app issues session token Browser returns session cookie for each request Hidden-form authentication: hidden form fields transfer session token Http & cookie authentication credentials cached

10 Lifetime of Credentials
Temporary cookies cached until browser shut down, persistent ones cached until expiry date HTTP authentication credentials cached in memory, shared by all browser windows of a single browser instance Caching depends only on browser instance lifetime, not on whether original window is open

11 Credential Caching Scenario
(1) Alice has browser window open, (2) creates new window (3) to visit our site, HTTP authentication credentials stored (4) She closes the window, but original one still open (5) later, she’s lured to the hacker’s site which causes a surreptitious request to our site utilizing the cached credentials Credentials persisted even after (4), cookies could have been timed-out; step (5) could happen days or weeks after (4)

12 Cross-Site Attacks Target users of application.
Use application feature to reach other users of application. Clients are less well defended than servers. Obtain assets of individual users rather than assets of entire application. Most common type of attack. Cross-Site Request Forgery (CSRF) Cross-Site Scripting (XSS) CSC 482/582: Computer Security

13 Cross-Site Request Forgery
A confused deputy attack. Exploits trust that application has with authentication sessions. Attack scenario: User authenticates to web application. User browses to another site containing a malicious CSRF attack link to web app. iframe, img, link, bgsound, etc. Browser accesses web app with cached credentials, performing whatever action specified by the link. CSC 482/582: Computer Security

14 Example: DSL Modem Attack
Home network devs administered via web apps. Standard local IPs. Attacker inserts 1-pixel img tag on page. src is URL of form submission, giving remote admin. No password needed. Software owner assumed device on trusted local network. Of course, browser is on the local network too. <img src=" alt="" width="1" height="1" /> Image from CSC 482/582: Computer Security

15 Mitigating CSRF Require POST for data modifications, but
Many frameworks automatically fetch both types of parameters or convert one to other. Hidden POST requests can be created with scripts. Check referer header. But users can block or forge referer header, so it cannot be relied on for everyone. Use nonces. Random token inserted as hidden parameter, and thus submitted with form. But XSS can read form, so a combined XSS + CSRF attack can bypass this defense. CSC 482/582: Computer Security

16 Mitigating CSRF Re-authenticate for high value transactions.
Use out of band authentication if possible. Expire session IDs quickly. But there will always be some time period in which a CSRF attack will work. Automate defenses with tools. CSRFGuard to insert nonces. CSRFTester to verify application. CSC 482/582: Computer Security

17 Cross-Site Scripting (XSS)
Attacker causes a legitimate web server to send user executable content (Javascript, Flash ActiveScript) of attacker’s choosing. Impact of XSS Account hijacking. Browser hijacking (malware hosting.) Information leakage (stored form values, etc.) Virtual defacement. CSC 482/582: Computer Security

18 XSS Examples MySpace worm (October 2005) Paypal (2006) BBC, CBS (2006)
When someone viewed Samy’s profile: Set him as friend of viewer. Incorporated code in viewer’s profile. Paypal (2006) XSS redirect used to steal money from Paypal users in a phishing scam. BBC, CBS (2006) By following XSS link from securitylab.ru, you could read an apparently valid story on the BBC or CBS site claiming that Bush appointed a 9-year old as head of the Information Security department. CSC 482/582: Computer Security

19 XSS Key Steps Attacker sends code to web application.
Legitimate user accesses web app. Web app sends attacker code to user. User’s browser executes code. CSC 482/582: Computer Security

20 XSS Example Client browser sends an error message to the web server.
+error+occurred CSC 482/582: Computer Security

21 XSS Example The error message is “reflected” back from the Web server to the client in a web page. CSC 482/582: Computer Security

22 XSS Example We can replace the error with JavaScript
CSC 482/582: Computer Security

23 Exploiting the Example
User logins in and is issued a cookie Attacker feed the URL to user CSC 482/582: Computer Security

24 Why does XSS Work? Same-Origin Policy Vulnerable Server Program
Browser only allows Javascript from site X to access cookies and other data from site X. Attacker needs to make attack come from site X. Vulnerable Server Program Any program that returns user input without filtering out dangerous code. CSC 482/582: Computer Security

25 Reflected XSS Attack Scenario Limitations User clicks on link.
Injected script returned by one-time message from vulnerable site. User browser executes injected code. Limitations Non-persistent. Only works when user clicks. Most common type of XSS (~75%). CSC 482/582: Computer Security

26 Anatomy of an XSS Attack
Web Server 8. Attacker hijacks user session. 1. Login Attacker User 2. Cookie 5. XSS URL 3. XSS Attack 6. Page with injected code. 7. Browser runs injected code. 4. User clicks on XSS link. Evil site saves ID. CSC 482/582: Computer Security

27 XSS URL Examples CSC 482/582: Computer Security

28 Stored XSS Injected script stored in
Post or comment. Review. Uploaded file. User views page with injected script. Malicious action is taken while user is logged into site where malware found. Not technically cross-site. Attack persists until injected code deleted. CSC 482/582: Computer Security

29 DOM-based XSS Attack scenario Exploits vulnerability in client code.
User clicks on URL with crafted Javascript. Application’s client code extracts data from URL and dynamically updates page with it. User browser executes crafted Javascript that was inserted in the page. Exploits vulnerability in client code. Server does not reflect or store evil Javascript. CSC 482/582: Computer Security

30 Mitigating XSS Disallow HTML input Allow only safe HTML tags
Filter output Replace HTML special characters in output ex: replace < with < and > with > also replace (, ), #, & Tagged cookies Include IP address in cookie and only allow access to original IP address that cookie was created for. CSC 482/582: Computer Security

31 References Brian Chess and Jacob West, Secure Programming with Static Analysis, Addison-Wesley, 2007. Daswani et. al., Foundations of Security, Apress, 2007. Seth Fogie et. al., XSS Attacks: Cross-Site Scripting Exploits and Defense, Syngress, 2007. Michael Howard, David LeBlanc, and John Viega, 19 Deadly Sins of Software Security, McGraw-Hill Osborne, 2005. Nathan, PCI Security Standards Council, PCI DSS Requirements and Security Assessment Procedures, v1.2, 2008. Dafydd Stuttart and Marcus Pinto, The Web Application Hacker’s Handbook, Wiley, 2008. CSC 482/582: Computer Security


Download ppt "CSC 482/582: Computer Security"

Similar presentations


Ads by Google