Tài liệu tham khảo kỹ thuật công nghệ, chuyên ngành tin học Virus máy tính
Trang 1Trí tuệ nhân tạo là một môn học chuyên ngành bắt buộc đối với sinh viên thuộc chuyên ngành tin học Môn học này trang bị cho sinh viên một số kiến thức cơ bản nhất
về các phơng pháp giải quyết vấn đề và kỹ thuật xử lý tri thức Đó là một nền tảng vững chắc để đi sâu nghiên cứu các chuyên đề khác Sự ra đời và phát triển của trí tuệ nhân tạo đã kéo theo hàng loạt công nghệ mới và khoa học kỹ thuật ngày càng phát triển Các sản phẩm của trí tuệ nhân tạo đa số phục vụ cho mục đích tốt và ngày càng đa dạng phong phú nh : phần mềm phục vụ cho học tập và giải trí v.v…
Virus máy tính cũng là một trong những sản phẩm của trí tuệ nhân tạo Tuy nhiên đây là sản phẩm phần mềm có tính chất phá hoại mà ngời sử dụng không mong muỗn, nó phá huỷ những dữ liệu quan trọng gây ra hậu quả nghiêm trọng
Do muốn hiểu rõ hơn về Virus máy tính, chúng tôi quyết định chọn đề tài về Virus để nghiên cứu
Trong quá trình thực hiện đề tài này, chúng tôi nhận đợc rất nhiều sự giúp đỡ của các thầy cô bộ môn trong trờng Chúng tôi xin chân thành cảm ơn sự giúp đỡ của các thầy cô bộ môn
Đây là một đề tài khá rộng nên không thể tránh khỏi sự thiếu sót Rất đợc sự ủng
hộ và góp ý của thầy cô và các bạn
Xin chân thành cảm ơn!
Trang 2Chơng I
Tổng quan về virus
I/ Khái niệm chung về virus
Virus máy tính là gì? Đối với những ngừơi không hiểu nhiều đến máy tính họ có thể hiểu virus máy tính ta nh một lọai bệnh dịch lây lan nào đó, họ thờng phân vân không hiểu virus sẽ lây ở chỗ nào trong máy tính, và cách chữa trị nó nh thế nào?
Thực chất virus máy tính là một chơng trình máy tính có khả năng tự sao chép chính nó từ đối tợng lây nhiễm naỳ sang đối tợng khác(đối tợng có thể là các file chơng trình, văn bản, đĩa mềm,vv ), và ch… ong trình đó mang tính phá hoại Virus có nhiều cách lây lan và tất nhiên có nhiều cách phá hoại, nhng chỉ cần bạn nhớ rằng đó là một
đoạn chơng trình dùng để phục vụ những mục đích không tốt Có thể coi virus máy tính
nh một virus trong y học Nghĩa là nó vừa có khả năng phá huỷ và lây lan Virus tin học
là tính phá hoại,nó gây ra lỗi thi hành, thay đổi vị trí, mã hoá hoặc huỷ thông tin trên đĩa
Virus máy tính do con ngời tạo ra, cho đến nay có thể coi nó đã trở thành một bệnh dịch cho những chiếc máy tính Virus máy tính thờng là một phần mềm mà khi bị kích hoạt có thể gây ra những tổn thơng đến máy tính hoặc hệ thống mạng máy tính Tuy nhiên virus thờng cho khả năng phục hồi lại những tổn thơng đã gây ra bằng cách đánh dấu những thông tin cho phép hồi phục tệp về trạng tháI trớc khi bị virus Với yếu tố này giúp cho các nhà viết chơng trình diệt virus tìm ra các thông tin đợc dấu trên và tạo cơ hội phục hồi Một chơng trình virus thờng gồm hai cơ chế:
-Cơ chế làm tổn thơng đến máy tính hoặc hệ thống mạng máy tính
-Cơ chế lây lan
II/ Lịch sử phát triển của Virus máy tính
Virus máy tính có một quá trình phát triển quá dài và nó luôn song hành cùng sự phát triển của những chiếc máy tính Khi công nghệ phần mềm cũng nh phần cứng phát
Trang 3triển thì Virus cũng phát triển theo Hệ điều hành thay đổi thì virus máy tính cũng tự thay
đổi mình để phù hợp với hệ điều hành đó và để có thể ăn bám ký sinh Tất nhiên là virus không tự sinh ra
Có thể việc viết virus mang mục đích phá hoại , thử nghiệm hay đơn giản chỉ là một thứ đùa vui ác ý Nhng chỉ có điều những cái đầu thông minh này khiến chúng ta phải đau đầu đối phó và cuộc chiến này gần nh không chấm dứt và nó vẫn tiếp diễn
Có nhiều tài liệu khác nhau nói về xuất sứ của virus máy tính Tuy vậy, đa số các câu chuyện xoay quanh việc xuất sứ của virus máy tính đều liên quan đến những vấn đề sau:
- Năm 1986 để lộ nguyên lý của trò chơi “Core War”:
Core War là một cuộc đấu trí giữa hai đoạn chơng trình máy tính do hai lập trình viên viết ra Mỗi đấu thủ sẽ đa ra một chơng trình có khả năng tự tái tạo đợc gọi
là Organism bộ nhớ máy tính Khi bắt đầu cuộc chơi, mỗi đấu thủ sẽ cố gắng phá huỷ Organism của đối phơng và tái tạo Organism của mình Đấu thủ thắng cuộc
là đấu thủ tự nhân bản đợc nhiều nhất
Trò chơi Core War này đợc giữ kín đến năm 1983, Ken Thompson ngời đã viết phiên bản đầu tiên cho hệ điều hành UNIX, đã để lộ ra khi nhận một trong những giải thởng danh dự của giới điện toán – Giải thởng A.M Turing Trong bài diễn văn của mình ông đã đa ra một ý tởng về virus máy tính dựa trên trò chơi Core War Cũng năm 1983, Tiến sĩ Frederik Cohen đã chứng minh đợc sự tồn tại của virus máy tính
Tháng 5-1984 tờ báo Scientific America có đăng một bài báo mô tả về Core War
và cung cấp cho độc giả những thông tin hớng dẫn về trò chơI này Kể từ đó Virus máy tính xuất hiện và đi kèm theo nó là cuộc chiến giữa những ngời viết ra virus và những ngời diệt virus
- Năm 1986 –Brain Virus:
Có thể đợc coi là virus đầu tiên trên thế giới, Brain âm thầm đổ bộ từ Pakistan vào nớc Mỹ với mục tiêu đầu tiên là trờng đại học Delaware Một nơi khác trên thế giới cũng đã mô tả sự xuất hiện của virus, đó là đại học Hebrew-israel
Trang 4- Năm 1987-Lehigh Virus xuất hiện:
Lại một lần nữa liên quan tới một trờng đại học Lehigh chính là tên của virus xuất hiện năm 1987 tại trờng đại học này Trong thời gian này cũng có một số virus khác xuất hiện, đặc biệt Worm virus (Sâu Virus), cơn ác mộng với các hệ thống máy chủ cũng xuất hiện Cái tên Jerusalem chắc sẽ làm cho công ty IBM nhớ mãi với tỗc độ lây lan đáng nể: 500 nghìn nhân bản trong một giờ
- Năm 1988- Virus lây trên mạng:
Ngày 2-11-1988, Robert Morris đa Virus vào mạng máy tính quan trọng nhất của
Mỹ, gây thiệt hại lớn Từ đó trở đi ngời ta mới bắt đầu nhận thức đợc tính nguy hại của Virus máy tính
- Năm 1989-AIDS Trojan:
Xuất hiện Trojan hay gọi là “Con ngựa thành Toroa”, chúng không phải là virus máy tính nhngluôn đi cùng với khái niệm virus.”Những chú ngựa thành Toroa” này khi đã gắn vào máy tính của bạn thì nó sẽ lấy cắp một số thông tin mật trên
đó và gửi đến một địa chỉ mà chủ của chú ngựa này muốn nó vận chuyển đến, hoặc đơn giản chỉ là phá huỷ dữ liệu trên máy tính của bạn
- Năm 1991-Tequila Virus:
Đây là loại virus đầu tiên mà giới chuyên môn gọi là virus đa hình, nó đánh dấu một bớc ngoặt trong cuộc chiến giữa cái thiện và cái ác trong các hệ thống máy tính
Đây thật sự là loại virus gây đau đầu những ngời diệt virus và quả thật không dễ dàng để diệt chúng Chúng có khả năng thay hình đổi dạng sau mỗi lần lây nhiễm làm cho việc phát hiện ra chúng quả thật là khó
- Năm 1992-Michelangelo Virus:
Tiếp nối sự đáng sợ của” Virus đa hình” năm 1991, thì công cụ năm 1992 này tạo thêm sức mạnh cho các loại máy tính bằng cách tạo ra sự đa hình cực kỳ phức tạp Quả thật họ luôn biết gây khó khăn cho những ngời diệt virus
- Năm 1995-Concept Virus:
Trang 5Sau gần 10 năm virus máy tính đầu tiên xuất hiện, đây là loại virus đầu tiên có nguyên lý hoạt động gần nh hoàn toàn so với những loại virus trớc Chúng gây ra một cú sỗc cho những công ty diệt virus cũng nh những ngời tình nguyện trong lĩnh vực phòng chống virus máy tính Cũng phải tự hào rằng, khi virus này xuất hiện trên thế giới cha có loại “kháng sinh ” nào, thì tại Việt Nam đã đa ra đợc giải pháp rất đơn giản để loại trừ loại virus này.
Sau này những virus theo nguyên lý của Concept đợc gọi chung là Virus Macro, chúng tấn công vào các hệ soạn thảo của Microsoft (word, exel,powerpoint), và những nhân viên văn phòng_những ngời sử dụng không am hiểu lắm về hệ thống
ắt hẳn sẽ không mấy dễ chịu với loại virus thích chọc ngoáy vào công trình đánh máy của họ này
- Năm 1996- Boza Virus:
Khi hãng Microsoft chuyển sang hệ điều hành Windows 95 và họ cho rằng virus không thể công phá thành trì của họ đợc, thì năm 1996 xuất hiện virus lây trên hệ
đIều hành Windows 95
- Năm 1999-Melissa, Bubbleboy Virus :
Đây thật sự là một cơn ác mộng đối với các máy tính trên khắp thế giới Sâu Melissa không những kết hợp các tính năng của sâu internet và Virus Macro, mà
nó còn biết khai thác một công cụ mà chúng ta thờng sử dụng hàng ngày là Microsoft Outloop Express để chống lại chính chúng ta Khi máy tính của bạn bị nhiễm Melissa, nó sẽ tự phân phát mình đi mà khổ chủ không hề hay biết Và bạn cũng sẽ rất bất ngờ khi bị mang tiếng là phát tán virus
Chỉ từ ngày thứ 6 đến thứ 2 tuần sau, virus này đã kịp lây nhiễm 250 ngàn máy tính trên thế giới thông qua internet, trong đó có Việt Nam, gây thiệt hại hàng trăm triệu USD Một lần nữa cuộc chiến lại sang một bớc ngoặt mới, báo hiệu nhiều khó khăn bởi Internet đã đợc chứng minh là một phơng tiện hữu hiệu để virus máy tính có thể lây lan trên toàn cầu chỉ trong vòng vài tiếng đồng hồ Năm 1999 đúng là một năm đáng nhớ của những ngời sử dụng máy tính trên toàn cầu, ngoài Melissa, Virus Chernobyl hay còn gọi là CIH đã phá huỷ dữ
Trang 6liệu của hàng triệu máy tính trên thế giới, gây thiệt hại gần một tỷ USD vào ngày 26-4.
- Năm 2000-DDOS, Love Letter Virus :
Có thể coi là vụ việc virus phá hoại lớn nhất từ trớc tới nay, Love Lettert có xuất
xứ từ Philippines do một sinh viên nớc này tạo ra, chỉ trong vòng 6 tiếng đồng hồ
đã kịp đI qua 20 nớc trong đó có Việt Nam, lây nhiễm 55 triệu máy tính, gây thiệt hại 8.7 USD Nếu Virus này đợc “cải tiến” một chút thì có thể gây thiệt hại gấp trăm lần nh thế
Còn DDOS ? Những virus này phát tán đi khắp nơi, nằm vùng ở những nơi nó lây nhiễm Cuối cùng chúng sẽ đồng loạt tấn công theo kiểu” từ chối dịch vụ-Denial
of Service “ ( yêu cầu liên tục, từ nhiều máy đồng thời, làm cho các máy chủ bị tấn công không thể phục vụ đợc nữa và dẫn đến từ chối những yêu cầu mời -> bị vô hiệu hóa) vào các hệ thống máy chủ khi ngời đIều hành nó phất cờ, hoặc chúng tự định cùng một thời điểm tấn công Và một hệ thống đIện thoại của Tây Ban Nha đã là vật thí nghiệm đầu tiên
- Năm 2001- Winux Windows/ Linux Virus, Nimda, Code Red Virus:
Winux Windows\Linux Virus đánh dấu những virus có thể lây đợc trên các hệ
điều hành Linux chứ không chỉ Windows Chúng ngụy trang dới dạng file MP3 cho dowload Nếu bạn là ngời mê MP3 và mê nhạc thì hết sức cẩn thận
Nimda, Code red là những virus tấn công các đối tợng của nó bằng nhiều con ờng khác nhau ( từ máy chủ sang máy chủ, sang máy trạm,từ máy trạm sang máy trạm ), làm cho việc phòng chống vô cùng khó khăn, cho đến tận tháng 9 năm…
đ-2002 , ở Việt Nam vẫn còn những cơ quan với mạng máy tính có hàng trăm máytính bị Virus Nimda quấy nhiễu Chúng cũng chỉ ra một xu hớng mới của các loại virus máy tính là “ tất cả trong một “, trong một virus bao gồm nhiều virus , nhiều nguyên lý khác nhau
- Năm 2002-Sự ra đời của hàng loạt loại virus mới:
Ngay trong tháng 1 năm 2002 đã có một loại virus mới ra đời Virus này lây nhiễm file SWF, điều cha từng xảy ra trớc đó (shock waveflash-một loại công cụ
Trang 7làm cho các trang web thêm phong phú) Tháng 3 đánh dấu sự ra đời của loại virus viết bằng ngôn ngữ C#, một ngôn ngữ mới của Microsoft Con sâu net này
có tên là sharpA và đợc viết bởi một phụ nữ !
Tháng 5 SQLSpider ra đời và chúng tấn công các chơng trình dùng SQL Tháng 6 có vài loại virus mới ra đời : Perrun lây qua image JPEG ( có lẽ bạn nên cảnh giác với mọi thứ) Scalper tấn công các FreeBSD/Apache Web Server
III/Các loại virus máy tính và cách thức tấn công
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 trên Master Boot hay Boot Sector
-F-Virus: Virus chỉ tấn công lên các file khả thi
Mặc dù cách phân chia này cũng 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 các file khả thi
Để có một cái nhìn tổng quan về Virus , ta xem chúng dành quyền điều khiể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ề 0FFFFh, 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 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ẽ tim các Cart…thiết bị gắn thêm để trao quyền điều khiển cho chúng tự khởi 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 cũng 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 Secter trên đĩa A hoặc Master Boot trên đĩa cứng vào RAM (Random Access Memory) tại địa chỉ
Trang 80: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 Secter 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 nhthô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 máy tính của mình vẫn hoạt động bình thờng
b/F-Virus:
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ảiI file cần thi hành và trao quyền điều khiển cho file đó 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 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 không thể biết đ-ợc.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 trọng nh ngắt 21h, ngắt 13h, Mỗi khi các ngắt này…
F-đợc gọi, virus sẽ dành quyền điều khiển để tiến hành các hoạt động của mình trớc khi trả lại các ngắt chuẩn của DOS
IV/Các đặc điểm của B-Virus
1/Phân loại B-Virus
Sau quá trình POST, sector đầu tiên trên đĩa A hoặc đĩa Cđợc đọc vào vùng nhớ tại 0:7C00h , và quyền điều khiển đợc trao cho đoạn mã trong sector khởi động này B-Virus hoạt động bằng cách thay thế đoạn mã chuẩn trong sector khởi động này bằng
đoạn mã của nó để chiếm quyền điều khiển, sau khi đã cài dặt xong mới đọc sector khởi động chuẩn đợc virus cất giữ ở đâu đó vào 0:7C00 và trả lại quyền điều khiển cho
đoạn mã chuẩn này Việc cất giữ sector khởi động tại vị trí nào trên đĩa tuỳ thuộc loại
đĩa và cách giải quyết của từng loại virus Đối với đĩa cứng thông thờng nó đợc cất giữ
Trang 9trong Side 0, cylinder 0 vì trong cả track này, DOS chỉ sử dụng sector đầu tiên cho bảng partition Trên đĩa mềm vị trí cất giữ sẽ phức tạp hơn vì mọi chỗ đều có khả năng bị ghi
đè thông tin Một số hớng dẫn sau đây đã đợc các virus áp dụng:
• Sử dụng sector ở cuối Root Directory, vì nó thờng ít đợc sử dụng
ợ Sử dụng các sector cuối cùng trên đĩa , vì khi phân bổ vùng trống cho file, DOS tìm vùng trống từ nhỏ đến lớn cho nên vùng này thờng ít đợc sử dụng
Ghi vào vùng trống trên đĩa , đánh dấu trong bảng FAT vùng này là vùng bị hỏng để DOS không sử dụng cấp phát nữa Cách làm này an toàn hơn các cách làm trên
t Format thêm track và ghi vào track vừa đợc format thêm
tuỳ thuộc vào độ lớn của đoạn mã virus mà B-virus đợc chia làm 2 loại:
đã bị nhiễm virus càng ít, giảm khả năng bị nghi ngờ
-Phần thân virus: là phần chơng trình chính của virus Sau khi đợc phần đầu tải vào vùng nhớ và trao quyền, phần thân này sẽ tiến hành các tác dụng của mình , sau khi tiến hành xong mới đọc sector khởi động chuẩn vào vùng nhớ và trao quyền cho nó để máy tính làm việc một cách bình thờng nh cha có gì xảy ra cả
2/Một số kỹ thuật cơ bản của B-virus:
Trang 10Dù là B-Virus hay DB-Virus, nhng để tồn tại và lây lan, chúng đều có một số các kĩ thuật cơ bản nh sau:
a/ Kĩ thuật kiểm tra tính duy nhất
Virus phải tồn tại trong bộ nhớ cũng nh trên đĩa, song sự tồn tại quá nhiều bản sao của chính nó trên đĩa và trong bộ nhớ sẽ chỉ làm chậm quá trình Boot máy, cũng
nh chiếm quá nhiều vùng nhớ ảnh hởng tới việc tải và thi hành các chơng trình khác
đồng thời cũng làm giảm tốc độn truy xuất đĩa Chính vì thế, kĩ thuật này là một yêu cầu nghiêm ngặt với B-virus
Việc kiểm tra trên đĩa có 2 ảnh hởng:
Thứ nhất là thời gian kiểm tra:
Nếu mọi tác vụ đọc/ghi đĩa đều phải kiểm tra đĩa thì thời gian truy xuất sẽ bị tăng gấp đôi, làm giảm tốc độ truy xuất cũng nh gia tăng mối nghi ngờ
Đối với yêu cầu này, các virus áp dụng một số kĩ thuật sau: Giảm số lần kiểm tra bằng cách chỉ kiểm tra trong trờng hợp thay đổi truy xuất từ ổ đĩa này sang ổ đĩa khác, chỉ kiểm tra trong trờng hợp bảng FAT trên đĩa đợc đọc vào
Thứ hai là kĩ thuật kiểm tra:
Hầu hết các virus đều kiểm tra bằng giá trị từ khoá Mỗi virus sẽ tạo cho mình một giá trị đặc biệt tại một vị trí xác định trên đĩa, việc kiểm tra đợc tiến hành bằng cách đọc Boot record và kiểm tra giá trị của từ khoá này Kĩ thuật này gặp trở ngại vì số lợng B-Virus ngàt một đông đảo, mà vị trí trên Boot record thì có hạn.Cách khắc phục hiện nay của các virus là tăng số lợng mã lệnh cần so sánh để làm giảm khả năng trùng hợp ngẫu nhiên
Để kiểm tra tồn tại của mình trong bộ nhớ, các virus đã áp dụng các kĩ thuật sau: Đơn giản nhất là kiểm tra giá trị Key value tại ột vị trí xác định trên vùng nhớ cao, ngoài ra một số kĩ thuật khác đợc áp dụng đói với các virus chiếm ngắt int 21 cua DOS
là yêu cầu thực hiện một chức năng đạc biệt không có trong ngắt này Nếu cờ báo lỗi
đ-ợc bật lên thì trong bộ nhớ cha có virus, ngđ-ợc lại nếu virus đã lu trú trong vùng nhớ thì giá trị trả lại (trong thanh ghi AX chẳng hạn) là một giá trị xác định nào đó
b/ Kỹ thuật lu trú
Trang 11Sau khi thực hiện xong chơng trình POST, giá trị tổng số vùng nhớ đợc Test sẽ
đợc lu vào vùng BIOS Data ở địa chỉ 0:413h Khi hệ điều hành nhận quyền đIều khiển,
nó sẽ coi vùng nhớ mà nó kiểm soát là giá trị trong địa chỉ này Vì vậy để lu trú, mọi virus đều áp dụng kĩ thuật sau đây: Sau khi tải phần lu trú của mình lên vùng nhớ cao,
B-nó sẽ giảm giá trị vùng nhớ do DOS quản lý tại 0:413h đi một lợng đúng bằng kích thớc của virus Tuy nhiên nếu không kiểm tra tốt sự có mặt trong vùng nhớ, khi bị Boot mềm liên tục, giá trị tổng số vùng nhớ này sẽ bị giảm nhiều lần, ảnh hởng tới việc thực hiện của các chơng trình sau này Chính vì thế, các virus đợc thiết kế tốt phải kiểm tra sự tồn tại của mình trong bộ nhớ, nếu đã có mặt trong bộ nhớ thì không giảm dung lợng vùng nhớ nữa
c/ Kỹ thuật lây lan
Đoạn mã thực hiện nhiệm vụ lây lan là đoạn mã quan trọng trong chơng trình virus Để đảm bảo việc lây lan , virus khống chế ngắt quan trọng nhất trong việc
đọc/ghi vùng hệ thống: Đó là ngắt 13h, tuy nhiên để đảm bảo tốc độ truy xuất đĩa chỉ các chức năng 2 và3 (đọc/ghi) là dẫn tới việc lây lan Việc lây lan bằng cách đọc Boot sector ( Master Boot) lên và kiểm tra xem đã bị lây cha ( kỹ thuật kiểm tra đã nói ở trên) Nếu sector khởi động đó cha bị nhiễm virus thì virus sẽ tạo một sector khởi động mới với các tham số tơng ứng của đoạn mã virus rồi ghi trở lại vào vị trí của nó trên đĩa Còn sector khởi động vừa đọc lên cùng với thân của virus ( loại DB-Virus) sẽ đợc ghi vào vùng xác định trên đĩa Ngoài ra một số virus còn chiếm ngắt 21 của DOS để lây nhiễm và phá hoại trên các file mà ngắt 21 làm việc
Việc xây dựng sector khởi động có đoạn mã của virus phải đảm bảo các kĩ thuật sau
Trang 12- Sự an toàn của Sector khởi động nguyên thể và đoạn thân của virus cũng phải đợc đặt lên hàng đầu Các kĩ thuật về vị trí cất dấu chúng ta cũng đã phân tích ở các phần trên.
d/ Kỹ thuật ngụy trang và gây nhiễu
Kỹ thuật này ra đời khá muộn về sau này, do khuynh hớng chống lại sự phát hiện của ngời sử dụng và những lập trình viên đối với virus Vì kích thớc của virus khá nhỏ bé cho nên các lập trình viên hoàn toàn có thể dò từng bớc xem cơ chế hoạt động của virus nh thế nào, cho nên các virus tìm mọi cách lắt léo để chống lại sự theo dõi của các lập trình viên
Các virus thờng áp dụng một số các kỹ thuật sau đây:
- Cố tình viết các lệnh một cách rắc rối nh đặt stack vào các vùng nhớ nguy hiểm, chiếm và xoá các ngắt, thay đổi một cách lắt léo các thanh ghi phân
đoạn để ngời dò không biết lấy dữ liệu từ đâu, thay đổi các giá trị của các lệnh phía sau để ngời sử dụng khó theo dõi
- Mã hoá ngay chính chơng trình của mình để ngời sử dụng không phát hiện
ra qui luật, cũng nh không thấy một cách ro ràng ngay sự hoạt động của virus
- Ngụy trang: Cách thứ nhất là đoạn mã cài vào sector khởi động càng ngắn càng tốt và càng giống sector khởi động càng tốt Tuy vậy cách thứ 2 vẫn đ-
ợc nhiều virus áp dụng: Khi máy nằm trong quyền chi phối của virus, mọi yêu cầu đọc/ghi Boot Sector ( Master Boot ) đều đợc virus trả về một bản chuẩn: Bản trớc khi bị virus lây Điều này đánh lừa ngời sử dụng và các ch-
ơng trình chống virus không đợc thiết kế tốt nếu máy hiện đang chịu sự chi phối của virus
e/ Kĩ thuật phá hoại
Đã là virus thì bao giờ cũng có tính phá hoại Có thể phá hoại ở mức đùa cho vui, cũng có thể là phá hoại ở mức độ nghiêm trọngm gây mất mát và đình trệ đói với thông tin trên đĩa
Căn cứ vào thời điểm phá hoại , có thể chia ra làm 2 loại:
Trang 13- Loại định thời: Loại này lu giữ một giá trị, giá trị này có thể là ngày giờ, số lần lây nhiễm, số giờ máy đã chạy, Nếu giá trị này v… ợt quá một con số cho phép, nó sẽ tiến hành phá hoại Loại này thờng nguy hiểm vì chúng chỉ phá hoại 1 lần.
- Loại liên tục: Sau khi bị lây nhiễm và liên tục, virus tiến hành phá hoại, song
do tính liên tục này, các hoạt động phá hoại của nó không mang tính nghiêm trọng, chủ yếu là đùa cho vui
V/Các đặc điểm của F-VIRUS
So với B-virus thì số lợng F-virus đông đảo hơn nhiều, có lẽ do các tác vụ đĩa với sự hỗ trợ của int 21 đã trở nên cực kỳ dễ dàng và thoải mái, đó là điều kiện phát triển cho các F-virus
Thờng thì các F-virus chỉ lây lan trên các file khả thi ( có đuôi COM hoặc EXE), tuy nhiên một nguyên tắc mà virus phải tuân thủ là: khi thi hành một file khả thi
bị lây nhiễm, quyền điều khiển phải nằm trong tay virus trớc khi virus trả nó lại cho file
bị nhiễm, và khi file nhận lại quyền điều khiển, tất cả mọi dữ liệu của file phải đợc bảo toàn
Đối với F-virus, có một số kỹ thuật đợc nêu ra ở đây :
1/Kỹ thuật lây lan
Các F-virus chủ yếu sử dụng 2 kỹ thuật: thêm vào đầu và thêm vào cuối
a/Thêm vào đầu file:
Thông thờng, phơng pháp này chỉ áp dụng cho các file COM, tức là đầu vào của chơng trình luôn luôn tại PSP:100h Lợi dụng đầu vào cố định, virus chiếm đoạn mã của chơng trình virus vào đầu chơng trình đối tợng, đẩy toàn bộ chơng trình đối t-ợng xuống phía dới Cách này có một nhợc điểm đó là do đầu vào cố định của chơng trình COM là PSP:100, cho nên trớc khi trả lại quyền điều khiển cho chơng trình, phải
đẩy lại toàn bộ chơng trình lên bắt đầu từ offset 100h Cách lây này gây khó khăn cho những ngời khôi phục vì phả đọc toàn bộ file vào vùng nhớ rồi mới tiến hành ghi lại.b/Thêm vào cuối file:
Trang 14Khác với cách lây lan ở trên, trong phơng pháp này, đoạn mã của virus sẽ đợc gắn vào sau của chơng trình đối tợng Phơng pháp này đợc thấy trên hầu hết các loại virus vì phạm vi lây lan của nó rộng rãi hơn phơng pháp trên.
Do thân của virus không nằm đúng đầu vào của chơng trình, cho nên để chiếm quyền điều khiển, phải thực hiện kỹ thuật sau đây;
-Đối với file COM: Thay các byte đầu tiên của chơng trình (đầu vào) bằng một lệnh nhảy JMP, chuyển điều khiển đến đoạn mã của virus
E9 xx xx JMP entry virus
Ngoài 2 kỹ thuật lây lan chủ yếu trên, có một số ít các virus sử dụng một số kỹ thuật đặc biệt khác nh mã hoá phần mã của chơng trình virus trớc khi ghép chúng vào file để nguỵ trang, hoặc thậm chí thay thế một số đoạn mã ngắn trong file đối tợng bằng các đoạn mã của virus , gây khó khăn cho quá trình khôi phục
Khi tiến hành lây lan trên file, đối với các file đợc đặt thuộc tính Sys (hệ thống), read Only (chỉ đọc), Hidden(ẩn), phải tiến hành đổi lại các thuộc tính đó để có thể truy nhập, ngoài ra việc truy nhập cũng thay đổi lại ngày giờ cập nhật của file, vì thế hầu hết các virus đều lu lại thuộc tính và ngày giờ cập nhật ban đầu của nó
Ngoài ra việc cố gắng ghi lên đĩa mềm có dán nhãn bảo vệ cũng tạo ra dòng thông báo lỗi của DOS: Retry-Aboart-Ignore, nếu không xử lý tốt thì dễ bị ngời sử dụng phát hiện ra sự có mặt của virus Lỗi kiểu này đợc DOS kiểm soát bằng ngắt 24h, cho nên các virus muốn tránh các thông báo kiểu này của DOS khi tiến hành lây lan phải thay ngắt 24h của DOS trớc khi tiến hành lây lan rồi sau đó hoàn trả
2/Kỹ thuật bảo đảm tính tồn tại duy nhất
Cũng giống nh B-virus, một yêu cầu nghiêm nghặt đối với F-virus là tính tồn tại duy nhất của mình trong bộ nhớ cũng nh trên file
Trong vùng nhớ, thông thờng các F-virus sử dụng 2 kỹ thuật chính:thứ nhất là tạo thêm chức năng cho DOS, bằng cách sử dụng một chức năng con nào đó đặt chức năng lớn hơn chức năng cao nhất mà DOS có Để kiểm tra chỉ cần gọi chức năng này, giá trị trả lại trong thanh ghi quyết định sự tồn tại của virus trong bộ nhớ hay cha Cách