Tải bản đầy đủ (.pdf) (22 trang)

Tổng quan về virus file

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (336.3 KB, 22 trang )




LỜI NÓI ĐẦU


Virus là một chương trình máy tính trong đó bao hàm những kỹ thuật cao
về một chương trình tự hành. Là một chương trình gắn liền với chức năng phần
cứng.
Tìm hiểu về virus để từ đó xây dựng chương trình tự hành, cách thức lập
trình, và lập trình với cấu trúc phần cứng.
Nội dung của đề tài “Tìm hiểu file virus trên DOS ” bao gồm:
Chương 1: Tổng quan về virus
1.1.
Giới thiệu về virus
1.2. Cấu trúc của chương trình virus
1.3. Các kỹ thuật xây dựng virus
Chương 2: Tổ chức và cách thức thực thi một chương tình trên DOS
2.1. Một số hàm chức năng quan trọng trên DOS
2.2. Cách thức thức thi chương trình
Chương 3: Xây dựng chương trình thử nghiệm























CHƯƠNG 1: TỔNG QUAN VỀ VIRUS FILE
1.1 . GIỚI THIỆU VỀ VIRUS
1.1.1 . Virus tin học là gì?
Nói theo cách đơn giản, nó là một chương trình có khả năng sao chép. Khi nó
thực thi, nó sẽ tạo ra một hay nhiều bản copy của chính nó một cách đơn giản
nhất. Những copy này sau đó có thể tiếp tục thực hiện nhiều copy khác.
Một cách thông thường, virus sẽ xâm nhập vào các chương trình khác
hoặc điều khiển phía sau chương trình để sao chép dễ dàng. Cách tiếp cậ
n này
thiết lập một phần virus từ những phần mềm tự sao chép khác bởi nó cho phép
virus tự sao chép mà không cần sự đồng ý của hệ điều hành. So sánh điều này
với 1 chương trình đơn giản được gọi là "1.COM". Khi thực hiện, nó có thể sẽ
tạo ra "2.COM" "3.COM", ...., những bản có thể là bản copy của chính
"1.COM". Bây giờ một người sử dụng máy tính bình thường cũng có thể chạy
một chương trình 1 ho
ặc 2 lần theo yêu cầu của bạn, nhưng sau đó họ sẽ phải
xóa nó đi và sẽ kết thúc chương trình đó. Nó sẽ không tiến xa. Không phải vậy,
bây giờ virus máy tính bởi vì nó xâm nhập vào những chương trình có ích khác.

Người dùng sẽ sử dụng các chương trình này một cách thông thường và sẽ thực
thi cùng với chúng. Bằng cách này, virus sẽ tồn tại được.
Một cách chính xác, thuật ngữ virus máy tính là thuật ngữ sai. Nó được
đặt tên bởi Fred Cohen trong luận v
ăn tốt nghiệp năm 1985 của ông. Đây là luận
văn trình bày về phần mềm tự sao chép được và khả năng của nó làm hại cái gọi
là hệ thống bảo mật.Thật sự thì virus là một cái tên không được đúng lắm.Từ
này báo trước điềm xấu và phỏng đóan cái gì đó không tốt.Thậm chí ngay cả
Fred Cohen cũng hối tiếc vì đã đặt ra thuật ngữ này. Và bây giờ ông cho rằng
chúng ta g
ọi những chương trình này là "chương trình sống".
Trên thực tế,virus giống như một sinh vật sống đơn bào đơn giản hơn là
hơn là một virus sinh học. Mặc dù tự nó có thể xâm nhập vào các chương trình
khác, những chương trình này sẽ không tồn tại trong bất kỳ khả năng nào. Hơn
thế nữa, một sinh vật sống vốn không có gì là xấu mặc dù nó có vẻ khá cứng
đầu. Giống như cây địa y có thể
ăn sâu vào trong đá và phá hủy nó theo thời
gian, virus máy tính có thể ăn sâu vào máy tính và làm những việc mà bạn
không mong muốn. Một vài loại virus có thể phá hủy toàn bộ dữ liệu trong ổ
cứng trong khi một số khác sẽ sử dụng một vài chu trình của máy tính.
Ngoại trừ vẻ bề ngoài cứng cổ, ta cũng nên nhận thấy rằng virus máy tính
không vốn dĩ đã là tiêu cực. Chúng có thể chiếm một vài chu trình của
computer, tuy nhiên, khi một virus có ý nhắm tới việc phá hủy, chỉ những virus
thành công mới có thể khiến hệ thống tài nguyên của bạn chú ý một phần nhỏ.
Virus có thể đặt cho virus máy tính 1 cái tên cho sự phá hủy một cách chung
nhất là bom logic mà khởi đầu là ngày tháng và sau đó hiển thị lời nhắn hoặc
gây fiền nhiễu, khó chịu. Giống bom logic, tuy nhiên, không có gì để làm với sự
tự sao chép gi
ống virus. Chúng là phần trọng tải thêm vào đoạn mã tự sao chép.
Khi em nói rằng virus máy tính không hẳn đã là tiêu cực tất nhiên, em

không có ý nói rằng bạn không cần phải đề phòng chúng. Có những người viết
virus không ngoài mục đích nào khác là phá hủy dư liệu trong máy tính của bạn.
Ngay khi họ được đề cập đến, họ muốn virus của họ là kinh nghiệm không thể
quên của bạn. Họ là những người vô chính phủ và bạn nên cố gắng tránh xa.
Đi
ều này có nghĩa là nên đề phòng....nhưng tại cùng một thời điểm, xem như
khả năng có thể của đoạn mã tự sao có thể làm được những gì mà chương trình
bình thường không làm được. Sau cùng, virus có thể có mặt tốt trong.
1.1.3 Phân loại
Thông thường, dựa vào đối tượng lây lan là file hay đĩa mà virus được
chia thành hai nhóm chính:
- B-virus: Virus chỉ tấn công lên Master Boot hay Boot Sector.
- F-virus: Virus chỉ tấn công lên các file khả thi.
Mặc dù vậy, cách phân chia này không hẳn là chính xác. Ngoại lệ vẫn có
các virus vừa tấ
n công lên Master Boot (Boot Sector) vừa tấn công lên file khả
thi.
Để có cách nhìn tổng quan về virus, chúng ta xem chúng dành quyền như
thế nào.
a. B-virus







Khi máy tính bắt đầu khởi động (Power on), Các thanh ghi phân đoạn đều
được đặt về OFFFFh, còn mọi thanh ghi khác đều được đặt về 0. Như vậy,
quyền điều khiển ban đầu được trao cho đoạn mã tại 0FFFFh: 0h, đoạn mã này

Vùng lây lan
virus
thực ra chỉ là lệnh nhảy JMP FAR đến một đoạn chương trình trong ROM, đoạn
chương trình này thực hiện quá trình POST (Power On Self Test – Tự kiểm tra
khi khởi động).
Quá trình POST sẽ lần lượt kiểm tra các thanh ghi, kiểm tra bộ nhớ, khởi
tạo các Chip điều khiển DMA, bộ điều khiển ngắt, bộ điều khiển đĩa… Sau đó
nó sẽ dò tìm các Card thiết bị gắn thêm để trao quyền đ
iều khiển cho chúng tự
tạo rồi lấy lại quyền điều khiển. Chú ý rằng đây là đoạn chương trình trong
ROM (Read Only Memory) nên không thể sửa đổi, cũng như không thể chèn
thêm một đoạn mã nào khác.
Sau quá trình POST, đoạn chương trình trong ROM tiến hành đọc Boot
Sector trên đĩa A hoặc Master Boot trên đĩa cứng vào RAM (Random Acess
Memory) tại địa chỉ 0:7C00h và trao quyền điều khiển cho đoạn mã đó bằng
lệnh JMP FAR 0:7C00h.
Đây là chỗ mà B-virus lợi dụng để tấn công vào Boot
Sector (Master Boot), nghĩa là nó sẽ thay Boot Sector (Master Boot) chuẩn bằng
đoạn mã virus, vì thế quyền điều khiển được trao cho virus, nó sẽ tiến hành các
hoạt động của mình trước, rồi sau đó mới tiến hành các thao tác như thông
thường: Đọc Boot Sector (Master Boot) chuẩn mà nó cất giấu ở đâu đó vào
0:7C00h rồi trao quyền điều khiển cho đoạn mã chuẩn này, và người sử dụng có
c
ảm giác rằng máy tính của mình vẫn hoạt động bình thường.
* Ưu điểm:
Không phụ thuộc hệ điều hành
* Nhược điểm:
- Đối tượng lây nhiễm ít->Khả năng lây nhiễm không cao.
- Kích cỡ bị hạn chế.
- Không sử dụng được dịch vụ của hệ điều hành(vì nó chạy trước

hệ
điều hành ).
=> Khó viết và khó lây nhiễm.
b. F-virus






Vùng dữ liệu củ tập
tin th
ực thi EXE,
Vùng Virus
c
ộng thêm
Khi DOS tổ chức thi hành file khả thi (bằng chức năng 4Bh của ngắt 21h),
nó sẽ tổ chức lại vùng nhớ, tải file cần thi hành và trao quyền điều khiển cho file
đó. F-virus lợi dụng điểm này bằng cách gắn đoạn mã của mình vào file đúng tại
vị trí mà DOS trao quyền điều khiển cho file sau khi đã tải file vào vùng nhớ.
Sau khi F-virus tiến hành xong các hoạt động của mình, nó mới sắp xếp, bố trí
trả
lại quyền điều khiển cho file để cho file lại tiến hành hoạt động bình thường,
và người sử dụng thì không biết được.
* Ưu điểm:
- Đối tượng lây nhiễm lớn ->Khả năng lây nhiễm cao
- Kích thước không bị hạn chế
- Sử dụng được các dịch vụ của hệ điều hành
=>”Dễ viết” dễ lây nhiễm.
* Nhược điểm: Bị

phụ thuộc hệ điều hành
Trong các loại B-virus và F-virus, có một số loại sau khi dành được quyền
điều khiển, sẽ tiến hành cài đặt một đoạn mã của mình trong vùng nhớ RAM
như một chương trình thường trú (TSR), hoặc trong vùng nhớ nằm ngoài tầm
kiểm soạt của DOS, nhằm mục đích kiểm soát các ngắt quan trong như ngắt 21h,
ngắt 13h,…Mỗi khi các ngắt được gọi, virus sẽ dành quyền
điều khiển để tiến
hành các hoạt động các hoạt động của mình trước khi trả lại các ngắt chuẩn của
DOS.
1.2. CẤU TRÚC TỔNG QUAN CỦA VIRUS FILE
Cấu trúc của một virus File được thể hiện một cách tổng quát qua
sơ đồ giả thuật sau:

































Đúng
End
Thực hiện CT phá hoại
Cài đặt CT vào bộ nhớ RAM
Tìm kiếm file để lây
Lây nhiễm
KT Đã có CT trong vùng
nhớ chưa?
Cần phá họai
Trả quyền điều khiển cho file chủ
Thấy
Chưa
Có rồi
Sai
Begin
Sai


Từ sơ đồ cấu trúc trên ta có thể đặt ra một số các yêu cầu sau cho virus file:
- Tính tồn tại duy nhất:
Tính tồn tai duy nhất được đảm bảo bởi phần kiểm tra virus đã có trong
vùng nhớ hay không. Việc kiểm tra này đảm bảo cho virus có mặt chỉ một lần
trong vùng nhớ hay trên file ( tất nhiên ta không xét đến trường hợp nhiều virus
tấn côg một file hay một hệ thống ).
Yêu cầu này đảm bảo làm giảm thời gian thi hành file khi trong vùng nhớ

có thể có quá nhiều bản sao của một virus, cũng như đảm bảo kích thước file
không tăng lên quá nhanh làm làm virus dễ bị phát hiện nhưng cũng làm tăng
thời gian nạp file.
- Tính thường trú:
Tính thường trú thể hiện cho quá trình cài đặt virus vào RAM. Tính chất
này yêu cầu file virus sau khi kiểm tra trong vùng nhớ thấy vung nhớ còn “sạch”
thì phải lập tức lưu trú vào bộ nhơ RAM để có thể thực hiện việc chiếm quyền
điều khi
ển khi cần lây nhiễm sang file đang được gọi hoặc khi phá hoại.
- Tính lây lan:
Đây là yêu cầu bắt buộc của bất cứ một loại virus nào. Nó được thực hiện
trong 2 quá trình: tìm kiếm và lây nhiễm. Nó đảm bảo cho sự tồn tại và phát
triển của virus, và thế mới gọi là “Virus”. Một virus khoẻ phải có tốc độ lây lan
nhanh và do đó nó mới đảm bảo cho tính tồn tại của mình.
- Tính phá hoại:
Tính phá hoại đ
ôi khi chỉ do ngẫu nhiên khi logic của file virus không dự
trù hết các trường hợp có thể xảy ra, hoặc do cố ý, nhưng có ý mà không lường
hết hậu quả cũng dẫn đến tai hoạ vo cùng khủng khiếp.
Việc phát hiện một virus file đơn giản hơn việc phát hiện một virus boots
nhiều. Bất kỳ sự tăng kích thước nào trên file thi hành được ( tất nhiên không

phải những file vừa được dịch từ Assembler sang ) từ khoảng 1K – 5K đề
u có
thể kết luận chính 90% là file nhiễm virus.Do đó virus làm sao phải có được một
kỹ thuật nguỵ trang khéo léo để đánh lừa được hiện tượng này.
- Tính kế thừa
Điều này ít thấy với B-virus, F-virus có cùng “họ”, các version sau luôn
khắc phục những yếu điểm của bản “version” trước, đặc biệt có đặc diểm thay
thế bản cũ bằng bản mới hơn. Điều này tạo sự
thú vị ch các nhà nghiên cứu. Ta
có thể kể ra một số họ virus như sau: Yankee, Vacsina, …
1.3 . CÁC KỸ THUẬT XÂY DỰNG VIRUS
1.3.1. Kiểm tra tính tồn tại
a. Trong vùng nhớ
- Tạo thêm chức năng cho DOS, để kiểm tra tính tồn tại chỉ cần gọi chức
năng này. Có thể biết bằng cách tạo subfunction (chức năng con) cho một chức
năng của DOS, giá trị trong thanh ghi sẽ quyết định sự tồn tại của virus hay
chưa. Điều này dựa vào sự kiện nếu gọi một chức n
ăng lớn hơn chức năng cao
nhất mà DOS có. Giá trị AX trả về sẽ là 0.
b. Trên file
Có thể có các cách kiểm tra sau:
- Kiểm tra bằng kích
- Kiểm tra bằng Keyvalue
- Kiểm tra bằng cách dò đoạn mã.
+ Kiểm tra bằng kích thước:
Được áp dụng trong những virus đầu tiên, tuy độ chính xác của nó không
cao và mặt khác cũng không kiểm tra được version của nó. Tuy nhiên việc kiểm
tra nhanh và kết quả phụ trong quá trình kiểm tra có thể được dùng về sau nên
nó được ưa chu
ộng.

1.3.2. Kỹ thuật lây lan
Hai loại virus có hai cách lây lan hoàn toàn khác nhau, do đó kỹ thuật lây
lan cũng sẽ đề cập thành hai phần tương ứng. Tuy vậy, vẫn có những phần
chung mà cả hai loại đều phải dùng.
a. Các kỹ thuật chung trên file
Đối tượng lây của virus file là file. Do đó, các phương pháp định vị, tính
kích thước v.v.. đều giống nhau, Để có thể truy xuất file, virus phải dự trù các
trường hợp sau đó có thể xảy ra. Đó là:
Mộ
t file được mở với chế độ đọc /ghi phải đảm bảo không có thuộc tính
Sys(hệ thống), hoặc Read …ly (chỉ đọc),hoặc Hidden(dấu mặt). Do đó cần phải
đổi lại thuộc tính khi cần thiết để có thể truy nhập. Mặt khác khi một file được
cập nhật, ngày giờ cập nhật cũng được đưa vào, do đó làm thay đổi giá trị ban
đầu của file. Đôi khi lại tạo ra lỗi cho file này (n
ếu đó cũng là cách kiểm tra của
file). Để khắc phục hai lỗi này, cách tốt nhất lên đổi lại thuộc tính file, lưu giữ
ngày tháng tạo file để rồi sau đó trả lại đầy đủ thuộc tính ban đầu cho chúng.
b. Kỹ thuật định vị trên file
Ở đây chỉ đề cập đến 2 phương pháp chèn đầu & chèn cuối File, một
phương pháp dùng cho .COM và còn lại cho .EXE.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×