swsec_fa06 - www

Download Report

Transcript swsec_fa06 - www

CSCI 530 Lab
Software Security
Software Security

In a sense, everything in security can fall
under the category of software security



Hardware needs software to do useful things
Firewalls, IDS, etc. are all software or comprise of
both hardware and software
For our purposes, we are talking about
securing an application that provides a
service for users

Normally web applications, but not limited
Operating Systems and
Security

Two considerations

Internal Security
 Protecting the system from running programs
 Examples



Accidentally modifying the ntuser.dat file using Microsoft Word
SubSeven trojan horse making system wide modifications
External
 Protecting the system from an external user or program
through the use of ports
 Examples:


Denial-of-Service Attacks
Port Scanners
Ports and Services

Ports are windows into the system

A program opens a port so that there can be
communication between that program and another system
 Example: Web Browsers



Runs on port 80
Allow communication between your system and a web server
What ports are open and what opens them?
 Last lab we ran nmap, which is a port scanner, and you
were able to see a report as to which ports were open and
what programs ran on those ports
 This is important because a hacker will try to break into
your system through an open port
Modern day hacking
techniques


We must understand how hackers think so we can
attempt to predict their actions and take the
appropriate precautions and countermeasures
Old school: break the operating system


Popular with Windows 95/98, earlier versions of 2000, old
versions of linux
 Operating systems were not built with security in mind
New school: break the application



Modern operating systems have security as a high priority
Easier to break a program running on a port than it is to
break the O.S.
 Example: breaking into apache using a cross-site script
Takes advantage of sloppy programming
How do we prevent modern
hackers

Keep your systems up-to-date


Do not run unnecessary programs


Service Packs, patches, etc.
They could open ports without you knowing
Regularly try to break into your systems


Using a technique called penetration testing
To be covered in the next lab
How do we protect our
software

Be better programmers 





Write your software with a security based mindset
Always validate input in multiple ways
Remove unnecessary code
Clean up your code for easy testing
Test, test, test!!!


Test all possible input ranges
Sloppy programming makes hacking systems
easier
This week’s lab



We are going to set up a webserver, running
a bank software
The software has some glaring holes, and
you are going to practice exploiting these
vulnerabilities
This lab is designed for you to understand the
necessity to be better programmers