+ All Categories
Home > Documents > CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Date post: 21-Dec-2015
Category:
View: 217 times
Download: 0 times
Share this document with a friend
Popular Tags:
21
CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan
Transcript
Page 1: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

CS 290C: Formal Models for Web Software

Lecture 1: Introduction

Instructor: Tevfik Bultan

Page 2: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Web software

• Web software is becoming increasingly dominant

• Web applications are used extensively in many areas:– Commerce: online banking, online shopping, …– Entertainment: online music, videos, …– Interaction: social networks

• We will rely on web applications more in the future:– Health records– Controlling and monitoring of national infrastructures

Page 3: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Web software

• Web software is also rapidly replacing desktop applications– software-as-service– cloud computing

• In the future most of the software applications we use will probably be web applications

Page 4: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Why are web applications so popular?

• Ease of access– You can access a web application from any computer

with an internet connection– A lot of them are free

• Centralized data storage– You do not need to keep carrying a memory stick with

you and keep copying files

• Easy to upgrade and maintain– Do not need to keep re-installing the new versions– Developers can update the software on the server side

Page 5: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Are there any problems?

• Web applications are not trustworthy!

• Web applications are notorious for security vulnerabilities

• Many web applications have navigation errors where they mishandle unexpected user requests

• As web applications are becoming increasingly dominant and as their use in safety critical areas is increasing, their trustworthiness is becoming a critical issue

Page 6: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Web applications are not secure

• There are many well-known security vulnerabilities that exist in many web applications. Here are some examples:– Malicious file execution: where a malicious user causes

the server to execute malicious code– SQL injection: where a malicious user executes SQL

commands on the back-end database by providing specially formatted input

– Cross site scripting (XSS): causes the attacker to execute a malicious script at a user’s browser

• These vulnerabilities are typically due to errors in user input validation or lack of user input validation

Page 7: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Web application vulnerabilities are common

Page 8: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Web applications are error prone

• Most web applications have navigation errors where an unexpected user request can cause a web application to

– display cryptic error messages

– display sensitive information that might be exploited by malicious users

– execute an unintended action

Page 9: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Navigation errors: Bamboo Invoice

Page 10: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Navigation errors: Bamboo Invoice

Page 11: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Navigation errors: Digitalus

Page 12: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Navigation errors: Digitalus

Page 13: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Navigation errors: Digitalus

Page 14: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Navigation errors: Orbitz

Customer enters the date and destination information to look for flights and receives a list of flight choices

Customer uses the “open link in new window” option to open a new window and study the details of an evening flight

Switching back to the original window, the customer inspects a morning flight.

After comparing the flight details, the customer decides to take the evening flight and switches to the window with the evening flight and presses the purchase button.

However, the reservation system instead selects the morning flight! If not careful, the customer will purchase the wrong flight.

Page 15: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Why are web applications error prone?

• Here are three main reasons that I think make web application development error prone:

– Interactivity

– Changeability

– Diversity

Page 16: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Interactivity

• Web applications are interactive applications– Many errors are due to improper handling of interactions

• User interaction is not under the control of the developer– The back button of the browser– The user can open a new window– The user can cut and paste the url

• There are interactions between different software components– browser, server, back-end database

• One web application can be integration of many applications– Mash-ups, web services

Page 17: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Changeability

• Web applications are updated frequently since the code resides on the server side

• This is convenient for uploading a new version when there is a change

• However, this is also a challenge, since frequent updates mean that each new version has to be checked against potential errors

Page 18: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Diversity

• Web applications are developed using a diverse set of languages and technologies. – On the server side: Java, Perl, PHP, Python, Ruby, …– On the client side: HTML, XML, JAvaScript, …– On the back-end database: SQL, Xquery, …

• There are many web application development frameworks (based on model-view-controller architecture)– Ruby: Ruby on Rails– PHP: CakePHP, Zend– Python: Django, Pylons– Java: Spring, Struts

Page 19: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

So what is this course about?

Formal Modelsstate machine models, logics, process algebras, …

Web Softwareruby, php, MVC frameworks, …

Analysis Toolsmodel checkers, theorem provers, …

Page 20: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Course topics

We will discuss papers on formal modeling of• Navigation constraints• interactions• Data model• Access control• Input validation

We will use some formal models• Hierarchical state machines (statecharts)• Relational modeling (Alloy)• Process algebras

We will use some analysis tools• Alloy analyzer• Spin model checker

Page 21: CS 290C: Formal Models for Web Software Lecture 1: Introduction Instructor: Tevfik Bultan.

Course work

• I will give several homeworks• There will be a class project (two student per project)

– Extract a formal model from an existing web application and analyze it using an analysis tool

– Two possibilities:• Extract a navigation model and analyze it using the

Spin model checker• Extract a data model and analyze it using the Alloy

analyzer• In the next lecture I will give some simple examples on how

this can be done


Recommended