65
Software and Web Security deel 2 deel 2 sws1 1

Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Software and Web Securityy

deel 2deel 2

sws1 1

Page 2: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Software and Web Security - 1 & 2y

Software is the main source of security vulnerabilitiesi t ibl i t kesp in systems accessible via a network

• part 1part 1security problems in machine code, compiled from C(++) usually, running on standard CPUs

part 2• part 2security problems on the web/in software for the web, incl.in web browsers (at client side) andin web browsers (at client side) and in web applications and web application servers (at server side)and the interaction between them

sws1 2

Page 3: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Prerequisites

• Securityesp notions of confidentiality integrity and availability (CIA)– esp. notions of confidentiality, integrity, and availability (CIA) and authentication

D t b d S it• Databases and Security– esp. SQL, since database in a web-application is an important

target for attacker

• (Software and Web Security 1)– useful to note the recurring patterns and trends in weaknesses anduseful to note the recurring patterns and trends in weaknesses and

attacks– knowledge of C(++) and associated memory weaknesses is NOT

requiredq– read through the slides of first lecture of this course, if you did not take

this course

sws1 3

Page 4: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Course materials

Book: Introduction to Computer Securityb Mi h l G d i h d R b t T iby Michael Goodrich and Roberto Tamassia(Pearson new international edition 2013/2014)Chapters 1, 5.1, 7p , ,

Additional info & course material on http://www.cs.ru.nl/~erikpoll/sws2

sws1 4

Page 5: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Lab exercises using OWASP WebGoatg

Weekly lab session with web hacking exercises using WebGoatT d 8 45 10 30 i t i l HG00 075• Tuesdays 8:45-10:30 in terminal room HG00.075Ko Stoffelen and/or Willem Burgers will be there to help

• Exercises to be done in pairsp• Doing the exercises is obligatory to take part in the exam• More importantly, exam questions will assume familiarity with the lab

iexercises

sws1 5

Page 6: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Recap terminology and conceptsp gy pfrom

Software & Web Security 1Software & Web Security 1

sws1 6

Page 7: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

weaknesses vs vulnerabilities

Common use of terminology can be very confused & confusing: (security) weaknesses flaws vulnerabilities bugs errors coding defects(security) weaknesses, flaws, vulnerabilities, bugs, errors, coding defects, ...We can make a distinction between• security weakness/flaw:

something that is wrong or could be better, and which might become a security problem

• security vulnerability• security vulnerabilitya weakness/flaw that can actually be exploited by an attacker

This requires the weakness to beq1. accessible - attacker has to be able to get at it2. exploitable - attacker has to be able to do some damage with it

Eg by unplugging your network connection, many vulnerabilities become flaws

sws1 7

Page 8: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

design vs implementation flawsg

Software vulnerabilities can be introduced at different “levels”d i fl• design flaws– fundamental error in the design

• implementation flaws or coding error

focus of this course

implementation flaws or coding error– introduced when implementing

The precise border is not precise

Vulnerabilities can also arise on higher levels (out of scope for this course)configuration flaw when installing software on a machine• configuration flaw when installing software on a machine

• the user• unforeseen consequence of the intended functionality (eg. spam)unforeseen consequence of the intended functionality (eg. spam)

sws1 8

Page 9: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

errors in program logic vs low-level coding defectsg g g

We can distinguish1 fl th t b tt d j t b l ki t th it lf ( d1. flaws that can be spotted just by looking at the program itself (and

understanding what it is meant to do!)– eg. incorrectly nested if-statementsSometimes called logic errors, as opposed to syntax errors,

or an error in the program logic2 l l l i l t ti fl th t i d t i t ti ith2. lower-level, implementation flaws that arise due to interactions with

the underlying platform– in the case of software running on a normal machine, the platform g p

includes CPU, OS, and memory– in the case of software interacting over the web, this platform is “the

web” ,incl. a web browser on the client side and a web server or web ,application on the server side

focus of this course

sws1 9

Page 10: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

(malicious/untrusted) input as main source of trouble

evil inputerror in program logicprogram

in execution

evil input

output

program logic

execution

lots of .interactions

lower-level coding defect,platform-dependent

complex “platform”

interactions .

The platform can be– the computer (CPU & memory)– “the web”

sws1 10

Page 11: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Intro

sws1 11

Page 12: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

brainstorm: surfing the web g

What is the web?

• What do we need to make the web?

• What do we need to use the web?

sws1 12

Page 13: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

brainstorm

• the internet, connecting clients and serversli t id• client side:

web browser, possibly with plugins, running on some OS, • server side:server side:

web server or web application running on web application framework

incl. back-end database, running on some OS• specifications to agree on common protocols and formats

IP HTTP HTTPS HTML DNS wifi ethernet– IP, HTTP, HTTPS, HTML, DNS, wifi, ethernet, ..– URL/URI, IP addresses, email addresses, ...– jpg, png, mpeg, mp4, javascript, Flash, ActiveX, Ajax, ...– PHP, Java, Ruby,.. or some other scripting/programming language

sws1 13

Page 14: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

What is the internet and the web?

The internet and web consist of hardware and softwareh d• hardware– network: copper cables, optic cables, ...– ICT: servers, routers,...ICT: servers, routers,...

• software– network drivers, browsers, web servers, ...

Alternatively, we can say the internet or the web is simply a set of specifications that definespecifications, that define • protocols (for communication)• languages and formats (for data)languages and formats (for data)that are somehow realised in HW/SW

sws2 14

Page 15: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

protocol

A procotol is a t f l f t ( ) ti t i t t i tset of rules for two (or more) parties to interact or communicate

Protocols specify sequences of steps,Protocols specify sequences of steps,in which data is exchanged in specific formats

Not just between computers; eg. think of protocol that people follow when they answer their phone.

NB systems consisting of interacting/communicating parties are complex, as the number of states grows exponentially with the number of participants.

sws2 15

Page 16: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

languages and formatsg g

Defining a language or formats involvest• syntax

– what are allowed words/sentences/sequences of bytes?• semanticssemantics

– what do these mean?– hence: how should they be interpreted?

sws2 16

Page 17: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

internet vs web• internet

– provides networking between computers p g p– offering the IP protocol family with UDP and TCP

• web– one of the services that can run over the internet

using the HTTP/HTML protocol family– using the HTTP/HTML protocol family

sws2 17

Page 18: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

History of y(security worries on)

the internet & the webthe internet & the web

sws2 18

Page 19: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Evolution of the Internet

1. the internet2 th b2. the web3. dynamically generated web pages4. web 2.04. web 2.05. dynamic web pages6. asynchronously executing content in web pages7. mobile internet8. web 3.0 aka the semantic web?

sws2 19

Page 20: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

1. internet

• computer network linking computers worldwidei i ( k li ti ) th t b id d th• various services (aka applications) that can be provided over the

internet: email, ftp, telnet, ssh, ...• built using several protocol layersg p y

Application Layer HTTP DNSSMTP VoIP... ...pp y

Transport Layer TCP UDP

Li k L

IPNetwork Layer

Physical layer

Link Layer

sws2 20

Page 21: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

security worries & problems?y

1. The internet is an important attack vector. For any computer connected to the internet, it threatens CIA of all data and servicesconnected to the internet, it threatens CIA of all data and services on it, incl. availability of the computer itself

2. Lack of confidentiality, privacy, and anonymityAny party observing the network traffic (eg router ISP ) can– Any party observing the network traffic (eg router, ISP, ...) can see1. the communication exchanged2. the fact that two parties are communicating at allis seen by any party in the middle, incl. routers, ISP, government agencies, ...g g

– Also, parties communicating know each other’s IP address NB an IP address counts as personal information (persoonsgegeven)

in Dutch legislationg3. Lack of integrity & authentication

– when you communicate over the internet, you have no clue who is at the other end of the line or if information is genuineis at the other end of the line, or if information is genuine

sws2 21

Page 22: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

integrity and authenticityg y y

Of the trio confidentiality, integrity and availability (CIA),i t it i th t i ki t & t f i tiintegrity is the trickiest & most confusing notion.

Usually (always?) by integrity of messageUsually (always?) by integrity of messagewe implicitly also mean authentication of the origin of the message

Conversely, authentication of some party is usually pointless unless you also authenticate (ie. ensure the integrity of) the communication coming from that partycoming from that party.

sws2 22

Page 23: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

history repeating itselfy g

The telephone network also suffers from poor confidentiality and authenticationauthentication...

The automatic telephone switchboard was invented by Almon Strowger in 1888. Strowger had an undertaker business and suspected a switchboard operator from transferring calls to him to a competitor.

With automatic switchboard, human operators could no longer do this.

Added benefit for confidentiality: no need for human operators that could eavesdrop on calls.

sws2 23

Page 24: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

2. the world wide web

The web is one of the services available over the internet i t t + HTTP + HTML + URLwww = internet + HTTP + HTML + URLs

It offers hypertext (text with links) as abstraction layer over some material on the internet.

At the server side, it involves a web server that typically– listens to port 80– accepts HTTP requests, processes these, and returns some

answeranswer

At the client side, it involves a web browser

sws2 24

Page 25: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

interactions in surfing the webg

user actions HTTP requests

web browser web server

& observationHTTP requestsand responses

PC/laptop server

OSOS

PC/laptop server

user

sws2 25

Page 26: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

interactions in surfing the webg

user actions

web browser web server

& observation

PC/laptop server

OSOS

PC/laptop serverHTTP requestsand responses

user

sws2 26

Page 27: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

security worries & troublesy

The same as for the internetb ti it i i t t tt k t• web-connectivity is an important attack vector

• lack of confidentiality, privacy, anonymity• lack of authentication and integritylack of authentication and integrity

sws2 27

Page 28: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

security worries & troublesy

Additionally, id t ll i t f th fil t th i t t• accidentally exposing parts of the file system on the internet

Eg http://www.cs.ru.nl/~erikpoll/sws2/exam/exam.pdf

• even making this searchable using search enginesg g g

• For most web servers .htaccess files can be used to configure t fil taccess to file system.

Additionally, the OS (Operating System) will do access control.

• Access restrictions for automated web crawlers, as used by search engines, can be specified in robots.txt files, but it is up to the client to respect these (or not)client to respect these (or not).

sws2 28

Page 29: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

3. dynamically created web pagesy y g

Simple web pages are static HTML, without any user interaction.Eg http://www cs ru nl/ erikpoll/sws2/index htmlEg http://www.cs.ru.nl/~erikpoll/sws2/index.html

Dynamically created web pages involve a server-side execution engine y y p g gthat dynamically creates web pages on demand

Eg gmail, facebook, blackboard, google,...

The web server now runs a web application. • These applications run in a web application serverThese applications run in a web application server

– eg Apache Tomcat or Websphere• They are written in scripting or programming languages

– eg CGI, Perl, Python, PHP, ASP, JSP

sws2 29

Page 30: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

dynamically created webpagesy y g

execution

complexweb browser

pweb server

user actions& observation

HTTP requestsand responses

sws2 30

Page 31: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

3. dynamically created web pagesy y g

Additional security worries?

• execution in the server based on (possibly malicious) input from user

• more complexity in the serverf– complexity is bad for security

sws2 31

Page 32: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

dynamically created webpagesy y g

execution

complexweb browser

pweb server

user actions& observation

HTTP requestsand responses

sws2 32

Page 33: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Web 2.0

Web 2.0 saw a big rise in user-generated content for the webEgEg

– web forums– wikipedia and other wiki’s

Additional security worries? t iti f tt k t i l d li i i t• more opportunities for attacker to include malicious input

– some of this input will be shown to other users• so attacker can get other users to click on linksg

• more authentication/integrity problems:– where does the info you see on a website really come from?

• more complexity in the server

sws2 33

Page 34: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

4. dynamic web pagesy g

• ie executable contents in web pagesth t i t d i th li t’ b– that is executed in the client’s browser

So web pages are not only generated dynamically by the server, but the web pages themselves are dynamicbut the web pages themselves are dynamic

• browser now also includes an execution engine• typical languages used

– JavaScript, Flash, Java, ActiveX

sws2 34

Page 35: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

dynamic webpagesy g

execution

l complexcomplexweb browser

complexweb server

user actions& observation

HTTP requestsand responses

sws2 35

Page 36: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

4. dynamic web pagesy g

Additional security worries?t t d d t d i th ’ b• untrusted code executed in the user’s browser

• server can’t tell if the user or the executable content is responsible for HTTP requestsq

• more complexity, now at the client side

sws2 36

Page 37: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Trend: more third party contenty

Web sites include ever increasing amounts of third party content,eg• google search bar or google map• advertising from third parties• tracing cookies from advertising networks• web application mash-ups

Additional security threats?• more risks to privacyp y• more opportunities for attackers, via malicious 3rd party content

sws2 37

Page 38: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Dangers of executable third-party contentg y

JavaScript executing in a malicious advert included on N Y k Ti b it ti f k itNew York Times web site creating a fake security pop-up

sws2 38

Page 39: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

dynamic webpages and 3rd party contenty g y

advertising.comWhat happening

mafia.org

in my browser?And who am I interacting with?

executionmafia.org

complexcomplexweb browser nytimes.com

user actions& observation

HTTP requestsand responses

sws2 39

Page 40: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

the death of operating systems?y

• Given the complexity - and power - of web applications, ti t b l i t toperating systems become less important,

and might eventually become extinct?

• All you need for everything is a browser, Gmail, and GoogleDocs?

sws2 40

Page 41: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Still more dynamic: Ajaxy j

Wilder client side execution with Ajax ( S )(Asynchronous JavaScript and XML)

Code in browser runs independently of user actions (asynchronously)(asynchronously)

and uses XML for interacting with code in server • classic example: word completion in Google search bar as you typep p g y yp

– though this example is not really asynchronous

C f i l Aj d t b h d d t XMLConfusingly, Ajax need not be asynchronous, and need not use XML.

sws2 41

Page 42: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Asynchronously interacting code executing in browser & serverexecuting in browser & server

Asynchronous: HTTP requests not necessarily caused by user actions

execution execution

complexcomplexweb browser mybank.com

user actions& observation

HTTP requestsand responsescontaining XML

sws2 42

g

Page 43: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

XML

XML (eXtensible Markup Language) allows custom extensions fordi d t d th d t i f t th t i b th hencoding documents and other data in a format that is both human-

readable and machine readable.

HTML and XML use very similar syntax for tags <tag>...</tag>

HTML is fixed, and only defines how information should be displayed, eg <b>Display this text in bold</b>

XML is extensible and carries semantic information in tags, eg <artist>Lady Gaga</artist>g y g /

sws2 43

Page 44: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Future: web 3.0 aka semantic web ?

Vision of future web where information is not just text, but is enriched with semantics (meaning) that can be interpreted and processed bywith semantics (meaning) that can be interpreted and processed by machines, and not just by humans.

Note that some processing of information on the web is already automated,eg by web crawlers that offer price comparisonseg by web crawlers that offer price comparisons

Still, richer information on web sites could make this easier and more powerful.

sws2 44

Page 45: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Still more dynamic: Ajaxy j

Additi l it i ?Additional security worries?• more untrusted executable content• more complexitymore complexity• user less in control• even less clear who is responsible for HTTP requests:

the user or the asynchronously executing JavaScript?

sws2 45

Page 46: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Asynchronously interacting code executing in browser & serverexecuting in browser & server

what’s i

mafia.comgoing on behind my browser?

who is responsible for these

execution requests?

?complex mybank.com?complexweb browser

user actions& observation

HTTP requestsand responsescontaining XML

sws2 46

g

Page 47: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

overall trends

Two trends that seem unstoppable

• more complexity

• ever more dynamic content

Both are bad news for security...

sws2 47

Page 48: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

protocols & formatsprotocols & formats

sws2 48

Page 49: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

IP

IP (Internet Protocol) is the network-level protocol to route data from source node to destination node– on best effort basis: no guarantee that data will arrive

Most important transport layer protocols on top of IPMost important transport layer protocols on top of IP• TCP

– establishes connection, ie sequence of data packetsi t b t th t d d li i th i ht d– requires set-up, but then guaranteed delivery, in the right order

• UDP– connection-less, separate data packets– no set-up, by no delivery guarantees

Nodes are identified by IP addressesNodes are identified by IP addresses• 32 bit for IPv4, 128 bit for IPv6DNS protocol translates logical domain names to numeric IP addresses

sws2 49

Page 50: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

RFCs

Internet-related protocols and formats defined in RFCs(R t F C t )(Requests For Comments).RFCs become standards when approved by the Internet Engineering Task Force.g gThe World Wide Web Consortium (W3C) defines web-related standards.

E th ffi i l t d d f IP i d fi d i RFC 971Eg, the official standard for IP is defined in RFC 971 [http://www.ietf.org/rfc/rfc0791.txt]

NB there are many RFCs, and they can be quite complex!Eg. look up the definition of an email address in RFCs 5321, 5322, 3696 ( ith t i htt // f dit / t h h ? f 3696)(with errata in http://www.rfc-editor.org/errata_search.php?rfc=3696)and RFC 6531 for the international character extensions.

sws2 50

Page 51: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

URLs

A client starts a HTTP dialogue by giving a URL to his browserh //l i d@ dd t/ th/t / ? t i #f tscheme://login:password@address:port/path/to/resource?query_string#fragment1 2 3 4 5 6 7

1. scheme/protocol name, eg http, https, ftp, file, ...2. credentials: username and password (optional)3. address: IP address or DNS name4. port: port number on the server (optional)5 hierarchical path to the resource5. hierarchical path to the resource6. query string lists parameters param=value (optional)7. fragment identifier, eg offset inside web page (optional)7. fragment identifier, eg offset inside web page (optional)

Fragment id not sent to web server, but processed locally by browser.

sws2 51

Page 52: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

URI vs URL

Lots of confusion about the correct terminology• URL: Uniform Resource Locator• URL: Uniform Resource Locator• URI: Uniform Resource IdentifierIn most discussions about the web, these are effectively synonyms.

Strictly (pedantically) speaking, a URL is a special kind of URI.There are URIs that are not URLs: URNs (Uniform Resource Names)There are URIs that are not URLs: URNs (Uniform Resource Names), that specify a name of a resource, but not a location where to find it.

Classical example: ISBN 12920254909, which identifies a unique book, but not where to find it.

sws2 52

Page 53: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

HTTP

HTTP (Hypertext Transfer Protocol) d f i ti b t b b d bused for communication between web browser and web server

with HTTP requests and responses.

HTTP requests and responses always consists of three parts:1. request or response line2. header section3. entity body

The browser turns a URL a user types, or link he clicks, into an HTTP request

sws2 53

Page 54: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

HTTP requests

A request has the formMETHOD / th/t / ? t i HTTP/1 1METHOD /path/to/resource?query_string HTTP/1.1HEADER*BODY

HTTP supports many methods, but only two are important• GET for information retrieval

– body usually empty, as any parameters are encoded in the URLPOST for submitting information• POST for submitting information– body contains the submitted information

sws2 54

Page 55: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

HTTP response

A request has the formHTTP/1 1 STATUS CODE STATUS MESSAGEHTTP/1.1 STATUS_CODE STATUS_MESSAGEHEADER*BODY

Important status codes• 2XX: Success, eg 200 OK• 3XX: Redirection, eg 301 Moved Permanently

4XX: Client side error eg 404 Not Found• 4XX: Client side error, eg 404 Not Found• 5XX: Server side error, eg 500 Internal Server Error

sws2 55

Page 56: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

HTML

The body of an HTTP response typically consists of HTML (Hypertext Markup Language)(Hypertext Markup Language)

HTML combines• data: content and markup, eg <b> .. </b> for bold text• code: client-side scripting languages such as JavaScriptand can include tags for (pointers to) content from other web sites, eg• <href ..> to add clickable link• <img > to include an image<img ..> to include an image• <script ..> to include link to a script that is automatically

downloaded and executed

sws2 56

Page 57: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

forms in HTML

Forms in HTML allow user to pass parameters (aka a query string)in an HTTP requestin an HTTP request

<form method="GET" action= "http://ru.nl/register.php"> Name: <input type="text" name=“Your name"> Email: <input type="text" name=“Your email address"> <input type="submit" value=“Click here to submit"> p yp

</form>

sws2 57

Page 58: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

GET and POST

Two HTTP request methods: GET d t t i d t• GET: used to retrieve dataFor example, retrieve an HTML file

• POST: used to submit a request and retrieve an answerFor example, order a plane ticket

GET should be used for idempotent operations, ie. operations without side effects on the server, so that repeating them is , p gharmless.• The term idempotent comes from mathematics:

eg ro nding a n mber is idempotent sq aring it is noteg. rounding a number is idempotent, squaring it is not .

sws2 58

Page 59: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

GET vs POST

Query string (“parameters”) treated differently for GET and POST

• GET: query string is passed in URL

www.ru.nl/login_form.php?name=erik&passwd=secret

• POST: query string is passed in the body of the HTTP request

POST www bla com/login form phpPOST www.bla.com/login_form.phpHost www.ru.nlname=erik&passwd=secret

.

sws2 59

Page 60: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

GET vs POST

GET has parameters in URL POST has parameters in body

An attacker observing the network traffic can see parameters of both GET and POST requests. Still, there are differences:

GET requests POST requests• can be cached• can be bookmarked

end up in browser history

• are never cached• cannot be bookmarked

do not end up in browser• end up in browser history• should not be used for

sensitive data!

• do not end up in browser history

• have a maximum length • have no restrictions on length

sws2 60

Page 61: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

Looking at HTTP traffic and HTMLg

• You can view the raw HTML in your web browserEg in Firefox using View > Page SourceEg in Firefox, using View -> Page SourceTry this, if you have never done this.

• You can inspect HTTP requests and responses using tools such as OWASP WebScarab, which we will use in the lab assignments

sws2 61

Page 62: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

WebScarab as proxyy

web browser

web server

Web Scarab

HTTP requestsand responses

HTTP requestsand responses

user

sws2 62

Page 63: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

example HTTP response

HTTP/1.1 200 OK D t F i 11 A 2014 14 07 12 GMTDate: Fri, 11 Apr 2014 14:07:12 GMT Server: Zope/(2.13.10, python 2.6.7, linux2) ...Content-Language: nlg gExpires: Tue, 11 Sep 2014 14:07:12 GMTCache-Control: max-age=0, must-revalidate, private Content-Type: text/html;charset=utf-8 Content-Length: 5687 Set Cookie: keyword=value

NB information leakageb t b dSet-Cookie: keyword=value,...

<HTML> ....

about web server used

</HTML>

sws2 63

Page 64: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

example HTTP request

GET /oii/ HTTP/1.1H t l

NB information leakageabout browser used

Host: www.ru.nlConnection: keep-alive User-Agent: Mozilla/5.0 ... Firefox/3.5.9g / /Accept: text/html,application/xml...Referer: http://www.ru.nl/ Accept-Encoding: gzip,deflateAccept-Language: en-US,en;q=0.8 Accept Charset: ISO 8859 1 utf 8;q=0 7 *;q=0 3Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 Cookie: keyword=value...

sws2 64

Page 65: Software and Web Security deel 2 · Software and Web Security -1 & 2 Software is the main source of security vulnerabilities esp it ibli tkin systems accessible via a network •

For you to doy

• Get the book

• Read chapters 1, 5.1, and 7.1.1

• Try to install WebGoat and WebScarab on your PC or laptopSee links & info on the course webpage

Look at HTTP traffic generated by browsing athttp://www.cs.ru.nl/~erikpoll/sws2/index.hmtlhtt // l/ ik ll/ 2/dhttp://www.cs.ru.nl/~erikpoll/sws2/demohttp://www.cs.ru.nl/~erikpoll/sws2/demo/demo.hmtl

Observe that parameters end up in URL or body for GET and POST, and b th t h t ( h @ i il dd ) d dobserve that some characters (such as @ in email address) are encoded

sws2 65