MỤC LỤC
MỞ ĐẦU............................................................................................................ 4
CHƯƠNG I: TỔNG QUAN VỀ VIRUS........................................................... 6
1.1. Lịch sử phát triển của virus ................................................................... 6
1.2. Các khái niệm có liên quan................................................................... 11
1.3. Phân loại virus ...................................................................................... 20
1.3.1. B- virus ........................................................................................... 21
1.3.2. F- virus............................................................................................ 24
1.4. Tác hại của virus................................................................................... 27
CHƯƠNG II: CÁCH THỨC PHÁ HOẠI CỦA VIRUS VÀ CÁCH
PHÒNG TRÁNH............................................................................................. 29
2.1. Cách thức phá hoại của virus ............................................................... 29
2.1.1. Cách thức phá hoại của B- virus ................................................... 29
2.1.2. Cách thức phá hoại của F- virus.................................................... 39
2.2. Cách thức phát hiện và chữa trị virus ................................................ 49
2.2.1. Cách thức phát hiện và chữa trị B- virus...................................... 49
2.2.2. Cách thức phát hiện và chữa trị F- virus ...................................... 52
2.3. Cách phòng tránh virus ........................................................................ 54
2.3.1 Sử dụng phần mềm diệt virus......................................................... 54
2.3.2 Sử dụng tường lửa........................................................................... 54
2.3.3 Cập nhật các bản sửa lỗi của hệ điều hành.................................... 55
2.3.4 Vận dụng kinh nghiệm sử dụng máy tính...................................... 55
2.3.5 Bảo vệ dữ liệu máy tính .................................................................. 56
CHƯƠNG III: ỨNG DỤNG VIẾT CHƯƠNG TRÌNH TROJAN LẤY
CẮP MẬT KHẨU ........................................................................................... 58
KẾT LUẬN...................................................................................................... 60
TÀI LIỆU THAM KHẢO............................................................................... 61
1
Danh sách ký hiệu, từ viết tắt
Từ viết tắt
Tên đầy đủ
DDoS
Distributed Denial of Service
SWF
Shock Ware Flash
BSD
Berkeley System Distribution
SQL
Structured Query Language
DCOM
Distributed Component Object Model
RPC
Remote Procedure Call
LSASS
Local Security Authority Subsystem Service
PC
Personal Computer
API
Application Programming Interface
JPEG
Joint Photographic Experts Group
B- virus
Boot virus
F- virus
File virus
HĐH
Hệ điều hành
SB- virus
Single Boot virus
DB- virus
Double Boot virus
TSR
Terminate and Stay Resident
TF- virus
Transient File virus
RF- virus
Resident File virus
CPU
Central Processing Unit
BIOS
Basic Input/ Output System
CD
Compact Disk
ROM
Read Only Memory
POST
Power On Self Test
RAM
Random Access Memory
BPB
Bios Parameter Block
FAT
File Allocation Table
NDD
Norton Disk Doctor
2
CMOS
Complementary Metal Oxide Semiconductor
MCB
Memory Control Block
PSP
Program Segment Prefix
AV
Anti virus
MD5
Message Digest Algorithm 5
PE header
Portable Executable
3
MỞ ĐẦU
Mặc dù virus tin học đã xuất hiện khá lâu trên thế giới và trong nước ta,
song đối với người sử dụng và cả những người làm công tác tin học, virus tin
học vẫn là vấn đề nan giải, nhiều khi nó gây các tổn thất về mất mát dữ liệu
trong máy tính, gây các sự cố trong quá trình vận hành máy. Sự nan giải này
có nhiều lý do:
- Thứ nhất, các kiến thức về phần cứng hệ thống khó hơn các kiến thức
về lập trình phần mềm trên các ngôn ngữ bậc cao và các chương trình ứng
dụng, đặc biệt những thông tin cần thiết về hệ thống không được DOS chính
thức công bố hoặc là các thông tin dành riêng, điều này làm cho những người
đề cập ở mức hệ thống không nhiều.
- Thứ hai, hầu như rất ít các tài liệu về virus tin học được phổ biến, có
lẽ người ta nghĩ rằng, nếu có các tài liệu đề cập đến virus một cách tỉ mỉ, hệ
thống thì số người tò mò, nghịch ngợm viết virus sẽ còn tăng thêm nữa.
- Thứ ba, số lượng các virus xuất hiện khá đông đảo, mỗi virus có một
đặc thù riêng, một cách hoạt động và một cách phá hoại riêng. Để tìm hiểu cặn
kẽ về một virus không thể thực hiện trong một khoảng thời gian ngắn được,
điều này làm nản lòng những người lập trình muốn tìm hiểu về virus.
Tuy đã xuất hiện khá nhiều những chương trình tiêu diệt virus và khôi
phục lại đĩa, khôi phục lại các file bị nhiễm, song trong những trường hợp cụ
thể, đôi khi các phần mềm này cũng không giải quyết được vấn đề. Có nhiều
lý do:
- Thứ nhất, mỗi chương trình chỉ tiêu diệt loại virus mà nó biết.
- Thứ hai, chúng ta đều biết rằng, sau khi một virus nào đó xuất hiện nó
mới được nghiên cứu và mã nhận biết của nó mới được đưa vào danh mục, khi
đó chương trình mới có khả năng tiêu diệt được. Điều đó có nghĩa là có thể có
các loại virus xuất hiện trong máy tính của chúng ta mà các chương trình kiểm
tra virus vẫn thông báo đã quét xong virus. Đặc biệt là các virus do những
người lập trình trong nước viết, hầu hết không được cập nhật vào các chương
trình kiểm tra và tiêu diệt virus như SCAN, F- PROT, UNVIRUS.
4
Vì các lý do nêu trên việc phòng chống virus vẫn là biện pháp tốt nhất
để tránh việc virus xâm nhập vào trong hệ thống máy của mình. Trong trường
hợp phát hiện có virus xâm nhập, ngoài việc sử dụng các chương trình diệt
virus hiện đang có mặt trên thị trường, việc hiểu biết cơ chế, các đặc điểm phổ
biến của virus là những kiến thức mà những người làm công tác tin học nên
biết để có cách xử lý cho phù hợp.
Nội dung của đồ án này đưa ra những hiểu biết cơ bản về virus, lịch sử
phát triển, các loại virus, tác hại và cơ chế lây nhiễm của virus. Trên cơ sở đó
đề cập đến các phương pháp phòng tránh, phát hiện và tiêu diệt những virus
thường gặp. Các kiến thức này cộng với các phần mềm diệt virus hiện có trên
thị trường có tác dụng hạn chế virus trong việc lây lan, phá hoại của virus nói
chung.
Đề tài “ Nghiên cứu về virus tin học” được chia làm 3 chương:
Chương I: Tổng quan về virus
Chương II: Cách thức phá hoại của virus và cách phòng tránh
Chương III: Ứng dụng viết chương trình Trojan lấy cắp mật khẩu.
Vì điều kiện thời gian không nhiều, kinh nghiệm còn hạn chế nên đồ án
không tránh khỏi các thiếu sót, em rất mong nhận được các ý kiến đóng góp
của các thầy cô và bạn bè để đề tài của em được hoàn thiện hơn.
Sinh viên thực hiện
5
CHƯƠNG I: TỔNG QUAN VỀ VIRUS
1.1. Lịch sử phát triển của virus
Trong khoa học máy tính, virus máy tính (thường được người sử dụng
gọi tắt là virus) là những chương trình hay đoạn mã được thiết kế để tự nhân
bản và sao chép chính nó vào các đối tượng lây nhiễm khác (file, ổ đĩa, máy
tính…).
Virus máy tính có một quá trình phát triển khá dài, có nhiều tài liệu
khác nhau nói về xuất xứ của virus máy tính, bởi lẽ vào thời điểm đó con
người chưa thể hình dung ra nổi một “xã hội” đông đúc và nguy hiểm của
virus như ngày nay. Chỉ khi chúng gây ra hậu quả nghiêm trọng như ngày nay,
người ta mới lật lại hồ sơ để tìm hiểu. Đa số các câu chuyện xoay quanh việc
xuất xứ của virus đều ít nhiều liên quan tới các sự kiện sau:
- 1983- Để lộ nguyên lý của trò chơi “Core War”: Core War là một
cuộc đấu trí giữa hai đoạn chương trình máy tính do hai lập trình viên viết ra.
Mỗi đấu thủ sẽ đưa ra một chương trình có khả năng tự tái tạo gọi là Organism
vào bộ nhớ máy tính. Khi bắt đầu cuộc chơi, mỗi đấu thủ sẽ cố gắng phá hủy
Organism của đối phương và tái tạo Organism của mình. Đấu thủ thắng cuộc
là đấu thủ tái tạo được nhiều Organism nhất.
Trò chơi này được giữ kín đến năm 1983, Ken Thompson người đã viết
phiên bản đầu tiên cho hệ điều hành UNIX, đã để lộ ra khi nhận một trong
những giải thưởng danh dự của giới điện toán – Giải thưởng A.M Turing.
Trong bài diễn văn của mình ông đã đưa ra một ý tưởng về virus máy tính dựa
trên trò chơi “Core War”. Cũng năm 1983, tiến sĩ Frederick Cohen đã chứng
minh được sự tồn tại của virus máy tính.
Tháng 5 năm 1984 tờ báo Scientific America có đăng một bài báo mô
tả về “Core War” và cung cấp cho độc giả những thông tin hướng dẫn về trò
chơi này. Kể từ đó virus máy tính xuất hiện và đi kèm theo nó là cuộc chiến
giữa những người viết ra virus và những người diệt virus.
- 1986- Brain virus: có thể được coi là virus máy tính đầu tiên trên thế
giới, Brain âm thầm đổ bộ từ Pakistan vào nước Mỹ với mục tiêu đầu tiên là
6
trường đại học Delawave. Một nơi khác trên thế giới cũng mô tả sự xuất hiện
của virus, đó là đại học Hebrew- Israel.
- 1987- Lehigh virus xuất hiện: lại một lần nữa liên quan đến một
trường đại học. Lehigh chính là tên một virus xuất hiện tại trường đại học này.
Trong thời gian này cũng có 1 số loại virus khác xuất hiện, đặc biệt là Worm
virus (sâu virus), cơn ác mộng với các hệ thống máy chủ cũng xuất hiện.
- 1988- Virus lây trên mạng: Ngày 2 tháng 11 năm 1988, Robert Morris
đưa virus vào mạng máy tính quan trọng nhất của Mỹ gây thiệt hại lớn, từ đó
trở đi người ta mới nhận thức được tính nguy hại của virus máy tính.
- 1989- AIDS Trojan: xuất hiện Trojan hay còn gọi là “con ngựa thành
Troie”, chúng không phải là virus máy tính nhưng luôn đi cùng với khái niệm
virus. Những “chú ngựa thành Troie” này khi đã gắn vào máy tính của bạn thì
nó sẽ lấy cắp một số thông tin mật trên đó và gửi đến một địa chỉ mà chủ chú
ngựa này muốn nó vận chuyển đến, hoặc đơn giản chỉ là phá hủy dữ liệu trên
máy tính của bạn.
- 1991- Tequila virus: đây là loại virus đầu tiên mà giới chuyên môn
gọi là virus đa hình, nó đánh dấu một bước ngoặt trong cuộc chiến giữa cái
thiện và cái ác trong các hệ thống máy tính. Đây thực sự là loại virus gây đau
đầu cho những người diệt virus và quả thật không dễ dàng gì để diệt chúng.
Chúng có khả năng tự thay hình đổi dạng sau mỗi lần lây nhiễm, làm cho việc
phát hiện ra chúng quả thật là khó.
- 1992- Michelangelo virus: tiếp nối sự đáng sợ của virus đa hình năm
1991, công cụ năm 1992 này tạo thêm sức mạnh cho các loại virus máy tính
bằng cách tạo ra sự đa hình cực kỳ phức tạp.
- 1995- Concept virus: sau gần 10 năm kể từ ngày virus máy tính đầu
tiên xuất hiện, đây là loại virus đầu tiên có nguyên lý hoạt động gần như thay
đổi hoàn toàn so với các tiền bối của nó. Chúng gây ra một cú sốc cho những
công ty diệt virus cũng như những người tình nguyện trong lĩnh vực phòng
chống virus máy tính. Những năm sau đó, những virus theo nguyên lý của
virus Concept được gọi chung là virus macro, chúng tấn công vào các hệ soạn
7
thảo văn bản của Microsoft (Word, Exel, Powerpoint). Tuy nhiên cho tới nay,
các virus macro hầu như không còn tồn tại nữa và cùng với việc mọi người
không còn sử dụng macro trong văn bản của mình nữa thì virus macro đang
dần bị quên lãng.
- 1996- Boza virus: khi hãng Microsoft chuyển sang hệ điều hành
Windows95 và họ cho rằng virus không thể công phá thành trì của họ được thì
năm 1996 xuất hiện virus lây trên hệ điều hành Win95.
- 1997- Melissa, Bubbleboy virus: đây thực sự là một cơn ác mộng đối
với các máy tính trên khắp thế giới. Sâu Melissa không những kết hợp các tính
năng của sâu Internet và virus macro mà nó còn biết khai thác một công cụ mà
chúng ta thường sử dụng hàng ngày là Microsoft Outlook Express để chống
lại chúng ta. Khi máy tính của bạn bị nhiễm Melissa, nó sẽ tự phân phát mình
đi mà khổ chủ không hay biết. Chỉ từ ngày thứ 6 tới thứ 2 tuần sau, virus này
đã kịp lây nhiễm 250 ngàn máy tính trên thế giới thông qua mạng Internet,
trong đó có Việt Nam, làm thiệt hại hàng trăm triệu USD. Một lần nữa cuộc
chiến lại sang một bước ngoặt mới, báo hiệu nhiều khó khăn bởi Internet đã
được chứng minh là công cụ hữu hiệu để virus máy tính có thể lây lan trên
toàn cầu chỉ trong vài tiếng đồng hồ.
- 2000- DDoS, love letter virus: có thể coi là một trong những vụ việc
virus phá hoại lớn nhất từ trước đến thời điểm đó. Love letter có xuất xứ từ
Philippines do một sinh viên nước này tạo ra, chỉ trong vòng có 6 tiếng đồng
hồ đã kịp đi vòng qua 20 nước trong đó có Việt Nam, lây nhiễm 55 triệu máy
tính, gây thiệt hại 8,7 tỷ USD.
Năm 2000 cũng là năm ghi nhớ cuộc “tấn công từ chối dịch vụ phân
tán” –DDoS (Distributed Denial of Service) quy mô lớn do virus gây ra đầu
tiên trên thế giới, nạn nhân của đợt tấn công này là Yahoo!,
Amazon.com…Tấn công “từ chối dịch vụ” -DDoS là tấn công gây “ngập lụt”
bằng cách từ một máy gửi liên tiếp các yêu cầu vượt mức bình thường tới một
dịch vụ trên máy chủ, làm ngưng trệ, tê liệt khả năng phục vụ của dịch vụ hay
máy chủ đó. Những virus loại này phát tán đi khắp nơi và nằm vùng ở những
8
nơi nó lây nhiễm. Chúng sẽ đồng loạt tấn công theo kiểu DDoS vào các hệ
thống máy chủ khi người điều hành nó phất cờ hoặc đến thời điểm được định
trước.
- 2001- Winux Windows/ Linux virus, Nimda, Code Red Virus: Winux
Windows/ Linux virus đánh dấu những virus có thể lây được trên các hệ điều
hành Linux chứ không phải chỉ Windows. Chúng ngụy trang dưới dạng file
MP3 cho download.
Nimda, Code Red Virus là những virus tấn công những đối tượng của
nó bằng nhiều con đường khác nhau (từ máy chủ sang máy chủ, từ máy chủ
sang máy trạm, từ máy trạm sang máy trạm…) làm cho việc phòng chống vô
cùng khó khăn. Chúng cũng chỉ ra một xu hướng mới của tất cả các loại virus
máy tính là “tất cả trong một”, trong một virus có nhiều virus, nhiều nguyên lý
khác nhau.
- 2002- Sự ra đời của hàng loạt virus mới: Ngay trong tháng 1 năm
2002 đã có một loại virus mới ra đời. Virus này lây những file .SWF
(ShockWareFlash- một loại công cụ giúp làm cho các trang web thêm phong
phú), điều chưa từng xảy ra trước đó. Tháng 3 đánh dấu sự ra đời của loại
virus viết bằng ngôn ngữ C#, một ngôn ngữ mới của Microsoft. Con sâu .Net
này có tên Sharpa và được viết bởi một phụ nữ.
Tháng 5 SQLSpider ra đời và chúng tấn công các chương trình dùng
SQL. Tháng 6 có vài loại virus mới ra đời: Perrun lây lan qua Image JPEG.
Scalper tấn công các FreeBSD/Apache Web Server.
Người sử dụng máy tính trên thế giới bắt đầu phải cảnh giác với 1 loại
chương trình độc hại mới mang mục đích bất hợp pháp –Adwave và thu thập
thông tin cá nhân trái phép –Spywave (phần mềm gián điệp). Lần đầu tiên các
chương trình Adwave, Spywave xuất hiện như là các chương trình độc lập,
không phải đi kèm theo các phần mềm miễn phí như trước đó. Chúng bí mật
xâm nhập vào máy của người dùng khi họ vô tình “ghé thăm” các trang web
có nội dung không lành mạnh, các trang web bẻ khóa phần mềm…Và với
9
nguyên lý như vậy, ngày nay các phần mềm Adwave và Spywave đã thực sự
trở thành những “bệnh dịch” hoành hành trên mạng Internet.
- 2003- Các virus khai thác lỗ hổng phần mềm: Năm 2003 mở đầu thời
kỳ phát triển mạnh mẽ của các virus khai thác lỗ hổng phần mềm để cài đặt,
lây nhiễm lên các máy tính từ xa, đây cũng chính là xu hướng phát triển hiện
nay của virus trên thế giới. Đầu tiên là virus Slammer khai thác lỗ hổng phần
mềm Microsoft’s SQL 2000 server, chỉ trong vòng 10 phút đã lây nhiễm trên
75000 máy tính trên khắp thế giới. Tiếp đến là hàng loạt các virus khác như
Blaster (MsBlast), Welchia (Nachi), Mimail, Lovgate…khai thác lỗi tràn bộ
đệm trong công nghệ DCOM –RPC trên hệ điều hành Window 2K, XP. Xuất
hiện trên thế giới vào ngày 11/8, virus Blaster nhanh chóng lây lan trên
300.000 máy tính trên khắp thế giới trong đó có Việt Nam. Những người sử
dụng máy tính ở Việt Nam hẳn không quên sự hỗn loạn vì hàng loạt máy tính
bị Shutdown tự động trong ngày 12/8 khi virus Blaster lây lan vào các máy
tính ở Việt Nam.
Virus cũng bắt đầu được sử dụng như 1 công cụ để phát tán thư quảng
cáo (spam) nhanh nhất. Các virus họ Sobig nổi lên như những cỗ máy phát tán
một lượng thư quảng cáo khổng lồ trên thế giới. Cũng trong năm này, thế hệ
virus mới như Lovgate, Fizzer đã bắt đầu sử dụng những mạng chia sẻ file
ngang hàng peer to peer như KaZaa để phát tán virus qua các thư mục chia sẻ
trên mạng.
- Năm 2004- Cuộc chạy đua giữa Skynet và Beagle: cuộc chạy đua
giữa hai họ virus cùng có nguồn gốc từ Đức và lây nhiễm nhiều nhất trong
năm này bắt đầu bằng việc các biến thể mới của virus Skynet khi lây nhiễm
vào một máy tính sẽ tìm cách loại bỏ các virus họ Beagle ra khỏi máy đó và
ngược lại. Mỗi biến thể của Skynet xuất hiện trên thế giới thì gần như ngay lập
tức sẽ có một biến thể của Beagle được viết ra để chống lại nó và ngược lại.
Cuộc chạy đua này kéo dài liên tục trong mấy tháng đã làm cho số lượng virus
mới xuất hiện trong năm 2004 tăng lên một cách nhanh chóng.
10
Năm 2004 cũng là năm xuất hiện virus khai thác lỗ hổng của dịch vụ
LSASS (Local Security Authority Subsystem Service) trên hệ điều hành
window 2K, window XP để lây lan giữa các máy tính –virus Sasser. Cũng
giống như virus Blaster, virus Sasser nhanh chóng gây nên một tình trạng hỗn
loạn trên mạng khi làm shutdown tự động hàng loạt máy tính mà nó lây
nhiễm.
- 2005- Sự xuất hiện của các virus lây qua các dịch vụ chatting: Các
dịch vụ chatting trực tuyến như Yahoo!, NSM bắt đầu được virus lợi dụng như
một công cụ để phát tán virus trên mạng. Trong vòng 6 tháng đầu năm, đã có
tới 7 virus lây lan qua các dịch vụ chatting xuất hiện ở Việt Nam. Trong thời
gian tới những virus tấn công thông qua các dịch vụ chatting sẽ còn tiếp tục
xuất hiện nhiều hơn nữa khi số người sử dụng dịch vụ này ngày càng tăng.
1.2. Các khái niệm có liên quan
- Sâu máy tính (worm): là các chương trình có khả năng tự nhân
bản, tự tìm cách lan truyền qua hệ thống mạng (thường là qua hệ thống thư
điện tử). Điểm cần lưu ý ở đây, ngoài tác hại thẳng lên máy bị nhiễm, nhiệm
vụ chính của worm là phá các mạng thông tin, làm giảm khả năng hoạt động
hay ngay cả hủy hoại các mạng này. Nhiều nhà phân tích cho rằng worm khác
với virus, họ nhấn mạnh vào đặc tính phá hoại mạng nhưng ở đây worm được
biết là một loại virus đặc biệt. Là loại virus có sức lây lan rộng, nhanh và phổ
biến nhất hiện nay. Worm kết hợp cả sức phá hoại của virus, sự bí mật của
Trojan và hơn thế nữa là sự lây lan đáng sợ mà những kẻ viết virus trang bị
cho nó, một kẻ phá hoại với vũ khí tối tân, tiêu biểu như Mellisa hay Love
letter. Với sự lây lan đáng sợ chúng đã làm tê liệt hàng loạt các hệ thống máy
chủ, làm ách tắc đường truyền. Vào thời điểm ban đầu, Worm được dùng để
chỉ những virus phát tán bằng cách tìm các địa chỉ trong sổ địa chỉ (Address
book) của máy mà nó đang lây nhiễm, đó thường là địa chỉ của bạn bè, người
thân hay khách hàng của chủ máy. Tiếp đến nó tự gửi chính nó qua email cho
những địa chỉ mà nó tìm thấy, tất nhiên với địa chỉ gửi là chính bạn, chủ sở
hữu của chiếc máy hay giả danh một ai đó. Điều nguy hiểm là các email virus
11
đều có nội dung hấp dẫn hoặc được virus trích dẫn nội dung của một email
trong hộp thư của nạn nhân để tạo ra phần nội dung của email giả mạo. Điều
này giúp cho email giả mạo có vẻ “thật” hơn và người nhận dễ bị mắc lừa,
những việc này diễn ra mà bạn không hề hay biết. Với cách hoàn toàn tương
tự trên những máy nạn nhân khác, Worm có thể nhanh chóng lây lan trên toàn
cầu theo cấp số nhân. Điều đó lý giải tại sao chỉ trong vòng vài tiếng đồng hồ
mà Mellisa và Love Letter lại có thể lây lan tới hàng chục triệu máy tính trên
toàn cầu. Cái tên của nó, Worm hay “sâu Internet” cho ta hình dung ra việc
những con virus máy tính “bò” từ máy tính này qua máy tính khác trên các
“cành cây” Internet.
Với sự lây lan nhanh chóng và rộng lớn như vậy, Worm thường được
kẻ viết ra chúng cài thêm nhiều tính năng đặc biệt, chẳng hạn như chúng có
thể định cùng 1 ngày giờ và đồng loạt từ các máy nạn nhân (hàng triệu máy)
tấn công vào 1 địa chỉ nào đó, ngoài ra chúng có thể mang theo các BackDoor
thả lên máy nạn nhân cho phép chủ nhân của chúng truy nhập vào máy của
nạn nhân và có thể làm đủ mọi thứ như ngồi trên máy đó một cách bất hợp
pháp.
Khái niệm sâu Internet còn bao gồm các virus lây lan qua mạng chia sẻ
ngang hàng peer to peer, các virus lây lan qua các dịch vụ chatting và đặc biệt
là các virus khai thác các lỗ hổng phần mềm để lây lan. Các phần mềm (nhất
là các hệ điều hành và các dịch vụ trên đó) luôn chứa đựng những lỗi tiềm
tàng (ví dụ: lỗi tràn bộ đệm…) mà không phải lúc nào cũng phát hiện ra. Khi
một lỗ hổng phần mềm được phát hiện, không lâu sau đó sẽ xuất hiện các
virus có khả năng khai thác các lỗ hổng này để lây nhiễm lên các máy tính từ
xa một cách âm thầm mà người chủ máy hoàn toàn không hay biết. Từ các
máy này, Worm sẽ tiếp tục bò qua các máy tính khác trên mạng máy tính một
cách tương tự.
Worm nổi tiếng nhất được tạo bởi Robert Morris vào năm 1988. Nó có
thể làm hỏng bất kỳ hệ điều hành UNIX nào trên mạng Internet, tuy vậy, có lẽ
worm tồn tại lâu nhất là virus happy99, hay các thế hệ sau đó của nó có tên
12
Trojan. Các worm này sẽ thay đổi nội dung tệp wsok32.dll của windows và tự
gửi bản sao của chính chúng đi đến các địa chỉ cho mỗi lần gửi điện thư hay
message.
- Macro: Là virus máy tính, virus macro cũng có đầy đủ những chức
năng cần thiết như: chọn đối tượng (văn bản) để lây, khống chế hệ thống, phá
hoại, không cho lưu file, xóa thư mục, tập tin. Do tính chất đặc biệt là có thể
lây lan qua các file văn bản của Microsoft Word for Windows (Word6), loại
virus này đã gây hoang mang và làm tốn nhiều công sức của những người sử
dụng máy tính.
Macro còn nguy hiểm ở chỗ về mặt lý thuyết nó có khả năng thâm nhập
vào mọi phiên bản tương thích của Word trên các hệ điều hành khác nhau.
Loại virus này đã trở nên đáng sợ hơn cả các loại lây vào file .exe hay .com.
Hiện tượng máy bị nhiễm virus Macro: khi chúng ta chọn mục Save as hay
Close trong menu File, thông báo “Out of memory” xuất hiện và tác vụ này
không được hoàn thành ngay cả khi bạn đã đóng tất cả các ứng dụng khác lại
rồi, hay khi bạn đóng văn bản hoặc kết thúc chương trình, các file mới sửa đổi
tự động được lưu mà không cần hỏi lại, các file vừa được tạo tự động được
lưu với các tên DOC1.DOC, DOC2.DOC…mà không thông báo cho người sử
dụng gõ vào tên mới, hoặc văn bản bị đổi tên một cách bất thường, ví dụ: thay
vì văn bản được lưu với phần mở rộng .DOC như bình thường, chương trình
lại tự động lưu nó với phần mở rộng .DOT, hoặc thậm chí không có phần mở
rộng. Một hiện tượng nữa như: Word có vẻ khởi động chậm hơn mọi ngày,
trong khi đó bạn ấn phím ESC thì thông báo “The macro interrupted” xuất
hiện, khi vào menu Tool và tìm mục Macro bạn không tài nào tìm ra được
mục này mặc dù bạn nhớ rõ vị trí của nó trước đây. Macro là loại virus lây vào
những file văn bản (Microsoft Word) hay bản tính (Microsoft Exel) và cả
Microsoft Powerpoint trong bộ Microsoft Office. Macro là những đoạn mã
giúp cho các file của Office tăng thêm một số tính năng, có thể định một số
công việc sẵn có vào trong macro đấy, mỗi lần gọi các macro là các phần cài
sẵn lần lượt thực hiện, giúp người sử dụng giảm bớt được công thao tác. Có
13
thể hiểu nôm na việc dùng macro giống như việc ta ghi lại các thao tác, để rồi
tự động lặp lại các thao tác đó với chỉ một lệnh duy nhất.
- Phần mềm ác tính (malware): Chữ ghép của malicious và softwave
chỉ chung các phần mềm có tính năng gây hại như virus, worm và Trojan
horse.
- Trojan horse: Đây là loại chương trình cũng có tác hại tương tự như
virus, chỉ khác là nó không tự nhân bản ra. Như thế cách lan truyền duy nhất
là thông qua các thư dây chuyền. Để loại trừ loại này người chủ máy chỉ việc
tìm ra tập tin Trojan horse rồi xóa nó đi là xong. Tuy nhiên không có nghĩa là
không thể có hai con Trojan horse trên cùng một hệ thống. Chính những kẻ
tạo ra các phần mềm này sẽ sử dụng kỹ năng lập trình của mình để sao lưu
thật nhiều con trước khi phát tán trên mạng. Đây cũng là loại virus cực kỳ
nguy hiểm, nó có thể hủy ổ cứng, hủy dữ liệu. Thuật ngữ này được dựa vào
một điển tích cổ, đó là cuộc chiến giữa người Hy Lạp và người thành Tơ-roa.
Thành Tơ-roa là một thành trì kiên cố, quân Hy lạp không sao có thể đột nhập
vào được, người ta đã nghĩ ra một kế, giả vờ giảng hòa, sau đó tặng thành Tơroa một con ngựa gỗ khổng lồ. Sau khi ngựa được đưa vào trong thành, đêm
xuống những quân lính từ trong bụng ngựa xông ra và đánh chiếm thành từ
bên trong. Phương pháp trên cũng chính là cách mà các Trojan máy tính áp
dụng. Đầu tiên kẻ viết ra Trojan sẽ tìm cách nào đó lừa cho đối phương sử
dụng sản phẩm của mình, khi chương trình này chạy thì vẻ bề ngoài cũng như
những chương trình bình thường. Tuy nhiên song song với chương trình đó,
một phần của Trojan sẽ bí mật cài đặt lên máy nạn nhân, đến một thời điểm
định trước nào đó chương trình này sẽ ra tay xóa dữ liệu hay gửi những thứ
cần thiết cho chủ nhân của nó ở trên mạng. Khác với virus, Trojan là một đoạn
mã chương trình hoàn toàn không có tính chất lây lan, nó chỉ có thể được cài
đặt bằng cách người tạo ra nó lừa nạn nhân, còn virus thì tự động tìm kiếm
nạn nhân để lây lan.
Về cơ bản, Trojan có thể chia làm các loại sau:
14
+ Backdoor: một khi được kích hoạt, nó cho phép chủ nhân điều khiển
máy tính của người khác thông qua mạng Internet mà không bị phát hiện.
+ Kẻ Trộm mật khẩu: Những Trojan loại này thường được nhúng vào
các tập tin với nhiệm vụ đánh cắp mật khẩu. Thông thường các tiện ích bẻ
khóa phần mềm rất hay bị đính kèm với Trojan loại này.
+ Bom Logic: Bom logic sẽ thực hiện các tác vụ phá hoại hoặc bẻ gãy
hàng rào bảo mật của hệ thống khi nhận được tín hiệu điều khiển thích hợp.
+ Công cụ tấn công từ chối dịch vụ DOS: DOS Trojan khi lây vào một
máy tính sẽ gửi những thông tin được định sẵn tới đích, thường là một website
nào đó, để gây nghẽn băng thông mạng. Thông thường một hacker có thể sử
dụng vài chục đến hàng ngàn máy tính với Trojan cài sẵn để tiến hành tấn
công. Trojan loại này thường không gây hại quá tiêu cực tới máy tính mà nó
lây nhiễm ngoại trừ việc sử dụng tài nguyên và đường truyền mạng.
Các thủ đoạn của Hacker:
+ Giả danh nhà cung cấp dịch vụ: Hacker lấy danh nghĩa nhà cung cấp
dịch vụ Internet gọi điện thoại hoặc gửi e-mail yêu cầu bạn cung cấp password
hoặc đổi password theo họ gợi ý. Hacker mail cho bạn một Attached File (tập
tin ,exe) cho biết là file hỗ trợ sử dụng Internet nhưng thực chất đây là file ăn
cắp password.
+ Lợi dụng sự tin tưởng khi mượn hoặc sửa chữa máy tính của bạn họ
sẽ dễ dàng lấy mật khẩu vì đa số người dùng đều thường xuyên Save
Password vào máy.
+ Cài “gián điệp” vào máy tính của bạn: Đây là phương thức cổ điển
nhưng lại là cách ăn cắp password thông dụng và hiệu quả nhất mà không tốn
công sức, thường là file Trojan Horse được gửi qua Email với những lời mời
chào hết sức hấp dẫn, kích thích tò mò. Nếu bạn mở file này thì ngay lập tức
máy bạn đã bị nhiễm virus và từ đó trở đi, password của bạn thường xuyên gởi
về cho Hacker ngay cả khi bạn thay password mới.
Để đề phòng bị nhiễm Trojan và các loại virus, bạn cần thận trọng khi
tải các tập tin trên mạng.
15
Để tìm và diệt Trojan, bạn cần tiến hành theo các bước sau:
+ Không nên tải và chạy thử các tập tin gắn kèm thư điện tử gửi cho
bạn từ những địa chỉ thư điện tử mà bạn không rõ. Cũng vì lý do này mà tác
giả của chương trình diệt virus thông dụng BKAV đã cảnh báo có nhiều kẻ
mạo danh gửi cho bạn chương trình diệt virus mà thực chất là Trojan.
+ Sử dụng chương trình phát hiện và diệt Trojan, bạn có thể tìm kiếm
trên mạng Internet với từ khoá “Detect and destroy Trojan”.
- Phần mềm gián điệp (spywave): Đây là loại virus có khả năng xâm
nhập trực tiếp vào hệ điều hành. Thường một số chương trình diệt virus có
kèm trình duyệt spywave nhưng khả năng diệt khá kém. Phần mềm gián điệp
là một công cụ máy tính, sau khi được cài đặt lên một PC, nó sẽ chiếm một số
quyền điều khiển của người dùng.
+ Mặc dù cái tên gián điệp tạo cảm giác rằng Spywave chỉ theo dõi các
hành vi của người dùng, trên thực tế nó còn gây hại hơn như thế nhiều. Các
phần mềm gián điệp có thể thu thập thông tin cá nhân của chủ nhân chiếc máy
mà nó được cài vào ví dụ như thói quen sử dụng Internet, các trang web hay
truy cập… đồng thời can thiệp vào việc sử dụng máy của người dùng ví dụ
như tự cài đặt thêm phần mềm, chuyển hướng các lệnh website, truy cập các
trang web có virus một cách tự động hoặc thông dụng nhất là hiển thị các nội
dung quảng cáo lên khắp nơi trong hệ điều hành. Một số loại phần mềm gián
điệp còn có thể thay đổi tùy chọn của máy tính, vô hiệu hóa các thành phần
phần mềm (kể cả các chương trình diệt virus). Thông thường khi máy tính bị
nhiễm phần mềm gián điệp, nó sẽ hoạt động khá chậm với trang chủ của trình
duyệt bị đổi lung tung kèm theo sự biến mất hoặc có xuất hiện đầy bí ẩn của
các phần mềm cài đặt.
- Phần mềm quảng cáo (adwave): Loại phần mềm quảng cáo rất hay có
ở trong các chương trình cài đặt tải từ trên mạng, một số phần mềm vô hại
nhưng một số có khả năng hiển thị thông tin kịt màn hình, cưỡng chế người sử
dụng.
16
+ Trong số các phần mềm gián điệp thì phần mềm quảng cáo là thông
dụng nhất. Đây không hẳn là một loại virus phá hoại nhưng cũng phiền toái
không kém, nó thường được tích hợp trong các phần mềm miễn phí hoặc dùng
thử để giúp tác giả kiếm trác thông qua việc hiển thị các thông điệp quảng cáo
nhất định. Khoản tiền này thường được tái đầu tư để phát triển phần mềm tốt
hơn, do đó phần mềm quảng cáo có thể là tốt hay xấu tùy theo cách đánh giá
của mỗi người.
- Botnet: Là những máy tính bị bắt cóc và điều khiển bởi người khác
thông qua Trojan, virus…Điều đặc biệt nguy hiểm là các botnet được phơi bày
từ các hacker không cần kỹ thuật lập trình cao, hậu quả của nó để lại không
nhỏ: mất tài khoản. Nếu liên kết với một hệ thống máy tính lớn, nó có thể tống
tiền cả một doanh nghiệp.
- Keylogger: Là phần mềm ghi lại chuỗi phím gõ của người dùng. Nó
có thể hữu ích trong việc tìm nguồn gốc lỗi sai trong các hệ thống máy tính và
đôi khi được dùng để đo năng suất làm việc của các nhân viên văn phòng. Các
phần mềm kiểu này rất hữu dụng cho ngành luật pháp và tình báo, ví dụ: cung
cấp một phương tiện để lấy mật khẩu hoặc các khóa mật mã và nhờ đó qua
mắt được các thiết bị an ninh. Tuy nhiên các phần mềm này được phổ biến
rộng rãi trên Internet và bất cứ ai cũng có thể sử dụng cho mục đích lấy trộm
mật khẩu và chìa khóa mã hóa.
- Phishing: Là một hoạt động phạm tội dùng các kỹ thuật lừa đảo, kẻ
lừa đảo cố gắng lừa lấy các thông tin nhạy cảm, chẳng hạn như mật khẩu và
thông tin về thẻ tín dụng, bằng cách giả là một người hoặc doanh nghiệp đáng
tin cậy trong một giao dịch điện tử. Phishing thường được thực hiện bằng cách
sử dụng thư điện tử hoặc tin nhắn, đôi khi còn sử dụng cả điện thoại.
- Rootkit: Là một bộ công cụ phần mềm dành cho việc che dấu các tiến
trình đang chạy, các file hoặc dữ liệu hệ thống. Rootkit có nguồn gốc từ các
ứng dụng tương đối hiền, nhưng những năm gần đây Rootkit đã bị sử dụng
ngày càng nhiều bởi các phần mềm ác tính, giúp kẻ thâm nhập hệ thống giữ
được đường truy nhập một hệ thống trong khi tránh bị phát hiện. Người ta đã
17
biết đến các Rootkit dành cho nhiều hệ điều hành khác nhau chẳng hạn Linux,
Solaris và một số phiên bản của Microsoft Windows. Các Rootkit thường sửa
đổi một số phần của hệ điều hành hoặc tự cài đặt chúng thành các driver hay
các modul trong nhân hệ điều hành. Rootkit là phần mềm hoặc một nhóm các
phần mềm với khả năng kiểm soát gốc của một hệ thống máy tính mà không
cần bất cứ sự cho phép nào của chủ nhân máy. Thông thường Rootkit không
mấy khi điều khiển trực tiếp phần cứng mà nó chỉ kiểm soát hệ điều hành hoặc
phần mềm chạy trên một thiết bị phần cứng nhất định. Rootkit thường tự che
giấu mình khỏi các phép quản lý của hệ điều hành và có cách hành động na ná
như Trojan. Trong năm 2006- 2007, đã từng có nhiều vụ kiện cáo lộn xộn vì
một số hãng sản xuất âm nhạc đã sử dụng Rootkit để quản lý bản quyền, gây
bức xúc cho cộng đồng người dùng.
Rootkit thực tế chẳng gây ảnh hưởng xấu nào, mục đích duy nhất của
Rootkit là ẩn nấp và tránh không bị phát hiện. Tuy nhiên Rootkit được sử
dụng để giấu các đoạn mã hiểm độc thì rất nguy hiểm. Một số các sâu, virus,
Trojan và phần mềm gián điệp vẫn có khả năng duy trì và không bị phát hiện
nếu sử dụng Rootkit. Các malwave sẽ không bị phát hiện thậm chí khi hệ
thống được bảo vệ bởi các chương trình chống virus tốt nhất, do đó Rootkit
thực sự là mối đe dọa nghiêm trọng. Thực ra hiện nay chỉ có một vài các phần
mềm gián điệp và virus sử dụng Rootkit để lẩn trốn. Một trong những ví dụ
điển hình sử dụng Rootkit để xâm nhập hệ thống là vụ ăn trộm mã nguồn trò
chơi nổi tiếng Half- life 2.
Rootkit được dùng phổ biến trong các phần mềm gián điệp hơn là các
virus. Một điều chắc chắn là Rootkit là kỹ thuật còn đang phát triển, chưa có
nhiều trong thực tế nên mối đe dọa hiện tại của Rootkit không lớn lắm so với
những mối nguy hiểm tiềm tàng của kỹ thuật này.
Rootkit được phân loại dựa trên sự duy trì sau khi khởi động lại hoặc
hoạt động ở chế độ người dùng hay ở chế độ cấp hệ thống.
+ Rootkit bám dai: Là loại Rootkit kết hợp với các malwave khác hoạt
động mỗi khi hệ thống khởi động bởi vì các malwave chứa mã phá hoại sẽ
18
được thực thi tự động mỗi khi hệ thống khởi động hoặc khi người sử dụng
đăng nhập vào hệ thống. Chúng cần phải lưu trữ các đoạn mã thực thi chương
trình trong thanh ghi, các tập tin hệ thống và các phương pháp cho phép âm
thầm chạy các đoạn mã mà người sử dụng không hay biết.
+ Rootkit trên bộ nhớ: Loại Rootkit này chính là các malwave không
có những đoạn mã dai dẳng, chỉ lưu trong bộ nhớ, chính vì thế loại Rootkit
này không tồn tại sau khi khởi động lại máy.
+ Rootkit chế độ người dùng: Rootkit ở chế độ người dùng sử dụng
nhiều phương pháp khác nhau để lẩn trốn không bị phát hiện. Ví dụ: Rootkit ở
chế độ người dùng sẽ chặn tất cả các hàm gọi hệ thống API (Application
Programming Interfact- giao tiếp lập trình ứng dụng) như: FindFirstFile/
FindNextFile. Những hàm này được gọi bởi các chương trình quản lý tập tin
của Windows như Explorer và dấu đợi lệnh, để liệt kê toàn bộ các thư mục tập
tin hệ thống. Khi một ứng dụng thực thi liệt kê danh sách thư mục và các tập
tin có thể chứa Rootkit, các Rootkit này sẽ chặn các hàm này và thay đổi các
kết quả dữ liệu đầu ra nhằm loại bỏ các tập tin chứa Rootkit khỏi danh sách
liệt kê. Các hàm API hệ thống của Windows cung cấp giao tiếp giữa chế độ
người dùng và dịch vụ hệ thống. Những Rootkit ở chế độ người dùng phức tạp
hơn sẽ chặn các tập tin hệ thống, thanh ghi và các hàm liệt kê các tiến trình từ
các hàm API của hệ thống, do đó mọi sự phát hiện bởi các chương trình quét
tập tin mà lấy kết quả từ các hàm liệt kê API của Windows đều bị thay đổi.
Chính vì lẽ đó, hầu hết các chương trình diệt virus, spywave không thể phát
hiện được Rootkit.
+ Rootkit chế độ nhân: loại này nguy hiểm hơn các loại trên, chúng
không chỉ chặn các hàm API của hệ thống mà còn có thể thao tác trực tiếp các
cấu trúc dữ liệu trong chế độ nhân. Một kỹ thuật chung cho việc ẩn nấp các
tiến trình malwave là loại bỏ các tiến trình này ra khỏi danh sách các tiến trình
ở chế độ nhân, bởi vì các hàm API quản lý các tiến trình đều phải phụ thuộc
vào nội dung trong các cấu trúc dữ liệu này nên khi rootkit thay đổi nội dung
19
cấu trúc dữ liệu hệ thống thì các công cụ như Task Manager hoặc Process
Explorer cũng không thể phát hiện được.
Rootkit thực sự đã trở thành phổ biến trong các phần mềm gián điệp và
chúng cũng sẽ dần phổ biến trong các virus và sâu. Các tác giả viết virus bây
giờ đã chuyên nghiệp hơn và cũng hoạt động với mục đích kinh doanh nữa,
chính vì vậy họ hoàn toàn có đủ kỹ năng cũng như trình độ để cài đặt các
Rootkit rất phức tạp vào trong virus và sâu. Rootkit có thể làm ẩn các thư rác
và Trojan lâu hơn trên những máy bị nhiễm, đây cũng chính là nguyên nhân
dẫn đến việc bùng nổ Rootkit trong tương lai.
- Phần mềm tống tiền (Ransomwave): là loại phần mềm sử dụng một hệ
thống mật mã để mã hóa dữ liệu thuộc về một cá nhân và đòi tiền chuộc thì
mới khôi phục lại.
- Cửa hậu (Backdoor): Trong một hệ thống máy tính, cửa hậu là một
phương pháp vượt qua thủ tục chứng thực người dùng thông thường hoặc để
giữ đường truy nhập từ xa tới một máy tính trong khi cố gắng không bị phát
hiện bởi việc giám sát thông thường. Cửa hậu có thể có hình thức một chương
trình cài đặt hoặc có thể là một sửa đổi đối với một chương trình hợp pháp –
đó là khi nó đi kèm với Trojan.
1.3. Phân loại virus
Dựa vào đối tượng lây lan là file hay đĩa, ta chia virus thành hai nhóm chính:
+ B- virus (Boot virus): virus chỉ tấn công lên các Boot sector hay
Master boot.
+ F- virus (File virus): virus chỉ tấn công lên các file thi hành được
(Dạng có thể thi hành bằng chức năng 4Bh của DOS hơn là những file dạng
.COM hay .EXE).
Dù vậy cách phân chia này cũng không phải là duy nhất mà cũng
không hẳn chính xác vì sau này các F- virus vẫn phá hoại hay chèn mã phá
hoại vào Boot sector cũng như B- virus chèn đoạn mã vào file. Tuy nhiên,
những hiện tượng này chỉ nhằm phá hoại chứ không coi đó là đối tượng để lây
lan. Dạng tổng quát của một virus có thể biểu diễn bằng sơ đồ sau:
20
Tìm file/ đĩa
Nhiễm ?
Lây
Exit
Như đã giới thiệu về định nghĩa virus, đoạn mã này một lúc nào đó phải
được trao quyền điều khiển. Như vậy, rõ ràng virus phải khai thác một chỗ hở
nào đó mà máy trao quyền điều khiển lại cho nó. Thực tế có hai kẽ hở như thế
mà ta sẽ lần lượt xét sau đây.
1.3.1. B- virus
Ngày nay hầu như không còn thấy virus Boot nào lây trên máy của
chúng ta, lý do đơn giản là virus Boot có tốc độ lây lan rất chậm và không còn
phù hợp với thời đại của Internet. Tuy nhiên virus Boot vẫn là một phần trong
lịch sử của virus máy tính.
Khi máy tính của bạn khởi động, một đoạn chương trình nhỏ trong ổ
đĩa khởi động của bạn sẽ được thực thi. Đoạn chương trình này có nhiệm vụ
nạp hệ điều hành (HĐH). Sau khi nạp xong HĐH bạn mới có thể sử dụng
máy. Đoạn mã nói trên thường được để ở vùng trên cùng của ổ đĩa khởi động
và chúng được gọi là “Boot sector”. Virus Boot là tên gọi dành cho các virus
lây vào Boot sector. Các virus Boot sẽ được thi hành mỗi khi máy bị nhiễm
khởi động, trước cả thời điểm HĐH được nạp lên.
Được chia làm hai loại:
+ SB- virus (Single Boot virus): Chỉ dùng một sector thay chỗ Boot
record.
21
+ DB- virus (Double Boot virus): Chiếm nhiều sector và được chia làm
hai phần: một phần trên Boot record, một phần trên đĩa (trên vùng an toàn).
Cấu trúc chương trình B- virus: Do đặc điểm chỉ được trao quyền
điều khiển một lần khi Boot máy nên virus phải tìm mọi biện pháp tồn tại và
được kích hoạt lại khi cần thiết, xét về mặt nào đó, nó cũng giống như một
chương trình ‘Pop up’ TSR (Terminate and Stay Resident), do vậy phần
chương trình virus được chia làm hai phần, phần khởi tạo và phần thân.
- Phần khởi tạo: virus không thể dùng các chức năng của DOS để xin
được cấp phát vùng nhớ vì DOS chưa được tải vào. Để đảm bảo tính ‘pop up’
của mình, một khi đĩa được truy xuất, progvi luôn chiếm ngắt 13h. Ngoài ra,
để phục vụ cho công tác phá hoại, gây nhiễu, progvi còn chiếm cả ngắt 21h
của DOS nữa. Sau khi đã khởi tạo xong, Boot record cũ sẽ được trả lại đúng
địa chỉ và trao quyền. Đối với DB- virus, phần khởi tạo sẽ tiến hành tải toàn
bộ phần thân vào, ngay sau khi được nạp, trước khi tiến hành các bước trên.
Sơ đồ khối của phần khởi tạo:
Đã tồn tại trong bộ nhớ chưa ?
Đọc phần thân (nếu là DB- virus)
Chuyển chương trình và lưu trú
Chiếm các ngắt cứng (13h, 8h,9h)
Trả lại Boot record cũ
JMP FAR 0: 7C00h
22
- Phần thân: Là phần quan trọng của một virus, chứa các đoạn mã mà
phần lớn sẽ thay thế cho các ngắt. Có thể chia phần này thành 4 phần nhỏ
tương ứng với 4 chức năng rõ rệt.
+ Lây lan: Là phần chính của phần thân, thay thế cho ngắt 13h, có tác
dụng lây lan bằng cách copy chính chương trình này vào bất kỳ một đĩa nào
chưa nhiễm.
+ Phá hoại: Bất kỳ một virus nào cũng có đoạn mã này. Phần phá hoại
có thể chỉ mang tính hài hước, trêu chọc người sử dụng, thách đố về giải thuật
ngắn gọn…cho đến những ý đồ xấu xa nhằm hủy diệt dữ liệu trên đĩa.
+ Dữ liệu: Để lưu giữ thông tin trung gian, những biến nội tại, dùng
riêng cho chương trình virus cho đến những bộ đếm giờ, đếm số lần lây phục
vụ cho công tác phá hoại.
+ Boot record: Được xem như một phần không thể thiếu của chương
trình virus. Khi mọi việc khởi tạo đã được làm xong, Boot record này được
chuyển đến 0:7C00h và trao quyền điều khiển.
Để virus có thể tồn tại và phát triển cần phải có một số yêu cầu về môi trường
cũng như chính virus. Ta sẽ tiến hành phân tích các yêu cầu này.
Các yêu cầu của B- virus
- Tính tồn tại duy nhất: V
irus phải tồn tại trên đĩa cứng cũng như trong bộ nhớ, tuy nhiên việc tồn tại
quá nhiều bản sao của nó trên đĩa chỉ làm chậm quá trình Boot, mặt khác nó
cũng chiếm quá nhiều vùng nhớ, ảnh hưởng đến việc tải và thi hành các
chương trình khác. Đó là chưa kể đến tốc độ truy xuất đĩa sẽ chậm đi rất đáng
kể nếu có quá nhiều bản sao như thế trong vùng nhớ, chính vì lý do này, một
yêu cầu nghiêm ngặt đối với mọi loại B- virus là đảm bảo được sự tồn tại suy
nhất trên đĩa, sự tồn tại suy nhất này sẽ đảm bảo sự tồn tại duy nhất trong vùng
nhớ sau đó.
- Tính lưu trú: B- virus chỉ được trao quyền điều khiển một lần duy
nhất, do đó, để đảm bảo được tính ‘pop up’, nó phải có tính chất của một TSR,
nghĩa là phải thường trú. Tuy nhiên, khi virus vào vùng nhớ, DOS chưa được
23
trao quyền tổ chức bộ nhớ theo ý mình nên virus có quyền chiếm đoạt không
khai báo bất kỳ một lượng vùng nhớ nào mà nó cần, sau đó DOS sẽ quản lý
phần còn lại của vùng nhớ.
- Tính lây lan: Đây không phải yêu cầu cần có mà chỉ phải có nếu virus
muốn tồn tại và phát triển. Việc lây lan chỉ xảy ra trong quá trình truy xuất
đĩa, nghĩa là virus sẽ chi phối ngắt 13h để thực hiện việc lây lan.
- Tính phá hoại: Không phải là tính bắt buộc nhưng hầu như virus nào
cũng có tính phá hoại. Những đoạn mã phá hoại sẽ được kích hoạt khi đến một
thời điểm nào đó.
- Tính gây nhiễu và ngụy trang: Khi bản chất của virus được khảo sát
tường tận thì việc phát hiện virus không còn là vấn đề phức tạp. Do đó, yêu
cầu ngụy trang và gây nhiễu ngày càng trở nên cấp bách để đảm bảo tính sống
còn của virus. Việc gây nhiễu tạo nhiều khó khăn cho những nhà chống virus
trong việc theo dõi chương trình để tìm cách khôi phục Boot, việc ngụy trang
làm cho virus có một vẻ bề ngoài, làm cho khả năng phát hiện bước đầu bị bỏ
qua.
- Tính tương thích: B- virus không phụ thuộc vào hệ điều hành nào mặc
dù virus này quá lạm dụng khả năng của DOS. Tuy nhiên, vì đĩa có quá nhiều
loại nên cũng gây nhiều khó khăn cho virus trong việc thiết kế. Nó phải tương
thích, hiểu theo nghĩa lây lan được với mọi loại đĩa. Càng tương thích bao
nhiêu, khả năng tồn tại và lây lan sẽ càng cao bấy nhiêu.
1.3.2. F- virus
Là những virus lây vào những file chương trình như file .com, .exe,
.bat, .sys, .pif. Khi bạn chạy 1 file chương trình đã bị nhiễm virus cũng là lúc
virus được kích hoạt và tiếp tục tìm các file chương trình khác trong máy của
bạn để lây vào. Bạn không phải quá lo lắng về loại virus này vì thực tế các loại
virus lây file ngày nay cũng không còn xuất hiện và lây lan rộng nữa. Khi máy
tính của bạn bị nhiễm virus lây file, tốt nhất bạn nên sử dụng phần mềm diệt
virus mới nhất để quét toàn bộ ổ cứng của mình và liên hệ với nhà sản xuất để
được hỗ trợ và tư vấn.
24
Dựa vào phương pháp lây lan, F- virus được chia làm hai loại:
+ TF- virus (Transient File Virus): virus thuộc loại này không thường
trú, không chiếm ngắt, khi được trao quyền điều khiển nó sẽ tìm một hoặc
nhiều file khác để lây.
+ RF- virus (Resident File virus): virus loại này thường trú bằng các kỹ
thuật khác nhau, chi phối ngắt (ít nhất là ngắt 21h), khi ngắt này được thi
hành, ứng với những chức năng xác định file sẽ bị lây.
Cấu trúc chương trình F- virus
Hai loại virus trên có cấu trúc progvi hoàn toàn khác nhau vì sử dụng những
kỹ thuật khác nhau.
- TF- virus: Cấu trúc progvi tương đối đơn giản, chia làm ba phần: lây
lan, phá hoại và buffer.
+ Phần lây lan: có thể tổng quát như sau:
Phá
Tìm file
Nhiễm
Lây
Trả lại dữ liệu
Trả quyền điều khiển
+ Phần phá hoại: thường theo phần lây lan.
+ Phần buffer: chứa các biến nội tại của progvi, các dữ liệu của chương
trình đối tượng, các dữ liệu này sẽ được khôi phục cho file trước khi quyền
điều khiển trả cho chương trình đối tượng
- RF- virus: do chiếm ngắt và được ‘pop up’ khi cần thiết, RF- virus
được thiết kế như một TSR program, nghĩa là progvi được chia làm hai phần:
phần khởi tạo và phần thân chương trình, phần thân có cấu trúc tương tự TFvirus, cũng có ba phần nhỏ hơn phụ trách các công việc khác nhau: lây lan,
phá hoại, chứa dữ liệu.
25