Năm 1999 đúng là một năm đáng nhớ của những người sử dụng máy tínhtrên toàn cầu, ngoài Melissa, Virus Chernobyl hay còn gọi là CIH đã phá huỷ dữliệu của hàng triệu máy tính trên thế giới
Trang 1đ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 Virus m¸y tÝnhcò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¶nphÈ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ủacá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 tưa như một lọai bệnh dịch lây lan nào đó, họ thường phân vânkhô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épchí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 filechươ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, nhưng 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áytí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 tinhọ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ộtbệ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
Trang 3Virus 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áttriể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 ý Nhưng chỉ có điều những cái đầu thông minh này khiến chúng taphả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ậptrì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 trongnhững giải thưởng danh dự của giới điện toán – Giải thưởng A.M Turing Trongbà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:
Trang 4Có thể được coi là virus đầu tiên trên thế giới, Brain âm thầm đổ bộ từ Pakistanvà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áctrên thế giới cũng đã mô tả sự xuất hiện của virus, đó là đại học Hebrew-israel.
- 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 virusxuấ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 IBMnhớ 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ấtcủ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ínhnguy 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à virusmáy tính nhưngluô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ấumộ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áytí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âynhiễm làm cho việc phát hiện ra chúng quả thật là khó
- Năm 1992-Michelangelo Virus:
Trang 5Tiếp nối sự đáng sợ của” Virus đa hình” năm 1991, thì công cụ năm 1992 nàytạ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:
Sau 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ệntrong 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àyxuất hiện trên thế giới chưa 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 viruskhô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âuMelissa 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ạncũng sẽ rất bất ngờ khi bị mang tiếng là phát tán virus
Trang 6Chỉ từ ngày thứ 6 đến thứ 2 tuần sau, virus này đã kịp lây nhiễm 250 ngàn máytính trên thế giới thông qua internet, trong đó có Việt Nam, gây thiệt hại hàngtră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ệunhiề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ínhtrên toàn cầu, ngoài Melissa, Virus Chernobyl hay còn gọi là CIH đã phá huỷ dữliệ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ày26-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áytí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áychủ 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ầumờ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ạicủ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 MP3cho 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
Trang 7mỏy trạm…), làm cho việc phũng chống vụ cựng khú khăn, cho đến tận thỏng 9nă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ămmỏytớnh bị Virus Nimda quấy nhiễu Chỳng cũng chỉ ra một xu hướng mới củacỏc loại virus mỏy tớnh là “ tất cả trong một “, trong một virus bao gồm nhiềuvirus , 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õynhiễm file SWF, điều chưa từng xảy ra trước đú (shock waveflash-một loại cụng
cụ làm cho cỏc trang web thờm phong phỳ) Thỏng 3 đỏnh dấu sự ra đời của loạivirus 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ờncảnh giỏc với mọi thứ) Scalper tấn cụng cỏc FreeBSD/Apache Web Server
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êncả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 chiathà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ừatấ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:
Trang 8Khi 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 Khi máy tính bắt đầukhởi động (Power on), các thanh ghi phân đoạn đều đợc đặt về 0FFFFh, còn mọithanh 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ạnchương trỡnh trong ROM, đoạn chương trỡnh này thực hiện quỏ trỡnh POST (Power OnSelf 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 Cartthiế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ềukhiển Chỳ ý rằng đõy là đoạn chương trỡnh trong ROM(Read Only Memory) nờnkhụ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ỉ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 Secter chuẩn bằng đoạn mó virus, vỡ thế quyền điều khiển được trao chovirus, 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 thaotỏ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 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 đú F-Viruslợ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à DOStrao quyền điều khiển cho file sau khi đó tải vào vựng nhớ Sau khi F-Virus tiến hànhxong 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
Trang 9khiể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ộtchương trỡnh thường trỳ( TSR) , hoặc trong vựng nhớ nằm ngoài tầm kiểm soỏt củaDOS 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 khicỏc ngắt này được gọi, virus sẽ dành quyền điều khiển để tiến hành cỏc hoạt động củamỡnh trước khi trả lại cỏc ngắt chuẩn của DOS 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 thihành và trao quyền điều khiển cho file đó F-Virus lợi dụng điểm này bằng cáchgắn đoạn mã của mình vào file đúng tại vị trí mà DOS trao quyền điều khiểncho 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ủamì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ếnhà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ànhcàI đặt một đoạn mã của mình trong vùng nhớ RAM nh một chơng trình thờngtrú( TSR) , hoặc trong vùng nhớ nằm ngoài tầm kiểm soát của DOS nhằm mục đíchkiể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 đợcgọ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 khitrả 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ại0: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 sectorkhởi động chuẩn được virus cất giữ ở đõu đú vào 0:7C00 và trả lại quyền điều khiểncho đ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ộcloạ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ú đượccất giữ trong Side 0, cylinder 0 vỡ trong cả track này, DOS chỉ sử dụng sector đầu tiờn
Sau quá trình POST, sector đầu tiên trên đĩa A hoặc đĩa Cđợc đọc vàovùng nhớ tại 0:7C00h , và quyền điều khiển đợc trao cho đoạn mã trong sector khởi
Trang 10độ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ặtxong 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ữ trong 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ị
b/DB-virus:
Đõy là những loại virus mà đoạn mó của nú lớn hơn 512 bytes (thường thấy)
Vỡ thế mà chương trỡnh virus được chia thành 2 phần:
-Phõn đầu virus: được cài đặt trong sector khởi động để chiếm quyền điều khiển khiquyền điều khiển được trao cho sector khởi động này nhiệm vụ duy nhất của phần đầulà: tải tiếp phần thõn của virus vào vựng nhớ và trao quyền điều khiển cho phần thõn
Trang 11đó Vì nhiệm vụ đơn giản như vậy nên phần đầu của virus thường là rất ngắn , và càngngắn càng tốt vì càng ngắn thì sự khác biệt giữa sector khởi động chuẩn và sector khởiđộng đã 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àovù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 khitiế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ư chưa có gì xảy ra cả
2/Mét số kỹ thuật cơ bản của B-virus:
Dù là B-Virus hay DB-Virus, nhưng để 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ảnsao 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ũngnhư 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ìnhkhá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ộtyê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ểmtra bằng cách chỉ kiểm tra trong trường hợp thay đổi truy xuất từ ổ đĩa này sang ổ đĩakhá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ìnhmộ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ằngcá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ì
Trang 12số lượng B-Virus ngàt một đông đảo, mà vị trí trên Boot record thì có hạn.Cách khắcphụ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ậtsau: Đơ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 cuaDOS 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áolỗi được bật lên thì trong bộ nhớ chưa có virus, ngược lại nếu virus đã lưu trú trongvù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 lưu trú
Sau khi thực hiện xong chương trình POST, giá trị tổng số vùng nhớ được Test
sẽ được lưu vào vùng BIOS Data ở địa chỉ 0:413h Khi hệ điều hành nhận quyền đIềukhiển, nó sẽ coi vùng nhớ mà nó kiểm soát là giá trị trong địa chỉ này Vì vậy để lưutrú, mọi B-virus đều áp dụng kĩ thuật sau đây: Sau khi tải phần lưu trú của mình lênvùng nhớ cao, 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 trongvù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ìnhvirus Để đả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 Bootsector ( Master Boot) lên và kiểm tra xem đã bị lây chưa ( kỹ thuật kiểm tra đã nói ởtrên) Nếu sector khởi động đó chưa bị nhiễm virus thì virus sẽ tạo một sector khởi
Trang 13độ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đây:
- Sector khởi động bị nhiễm còn chứa các tham số đĩa phục vụ cho quá trìnhtruy xuất đĩa, đó là bảng tham sè BPB của Boot Record hay bảng phânchương trong trường hợp Master Boot Việc không bảo toàn sẽ dẫn đến việcvirus mất quyền điều khiển hoặc không thể kiểm soát được đĩa nếu viruskhông có mặt trong môi trường
- Sù an toàn của Sector khởi động nguyên thể và đoạn thân của virus cũngphả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áthiệ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 viruskhá 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ự theodõ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ớ nguyhiể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áclệnh phía sau để người sử dụng khó theo dõi
Trang 14- Mã hoá ngay chính chương trình của mình để người sử dụng không pháthiện ra qui luật, cũng như không thấy một cách ro ràng ngay sự hoạt độngcủ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ắncà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ộtbả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 đangchị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 chovui, 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ớithô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:
- Loại định thời: Loại này lưu 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úngchỉ 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ínhnghiê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ụ đĩavớ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áttriển cho các F-virus
Trang 15Thườ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 chofile 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àocủ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ủachương trình COM là PSP:100, cho nên trước khi trả lại quyền điều khiển cho chươngtrì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âykhó 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ếnhành ghi lại
b/Thêm vào cuối file:
Khá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ếtcá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ếmquyề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ệnhnhảy JMP, chuyển điều khiển đến đoạn mã của virus
E9 xx xx JMP entry virus