Introduction

advertisement
Network Security Audit
A thesis presented by
LIU David
University of Plymouth, Plymouth, United Kingdom
Supervised By
Dr. Bogdan Ghita
Network Research Group, University of Plymouth, Plymouth, United Kingdom
Submitted to the Faculty of Technology of the
University of Plymouth in partial fulfillment
of the requirements for the degree of
MASTER OF SCIENCE IN NETWORK SYSTEMS ENGINEERING
September 2005
School of Computing, Communications and Electronics
Abstract
With the increase of broadband connections users, the number of home computers has
increased importantly. As a consequence security issues have gained in importance in this
domain. Most of these new computer users are novice and do not have the knowledge to
understand exactly the repercussion of their actions in term of security on their machines.
Software companies have developed several products to protect these stand alone computers.
Some of them are designed to produce security audits which evaluate the security risk of the
Personal Computer (PC).
Unfortunately, even with these audit programs, users do not become aware of the danger they
can face on Internet. This project has developed a security audit tool which is intended for
novice computer users. This tool’s objective is to evaluate the materiel security level and the
behaviour security risk of the user. Furthermore to be sure of the users’ understanding, this
tool also contains some explanation and demonstration elements, which show them how a
malicious person can exploit their lack of prudence.
2
Acknowledgements
The author would like to thank Dr. Bogdan Ghita, member of the Network Research Group at
the University of Plymouth, for his help and his availability during the whole project.
The author would like to thank M.Coste Pierre-Alain, Ms Uy Lyna, and M. Abrard Anicet for
their constant help, advices and encouragements during this project.
The author would like to thank all staff members of the University of Plymouth for their help
in this project.
3
Table of Contents
……………………………………………………………………...2
Abstract
Acknowledgements ............................................................................................... 3
Table of Contents .................................................................................................. 4
Table of figures ..................................................................................................... 7
Introduction ……………………………………………………………………...8
Objectives……………. ......................................................................................... 9
Background.. ....................................................................................................... 10
Chapter 1 Current Environment .......................................................................... 12
1.1
Existing audit software .......................................................................................... 12
1.1.a
1.1.c
1.1.d
1.2
Security risks .......................................................................................................... 16
1.2.a
1.2.b
1.2.c
1.3
Confidentiality .................................................................................................. 16
Integrity ............................................................................................................ 16
Availability ....................................................................................................... 16
Hacking tools .......................................................................................................... 17
1.3.a
1.3.b
1.3.c
1.3.d
1.3.e
1.3.f
1.3.g
1.3.h
1.3.i
1.4
Nessus............................................................................................................... 12
GFI LAN scanner……………………………………………………………..14
MBSA (Microsoft Baseline Security Analyser): ............................................. 15
Password cracking ............................................................................................ 17
Packet and password Sniffing .......................................................................... 17
Trojan horses .................................................................................................... 18
Backdoors ......................................................................................................... 18
Internet Worms ................................................................................................. 18
Mobile Code ..................................................................................................... 19
Port Scanner ..................................................................................................... 19
Key logger ........................................................................................................ 19
Denial of services (DOS) ................................................................................. 20
Protection mechanisms .......................................................................................... 21
1.4.a
1.4.b
1.4.c
1.4.d
Firewall............................................................................................................. 21
Antivirus ........................................................................................................... 22
Patches .............................................................................................................. 22
Passwords ......................................................................................................... 23
4
Chapter 2
Important issues .............................................................................. 24
Chapter 3
Project approach ............................................................................. 26
3.1
3.2
3.3
3.4
3.5
3.6
Research .................................................................................................................. 26
Conception .............................................................................................................. 26
Human aspect ......................................................................................................... 27
The Technology ...................................................................................................... 27
The architecture ..................................................................................................... 27
The audit programs ................................................................................................ 29
1.6.a
1.6.b
Chapter 4
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
Achievement ................................................................................... 40
Achievement ............................................................................................................ 40
Limitations .............................................................................................................. 41
Chapter 6
6.1
6.2
6.3
Implementation ............................................................................... 31
The port scanner..................................................................................................... 31
The antivirus tester ................................................................................................ 33
The MCQ ................................................................................................................ 34
The password tester ............................................................................................... 35
The Key logger ........................................................................................................ 36
Explanation pages .................................................................................................. 37
Java requirement .................................................................................................... 37
Feedback and Profiling .......................................................................................... 38
Chapter 5
5.1
5.2
Material audit tools........................................................................................... 29
Human behaviour assessments ......................................................................... 29
Survey ............................................................................................. 42
Introduction ............................................................................................................ 42
Results ..................................................................................................................... 42
analysis of the results ............................................................................................. 45
Chapter 7 Improvements ..................................................................................... 46
Conclusion… ....................................................................................................... 48
References… ....................................................................................................... 49
Appendix…. ........................................................................................................ 51
A.
Codes ....................................................................................................................... 51
A.1
A.2
A.3
Server: .................................................................................................................. 51
Portscan : .............................................................................................................. 52
Quick port scan: ................................................................................................... 53
5
A.4
A.5
A.6
A.7
A.8
A.9
A.10
A.11
Portscan CLI: ........................................................................................................ 54
Client: ................................................................................................................... 55
Test virus: ............................................................................................................. 57
Test virus CLI: ..................................................................................................... 57
Password: ............................................................................................................. 58
MCQ: .................................................................................................................... 60
Key logger server: ................................................................................................ 66
Keylogger CLI: .................................................................................................... 67
B.
Explanation pages ........................................................................... 69
B.1
Audit tools ............................................................................................................... 69
B.1.i
B.1.ii
B.2.iii
B.2
Computer's ports .............................................................................................. 69
Key loggers ..................................................................................................... 71
Antivirus test ................................................................................................... 71
Explanation pages ................................................................................................. 72
B.2.i
B.2.ii
B.2.iii
B.2.iv
B.2.v
B.2.vi
B.2.vii
B.2.viii
B.2.ix
B.2.x
B.2.xi
B.2.xii
B.2.xiii
B.2.xiv
B.2.v
What is a Firewall ........................................................................................... 72
Patches updates ............................................................................................... 74
Antivirus .......................................................................................................... 74
Passwords ........................................................................................................ 75
Download from unknown sources ................................................................... 77
Illegal software ................................................................................................ 78
Internet configuration ...................................................................................... 78
per2per softwares ............................................................................................ 81
Operating Systems security difference ............................................................ 82
Web Pages security level................................................................................. 82
Shares .............................................................................................................. 83
Anti-Spy ware tools ......................................................................................... 84
Connected time ................................................................................................ 84
Data storage ..................................................................................................... 84
Personal information ....................................................................................... 85
6
Table of figures
Figure1: the wide range of options to set up a customised vulnerability audit. ....................... 13
Figure 3: security advices given by ATK after the audit. ........................................................ 13
Figure 4: the elements that compose the internal scan of GFI LAN scanner. .......................... 14
Figure 5: the security assessment result of MBSA. ................................................................. 15
Figure 6: the basic role of a firewall (firewall-net, 2004) ........................................................ 21
Figure 7: the delay between the discovery of vulnerability and its exploitation
22
Figure 8: The architecture of this project ................................................................................. 28
Figure 9: the 31 well known ports of the “quick” scan ............................................................ 31
Figure 10: summarises the functioning of the port scan tool. .................................................. 32
Figure 11: the port scan interface, with a scan result displayed. .............................................. 33
Figure 12, the user interface of the antivirus test tool. ............................................................. 33
Figure 13: the result of the password tester when the password is a dictionary word. ............ 35
Figure 14: the result of the password tester when the password is not a dictionary word. ...... 36
Figure 15: the interface of the key logger . .............................................................................. 36
Figure 16: the returned data from the key logger server ……………………………………..37
Figure 17: Repartition of users who have tested this project. .................................................. 42
Figure 18: repartition of opinions about the interface of the project........................................ 43
Figure 19: repartition of users who have already tested an audit software. ............................. 44
Figure 20: repartition of opinions concerning the comparison with existing audit programs. 44
7
Introduction
Security has become a critical issue for modern companies, they are actually spending
important amount of money to prevent any malicious persons to access their data. With this
increasing level of protection, hackers are turning away from banking and high technology
companies, and are more targeted into small organisations or ordinary single PC/home
networks which are less secure.
Aware of this, software producers have developed very efficient products adapted to ordinary
Internet home users like personal firewall, personal antivirus. Unfortunately, on the other
hand, their use generates a wrong feeling of security. Most of time, these tools are not
configured properly by users, who do not have the right knowledge. In this case the computer
is still unsecured.
The present dissertation will give an overview of the MSc project “Network Security Audit”.
This project will try to analyse the current weaknesses of home computers which can be
exploited by hackers, find out existing solutions to address them and finally to develop a set
of audit programs which will allow very novice computer users to audit the security level of
their computers.
8
Objectives
Nowadays, most of computer users do not have any knowledge about Internet and security.
This project is going to try to make them understand by simple demonstrations and
explanations, the risks they can face on Internet network.
The audit program this project should develop will be composed of three main parts.
First of all, a software application will be built to execute technical test of the computer and
produce a physical security audit. To be able to provide external and internal test, the
application must have a client server configuration. The server side of the application will be
put online, and will execute external test and attacks. The client part of the application will be
run on the local host and will offer local tests possibilities.
This program must be as easy as possible to use, to make it accessible for every ordinary
computer users.
Unfortunately, a technical audit is not enough to evaluate the security level of a computer,
human behaviour is also a key element. Secondly a MCQ will be integrated to the software
application in order to assess the user. In this questionnaire some questions will focus on the
existing security element of the PC, and some others will deal with the user’s behaviour in
front of different events: for instance a website which asks the user to download and execute a
program. Combined with the technical audit results, the user will be able to have a very
accurate and customised security audit based both on the machine security configuration and
the user behaviour. Moreover to provide a better understanding of the MCQ questions, they
will be illustrated by screenshots and schemas.
Finally once the audit results have been given, the application should be able to help the user
to understand them. It is important to keep in mind that ordinary PC users have really few
knowledge to exploit theses results. For the third part of the project, some informative pages
should be included and linked to the audit results to provide explanation and give advices to
the users to avoid problems which have been detected.
9
Background
When connected to Internet, computers are linked to an incredible information resource. But
most of users are not even aware of the danger they could face by plugging this small
connection cable into their PC.
Internet is composed of many computers connected together by TCP/IP protocol, this seems
to be a very well know information. But what are less well known are the applications which
use this connection. The tree more common applications are: email, file transfer, and the
World Wide Web. These three elements are using different services: SMTP for emails, FTP
for file transfer, HTTPD for the World Wide Web. These three protocols contain security
weaknesses which could be exploited by malicious people (Kozierok, 2004).
Currently ISPs (Internet Services Providers) are using the simplicity to set up an Internet
connection as a marketing argument and provide to their customers softwares which manage
Internet communications. These softwares are easy to install and can set up an Internet
connection with a few click from the user. When people are not Internet functionality
specialist, they just set up the softwares and let all default settings, from the moment it works
they do not really care about the connection parameters. This kind of users is easy prey to
hackers.
Additionally some Internet users think that having protection software installed (firewall, antivirus, IDS) is enough for their computer from any external attacks. This misunderstanding can
be very dangerous for them. It is improbable for a home user to be fully protected from
intruders. But it is possible to make any intrusion as difficult as possible.
Before detailing the possible risks, it is imperative to understand the enemy; why are intruders
trying to break into users’ computers?
Dr-k (2000 B) a hacker himself, explains that when this first question is asked to hackers,
most of them would answer it is for fun, for their curiosity or for their knowledge. These
hackers are called white hat hackers and are not really dangerous. It is a pleasure for them to
find security holes by exploring new methods and new softwares. Most of time when they
10
find any security weaknesses, they contact the company and give some advices to solve the
problem. But there is another type of hackers called black hat hackers or crackers whose aim
is to obtain unauthorised access into computer for stealing data or disturb its functionality.
This second type is far more dangerous and is most of time motivated by the money they can
earn by selling data they have stolen. They are more targeted in companies, because there is
the money, but to protect their identity from authorities they will take control of ordinary
Internet users PCs and launch attack from them.
11
Chapter 1 Current Environment
Security audit has become a very important aspect in modern companies. To be able to
provide the maximum security, the IT department is induced sometimes to play the role of
hackers: trying to bypass their own installed protections. These tests have lead software
designers to produce some programs which are able to test automatically the security
protection of a company without damaging it. They are called Security Audit Softwares and
allow system administrators to have easily and quickly an overview of the current protection
status based on the softwares’ reports.
With the explosion of the number of broadband users, the security audit’s need has become
widespread. Several security audit softwares have been adapted to provide home computer
users the possibility to test their security level. Theses familial versions are less complex to
use and to understand.
1.1
Existing audit software
Before starting the conception of this project’s audit software, it is important to have an
overview of existing audit tools used by network administrators. Here can be found the
analysis of four of them.
1.1.a Nessus
It is maybe the most famous one. It is a free vulnerability scanner based on client-server
architecture. Normally it runs on UNIX like systems, but recently a windows version has been
adapted: Tenable NeWT Security Scanner (Nessus, 2005). It is this version tested in this
project. The functionality of Nessus is very similar to the audit tool this project should
produce. The client part of Nessus allows the interaction between the user and the machine,
by sending to the server the user’s instructions. The server receives the user’s information,
then runs the appropriate command (attack test) and finally sends the result to the user. This
program has three main positive points: first of all, it is free; secondly, it is coded as a plug-in,
making him easy to update; and at last, it contains a wide range of options to parameter the
vulnerability audit.
12
Figure1: the wide range of options to set up a customised vulnerability audit.
1.1.b ATK: attack tool kit: is also a free audit software, it is based on a mix of a
vulnerability scanner and a exploiting frameworks (ATK, 2005). This application has two
main benefits: firstly it is very easy to use and uses schemas representations to explain to
users its functionality; secondly, it provides advices to avoid the security hole if vulnerability
has been discovered.
Figure 2: ATK attacks tool kit uses
schemas to explain its functionality.
Figure 3: security advices given by
ATK after the audit.
13
1.1.c
GFI LAN scanner: is a comprehensive security software. Once launched, it will
perform an external vulnerability scan, and also an internal security audit (GFI, 2005). This
internal security scan will check in the current computer or on every host of the LAN ( Local
Area Network ) the softwares which are installed, their patches, the passwords used, the USB
connections, the register entries, the shared folders, the wireless access points and other
elements
Figure 4: the elements that compose the internal scan of GFI LAN scanner.
14
1.1.d MBSA (Microsoft Baseline Security Analyser): is a security tool created by
Microsoft for Windows based computers. “It scans for common misconfigurations in the
operating system, IIS, SQL, and desktop applications, and can check for missing security
updates for Windows, Internet Explorer, Windows Media Player[…]” (Microsoft, 2005).
MBSA is directly connected to the Microsoft Vulnerability database, which gives him the
advantage to be constantly up to date. Moreover it provides to users clear explanations and
solutions to discovered problems.
Figure 5: the security assessment result of MBSA, explanations and advices are given
for each problem.
15
1.2
Security risks
A good knowledge of existing risks that could be exploited by hackers is a key element in
order to find a solution to protect a computer and its data. In this chapter, a set of most
common method used by hackers to gain control of users’ computers will be listed. In his
book Stajano (2002) claims these risks can be divided into tree main parts: Confidentiality,
Integrity, and Availability. For a better understanding of these areas, they will be explained
from a company’s point of view, which is a more adapted context.
1.2.a
Confidentiality: for a company, it is vital to keep some information secret. For
instance it’s sales, or its current research project results; the release of this kind of data to
a wider public can lead to some unexpected consequences. For the sales, a fall in stock
valuation could happen; about the research result, it would be a waste of time and money
if competitors obtain your results for free when the company has spent two years of
research on a project. To keep information confidential, it access should be restricted to
authorised persons. So a user identification process should be implemented, it can be
based on passwords, encryption, or different authentications: for instance the IP address of
the computer.
1.2.b
Integrity: the data integrity of an organisation is a direct factor for its brand
image. Simple errors in company’s data can cause failures which cost thousands of dollars
or undermine confidence in the company. Because, if costumers are billed for not received,
unwanted goods, or they got double billed, they would bring their business somewhere
else. To avoid integrity problems, the system should be designed to prevent any errors.
Redundancy and regular back up are the key solutions to this problem. Instead of having
one file, one copy is created every time modifications are added, thus if the original
document is corrupted the back up file will replace it.
1.2.c
Availability: ensuring the confidentiality and the integrity of an organisation’s
data is useless unless this data could be used by the right person at the right time. There
are a great number of incident which could happen and disturb the availability of a
database. The main hard disk could wipe out, a vital hub or router could fail, the main
server could crash. Redundancy and appropriate security policy will decrease considerably
the failure risk.
16
Now the tree major risk area has been discussed, some of the common attacks which could be
used by the hackers will be explained. That will help for the understanding of the rest of this
dissertation.
1.3
Hacking tools
1.3.a Password cracking
Password is a crucial line of defence possessed by computers. Without passwords,
hackers would be able to access a remote system or modify a protected file. In their
book Russel and Ganjemi (1992 A) explain there are actually three methods which can
be used to crack a password. The common method used by hackers is the “dictionary
attack”: they use every words and names from a dictionary and try to see if one of
them is the right password. Associated with a program which can try thousands words
per second, the right password can be found very quickly: generally a few seconds.
There are two other types of cracks “hybrid attack” and “brute force attack” which are
designed for more complicated password. The “hybrid attack” is based on the
“dictionary attack”, but is more complete. It takes the dictionary word and tests it with
every possible prefix and suffix. The “brute force attack” is the simplest one but the
most efficient; it success every time but its inconvenient is the amount of time
required to find out the right password, it is unpredictable: it can be hours, days, weeks,
or months. Basically it tries every keyboard keys combination until it finds the
password; it is only limited by the calculation power of the computer used for cracking.
1.3.b Packet and password Sniffing
It is not usually easy to guess the right password, so another method, much more
simple can be used: the “password sniffing”. Gollmann, (1999 A) explains in his book
that this method is based on the functionality of TCP/IP: protocol used for Internet
communication. In a few words when a computer wants to communicate with another,
it will send its data associated with the IP address of the receiver it wants to talk to.
Once sent, all computers sitting on the road between these two PCs will receive the
data, check the destination address and drop it if it does not match with their own IP
address. However many computers can be programmed to pick up every message sent
17
through a network, in this case this computer will be able to see messages which are
not intended for him.
Any hackers how have a“sniffing” program can easily catch some information about
the sender from those data, for instance login and password if the computer is
communicating with a server or some websites.
1.3.c
Trojan horses
Trojan horses are malicious programs which once executed will create a backdoor
access on the PC. Generally they are sent by emails as an attached file and have some
attractive names to encourage users to download and launch them. They are
commonly used by hackers to take control of PCs, and then launch attacks from these
infected computers against some more sensible web sites like government organisation.
Trojan horses’ usage will provide hackers the possibility to stay anonymous.
1.3.d Backdoors
Backdoors are entry points to a computer system. It does not sound very dangerous,
but actually all access passing by this entry point will bypass the security detection of
the computer. By this access, intruders can access and control the infected computer
without its user could notice anything. These backdoors are installed usually by a
malicious program like Trojan horses.
Backdoors have not been always used for a malicious purpose. Some program
designers let especially a backdoor to make easier any maintenances or reparations.
We can cite one of the most famous examples: the authors of UNIX: Ken Thompson
(Linux world, 2004) admitted in 1983 that a backdoor has been voluntarily introduced
in the earliest versions of UNIX.
1.3.e
Internet Worms
Worms can be considered as an automated autonomous device, they contain codes
which will exploit some known security vulnerabilities on certain host. These
18
vulnerabilities can come from Operating Systems or Softwares. The worm will first
scan the network searching for connected host with those security weaknesses, then
break into the target machines. Once inside the computer, it will replicate itself and set
itself to continue spreading. Worms have the capacity to infect a huge number of hosts
in a very short time. One of the most famous worms attack happened in 1988, the
“Morris Worm” used some holes of UNIX system to spread and infected 3 thousands
machines in a few hours. “[…] estimates of the cost of system fixes and testing range
from $1 million as high as 100 millions.” (Russel and Ganjemi, 1992 B).
1.3.f
Mobile Code
Recently, some problems associated with mobile codes have been discovered. Mobile
codes are used to create some animations written by web designers and which can be
run on the web browser when the host is visiting their web site (Java, JavaScript, and
ActiveX). According to Oppliger (1999), once executed by the web browser, it can
contain some malicious code which would allow its writer to gather information about
the compromised computer: login/password, etc…
1.3.g Port Scanner
When a computer is connected to Internet each network service and protocol has
allocated communication port to communicate with the network, it is a gate in some
sort. For instance HTTP protocol (web browse) will use port 80 to communicate with
the network and SMTP protocol (email) will use port 25. Poole (2003 A) says that the
danger comes from the standardisation of the allocation of ports. If a hacker knows
exactly which ports are open on your computer, they will be able to build up a good
vision of what service applications are running on it. Normally, the scan of the
victim’s ports is the first step of any attack, thanks to this scan, the hacker will then
adapt his/her attack strategy according to the prey’s computer’s configuration.
1.3.h Key logger
Key loggers are programs that run in the background of the operating system and
record all the user’s keystrokes. Its legal use was for parents who wanted to keep an
19
eye on their children’s activities on the computer. Unfortunately, hackers turned this
kind of programs into another purpose. Now, they are sent attached to emails, and if
the victim has the bad idea to double click on it, it will be discreetly installed, then
send all captured data to an email address or a FTP address. Key loggers are used by
hackers to steal users’ passwords or private information.
1.3.i
Denial of services (DOS)
At last but not the least, the Dos attacks regroup all attacks which exploit TCP/IP
protocol’s vulnerabilities. These attacks are not really complicate, but are truly
efficient. They can reach every computer, no matter which Operating System is
running, because it is target on TCP/IP protocol, no PC is fully secured against them.
One of well known example of DOS attack is SYN flooding. For all TCP connection,
when a host wants to connect to a server they got to exchange a determined set of
messages first. Normally if the host A wants to connect to the server B, it has to send a
Synchronize Sequence Number (SYN) to B, then B will respond to A by sending back
the SYN with a Acknowledge bit set, and wait for an answer from A, once the final
SYN answer has been received by B, the connection will be operational. Garfinkel,
Spafford and Schwartz (2003) explain that this tree state connection can be easily
abused by hackers who send a huge number of connection request, the server would
automatically answer by the SYN with Acknowledge set bit, and the hacker do not
send anything back to finalise the connection. The server is still waiting with a great
number of ‘half-negotiated’ TCP connections, and cannot manage any more
connection request.
Poole (2003 B) explains in his book that one of the most important DOS attacks
occurs in February 2000 against Yahoo: a very popular website. Some hackers used a
large number of computers infected by backdoors or Trojans to flood one of the router
designed to handle the Yahoo website traffic. The traffic was so important that the
router was unable to cope. This attack result was that the website was unavailable for a
few hours.
20
This chapter has just displayed some simple attacks used by hackers to break into or disturb
the integrity of computers. And after reading it, any users would like to know if their own
machine is protected against those horrible things. That is the aim of this MSc project, to
detect the security level of a Personal Computer. Then if any vulnerability is found, find a
solution to address them.
1.4
Protection mechanisms
Most of network administrators are aware of these security risks, and have the knowledge to
build an appropriate solution for them. Unfortunately home Internet users do not have the
capacity to face this kind of dangers. Of course they will be targets of less sophisticate attacks;
but it is not a reason to let their computers without any defence against intruders.
1.4.a Firewall
Firewall is a significant security element of a computer or network. It could be software ore
hardware based, and will provide an access control to the PC. By building a barrier between
the machine and Internet, it would prevent unauthorised access to computers’ private
information.
Figure 6: the basic role of a firewall (firewall-net, 2004)
Gollmann (1999 B) explains that there are different sorts of firewalls, with advantages and
disadvantages for each of them. Depending of the users’ needs and their network topology,
the most adapted firewall should be installed. Basically, the firewall checks the data packets
going in and out of the computer, for each of them it verify the source, destination IP address
and the port used. Then it compares the result with the security rules that has been defined by
21
the user and finally takes a decision about packets which are allowed to pass though and
which are not.
Firewall is the first point to check in order to assess the security level of a computer. If it is
absent, that would mean the current PC’s integrity is already compromised. A firewall is
useless if it is not monitored. Some people install a firewall on their PC and forget it; in this
case, the firewall will just give an illusion of security. If the firewall’s settings are not adapted
to security risks it will not protect anything.
1.4.b Antivirus
Antivirus is the software usually associated with the firewall, their roles are complementary.
Firewalls verify which information can enter your computer, but once the access is granted it
would not look at the content of this information. Antivirus has as mission to scan the content
of data which have pass through the firewall. For instance, some downloaded programs would
be scanned for virus before the user could launch them. If there is no antivirus, users would
not even know if files they are downloading on Internet contain malicious code and would
infect their computer with some virus or worms.
1.4.c
Patches
Nowadays weaknesses on softwares are discovered and exploited by hackers very quickly.
Here is a graphic which show the delay between the discovery of softwares’ vulnerability and
the moment it is exploited.
Figure 7: the delay between the discovery of vulnerability and its exploitation by
hackers
. (Pinkney, 2004)
22
To prevent your machine from new exploits, program designers are producing patches for
every new security hole discovered on their programs. Users should regularly patch their PC
and keep their softwares up to date. If not, in a very short time your host’s security would be
compromised.
1.4.d Passwords
Passwords are a crucial element for users’ security. When you are opening your online email
box you are sending your login and password through Internet with an encryption system.
This method seems to be secure, but as seen in the previous chapter, hackers can actually use
packet sniffing programs which would catch your data and obtain your password with some
password cracking tools. If your password is a dictionary world or a name, it would take
approximately a few second to crack it.
Here are some questions provided by US Department of Homeland Security (2002) to verify
the quality of your password security. Every year thousands of computers are illegally
accessed because of weak passwords. How many users are guilty of any of the following
things?
* Writing down a password on a sticky note placed on or near your computer.
* Using a word found in a dictionary. That's right, a dictionary. Any dictionary!
* Using a word from a dictionary followed by 2 numbers.
* Using the names of people, places, pets, or other common items.
* Sharing your password with someone else.
* Using the same password for more than one account, and for an extended period of time.
* Using the default password provided by the vendor.
Chances are, if you are anything like the majority of computer users, you answered yes to one
or more of the above questions. The problem is, hackers are aware of these problems as well
and target those who don't take the correct precautions.
23
Chapter 2
Important issues
There are different issues that give a real sense to this project.
All security risks and protection elements discussed in the previous chapters are all well
known from professional security administrator, but at the other side, ordinary people can
have some problems to understand them. Even if they use a familial version of security audit
software, they may not be able to interpret its results.
Software designers try to make their product as simple as possible to affect as many users as
possible; but unfortunately, because of the complexity of the network security area, it is very
difficult to create something really comprehensible for any ordinary user. Nessus for instance:
even an intermediate knowledge level user will need about ten minutes to realise what are the
possibilities of this program and how to exploit it efficiently.
Moreover today’s security audit programs can be very complete in a technical point of view,
but they do not take into account the human behaviour factor which is the weakest link in the
network security chain. Even if the users have some security programs installed and properly
set up on their computers, their behaviour can make them defenceless. For instance, if the user
is used to download illegal software copies from Internet, the security of the computer may
certainly be compromised. Because most of time hackers who create these copies add some
hacking tools like Trojan or worm it. As explained in a previous chapter, the commercial
audit softwares that have been tested during this project do not contain any human behaviour
tests.
The last issue of this project which makes it so different from other commercial audit
softwares concerns the usage; actually all existing softwares need to be installed on the
computer they are auditing. This obligation can be a serious problem for very novice
computer users who do not know how to install, or users who do not have an administrator
account on the current computer then do not have the right to install any programs on it.
This MSc project will try to offer appropriate solutions to these issues. Firstly, it will not
require any installation obligation, thus it will provide to any users no matter the computing
24
knowledge level the possibility to run easily a security audit on the current computer.
Secondly, on top of all technical audit elements, this project will contain some tools which
will evaluate the security level of users’ human behaviour. Finally, the users’ understanding is
a key element in this project, they will be provided clear explanations about how to use the
different audit elements, what are they auditing, how to avoid the problems….
25
Chapter 3
3.1
Project approach
Research
Network security is a very wide ranging and a well documented domain; this is at the same
time a strength and a weakness for this project. It is a strength because when some studies on
a specific domain are needed, they can be easily found. It is a weakness because there so
many subjects to master that it gives the feeling to be very complex. The project’s aim is to
audit the security level of a home computer. Unfortunately most of existing security studies
and texts are dealing with companies’ networks, so only issues applicable to this research
domain should be picked up.
3.2
Conception
The conception of the software requires a very methodical progression.
An analysis of existing security audit tools has been done. The author is not going to reinvent
a whole brain new program, if there are good ideas in existing tools, they can be reused in the
conception. The most common element in existing audit programs is the port scanner, so one
will be integrated in our project program. In >>>>>, users can test the efficiency of their
antivirus with a inactive virus file, this concept has been adapted in this project.
Softwares used by hackers are also a very good source of ideas; some of them can be
integrated into this project to test the vulnerability of the computer against precise types of
attacks. Programs similar to a password cracker and one similar to a key logger have been
added to this project’s product. It should be also keep in mind that the programs developed
during this project are designed for ordinary computer users; the simplicity is a very important
element.
Moreover, it is imperative to have opinions from expert computer users about the programs
during the development stage of the project. They will be able to provide advices or warnings
if the research is taking a wrong direction.
26
3.3
Human aspect
As said in a previous part of this dissertation, human behaviour is an important issue of the
security audit. Hence, some tests to evaluate how dangerous the users are according to their
behaviour will be integrated. Some demonstrations elements can also be very revelling in this
project, instead of using pages of text to explain the danger; it would be more efficient to
show its direct impact. A set of general security advices should also be added, depending on
the audit result generated by the software, it will give recommendations to users to improve
the current security level.
3.4
The Technology
As explained earlier, the audit programs of this project should not require any installation to
run. So from this point the author has decided to implement the auditing programs in a
webpage, which brings several advantages. The easy accessibility from all over the world is
one of them, users do not have to download or install anything, and all they have to do is to
have the webpage address. Moreover to have the full auditing programs on an online webpage
makes any updates and debugging of the project programs much simpler. There are a few
languages which can be run on a webpage; the author has chosen JAVA to code the security
audit programs of this project. JAVA is a object oriented language, it is very suitable to code
Internet programs and webpages can contain several JAVA programs each of them can be run
independently. The disadvantage of JAVA is strictness of its security policy. In this project
users will need to modify manually this policy.
3.5
The architecture
The project’s audit program is essentially composed of several elements, the audit tools and
the explanation pages linked to them. The audit programs are integrated in a HTML page that
should be launched with the user’s web browser. This page contains some basic audit tool
coded in Java: there are a port scanner, a MCQ to evaluate the users’ behaviour, a password
analyser, an Antivirus tester and a key logger; each of them can be used independently. Then,
this HTML page will be put online at the address: http://dcool75.free.fr/projet/ .
27
Basically, this audit page describes to the users how to use each tool and some hyperlinks will
guide them to the explanation pages where more details are given. These explanation pages
will allow the user to understand what has been audited with each tool, how to interpret the
results, and how to overcome the problems found.
Launch the
client program
Port scanner
client program
Port scanner
MCQ
Port scanner
server
MCQ Program
Antivirus tester
Antivirus test program
Password tester
Password program
Key logger
client program
The key logger
The audit HTML page
User hard disk
Online english word list
Key logger server
Communication
Display
Figure 8: The architecture of this project
28
3.6
The audit programs
The audit tools can be grouped into two categories, the ones which analyse the material
security risk and the ones dealing with the human behaviour risk.
1.6.a Material audit tools
The port scanner; it is based on a client/server architecture. The client is launched from the
audit webpage on the user’s computer and then it sends request to an external server which
will scan the current PC’s ports. Port scanner is one of the basic elements of security audit
softwares, but most of them are based on a local port scan which means that the auditing
computer verify itself if its ports are opened or not. In this project it has been decided to
perform the scan process from an external node essentially because nowadays most of home
computers are in a local LAN and placed behind a router. Having a port closed on the current
computer does not mean that it is closed at the router side. So this architecture allows a more
complete view of the ports status. People who have tested this project during its development
stage found that it was usual to have in an audit program a port scanner. But they were
surprised to obtain a scan result after 30 seconds when ordinary online port scanners require a
few minutes. The main difference between the port scanner of this project and others is the
number of port it has to scan. When online port scanner like Sygate Online Services (Sygate,
2005) spend 30 minutes to scan all ports of the user’s computer (like the long scan of this
project), this project’s port scan will only looks at 30 well known and more exposed ports
with the quick scan. The simplicity and the quickness are the priorities of this project.
The Antivirus tester analyses the reactivity of the antivirus installed on the machine. Recently,
some online antivirus have been developed, they can perform a complete hard disk scan of
people who connect to their WebPages. But do not perform real tests which can audit the
efficiency of the installed antivirus. Using an inoffensive file which has a virus signature is a
very efficient way to prove the antivirus is working properly.
1.6.b Human behaviour assessments
The password analyser, depending on the password entered by the user, will estimate the
amount of time needed to crack it. There are several free password crackers which can be
29
used to show to users how easy it is to crack a weak password. But their main defect is the
delay required to crack it. If the password is not a dictionary word, it may take a few minutes
or hours to break it, and users can not wait so long. So instead of integrating one of them, the
author has decided to develop this time estimator which gives a quicker response. Users who
tested this project found the concept of this tool very interesting. To calculate the time needed
to crack the password provided by the user instead of cracking it really with an appropriate
software require less energy and can provide a better impact on the end user.
In the MCQ the users have to answer some questions about their behaviour when they meet
some specific situations. The human behaviour is known as the weakest link of the security
chain. But most of the existing security audit softwares do not take into account effects of
human aspect on the security. In addition, even expert computer users who manage perfectly
the security of their computer may have a very dangerous behaviour.
The key logger is more a demonstration tool than an auditing tool. It can be relevant to show
to users how a real hacking tool works. So they will realise by themselves how dramatic it
could be if a hacking tool of this kind was installed on their computer. This kind of
demonstrations can really left its mark on the end users and remove any misconception about
security they could have. When they will see that someone they do not know can easily
receive what they write on their computer, they will no more easily have the feeling of
security or privacy even if they have some security softwares installed.
30
Chapter 4
4.1
Implementation
The port scanner
It is a basic security audit test; here the user will be given the choice between a “quick” scan
(codes in appendix page 53) and a “long” scan (codes in appendix page 52). It has been
decided to add this option because a complete port ( long scan ) scan takes about 20 minutes,
and it is not possible to impose a so time consuming test. The “quick” scan takes about 30
seconds, and it checks 31 “well-known” ports showed below.
Keyword
Port
echo
daytime
msp
ftp-data
ftp
ssh
telnet
smtp
msg-auth
time
name
nicname
domain
whois++
gopher
finger
www-http
pop3
auth
sqlserv
nntp
netbios-ns
netbios-dgm
netbios-ssn
at-rtmp
at-nbp
at-echo
at-zis
ipx
imap3
set
7
13
18
20
21
22
23
25
31
37
42
43
53
63
70
79
80
110
113
118
119
137
138
139
201
202
204
206
213
220
257
Description
Echo
Daytime (RFC 867)
Message Send Protocol
File Transfer [Default Data]
File Transfer [Control]
SSH Remote Login Protocol
Telnet
Simple Mail Transfer
MSG Authentication
Time
Host Name Server
Who Is
Domain Name Server
whois++
Gopher
Finger
World Wide Web HTTP
Post Office Protocol - Version 3
Authentication Service
SQL Services
Network News Transfer Protocol
NETBIOS Name Service
NETBIOS Datagram Service
NETBIOS Session Service
AppleTalk Routing Maintenance
AppleTalk Name Binding
AppleTalk Echo
AppleTalk Zone Information
IPX
Interactive Mail Access Protocol v3
Secure Electronic Transaction
Figure 9: the 31 well known ports of the “quick” scan, adapted from VIAS
encyclopedia, 2004
31
Once the user has clicked on the start button of the user interface (codes in appendix page 54),
the java applet will run the client program (codes in appendix page 55) which will send a
scanning request to the server (codes in appendix page 51). Then, the server will analyse the
request, find out the IP address of the user from the connection settings and finally run the
appropriate IP scanning program. There are actually two scanning programs, one for each
type of scan (quick and long), but their functioning principle is the same. They try to create a
socket connection with the given port in a specific timeout. If this try fails that would mean
the port is closed, inversely if it success it would mean that the port is opened. For the “wellknown” ports scanning, the timeout is set to one second, and for the complete one, it is set to
200 milliseconds. The longer is the timeout, the more it can be certain that the port is closed.
For scanning 65535 ports, it is not possible to set important timeout; otherwise the scanning
process will take hours.
The scanning result it recorded in a table and transferred to the server who will convert it into
a single data flux and send it back to the client program. Once the client has received the
result it will display it in the user interface of the audit page.
Port scann User interface
Client
program
Audit main page
Scan
program
Internet
Server
program
Figure 10: summarises the functioning of the port scan tool.
32
Figure 11: the port scan interface, with a scan result displayed.
4.2
The antivirus tester
To test the reactivity of user’s antivirus; this tool uses elements of EUCAR virus test file.
“This test file has been provided to EUCAR for distribution as the EUCAR Standard AntiVirus Test File", […]. It is safe to pass around, because it is not a virus, and does not include
any fragments of viral code. Most products react to it as if it were a virus (though they
typically report it with an obvious name, such as "EICAR-AV-Test")” (EUCAR, 2004). The
tester creates an “eicar.exe” file on the hard disk on the user’s machine then copies the
following 68 bytes ASCII characters in it: X5O!P%@AP[4\PZX54(P^)7CC)7}$EICARSTANDARD-ANTIVIRUS-TEST-FILE!$H+H*. (codes in appendix page 57)
Normally, the antivirus should alert the user that an infected file has been detected. If nothing
happens, that would mean that the antivirus is not properly configured or not efficient, then
the tool will give to the user the possibility to delete the file.
Figure 12, the user interface of the antivirus test tool.
33
4.3
The MCQ
It is a human behaviour test. The user is invited to answer some questions to evaluate the
overall security level. Depending of their answer, a specific amount of points will be added to
the risk counter (codes in appendix page 60). Here are the questions of the MCQ and the
amount of risk point to add associated with each answer. This association is based on the
importance of the security element of the question and the consequences if this element is
missing. The absence of an important security element will add 3 point to the risk counter, if
its lack does not imply immediate danger to the computer 1 point will be added to the risk
counter.
1. Do you have a firewall installed on your computer?
Yes: + 0 ; No : + 3
2. If yes, do you think it is configured properly?
Yes: + 0 ; No : + 1
3. Do you have an antivirus installed on your computer?
Yes: + 0 ; No : + 3
4. Is your antivirus program up to date?
Yes: + 0 ; No : + 2
5. Do you frequently update your computer’s software components? Yes: + 0 ; No : + 3
6. Do you have an anti-spy-ware tool?
Yes: + 0 ; No : + 1
7. Do you use a password to access your computer?
Yes: + 0 ; No : + 3
8. Is your password a dictionary word?
Yes: + 1 ; No : + 0
9. Do you change your password regularly?
Yes: + 0 ; No : + 1
10. Do you verify the security level of WebPages you visit?
Yes: + 0 ; No : + 1
11. Do you download files from unknown sources?
Yes: + 3 ; No : + 0
12. Do you use any Per2Per software?
Yes: + 1 ; No : + 0
13. Do you leave any personal information on the net?
Yes: + 1 ; No : + 0
14. Have you ever configured your Internet access parameters?
Yes: + 0 ; No : + 1
15. Do you have any software with unknown or illegal origin on your computer?
Yes: +1; No: +0
16. Are you using Windows, Mac or Linux as Operating system?
Windows: +3; Mac OS: +2; Linux: +1
17. How long do you spend online every month?
0-10H: +0; 10-50H: +1; 50-200H: +2; over 200H: + 3
18. Do you share any file on Internet?
Yes: +2; No: +0
19. Do you regularly process to the storage of your data?
Yes: +0; No: +1
The firewall, the antivirus, software patches and passwords are very important security
elements. If the users answer they do not have these elements, 3 points will be added each
time. Security softwares updates are also vital, but users will face fewer security risks if they
have them out of date than not having any at all. So 2 points will be added to risk counter. The
missing of anti-spy-ware tools can be dangerous for the user’s privacy, but usually it does not
bring immediate danger to the computer: 1 point will be added. Downloading files from
unknown websites may be very dangerous, because they can contain malicious codes which
34
infect its user’s computer, so if the user is used to do that 3 points will be added. Details about
each question can be found in appendix B.2 “Explanation pages” page 72.
If the overall risk is under 5, the security risk is very low; if it is between 5 and 15, it means
that the security risk is medium, if it is between 15 and 25, the security risk is high and if it is
over 25 that would mean that the security risk is very high.
4.4
The password tester
It is more a demonstration tool than a password cracker. The user is asked to enter a password,
and then the tool import a list of English dictionary words from a specific webpage
(http://dcool75.free.fr/mot.txt). Once the list is imported, the analyser will compare the user’s
password with its content. If there is a match, it will inform the user that only a few seconds
are required to crack this password. (codes in appendix page 58).
Figure 13: the result of the password tester when the password is a dictionary word.
If there is no match, the audit tool will process to the structure analysis of the password;
depending on characters it is built with; the program will calculate an estimation of time
needed to crack it with any ordinary password crackers.
This estimation is based on the password’s length, and the type of characters it contains.
Basically, if the user’s password contains capital letters, numbers, and special characters, it
would take approximately 4320 minutes to find out one character. If it contains only lower
case characters, the cracker will need about 4 minutes per character. If it has some number on
it, 30 minutes are required for each character. And finally if it contains numbers and upper
case characters, it will take about 150mins to find out a character. These numbers come from
statistics the author has done with L0phtcrack 5.04 a very popular password cracker.
35
Figure 14: the result of the password tester when the password is not a dictionary word.
4.5
The Key logger
It is also a demonstration tool, which will show to the user the functioning of this very basic
hacking tool. In order to avoid any installation requirement to use it, it has been prefered a
simple design with an easy usage instead of complex codes similar to commercial key loggers
which would require manipulation from the user. So the program that has been included into
the audit page has nothing to do with a real key logger except the concept. It does not run in
the background of the computer to capture every keystroke, but clearly asks the user to write a
few words in a designed square of the audit page. When the user has written 10 characters the
JAVA program (codes in appendix page 67) will create a socket connection with the key
logger server (code in appendix page 66), and everything that is in this square will be sent
then, the server will process the data. Here to give a quick demonstration to the user, the
server will send the data back to the audit page which will display it in a pop up page.
Figure 15: the interface of the key logger where the user is invited to write a few
words in the indicated area.
36
Figure 16: the returned data from the key logger server where what the user has
written is displayed.
4.6
Explanation pages
As this security audit test has been designed for very novice computer users, it is very
important to make them understand with simple and clear words what they are actually doing.
So these explanation pages will have tree main functionalities: firstly they will tell the users
what element the audit tool will test and why it is important; secondly, they will give details
about how the tool works; and finally, they will give advices to users if any problem is
discovered.
Each audit tool has some explanation pages associated to them; also in the MCQ each
question has an explanation page which gives more detail and clarification about the question,
which allows a better understanding. They are built up with HTML language and can be seen
at the following address: http://dcool75.free.fr/test or in Appendix page 69.
4.7
Java requirement
To be able to run all these java applets programs, it is necessary to have a Java J2SE runtime
environment installed on the computer. Moreover by default for security reasons, Java
runtime environment has a very strict policy concerning Java applets. They are not allowed to
manipulate local files of the machine, to import data from any WebPages, and create
connections with any distant servers.
So to exploit the full possibilities of these audit tools, the user has to change the Java security
policy manually. For that, at the beginning of the audit page, the user is invited to follow an
37
instructions guide page to modify the java policy file. Firstly, they have got to access the Java
security policy folder, which can be found at C:\Program Files\Java\jre1.5.0_04\lib\security.
The “jre1.5.0_04” indicates the current version of java runtime environment installed on the
local computer, so it can be different on each computer. Then, the user should open the
“java.policy” file with WordPad or an equivalent; this file contains the permissions granted to
Java applications.
The user has to add the following line “permission “java.security.AllPermission;” Which will
give all permission to any java application. Once the changes done and saved, web browsers
should be restarted to load the new security policy.
After the audit, the user is asked to return the “java.policy” file as it was before by erasing the
added line. Otherwise, any future Java application the user would meet in the future will have
all permissions on the computer, creating a security weakness.
4.8
Feedback and Profiling
Users’ feedback is an important element for program designers who will bring amelioration
and debugging to their product. This project is no exception to the rule. At the bottom of the
main audit HTML page, users can access to a formulary page where they can give their
opinion about the security audit they have just had.
To have more accurate opinions the formulary contains questions concerning different aspect
of the security audit.
1. What is your age?
2. What is your profession?
3. What is your computer acknowledgement level?
4. Do you think this audit page contains relevant audit tools?
5. What is your opinion about the interface of this page?
6. What do you think about the explanation pages associated to this page?
7. What is your overall impression about this security audit page?
8. Have you ever used any security audit programs?
9. If yes, what was this program?
10. What is your opinion by comparing these audit programs whit this security audit page
you have just tested?
38
Based on this survey, it is possible to first of all figure out what type of user he/she is;
secondly know the user’s opinion about the technique, graphical interface and the simplicity
of the explanations; and finally discover the strength and weaknesses of the project comparing
to other security audit programs. The results of the survey will be discussed in chapter 6.
39
Chapter 5
5.1
Achievement
Achievement
In the domain of security audit, there are already several commercial softwares, but here the
author tried to design something different.
The achievement of this project is the creation of an online webpage which contains some
network security auditing programs in JAVA. To make them easy to use and to understand,
each tool can be manipulated by the user via a JAVA applet interface which is composed of
simple elements like buttons to launch the tool and text fields where the audit result will be
displayed. The combination of these java applets and the texts which explain to the user how
to use each audit tool allows this project to have a very intuitive Human Computer Interaction
(HCI).
The final security audit program of this project has been integrated in an online web page,
when existing audit software require an installation on the computer it is testing. So the
accessibility is far simpler, the users have just to go to this page in order to test the security of
their computers.
Another good point of this project is that it has been designed to be used by very novice users.
When existing audit softwares only perform their tests and provide a final result, this project’s
program gives clear explanations about the audits elements, why they have been chosen, how
they are functioning, how to exploit the results and what are the security risks.
The last important difference of this security audit project with other programs is that it is
commercially neutral. An important part of existing audit programs are designed by security
software companies, and sometimes they try to make the audit result worse than it is really to
encourage people to buy their products. It is frequent to see in an audit result: “Your computer
has a very high security risk, if you want to fix the problem buy the following products of our
company”.
Here, the audit project has no commercial purpose and always advice the users to download
freeware security programs.
40
5.2
Limitations
Implementing auditing programs in an online HTML has some easy using advantages, but has
also some technical limitations.
Firstly, the JAVA runtime environment which allows audit programs codes to be run has a
security policy. This security policy forbids the functioning of some security audit tools of the
project (port scanner, antivirus tester and the key logger). So some manipulations are
necessary to change the security policy before starting the audit. A complete description of
these manipulations will be given in the next chapter.
Secondly, an Internet connection is essential. Since the audits tools are loaded by the web
browser from the audit web page, nothing can happen if the user’s computer can not access to
Internet. That would mean that if users want to audit the security of a computer in a LAN
(Local Area Network) which has no Internet connection, it will not be possible.
Finally, as it is the first development of this project, the author has designed some really basic
audit programs, which may not cover completely the network security domain. To become as
efficient as some commercial security audit softwares, this project should be taken up in the
future in order to integrate more audit tools.
41
Chapter 6
6.1
Survey
Introduction
A survey has been added in the main audit page, in order to collect users’ opinions about this
project and its programs. It does not contain a huge number of questions, but it will give the
possibility to know if this project has reached its main objectives. In addition, it will provide a
very interesting comparison from the user point of view of this audit program with
commercial security audit softwares.
As this project has been designed to provide to novice computer users an easy understanding
audit program, the most interesting relevant results will come from some of users who do not
have a developed computing acknowledgement.
Additionally the MCQ can also provide very interesting information. Unfortunately nothing
has been implemented in this project in order to save the users’ answers. It can be added to the
future possible improvement of this project. With the data base which contains users’ answers,
it will be possible to develop an analysis of general users behaviour and target precisely the
domain the user has important security lacks.
6.2
Results
At the moment, 24 persons have tested this project’s audit program and have given their
opinion for feedbacks. In these 24 persons 7 are novice computer users, 4 are intermediary,
and 13 consider themselves as experts. Most of them are students, and the others do not have
a profession in direct relation with IT domain.
Novice
Intermediary
Experts
Figure 17: Repartition of users who have tested this project.
42
Do you think this audit page contains relevant audit tools?
For this question 19 users have found the audit tools which make this project up are relevant,
5 have not answered this question. Which means that for the first development of this project;
the audit tools provide a nearly complete analyse of the security risks.
What is your opinion about the interface of this page?
For this question, 16 users have found the interface of the audit web page clear, 5 have found
it poor and 3 of them have not given their opinion. So the interface should be the key
developing element in the continuation of this project to improve the Human Computer
Interaction.
Clear
Poor
No opinion
Figure 18: repartition of opinions about the interface of the project.
What do you think about the explanation pages associated to this page?
This question provides very surprising feedback, 7 users have found the explanation pages
associated to each audit tool very clear, but the 17 users do not have any opinion.
Furthermore only 3 novice users have given their opinion; which probably means that the 4
others did not have looked at them.
What is your overall impression about this security audit page?
This question may certainly be the most interesting one of the feedback: users are asked to
give their overall opinion about the entire audit project. In the 7 novice computer users, 3
have had some problems to understand and exploit the full possibilities of the audit tools.
After investigations, it turns out that some of them had a firewall which blocks the
client/server communication of the port scanner and key logger; and others did not have
properly modify the JAVA security policy on their computer. Concerning the intermediary
and expert users, most of them did not have any trouble to use the programs. But they agree to
say that the java security policy modification step acts like a brake to encourage them to
continue the audit tests. Furthermore the security issue has also been discussed, if they did not
43
know the origin of the web page, most of them would not modify their JAVA security policy
file.
Have you ever used any security audit programs?
For this question, 10 users have answered they had already used a security audit software and
14 had not.
If yes, what was this program?
In question six, 2 users answered that the security audit software they have already used is
Nessus, for 7 of them it is Microsoft Baseline Security Analyser (MBSA), and for 4 others it
is GFI LAN guard.
Nessus
MBSC
GFI LANguard
Figure 19: repartition of users who have already tested an audit software.
What is your opinion by comparing these audit programs whit this security audit page
you have just tested?
For the last question, the 10 users are invited to give a comparison between the audit software
they have used and this audit project. 9 of them agree to say that this project is easier to use
and to understand than other audit softwares, 4 of them found that it is a very interesting idea
to avoid any installation to run the audit, and 5 users have found this project less complete
than other commercial audit softwares.
Easier to use
Interesting concept
Not complete
Figure 20: repartition of opinions concerning the comparison with existing audit
programs.
44
6.3
analysis of the results
The results of the survey described previously have brought a critical overview to this project.
A part of the novices users questioned had not fully exploited the audit programs which
compose this project. That means that the project has only reached partially one of its main
aims which is to create an audit project accessible to everybody. As explained earlier, they
could not use some audit tools because of their current settings (router and firewall which
blocked the socket connection of some audit programs) and their failure to change the JAVA
security policy file. Allowing TCP connection on port 6001 (for the port scanner
communication), 6002 (for the key logger communications) and modifying the JAVA security
Policy file are the two requirements to make this project run. Even with clear explanations
(texts and screen shots) to guide the users to complete these requirements, a few novice users
have not succeeded. So some vital improvements should be made in the future to this project
in order to avoid manipulation needs.
Additionally the analysis of expert and intermediary users’ feedback has proved that they
were able to use the audit programs without any technical problem. Most of them have found
this project simple to understand and easy to use comparing to existing security audit
softwares. Thus, it is reasonable to say that this project has provided to its user another vision
of security audit programs.
Finally in an overall point of view, users appreciated the easiness of this project’s usage. They
also loved some key concept of this audit program like the fact it is online and no installation
was required in order to run. Consequently it can be concluded that some choices that have
been made at the beginning of this project were right. Favouring the usage conveniences
instead of a complex but complete material audit tools was one of them.
45
Chapter 7 Improvements
The analysis of the survey displays some improvements that can be brought to this project in
the next steps.
The JAVA policy file modification is certainly the main technical problem to solve for the
next students who will undertake this project. Modifying by hand some security element of
the user’s computer is certainly not something reassuring. Especially for novice computer
users who do not really know what they are doing and prefer to not exploit the audit test than
embark on some complex manipulation. Unfortunately, there is no way to bypass the JAVA
security policy as long as the audit programs are coded in JAVA, so the author recommends
to use another language like PHP which allows access to the user’s hard disk. Another
possibility is to create a Visual Basic script or a C++ based executive file that can modify the
JAVA policy file automatically when the user launch the audit page.
Explanation pages were an important part of this project, but according to the feedbacks just a
few users have looked at them. Simple hyperlinks may not be the best way to encourage users
to exploit them. Some graphical elements or animations can be developed to focus the users’
attention on them. For instance, by adding some Flash codes, it would be possible to display
the explanation pages’ content when users have their cursor on some key words.
Among the audit programs included in this project, the port scanner is probably the most time
wasting test. It takes about fifteen to twenty minutes to practice a complete port scanning of
the computer. A solution to consider in order to reduce this amount of time, could be to add
multithread elements in the scanner codes at the server side. That would mean that instead of
having one thread scanning all ports, there would be several ones doing the same job and the
time required for complete this test would be divided by the number of threads.
As expressed by some users in the feedbacks, this audit project is simple, easy to use, but may
not be very complete comparing to some commercial softwares. Integrating new audit
programs would probably be an interesting step for the future development of this project in
order to make it more competitive than other commercial versions of security audit softwares.
For instance, inspiring from Microsoft Baseline Security Analyser, an upgrade analyser can
46
be added to the project, it would analyse the upgrade level of the Microsoft products:
Microsoft Windows, Microsoft office, Microsoft Internet explorer; with the latest version
published by the Microsoft web site.
47
Conclusion
By studying some existing security audit programs, this research has identified some key
issues which could be improved for very novice computer users in terms of understanding and
manipulations.
This project has developed an online webpage which contains a set of security audit tools and
clear explanations texts. This project brings to novice users a simpler overview of their
computers’ security via technical audits and human behaviour assessment. Moreover this
research gives to the end users the possibility to have a better understanding in the domain of
computer security thanks to its explanations texts which describe in detail each security
element broached in the audit web page.
It would be very interesting if this project could be taken up again by next years’ students, in
order to make it technically more complete and competitive with existing commercial audit
programs.
48
References
ATK: Attack Tool Kit, (2005), http://www.computec.ch/projekte/atk/, accessed in September
2005
Kozierok Charles M., (2004), TCP common applications and server port assignment,
http://www.tcpipguide.com/free/t_TCPCommonApplicationsandServerPortAssignments.htm
accessed in September 2005.
Dr. K, (2000 B) ‘Introduction to hacking’ in A complete hacker’s handbook, Carlton Books,
GB, page 8, 9.
Eucar Online, May 2003, The Anti-Virus Test File.
URL: http://www.eicar.org/anti_virus_test_file.htm#dl accessed in August 2005
Firewall-net website www.firewall-net.com accessed in November 2004.
Garfinnke Simson and Spafford Gene and Schwartz Alan, (2003) ‘Clogging’ in Practical
UNIX and Internet Security, O’Reilly, page 792, 793.
GFI, (2005), http://www.gfi.com/lannetscan/ accessed in September2005
Gollmann Dieter, (1999 A) ‘Sniffing and Spoofing’ in Computer security, Wiley, page 226,
227.
Gollmann Dieter, (1999 B) ‘Firewalls’ in Computer security, Wiley, page 237-240.
Linux world website: ‘Dan O'Dowd Reminds World of UNIX Creator Ken Thompson's
Security Stunt’, (2004), http://www.linuxworld.com/story/44468_p.htm (accessed November
2004)
Microsoft,
(2005),
accessed in March 2005
http://www.microsoft.com/technet/security/tools/mbsahome.mspx,
Nessus, (2005), www.nessus.com/about/, accessed in Septembre 2005.
Pinkney Grahem’s lecture material (Symantec), lecture given the 7th December 2004 at
Plymouth University on network security.
Poole Owen, (2003 A) ‘port scanners’ in Network Security a practical guide, Computer
weekly professional series, page 62-64.
Poole Owen, (2003 B) ‘denial of service’ in Network Security a practical guide, Computer
weekly professional series, page 45, 46.
Rolf Oppliger, (1999) ‘Executable content: JavaScript, DirectX’ in Security technologies for
the World Wide Web, Artech House-Computer security Series, page 248-271.
49
Russel Deborah and Sr Ganjemi G.T. (1992 A) ’Computer System Security and access
Control’ in Computer Security Basics, O’reilly and association inc, page 60.
Russel Deborah and Sr Ganjemi G.T. (1992 B) ‘introduction’ in Computer Security Basics,
O’reilly and association inc, GB, page 4, 5.
Stajano Franck, (2002) ‘Computer Security’ in Security for Ubiquitous computing, Wiley,
GB, pages 60, 69, 75.
Sygate, (2005), Sygate online Services, http://scan.sygatetech.com/, accessed in September
2005.
US Department of Homeland Security Website,The article Password Protection 101 (May
2002) http://www.nipc.gov/publications/nipcpub/password.htm. (accessed November 2004)
VIAS encyclopaedia, 2004, Most important Tcp ports.
URL: http://www.vias.org/encyclopedia/tcp_importantports.html accessed in August 2005.
50
Appendix
A.
Codes
A.1
Server:
import java.net.*;
import java.io.*;
public class server
{
public static void main(String[] args) throws IOException
{
SimpleServer ss = new SimpleServer(6001);
}
}
class SimpleServer
{
ServerSocket sock;
Socket conn;
BufferedInputStream instream;
String str;
boolean med = true;
SimpleServer(int port) throws IOException
{
sock = new ServerSocket(port);
while(true)
{
try {
System.out.println("started on port" +port);
conn = sock.accept();
InetAddress addr = conn.getInetAddress();
System.out.println("addresse:" + addr);
String namehost = addr.getHostName();
System.out.println(""+namehost);
BufferedReader in =new BufferedReader( new
InputStreamReader(conn.getInputStream()));
PrintWriter out =new PrintWriter( new BufferedWriter( new
OutputStreamWriter(conn.getOutputStream())),true);
String message=in.readLine();
System.out.println(""+message);
if (message.equals("Quick"))
{
PortScanv2Quick ps = new PortScanv2Quick(namehost,addr);
System.out.println("" +message);
for (int j=0; j<31; j++)
{
if (ps.Ports[j]!=0)
med = false;
}
if (med == false)
{
int i = 0 ; String po ="your opens ports are:";
while (ps.Ports[i]!=0)
{
po = po + ps.Ports[i]+ ","; i++;
}
out.println(po);
}
else out.println("you have no opened port");
}
51
if (message.equals("Long"))
{
PortScanv2 ps = new PortScanv2(1,65535,namehost,addr);
System.out.println("" +message);
for (int j=0; j<65535; j++)
{
if (ps.Ports[j]!=0)
med = false;
}
if (med == false)
{
int i = 0 ;
String po ="your opens ports are:";
while (ps.Ports[i]!=0)
{
po = po + ps.Ports[i]+ ",";
i++;
}
out.println(po);
}
else out.println("you have no opened port");
}
in.close();
out.close();
conn.close();
}
catch ( Exception e)
{
System.out.println("error: " +e);
}
System.exit(1);
}
}
}
A.2
Portscan :
import java.net.*;
class PortScanv2
{
Socket sock; int startPort, endPort; int[] Ports=new int[65535];
int timeout; InetAddress hostAddress;
String host;
PortScanv2(int startPort, int endPort, String host, InetAddress hostAddress) throws
UnknownHostException
{
this.startPort=startPort;
this.endPort=endPort;
this.host=host;
boolean b=false;
timeout=100;
try {
hostAddress=InetAddress.getByName(host);
}
catch (Exception e)
{
this.hostAddress = hostAddress;
}
for(int i=0;i<65535;i++)
Ports[i]=0;
52
for(int currentPort=startPort,i=0;currentPort<=endPort;currentPort++)
{
try{
sock= new Socket();
sock.connect(new InetSocketAddress(hostAddress,currentPort),timeout);
b=true;
System.out.println("port opened"+currentPort );
}
catch(java.io.IOException e)
{
System.out.println("port closed "+currentPort);
b=false;
}
finally
{
try{
sock.close();
}
catch(java.io.IOException e){}
catch(NullPointerException e)
{
System.out.println(""+e);
}
}
if(b==true)
{
Ports[i]=currentPort;
b=false;
i++;
}
}
for(int i=0;i<65535;i++)
{
if(Ports[i]!=0)
System.out.println(""+Ports[i]);
}
}
}
A.3
Quick port scan:
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
class PortScanv2Quick
{
Socket sock;
int startPort, endPort;
int[] quick = new int[31];
int[] Ports=new int[31];
String host;
int timeout;
InetAddress hostAddress;
PortScanv2Quick( String host, InetAddress hostAddress) throws UnknownHostException
{
this.host=host;
53
boolean b=false;
timeout=400;
quick[0]=257;quick[1]=7;quick[2]=13;quick[3]=18;quick[4]=20;quick[5]=21;quick[6]=22;
quick[7]=23;quick[8]=25;quick[9]=31;quick[10]=37;quick[11]=42;quick[12]=43;
quick[13]=53;quick[14]=63;quick[15]=70;quick[16]=79;quick[17]=80;quick[18]=110;
quick[19]=113;quick[20]=118;quick[21]=119;quick[22]=137;quick[23]=138;quick[24]=139;
quick[25]=201;quick[26]=202;quick[27]=204;quick[28]=206;quick[29]=213;quick[30]=220;
try {
hostAddress=InetAddress.getByName(host);
}
catch (Exception e)
{
this.hostAddress = hostAddress;
}
for(int i=0;i<31;i++)
Ports[i]=0;
for(int j=0,i=0;j<31;j++)
{
try {
sock= new Socket();
sock.connect(new InetSocketAddress(hostAddress,quick[j]),timeout);
b=true;
System.out.println("port opened"+quick[j] );
}
catch(java.io.IOException e)
{
System.out.println("port closed "+quick[j]);
b=false;
}
finally
{
try {
sock.close();
}
catch(java.io.IOException e){}
catch(NullPointerException e)
{
System.out.println(""+e);
}
}
if(b==true)
{
Ports[i]=quick[j];
b=false;
i++;
}
}
}
}
A.4
Portscan CLI:
import java.applet.Applet;
import java.awt.Button;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
54
public class portscanCLI extends Applet implements ActionListener
{
Button bouton1 = new Button("Long Port Scan");
Button bouton2 = new Button("Quick Port Scan");
TextField address = new TextField("81.57.31.43", 20);
TextField scannresult = new TextField("", 30);
String conaddress;
public void init()
{
add(address);
add(bouton1);
add(bouton2);
add(scannresult);
bouton1.addActionListener(this);
bouton2.addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
if (event.getSource()==bouton1)
{
conaddress = address.getText();
client c = new client();
System.out.println(""+conaddress);
scannresult.setText("pleas wait during the scan");
repaint();
c.connection(conaddress, 6001);
scannresult.setText(""+c.scanresult);
repaint();
}
if (event.getSource()==bouton2)
{
conaddress = address.getText();
client c = new client();
System.out.println(""+conaddress);
scannresult.setText("pleas wait during the scan");
repaint();
c.connectionquick(conaddress, 6001);
scannresult.setText(""+c.scanresult);
repaint();
}
}
}
A.5
Client:
import java.net.* ;
import java.io.*;
public class client
{
static int port;
static String host;
static Socket conn;
static Mcq QCM;
public static String scanresult;
55
public static void main(String[] args)
{
//QCM = new Mcq();
//QCM.init();
}
public void connection(String address, int port)
{
host = address;
try {
conn = new Socket (host,port);
BufferedReader in =new BufferedReader( new
InputStreamReader(conn.getInputStream()));
PrintWriter out =new PrintWriter( new BufferedWriter( new
OutputStreamWriter(conn.getOutputStream())),true);
String message="Long";
out.println(message);
scanresult=in.readLine();
System.out.println(message);
out.println("END");
in.close();
out.close();
conn.close();
}
catch(Exception e)
{
System.out.println("erreur:" +e);
System.exit(1);
}
}
public void connectionquick(String address, int port)
{
try {
host = address;
}
catch (Exception e)
{
host = "localhost";
port = 13;
}
try {
conn = new Socket (host,port);
BufferedReader in =new BufferedReader( new InputStreamReader(conn.getInputStream()));
PrintWriter out =new PrintWriter( new BufferedWriter( new
OutputStreamWriter(conn.getOutputStream())),true);
String message="Quick";
out.println(message);
scanresult=in.readLine();
System.out.println(message);
out.println("END");
in.close();
out.close();
conn.close();
56
}
catch(Exception e)
{
System.out.println("erreur:" +e);
System.exit(1);
}}
A.6
Test virus:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintStream;
import java.io.PrintWriter;
public class testvirus
{
String cmd;
File f = new File("c:\\eicar.exe");
testvirus()
{
}
void ecrire()
{
PrintWriter out;
try {
out=
new PrintWriter(new BufferedWriter(new FileWriter(f)));
out.println("X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARDANTIVIRUS-TEST-FILE!$H+H*");
System.out.println("done");
out.close();
}
catch (IOException e)
{
System.out.println(e.toString());
}
}
void efface()
{
f.delete();
System.out.println("file erased");
}
}
A.7
Test virus CLI:
import java.applet.Applet;
import java.awt.Button;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class testvirusCLI extends Applet implements ActionListener
{
Button bouton4 = new Button("Antivirus Test");
Button bouton5 = new Button("erase the antivirus test file");
57
public void init()
{
add(bouton4);
add(bouton5);
bouton4.addActionListener(this);
bouton5.addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
if (event.getSource()== bouton4)
{
testvirus tv = new testvirus();
tv.ecrire();
}
if (event.getSource()== bouton5)
{
testvirus tv = new testvirus();
tv.efface();
}
}
}
A.8
Password:
import java.applet.Applet;
import java.awt.Button;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URL;
public class passV2 extends Applet implements ActionListener
{
String pw;
TextField passw = new TextField("enter a password", 20);
TextField time = new TextField("", 60);
Button bouton = new Button("test your password");
private String mot;
public void init()
{
add(passw);
add(bouton);
add(time);
bouton.addActionListener(this);
}
public void actionPerformed(ActionEvent event)
{
byte[] word = null;
if(event.getSource()==bouton)
58
{
pw = passw.getText();
int longueur = pw.length();
if (pw == "enter a password" || pw == null)
{
time.setText("please enter a password");
repaint();
}
else
{
try {
boolean test = dico(pw);
System.out.println(test);
if (test == true)
{
time.setText("your password is a dictionnary word or a similar, it
took a few seconds to crack it");
}
else
{
word = pw.getBytes("ASCII");
int count = comparer(word, longueur);
String text = "it will take approximatively less than"
+count+ "minutes to crack your password.";
time.setText(text);
repaint();
}
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
private int comparer(byte[] word, int longueur)
{
int min = 0,maj = 0,cara = 0,chiffre = 0;
int tmp = 0;
for (int i = 0; i< longueur; i++)
{
if (48>word[i] && word[i]>33)
cara ++;
if (253<word[i]&& word[i]>122)
cara ++;
if (word[i]>48 && word[i]<58)
chiffre++;
if (word[i]>96 && word[i]<123)
min++;
if (word[i]>64 && word[i]<91 )
maj++;
if (57<word[i] && word[i]<64)
cara++;
if (90<word[i] && word[i]<97)
cara++;
}
59
if (maj!=0 && min !=0 && chiffre !=0 && cara!=0)
tmp = longueur*4320;
if (maj==0 && min !=0 && chiffre ==0 && cara==0)
tmp = longueur*4;
if (maj==0 && min !=0 && chiffre !=0 && cara==0)
tmp = longueur*30;
if (maj!=0 && min !=0 && chiffre !=0 && cara==0)
tmp = longueur*150;
return tmp;
}
public boolean dico(String mot)
{
URL u;
InputStream is;
BufferedReader dis;
String ligne;
boolean med = false;
try {
System.out.println(mot);
URL urlDocBase = getDocumentBase();
u = new URL(urlDocBase, "http://dcool75.free.fr/mot.txt");
dis = new BufferedReader(new InputStreamReader(u.openStream()));
/*System.out.println(mot);
is = u.openStream();
System.out.println(mot);
dis = new DataInputStream(is);*/
System.out.println(mot);
ligne = dis.readLine();
while (ligne != null)
{
System.out.println(ligne);
if (mot.equals(ligne))med=true;
ligne = dis.readLine();
}
}
catch(Exception e) {}
return med;
}
}
A.9
MCQ:
import java.applet.Applet;
import java.awt.Button;
import java.awt.Canvas;
import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.IOException;
60
import java.util.Properties;
public class Mcq2 extends Applet implements ItemListener, ActionListener
{
int risk=0;
Checkbox Q1Y, Q1N, Q2Y, Q2N, Q3Y, Q3N,Q4Y,Q4N,
Q5Y,Q5N,Q6Y,Q6N,Q7Y,Q7N,Q8Y,Q8N,Q9Y,Q9N,Q10Y,Q10N,Q11Y,Q11N,Q12Y,Q12N,Q13Y,Q13N,Q14
Y,Q14N,Q15Y,Q15N,Q16W,Q16M,Q16L,Q17A, Q17B,Q17C,Q17D, Q18Y,Q18N,Q19Y,Q19N;
Button bouton, bouton1, bouton2, bouton3, bouton4, bouton5, bouton6, bouton7, bouton8, bouton9, bouton10,
bouton11, bouton12, bouton13, bouton14, bouton15, bouton16, bouton17, bouton18, bouton19, bouton20,
bouton21, bouton22, bouton23, bouton24, bouton25, bouton26, bouton27, bouton28, bouton29, bouton30,
bouton31, bouton32, bouton33, bouton34, bouton35, bouton36, bouton37, bouton38, bouton39,bouton40,
bouton41;
Button bouton28;
int counter=0;
//Process r = Runtime.getRuntime();
CheckboxGroup Q1 = new CheckboxGroup();
CheckboxGroup Q3 = new CheckboxGroup();
CheckboxGroup Q5 = new CheckboxGroup();
CheckboxGroup Q7 = new CheckboxGroup();
CheckboxGroup Q9 = new CheckboxGroup();
CheckboxGroup Q11 = new CheckboxGroup();
CheckboxGroup Q13 = new CheckboxGroup();
CheckboxGroup Q15 = new CheckboxGroup();
CheckboxGroup Q17 = new CheckboxGroup();
CheckboxGroup Q19 = new CheckboxGroup();
CheckboxGroup Q2 = new CheckboxGroup();
CheckboxGroup Q4 = new CheckboxGroup();
CheckboxGroup Q6 = new CheckboxGroup();
CheckboxGroup Q8 = new CheckboxGroup();
CheckboxGroup Q10 = new CheckboxGroup();
CheckboxGroup Q12 = new CheckboxGroup();
CheckboxGroup Q14 = new CheckboxGroup();
CheckboxGroup Q16 = new CheckboxGroup();
CheckboxGroup Q18 = new CheckboxGroup();
CheckboxGroup Q20 = new CheckboxGroup();
TextField t = new TextField("",20);
String lvl1 = "Your computer and your behaviours have a low risk";
String lvl2 = "Your computer and your behaviours are not very risky, but there are some dangerous
elements";
String lvl3 = "your computer has a high security risk, you should improve it and change your
behaviour";
String emsg = "you have not completed the MCQ";
public void start()
{
setSize(543,604);
setBackground(Color.lightGray);
Label Question1 = new Label();
Question1.setText(" Do you have a firewall installed on your computer ? ");
Question1.setAlignment(0);
add(Question1);
add(Q1Y= new Checkbox("yes", Q1, false));add(Q1N= new Checkbox("No", Q1, false));
Q1Y.addItemListener(this);
Q1N.addItemListener(this);
Label Question2 = new Label();
Question2.setText(" If yes, do you think it is configured proprely ? ");
Question2.setAlignment(Label.LEFT);
add(Question2);
add(Q2Y= new Checkbox("yes", Q2, false));add(Q2N= new Checkbox("No", Q2, false));
Q2Y.addItemListener(this);
Q2N.addItemListener(this);
Label Question3 = new Label();
Question3.setText(" Do you have a antivirus installed on your computer ? ");
Question3.setAlignment(Label.LEFT);
add(Question3);
add(Q3Y= new Checkbox("yes", Q3, false));add(Q3N= new Checkbox("No", Q3, false));
Q3Y.addItemListener(this);
Q3N.addItemListener(this);
61
Label Question4 = new Label();
Question4.setText(" Is your antivirus program up to date ? ");
Question4.setAlignment(Label.LEFT);
add(Question4);
add(Q4Y= new Checkbox("yes", Q4, false));add(Q4N= new Checkbox("No", Q4, false));
Q4Y.addItemListener(this);
Q4N.addItemListener(this);
Label Question5 = new Label();
Question5.setText(" Do you frequently update your computer's software components ? ");
Question5.setAlignment(Label.LEFT);
add(Question5);
add(Q5Y= new Checkbox("yes", Q5, false)); add(Q5N= new Checkbox("No", Q5, false));
Q5Y.addItemListener(this);
Q5N.addItemListener(this);
Label Question6 = new Label();
Question6.setText(" Do you have a anti-spyware tool ? ");
Question6.setAlignment(Label.LEFT);
add(Question6);
add(Q6Y= new Checkbox("yes", Q6, false));add(Q6N= new Checkbox("No", Q6, false));
Q6Y.addItemListener(this);
Q6N.addItemListener(this);
Label Question7 = new Label();
Question7.setText(" Do you use a password to access your machine ? ");
Question7.setAlignment(Label.LEFT);
add(Question7);
add(Q7Y= new Checkbox("yes", Q7, false));add(Q7N= new Checkbox("No", Q7, false));
Q7Y.addItemListener(this);
Q7N.addItemListener(this);
Label Question8 = new Label();
Question8.setText(" Is your password a dictionnary word ? ");
Question8.setAlignment(Label.LEFT);
add(Question8);
add(Q8Y= new Checkbox("yes", Q8, false));add(Q8N= new Checkbox("No", Q8, false));
Q8Y.addItemListener(this);
Q8N.addItemListener(this);
Label Question9 = new Label();
Question9.setText(" Do you change your password regularly ? ");
Question9.setAlignment(Label.LEFT);
add(Question9);
add(Q9Y= new Checkbox("yes", Q9, false));add(Q9N= new Checkbox("No", Q9, false));
Q9Y.addItemListener(this);
Q9N.addItemListener(this);
Label Question10 = new Label();
Question10.setText(" Do you verify the security level of webpages you visit ? ");
Question10.setAlignment(Label.LEFT);
add(Question10);
add(Q10Y= new Checkbox("yes", Q10, false));add(Q10N= new Checkbox("No", Q10, false));
Q10Y.addItemListener(this);
Q10N.addItemListener(this);
Label Question11 = new Label();
Question11.setText(" Do you download files from unknown sources ? ");
Question11.setAlignment(Label.LEFT);
add(Question11);
add(Q11Y= new Checkbox("yes", Q11, false));add(Q11N= new Checkbox("No", Q11, false));
Q11Y.addItemListener(this);
Q11N.addItemListener(this);
Label Question12 = new Label();
Question12.setText(" Do you use any per2per software ? ");
Question12.setAlignment(Label.LEFT);
add(Question12);
add(Q12Y= new Checkbox("yes", Q12, false));add(Q12N= new Checkbox("No", Q12, false));
Q12Y.addItemListener(this);
Q12N.addItemListener(this);
Label Question13 = new Label();
Question13.setText(" Do you leave any personnal information on the net ? ");
Question13.setAlignment(Label.LEFT);
add(Question13);
add(Q13Y= new Checkbox("yes", Q13, false));add(Q13N= new Checkbox("No", Q13, false));
Q13Y.addItemListener(this);
Q13N.addItemListener(this);
62
Label Question15 = new Label();
Question15.setText(" Have you ever configured Internet access parameters ? ");
Question15.setAlignment(Label.LEFT);
add(Question15);
add(Q15Y= new Checkbox("yes", Q15, false));add(Q15N= new Checkbox("No", Q15, false));
Q15Y.addItemListener(this);
Q15N.addItemListener(this);
Label Question14 = new Label();
Question14.setText(" Do you have any software with unkown or illegal origin on your pc ? ");
Question14.setAlignment(Label.LEFT);
add(Question14);
add(Q14Y= new Checkbox("yes", Q14, false));add(Q14N= new Checkbox("No", Q14, false));
Q14Y.addItemListener(this);
Q14N.addItemListener(this);
Label Question16 = new Label();
Question16.setText(" Are you using Windows, MAC or Linux ? ");
Question16.setAlignment(Label.LEFT);
add(Question16);
add(Q16W= new Checkbox("Window", Q16, false));
add(Q16M= new Checkbox("Mac", Q16, false));
add(Q16L= new Checkbox("Linux", Q16, false));
Q16W.addItemListener(this); Q16M.addItemListener(this);Q16L.addItemListener(this);
Label Question17 = new Label();
Question17.setText(" How long do you spend online everymonth ? ");
Question17.setAlignment(Label.LEFT);
add(Question17);
add(Q17A= new Checkbox("0h - 10H ", Q17, false));
add(Q17B= new Checkbox("10H - 50H", Q17, false));
Label trou = new Label(); trou.setText("
");
add(trou);
add(Q17C= new Checkbox("50H - 200H", Q17, false));
add(Q17D= new Checkbox("+ 200H", Q17, false));
Q17A.addItemListener(this);
Q17B.addItemListener(this);
Q17C.addItemListener(this);
Q17D.addItemListener(this);
Label Question18 = new Label();
Question18.setText(" Do you share any files on Internet ? ");
Question18.setAlignment(Label.LEFT);
add(Question18);
add(Q18Y= new Checkbox("Yes", Q18, false));add(Q18N= new Checkbox("No", Q18, false));
Q18Y.addItemListener(this);
Q18N.addItemListener(this);
Label Question19 = new Label();
Question19.setText(" Do you regulary process to the storage of your data ? ");
Question19.setAlignment(Label.LEFT);
add(Question19);
add(Q19Y= new Checkbox("Yes", Q19, false));add(Q19N= new Checkbox("No", Q19, false));
Q19Y.addItemListener(this);
Q19N.addItemListener(this);
add (bouton28 = new Button("MCQ completed"));
add(t);
bouton28.addActionListener(this);
}
public void itemStateChanged(ItemEvent e)
{
counter++;
System.out.println(""+counter);
}
public void actionPerformed(ActionEvent
event)
{
if(event.getSource()== bouton28)
{
risk = 0;
if (Q1.getCurrent()==Q1Y)
{
risk = risk+0;
System.out.println(" "+risk);
}
if (Q1.getCurrent()==Q1N)
{
risk = risk +3;
System.out.println(" "+risk);
}
if (Q2.getCurrent()==Q2Y)
{
risk = risk +0;
63
System.out.println(" "+risk);
}
if (Q2.getCurrent()==Q2N)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q3.getCurrent()==Q3Y)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q3.getCurrent()==Q3N)
{
risk = risk +3;
System.out.println(" "+risk);
}
if
(Q4.getCurrent()==Q4Y)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q4.getCurrent()==Q4N)
{
risk = risk +2;
System.out.println(" "+risk);
}
if
(Q5.getCurrent()==Q5Y)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q5.getCurrent()==Q5N)
{
risk = risk +3;
System.out.println(" "+risk);
}
if
(Q6.getCurrent()==Q6Y)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q6.getCurrent()==Q6N)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q7.getCurrent()==Q7Y)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q7.getCurrent()==Q7N)
{
risk = risk +3;
System.out.println(" "+risk);
}
if
(Q8.getCurrent()==Q8Y)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q8.getCurrent()==Q8N)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q9.getCurrent()==Q9Y)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q9.getCurrent()==Q9N)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q10.getCurrent()==Q10Y)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q10.getCurrent()==Q10Y)
{
risk = risk +1;
System.out.println(" "+risk);
}
64
if
(Q11.getCurrent()==Q11Y)
{
risk = risk +3;
System.out.println(" "+risk);
}
if
(Q11.getCurrent()==Q11N)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q12.getCurrent()==Q12Y)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q12.getCurrent()==Q12N)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q13.getCurrent()==Q13Y)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q13.getCurrent()==Q13N)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q14.getCurrent()==Q14Y)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q14.getCurrent()==Q14N)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q15.getCurrent()==Q15Y)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q15.getCurrent()==Q15N)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q16.getCurrent()==Q16W)
{
risk = risk +3;
System.out.println(" "+risk);
}
if
(Q16.getCurrent()==Q16M)
{
risk = risk +2;
System.out.println(" "+risk);
}
if
(Q16.getCurrent()==Q16L)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q17.getCurrent()==Q17A)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q17.getCurrent()==Q17B)
{
risk = risk +1;
System.out.println(" "+risk);
}
if
(Q17.getCurrent()==Q17C)
{
risk = risk +2;
System.out.println(" "+risk);
}
if
(Q17.getCurrent()==Q17D)
{
risk = risk +3;
System.out.println(" "+risk);
}
65
if
(Q18.getCurrent()==Q18Y)
{
}
if (counter >= 19)
{
calcul();
}
else t.setText(""+emsg);
}
risk = risk +2;
System.out.println(" "+risk);
}
if
(Q18.getCurrent()==Q18N)
{
risk = risk +0;
}
}
public void calcul()
{
t.setText("your score is:" +risk);
/*if(risk <= 5)
{
t.setText(""+lvl1);
}
if (risk >5 && risk <= 10 )
{
t.setText(""+lvl2);
System.out.println(" "+risk);
}
if
(Q19.getCurrent()==Q19Y)
{
risk = risk +0;
System.out.println(" "+risk);
}
if
(Q19.getCurrent()==Q19N)
{
risk = risk +1;
}
if (risk >10)
{
t.setText(""+lvl3);
}*/
}
}
System.out.println(" "+risk);
A.10
Key logger server:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
public class serverkey
{
public static void main(String[] args) throws IOException
{
serverkey sk = new serverkey();
}
serverkey()
{
ServerSocket sock;
Socket conn,conn1;
try {
sock = new ServerSocket(6003);
System.out.println("server launched");
while (true)
{
conn = sock.accept();
InetAddress addr = conn.getInetAddress();
System.out.println("connection etablie");
System.out.println(addr);
66
BufferedReader in =new BufferedReader( new
InputStreamReader(conn.getInputStream()));
String keylogg=in.readLine();
System.out.println(keylogg);
//conn.close();
//conn1 = new Socket(addr, 6002);
String donne = "Retransmitted from the server 81.57.31.43 ";
donne = donne +keylogg;
PrintWriter out = new PrintWriter(new BufferedWriter( new
OutputStreamWriter(conn.getOutputStream())),true);
out.println(donne);
conn.close();
}
}
catch ( Exception e)
{
System.out.println("error: " +e);
System.exit(1);
}
}
}
A.11
Keylogger CLI:
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class clavier extends java.applet.Applet
implements KeyListener
{
String med,med1,keylog;
String S="";
String m ="";
Socket conn;
boolean nb = true;
public void paint(Graphics g)
{
g.drawString("write a few words",10,30);
g.drawString(S, 10, 60);
// g.drawString(m, 10, 90);
}
public void init()
{
addKeyListener(this);
}
public void start()
{
requestFocus();
}
67
public void keyPressed(KeyEvent evt)
{
if (nb == true)
{
char Caract = evt.getKeyChar();
if (S.length()<20)
{
if (Caract!=0)
{
S = S + Caract;
repaint();
}
}
if (S.length()== 20)
{
nb = false;
System.out.println("10 lettres");
try {
keylog =envoie(S);
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
public String envoie(String log) throws IOException
{
this.med = log;
try {
conn = new Socket ("81.57.31.43", 6003);
PrintWriter out = new PrintWriter(new BufferedWriter( new
OutputStreamWriter(conn.getOutputStream())),true);
BufferedReader in =new BufferedReader( new InputStreamReader(conn.getInputStream()));
System.out.println(""+med);
out.println(med);
med1=in.readLine();
JFrame fm = new JFrame();
fm.setTitle("data received from server");
fm.setSize(400,200);
JLabel txt = new JLabel(med1);
fm.getContentPane().add(txt, BorderLayout.CENTER);
fm.setVisible(true);
}
catch(Exception e)
{
System.out.println("erreur:" +e);
System.exit(1);
}
return med1;
}
public void keyTyped(KeyEvent evt) { }
public void keyReleased(KeyEvent evt) { }
}
68
B. Explanation pages
B.1 Audit tools
B.1.i
Computer's ports
Programs of your computer can access simultaneously to internet; for instance, you can read a
webpage with your web browser and download a file via FTP. This can happen because each
these programs uses a protocol. And to distinguish data from each program and their protocol,
they are attributed a port. So we can say that every data transmitted has to go through a
specific port.
This schema shows different programs using the same Internet connection, but with different
ports.
What are the risks?
As you have just learned, every data going out from your computer and coming in from
Internet need to use a port. So if a hacker wants to access your computer, he/she needs to use
them too. That is why it is important to configure properly your ports.
There are exactly 65536 ports, from 1 to 1024 are called "well known ports" because they
have been definitely associated with specific programs. Other can be chosen randomly by
other programs for their usage.
69
The port scan process proposed in the previous page will allow you to see which ports are
opened, and which are closed. If you have found a opened port when there is no programs
accessing Internet, there should be something wrong on your computer.
What to do if you have some opened ports
It is totally natural to have some opened ports on your computer, so do not panics about the
result of the port scan.
If you have some opened ports it does not mean that you have somebody trying to break in
your computer, but there is some active programs which use ports to access to Internet.
Basically, before launching the port scan, you should shut down all running programs, then if
there still are some opened ports, you can find out which program is using it, by checking
your firewall logs.
This picture shows the logs of Seagate Personal Firewall where every program accessing
Internet is shown with its associated port.
If you notice any unauthorised programs, just run your antivirus or anti spy-ware tool to fix
the problem.
70
B.1.ii
Key loggers
Key loggers are one of the commonly used hacking tools. They run secretly in the background
of the operating system and record all the user’s keystrokes and send them back to the Hacker.
Its legal use was for parents who wanted to keep an eye on their children’s activities on the
computer. Unfortunately, hackers turned this kind of programs into another purpose. Now,
they are sent attached to emails, and if the victim has the bad idea to double click on it, it will
be discreetly installed, then send all captured data to an email address or a FTP address.
Key loggers are used by hackers to steal users’ passwords or private information.
Here we will just show you how key loggers work, you will be asked to type a few words,
which will be sent to the server, then the server will send the data back to the Webpage. If
some Hackers use key loggers, they will configure the server to send the data to their
computers. This tool will just show you how your personal data can be stolen and sent to
somebody else.
B.2.iii
Antivirus test
In this test, you will download from Internet a file which contains a small part of an inactive
virus; it is totally danger free and will not infect your computer.
If your Antivirus is properly configured, it will detect the part of virus in the file's content,
then warm you about the danger and finally give you the possibility to delete the file.
In the case your Antivirus had no reaction that means it may not carry out its job. Verify
firstly that it is running, then go to its configuration options and check out that it is inspecting
every file you download from Internet and every program before you launch them. If your
Antivirus does not have theses options, I should advice you to install another antivirus.
71
B.2
Explanation pages
B.2.i
What is a Firewall
Firewalls are a significant security element of a computer or network. It could be software
based, which means that it can be installed on your computer or hardware based which means
that it can be integrated on your modem or router. It will provide an access control to your
computer. By building a barrier between the machine and Internet, it would prevent
unauthorised access to computers’ private information.
The most common Personal Firewall uses a packet switching analyses. When a computer
communicates with Internet, all the information transmitted is divided into packets. The
firewall will analyse every packet which come in and out of your computer. If it detects any
unauthorised communications, it will block it.
Firewall is the first point to check when we would like to know the security level of a
computer. If it is absent, that would mean the current PC’s integrity is already compromised.
There are several free personal firewall downloadable from Internet.
What are the risks
If you do not have a firewall installed on your computer, you do not have any barrier between
your computer and Internet. Without this barrier, you have no protections against malicious
persons who try to break in your PC.
The basic elements managed by the firewall are the communications ports of your computer.
To transmit information with Internet, your machine uses different virtual ports for specific
data. For instance E-mails have a specific communication port, WebPages have another one,
FTPs have it's own port. These ports are a very important element for hackers, who can detect
weakness of your computer and break in easily if they are left opened. When the firewall is
activated, it will close them by default and open some of them to allow authorised programs
to access to internet.
What is a Firewall configured properly
It not all to have a Firewall installed on your computer, it is vital to configured it properly.
This means that you should take the right decision about which program will be authorised to
connect to internet and transmit data.
Usually every time a program try to access Internet, the firewall will ask you if you allow it or
not. If you do not know the program, deny the permission.
We will see a example of firewall configuration with Seagate Personal Firewall downloadable
here. Every time a program wants to access to Internet, the following window will appear:
72
Then you can choose to allow or not this program to access Internet.
Here, it is Real One Player, a program that I installed that asks the permission, so I can allow
him.
Another important point in firewall configuration and monitoring is to check frequently its
reports logs.
Reports logs stock information about event met by the firewall like external attack, ports
scanned....
It is very important to verify with these logs that the firewall plays its role.
The following picture shows an example of traffic log.
There is also a security log to see all external attacks, their origin and their risks.
73
B.2.ii
Patches updates
Is your softwares and Operating Systems up to date?
No software product is perfect and their weaknesses are discovered and exploited by hackers
very quickly. Here is a graphic which show the delay between the discovery of softwares’
vulnerability and the moment it is exploited.
To prevent your machine from new exploits, program designers are producing patches for
every new security hole discovered on their programs. Users should regularly patch their PC
and keep their softwares up to date.
If not, in a very short time your host’s security would be compromised.
B.2.iii
Antivirus
Antivirus is the software usually associated with the firewall, their roles are complementary.
Firewalls verify which information can enter your computer, but once the access is granted it
would not look at the content of this information. Antivirus has as mission to scan the content
of data which have pass through the firewall. For instance, some downloaded programs would
be scanned for virus before the user could launch them.
There are several antivirus on the market, the most famous one is Norton antivirus, but there
are also some free ones like AVG or AVast .
They have basically the same functionality: they have a database where all existing viruses
are listed ( this database is called Virus Definition ) and they compare the content of files you
have downloaded with this database. If any files have a match with a virus definition, the
program warms you and deletes the infected file.
This comparison is called a "file scan", you can also use antivirus to scan the entire content of
your computer. To keep your computer safe, it is advised to do a complete scan frequently.
Recently, a new form of antivirus has appeared, they are called online antivirus , they do not
need to be installed on your computer. Using Internet to connect to your computer, they
perform scans of your computer with the most recent Virus Definition. One of the most
famous is from Panda Antivirus.
Antivirus risks
If you do not have any antivirus installed on your computer, you can not check out programs
and files you launch are safe.
Usually, the first thing Hackers do to break in a victim's computer is to make him download
and install him/her self a malicious program. These malicious programs can have several
purposes, they can give to the hacker directly the control of the PC, or they can just inform the
hacker about the victim like passwords used, WebPages visited, content of e-mails sent. With
this kind of information, Hackers can easily find out personal detail about the victim like
his/her profession, bank account number etc....
74
To avoid this kind of intrusion, Antivirus is a key element.
Antivirus update
It is very important to have your antivirus up to date, which means that it has a virus
definition as recent as possible.
Hackers are creating continuously new viruses and malicious code to bypass antivirus and
firewall protection.
Fortunately, security companies develop updates for Antivirus to counter these new threats.
That is why it is crucial to regularly download the new version of the Virus Definition to
allow the antivirus to detect and protect you from new malicious codes.
If your antivirus is not updated, it will be inefficient against recent virus.
A lot of people consider that having just a antivirus is enough, this is a misconception. How
can a be a antivirus created few years ago efficient against viruses created last week, if it has
not been updated recently.
B.2.iv
Passwords
Password is a basic element of your security. By using passwords, you will deny access to
your computer to unauthorised people.
If you do not use password access to your computer, I recommend you to add one. To do that,
go to User Accounts icon from the Control panel, and click on your account.
Here you can see that User Paul do not have any password, so click on Paul and choose to
create a password.
75
Once the new password is set up, click on create password.
Password risks
Passwords are a crucial element for your security. When you are opening your online email
box you are sending your login and password through Internet with an encryption system.
This method seems to be secure, but as seen in the previous chapter, hackers can actually use
packet sniffing programs which would catch your data and obtain your password with some
password cracking tools. If your password is a dictionary world or a name, it would take
approximately a few second to crack it.
Here are some questions provided by US Department of Homeland Security Website (2002)
to verify the quality of your password security. [12]
Every year thousands of computers are illegally accessed because of weak passwords. How
many users are guilty of any of the following things?
* Writing down a password on a sticky note placed on or near your computer.
* Using a word found in a dictionary. That's right, a dictionary. Any dictionary!
*
Using
a
word
from
a
dictionary
followed
by
2
numbers.
* Using the names of people, places, pets, or other common items.
*
Sharing
your
password
with
someone
else.
* Using the same password for more than one account, and for an extended period of time.
* Using the default password provided by the vendor.
Chances are, if you are anything like the majority of computer users, you answered yes to one
or more of the above questions. The problem is, hackers are aware of these problems as well
and target those who don't take the correct precautions.
Change the password regularly
76
Why should we change our password regularly?
As I explained earlier, all passwords can be cracked by using brute force attacks, but it takes
time. It may take weeks or months to a hacker to guess your password. So by changing it
regularly you will make it even harder to guess.
In addition if your password is already compromised, you can not really notice it, so change it
frequently will give you a extra security.
Dictionary words
Commonly, people's passwords are dictionary words or family members' names; it is easier
for them to remember. Hackers do know that, and have created some hacking tools which can
crack them.
Basically, these tools will try to guess your password by submitting to the computer a very
large list of words. Firstly they will enter all existing first names and words from dictionary:
this is called a dictionary attack. If your password is a dictionary word, it takes a matter of
seconds to be found.
If the dictionary attack has no result, the tool will switch to the second sort of attack: brute
force attack. Here the tool will try to guess the password by submitting every possible
combination of keys from the keyboard. This second method is much more time and power
consuming.
B.2.v
Download from unknown sources
The most common way to introduce a malicious program in your computer is to make you
download it yourself.
A huge number of viruses are designed to be sent by e-mails as attached file. The " I love You
" virus may be the most famous example; with an attractive name, it encourage people to
download it.
If you have the bad habit to download all attached files you receive by e-mail without taking
any precaution, you have a very high risk to be infected.
You should verify if you know the sender of the e-mail before downloading any attached file,
then before launching it, you should scan if to check it does not contain any virus.
E-mails are not the only way hackers have found to spread malicious codes; they also exploit
the naivety of some Internet users. They put some viruses on their website, pretending they
are safe and ordinary software, if the user download the file, he/she will infect his/her
computer.
Thus, when you are downloading files from Internet, you should always check the website is
trustable or not. If it is a personal website do not trust it. If it is a big e-commerce website like
Amazon or dowload.com files should be safe, but even here do not forget to scan the file with
your antivirus before launching it.
77
B.2.vi
Illegal software
Illegal copies of commercial software also called "Warez" is a problem that grown in
important recently. With the explosion of broadband connections, it is really a kid’s game to
find and download a commercial software copy from Internet.
There are two important things to know about that.
Firstly, as you can imagine, it is totally illegal to own any software you do not have bought
the licence. If this kind of things is found in your possession, you can be heavily fined.
Secondly, these illegal copies found on Internet are made by anonymous hackers. So you do
not really what is inside. Actually, they could have put some virus or troyen on it
Illegal softwares risks
In a security point of view, these illegal copies can be very dangerous, as hacker could have
put some malicious codes on it, we can never be sure the copy you are using is totally safe.
Once installed, the copied software may work properly, but, some hacking programs could be
installed in the same time, without you notice it, they can transmit to the hacker information
from your computer.
B.2.vii Internet configuration
Internet is the default Web browser of Microsoft Windows, thus, it is the most common
program used to access to Internet. Unfortunately, it has several weaknesses and need an
adapted configuration to provide a good level of security for the user.
Ordinary users just plug in their Internet connection; do not spend any time to understand how
to configure the connection and use default parameters of the Web browser.
In this page, we are going to go though a number of elements to check to ensure a maximum
security level for your internet connection. We will use Microsoft Internet Explorer as
example because it is the most common one, but they are applicable to other Web browsers
like Netscape or Mozilla Firefox.
Firstly, open Internet Explorer and go to its configuration page from the menu tools/Internet
Options.
78
The Home page address is where you can
define the first Webpage you can when you
launch Internet explorer.
Temporary Internet files are copies of content
from
WebPages
you
have
visited.
Theses files can be useful because if you visit
these pages again, Internet Explorer will not
download once more their content, but just
compare with the temporary files and if they
match, it will display them. That process
decrease the time to display and save your
bandwidth. Do not allocate too much space for
theses files: 10 Mo should be alright.
History contains addresses of websites you
have visited; do not conserve them for a long
time to avoid showing your whole Internet
activities to everybody.
Let's go to the next thumbnail: Security:
Internet Explorer has different security
policy depending on the type of
Website you are visiting. These
Websites are regrouped into four
categories called "zone".
Trusted sites and Restricted sites are the
websites you totally trust or mistrust,
you can add manually sites' addresses
on these two categories by clicking on
Sites.
The other two zones: Internet and Local
Intranet are also configurable, just slide
the Security level for this zone bar and
choose between low, medium and high
security policy.
79
The Privacy thumbnail:
Here, you will be able to manage you
cookies.
Cookies are files created when you
visit some websites and where is
recorded your actions on this site.
They will allow the website to provide
you a customised presentation from
your previous activities at your next
visit.
Cookies make your Internet surfing
more comfortable, but they also create
a database of your activities on
Internet, which can be used against
you by malicious people.
Here you can define the cookies
policies depending on the website.
The Content:
The Content Advisor allows you to
define which pages can be viewed by
Internet Explorer and which can not.
This option is a very useful tool for
parents who would like to control
activities of their children on Internet.
Certificates are used by websites to
allow users to verify the trust ability of
their
contents.
Here you can define which certificates
you are trust and which you do not.
In personal information, you can allow
Internet Explorer to auto complete
websites addresses, login and passwords
you are submitting. I advice you not to
use this option, if not anybody who use
your computer will be able to use your
passwords.
80
In connections and programs thumbnails, you can configuration your connection parameters
and define which program should be launched in association with a specific type of files.
In the last thumbnail: advanced, you can find several parameters dealing with the security. It
will be too time wasting to explain each of them, so I will give you the recommended
parameters to set.
B.2.viii
per2per softwares
Per2Per softwares are used by Internet subscribers to share their files. It's like a giant library
where everybody let his/her books to be borrowed by others.
This principle created an enormous database where practically every movie, game, book, or
software can be found and downloaded.
But it has two key problems, firstly you can not be sure about the safety of the file you are
downloading, there is no way to find out who is sharing the file you are downloading.
81
So it is always possible to find some hacked programs on it.
Secondly, a major party of the shared files are illegal copies of software, movies and music,
and by downloading them you can be heavily fined.
B.2.ix
Operating Systems security difference
There are tree main Operating Systems installed on ordinary users' computers:
Microsoft Windows, Mac OS for Macintosh machines and Linux.
Basically, Windows is the most popular and the most easy to use system. Because of this
popularity, it is the target of most of existing virus and other hacking programs.
So we can consider that it is more vulnerable in a security point of view to use Windows than
any other Operating Systems.
Mac Os is the default Operating Systems of Macintosh computers, as they are not widely used,
there are far less malicious programs developed for this OS. We can consider that using Mac
Os is safer.
Linux have been considered for a long time as the infallible system against hackers. It's main
asset is to be Open source, which means that the codes the system is based on is free and
accessible for everybody. As there are thousands of voluntary programmers in the world,
every time a exploitable weakness of Linux is discovered, these programmers develop very
quickly (a question of days) a program to cover the problem.
Hackers want to develop programs that can hit a maximum number of victims, they will not
spend their time to create something especially for Linux based systems (less than 5% of
computer users) when they can affect Windows users ( more than 90% of computers users).
It does not exist a Operating System sure at 100%, even Linux does have some security
problems. But the security risk is more important when you are using Windows.
In the other hand, Linux based Operating Systems are very complex to use, and can be a real
B.2.x
Web Pages security level
With the development of e-commerce and e-services like Internet banking, there are more
and more confidential data transmitted over Internet.
To protect them, there are some encryption systems.
So when you are giving any important information like credit card number, bank account
number, or personal information, it is crucial to verify the security level of the Web Page.
Most of e-commerce or e-banking sites use specific protocols to ensure transmitted data
security. When one site's communication is protected there is a lock symbol at the bottom of
the page
.
82
Recently, hackers have fund a new way to exploit easy trusted users' behavior, they call it
phishing. The name phishing comes from the contraction of fishing and phreaking, it is
considered as a social engineering technique which means that it does not exploit any
technical weakness of your machine but the human failure of its user.
Basically, hackers will sent to the victim an email using the identity of a bank or a ecommerce site. This email contains a hyperlink which drives the user to a webpage with the
same looking as the reel website of the company and where he/she is invited to update the
personal data of his/her profile.
As the hacker selects the victims randomly, the email has usually no sense because the victim
can not be customers of the company the hacker has chosen. But there still has a chance that
the victim has really an account in that bank or e-commerce site.
Once the hacker obtains the login and password of the user, he/she can transfer directly
money if it is a bank account, purchase goods if it is a credit card number.
You got to know that normally banks or other organizations consider this kind of information
too important to be transmitted though Internet, they will never ask you to provide them
online.
B.2.xi
Shares
In Internet terms, shares mean files or folders of your computer which are accessible from any
computer on Internet.
There are a few ways to share files on Internet:
FTP (File Transfer Protocol): is as given by the name a protocol dedicated to files transfer
and
files
sharing
from
distant
computers.
It works in a client/server Principe; the client can access the files on the server.
So if you have a FTP server running on your computer, make sure it is properly configured.
Otherwise, anybody will be able to connect to your computer and manipulate its files.
LAN shares: By default, it is possible to share files in LANs ( Local Area Network ), which
means that users from the LAN can freely access data you have shared on your computer.
Usually, members of a LAN regroup people who know each other ( company, building... ),
thus there is a very low security risk. But, the danger still exist, LAN members can
unconsciously have installed some malicious programs which can compromise the integrity of
shared documents on the LAN. Moreover users who access your data can mismanipulate them:
delete by error, change its content... So to protect your data, you should avoid any file sharing,
when it is really necessary, allow only users to see you files but not to modify it.
83
B.2.xii Anti-Spy ware tools
Nowadays, there are more and more malicious programs that can be unconsciously
downloaded by Internet users. Spy wares are one of them, they are created to collect user
personal data and to send them back to their designer.
We can define two types of spy ware:
Spy ware for commercial use: they collect data from the users and have a visible interaction
with them. This interaction can be customised commercials sent to the user's email, pop up
windows, etc...
Spy ware for malicious use: using the same pprinciple, they steal personal data, and send
them to the designer without the user notice it. These data can be used by hackers to break
into the computer, or to steal the user's identity etc...
To eliminate these problems, it is advisable to avoid any unknown software installation and
run regularly a anti-spy ware tool to check out your hard disk.
You can find on Internet some free anti-spy ware softwares like Ad-Aware, and Spybot
Search & Destroy
B.2.xiii
Connected time
The amount of time your computer is connected to Internet is an important element to
evaluate the security risk.
Recent studies have proved that a computer connected to Interne with no protection ( firewall,
antivirus, anti-spy ware ... ) is infected after in average 20 minutes. So even if you have some
security tools, the security risk increase with the time you are connected.
The user should be aware of that risk. For instance if your computer is connected 24 hours a
day, 7 days a week, your should be fare more vigilant about the security of your Pc than an
user who connects only once a week to check his/her e-mails.
B.2.xiv
Data storage
Your personal data is certainly the most important thing in your computer.
All security softwares have the role to protect the data against unauthorised access (firewall),
and to guaranty its integrity for your access (antivirus).
Modern companies consider their data as a vital element of their business, and spend
thousands of dollars to keep it safe. For instance, they will do a daily record of all their data
files. If something happens to their data (erased by mistake, integrity compromised by
hackers' attacks...) they will return to the yesterday back up. Thus the information losses will
be minimum.
This back up method can also be used by ordinary computer users. As we can never be 100%
sure of computer security, it can be prudent to make a monthly record of your data.
84
B.2.v
Personal information
With the creation of new online services like e-banking, e-renting etc... you are frequently
asked to enter personal information like your address, telephone number, credit card number
etc...
Do you always give this kind of information without think about it?
If the answer is YES, your behaviour may be dangerous. Firstly because the information you
are sending thought Internet can be caught by anybody with some hacking acknowledge. With
your personal information, hackers can for instance steal your identity and purchase with your
credit card what they want.
Fortunately, some encryption systems allow you to transmit information with a much lower
risk to be caught and exploited by hackers. To be sure that the information you are sending
will be encryption, just check at the bottom of your web browser that there is a lock
.
So it is very important to avoid as possible to give any personal information online, but when
it is really necessary, verify the website use encryption communications.
85
Download