2004-03-10-MACUL-TECHSIG2_VulnAssess-FINAL
Download
Report
Transcript 2004-03-10-MACUL-TECHSIG2_VulnAssess-FINAL
Vulnerability Assessments
Part 2
3/10/04
Mark Lachniet, Analysts International
Introductions
• Mark Lachniet, Technical Director of Analyst
International’s Security Services Group
• Technical lead developing for services,
methodology, quality control, technical presales
• Certified Information Systems Auditor (CISA)
from ISACA
• Certified Information Systems Security
Professional (CISSP) ISC^2
• Linux LPIC-1, Novell Master CNE, Microsoft
MCSE, Checkpoint CCSE, TruSecure ICSA, etc.
• Former I.T. director of Holt Public Schools
• Frequent speaker for local organizations
Agenda
•
•
•
•
•
•
•
•
•
Defining a Vulnerability Assessment
Defining Scope
Network Survey
Port Scanning
Vulnerability Research / Validation
Common Vulnerabilities
Industry Databases (CVE)
Web Application Security
Tools, products and information
Class Logistics
• Frequent breaks, maybe not 20 mins.
• I do not mind if you mess around with your
computers while I am talking, in fact I
encourage it - you are here because you want
to be
• Will attempt to do more hands-on exercises
and less talking
• Please speak up! This will be most useful if
you ask questions! Don’t wait for the end
• Consider finding a partner, especially one of
a higher or lower technical skill level
Class CD-ROM
• I have included a CD-ROM with many
tools and utilities on it
• Some of these we will use, some of
them we may not
• Most are 30-day expiring demos
• You should go to the web site(s)
yourself and download the software, so
you can get registered
Classroom Network
Presenter's Laptop
192.168.2.171
MACUL 2004
LAN
Linux hackers Laptop
192.168.2.172
CISCO AIRONET 350 SERIES
WIRELESS ACCESS POINT
Ethernet
USR 8054 AP
192.168.2.254
Windows Hacker Laptop
192.168.2.173
Student
192.168.2.100-170
Student
192.168.2.100-170
Student
192.168.2.100-170
Definition of a Vulnerability Assessment
Vulnerability assessment:
• The systematic examination of a system to identify
those critical infrastructures or related components
that may be at risk from an attack and the
determination of appropriate procedures that can be
implemented to reduce that risk.
• [The] systematic examination of an information
system (IS) or product to determine the adequacy
of security measures. identify security deficiencies,
provide data from which to predict the
effectiveness of proposed security measures, and
confirm the adequacy of such measures after
implementation. [INFOSEC-99]
Pen-Test vs. Vuln-Assessment
• This presentation is about doing a “vulnerability
assessment” or “penetration test” depending on your
terminology, primarily on Internet hosts
• Most people conceive of of a “Penetration Test” as being
labor intensive, with the explicit goal of finding some
way into the system, not “all ways”
• Conversely, a vulnerability assessment attempts to find
all known holes on all systems, not necessarily exploiting
them but identifying them, usually without tools
• Consider the metaphor of the house – a pen-test will
walk through the first door and call it done, while a
vulnerability assessment will try all doors and windows
and give you a complete report
About This Presentation
• This methodology comes from my own work at my
company, and is the basis of how we do things
• Many other companies offer similar services
• Many different methodologies and tools are available to
perform these types of assessment – for the public sector
you can also “partner” with someone else
• To take a vendor-neutral position, the work of the “Open
Source Security Testing Methodology Manual” can be
used to provide a baseline
• You can get this document for free from:
http://www.isecom.org/
• A Vulnerability Assessment methodology is only a start,
a good background in computer security is essential for
interpreting the results and doing something about it
Defining Scope
• Before beginning any work, you must carefully define
your scope:
–
–
–
–
–
Which machines to test (IP ranges or addresses)
Which machines to exclude
Which times are good and bad to perform testing
Are you going to test for Denial of Service susceptibility?
Contact information for both the tester and the testee. This
is needed in case there is a problem and the assessment
must be stopped
– Type of assessment to be done - Black Box (nothing is
known), Grey Box (some things are known), or White Box
(all things are known)
– This presentation assumes a Grey Box assessment
– Make sure you have legal rights to do the assessment!
Network Survey
• Perform some data collection to get the more information for
your assessment
• In a Black Box situation, you may have to get all of this
information the hard way, instead of just asking
• Ask the testee to identify all known hosts on the segment (be
prepared to find ones they didn’t know about)
• Find out what services are running on the hosts – this may
influence your methodology or tools (ie, heavily reliant on
Microsoft or UNIX platforms)
• Analyze network maps, with an emphasis on DMZ and
Internet-facing connections
• Analyze ‘whois’ and ARIN data to determine ownership of
domains, etc.
• Identify DNS information for the target (hostnames, mail MX
records, etc.)
Understanding TCP/IP
• Most Internet-connected hosts speak TCP/IP
Version 4
• TCP/IP Version 6 is available, and has a
much larger address space, as well as
enhanced security
• TCP/IP is generally referred to as including
related protocols such as ICMP and UDP
• It is important to know how TCP/IP and
related protocols work in order to secure
your hosts, firewalls and routers
TCP/IP and the OSI Model
• Note that Internet (IP) is lower and talks IP and ICMP
• TCP and UDP may be on top of IP (and others as well)
Understanding IP
• At the IP layer, we are concerned about hosts being
available - routing, congestion, etc.
• The IP layers uses ICMP (Internet Control
Message Protocol) packets to pass information
• The most common types of ICMP messages are:
– “0 Echo Reply” and “8 Echo” (used in ping)
– “3 Destination Unreachable” (sometimes used to
convey information from a higher layer, like UDP or
TCP ports or IP hosts not being available)
– “30 Traceroute” (used in traceroute)
– “5 Redirect” (used to indicate a better route)
• See http://www.iana.org/assignments/icmp-parameters
Understanding ICMP
• In order to understand what we have on our network,
it is useful to “ping” each IP in a range of potentially
live addresses
• This is known as a “ping sweep”
• Essentially, we are sending an ICMP Echo Request
to each IP address in a list or range, and hoping to
get an ICMP Echo Reply back
• If we get a reply, we assume that the host is live, and
connected to the Internet
• If we don’t get a reply, the host *may* not be live,
but it may also be behind a firewall, or have some
other type of protection
Activity #1: Ping Sweep with NMAP
• First install WinPCap 3.0 from the CD
• Then install NMAPNT to a directory
on your computer
• Once this is done, attempt to pingsweep our classroom network to find
out who is “live”
• nmap -v -sP 192.168.2.0/24
• Scroll up, see which hosts are live
• Did any host names resolve?
The 3-Way TCP Handshake
• One important TCP/IP concept to understand
is the TCP 3-way handshake
• TCP is a connection oriented protocol - both
the client and the server want to know when
a connection is open, and when it can be
closed
• The handshake is how a node will negotiate a
TCP connection with another node (for
example to get a web page or FTP transfer a
file)
The 3-Way TCP Handshake
TCP Port Scanning
• Once we know what hosts are live (via ICMP ping) we want
to know what services are available on the hosts (for example
25/STMP, 21/FTP, 80/WWW, 443/HTTPS, etc.)
• Every port is associated with a process or service. If the port
is open, the associated program is probably running
• Look for open, as well as closed and filtered ports. (filtered
implies a firewall or similar device dropped the packets
instead of allowing an “ICMP Port Unreachable” message.
Determines FW policy)
• Ports range from 1-65,535 for both TCP and UDP. That
means you could be testing > 130k ports.
• You must decide if you want to:
– test ALL ports (and hence have a better chance of finding
results, but also taking a very long time)
– Test a LIMITED number of ports (and hence possibly miss
something, but do it very quickly)
Activity#2: TCP Connect Scanning
• In this exercise, pick a partner (victim)
• Using just their IP address, we will do a
standard TCP connect scan of their computer
• Turn off personal firewalls (if any)
• nmap -v -sT 192.168.2.X -p 1-1024
• Note how long this takes…. Now try all TCP
ports!
• nmap -v -sT 192.168.2.X -p 1-65535
• Get coffee… and muffins…
• How long did it take? Bored yet?
Non-TCP Connect Scanning
• It is also possible to scan hosts without actually
completing the 3-way handshake
• This is faster, as we only need 2 packets, not 3
• It is also sneakier, as the target may not consider the
connection “made” until the final ACK arrives
• Thus, we may be able to scan a host without
generating any log entries at all
• This is also the basis of many Denial of Service
(DoS) attack - too many SYN packets can deplete
memory and network resources and cause problems
• With NMAP we may scan with the -sS or other
sneaky types of packet types
• Be warned, firewalls are hip to this trick
Useful TCP Scanning
• One great use of TCP port scanning is to quickly
identify services, especially when they just
discovered a new security flaw and you aren’t
sure which machines need updates
• For example:
– nmap -sT -p 80 192.168.2.X/24 (find all
machines running web servers)
– nmap -sT -p 5631 192.168.2.X/24 (find all
machines running PC Anywhere)
– nmap -sT -p 25 192.168.2.X/24 (find all
machines running a mail server)
• You get the idea...
ID System and Services
• Can use software such as nmap or queso to
identify the target systems operating system (due
to quirks in the vendor-specific implementation
of TCP/IP)
• Note that OS signatures can be spoofed
• Also, specific port sets are very common to
specific operating systems (e.g. port 445 is
almost always Windows 2000+)
• We can also fingerprint services, nmap default
• Connect to ports using a program such as Telnet
or NetCat to grab banners or other useful
information
Activity #3: Grabbing Banners
• In this case, we want to manually connect to
the web server to see what version it is
• telnet 192.168.2.171 80
• type the following (exactly)
• GET / HTTP/1.1
• Then hit “enter” twice
• This can be done for some (but not all)
services
• Also note that banners can (and should) be
changed to confuse and irritate hackers
UDP Port Scanning
• UDP is a connectionless protocol, so it is a little bit
harder to scan
• With a UDP scan, you send a packet to each UDP
port on a host, and if you *do* get a response back,
it is probably an “ICMP Port Unreachable” type
message, indicating failure
• It could also be that there is a firewall in the way that
is silently dropping UDP packets before the target
host sees them and replies with an ICMP message
• Even assuming that there *is* a listening service, it
might be tough to figure out which one, except based
on the port number
Activity #4: UDP Scanning
• Fortunately for us, there is no firewall in the
way, and we are using Windows boxes which
use UDP, so we should get good results
• Pick a victim and scan them:
• nmap -v -sU -p 1-1024 192.168.2.X
• Note the ever popular 137/UDP and
138/UDP for Windows NetBIOS networking
• If you ever see this on your public segment,
be very worried (and then go firewall it)
Vulnerability Scanning
• Once you have mapped your network, use a variety
(no less than two) of security scanning tools from
different sources to find vulnerabilities
• These tools typically have a database of
vulnerability signatures, just like anti-virus
• Ideally, the program will test every signature in its
database against every port (not just expected ports)
• This should find known (ie, documented and in the
signature database) vulnerabilities on the target
server
• Sometimes, single-purpose scripts must be used, or
signatures created for the tools
Vulnerability Scanning
• Regular updates of the signature database is
necessary
• Manual analysis of services, especially “odd”
ones is usually necessary – use the Internet to
look for vulnerabilities, discussion threads,
do google searches, check dshield.org,
incidents.org, etc.
• Just because a tool reports a vulnerability
doesn’t mean it is actually there! This is a
false positive
Vulnerability Verification
• Vulnerability Assessment tools typically operate on a
“chat” sequence – send something, get something
back, repeat as necessary and analyze
• This can lead to false positives if the software isn’t
intelligent enough to assess the information it gets
• False positives can also be tagged through reading
service banners, etc. (for example, what if someone
patched the source code flaw but was still at a “known
vulnerable” version of the software?)
• False positives are the bane of the security analyst, but
not nearly as embarrassing as false negatives
• In some cases, its necessary to manually test using
Telnet or other tools to determine if the vulnerability is
real
Example: Mail Relay
• One false positive that frequently comes up is that of an
open mail relay
• This means that a target mail server will forward email
from anyone, to anyone
• Spammers use this to send their junk mail without
getting caught
• Subscription services exist to find open relays, and then
ban them. This is great if you want to get less spam, but
not so great if your company gets on the list, since
subscribers won’t be able to get any email from your
company.
• Some mail servers are not exactly “obvious” about
whether they will relay or not. GroupWise will gladly
accept the email as if it was going to forward it, but then
silently stick it into a junk directory
Example: Mail Relay
>> telnet lachniet.com 25
<< 220 lachniet.hn.org ESMTP Sendmail 8.12.5/8.12.5; Mon, 17
Feb 2003 16:48:12 –0500
>> helo bigfake.com
<< 250 lachniet.hn.org Hello host64.lan.sequoianet.com
[207.73.216.64], pleased to meet you
>> mail from: [email protected]
<< 250 2.1.0 [email protected]... Sender ok
>> rcpt to: [email protected]
<< 550 5.7.1 [email protected]... Relaying denied
This is good! If you saw the following you would almost
certainly have an open mail relay! (or GroupWise)
<< 250 2.1.5 [email protected]... Recipient ok
Example: Mail Relay
• Essentially, we just did manually what every Internet
email program does automatically
• This technique is also known as “fakemail” since you
can make email appear to come from anyone or anything
• I sometimes like to harass friends with emails from
[email protected], and so on (its not actually illegal. Yet)
• This is also sometimes used to trick people – you would
probably open an attachment that seemed to come from
your spouse, but not from me
• Note that the BEST way of testing this is to make
yourself be the recipient. If you get an email in your
mailbox, then it is actually relaying
• This is what the ORDB service does, and there is really
no disputing their findings
Nessus
• The open-source Nessus Project is highly
regarded as a low-cost option
– Runs on UNIX/Linux operating systems
– Completely open-source for program and
vulnerability databases
– Customizable, possible to write your own NASL
signatures
– Provides for basic reporting, with ways to import into
a database for correlation and making pretty reports
– Nessus is updated frequently and actively supported
by the authors
– Runs through a client-server architecture – you may
have one central scanner and many clients
– Supports SSL web servers!
Nessus
• Nessus is (in my personal opinion) the best of the
vulnerability assessment tools, primarily because of
price!
• Nessus is used by just about everyone who does
vulnerability testing, either as the primary tool or the
supplemental tool
• Nessus is client-server based, and uses strong
encryption and authentication, and runs on UNIX
• Nessus has a database of over 2,000 known
vulnerabilities
• There are also flexible (if difficult to configure)
features such as reporting and modules
Nessus - Client Server
VICTIM#1
NESSUS CLIENT#1
The Internet
NESSUS CLIENT#2
VICTIM#2
NESSUS SERVER
• Nessus allows multiple simultaneous users, jobs, and
targets, so you can set up one Nessus server and let
multiple people use it
Nessus WX
• While Nessus runs on UNIX, it is possible to run a
Client on Windows
• This is particularly useful if you are not a UNIX
person, or if you like to quickly generate PDF
reports of findings
• Check out http://nessuswx.nessus.org/ for more
information
• It has most of the features, and is fairly user friendly
• You might consider setting up one Nessus box, give
your IT staff NessusWX clients, and ask them to
scan each server before being placed on the Internet
NeWT
• Unfortunately, we don’t have time to install nessus
on UNIX or Linux
• However, someone identified a commercial
opportunity and ported the Nessus server to the
Windows environment
• Check out Tenable software at
http://www.tenablesecurity.com/
• Although not free, it may well be cheaper than hiring
a UNIX geek to install and maintain it for you
• There are also a number of other products from
Tenable that are worth looking at
• They offer discounts for K-12, and the pricing is
reasonable for what you get!
Activity #5: Using NeWT
•
•
•
•
•
•
•
•
Install Newt from the CD-ROM
Run the plug-in update program
Run NeWT
Select “New Scan Task”
Type in your loopback IP “127.0.0.1”
Enable all but dangerous plugins
Run the scan
View the report - note references to CVE and
CAN, as well as links to more information
about the plugin and/or issue
Activity #6: Configuring NeWT
• Click on the “Configure NeWT” link
• (walkthrough of features)
• Click on the “Manage Plugins” link on the
left-hand side
• Not the ability to create and select
vulnerability profiles (this will cut your
scanning time down, but you may miss
something)
• You may also create host profiles such as “all
Internet hosts” or “all windows servers” to
make things easier
Common Vulnerabilities
• SANS.ORG has a list of the top 20 vulnerabilities at
http://www.sans.org/top20/
• Web server flaws that can lead to enhanced access
– Some will give you system/root access
– Some will only give you “nobody” or “guest”
– Usually from default/unpatched configurations
• FTP Servers
– Anonymous read-only access to sensitive files (such
as debug files used by developers!)
– Anonymous write access. Generally turns your server
into a “warez” host in short order
Common Vulnerabilities
• Windows NetBIOS vulns
– Open access to ports 135, 137, 139, 445, etc.
– Unrestricted or open file shares
– Anonymous session / null login (allows enumeration of a lot of
sensitive data)
– Poor or blank user passwords
– Also allows for popup ads, etc.
– Massive reconnaissance opportunities (last logon, etc.)
1. Microsoft SQL server
– A-la the “slammer” worm
– Never allow SQL to the Internet!
– Also found in the MSDE package (a desktop version of SQL
server that ships with many products)
– Easy to attack through web logic, so you need app security
LanGuard
• A great tool for Windows environments is LanGuard
from GFI
• This will do scans like Nessus, but is much more
aware of the Windows environment
• Given proper authorization, it will even check the
status of machines for patches, and help you to push
patches to those machines that need them*
• There is also scripting capability built into the
product, if you need more power or flexibility
• This may be a great way to keep all of those
Windows boxes up to date!
Activity #7: LanGuard
•
•
•
•
Install LanGuard from the CD-ROM
Check for updates and restart
Type in ‘127.0.0.1’ in the target box
View the results - its amazing what
Windows will tell you, isn’t it?
• Go to Scan->options, note the ability to
crack passwords
• Also allows you to set settings (such as
auditing) on multiple hosts at once,
reducing maintenance overhead
System Back Doors / Trojans
• Anything that can provide remote access
to a desktop is inherently dangerous
–
–
–
–
–
–
Windows Terminal Services
Citrix / Metaframe
AT&T’s Virtual Network Console (VNC)
Timbuktu
Back Orifice Trojan
Net Bus
• These can frequently be identified by the
known ports they operate on such as
31337
Documenting Vulnerabilities
• Once the vulnerabilities have been identified and
verified, they must be documented and fixed
• This documentation should include:
–
–
–
–
–
All hosts the the vulnerability
A detailed description of the vulnerability
Links to places with more information
Information on how to fix the problem
Some type of rating of the severity of the hole:
• High, medium, and low?
• Remote compromise or local compromise?
• Level of access granted through the hole (admin?)
• Information leakage?
• Then read the links, prioritize and go fix!
Use Industry Databases
• The most common one is the CVE at
http://cve.mitre.org
• Common Vulnerabilities and Exposures (CVE®) is:
• A list of standardized names for vulnerabilities and
other information security exposures — CVE aims
to standardize the names for all publicly known
vulnerabilities and security exposures.
–
–
–
–
A Dictionary, NOT a Database
A Community-Wide Effort
Freely Available for Review or Download
Currently has 2,223 vulnerabilities
Use Industry Databases
• CVE is useful because it provides a common
baseline for describing and correlating
vulnerabilities
– Gives a standard name, based on CVE entry
– This allows you to correlate results between multiple
tools that supply CVE entries
• Uses a review process to make sure that
entries are well considered
– Starts with a nomination as a CAN (didate)
– Is confirmed as a CVE (vulnerability) by the editorial
board
CVE Example
Creating the Toolkit
• Commercial Scanners give a certain level of
comfort, and are often well supported and robust
• Internet Security Systems (iss.net) has a number
of good (but very expensive) products:
– Internet Scanner (for typical Vuln Assessments)
– Database Scanner (for focused DB analysis)
– Wireless Scanner
• eEye.com has the Retina Network Security
Scanner that is pretty well regarded
Creating the Toolkit
• Other commercial vendors to consider:
–
–
–
–
–
–
Foundstone (www.foundstone.com)
Vigilante (www.vigilante.com)
NetIQ (www.netiq.com)
Latis (www.latis.com)
Gfi LanGuard (www.gfi.com)
Heat (www.heatscanner.com)
• Your mileage may vary – check for
reviews on the Internet, etc.
• Some of the best tools are actually free
Creating the Toolkit
• Create a list of security web sites that contain
information (and working attack scripts) for
vulnerabilities
• The best is: packetstormsecurity.org
• Others that are essential include:
– www.sans.org: A source for training, as well as
student papers and example security policies
– www.securityfocus.com: A general web site (now
owned by Symantec) that hosts a lot of discussion
lists (such as pen-test) Good for finding information
on specific products, etc.
Web Applications
• Where a conventional application requires physical
proximity and client software, web access is
intended to be accessible to the widest possible
audience
• As a result, they are typically open to the entire
Internet community
• It is logical to assume that the larger the user
community is, the more likely it is that someone may
choose to analyze the security of the application
• Due to the fact that a good hacker can effectively
cover their tracks and anonymously probe the
security of applications, there is very little risk to the
hacker to do so (as compared to an attack that
requires physical proximity)
• Thus, web applications may require more security
than others
Conceptual Overview of Web Apps
• Web applications are
generally developed
in Tiers
–
–
–
–
User / Client
Web Server
Business Logic
Database
• In many cases, the
database is the same
one that holds other
critical organizational
data!
Logical / Physical Overview
• Let us pretend that we are looking at a State of
Michigan web site (note: this is only pretending!!)
• The purpose of the web site is to allow “self service”
access to Human Resources information:
–
–
–
–
–
Pay stubs, deductions, direct deposit bank name
Demographic information
Emergency Contact information
Education
Dependants (names, ages)
• The application was written by a combination of
internal and external programmers
• The application was written in Microsoft .NET, and
communicates with the actual State of Michigan
Human Resources HRMN system
Logical / Physical Overview
Demonstrative Web
Application Diagram
Self Service
Web Server
Bad Person
DMZ Network
(Internet Accessible Machines)
The Internet
Internet Router
Company Firewall
Human Resources
Database
Internal Network
(Protected Machines)
Good Person
Implications
• In order for this all to work, the HRMN system
needs to trust the self service web application to
access data
• Thus, the program logic of the self service
application may be critically important, responsible
for ensuring that:
–
–
–
–
Users are properly authenticated
Users are authorized to use the system
Adequate logging of activity takes place
The Internet-facing components do not have known
security flaws
• In short, a part of the security of the human
resources database now lies in an Internet-facing
web application, possibly bypassing the more
established and mature database security
• What could possibly go wrong?
What Can Go Wrong???
• Frankly, a lot…..
• Secure programming practices have not really been
taught in higher education
• Productivity pressures have made security a
secondary priority
• A lot of insecure web sites have been implemented
• In fact, a recent study found that no less than 92% of
web pages surveyed over a 4-year period had serious
security flaws
http://www.vnunet.com/News/1152521
• Are you confident that your web site is within the
fortunate 8%?
• If you don’t have an explicit set of controls for
application development, security and ongoing
testing, you shouldn’t be!
Recent Example
• http://seattlepi.nwsource.com/national/apus_story.asp?cat
egory=1110&slug=Hackers%20State%20Computers
Friday, February 13, 2004 · Last updated 8:31 p.m. PT
SACRAMENTO, Calif. -- Hackers broke into a state
agency's server containing the sensitive personal
information of tens of thousands of people who work as
nannies, butlers, and gardeners, and those who employ
them.
The hackers gained access to employee's names, Social
Security numbers and wage records, and some employers'
Social Security numbers, Callori said.
• This is, unfortunately, more than enough information to
cause harm, such as identity theft
Types of Flaws in Web Applications
•
Lets look at the statistics from the
previously quoted article:
–
–
–
–
–
–
–
•
•
•
Cross-site scripting (80 per cent)
SQL injection (62 per cent)
Parameter tampering (60 per cent)
Cookie poisoning (37 per cent)
Database server (33 per cent)
Web server (23 per cent)
Buffer overflow (19 per cent)
My personal experience indicates that these
numbers are about right
Any one of these flaws could lead to a
disclosure of critical or protected data
Lets look at a few examples
Cross-Site Scripting
• Occurs when input from a user is not “sanitized”
before being re-displayed on a web site
• For example, an Internet guest book may allow you
to enter a message, along with the time and date that
you visited a web site
• It may be possible to craft this message in such a
way that users’ Internet browsers interpret the
message as HTML code, instead of plain text
• If this happens, person A can make it appear to
person B’s computer that a web site (presumably a
trusted one) is the source of a tricky attack
• This commonly used to do things like steal
authentication information, or redirect to a
“phishing” web site to harvest passwords, credit card
numbers or bank account numbers
Real Life Example of CSS
• While working for a customer, analyzing a well known
SSL VPN appliance, I discovered a CSS bug
• I then created a proof of concept to demonstrate this bug
• I created a (virtually) identical copy of the VPN server’s
login page, and put this on a server that I had control of
• I then created a special CSS web address (URL) that,
when entered, would redirect the user transparently to
this external web site
• The fake web site said “session has timed out, please log
in again” message, and had a place to log in again
• When the user entered their username and password on
the fake login, this information was written to disk on my
“hacker” computer, and the user was redirected back to
the *real* VPN server’s “incorrect password” page
• The end user would simply think that their session had
timed out, and that they had mis-typed their password
SQL Injection
• The next most common flaw, SQL injection, is worse
• In this case, a hacker would find a part of the application
code that did not perform proper input sanitization
• By passing special characters in form fields (e.g. a place
to type in a query or address) it is then possible to embed
additional commands for the HR database
• Since the application server is “trusted” by the back end
database, it assumes that the request is legitimate and
performs the query
• The “normal” results, as well as the database commands
entered by the hacker are displayed in the browser
• This attack can be used to completely bypass application
and database security
• In our working example, an identity thief hacker could
then print out the names, SSN#’s and addresses of all
employees and use this to steal their ID
Real Life Example of SQL Injection
• While analyzing a production Internet web site during a
WASA (Web Application Security Analysis) I discovered
a SQL injection flaw in the application code
• With this knowledge, I configured a program called “data
thief” to assist me in demonstrating the vulnerability
• Using data thief, I was able to copy the entire back-end
database, with all of the data, including usernames and
passwords, across the Internet to my computer
• Using this database of logins and passwords, I was able
to log in, and access the application as an administrator
• At that point, I also had the ability to run software on the
database server, which was on the internal, protected
network
• If I were a bad guy, I could have used this access to
compromise additional systems on the Internal network
Real Life SQL Injection Example
Other Web Application Risks
• There are a number of other risks that need to
be looked at:
–
–
–
–
Ability to bypass authentication systems
Ability to steal user “sessions”
Flaws in the underlying operating system / web server
Flaws in the “chain of trust” (relying on an additional
system for some security component such as a SSO
(Single Sign On) system)
– Flaws that allow a hacker to deny service to the
system (e.g. by using all of the licensed connections,
flooding the server, or causing a software crash)
– Reliance on client-side security (especially client-side
scripting)
• And so on….
How to Protect Your Organization
• There are several things you want to consider when
analyzing web applications:
– Has a design of the system been validated both by
app. Dev, DBA and I.T. security staff?
– Has an adequate System Development Life Cycle
(SDLC) been used throughout the project to promote
consistent and quality code?
– Have programmers been trained in secure
programming standards? Is there an internal Q.C.?
– Has a proper change control system been used to
develop and maintain the system?
– Has the system had a formal web application security
assessment? Is the system “hardened”? (many
internal and external resources can help with this)
Security Products – Web Application
• Although this is a relatively new area, a number of
products exist to assist an I.T. analyst
• One such product, the one that is used at Analysts
International, is “SPI WebInspect” from SPI
Dynamics, Inc.
• http://www.spidynamics.com
• This product is very flexible, and can save thousands
of hours of manual assessment time
• Can export pieces of data, print detailed reports, and
maintain full information about the scanning activity
that has occurred
• One of the better web application security tools
available, and reasonably priced
• As always, don’t take my word for it, do a product
evaluation of your own
Security Best Practices
• A lot of information is available for programmers,
auditors and I.T. staff on web application security issues
• The most referenced one is the Open Web Application
Security Project at http://www.owasp.org
• OWASP has specific guidelines for what programmers
should and shouldn’t do, as well as detailed information
on what the issues are and how they can be detected
• For more information on how to go about assessing an
application using accepted methods, check out “Open
Source Security Testing Methodology Manual” at
http://www.isecom.org/projects/osstmm.shtml
• A number of product-specific web sites for major vendors
also exist. A good one for both theory and practice for
Microsoft is at:
• http://www.microsoft.com/downloads/details.aspx?displaylang
=en&FamilyID=055FF772-97FE-41B8-A58C-BF9C6593F25E
Good Books!
• Any of the “Hacking Exposed” by Stuart McClure,
et al books are actually quite good
• They can be picked up in the average Barnes and
Noble / Borders book store
• Editions exist for NT, Windows 2000, and Linux
• Contain detailed, step-by-step instructions on how
the attacks work
• You should hack yourself! This is the best way to
understand how to do a vulnerability assessment
• Also, be warned, this information is out there for
anyone else to buy as well
Discussion
• This presentation to be available at:
http://lachniet.com/powerpoint
Mark Lachniet
CISSP, CISA, MCSE, MCNE, CCSE, LPIC-1, TICSA
Technical Director, Security Group
Analysts International
(517) 336-1004 (voice)
(517) 336-1100 (fax)
mailto: [email protected]