SlideShare a Scribd company logo
1 of 19
Download to read offline
1
MMỞỞ ĐĐẦẦUU::
Đã từ lâu, đi kèm với sự ra đời và phát triển của các phần mền tin học đem lại
lợi ích to lớn cho người sử dụng là sự xuất hiện của các chương trình chuyên phá hoại
là virus máy tính. Các chương trình có ích đem lại sự thuận lợi cho người sử dụng bao
nhiêu thì trên phương diện phá hoại các virus máy tính cũng gây ra những thiệt hại to
lớn bấy nhiêu, thành quả lao động của nhiều người trong suốt cả thời gian dài được cất
giữ trên các máy tính đã bị phá tan tành chỉ vì bị nhiễm virus.Vì tin học càng ngày
càng là nhu cầu cấp thiết nên cũng phải chấp nhận sự tồn tại mặt trái của nó, do vậy
cần phải biết một số kiến thức cơ bản về virus cũng như cách phát hiện nó nhằm mục
đích bảo vệ được máy tính của bạn ở mức tốt nhất có thể. Đồ án này được viết nhằm
mục đích đó, tuy nhiên do khả năng có hạn của người viết đồ án này còn có nhiều
khuyết điểm mong nhận được sự góp ý để có thể hoàn thiện hơn. Em xin cảm ơn cô
Trần Hồ Thủy Tiên và thầy Nguyễn Tấn Khôi đã tận tình hướng dẫn và các bạn cùng
lớp đã gợi ý rất nhiều để có thể hoàn thành đồ án này.
2
MỤC LỤC
MỞ ĐẦU: ............................................................................................................................................ 1
CƠ CHẾ PHÁT HIỆN VÀ BÁO ĐỘNG VIRUS ............................................................................... 3
A/Lý Thuyết:........................................................................................................................................ 3
I/Một số khái niệm cơ bản về Virus: ................................................................................................... 3
1/Định nghĩa: ....................................................................................................................................... 3
2/Phân Loại:......................................................................................................................................... 3
3/Tính chất của Virus:.......................................................................................................................... 3
4/Các công nghệ của Virus:................................................................................................................. 4
II/Cơ chế phát hiện và báo động Virus:............................................................................................. 11
1/Kiểm tra bộ nhớ trong:.................................................................................................................... 12
2/Kiểm tra Master Boot và Boot Sector: (dùng cho Virus Boot ) ..................................................... 13
3/Kiểm tra trên file:............................................................................................................................ 15
B/Chương Trình Minh Họa: ............................................................................................................. 16
1/Ngôn ngữ viết chương trình:........................................................................................................... 16
2/Chương trình minh họa:.................................................................................................................. 16
3
CCƠƠ CCHHẾẾ PPHHÁÁTT HHIIỆỆNN VVÀÀ BBÁÁOO ĐĐỘỘNNGG VVIIRRUUSS
AA//LLýý TThhuuyyếếtt::
II//MMộộtt ssốố kkhhááii nniiệệmm ccơơ bbảảnn vvềề VViirruuss::
1/Định nghĩa:
-Virus máy tính thực chất là các phần mềm tin học có khả năng gián tiếp tự
kích hoạt, tự nhân bản sao chép chính nó vào các chương trình khác nhằm mục đích
phá hoại, do thám hoặc cũng có thể chỉ là để vui đùa. Để tiện trình bày, từ nay khi nói
virus ta hiểu là virus máy tính
2/Phân Loại:
-Như đã nói tin học phát triển ngày càng mạnh mẽ thì virus cũng phát triển
ngày càng đa dạng có thể nói không có loại virus nào là hoàn toàn giống nhau. Tuy
nhiên các virus luôn có một số đặc điểm chung nhất định để dựa vào đó người ta có thể
phân biệt nó. Có nhiều cách phân loại khác nhau, phân loại theo đối tượng lây nhiễm
thì virus gồm hai loại :
a/Virus Boot(b-virus):
-Là các virus lây nhiễm lên BootSector trên đĩa mềm hoặc Master Boot
Record và Disk Boot Record trên đĩa cứng, bảng định vị file FAT(File Allocation
Table) bảng ghi(Windows Registry) của hệ điều hành Windows…Loại virus này chiếm
quyền điều khiển khi máy tính khởi động trước khi hệ điều hành được nạp do vậy loại
virus này hoạt động không phụ thuộc vào hệ điều hành
b/Virus File(F-virus):
-Là loại virus lây nhiễm trên các dạng file (có chứa nội dung thi hành được),
bao gồm các file có chứa mã máy như các file .com, .exe và các file chứa mã giả
(pseudo code) như các file .bat, .doc, và một số loại file khác…
3/Tính chất của Virus:
a/Tính lây lan:
-Đây là tính chất cơ bản để xác định một chương trình có phải là một virus hay
không. Các virus tin học mô phỏng giống như các virus sinh học lây lan trên các máy
tính, các virus đều được thiết kế theo hướng có khả năng lây lan mạnh nhất đó cũng
chính là yếu tố để dẫn đến sự ra đời của các virus trên mạng.
4
b/Tính phá hoại:
-Đây là một tính chất chủ yếu để đánh giá mức độ nguy hiểm của một virus.
Các virus được thiết kế với mục đích phá hoại bao gồm phá hoại dữ liệu và phá hoại
máy tính làm ảnh hưởng đến máy tính…Mặc dù vẫn có một số virus được tạo ra với
mục đích đùa giỡn hoặc thử nghiệm người tạo ra hoàn toàn không có ý định phá hoại,
nhưng do lỗi lôgic khi lập trình đôi khi lại gây ra những hiệu ứng nguy hiểm không
kém các virus được tạo ra để phá hoại mà chính người tạo ra nó cũng không thể lường
trước. Đặc biệt là khi có hơn một loại virus tồn tại trong máy tính và cùng phá hoại dữ
liệu. Các chương trình diệt virus sẽ bị lừa khi hậu quả phá hoại của con virus đầu tiên
bị con thứ hai tiếp tục phá hoại và tạo ra nhưng kết quả khác hẳn, làm mất hết đấu vết
nên các chương trình nhận dạng không xác định được loại virus nào dù cả hai đã được
cập nhật
c/Tính nhỏ gọn:
-Để có thể dễ dành lây nhiễm mà khó bị phát hiện các virus phần lớn đều có
tính nhỏ gọn. Tính nhỏ gọn trở nên rất quạn trọng đối với các virus lây lan trên mạng.
Hầu hết các virus đều có kích thước rất nhỏ trong khoảng 4KB trở xuống trừ một số
virus được viết bằng các ngôn ngữ bậc cao. Cùng với tính chất lây nhiễm tính chất này
đã tạo nên tên gọi virus tin học
d/Tính tương thích:
-Virus là một chương trình máy tính cũng như các chương trình khác virus
cũng có tính tương thích. Một virus được thiết kế để hoạt động trên một môi trường
này thường không thể hoạt động trên một môi trường khác không thích hợp với nó. Ví
dụ một con sâu mạng không thể lây nhiễm trên các máy tính sử dụng hoàn toàn môi
trường DOS vì nó không thể tìm ra bản đăng kí (Resgistry) của Windows. Để khắc
phục điểm yếu này ngày nay các virus phát triển theo hướng lai, bao gồm có nhiều
phần mỗi phần có tác dụng lây nhiễm trên những môi trường khác nhau.
e/Tính phát triển kế thừa:
-Các virus ra đời sau thường có xu hướng kế thừa những ý tưởng công nghệ
của các virus đã có trước theo cách này hay cách khác giữ nguyên hoặc sửa đổi cải tiến
…để có thể tận dụng những điểm mạnh và khắc phục những điểm yếu dễ dàng hơn.
Điều này nhiều khi tạo ra một họ virus như họ virus Date,họ virus Tiny…
4/Các công nghệ của Virus:
-Virus muốn tồn tại và phát triển thì nó phải có sức mạnh, sức mạnh có được
từ các công nghệ tạo virus, đó là các cách tạo virus thông minh tối ưu độc đáo,mỗi
cách mới để tạo ra virus đều có thể tạo ra một phương pháp mới một công nghệ mới.
Dưới đây chỉ là một số công nghệ thông dụng
a/Công nghệ lây nhiễm (Infect):
-Là công nghệ căn bản của một virus bảo đảm cho sự tồn tại lây lan phát triển
của virus. Những virus có tính lây lan càng nhanh thì thông thường mức độ nguy hiểm
càng lớn
5
-Các virus Boot
+Đối với đĩa mềm việc lây nhiễm đơn giản chỉ là thay thế Boot Record
(BR) với một đoạn chương trình virus
+ĐốI với đĩa cứng vì Master Boot Record (MB) và BR trên phân vùng hoạt
động đều được trao quyền khởi động nên có thể thay thể MB hay BR. Kích thước của
MB/BR chỉ gồm 1 sector 512 byte (DOS) nên không đủ lớn đối với một virus, nên cần
phải tìm một vị trí trên đĩa để lưu phần mã còn lại. MB/BR cũ chứa các thông tin quan
trọng về bản phân vùng/bảng tham số đĩa nên cần phải lưu, nơi lưu giữ phải bảo đảm
không bị ghi đè. Virus có thể sử dụng một số vùng đĩa sau:
+Đối với đĩa mềm: Có thể dùng những vùng đĩa ít khi được sử dụng như
các sector cuối của thư mục gốc các sector cuối trên đĩa, hay có thể sử dụng các sector
còn trống bất kì rồi đánh dấu các sector này đã bị hỏng, một phương pháp khác là có
thể định dạng thêm track mới cho đĩa mềm sau đó sử dụng track này.
+ĐốI với đĩa cứng : Vì trên track 0 thường chỉ chứa MB trên sector 1 do đó
có rất nhiều sector không dùng đến có thể sử dụng vào mục đích này hoặc có thể sử
dụng hai phương pháp đầu đã áp dụng đối vớI đĩa mềm
+Như vậy sau khi trao quyền điều khiển virus Boot sẽ tiến hành các hoạt
động lây nhiễm cài đặt sau đó đọc MB/BR cũ vào Ram trả quyền điều khiển cho đoạn
mã trong MB/BR cũ. Các virus thường cố gắng lây nhiễm trên đĩa cứng ngay khi khởi
động vì đĩa cứng là cố định trong suốt phiên làm việc của máy tính. Để lây nhiễm trên
đĩa mềm các Boot virus thường tiến hành phân phối vùng nhớ riêng để thường trú
chiếm một số ngắt để phục vụ cho việc lây lan (thường là ngắt 13h) ,mỗi khi phát hiện
thấy đĩa mềm chưa bị nhiễm virus sẽ tiến hành lây trên đĩa mềm đó.
- Các virus File
+Các virus File trên môt trường Dos chỉ có các dạng file thi hành .com;.
exe;.bat. Sử dụng các ngắt dịch vụ file để tiến hành những thao tác mở đóng file xóa ,
đặt thuộc tính file lấy đặt ngày giờ tạo file (thường sử dụng ngắt 21h)
+Các công nghệ ghép chương trình virus vào file chủ :
+ghi đè : áp dụng đối vớI file dạng .com đơn giản chỉ ghi đè mã lệnh lên
đầu file chủ ,mỗi khi chương trình chủ được thi hành virus sẽ chiếm quyền điều khiển.
Do virus không lưu dữ phần dữ liệu của chương trình chủ nên không thể trả quyền thi
hành cho chương trình chủ,do đó loại virus này mang tính phá hoại hơn là lây lan.
+ghi đè bảo toàn: áp dụng đối với file dạng .com, phần dữ liệu bị ghi đè
được virus ghi xuống cuối file nên có thể trả quyền điều khiển cho chương trình chủ
được.
+dịch chuyển:có thể áp dụng đối với các loại file .exe ,.com. Lây nhiễm
bằng cách đặt mã lệnh virus lên đầu file sau đó chuyển toàn bộ dữ liệu của chương
trình chủ xuống sau mã lệnh của virus,nên virus có thể trả quyền điều khiển cho
chương trình chủ.
6
+song hành : đặc điểm của dos là khi thi hành một file nếu không gõ phần
mở rộng thì dos sẽ thi hành các file cùng tên theo thứ tự .exe;.com;.bat
Do đó khi phát hiện một file exe thì virus sẽ tạo một file cùng tên có đuôi .com
Khi thi hành file ta không gõ phần mở rộng thì virus sẽ chiếm quyền điều khiển.
+ Nối thêm: Virus được ghi vào cuối file chủ, file bị sửa đổi sẽ chuyển
quyền điều khiển đến mã lệnh virus mỗi khi file thi hành. Đối với file .com virus
thường lưu vài byte đầu (thường từ 3-5 byte đủ kích thước cho một lệnh nhảy) lệnh này
định hướng đến phần mã còn lại của virus. Đối với file .exe virus sẽ sửa các giá trị
trong exe header để chuyển đầu vào của chương trình đến phần mã lệnh của virus
+còn một số cách khác như chèn giữa file, định hướng lại lệnh nhảy…
b/Công nghệ kiểm tra sự tồn tại (Check if exist):
-Virus phải lây nhiễm nhưng ở mỗi nơi chỉ được lây nhiễm một lần, nếu virus
lây nhiễm nhiều lần ở một nơi thì chẳng có hiệu quả gì tốt hơn việc lây nhiễm một lần
tại nơi đó, hơn nữa việc này ảnh hưởng rõ rệt tới tốc độ của máy tính làm người sử
dụng nghi ngờ máy bị nhiễm virus và tạo ra sơ hở lớn cho các chương trình diệt virus.
Chính vì các lí do đó trước khi lây nhiễm virus phải kiểm tra sự tồn tại của mình trên
đối tượng chủ, môi trường.
-Đối với virus boot
+Kiểm tra trên bộ nhớ chỉ tiến hành một lần khi máy tính khởi động trước
khi tiến hành thường trú do đó tốc độ không phải là yêu cầu chính quan trọng là độ
chính xác. Có thể kiểm tra bằng cách dò tìm các đoạn mã nhận dạng trên bộ nhớ hoặc
có thể tạo thêm hàm ngắt để kiểm tra. Virus có thể tạo nên những ngắt mới trả lại
những giá trị đặt biệt trong các thanh ghi là dấu hiệu để nhận biết sự tồn tại.
+kiểm tra trên đĩa:Kiểm tra trên đĩa đã bị lây nhiễm hay chưa,việc kiểm tra
trên đĩa phải được tiến hành nhiều lần nên phải bảo đảm tốc độ.
-Đối với virus file
+kiểm tra trên bộ nhớ tương tự như virus boot
+kiểm tra trên file: Có thể dò tìm đoạn mã nhận dạng trên file,virus có thể
kiểm tra đoạn mã nhận dạng trên toàn bộ file hoặc trên một phần nào đó của file, nếu
không thấy đoạn mã coi như file đó chưa bị lây nhiễm. Có thể dùng phương pháp kiểm
tra theo kích thước hoặc kiểm tra theo nhãn thời gian của file (thường khi lây nhiễm
virus đưa vào các giá trị đặc biệt như tháng 13 hoặc giây 65).
c/Công nghệ định vị:
-Là công nghệ để xác định vị trí của virus trên vùng nhớ. Đây là một công
nghệ cơ bản nhưng rất quan trọng vì để virus có thể hoạt động được nó bắt buộc hệ
thống phải thực thi nó bằng cách định vị địa chỉ của nó trong vùng nhớ và bắt buộc hệ
thống thi hành đoạn mã lệnh tại vùng nhớ đó.
-Đối với virus boot
+MB,BR luôn được BIOS nạp vào RAM tại địa chỉ 0000:7C00h và chuyển
quyền điều khiển với một lệnh nhảy xa: JMP FAR 0000:7C00
7
Do đó khi virus boot nhận được quyền điều khiển thanh ghi CS=0 các tham chiếu đều
phải tính theo offset 7C00
-Đối với virus file
+những virus áp dụng công nghệ lây nhiễm ghi đè, ghi đè bảo toàn, dịch
chuyển thì không cần định vị lại vì chương trình vẫn được thi hành như bình thường.
Các loại virus khác cần phải định vị lại vì offset của virus không được bảo toàn mà
thay đổi với mỗi file chủ mà nó lây nhiễm. Không giống như virus boot một file thi
hành có thể nạp vào những vùng địa chỉ khác nhau tùy thuộc vào tình trạng vùng nhớ.
+công nghệ định vị còn được gọi là công nghệ DELTA dựa trên cách tiến
hành lệnh CALL của bộ vi xử lí
Cú pháp : CALL địa chỉ
Câu lệnh tiếp theo
Khi thi hành lệnh này bộ vi xử lí sẽ cất địa chỉ offset của mã lệnh tiếp sau
lệnh CALL vào ngăn xếp sau đó chuyển IP đến địa chỉ cần gọi. Như vậy để lấy địa chỉ
của câu lệnh kế tiếp ta chỉ cần lấy giá trị lưu trong ngăn xếp, giá trị này thường được
chứa trong các thanh ghi SI DI BX BP sau đó sử dụng giá trị này và độ chênh lệch
điểm mốc để tham chiếu dữ liệu mã lệnh.
d/Công nghệ thường trú (Residency):
-Thường trú có nghĩa là bật máy lên cũng đồng nghĩa với việc khởi động một
chương trình virus. Chương trình này chỉ dừng khi tắt máy,việc thường trú này khiến
cho khả năng lây lan và phá hoại của virus rất dễ dàng và gây nên các thiệt hại to
lớn.Quá trình thường trú bao gồm:
+phân phối một vùng nhớ riêng để lưu giữ chương trình virus. Các cách
phân phối vùng nhớ là : phân phối vùng nhớ cao,phân phối vùng nhớ thấp…
+phân phối vùng nhớ cao (vùng nhớ cuối cùng của bộ nhớ): sau khi thực
hiện quá trình Post kích thước bộ nhớ cơ bản tính theo KB sẽ được ghi vào một vùng
dữ liệu của Bios ở địa chỉ 0:0413h. Khi một hệ điều hành nắm quyền điều khiển nó bắt
đầu kiểm soát vùng nhớ có kích thước đó bắt đầu từ 0000:0000h. Như vậy để dùng một
vùng nhớ riêng mà không bị hệ điều hành sử dụng chỉ cần giảm giá trị tại vùng địa chỉ
này và sủ dụng những KB cuối cùng của vùng nhớ (mỗi virus boot thường có cỡ 1-
4KB)
+phân phối vùng nhớ thấp :Các virus phân phối vùng nhớ cao thường dễ bị
phát hiện do làm giảm kích thước bộ nhớ mà hệ điều hành sử dụng. Để khắc phục có
thể sử dụng vùng nhớ thấp khi mà hệ điều hành đã được tải vào.
+ngoài ra còn có thể sử dụng phần còn trống của bảng vector ngắt chưa sử
dụng với mục đích dự trữ (thường dùng trong khoảng AAAA đến BBBB ), còn có thể
sử dụng các lỗ hổng trong vùng nhớ…
+Sau khi đã phân phối vào vùng nhớ cần phải chuyển toàn bộ chương trình
virus lên vùng nhớ đó và chặn một số ngắt phục vụ cho việc lây nhiễm. Có các cách
chặn ngắt sau:
8
++ thay thế các ngắt trực tiếp trong bảng vector ngắt .Bảng vector ngắt
chứa địa chỉ của 256 ngắt từ ngắt 00 đến FFh được đặt bắt đầu từ địa chỉ 0000:0000,
các vector ngắt đặt liền nhau cho đến địa chỉ 0000:03FCh. Virus thay thế các ngắt cần
thiết trong bảng bằng các vector ngắt mới chỉ đến thủ tục xử lí ngắt mới của virus các
vector ngắt cũ cũng được lưu lại để sử dụng khi cần.
+ nếu phát hiện thủ tục xử lí ngắt nằm trong RAM có thể áp dụng một công
nghệ khác : thay thế một số lệnh đầu tiên ở đầu thủ tục xử lí ngắt bằng lệnh nhảy xa
JMP FAR xxxx:yyyy . Những mã lệnh bị thay thế được lưu lại để sử dụng khi cần
dùng cácdịch vụ của thủ tục xử lí ngắt cũ.
e/Công nghệ phá hoại,do thám (Payload):
-Đây không phải là công nghệ bắt buộc phải có của một virus. Nhưng một số
virus được thiết kế để do thám (nói cho cùng thì đó cũng là một loại phá hoại) luôn sử
dụng và coi công nghệ này là trung tâm. Các virus loại này đôi khi tạo ra thiêt hại rất to
lớn thường là nghiên về người sử dụng hơn là sự hư hại máy tính, vì được dùng để
đánh cắp thông tin nhiều khi là sống còn đối với người sử dụng
f/Công nghệ tạo áo giáp (Armouring):
-Là công nghệ chống gỡ rối dịch ngược mã lệnh virus tạo ra cho virus một vỏ
bọc để có khả năng đề kháng mạnh hơn đối với các chương trình diệt virus. Công nghệ
này chủ yếu dựa trên công nghệ mã hóa kết hợp với việc sử dụng các lệnh CALL
JMP.. .Chương trình dịch ngược sẽ rất khó khăn khi dịch các virus được mã hóa hay
dịch các virus sử dụng các lệnh CALL JMP lôn xộn dữ liệu và mã lệnh được bố trí xen
kẽ…
h/Công nghệ ngụy trang (Stealth):
-Là công nghệ giấu diếm ngụy trang sự tồn tại của virus trên đối tượng chủ và
môi trường lây nhiễm. Người dùng và ngay cả các chương trình diệt virus cũng sẽ khó
phát hiện khi bị virus tấn công.
-Đối với virus boot:
+ngụy trang trên bộ nhớ: các virus boot thường trú trên vùng nhớ cao
thường dễ bị phát hiện để khắc phục điểm yếu đó các virus thường chờ hệ điều hành
nạp vào rồi tiến hành thường trú ở vùng nhớ thấp
+ngụy trang trên đĩa : để ngụy trang trên đĩa virus boot cần tìm cách thay
đổI MB/BR ít nhất có thể nhằm giảm khả năng bị phát hiện, có thể ghi một đoạn mã rất
nhỏ trong MB/BR còn phần còn lại nạp vào vùng nhớ. Một phương pháp có hiệu quả
hơn là khi virus thường trú trong bộ nhớ mọi yêu cầu đọc ghi đĩa khác sẽ được định
hướng lại thành đọc ghi sector lưu giữ MB/BR cũ. Các chương trình khác sẽ nhận được
MB/BR cũ do đó không phát hiện sự tồn tại của virus, khi sử dụng phương pháp này
cần phải kiểm soát tất cả thao tác đọc ghi đĩa lên MB/BR. Khi tiến hành lây nhiễm có
thể đánh dấu các sector đã hỏng để hệ điều hành không cón sử dụng các sector đó nữa.
-Đối với virus file
9
+ngụy trang trên bộ nhớ : các virus file thường trú trên vùng nhớ dễ bị
phát hiện nên có thể sử dụng ngụy trang trên vùng nhớ thấp, trên UMB hoặc trên HMB
+ngụy trang trên file : không như MB/BR ít khi được người sử dụng quan
tâm các file được quan sát thường xuyên mọi thay đổi về kích thước ngày tháng nội
dung dễ bị nhận thấy. Vì vậy ngụy trang trên file là yếu tố sống còn đối với virus file,
có thể sử dụng các công nghệ sau:
++xử lí việc tăng kích thước file: Phương pháp này chỉ sử dụng đối với loại
virus làm tăng kích thước file. Kích thước file là một giá trị longint (4 byte) phải chặn
ngắt 021h của Dos và làm giảm giá trị này bằng kích thước của virus.
++Xử lí việc thay đổi ngày tháng /thuộc tính: đơn giản chỉ là bảo lưu nhãn
thời gian và thuộc tính cũ của file bị lây nhiễm
++Xử lí việc thay đổi nội dung file: virus có thể sử dụng một phương pháp
có tên là DisInfect On the Fly :mỗi khi có yêu cầu mở một file lây nhiễm để đọc virus
sẽ tiến hành tự loại bỏ khỏi file khi đóng file hay thi hành file virus sẽ tiến hành lây
nhiễm lại lần nữa.
g/Công nghệ mã hóa (Encryption):
-Là công nghệ mã hóa phần chương trình chính của virus đây là công nghệ cũ
nhưng hiện nay vẫn được sử dụng , cải tiến sửa đổi. Công nghệ này cũng nhằm để che
dấu sự tồn tại của virus trên đối tượng chủ. Trong đó phép XOR thường được sử dụng
do tính đơn giản mặt khác thủ tục mã hóa cũng chính là thủ tục giải mã
i/Công nghệ đa hình (Polymorphism):
-Công nghệ này dùng để chống lại phương pháp dò tìm đoạn mã của các
chương trình diệt virus. Công nghệ này dựa trên ý tưởng mỗi mẫu virus được mã hóa
với những khóa mã giải mã khác biệt, mã lệnh toán học/lôgic khác biệt … so với
những mẫu trước đó. Dù virus được mã hóa nhưng đoạn chương trình mã hóa vẫn cố
định trên toàn bộ mọi mơi mà virus lây nhiễm, ý tưởng chính của công nghệ đa hình là
thay đổi cả thủ tục mã hóa để các virus khác nhau trên mỗI file có rất nhiều cách từ đơn
giản đến phức tạp để thực hiện công nghệ này.Có thể sử dụng một số cách sau:
+Virus có một số bộ mã hóa giải mã mỗi lần lây nhiễm chọn một bộ mã
hóa bất kì trong tập hợp đó
+Bộ giải mã chứa một số lệnh cố định phần còn lại có thể thay đổi….
j/Công nghệ biến hình (Metamorphism):
-Là một công nghệ độc đáo hoàn hảo để chống lại các chương trình diệt virus.
Công nghệ đa hình chỉ tạo ra các bộ giải mã khác biệt còn công nghệ biến hình sinh ra
đọan mã mới hoàn toàn. Rõ ràng đây là công nghệ khó vì phải biến đổi đoạn mã mà
vẫn giữ nguyên tác dụng của virus nhưng đổi lại các chương trình diệt virus sẽ rất khó
diệt được virus có sử dụng công nghệ này.
-Công nghệ này rất phức tạp sau đây là một số điểm chính yếu của công nghệ
này:
10
+có bộ dịch ngược nội tại để dịch ngược các lệnh
+có bộ rút gọn mã:có nhiệm vụ rút gọn tối ưu hai mã lệnh thành một lệnh
mà không thay đổi hành động của virus
+có bộ mở rộng mã:ngược lại với bộ rút gọn mã
+có bộ hoán đổi mã:có nhiệm vụ hoán đổi các mã lệnh
+có bộ định vị lại : định vị lại các lệnh nhảy,lệnh gọi …
+có bộ sinh rác:có nhiệm vụ chèn thêm các đoạn mã lệnh không có nghĩa
vào chương trình …
k/Công nghệ chống mô phỏng (Anti emulation):
-Emulation là công nghệ mà các chương trình diệt virus sử dụng để mô phỏng
mã lệnh của các chương trình nghi ngờ là virus kiểm tra phát hiện virus chưa biết.
Công nghệ chống mô phỏng giúp cho virus có thể ngụy trang để vượt qua sự kiểm tra
hay làm cho hệ mô phỏng không thể tiến hành phân tích virus. Có thể chiếm các ngắt
01h,02h phục vụ cho việc gỡ rối hoặc là sử dụng công nghệ thường trú trên HMA
(High Memory Area)… cũng có thể tiến hành thao tác với ngăn xếp và các thanh ghi
đoạn dữ liệu.
l/Công nghệ chống theo dõi (Anti heuristic)
-Một số chương trình diệt virus hiện đại sử dụng một phương pháp gọi là
heuristic phát hiện virus dựa trên hành vi của các chương trình và công nghệ anti
heuristic nhằm để chống lại sự phát hiện của các trình diệt virus đó. Có thể sử dụng các
cách sau:
+sử dụng các hàm dịch vụ (các ngắt) theo cách riêng hay các sử dụng các
hàm dịch cụ giả do virus tạo ra
+chèn thêm các đoạn mã lệnh rác không ảnh hưởng đến lôgic chương trình
xen kẽ giữa những mã lệnh thật sự
m/Công nghệ Tunneling:
-Các chương trình diệt virus sử dụng các chương trình kiểm soát hệ thống phát
hiện các hoạt động đặc biệt nghi ngờ là virus để cảnh báo. Tunneling là công nghệ
nhằm để giành được quyền kiểm soát cao nhất đối với môi trường tránh được sự kiểm
soát của các chương trình diệt virus
n/Công nghệ Anti-Tunnel:
-Công nghệ tunneling cũng được các chương trình diệt virus sử dụng để có
được quyền kiểm soát cao nhất. Anti tunnel là công nghệ mà các virus sử dụng để ngăn
chặn các chương trình diệt virus cũng như các virus khác nắm được quyền kiểm soát
cao nhất. Công nghệ này chủ yếu hạn chế phương pháp sử dụng các ngắt 01h,03h để
lần theo chuỗi thủ tục ngắt.
-Đối với ngắt 01h nếu giá trị của cờ bẫy trong thanh ghi cờ được bật thì bộ xử
lí sẽ tiến hành gọi ngắt 01h sau khi thi hành một mã lệnh. Thanh ghi cờ, địa chỉ của
lệnh bị ngắt được lưu vào ngăn xếp trước khi quyền điều khiển được trao cho thủ tục
xử lí ngắt. Sử dụng các thao tác trực tiếp đối với thanh ghi cờ và ngăn xếp virus có thể
11
phát hiện và làm dừng quá trình lần vết này. Một phương pháp khác là đặt lại các
vecter ngắt 01h,03h để ngăn chặn quá trình lần vết.
o/Công nghệ Ani Bait:
-Biat là một thuật ngữ chỉ các chương trình dùng để bẫy các virus các chương
trình này không làm bất cứ việc gì chỉ là đối tượng nhử mồi để virus xuất hiện. Công
nghệ anti Bait nhằm để cho virus thông minh hơn nhận biết được các bẫy để tránh việc
phát hiện. Chủ yếu dựa trên tính chất chung của file Bait virus thường chọn các file để
lây nhiễm có các tiêu chí sau:
+trong tên không có chữ số (thường dùng để đánh số các file Bait)
+có kích thước tương đối lớn
+có mã lệnh không quá đặc biệt
-Đây là công nghệ không được dùng nhiều
p/Công nghệ tối ưu:
-Bao gồm các cách viết mã và thiết kế nhằm để tối ưu hóa virus về mặt tốc độ,
kích thước, khả năng phá hoại, khả năng chống lại các chương trình diệt…Công nghệ
này khiến cho virus mạnh lên một cách toàn cục. Công nghệ này được sử dụng rất
nhiều và gây nhiều khó khăn cho các trình diệt virus. Có thể nói công nghệ này rất
rộng lớn có rất nhiều cách làm cho chương trình virus tối ưu, sau đây trình bày một số
cách:
-Sử dụng các thủ tục: nếu các mã lệnh có kích thước lớn mà phải sử dụng
nhiều lần thì có thể sử dụng các thủ tục. Vì lệnh gọi thủ tục và lệnh trở về ( call/ret) có
kích thước 3+1=4 byte nên có thể đưa ra công thức tính số byte tiết kiệm được là:
Số byteTKĐ=(Cỡ của Proc-4)* số lần gọi Proc-cỡ của Proc
+Nên nhớ phương pháp này làm nhỏ chương trình virus nhưng cũng đồng
thờI tăng thời gian xử lí cho CPU nhưng đây là một ảnh hưởng không đáng kể
-Sử dụng các mã lệnh tiết kiệm khối lượng cũng như thời gian thực hiện công
việc
+Sử dụng các thanh ghi AL/AX thay cho các thanh ghi khác vì các thanh
ghi này có kích thước mã lệnh ngắn hơn các thanh ghi khác, ví dụ
CMP BX,233 ;4 byte
CMP AX,233;3 byte
+Sử dụng thanh ghi đoạn DS thay cho các thanh ghi đoạn khác
MOV AX, ES:[SI] ;3 byte
MOV AX,DS:[SI] ;2 byte
IIII//CCơơ cchhếế pphháátt hhiiệệnn vvàà bbááoo đđộộnngg VViirruuss::
-Cơ chế phát hiện và báo động virus có thể bao gồm các bước sau
+Kiểm tra bộ nhớ trong
+Kiểm tra Master Boot và Boot Sector
+Kiểm tra trên file
12
1/Kiểm tra bộ nhớ trong:
-Có hai cách để kiểm tra sự có mặt của virus trong bộ nhớ
+Cách thứ nhất là kiểm tra sự có mặt của đoạn mã nhận dạng virus tại một
địa chỉ xác định trong bộ nhớ, cách này có nhược điểm là chỉ nhận biết được các virus
có trong cơ sở dữ liệu của chương trình diệt đối với những virus mới không được cập
nhật thì cách này không thể phát hiện được.
+Cách thứ hai là làm theo một số chương trình virus khi sử dụng công nghệ
kiểm tra sự tồn tại của mình trong bộ nhớ dùng ngắt 21h và các chức năng đặc biệt để
kiểm tra, và kiểm tra dung lượng của vùng nhớ do Dos quản lí. Cách này cũng có
nhược điểm là thời gian kiểm tra tăng lên và không phải virus nào cũng sử dụng cách
kiểm tra này.
-Nên kiểm tra sử dụng kết hợp cả hai cách trên tức là ban đầu dùng cách thứ
nhất sau đó nếu không phát hiện dùng cách hai. Sơ đồ khối cụ thể như sau
Bắt Đầu
Kiểm Tra MeM
Nhận Dạng True Báo Động
Mã Virus
False
Kiểm Tra địa
chỉ Ngắt 13h,21h và False
Kích thước Bộ Nhớ
True
Kết Thúc
-Nhớ rằng cách này không chấp nhận bất cứ chương trình nào thường trú ngắt
21h trong quá trình kiểm tra
-Giai đoạn nhận dạng mã : ta có thể kiểm tra các mã nhận dạng được lưu trong
file nào đó ví dụ DBVIRM.DAT khi có virus mới ta có thể cập nhật bằng cách đưa
thêm dữ liệu vào file này mà không cần phải thay đổi chương trình .Như vậy quá trình
thực hiện của giai đoạn này là ban đầu kiểm tra xem có thể mở được file
13
DBVIRM.DAT nếu không có báo lỗi (có thể không có file này hoặc file này bị hư).
Còn nếu mở thành công thì bắt đầu kiểm tra.File DBVIRM.DAT có thể có thể được
cấu tạo bao gồm các bản ghi mỗi bản ghi bao gồm các trường như sau:
+địa chỉ segment chứa mã nhận biết của virus trong bộ nhớ
+địa chỉ offset chứa mã nhận biết của virus trong bộ nhớ
+số lượng byte trong mã nhận biết
+mã nhận biết của virus
+tên của virus
- Nên nhớ rằng trên đây chỉ là một mẫu điển hình bạn hoàn toàn có thể thay
đổi chương trình theo ý muốn
-Giai đoạn kiểm tra dung lượng bộ nhớ và ngắt 21h.
+nên nhớ địa chỉ của ngắt 21h không phải cố định, mà thay đổi theo từng
phiên bản của Dos nên phải có một bảng thống kê địa chỉ của ngắt 21 h theo từng phiên
bản của Dos, và phải có thao tác lấy phiên bản của Dos trong chương trình. Nếu địa chỉ
của ngắt 21h không đúng thì có thể nghi ngờ rằng máy bị nhiễm.
+tiếp tục thực hiện kiểm tra dung lượng bộ nhớ. Dos lưu giữ giá trị bộ nhớ
mình quản lí tại biến có địa chỉ (0:413 h),nếu giá trị nhận được không đủ 640kb thì có
thể máy bị nhiễm,tuy nhiên cũng có khi bộ nhớ bị hỏng chứ không phải bộ nhớ bị
nhiễm virus, tuy nhiên trường hợp này ít gặp.
2/Kiểm tra Master Boot và Boot Sector: (dùng cho Virus Boot )
-Nói chung hầu hết các MB của các máy PC chạy trên hệ điều hành Dos thông
dụng đều giống nhau. MB có nhiệm vụ xác định phân vùng hoạt động sau đó chuyển
đoạn mã của chính nó đi nơi khác để nạp Boot record của phân vùng hoạt động vào địa
chỉ 0:7C00 cuối cùng chuyển điều khiển cho bản Boot record vừa được đọc.
-Có thể thực hiện kiểm tra theo giai đoạn sau:
+Trước hết đọc MB cần kiểm tra đối chiếu đoạn mã của nó với MB chuẩn
nếu trùng thì thông báo không có virus trong MB .
+Nếu MB không trùng với MB chuẩn thì chuyển sang giai đoạn hai ta phải
thực hiện quá trình tương tự như quá trình kiểm tra nhận dạng mã của bộ nhớ. Tức là
kiểm tra đoạn mã nhận dạng virus có trong cơ sở dữ liệu (ví dụ như file
DBVIRB.DAT) với đoạn mã trong MB để xem virus gì, từ đó có thể biết được vị trí
MB cũ mà virus dấu (nhờ vào đó có thể kiểm tra so sánh MB bị dấu với MB chuẩn nếu
trùng thì khôi phục lại MB cũ ).
+Sau khi kiểm tra hết file DBVIRB.DAT mà không thấy đoạn mã nhận
dạng nào phù hợp tức là không thể xác định được bị nhiễm virus gì (hay là MB có thể
làm nhiệm vụ đặc biệt) ta có thể xây dựng thêm modul chương trình lựa chọn có ghi đè
MB chuẩn lên MB nghi ngờ nhiễm hay không.
-Trên đây là một mô hình của chương trình kiểm tra MB có thể thực hiên theo
nhiều cách khác không nhất thiết phải theo mô hình này. Chú ý là nếu có hai virus boot
cùng nhiễm vào một máy thì vấn đề trở nên phức tạp và cực kì khó giải quyết . Giả
14
thiết là virus thứ nhất lây nhiễm làm sai lạc MB rồi dấu MB cũ đi, sau đó virus thứ
hai lại làm sai lạc MB đã bị hỏng và lại dấu MB bị hỏng đi .Như vậy thì cho dù chương
trình diệt có thông tin về cả hai loại virus này thì vẫn không thể xác định được loại
virus nào lây nhiễm mà cho dù xác định được thì cùng lắm chỉ xác định được loại thứ
hai. Tất nhiên là không thể khôi phục được MB (loạI hai dấu MB đã bị hỏng bởi loại 1)
mà phải ghi đè MB. Vì vậy không nên tạo ra virus dù chỉ với mục đích đùa giỡn, nó có
thể không gây hại gì cho hệ thống nhưng có thể tạo điều kiện cho các loại virus có hại
phá hoại.
-File DBVIRM.DAT bao gồm các bản ghi có thể có các trường sau:
++offset bắt đầu của mã nhận dạng
++Số lượng byte trong mã nhận dạng
++mã nhận biết của virus
++tên của virus
++header nơi cất dấu MB cũ của đĩa
++cylinder sector nơi cất dấu MB cũ
Sơ đồ khối của quá trình kiểm tra MB,BR:
Bắt Đầu
Kiểm Tra MB,BR
So sánh
So Sánh MB,BR False MB,BR cần kiểm tra
với MB,BR Chuẩn với mã nhận dạng virus
True True
Báo Động
nhiễm virus
False
Kết Thúc Báo Động có thể
bị nhiễm virus
15
3/Kiểm tra trên file:
-Căn cứ vào tính chất lây lan của virus trên file việc kiểm tra trên file
có thể tiến hành bằng cả hai cách: kiểm tra đoạn mã nhận biết virus và kiểm tra sơ đồ
hoạt động của virus (cách này chỉ thực hiện được khi có sự nghiên cứu kĩ lưỡng về mỗi
loại virus )
-Công việc của quá trình kiểm tra file bao gồm
a/Tìm file (Search):
-Công việc tìm file không đơn giản cách tốt nhất là thực hiện theo cơ chế đệ
quy, trong quá trình tìm kiếm nếu là file thì kiểm tra xem có bị nhiễm virus hay không
còn nếu là thư mục thì phải tìm kiếm file ở trong thư mục đó
b/Kiểm tra file:
-Có nhiều cách để kiểm tra file vì virus rất phong phú nên tốt nhất là thực hiện
tất cả các cách. Có thể dựa vào cách kiểm tra sự tồn tại của virus ghi vào file nhưng giá
trị đặc biệt, kiểm tra kích thước file… nhưng các phương pháp này có nhiều sơ hở ,vì
đâu phải virus nào cũng sử dụng phương pháp kiểm tra sự tồn tại như vậy, còn việc
thay đổi kích thước file thì có nguyên nhân không rõ ràng vì có thể có nhiều loại virus
trùng kích thước, hơn nữa bạn lấy gì làm chuẩn để so sánh kích thước file? chắc gì vào
thời điểm bạn lấy kích thước file làm chuẩn thì file đó không bị nhiễm virus?
-Có thể dùng các phương pháp tìm đoạn mã nhận dạng như đã nói ở trên
nhưng rõ ràng các virus mới không thể bị phát hiện bởi phương pháp này.
Nhưng nên biết không có chương trình diệt virus nào là diệt được mọi loại virus cũng
như không có virus nào là không diệt được. Nên chấp nhận các giải pháp tạm thời sao
cho có mức độ thành công cao nhất có thể
-Sơ đồ khối của quá trình này:
Bắt Đầu Kiểm
Tra File
Hết Tìm File Còn Mở File
(Đọc)
Không Bị Nhiễm
Kiểm Tra File False
16
Bị Nhiễm
Kết Thúc Báo Động Kết Thúc?
True
-Để có thể sửa chửa file như một chương trình diệt virus thật sự thì quá trình
mở file yêu cầu là đọc ghi, nếu phát hiện ra file nhiễm thì cần phải khôi phục file theo
đúng quy trình dành riêng cho mỗi loại virus và cho mỗi loại file.
-Đối với file .com
+nếu dạng virus nối file chỉ cần định vị và trả lại các file đầu bị chiếm sau
đó dời con trỏ đến vị trí đầu của virus rồi cắt chương trình virus ra khỏi chương trình.
+Dạng virus dịch chuyển phải tải toàn bộ file vào vùng nhớ rồi ghi lại vào
đĩa với chỉ định bắt đầu file là địa chỉ cũ cộng với kích thước chương trình virus….
-Đối vớI file . exe
+nếu virus lưu giữ header cũ thì phải dựa vào virus tìm và khôi phục lại
header cũ,ngược lại phảI định vị lại header
BB//CChhưươơnngg TTrrììnnhh MMiinnhh HHọọaa::
1/Ngôn ngữ viết chương trình:
-Dùng các ngôn ngữ thiên về lập trình hệ thống như ngôn ngữ C (hoặc Pascal)
và Assembly tuy nhiên tốt nhất là kết hợp cả hai ngôn ngữ này để có thể tận dụng
được thế mạnh của cả hai ngôn ngữ
2/Chương trình minh họa:
-Do khả năng có hạn của người viết chương trình minh họa còn có nhiều
nhược điểm chỉ có thể phản ánh một phần của một chương trình đầy đủ. Chương trình
minh họa chỉ có thể kiểm tra trên bộ nhớ,và kiểm tra bootsector của ổ A . Để hoàn
thiện chương trình cần thực hiện kiểm tra trên MB và trên file.
-Nguyên lí chương trình là in ra bản đồ hiện tại của bộ nhớ RAM do Dos quản
lí. Nếu có virus thường trú thí bộ nhớ dành cho Dos sẽ bị giảm đi không còn chính xác
nữa.Sau đó tiếp tục kiểm tra boot sector ổ A:
-Để giúp hiểu hơn về chương trình minh họa dưới đây trình bày một số kiến
thức về Dos
-Memmory Control Block (MCB) là khối điều khiển bộ nhớ dài 16 byte và có
cấu trúc như sau
Offset
(Hex)
Chiều
Dài(byte)
Mô tả
0 1 5ah=MCB cuốI,4dh=chưa phải MCB cuốI
1 2 Địa chỉ đoạn khốI nhớ do MCB quản lí (0=khối tự
do,8=dos)
17
3 2 Kích thước (tính theo paragraph 16 byte) của khối nhớ do
MCB quản lí
5 11 Không dùng
10 KhốI nhớ do MCB quản lí bắt đầu từ đây
-Mỗi tập tin được nạp vào bộ nhớ được Dos cung cấp hai MCB:
MCB thứ nhất chứa thông tin về các biến môi trường _Dos environment, MCB thứ hai
chứa thông tin về tập tin này.
-Ngắt 52 hex (Dos 2+) hàm 52 hex trả lại trong cặp thanh ghi es:bx con trỏ trỏ
đến danh sách của Dos, sau đây là một số giá trị
Offset
(Hex)
Chiều
dài(byte)
Mô tả
-2 2 địa chỉ đoạn của MCB đầu tiên
0 4 Con trỏ đến bản thông tin đĩa đầu tiên
4 4 Con trỏ trỏ đến bảng file hệ thống đầu tiên
8 4 Con trỏ đến Header của trình điều khiển thiết bị
CLOCK$
C 4 Con trỏ trỏ đến header của trình điều khiển thiết bị CON
10 2 Số byte tối đa trên một sector (cho thiết bị kiểu khối bất
kì)
12 4 Con trỏ trỏ đến vùng đệm đĩa đầu tiên
16 4 Con trỏ trỏ đến bảng các thư mục hiện hành
1A 4 Con trỏ trỏ đến bảng FCB hệ thống đầu tiên
1E 2 Số các FCB được bảo vệ
20 1 Số các thiết bị kiểu khối (như các ổ đĩa lôgic) đã cài đặt
21 1 Số tên các ổ đĩa lôgic (mặc định là 5,có thể tăng bằng
lệnh LASTDRIVE=trong CONFIG.SYS)
22 18 Header của trình điều khiển thiết bị NUL hiện hành.NUL
luôn là trình điều khiển thiết bị đầu tiên trongdanh sách
móc nối các trình điều khiển thiết bị
… … ………
-Nếu chương trình in kết quả như sau
MCB SIZE DOAN TENTAPTIN
020E 0210 0008 DOS
041F 00A2 0420 COMMAND.COM
04C2 0007 0000 [ Vung Tu Do ]
04CA 002F 0420 COMMAND.COM
04FA 0031 052D A:DOANNG~1CHUONG~1HT
18
052C 9AD2 052D A:DOANNG~1CHUONG~1HT
A000
Bo nho khong co virus
-Thì bộ nhớ không có virus
A000 là tổng vùng nhớ MCB do Dos quản lí
-Lượng bộ nhớ mà Dos được quyền sử dụng tính theo đơn vị 16 byte là:
Sum=020E+0210+00A2+0007+002F+0031+9AD2+0006 (+1)=A000
-Với:
0006 là kích thước của 6 MCB(như đã thấy ở trên)
-Sau khi kiểm tra bộ nhớ sẽ kiểm tra boot setor của ổ A
-Thuật toán của chương trình:
+định nghĩa:
một bản ghi gồm 3 trường: loại MCB , địa chỉ đoạn của MCB và kích
thước của MCB
một biến sum để cộng vào
1 Gọi ngắt 52 hex để lấy danh sách của Dos
2 Trừ bx đi 2 để chỉ đến địa chỉ đoạn của MCB đầu tiên
3 Cộng vào sum địa chỉ của MCB đầu
4So sánh loại MCB với 4dh nếu không đúng là MCB lỗi,thoát khỏi chương
trình
5 In ra thông số của các MCB (các trường trong bản ghi)
6 So sánh loại MCB với 5ah nếu đúng là MCB cuối thì kết thúc
kiểm tra bộ nhớ
7 Nhảy đến đoạn MCB tiếp theo thực hiện lại bước 5
+kiểm tra boot sector của ổ A:
1 Đọc ổ A:
2 So Sánh với boot sector đã định nghĩa trong chương trình (bỏ qua phần
tham số đĩa từ)
3 Nếu Không giống báo động
4 Kết thúc chương trình
19
TÀI LIỆU THAM KHẢO
1/ Hướng Dẫn Phòng Và Diệt Virus Máy Tính
Tác giả: Nguyễn Đình Chương
2/Cẩm Nang Lập Trình (Hai tập)
Tác giả: Nguyễn Minh San-Hoàng Đức Hải

More Related Content

Viewers also liked

Full hướng dẫn cấu hình gns3 1.1
Full hướng dẫn cấu hình gns3 1.1Full hướng dẫn cấu hình gns3 1.1
Full hướng dẫn cấu hình gns3 1.1laonap166
 
Eximbank security presentation
Eximbank security presentationEximbank security presentation
Eximbank security presentationlaonap166
 
Bao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DNBao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DNlaonap166
 
Raid trong-windows-server
Raid trong-windows-serverRaid trong-windows-server
Raid trong-windows-serverlaonap166
 
Part 37 exchange server - email address policies -www.key4_vip.info
Part 37   exchange server - email address policies -www.key4_vip.infoPart 37   exchange server - email address policies -www.key4_vip.info
Part 37 exchange server - email address policies -www.key4_vip.infolaonap166
 
Virtualization and high availability
Virtualization and high availabilityVirtualization and high availability
Virtualization and high availabilityHeo Gòm
 
Part 37 exchange server - recipient configuration - room mailbox -www.key4_...
Part 37   exchange server - recipient configuration - room mailbox -www.key4_...Part 37   exchange server - recipient configuration - room mailbox -www.key4_...
Part 37 exchange server - recipient configuration - room mailbox -www.key4_...laonap166
 
Software inventory
Software inventorySoftware inventory
Software inventorylaonap166
 
Part 37 exchange server - anti spam -www.key4_vip.info
Part 37   exchange server - anti spam -www.key4_vip.infoPart 37   exchange server - anti spam -www.key4_vip.info
Part 37 exchange server - anti spam -www.key4_vip.infolaonap166
 
Watch guard solution
Watch guard solutionWatch guard solution
Watch guard solutionlaonap166
 
Part 37 exchange server - recipient configuration - group -www.key4_vip.info
Part 37   exchange server - recipient configuration - group -www.key4_vip.infoPart 37   exchange server - recipient configuration - group -www.key4_vip.info
Part 37 exchange server - recipient configuration - group -www.key4_vip.infolaonap166
 
Quản lý học sinh cấp 2
Quản lý học sinh cấp 2Quản lý học sinh cấp 2
Quản lý học sinh cấp 2laonap166
 
CHIA SẺ TÀI NGUYÊN TRONG LAN TRÊN NHIỀU HỆ ĐIỀU HÀNH
CHIA SẺ TÀI NGUYÊN TRONG LAN TRÊN NHIỀU HỆ ĐIỀU HÀNHCHIA SẺ TÀI NGUYÊN TRONG LAN TRÊN NHIỀU HỆ ĐIỀU HÀNH
CHIA SẺ TÀI NGUYÊN TRONG LAN TRÊN NHIỀU HỆ ĐIỀU HÀNHlaonap166
 
Bang so sanh cac dich vu email server
Bang so sanh cac dich vu email serverBang so sanh cac dich vu email server
Bang so sanh cac dich vu email serverlaonap166
 
Báo cáo thực tập công nhân ghostcast server
Báo cáo thực tập công nhân ghostcast serverBáo cáo thực tập công nhân ghostcast server
Báo cáo thực tập công nhân ghostcast serverlaonap166
 
Cài đặt exchange server 2013
Cài đặt exchange server 2013Cài đặt exchange server 2013
Cài đặt exchange server 2013laonap166
 
Tạo User-Group-OU bằng PowerShell
Tạo User-Group-OU bằng PowerShellTạo User-Group-OU bằng PowerShell
Tạo User-Group-OU bằng PowerShelllaonap166
 
Vnpt meeting aver true_conf_vidyo
Vnpt meeting aver true_conf_vidyoVnpt meeting aver true_conf_vidyo
Vnpt meeting aver true_conf_vidyolaonap166
 
Quản lý mailbox và group trong exchange 2013
Quản lý mailbox và group trong exchange 2013Quản lý mailbox và group trong exchange 2013
Quản lý mailbox và group trong exchange 2013laonap166
 

Viewers also liked (20)

Full hướng dẫn cấu hình gns3 1.1
Full hướng dẫn cấu hình gns3 1.1Full hướng dẫn cấu hình gns3 1.1
Full hướng dẫn cấu hình gns3 1.1
 
Eximbank security presentation
Eximbank security presentationEximbank security presentation
Eximbank security presentation
 
Bao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DNBao cao14 bai thực tập công nhân DH BK DN
Bao cao14 bai thực tập công nhân DH BK DN
 
Raid trong-windows-server
Raid trong-windows-serverRaid trong-windows-server
Raid trong-windows-server
 
Part 37 exchange server - email address policies -www.key4_vip.info
Part 37   exchange server - email address policies -www.key4_vip.infoPart 37   exchange server - email address policies -www.key4_vip.info
Part 37 exchange server - email address policies -www.key4_vip.info
 
Virtualization and high availability
Virtualization and high availabilityVirtualization and high availability
Virtualization and high availability
 
Part 37 exchange server - recipient configuration - room mailbox -www.key4_...
Part 37   exchange server - recipient configuration - room mailbox -www.key4_...Part 37   exchange server - recipient configuration - room mailbox -www.key4_...
Part 37 exchange server - recipient configuration - room mailbox -www.key4_...
 
Backlink link exchange
Backlink   link exchangeBacklink   link exchange
Backlink link exchange
 
Software inventory
Software inventorySoftware inventory
Software inventory
 
Part 37 exchange server - anti spam -www.key4_vip.info
Part 37   exchange server - anti spam -www.key4_vip.infoPart 37   exchange server - anti spam -www.key4_vip.info
Part 37 exchange server - anti spam -www.key4_vip.info
 
Watch guard solution
Watch guard solutionWatch guard solution
Watch guard solution
 
Part 37 exchange server - recipient configuration - group -www.key4_vip.info
Part 37   exchange server - recipient configuration - group -www.key4_vip.infoPart 37   exchange server - recipient configuration - group -www.key4_vip.info
Part 37 exchange server - recipient configuration - group -www.key4_vip.info
 
Quản lý học sinh cấp 2
Quản lý học sinh cấp 2Quản lý học sinh cấp 2
Quản lý học sinh cấp 2
 
CHIA SẺ TÀI NGUYÊN TRONG LAN TRÊN NHIỀU HỆ ĐIỀU HÀNH
CHIA SẺ TÀI NGUYÊN TRONG LAN TRÊN NHIỀU HỆ ĐIỀU HÀNHCHIA SẺ TÀI NGUYÊN TRONG LAN TRÊN NHIỀU HỆ ĐIỀU HÀNH
CHIA SẺ TÀI NGUYÊN TRONG LAN TRÊN NHIỀU HỆ ĐIỀU HÀNH
 
Bang so sanh cac dich vu email server
Bang so sanh cac dich vu email serverBang so sanh cac dich vu email server
Bang so sanh cac dich vu email server
 
Báo cáo thực tập công nhân ghostcast server
Báo cáo thực tập công nhân ghostcast serverBáo cáo thực tập công nhân ghostcast server
Báo cáo thực tập công nhân ghostcast server
 
Cài đặt exchange server 2013
Cài đặt exchange server 2013Cài đặt exchange server 2013
Cài đặt exchange server 2013
 
Tạo User-Group-OU bằng PowerShell
Tạo User-Group-OU bằng PowerShellTạo User-Group-OU bằng PowerShell
Tạo User-Group-OU bằng PowerShell
 
Vnpt meeting aver true_conf_vidyo
Vnpt meeting aver true_conf_vidyoVnpt meeting aver true_conf_vidyo
Vnpt meeting aver true_conf_vidyo
 
Quản lý mailbox và group trong exchange 2013
Quản lý mailbox và group trong exchange 2013Quản lý mailbox và group trong exchange 2013
Quản lý mailbox và group trong exchange 2013
 

Similar to Co che bao_dong_virus_máy tính

Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳLong Prồ
 
tai lieu dao tao nhan thuc attt
tai lieu dao tao nhan thuc attttai lieu dao tao nhan thuc attt
tai lieu dao tao nhan thuc atttNguyen Xuan Quang
 
Huỳnh bảo tân 12111941
Huỳnh bảo tân 12111941Huỳnh bảo tân 12111941
Huỳnh bảo tân 12111941Tan Huynh
 
Vu tuananh
Vu tuananhVu tuananh
Vu tuananhVũ Anh
 
Báo cáo lần 1
Báo cáo lần 1Báo cáo lần 1
Báo cáo lần 1Anhh Hữu
 
Vu tuananh
Vu tuananhVu tuananh
Vu tuananhVũ Anh
 
SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2Con Ranh
 
SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1Con Ranh
 
Vu tuananh
Vu tuananhVu tuananh
Vu tuananhVũ Anh
 
Báo Cáo Thực Tập _System Hacking
Báo Cáo Thực Tập _System HackingBáo Cáo Thực Tập _System Hacking
Báo Cáo Thực Tập _System HackingVũ Anh
 
Vu tuananh
Vu tuananhVu tuananh
Vu tuananhVũ Anh
 
Bao caothuctap
Bao caothuctapBao caothuctap
Bao caothuctapLong Prồ
 
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn LộcSlide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn LộcLoc Tran
 
Canh bao hinh thuc lay nhiem ransomware
Canh bao hinh thuc lay nhiem ransomwareCanh bao hinh thuc lay nhiem ransomware
Canh bao hinh thuc lay nhiem ransomwarethanglx
 
BÁO CÁO THỰC TẬP ATHENA - TUẦN 1
BÁO CÁO THỰC TẬP ATHENA - TUẦN 1BÁO CÁO THỰC TẬP ATHENA - TUẦN 1
BÁO CÁO THỰC TẬP ATHENA - TUẦN 1phanconghien
 
BÁO CÁO THỰC TẬP - GIỮA KỲ
BÁO CÁO THỰC TẬP - GIỮA KỲBÁO CÁO THỰC TẬP - GIỮA KỲ
BÁO CÁO THỰC TẬP - GIỮA KỲkakawpah0911
 
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaBao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaÂu Dương Bình
 

Similar to Co che bao_dong_virus_máy tính (20)

Virus
VirusVirus
Virus
 
Ch19
Ch19Ch19
Ch19
 
Báo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳBáo cáo thực tập cuối kỳ
Báo cáo thực tập cuối kỳ
 
tai lieu dao tao nhan thuc attt
tai lieu dao tao nhan thuc attttai lieu dao tao nhan thuc attt
tai lieu dao tao nhan thuc attt
 
Huỳnh bảo tân 12111941
Huỳnh bảo tân 12111941Huỳnh bảo tân 12111941
Huỳnh bảo tân 12111941
 
Vu tuananh
Vu tuananhVu tuananh
Vu tuananh
 
Báo cáo lần 1
Báo cáo lần 1Báo cáo lần 1
Báo cáo lần 1
 
Vu tuananh
Vu tuananhVu tuananh
Vu tuananh
 
SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2SYSTEM HACKING - TUẦN 2
SYSTEM HACKING - TUẦN 2
 
SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1SYSTEM HACKING - TUẦN 1
SYSTEM HACKING - TUẦN 1
 
Vu tuananh
Vu tuananhVu tuananh
Vu tuananh
 
Báo Cáo Thực Tập _System Hacking
Báo Cáo Thực Tập _System HackingBáo Cáo Thực Tập _System Hacking
Báo Cáo Thực Tập _System Hacking
 
Vu tuananh
Vu tuananhVu tuananh
Vu tuananh
 
Bao caothuctap
Bao caothuctapBao caothuctap
Bao caothuctap
 
E Lib&Learning
E Lib&LearningE Lib&Learning
E Lib&Learning
 
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn LộcSlide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
 
Canh bao hinh thuc lay nhiem ransomware
Canh bao hinh thuc lay nhiem ransomwareCanh bao hinh thuc lay nhiem ransomware
Canh bao hinh thuc lay nhiem ransomware
 
BÁO CÁO THỰC TẬP ATHENA - TUẦN 1
BÁO CÁO THỰC TẬP ATHENA - TUẦN 1BÁO CÁO THỰC TẬP ATHENA - TUẦN 1
BÁO CÁO THỰC TẬP ATHENA - TUẦN 1
 
BÁO CÁO THỰC TẬP - GIỮA KỲ
BÁO CÁO THỰC TẬP - GIỮA KỲBÁO CÁO THỰC TẬP - GIỮA KỲ
BÁO CÁO THỰC TẬP - GIỮA KỲ
 
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang KhoaBao cao thuc tap tuan 1 Athena Tran Dang Khoa
Bao cao thuc tap tuan 1 Athena Tran Dang Khoa
 

More from laonap166

Huong dan xu ly cac loi khi su dung phan mem reset may in
Huong dan xu ly cac loi khi su dung phan mem reset may inHuong dan xu ly cac loi khi su dung phan mem reset may in
Huong dan xu ly cac loi khi su dung phan mem reset may inlaonap166
 
Huong dan reset muc l200 epson
Huong dan reset muc l200 epsonHuong dan reset muc l200 epson
Huong dan reset muc l200 epsonlaonap166
 
NEC Server Documents
NEC Server DocumentsNEC Server Documents
NEC Server Documentslaonap166
 
Mtcv giám đốc tt cntt
Mtcv giám đốc tt cnttMtcv giám đốc tt cntt
Mtcv giám đốc tt cnttlaonap166
 
Nếu bạn làm it bạn cần biết
Nếu bạn làm it  bạn cần biếtNếu bạn làm it  bạn cần biết
Nếu bạn làm it bạn cần biếtlaonap166
 
Nhạp mon lap trinh khong code
Nhạp mon lap trinh khong code Nhạp mon lap trinh khong code
Nhạp mon lap trinh khong code laonap166
 
Ha active active bang gfs2
Ha active  active bang gfs2Ha active  active bang gfs2
Ha active active bang gfs2laonap166
 
Hướng dẫn cài đặt phần mềm turnoffmonitor
Hướng dẫn cài đặt phần mềm turnoffmonitorHướng dẫn cài đặt phần mềm turnoffmonitor
Hướng dẫn cài đặt phần mềm turnoffmonitorlaonap166
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake phplaonap166
 
He 74 a-thltht-lãxuântâm-11tlt
He 74 a-thltht-lãxuântâm-11tltHe 74 a-thltht-lãxuântâm-11tlt
He 74 a-thltht-lãxuântâm-11tltlaonap166
 
Quản lý cua hang giai khat lxt
Quản lý cua hang giai khat lxtQuản lý cua hang giai khat lxt
Quản lý cua hang giai khat lxtlaonap166
 
Ve ngoi nha lap trinh do hoa bang c
Ve ngoi nha lap trinh do hoa bang cVe ngoi nha lap trinh do hoa bang c
Ve ngoi nha lap trinh do hoa bang claonap166
 
Don xin thanh lap doanh nghiep lien doanh
Don xin thanh lap doanh nghiep lien doanhDon xin thanh lap doanh nghiep lien doanh
Don xin thanh lap doanh nghiep lien doanhlaonap166
 
Thu cam on khach hang
Thu cam on khach hangThu cam on khach hang
Thu cam on khach hanglaonap166
 
Cai dat su_dung_acronis_snapdeployforpc_debungfilebackuphangloat
Cai dat su_dung_acronis_snapdeployforpc_debungfilebackuphangloatCai dat su_dung_acronis_snapdeployforpc_debungfilebackuphangloat
Cai dat su_dung_acronis_snapdeployforpc_debungfilebackuphangloatlaonap166
 
Xd email server zimbra
Xd email server zimbraXd email server zimbra
Xd email server zimbralaonap166
 
Tom tat ly thuyet thi bằng lái xe b2
Tom tat ly thuyet thi bằng lái xe b2Tom tat ly thuyet thi bằng lái xe b2
Tom tat ly thuyet thi bằng lái xe b2laonap166
 
Policy Based Assignment DHCP – Windows Server 2012
Policy Based Assignment DHCP – Windows Server 2012Policy Based Assignment DHCP – Windows Server 2012
Policy Based Assignment DHCP – Windows Server 2012laonap166
 
How to backup active directory domain services database in windows server 201...
How to backup active directory domain services database in windows server 201...How to backup active directory domain services database in windows server 201...
How to backup active directory domain services database in windows server 201...laonap166
 
Dns backup and recovery in windows server 2012 r2
Dns backup and recovery in windows server 2012 r2Dns backup and recovery in windows server 2012 r2
Dns backup and recovery in windows server 2012 r2laonap166
 

More from laonap166 (20)

Huong dan xu ly cac loi khi su dung phan mem reset may in
Huong dan xu ly cac loi khi su dung phan mem reset may inHuong dan xu ly cac loi khi su dung phan mem reset may in
Huong dan xu ly cac loi khi su dung phan mem reset may in
 
Huong dan reset muc l200 epson
Huong dan reset muc l200 epsonHuong dan reset muc l200 epson
Huong dan reset muc l200 epson
 
NEC Server Documents
NEC Server DocumentsNEC Server Documents
NEC Server Documents
 
Mtcv giám đốc tt cntt
Mtcv giám đốc tt cnttMtcv giám đốc tt cntt
Mtcv giám đốc tt cntt
 
Nếu bạn làm it bạn cần biết
Nếu bạn làm it  bạn cần biếtNếu bạn làm it  bạn cần biết
Nếu bạn làm it bạn cần biết
 
Nhạp mon lap trinh khong code
Nhạp mon lap trinh khong code Nhạp mon lap trinh khong code
Nhạp mon lap trinh khong code
 
Ha active active bang gfs2
Ha active  active bang gfs2Ha active  active bang gfs2
Ha active active bang gfs2
 
Hướng dẫn cài đặt phần mềm turnoffmonitor
Hướng dẫn cài đặt phần mềm turnoffmonitorHướng dẫn cài đặt phần mềm turnoffmonitor
Hướng dẫn cài đặt phần mềm turnoffmonitor
 
Bao cao web cake php
Bao cao web cake phpBao cao web cake php
Bao cao web cake php
 
He 74 a-thltht-lãxuântâm-11tlt
He 74 a-thltht-lãxuântâm-11tltHe 74 a-thltht-lãxuântâm-11tlt
He 74 a-thltht-lãxuântâm-11tlt
 
Quản lý cua hang giai khat lxt
Quản lý cua hang giai khat lxtQuản lý cua hang giai khat lxt
Quản lý cua hang giai khat lxt
 
Ve ngoi nha lap trinh do hoa bang c
Ve ngoi nha lap trinh do hoa bang cVe ngoi nha lap trinh do hoa bang c
Ve ngoi nha lap trinh do hoa bang c
 
Don xin thanh lap doanh nghiep lien doanh
Don xin thanh lap doanh nghiep lien doanhDon xin thanh lap doanh nghiep lien doanh
Don xin thanh lap doanh nghiep lien doanh
 
Thu cam on khach hang
Thu cam on khach hangThu cam on khach hang
Thu cam on khach hang
 
Cai dat su_dung_acronis_snapdeployforpc_debungfilebackuphangloat
Cai dat su_dung_acronis_snapdeployforpc_debungfilebackuphangloatCai dat su_dung_acronis_snapdeployforpc_debungfilebackuphangloat
Cai dat su_dung_acronis_snapdeployforpc_debungfilebackuphangloat
 
Xd email server zimbra
Xd email server zimbraXd email server zimbra
Xd email server zimbra
 
Tom tat ly thuyet thi bằng lái xe b2
Tom tat ly thuyet thi bằng lái xe b2Tom tat ly thuyet thi bằng lái xe b2
Tom tat ly thuyet thi bằng lái xe b2
 
Policy Based Assignment DHCP – Windows Server 2012
Policy Based Assignment DHCP – Windows Server 2012Policy Based Assignment DHCP – Windows Server 2012
Policy Based Assignment DHCP – Windows Server 2012
 
How to backup active directory domain services database in windows server 201...
How to backup active directory domain services database in windows server 201...How to backup active directory domain services database in windows server 201...
How to backup active directory domain services database in windows server 201...
 
Dns backup and recovery in windows server 2012 r2
Dns backup and recovery in windows server 2012 r2Dns backup and recovery in windows server 2012 r2
Dns backup and recovery in windows server 2012 r2
 

Co che bao_dong_virus_máy tính

  • 1. 1 MMỞỞ ĐĐẦẦUU:: Đã từ lâu, đi kèm với sự ra đời và phát triển của các phần mền tin học đem lại lợi ích to lớn cho người sử dụng là sự xuất hiện của các chương trình chuyên phá hoại là virus máy tính. Các chương trình có ích đem lại sự thuận lợi cho người sử dụng bao nhiêu thì trên phương diện phá hoại các virus máy tính cũng gây ra những thiệt hại to lớn bấy nhiêu, thành quả lao động của nhiều người trong suốt cả thời gian dài được cất giữ trên các máy tính đã bị phá tan tành chỉ vì bị nhiễm virus.Vì tin học càng ngày càng là nhu cầu cấp thiết nên cũng phải chấp nhận sự tồn tại mặt trái của nó, do vậy cần phải biết một số kiến thức cơ bản về virus cũng như cách phát hiện nó nhằm mục đích bảo vệ được máy tính của bạn ở mức tốt nhất có thể. Đồ án này được viết nhằm mục đích đó, tuy nhiên do khả năng có hạn của người viết đồ án này còn có nhiều khuyết điểm mong nhận được sự góp ý để có thể hoàn thiện hơn. Em xin cảm ơn cô Trần Hồ Thủy Tiên và thầy Nguyễn Tấn Khôi đã tận tình hướng dẫn và các bạn cùng lớp đã gợi ý rất nhiều để có thể hoàn thành đồ án này.
  • 2. 2 MỤC LỤC MỞ ĐẦU: ............................................................................................................................................ 1 CƠ CHẾ PHÁT HIỆN VÀ BÁO ĐỘNG VIRUS ............................................................................... 3 A/Lý Thuyết:........................................................................................................................................ 3 I/Một số khái niệm cơ bản về Virus: ................................................................................................... 3 1/Định nghĩa: ....................................................................................................................................... 3 2/Phân Loại:......................................................................................................................................... 3 3/Tính chất của Virus:.......................................................................................................................... 3 4/Các công nghệ của Virus:................................................................................................................. 4 II/Cơ chế phát hiện và báo động Virus:............................................................................................. 11 1/Kiểm tra bộ nhớ trong:.................................................................................................................... 12 2/Kiểm tra Master Boot và Boot Sector: (dùng cho Virus Boot ) ..................................................... 13 3/Kiểm tra trên file:............................................................................................................................ 15 B/Chương Trình Minh Họa: ............................................................................................................. 16 1/Ngôn ngữ viết chương trình:........................................................................................................... 16 2/Chương trình minh họa:.................................................................................................................. 16
  • 3. 3 CCƠƠ CCHHẾẾ PPHHÁÁTT HHIIỆỆNN VVÀÀ BBÁÁOO ĐĐỘỘNNGG VVIIRRUUSS AA//LLýý TThhuuyyếếtt:: II//MMộộtt ssốố kkhhááii nniiệệmm ccơơ bbảảnn vvềề VViirruuss:: 1/Định nghĩa: -Virus máy tính thực chất là các phần mềm tin học có khả năng gián tiếp tự kích hoạt, tự nhân bản sao chép chính nó vào các chương trình khác nhằm mục đích phá hoại, do thám hoặc cũng có thể chỉ là để vui đùa. Để tiện trình bày, từ nay khi nói virus ta hiểu là virus máy tính 2/Phân Loại: -Như đã nói tin học phát triển ngày càng mạnh mẽ thì virus cũng phát triển ngày càng đa dạng có thể nói không có loại virus nào là hoàn toàn giống nhau. Tuy nhiên các virus luôn có một số đặc điểm chung nhất định để dựa vào đó người ta có thể phân biệt nó. Có nhiều cách phân loại khác nhau, phân loại theo đối tượng lây nhiễm thì virus gồm hai loại : a/Virus Boot(b-virus): -Là các virus lây nhiễm lên BootSector trên đĩa mềm hoặc Master Boot Record và Disk Boot Record trên đĩa cứng, bảng định vị file FAT(File Allocation Table) bảng ghi(Windows Registry) của hệ điều hành Windows…Loại virus này chiếm quyền điều khiển khi máy tính khởi động trước khi hệ điều hành được nạp do vậy loại virus này hoạt động không phụ thuộc vào hệ điều hành b/Virus File(F-virus): -Là loại virus lây nhiễm trên các dạng file (có chứa nội dung thi hành được), bao gồm các file có chứa mã máy như các file .com, .exe và các file chứa mã giả (pseudo code) như các file .bat, .doc, và một số loại file khác… 3/Tính chất của Virus: a/Tính lây lan: -Đây là tính chất cơ bản để xác định một chương trình có phải là một virus hay không. Các virus tin học mô phỏng giống như các virus sinh học lây lan trên các máy tính, các virus đều được thiết kế theo hướng có khả năng lây lan mạnh nhất đó cũng chính là yếu tố để dẫn đến sự ra đời của các virus trên mạng.
  • 4. 4 b/Tính phá hoại: -Đây là một tính chất chủ yếu để đánh giá mức độ nguy hiểm của một virus. Các virus được thiết kế với mục đích phá hoại bao gồm phá hoại dữ liệu và phá hoại máy tính làm ảnh hưởng đến máy tính…Mặc dù vẫn có một số virus được tạo ra với mục đích đùa giỡn hoặc thử nghiệm người tạo ra hoàn toàn không có ý định phá hoại, nhưng do lỗi lôgic khi lập trình đôi khi lại gây ra những hiệu ứng nguy hiểm không kém các virus được tạo ra để phá hoại mà chính người tạo ra nó cũng không thể lường trước. Đặc biệt là khi có hơn một loại virus tồn tại trong máy tính và cùng phá hoại dữ liệu. Các chương trình diệt virus sẽ bị lừa khi hậu quả phá hoại của con virus đầu tiên bị con thứ hai tiếp tục phá hoại và tạo ra nhưng kết quả khác hẳn, làm mất hết đấu vết nên các chương trình nhận dạng không xác định được loại virus nào dù cả hai đã được cập nhật c/Tính nhỏ gọn: -Để có thể dễ dành lây nhiễm mà khó bị phát hiện các virus phần lớn đều có tính nhỏ gọn. Tính nhỏ gọn trở nên rất quạn trọng đối với các virus lây lan trên mạng. Hầu hết các virus đều có kích thước rất nhỏ trong khoảng 4KB trở xuống trừ một số virus được viết bằng các ngôn ngữ bậc cao. Cùng với tính chất lây nhiễm tính chất này đã tạo nên tên gọi virus tin học d/Tính tương thích: -Virus là một chương trình máy tính cũng như các chương trình khác virus cũng có tính tương thích. Một virus được thiết kế để hoạt động trên một môi trường này thường không thể hoạt động trên một môi trường khác không thích hợp với nó. Ví dụ một con sâu mạng không thể lây nhiễm trên các máy tính sử dụng hoàn toàn môi trường DOS vì nó không thể tìm ra bản đăng kí (Resgistry) của Windows. Để khắc phục điểm yếu này ngày nay các virus phát triển theo hướng lai, bao gồm có nhiều phần mỗi phần có tác dụng lây nhiễm trên những môi trường khác nhau. e/Tính phát triển kế thừa: -Các virus ra đời sau thường có xu hướng kế thừa những ý tưởng công nghệ của các virus đã có trước theo cách này hay cách khác giữ nguyên hoặc sửa đổi cải tiến …để có thể tận dụng những điểm mạnh và khắc phục những điểm yếu dễ dàng hơn. Điều này nhiều khi tạo ra một họ virus như họ virus Date,họ virus Tiny… 4/Các công nghệ của Virus: -Virus muốn tồn tại và phát triển thì nó phải có sức mạnh, sức mạnh có được từ các công nghệ tạo virus, đó là các cách tạo virus thông minh tối ưu độc đáo,mỗi cách mới để tạo ra virus đều có thể tạo ra một phương pháp mới một công nghệ mới. Dưới đây chỉ là một số công nghệ thông dụng a/Công nghệ lây nhiễm (Infect): -Là công nghệ căn bản của một virus bảo đảm cho sự tồn tại lây lan phát triển của virus. Những virus có tính lây lan càng nhanh thì thông thường mức độ nguy hiểm càng lớn
  • 5. 5 -Các virus Boot +Đối với đĩa mềm việc lây nhiễm đơn giản chỉ là thay thế Boot Record (BR) với một đoạn chương trình virus +ĐốI với đĩa cứng vì Master Boot Record (MB) và BR trên phân vùng hoạt động đều được trao quyền khởi động nên có thể thay thể MB hay BR. Kích thước của MB/BR chỉ gồm 1 sector 512 byte (DOS) nên không đủ lớn đối với một virus, nên cần phải tìm một vị trí trên đĩa để lưu phần mã còn lại. MB/BR cũ chứa các thông tin quan trọng về bản phân vùng/bảng tham số đĩa nên cần phải lưu, nơi lưu giữ phải bảo đảm không bị ghi đè. Virus có thể sử dụng một số vùng đĩa sau: +Đối với đĩa mềm: Có thể dùng những vùng đĩa ít khi được sử dụng như các sector cuối của thư mục gốc các sector cuối trên đĩa, hay có thể sử dụng các sector còn trống bất kì rồi đánh dấu các sector này đã bị hỏng, một phương pháp khác là có thể định dạng thêm track mới cho đĩa mềm sau đó sử dụng track này. +ĐốI với đĩa cứng : Vì trên track 0 thường chỉ chứa MB trên sector 1 do đó có rất nhiều sector không dùng đến có thể sử dụng vào mục đích này hoặc có thể sử dụng hai phương pháp đầu đã áp dụng đối vớI đĩa mềm +Như vậy sau khi trao quyền điều khiển virus Boot sẽ tiến hành các hoạt động lây nhiễm cài đặt sau đó đọc MB/BR cũ vào Ram trả quyền điều khiển cho đoạn mã trong MB/BR cũ. Các virus thường cố gắng lây nhiễm trên đĩa cứng ngay khi khởi động vì đĩa cứng là cố định trong suốt phiên làm việc của máy tính. Để lây nhiễm trên đĩa mềm các Boot virus thường tiến hành phân phối vùng nhớ riêng để thường trú chiếm một số ngắt để phục vụ cho việc lây lan (thường là ngắt 13h) ,mỗi khi phát hiện thấy đĩa mềm chưa bị nhiễm virus sẽ tiến hành lây trên đĩa mềm đó. - Các virus File +Các virus File trên môt trường Dos chỉ có các dạng file thi hành .com;. exe;.bat. Sử dụng các ngắt dịch vụ file để tiến hành những thao tác mở đóng file xóa , đặt thuộc tính file lấy đặt ngày giờ tạo file (thường sử dụng ngắt 21h) +Các công nghệ ghép chương trình virus vào file chủ : +ghi đè : áp dụng đối vớI file dạng .com đơn giản chỉ ghi đè mã lệnh lên đầu file chủ ,mỗi khi chương trình chủ được thi hành virus sẽ chiếm quyền điều khiển. Do virus không lưu dữ phần dữ liệu của chương trình chủ nên không thể trả quyền thi hành cho chương trình chủ,do đó loại virus này mang tính phá hoại hơn là lây lan. +ghi đè bảo toàn: áp dụng đối với file dạng .com, phần dữ liệu bị ghi đè được virus ghi xuống cuối file nên có thể trả quyền điều khiển cho chương trình chủ được. +dịch chuyển:có thể áp dụng đối với các loại file .exe ,.com. Lây nhiễm bằng cách đặt mã lệnh virus lên đầu file sau đó chuyển toàn bộ dữ liệu của chương trình chủ xuống sau mã lệnh của virus,nên virus có thể trả quyền điều khiển cho chương trình chủ.
  • 6. 6 +song hành : đặc điểm của dos là khi thi hành một file nếu không gõ phần mở rộng thì dos sẽ thi hành các file cùng tên theo thứ tự .exe;.com;.bat Do đó khi phát hiện một file exe thì virus sẽ tạo một file cùng tên có đuôi .com Khi thi hành file ta không gõ phần mở rộng thì virus sẽ chiếm quyền điều khiển. + Nối thêm: Virus được ghi vào cuối file chủ, file bị sửa đổi sẽ chuyển quyền điều khiển đến mã lệnh virus mỗi khi file thi hành. Đối với file .com virus thường lưu vài byte đầu (thường từ 3-5 byte đủ kích thước cho một lệnh nhảy) lệnh này định hướng đến phần mã còn lại của virus. Đối với file .exe virus sẽ sửa các giá trị trong exe header để chuyển đầu vào của chương trình đến phần mã lệnh của virus +còn một số cách khác như chèn giữa file, định hướng lại lệnh nhảy… b/Công nghệ kiểm tra sự tồn tại (Check if exist): -Virus phải lây nhiễm nhưng ở mỗi nơi chỉ được lây nhiễm một lần, nếu virus lây nhiễm nhiều lần ở một nơi thì chẳng có hiệu quả gì tốt hơn việc lây nhiễm một lần tại nơi đó, hơn nữa việc này ảnh hưởng rõ rệt tới tốc độ của máy tính làm người sử dụng nghi ngờ máy bị nhiễm virus và tạo ra sơ hở lớn cho các chương trình diệt virus. Chính vì các lí do đó trước khi lây nhiễm virus phải kiểm tra sự tồn tại của mình trên đối tượng chủ, môi trường. -Đối với virus boot +Kiểm tra trên bộ nhớ chỉ tiến hành một lần khi máy tính khởi động trước khi tiến hành thường trú do đó tốc độ không phải là yêu cầu chính quan trọng là độ chính xác. Có thể kiểm tra bằng cách dò tìm các đoạn mã nhận dạng trên bộ nhớ hoặc có thể tạo thêm hàm ngắt để kiểm tra. Virus có thể tạo nên những ngắt mới trả lại những giá trị đặt biệt trong các thanh ghi là dấu hiệu để nhận biết sự tồn tại. +kiểm tra trên đĩa:Kiểm tra trên đĩa đã bị lây nhiễm hay chưa,việc kiểm tra trên đĩa phải được tiến hành nhiều lần nên phải bảo đảm tốc độ. -Đối với virus file +kiểm tra trên bộ nhớ tương tự như virus boot +kiểm tra trên file: Có thể dò tìm đoạn mã nhận dạng trên file,virus có thể kiểm tra đoạn mã nhận dạng trên toàn bộ file hoặc trên một phần nào đó của file, nếu không thấy đoạn mã coi như file đó chưa bị lây nhiễm. Có thể dùng phương pháp kiểm tra theo kích thước hoặc kiểm tra theo nhãn thời gian của file (thường khi lây nhiễm virus đưa vào các giá trị đặc biệt như tháng 13 hoặc giây 65). c/Công nghệ định vị: -Là công nghệ để xác định vị trí của virus trên vùng nhớ. Đây là một công nghệ cơ bản nhưng rất quan trọng vì để virus có thể hoạt động được nó bắt buộc hệ thống phải thực thi nó bằng cách định vị địa chỉ của nó trong vùng nhớ và bắt buộc hệ thống thi hành đoạn mã lệnh tại vùng nhớ đó. -Đối với virus boot +MB,BR luôn được BIOS nạp vào RAM tại địa chỉ 0000:7C00h và chuyển quyền điều khiển với một lệnh nhảy xa: JMP FAR 0000:7C00
  • 7. 7 Do đó khi virus boot nhận được quyền điều khiển thanh ghi CS=0 các tham chiếu đều phải tính theo offset 7C00 -Đối với virus file +những virus áp dụng công nghệ lây nhiễm ghi đè, ghi đè bảo toàn, dịch chuyển thì không cần định vị lại vì chương trình vẫn được thi hành như bình thường. Các loại virus khác cần phải định vị lại vì offset của virus không được bảo toàn mà thay đổi với mỗi file chủ mà nó lây nhiễm. Không giống như virus boot một file thi hành có thể nạp vào những vùng địa chỉ khác nhau tùy thuộc vào tình trạng vùng nhớ. +công nghệ định vị còn được gọi là công nghệ DELTA dựa trên cách tiến hành lệnh CALL của bộ vi xử lí Cú pháp : CALL địa chỉ Câu lệnh tiếp theo Khi thi hành lệnh này bộ vi xử lí sẽ cất địa chỉ offset của mã lệnh tiếp sau lệnh CALL vào ngăn xếp sau đó chuyển IP đến địa chỉ cần gọi. Như vậy để lấy địa chỉ của câu lệnh kế tiếp ta chỉ cần lấy giá trị lưu trong ngăn xếp, giá trị này thường được chứa trong các thanh ghi SI DI BX BP sau đó sử dụng giá trị này và độ chênh lệch điểm mốc để tham chiếu dữ liệu mã lệnh. d/Công nghệ thường trú (Residency): -Thường trú có nghĩa là bật máy lên cũng đồng nghĩa với việc khởi động một chương trình virus. Chương trình này chỉ dừng khi tắt máy,việc thường trú này khiến cho khả năng lây lan và phá hoại của virus rất dễ dàng và gây nên các thiệt hại to lớn.Quá trình thường trú bao gồm: +phân phối một vùng nhớ riêng để lưu giữ chương trình virus. Các cách phân phối vùng nhớ là : phân phối vùng nhớ cao,phân phối vùng nhớ thấp… +phân phối vùng nhớ cao (vùng nhớ cuối cùng của bộ nhớ): sau khi thực hiện quá trình Post kích thước bộ nhớ cơ bản tính theo KB sẽ được ghi vào một vùng dữ liệu của Bios ở địa chỉ 0:0413h. Khi một hệ điều hành nắm quyền điều khiển nó bắt đầu kiểm soát vùng nhớ có kích thước đó bắt đầu từ 0000:0000h. Như vậy để dùng một vùng nhớ riêng mà không bị hệ điều hành sử dụng chỉ cần giảm giá trị tại vùng địa chỉ này và sủ dụng những KB cuối cùng của vùng nhớ (mỗi virus boot thường có cỡ 1- 4KB) +phân phối vùng nhớ thấp :Các virus phân phối vùng nhớ cao thường dễ bị phát hiện do làm giảm kích thước bộ nhớ mà hệ điều hành sử dụng. Để khắc phục có thể sử dụng vùng nhớ thấp khi mà hệ điều hành đã được tải vào. +ngoài ra còn có thể sử dụng phần còn trống của bảng vector ngắt chưa sử dụng với mục đích dự trữ (thường dùng trong khoảng AAAA đến BBBB ), còn có thể sử dụng các lỗ hổng trong vùng nhớ… +Sau khi đã phân phối vào vùng nhớ cần phải chuyển toàn bộ chương trình virus lên vùng nhớ đó và chặn một số ngắt phục vụ cho việc lây nhiễm. Có các cách chặn ngắt sau:
  • 8. 8 ++ thay thế các ngắt trực tiếp trong bảng vector ngắt .Bảng vector ngắt chứa địa chỉ của 256 ngắt từ ngắt 00 đến FFh được đặt bắt đầu từ địa chỉ 0000:0000, các vector ngắt đặt liền nhau cho đến địa chỉ 0000:03FCh. Virus thay thế các ngắt cần thiết trong bảng bằng các vector ngắt mới chỉ đến thủ tục xử lí ngắt mới của virus các vector ngắt cũ cũng được lưu lại để sử dụng khi cần. + nếu phát hiện thủ tục xử lí ngắt nằm trong RAM có thể áp dụng một công nghệ khác : thay thế một số lệnh đầu tiên ở đầu thủ tục xử lí ngắt bằng lệnh nhảy xa JMP FAR xxxx:yyyy . Những mã lệnh bị thay thế được lưu lại để sử dụng khi cần dùng cácdịch vụ của thủ tục xử lí ngắt cũ. e/Công nghệ phá hoại,do thám (Payload): -Đây không phải là công nghệ bắt buộc phải có của một virus. Nhưng một số virus được thiết kế để do thám (nói cho cùng thì đó cũng là một loại phá hoại) luôn sử dụng và coi công nghệ này là trung tâm. Các virus loại này đôi khi tạo ra thiêt hại rất to lớn thường là nghiên về người sử dụng hơn là sự hư hại máy tính, vì được dùng để đánh cắp thông tin nhiều khi là sống còn đối với người sử dụng f/Công nghệ tạo áo giáp (Armouring): -Là công nghệ chống gỡ rối dịch ngược mã lệnh virus tạo ra cho virus một vỏ bọc để có khả năng đề kháng mạnh hơn đối với các chương trình diệt virus. Công nghệ này chủ yếu dựa trên công nghệ mã hóa kết hợp với việc sử dụng các lệnh CALL JMP.. .Chương trình dịch ngược sẽ rất khó khăn khi dịch các virus được mã hóa hay dịch các virus sử dụng các lệnh CALL JMP lôn xộn dữ liệu và mã lệnh được bố trí xen kẽ… h/Công nghệ ngụy trang (Stealth): -Là công nghệ giấu diếm ngụy trang sự tồn tại của virus trên đối tượng chủ và môi trường lây nhiễm. Người dùng và ngay cả các chương trình diệt virus cũng sẽ khó phát hiện khi bị virus tấn công. -Đối với virus boot: +ngụy trang trên bộ nhớ: các virus boot thường trú trên vùng nhớ cao thường dễ bị phát hiện để khắc phục điểm yếu đó các virus thường chờ hệ điều hành nạp vào rồi tiến hành thường trú ở vùng nhớ thấp +ngụy trang trên đĩa : để ngụy trang trên đĩa virus boot cần tìm cách thay đổI MB/BR ít nhất có thể nhằm giảm khả năng bị phát hiện, có thể ghi một đoạn mã rất nhỏ trong MB/BR còn phần còn lại nạp vào vùng nhớ. Một phương pháp có hiệu quả hơn là khi virus thường trú trong bộ nhớ mọi yêu cầu đọc ghi đĩa khác sẽ được định hướng lại thành đọc ghi sector lưu giữ MB/BR cũ. Các chương trình khác sẽ nhận được MB/BR cũ do đó không phát hiện sự tồn tại của virus, khi sử dụng phương pháp này cần phải kiểm soát tất cả thao tác đọc ghi đĩa lên MB/BR. Khi tiến hành lây nhiễm có thể đánh dấu các sector đã hỏng để hệ điều hành không cón sử dụng các sector đó nữa. -Đối với virus file
  • 9. 9 +ngụy trang trên bộ nhớ : các virus file thường trú trên vùng nhớ dễ bị phát hiện nên có thể sử dụng ngụy trang trên vùng nhớ thấp, trên UMB hoặc trên HMB +ngụy trang trên file : không như MB/BR ít khi được người sử dụng quan tâm các file được quan sát thường xuyên mọi thay đổi về kích thước ngày tháng nội dung dễ bị nhận thấy. Vì vậy ngụy trang trên file là yếu tố sống còn đối với virus file, có thể sử dụng các công nghệ sau: ++xử lí việc tăng kích thước file: Phương pháp này chỉ sử dụng đối với loại virus làm tăng kích thước file. Kích thước file là một giá trị longint (4 byte) phải chặn ngắt 021h của Dos và làm giảm giá trị này bằng kích thước của virus. ++Xử lí việc thay đổi ngày tháng /thuộc tính: đơn giản chỉ là bảo lưu nhãn thời gian và thuộc tính cũ của file bị lây nhiễm ++Xử lí việc thay đổi nội dung file: virus có thể sử dụng một phương pháp có tên là DisInfect On the Fly :mỗi khi có yêu cầu mở một file lây nhiễm để đọc virus sẽ tiến hành tự loại bỏ khỏi file khi đóng file hay thi hành file virus sẽ tiến hành lây nhiễm lại lần nữa. g/Công nghệ mã hóa (Encryption): -Là công nghệ mã hóa phần chương trình chính của virus đây là công nghệ cũ nhưng hiện nay vẫn được sử dụng , cải tiến sửa đổi. Công nghệ này cũng nhằm để che dấu sự tồn tại của virus trên đối tượng chủ. Trong đó phép XOR thường được sử dụng do tính đơn giản mặt khác thủ tục mã hóa cũng chính là thủ tục giải mã i/Công nghệ đa hình (Polymorphism): -Công nghệ này dùng để chống lại phương pháp dò tìm đoạn mã của các chương trình diệt virus. Công nghệ này dựa trên ý tưởng mỗi mẫu virus được mã hóa với những khóa mã giải mã khác biệt, mã lệnh toán học/lôgic khác biệt … so với những mẫu trước đó. Dù virus được mã hóa nhưng đoạn chương trình mã hóa vẫn cố định trên toàn bộ mọi mơi mà virus lây nhiễm, ý tưởng chính của công nghệ đa hình là thay đổi cả thủ tục mã hóa để các virus khác nhau trên mỗI file có rất nhiều cách từ đơn giản đến phức tạp để thực hiện công nghệ này.Có thể sử dụng một số cách sau: +Virus có một số bộ mã hóa giải mã mỗi lần lây nhiễm chọn một bộ mã hóa bất kì trong tập hợp đó +Bộ giải mã chứa một số lệnh cố định phần còn lại có thể thay đổi…. j/Công nghệ biến hình (Metamorphism): -Là một công nghệ độc đáo hoàn hảo để chống lại các chương trình diệt virus. Công nghệ đa hình chỉ tạo ra các bộ giải mã khác biệt còn công nghệ biến hình sinh ra đọan mã mới hoàn toàn. Rõ ràng đây là công nghệ khó vì phải biến đổi đoạn mã mà vẫn giữ nguyên tác dụng của virus nhưng đổi lại các chương trình diệt virus sẽ rất khó diệt được virus có sử dụng công nghệ này. -Công nghệ này rất phức tạp sau đây là một số điểm chính yếu của công nghệ này:
  • 10. 10 +có bộ dịch ngược nội tại để dịch ngược các lệnh +có bộ rút gọn mã:có nhiệm vụ rút gọn tối ưu hai mã lệnh thành một lệnh mà không thay đổi hành động của virus +có bộ mở rộng mã:ngược lại với bộ rút gọn mã +có bộ hoán đổi mã:có nhiệm vụ hoán đổi các mã lệnh +có bộ định vị lại : định vị lại các lệnh nhảy,lệnh gọi … +có bộ sinh rác:có nhiệm vụ chèn thêm các đoạn mã lệnh không có nghĩa vào chương trình … k/Công nghệ chống mô phỏng (Anti emulation): -Emulation là công nghệ mà các chương trình diệt virus sử dụng để mô phỏng mã lệnh của các chương trình nghi ngờ là virus kiểm tra phát hiện virus chưa biết. Công nghệ chống mô phỏng giúp cho virus có thể ngụy trang để vượt qua sự kiểm tra hay làm cho hệ mô phỏng không thể tiến hành phân tích virus. Có thể chiếm các ngắt 01h,02h phục vụ cho việc gỡ rối hoặc là sử dụng công nghệ thường trú trên HMA (High Memory Area)… cũng có thể tiến hành thao tác với ngăn xếp và các thanh ghi đoạn dữ liệu. l/Công nghệ chống theo dõi (Anti heuristic) -Một số chương trình diệt virus hiện đại sử dụng một phương pháp gọi là heuristic phát hiện virus dựa trên hành vi của các chương trình và công nghệ anti heuristic nhằm để chống lại sự phát hiện của các trình diệt virus đó. Có thể sử dụng các cách sau: +sử dụng các hàm dịch vụ (các ngắt) theo cách riêng hay các sử dụng các hàm dịch cụ giả do virus tạo ra +chèn thêm các đoạn mã lệnh rác không ảnh hưởng đến lôgic chương trình xen kẽ giữa những mã lệnh thật sự m/Công nghệ Tunneling: -Các chương trình diệt virus sử dụng các chương trình kiểm soát hệ thống phát hiện các hoạt động đặc biệt nghi ngờ là virus để cảnh báo. Tunneling là công nghệ nhằm để giành được quyền kiểm soát cao nhất đối với môi trường tránh được sự kiểm soát của các chương trình diệt virus n/Công nghệ Anti-Tunnel: -Công nghệ tunneling cũng được các chương trình diệt virus sử dụng để có được quyền kiểm soát cao nhất. Anti tunnel là công nghệ mà các virus sử dụng để ngăn chặn các chương trình diệt virus cũng như các virus khác nắm được quyền kiểm soát cao nhất. Công nghệ này chủ yếu hạn chế phương pháp sử dụng các ngắt 01h,03h để lần theo chuỗi thủ tục ngắt. -Đối với ngắt 01h nếu giá trị của cờ bẫy trong thanh ghi cờ được bật thì bộ xử lí sẽ tiến hành gọi ngắt 01h sau khi thi hành một mã lệnh. Thanh ghi cờ, địa chỉ của lệnh bị ngắt được lưu vào ngăn xếp trước khi quyền điều khiển được trao cho thủ tục xử lí ngắt. Sử dụng các thao tác trực tiếp đối với thanh ghi cờ và ngăn xếp virus có thể
  • 11. 11 phát hiện và làm dừng quá trình lần vết này. Một phương pháp khác là đặt lại các vecter ngắt 01h,03h để ngăn chặn quá trình lần vết. o/Công nghệ Ani Bait: -Biat là một thuật ngữ chỉ các chương trình dùng để bẫy các virus các chương trình này không làm bất cứ việc gì chỉ là đối tượng nhử mồi để virus xuất hiện. Công nghệ anti Bait nhằm để cho virus thông minh hơn nhận biết được các bẫy để tránh việc phát hiện. Chủ yếu dựa trên tính chất chung của file Bait virus thường chọn các file để lây nhiễm có các tiêu chí sau: +trong tên không có chữ số (thường dùng để đánh số các file Bait) +có kích thước tương đối lớn +có mã lệnh không quá đặc biệt -Đây là công nghệ không được dùng nhiều p/Công nghệ tối ưu: -Bao gồm các cách viết mã và thiết kế nhằm để tối ưu hóa virus về mặt tốc độ, kích thước, khả năng phá hoại, khả năng chống lại các chương trình diệt…Công nghệ này khiến cho virus mạnh lên một cách toàn cục. Công nghệ này được sử dụng rất nhiều và gây nhiều khó khăn cho các trình diệt virus. Có thể nói công nghệ này rất rộng lớn có rất nhiều cách làm cho chương trình virus tối ưu, sau đây trình bày một số cách: -Sử dụng các thủ tục: nếu các mã lệnh có kích thước lớn mà phải sử dụng nhiều lần thì có thể sử dụng các thủ tục. Vì lệnh gọi thủ tục và lệnh trở về ( call/ret) có kích thước 3+1=4 byte nên có thể đưa ra công thức tính số byte tiết kiệm được là: Số byteTKĐ=(Cỡ của Proc-4)* số lần gọi Proc-cỡ của Proc +Nên nhớ phương pháp này làm nhỏ chương trình virus nhưng cũng đồng thờI tăng thời gian xử lí cho CPU nhưng đây là một ảnh hưởng không đáng kể -Sử dụng các mã lệnh tiết kiệm khối lượng cũng như thời gian thực hiện công việc +Sử dụng các thanh ghi AL/AX thay cho các thanh ghi khác vì các thanh ghi này có kích thước mã lệnh ngắn hơn các thanh ghi khác, ví dụ CMP BX,233 ;4 byte CMP AX,233;3 byte +Sử dụng thanh ghi đoạn DS thay cho các thanh ghi đoạn khác MOV AX, ES:[SI] ;3 byte MOV AX,DS:[SI] ;2 byte IIII//CCơơ cchhếế pphháátt hhiiệệnn vvàà bbááoo đđộộnngg VViirruuss:: -Cơ chế phát hiện và báo động virus có thể bao gồm các bước sau +Kiểm tra bộ nhớ trong +Kiểm tra Master Boot và Boot Sector +Kiểm tra trên file
  • 12. 12 1/Kiểm tra bộ nhớ trong: -Có hai cách để kiểm tra sự có mặt của virus trong bộ nhớ +Cách thứ nhất là kiểm tra sự có mặt của đoạn mã nhận dạng virus tại một địa chỉ xác định trong bộ nhớ, cách này có nhược điểm là chỉ nhận biết được các virus có trong cơ sở dữ liệu của chương trình diệt đối với những virus mới không được cập nhật thì cách này không thể phát hiện được. +Cách thứ hai là làm theo một số chương trình virus khi sử dụng công nghệ kiểm tra sự tồn tại của mình trong bộ nhớ dùng ngắt 21h và các chức năng đặc biệt để kiểm tra, và kiểm tra dung lượng của vùng nhớ do Dos quản lí. Cách này cũng có nhược điểm là thời gian kiểm tra tăng lên và không phải virus nào cũng sử dụng cách kiểm tra này. -Nên kiểm tra sử dụng kết hợp cả hai cách trên tức là ban đầu dùng cách thứ nhất sau đó nếu không phát hiện dùng cách hai. Sơ đồ khối cụ thể như sau Bắt Đầu Kiểm Tra MeM Nhận Dạng True Báo Động Mã Virus False Kiểm Tra địa chỉ Ngắt 13h,21h và False Kích thước Bộ Nhớ True Kết Thúc -Nhớ rằng cách này không chấp nhận bất cứ chương trình nào thường trú ngắt 21h trong quá trình kiểm tra -Giai đoạn nhận dạng mã : ta có thể kiểm tra các mã nhận dạng được lưu trong file nào đó ví dụ DBVIRM.DAT khi có virus mới ta có thể cập nhật bằng cách đưa thêm dữ liệu vào file này mà không cần phải thay đổi chương trình .Như vậy quá trình thực hiện của giai đoạn này là ban đầu kiểm tra xem có thể mở được file
  • 13. 13 DBVIRM.DAT nếu không có báo lỗi (có thể không có file này hoặc file này bị hư). Còn nếu mở thành công thì bắt đầu kiểm tra.File DBVIRM.DAT có thể có thể được cấu tạo bao gồm các bản ghi mỗi bản ghi bao gồm các trường như sau: +địa chỉ segment chứa mã nhận biết của virus trong bộ nhớ +địa chỉ offset chứa mã nhận biết của virus trong bộ nhớ +số lượng byte trong mã nhận biết +mã nhận biết của virus +tên của virus - Nên nhớ rằng trên đây chỉ là một mẫu điển hình bạn hoàn toàn có thể thay đổi chương trình theo ý muốn -Giai đoạn kiểm tra dung lượng bộ nhớ và ngắt 21h. +nên nhớ địa chỉ của ngắt 21h không phải cố định, mà thay đổi theo từng phiên bản của Dos nên phải có một bảng thống kê địa chỉ của ngắt 21 h theo từng phiên bản của Dos, và phải có thao tác lấy phiên bản của Dos trong chương trình. Nếu địa chỉ của ngắt 21h không đúng thì có thể nghi ngờ rằng máy bị nhiễm. +tiếp tục thực hiện kiểm tra dung lượng bộ nhớ. Dos lưu giữ giá trị bộ nhớ mình quản lí tại biến có địa chỉ (0:413 h),nếu giá trị nhận được không đủ 640kb thì có thể máy bị nhiễm,tuy nhiên cũng có khi bộ nhớ bị hỏng chứ không phải bộ nhớ bị nhiễm virus, tuy nhiên trường hợp này ít gặp. 2/Kiểm tra Master Boot và Boot Sector: (dùng cho Virus Boot ) -Nói chung hầu hết các MB của các máy PC chạy trên hệ điều hành Dos thông dụng đều giống nhau. MB có nhiệm vụ xác định phân vùng hoạt động sau đó chuyển đoạn mã của chính nó đi nơi khác để nạp Boot record của phân vùng hoạt động vào địa chỉ 0:7C00 cuối cùng chuyển điều khiển cho bản Boot record vừa được đọc. -Có thể thực hiện kiểm tra theo giai đoạn sau: +Trước hết đọc MB cần kiểm tra đối chiếu đoạn mã của nó với MB chuẩn nếu trùng thì thông báo không có virus trong MB . +Nếu MB không trùng với MB chuẩn thì chuyển sang giai đoạn hai ta phải thực hiện quá trình tương tự như quá trình kiểm tra nhận dạng mã của bộ nhớ. Tức là kiểm tra đoạn mã nhận dạng virus có trong cơ sở dữ liệu (ví dụ như file DBVIRB.DAT) với đoạn mã trong MB để xem virus gì, từ đó có thể biết được vị trí MB cũ mà virus dấu (nhờ vào đó có thể kiểm tra so sánh MB bị dấu với MB chuẩn nếu trùng thì khôi phục lại MB cũ ). +Sau khi kiểm tra hết file DBVIRB.DAT mà không thấy đoạn mã nhận dạng nào phù hợp tức là không thể xác định được bị nhiễm virus gì (hay là MB có thể làm nhiệm vụ đặc biệt) ta có thể xây dựng thêm modul chương trình lựa chọn có ghi đè MB chuẩn lên MB nghi ngờ nhiễm hay không. -Trên đây là một mô hình của chương trình kiểm tra MB có thể thực hiên theo nhiều cách khác không nhất thiết phải theo mô hình này. Chú ý là nếu có hai virus boot cùng nhiễm vào một máy thì vấn đề trở nên phức tạp và cực kì khó giải quyết . Giả
  • 14. 14 thiết là virus thứ nhất lây nhiễm làm sai lạc MB rồi dấu MB cũ đi, sau đó virus thứ hai lại làm sai lạc MB đã bị hỏng và lại dấu MB bị hỏng đi .Như vậy thì cho dù chương trình diệt có thông tin về cả hai loại virus này thì vẫn không thể xác định được loại virus nào lây nhiễm mà cho dù xác định được thì cùng lắm chỉ xác định được loại thứ hai. Tất nhiên là không thể khôi phục được MB (loạI hai dấu MB đã bị hỏng bởi loại 1) mà phải ghi đè MB. Vì vậy không nên tạo ra virus dù chỉ với mục đích đùa giỡn, nó có thể không gây hại gì cho hệ thống nhưng có thể tạo điều kiện cho các loại virus có hại phá hoại. -File DBVIRM.DAT bao gồm các bản ghi có thể có các trường sau: ++offset bắt đầu của mã nhận dạng ++Số lượng byte trong mã nhận dạng ++mã nhận biết của virus ++tên của virus ++header nơi cất dấu MB cũ của đĩa ++cylinder sector nơi cất dấu MB cũ Sơ đồ khối của quá trình kiểm tra MB,BR: Bắt Đầu Kiểm Tra MB,BR So sánh So Sánh MB,BR False MB,BR cần kiểm tra với MB,BR Chuẩn với mã nhận dạng virus True True Báo Động nhiễm virus False Kết Thúc Báo Động có thể bị nhiễm virus
  • 15. 15 3/Kiểm tra trên file: -Căn cứ vào tính chất lây lan của virus trên file việc kiểm tra trên file có thể tiến hành bằng cả hai cách: kiểm tra đoạn mã nhận biết virus và kiểm tra sơ đồ hoạt động của virus (cách này chỉ thực hiện được khi có sự nghiên cứu kĩ lưỡng về mỗi loại virus ) -Công việc của quá trình kiểm tra file bao gồm a/Tìm file (Search): -Công việc tìm file không đơn giản cách tốt nhất là thực hiện theo cơ chế đệ quy, trong quá trình tìm kiếm nếu là file thì kiểm tra xem có bị nhiễm virus hay không còn nếu là thư mục thì phải tìm kiếm file ở trong thư mục đó b/Kiểm tra file: -Có nhiều cách để kiểm tra file vì virus rất phong phú nên tốt nhất là thực hiện tất cả các cách. Có thể dựa vào cách kiểm tra sự tồn tại của virus ghi vào file nhưng giá trị đặc biệt, kiểm tra kích thước file… nhưng các phương pháp này có nhiều sơ hở ,vì đâu phải virus nào cũng sử dụng phương pháp kiểm tra sự tồn tại như vậy, còn việc thay đổi kích thước file thì có nguyên nhân không rõ ràng vì có thể có nhiều loại virus trùng kích thước, hơn nữa bạn lấy gì làm chuẩn để so sánh kích thước file? chắc gì vào thời điểm bạn lấy kích thước file làm chuẩn thì file đó không bị nhiễm virus? -Có thể dùng các phương pháp tìm đoạn mã nhận dạng như đã nói ở trên nhưng rõ ràng các virus mới không thể bị phát hiện bởi phương pháp này. Nhưng nên biết không có chương trình diệt virus nào là diệt được mọi loại virus cũng như không có virus nào là không diệt được. Nên chấp nhận các giải pháp tạm thời sao cho có mức độ thành công cao nhất có thể -Sơ đồ khối của quá trình này: Bắt Đầu Kiểm Tra File Hết Tìm File Còn Mở File (Đọc) Không Bị Nhiễm Kiểm Tra File False
  • 16. 16 Bị Nhiễm Kết Thúc Báo Động Kết Thúc? True -Để có thể sửa chửa file như một chương trình diệt virus thật sự thì quá trình mở file yêu cầu là đọc ghi, nếu phát hiện ra file nhiễm thì cần phải khôi phục file theo đúng quy trình dành riêng cho mỗi loại virus và cho mỗi loại file. -Đối với file .com +nếu dạng virus nối file chỉ cần định vị và trả lại các file đầu bị chiếm sau đó dời con trỏ đến vị trí đầu của virus rồi cắt chương trình virus ra khỏi chương trình. +Dạng virus dịch chuyển phải tải toàn bộ file vào vùng nhớ rồi ghi lại vào đĩa với chỉ định bắt đầu file là địa chỉ cũ cộng với kích thước chương trình virus…. -Đối vớI file . exe +nếu virus lưu giữ header cũ thì phải dựa vào virus tìm và khôi phục lại header cũ,ngược lại phảI định vị lại header BB//CChhưươơnngg TTrrììnnhh MMiinnhh HHọọaa:: 1/Ngôn ngữ viết chương trình: -Dùng các ngôn ngữ thiên về lập trình hệ thống như ngôn ngữ C (hoặc Pascal) và Assembly tuy nhiên tốt nhất là kết hợp cả hai ngôn ngữ này để có thể tận dụng được thế mạnh của cả hai ngôn ngữ 2/Chương trình minh họa: -Do khả năng có hạn của người viết chương trình minh họa còn có nhiều nhược điểm chỉ có thể phản ánh một phần của một chương trình đầy đủ. Chương trình minh họa chỉ có thể kiểm tra trên bộ nhớ,và kiểm tra bootsector của ổ A . Để hoàn thiện chương trình cần thực hiện kiểm tra trên MB và trên file. -Nguyên lí chương trình là in ra bản đồ hiện tại của bộ nhớ RAM do Dos quản lí. Nếu có virus thường trú thí bộ nhớ dành cho Dos sẽ bị giảm đi không còn chính xác nữa.Sau đó tiếp tục kiểm tra boot sector ổ A: -Để giúp hiểu hơn về chương trình minh họa dưới đây trình bày một số kiến thức về Dos -Memmory Control Block (MCB) là khối điều khiển bộ nhớ dài 16 byte và có cấu trúc như sau Offset (Hex) Chiều Dài(byte) Mô tả 0 1 5ah=MCB cuốI,4dh=chưa phải MCB cuốI 1 2 Địa chỉ đoạn khốI nhớ do MCB quản lí (0=khối tự do,8=dos)
  • 17. 17 3 2 Kích thước (tính theo paragraph 16 byte) của khối nhớ do MCB quản lí 5 11 Không dùng 10 KhốI nhớ do MCB quản lí bắt đầu từ đây -Mỗi tập tin được nạp vào bộ nhớ được Dos cung cấp hai MCB: MCB thứ nhất chứa thông tin về các biến môi trường _Dos environment, MCB thứ hai chứa thông tin về tập tin này. -Ngắt 52 hex (Dos 2+) hàm 52 hex trả lại trong cặp thanh ghi es:bx con trỏ trỏ đến danh sách của Dos, sau đây là một số giá trị Offset (Hex) Chiều dài(byte) Mô tả -2 2 địa chỉ đoạn của MCB đầu tiên 0 4 Con trỏ đến bản thông tin đĩa đầu tiên 4 4 Con trỏ trỏ đến bảng file hệ thống đầu tiên 8 4 Con trỏ đến Header của trình điều khiển thiết bị CLOCK$ C 4 Con trỏ trỏ đến header của trình điều khiển thiết bị CON 10 2 Số byte tối đa trên một sector (cho thiết bị kiểu khối bất kì) 12 4 Con trỏ trỏ đến vùng đệm đĩa đầu tiên 16 4 Con trỏ trỏ đến bảng các thư mục hiện hành 1A 4 Con trỏ trỏ đến bảng FCB hệ thống đầu tiên 1E 2 Số các FCB được bảo vệ 20 1 Số các thiết bị kiểu khối (như các ổ đĩa lôgic) đã cài đặt 21 1 Số tên các ổ đĩa lôgic (mặc định là 5,có thể tăng bằng lệnh LASTDRIVE=trong CONFIG.SYS) 22 18 Header của trình điều khiển thiết bị NUL hiện hành.NUL luôn là trình điều khiển thiết bị đầu tiên trongdanh sách móc nối các trình điều khiển thiết bị … … ……… -Nếu chương trình in kết quả như sau MCB SIZE DOAN TENTAPTIN 020E 0210 0008 DOS 041F 00A2 0420 COMMAND.COM 04C2 0007 0000 [ Vung Tu Do ] 04CA 002F 0420 COMMAND.COM 04FA 0031 052D A:DOANNG~1CHUONG~1HT
  • 18. 18 052C 9AD2 052D A:DOANNG~1CHUONG~1HT A000 Bo nho khong co virus -Thì bộ nhớ không có virus A000 là tổng vùng nhớ MCB do Dos quản lí -Lượng bộ nhớ mà Dos được quyền sử dụng tính theo đơn vị 16 byte là: Sum=020E+0210+00A2+0007+002F+0031+9AD2+0006 (+1)=A000 -Với: 0006 là kích thước của 6 MCB(như đã thấy ở trên) -Sau khi kiểm tra bộ nhớ sẽ kiểm tra boot setor của ổ A -Thuật toán của chương trình: +định nghĩa: một bản ghi gồm 3 trường: loại MCB , địa chỉ đoạn của MCB và kích thước của MCB một biến sum để cộng vào 1 Gọi ngắt 52 hex để lấy danh sách của Dos 2 Trừ bx đi 2 để chỉ đến địa chỉ đoạn của MCB đầu tiên 3 Cộng vào sum địa chỉ của MCB đầu 4So sánh loại MCB với 4dh nếu không đúng là MCB lỗi,thoát khỏi chương trình 5 In ra thông số của các MCB (các trường trong bản ghi) 6 So sánh loại MCB với 5ah nếu đúng là MCB cuối thì kết thúc kiểm tra bộ nhớ 7 Nhảy đến đoạn MCB tiếp theo thực hiện lại bước 5 +kiểm tra boot sector của ổ A: 1 Đọc ổ A: 2 So Sánh với boot sector đã định nghĩa trong chương trình (bỏ qua phần tham số đĩa từ) 3 Nếu Không giống báo động 4 Kết thúc chương trình
  • 19. 19 TÀI LIỆU THAM KHẢO 1/ Hướng Dẫn Phòng Và Diệt Virus Máy Tính Tác giả: Nguyễn Đình Chương 2/Cẩm Nang Lập Trình (Hai tập) Tác giả: Nguyễn Minh San-Hoàng Đức Hải