History and theories
Self-replicating structure
John von Neumann
Game theory
Hydrogen bomb
Self-replicating automata (1966)
Universal machine
Universal constructor
Information tape
Alan Turing
Turing machine
Cellular automaton
John Horton Conway
Game of life (1970)
Core (1966) war
A.k.a. Darwin
People
Robert Morris Sr.
Victor Vyssotsky
Dennis Ritchie
Objective
Kill opponent's programs by overwriting them
Morris worm (1988)
Robert Morris Jr.
First computer worm on Internet
Genesis of computer virus
Creeper and Reaper (1971)
Quine (1972)
John Walker's Animal game (1975)
Elk Cloner (1982)
Brain (1986)
Jerusalem (1987)
Stoned (1987)
Cascade (1988)
Classifications
Virus
By coding method
Polymorphic code
Mutate code
Encryption
Avoid signature detection
Keep original
Hidden measure
Self-modifying code
Alter instructions while execute
Alphanumeric code
Methmorphic code
Reprogram
Shell code
Local
Remote
By infect host
File infector virus
Boot sector virus
MBR virus
Multipartite virus
Marco virus
By infection strategies
Marco
written in marco language
Network
Spread by network, seeking for vulnerable system
Logical bomb
Set off a malicious function upon specified conditions meet
Cross-site scripting
Vulnerability which allow code injection in web applications
Sentinels
Allow remote control of infected host
Zombie for DDoS
Companion
Found in MS-DOS
Boot sector
Alter/hide in boot sector and affect disks
Multiparttite
Combination of file and bootsector virus
Trojan horse
Pure trojan
Modification of applications
Backdoor
Upon execute
Program design flaw
Worm
Network virus
Mailers
Send themselves in an e-mail
Mass-mailers
Send multiple e-mails including a copy of themselves
Octopus
Exists as a set of programs on more than one computer on a network
Rabbits
Exists as a single copy of itself at any point in time as it "jumps around" on networked hosts
Malware
Software designed to infiltrate and damage computer
Virus Hoaxes
False message about nonexist virus attacks
Rootkits
Undetectable
Allow attacker to gain root privilege
Not a virus, control by human
Not an exploit
Dangerous when combine with virus
Computer virus
The term first used by Fred Cohen in 1984
Definition: A virus is a program that is able to infect other programs by modifying them to include a possibly evolved copy of itself
Virus must execute itself
Virus must replicate itself
Components
Replicator
Control the spread
Concealer
Keep virus undetected
Bomb
Activation conditions for execution
Virus scanner
Signature
Identify viruses
Knowledge base
Behaviour base
Naming conventions
<malware_type>://<platform>/<family_name>. <group_name>.<infective_length>. <variant><devolution><modifiers>
Network associate
Prefix
Type of file/platform infected
Infix
Suffix
Distinguish variants
Testing
EICAR testfile
By European Institute for Computer Antivirus Research (1990)
Test the response of Anti-virus programs
Without use of real virus
A text file with 68 or 70 bytes length
Virus scanner will response like a real alarm
Virus Simulators
Types
1. Demonstrate the effects of some real computer viruses
2. Simulate a virtual environment
3. Generate files containing scan strings used by some scanners to detect real viruses
Uses
Educational purpose
Antivirus quality test
Antivirus installation check