1 Divide and Conquer Real World Distributed Port Scanning Ofer Maor CTO Hacktics 16 Feb 2006 Hackers & Threats I, 3:25PM (HT1-302)
2 Introduction Divide and Conquer: Real World Distributed Port Scanning reviews conventional port scanning and distributed port scanning techniques, suggesting new approaches for implementing distributed port scanning in virtually any environment. After a short overview of port scanning we will examine the reasoning behind port scanning prevention and mechanisms which are used for such preventions. We will then proceed to reviewing existing distributed port scanning techniques, and their potential pitfalls, followed by a new approach for conducting distributed port scanning.
3 Introduction This presentation is all about live demonstrations discussed topics will be explained through actual execution of probes and scans. Today s Objectives: Prove that conventional port scanning prevention does not really prevent port scanning, but rather creates a false sense of security Provide security professionals with a new technique and a tool to conduct distributed port scans The new technique as well as the tool presented today are the result of research done at Hacktics research labs, focusing on developing new techniques for identifying potential vulnerabilities.
4 Port Scanning Overview Port Scanning is the process of identifying some or all open ports (listening services) on one or more hosts. Usually conducted using automated tools, which can quickly scan through the entire potential port range ( ) of a server or search for selected common or expected ports. It is a crucial part of the attack s reconnaissance phase, and is one of the first tasks done by an attacker when attempting to break into a machine. Free and commercial port scanners are widely available, varying in supported features, user interface and environment. The NMap scanner is probably the most common scanner in use.
5 Port Scanning Overview Port Scanning in general, and NMap specifically, are so popular that even the creators of Matrix used it
6 Port Scanning Overview Port Scanning is normally done by going over all (or some) TCP and/or UDP ports and checking the status of each port by attempting to communicate with it. With TCP scanning, three potential responses are available: If an entire TCP handshake has been completed the port is open. If the server refuses the connection the port is closed. If no response at all is received (or if the firewall rejected the request) the port is filtered. Similarly, half-open scanners that examine only the second phase of the handshake (SYN/ACK or RST/ACK) can be used for stealthier scanning, as can different scanning techniques based on various TCP/IP stack anomalies.
7 Port Scanning Prevention With the growing popularity of port scanning, many organizations felt the need to create protection against it (rather than solving the true problem at hand). This functionality is provided by various Intrusion Detection (or Prevention) Systems, known as IDS/IPS. These systems are capable of identifying multiple connection requests from a single host and block the IP address of this host. Most modern IDS/IPSs, including open source solutions such as Snort, are capable of providing a working mechanism to protect against conventional port scanning.
8 Divide and Conquer: Distributed Port Scanning In order to overcome port scanning protection, the next step in the evolution of the attack was the distributed approach.. The idea behind Distributed Port Scanning is to split the effort of the port scanning, having each host probe only few ports, thus not getting blocked by the system. The gap between theory and practice, however, lies in the ability to control hundreds or thousands of hosts to perform this attack for the hacker or for the auditor. Real hackers do not consider this a real problem, as they can gain access to a zombie network which can be controlled for a variety of purposes, including such scanning.
9 Divide and Conquer: Distributed Port Scanning Studies from last years show that large zombie networks can be purchased for 2,000-3,000$. Smaller networks are available for 500$ as well. Tools such as DScan and Unicorn can then be used for deploying the port scanning over the network
10 The Auditor s Problem Security professionals, such as auditors and pentesters, can not rely on zombies to do the work, as running such a zombie network is highly unethical, as well as illegal in most countries. As a result, most penetration tests and audits fail to work around port scanning protection mechanisms, providing the customers with a false sense of security.
11 The FTP Bounce Solution A workaround to this problem appeared in the form of the FTP Bounce Attack. This attack allows taking advantage of a feature of the FTP protocol, allowing a client connecting to an FTP server to instruct it to connect to a third machine on an arbitrary port. This behavior provided an opportunity for a wide variety of attacks, including the execution of distributed port scanning. Modern FTP servers are no longer vulnerable to FTP Bounce attacks (and most firewalls block them as well). While this is generally positive, it unfortunately prevents security experts from using this behavior to conducting distributed port scanning.
12 The Idle Scan Solution A similar workaround to this problem appeared later on in the form of the Idle scan. This type of scan takes advantage of the common behavior of IP stack implementation, which increment an identifier known as the fragment identification by one for every packet they send. It is therefore possible to spoof a packet supposedly originating from a 3 rd party host, then examining the fragment identification of that host (if the port answered back to the host, this number will be incremented). Like with FTP Bounce, however, most modern operating systems have fixed this behavior, and any existing firewalls will not allow performing such enumeration in the first place.
13 Finding a Widely Available Resource The solution to distributed port scanning must therefore present itself using a resource complying to the following criteria: Widely Available To ensure that a large network can be easily created, evading the most sensitive port scanning protection. Free To guarantee that anyone wishing to perform such an assessment is capable of doing so. Legal Does not require the auditor to perform hostile acts against hosts on the internet. Luckily, such resources are available for use on the internet Free HTTP Proxies.
14 Free HTTP Proxies
15 Real World Distributed Port Scanning Using HTTP Proxies, it is therefore possible to achieve a real world solution for the auditor problem, allowing easy execution of distributed port scanning. The HTTP proxy based scanning can be achieved in one of two main techniques: Via HTTP CONNECT requests Easy, but rare. Via HTTP GET requests - By utilizing HTTP Proxy Response Fingerprinting.
16 HTTP CONNECT Scan The CONNECT method is part of the HTTP RFC and is designed to allow tunneling of traffic which can not be normally proxied, such as HTTPS data. The usage of CONNECT as a port scanner is trivial The proxy is contacted, and a CONNECT request is being sent to the proxy, requesting it to connect to the probed port. If the port is available, the following response is presented, identifying it as an open port: HTTP/ Connection established Proxy-agent: Apache/ (Unix) (Red Hat/Linux) mod_ssl/2.6.6 OpenSSL/0.9.5a PHP/4.0.1pl2
17 HTTP CONNECT Scan Alternatively, the proxy will return a Connection Refused or Gateway Timeout error to indicate that the port was not available. By using CONNECT probing it is therefore possible to identify the 3 possible states of the port: Opened, Closed or Filtered. While the HTTP Proxy Port Scanner Tool supports HTTP CONNECT requests, this type of scan can not be relied upon, due to two key factors Many free proxies will not support the CONNECT method at all Even those that do support it, will usually only allow connecting to specific ports, and will therefore be of little value for our cause.
18 HTTP Proxy Response Fingerprinting The HTTP method supported by virtually all free proxies is GET While GET requests are not aimed at performing a TCP connect at the remote host, they do however connect as part of the process, and can also be used to connect to non standard ports by providing the port number after the host name, such as By relying on this functionality, it is possible to effectively instruct the proxy to connect to remote hosts using arbitrary ports. While the response is not clear as with the CONNECT requests, it is possible to determine the port status by fingerprinting the response code, headers and body.
19 HTTP Proxy Response Fingerprinting Like other fingerprinting mechanisms, such as OS fingerprinting or HTTP Server fingerprinting, the basic idea was to map out the behavior of common proxy servers available on the internet when attempting to connect to various types of open, closed and filtered ports. After analyzing the list of given proxies, it is possible to run the same tests against scanned machines, identifying open ports, while distributing the test between the thousands of different free proxies. Following is a sample behavior analysis of the popular Squid proxy.
20 HTTP Proxy Response Fingerprinting Response I: HTTP/ OK Location: SomeSite Content-Type: text/html Server: Microsoft-IIS Content-Length: 214 Date: Mon, 13 Jun :07:58 GMT Identification: Tested port is open and runs an HTTP server.
21 HTTP Proxy Response Fingerprinting Response II: +OK Welcome to MailEnable POP3 Server -ERR Unknown command -ERR Unknown command -ERR Unknown command -ERR Unknown command -ERR Unknown command -ERR Unknown command Identification: Tested port is open and runs a POP3 Server. Most other non HTTP open ports will behave similarly.
22 HTTP Proxy Response Fingerprinting Response III: 220 domain.com ESMTP MailEnable Service, Version: ready at 04/20/05 21:25: Bad sequence of commands 503 Bad sequence of commands 503 Bad sequence of commands 503 Bad sequence of commands 503 Bad sequence of commands 503 Bad sequence of commands Identification: Another normal open port was identified. Note that the 503 string should not be confused for a proxy response code.
23 HTTP Proxy Response Fingerprinting Response IV: HTTP/ Service Unavailable Server: Squid/2.3.STABLE1 Mime-Version: 1.0 Date: Mon, 13 Jun :29:56 GMT Content-Type: text/html Content-Length: 711 Expires: Mon, 13 Jun :29:56 GMT X-Squid-Error: ERR_CONNECT_FAIL 111 X-Cache: MISS from proxy Proxy-Connection: close Identification: This indicates that the port is closed. The body provides even additional supporting data:
24 HTTP Proxy Response Fingerprinting While trying to retrieve the URL: <A HREF=" <P> The following error was encountered: <UL> <LI> <STRONG> Connection Failed </STRONG> </UL> <P> The system returned: <PRE><I> (111) Connection refused</i></pre> <P> The remote host or network may be down. Please try the request again. <P>Your cache administrator is <A HREF="mailto:root mailto:root">root</a>.
25 HTTP Proxy Response Fingerprinting Response V: HTTP/ Gateway Time-out Server: Squid/2.3.STABLE1 Mime-Version: 1.0 Date: Mon, 13 Jun :34:31 GMT Content-Type: text/html Content-Length: 697 Expires: Mon, 13 Jun :34:31 GMT X-Squid-Error: ERR_CONNECT_FAIL 110 X-Cache: MISS from proxy Proxy-Connection: close Identification: This indicates that the port is filtered. Similarly, additional supporting data can be extracted from the body.
26 HTTP Proxy Response Fingerprinting As can be easily seen from these cases, Squid s behavior is easy to fingerprint in order to use it as a port scanner: When the data returned is a valid HTTP response with 503 as its response code, the port is Closed. When the data returned is a valid HTTP response with 504 as its response code, the port is Filtered. (Note that unlike with NMap scanning, filtered only applies to dropped requests) When the data returned is not an HTTP response, or is an HTTP response with a different code, the port is Open. Similarly, other common proxies can be fingerprinted to identify different responses according to the status of probed ports.
27 Fingerprinting Pitfalls The main problem when performing such probing are limitations presented by the proxy itself. Some proxies allow port 80 only Some proxies allow port 80 and high ports only Some proxies allow only other specific ports In such case the proxy returns an error or simply ignores the request. Additionally, some proxies may not have as distinct fingerprints as Squid does, making differentiation between closed and filtered ports harder.
28 Fingerprinting Pitfalls And some more proxy (pit)falls Proxy Falls, Willamette National Forest, Oregon
29 Distributed Proxy Port Scanning Tool Moving from theory to practice Hacktics Distributed Proxy Port Scanning Tool The tool allows auditors and security professionals to perform a distributed port scan, through automation of the entire process: Identifying free available HTTP proxies Checking whether identified proxies can be used for port scanning Identifying the relevant fingerprints of proxies in the list Executing a port scan against a list of all (or selected) TCP ports, through distribution of requests between all proxies Tool Demonstration
30 Additional Potential Use Using a similar framework, it is possible to: Perform distributed vulnerability scanning, defeating IDS IP-based aggregation Distribute web application attacks, thwarting off all IP-based protection and aggregation Test for weaknesses against distributed denial of service attacks Future Release: Proxy Distributor Tool A proxy utility running on the local computer, which distributes all HTTP activity.
31 Conclusion Using IDS to prevent port scanning provides false sense of security against focused attacks. Similarly, all aggregated IP based blocking can easily be overcome by distributed means. Effective protection must come in the form of a hardened environment, which does not rely on obscurity for achieving security and will not be put under a threat by a mere port scan. Moreover, performing IP based blocking allows hackers to easily cause denial of service attacks of commercial proxies. Using the new techniques presented, identifying weaknesses to distributed attacks is no longer the domain of malicious hackers, and can now be conducted by security professionals.
33 Additional Information The detailed paper which this presentation was based on, as well as the tool presented during the presentation can be found at: For additional information or discussion of these topics, feel free to contact us:
Port Scanning and Vulnerability Assessment ECE4893 Internetwork Security Georgia Institute of Technology Agenda Reconnaissance Scanning Network Mapping OS detection Vulnerability assessment Reconnaissance
Passive Network Traffic Analysis: Understanding a Network Through Passive Monitoring Kevin Timm, Network IDS devices use passive network monitoring extensively to detect possible threats. Through passive
Linux Network Security Course ID SEC220 Course Description This extremely popular class focuses on network security, and makes an excellent companion class to the GL550: Host Security course. Protocols
Computer Fraud & Security, May 2007 page 1/10 From Network Security To Content Filtering Network security has evolved dramatically in the last few years not only for what concerns the tools at our disposals
Learn Ethical Hacking, Become a Pentester Course Syllabus & Certification Program DOCUMENT CLASSIFICATION: PUBLIC Copyrighted Material No part of this publication, in whole or in part, may be reproduced,
HTTP Fingerprinting and Advanced Assessment Techniques Saumil Shah Director, Net-Square Author: Web Hacking - Attacks and Defense BlackHat 2003, Washington DC The Web Hacker s playground Web Client Web
A quick theorical introduction to network scanning January 8, 2016 Disclaimer/Intro Disclaimer/Intro Network scanning is not exact science When an information system is able to interact over the network
WHITE PAPER FortiGate DoS Protection Block Malicious Traffic Before It Affects Critical Applications and Systems Abstract: Denial of Service (DoS) attacks have been a part of the internet landscape for
A VULNERABILITY AUDIT OF THE U.S. STATE E-GOVERNMENT NETWORK SYSTEMS Dr. Jensen J. Zhao, Ball State University, firstname.lastname@example.org Dr. Allen D. Truell, Ball State University, email@example.com Dr. Melody W. Alexander,
Evading Infrastructure Security Mohamed Bedewi Penetration Testing Consultant What infrastructure security really means? Infrastructure Security is Making sure that your system services are always running
Playing with Web Application Firewalls DEFCON 16, August 8-10, 2008, Las Vegas, NV, USA Who is Wendel Guglielmetti Henrique? Penetration Test analyst at SecurityLabs - Intruders Tiger Team Security division
Remote Network Analysis Torsten Hoefler firstname.lastname@example.org (DMZ), mostly between two packet filters and application gateways. The different possibilities to connect DMZ-hosts are also shown in Figure
Network Technologies Glenn Strong Department of Computer Science School of Computer Science and Statistics Trinity College, Dublin January 28, 2014 What Happens When Browser Contacts Server I Top view:
An Introduction to Nmap with a Focus on Information Gathering Ionuț Ambrosie January 12, 2015 During the information gathering phase of a penetration test, tools such as Nmap can be helpful in allowing
Page 1 of 6 My FreeScan Vulnerabilities Report Print Help For 184.108.40.206 on Feb 07, 008 Thank you for trying FreeScan. Below you'll find the complete results of your scan, including whether or not the
Firewalls, Tunnels, and Network Intrusion Detection 1 Part 1: Firewall as a Technique to create a virtual security wall separating your organization from the wild west of the public internet 2 1 Firewalls
Introduction of Intrusion Detection Systems Why IDS? Inspects all inbound and outbound network activity and identifies a network or system attack from someone attempting to compromise a system. Detection:
Some IPS systems can be easily fingered using simple techniques. The unintentional disclosure of which security devices are deployed within your defences could put your network at significant risk. Security
SE 4C03 Winter 2005 Firewall Design Principles By: Kirk Crane Firewall Design Principles By: Kirk Crane 9810533 Introduction Every network has a security policy that will specify what traffic is allowed
A firewall is a software- or hardware-based network security system that allows or denies network traffic according to a set of rules. Firewalls can be categorized by their location on the network: A network-based
INFOSECURITY WITH PLYMOUTH UNIVERSITY TESTING OUR SECURITY DEFENCES Dr Maria Papadaki email@example.com 1 1 Do we need to test our defences? Can penetration testing help to improve security?
CSE331: Introduction to Networks and Security Lecture 12 Fall 2006 Announcements Midterm I will be held Friday, Oct. 6th. True/False Multiple Choice Calculation Short answer Short essay Project 2 is on
보안공학연구논문지 (Journal of Security Engineering), 제 5권 제 5호 2008년 10월 A Study on The Information Gathering Method for Penetration Testing Adrian Stoica 1) Abstract Information gathering is the initial stage
Web Application Threats and Vulnerabilities Web Server Hacking and Web Application Vulnerability WWW Based upon HTTP and HTML Runs in TCP s application layer Runs on top of the Internet Used to exchange
CS 665: Computer System Security Network Security Bojan Cukic Lane Department of Computer Science and Electrical Engineering West Virginia University 1 Usage environment Anonymity Automation, minimal human
Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Module No. # 01 Lecture No. # 40 Firewalls and Intrusion
TCP SYN Flood - Denial of Service Seung Jae Won University of Windsor firstname.lastname@example.org Abstract TCP SYN flooding attack is a kind of denial-of-service attack. This SYN flooding attack is using the weakness
MONITORING OF TRAFFIC OVER THE VICTIM UNDER TCP SYN FLOOD IN A LAN Kanika 1, Renuka Goyal 2, Gurmeet Kaur 3 1 M.Tech Scholar, Computer Science and Technology, Central University of Punjab, Punjab, India
Application Denial of Service Is it Really That Easy? Shay Chen Agenda Introduction to Denial of Service Attacks Application Level DoS Techniques Case Study Denial of Service Testing Mitigation Summary
Firewalls, Tunnels, and Network Intrusion Detection 1 Firewalls A firewall is an integrated collection of security measures designed to prevent unauthorized electronic access to a networked computer system.
Firewall August, 2003 1 Firewall and Access Control This product also serves as an Internet firewall, not only does it provide a natural firewall function (Network Address Translation, NAT), but it also
Firewalls and Intrusion Detection What is a Firewall? A computer system between the internal network and the rest of the Internet A single computer or a set of computers that cooperate to perform the firewall
Course Title: Penetration Testing: Security Analysis Page 1 of 9 Course Description: The Security Analyst Series from EC-Council Press is comprised of five books covering a broad base of topics in advanced
Firewalls, NAT and Intrusion Detection and Prevention Systems (IDS) Internet (In)Security Exposed Prof. Dr. Bernhard Plattner With some contributions by Stephan Neuhaus Thanks to Thomas Dübendorfer, Stefan
Course Introduction Enterprises all over the globe are compromised remotely by malicious hackers each day. Credit card numbers, proprietary information, account usernames and passwords, and a wealth of
the Availability Digest @availabilitydig Surviving DNS DDoS Attacks November 2013 DDoS attacks are on the rise. A DDoS attack launches a massive amount of traffic to a website to overwhelm it to the point
Questions 1. When will an IP process drop a datagram? 2. When will an IP process fragment a datagram? 3. When will a TCP process drop a segment? 4. When will a TCP process resend a segment? CP476 Internet
Proxy Server, Network Address Translator, Firewall 1 Proxy Server 2 1 Introduction What is a proxy server? Acts on behalf of other clients, and presents requests from other clients to a server. Acts as
Looking for Trouble: ICMP and IP Statistics to Watch Laura Chappell, Senior Protocol Analyst Protocol Analysis Institute [email@example.com] www.packet-level.com www.podbooks.com HTCIA Member,
Detection of illegal gateways in protected networks Risto Vaarandi and Kārlis Podiņš Cooperative Cyber Defence Centre of Excellence Tallinn, Estonia firstname.lastname@example.org 1. Introduction In this
8 steps to protect your Cisco router Daniel B. Cid email@example.com Network security is a completely changing area; new devices like IDS (Intrusion Detection systems), IPS (Intrusion Prevention
Session Hijacking Exploiting TCP, UDP and HTTP Sessions Shray Kapoor firstname.lastname@example.org Preface With the emerging fields in e-commerce, financial and identity information are at a higher risk of being
Networks, the Internet Tool support CS2107 Introduction to Information and System Security (Slide set 8) National University of Singapore School of Computing July, 2015 CS2107 Introduction to Information
HONEYPOT SECURITY February 2008 The Government of the Hong Kong Special Administrative Region The contents of this document remain the property of, and may not be reproduced in whole or in part without
Ethical Hacking as a Professional Penetration Testing Technique Rochester ISSA Chapter Rochester OWASP Chapter - Durkee Consulting, Inc. email@example.com 2 Background Founder of Durkee Consulting since 1996
Medical Device Security Health Imaging Digital Capture Security Assessment Report for the Kodak Capture Link Server V1.00 Version 1.0 Eastman Kodak Company, Health Imaging Group Page 1 Table of Contents
Unless you've been living under a rock for the past few years, it is quite evident that software vulnerabilities are being found and announced quicker than ever before. Every time a security advisory goes
Technical Paper The Nexpose Expert System Using an Expert System for Deeper Vulnerability Scanning Executive Summary This paper explains how Rapid7 Nexpose uses an expert system to achieve better results
INTRODUCTION TO FIREWALL SECURITY SESSION 1 Agenda Introduction to Firewalls Types of Firewalls Modes and Deployments Key Features in a Firewall Emerging Trends 2 Printed in USA. What Is a Firewall DMZ
Intrusion Detection Systems and Supporting Tools Ian Welch NWEN 405 Week 12 IDS CONCEPTS Firewalls. Intrusion detection systems. Anderson publishes paper outlining security problems 1972 DNS created 1984
Vulnerability Assessment and Penetration Testing CC Faculty ALTTC, Ghaziabad Need Vulnerabilities Vulnerabilities are transpiring in different platforms and applications regularly. Information Security
DoS/DDoS Attacks and Protection on VoIP/UC Presented by: Sipera Systems Agenda What are DoS and DDoS Attacks? VoIP/UC is different Impact of DoS attacks on VoIP Protection techniques 2 UC Security Requirements
Network Security CS 192 Network Scanning (Idlescan) Department of Computer Science George Washington University Jonathan Stanton 1 Today s topics Discussion of new DNS flaws Network Scanning (Idlescan)
ASV Scan Report Attestation of Scan Compliance Scan Customer Information Company: David S. Marcus, Ph. D Approved Scanning Vendor Information Company: ComplyGuard Networks Contact: Contact: Support Tel:
CYBER ATTACKS EXPLAINED: PACKET CRAFTING Protect your FOSS-based IT infrastructure from packet crafting by learning more about it. In the previous articles in this series, we explored common infrastructure
Payment Card Industry (PCI) Executive Report 10/27/2015 ASV Scan Report Attestation of Scan Compliance Scan Customer Information Approved Scanning Vendor Information Company: Rural Computer Consultants
Footprinting and Reconnaissance Tools Topic 1: Common Port Scanning Techniques Do some research on computer ports that are most often scanned by hackers. Identify a port scanning exploit that is interesting
Firewalls Netasq Security Management by NETASQ 1. 0 M a n a g e m e n t o f t h e s e c u r i t y b y N E T A S Q 1 pyright NETASQ 2002 Security Management is handled by the ASQ, a Technology developed
Agenda Richard Baskerville P Principles of P Terms & -based Tracing P Application Layer Analysis P Lower Layer Analysis Georgia State University 1 2 Principles Kim, et al (2004) A fuzzy expert system for
Internet Technologies World Wide Web (WWW) Proxy Server Network Address Translator (NAT) What is WWW? System of interlinked Hypertext documents Text, Images, Videos, and other multimedia documents navigate
Complex (many objects) ) Web Page with HTTP/1.0 Why HTTP needed extensions? A taste of HTTP v1.1 additions HTTP v1.1: introduces many complexities no longer an easy protocol to implement Data Transm. Time
REPORT ON AUDIT OF LOCAL AREA NETWORK OF C-STAR LAB Conducted: 29 th March 5 th April 2007 Prepared By: Pankaj Kohli (200607011) Chandan Kumar (200607003) Aamil Farooq (200505001) Network Audit Table of
Page 1 of 5 1. Introduction The present document explains about common attack scenarios to computer networks and describes with some examples the following features of the MilsGates: Protection against
Topic 3: Lesson 2 Intro to Firewalls Summary Basic questions What is a firewall? What can a firewall do? What is packet filtering? What is proxying? What is stateful packet filtering? Compare network layer
Final exam review, Fall 2005 FSU (CIS-5357) Network Security Instructor: Breno de Medeiros 1. What is an insertion attack against a NIDS? Answer: An insertion attack against a network intrusion detection
IMPLEMENTATION OF INTELLIGENT FIREWALL TO CHECK INTERNET HACKERS THREAT Roopa K. Panduranga Rao MV Dept of CS and Engg., Dept of IS and Engg., J.N.N College of Engineering, J.N.N College of Engineering,
Chapter 11 Cloud Application Development Contents Motivation. Connecting clients to instances through firewalls. Chapter 10 2 Motivation Some of the questions of interest to application developers: How