Luận Văn: Tiểu luận trí tuệ nhân tạo Tìm Hiểu 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ộcchuyê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ấtvề 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ữngchắ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ântạ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ácsả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ạngphong 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 Tuynhiê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 mongmuỗ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ự ủnghộ và góp ý của thầy cô và các bạn
Xin chân thành cảm ơn!
Chơ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ônghiể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 file chơng
Trang 2trình, văn bản, đĩa mềm,vv…), và chong trình đó mang tính phá hoại Virus có nhiềucá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ínhnh 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ọclà 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 Tuynhiê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 đánhdấ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àygiú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á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à viruskhô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 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áccâ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ìnhviê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ọilà 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ộclà đấu thủ tự nhân bản đợc nhiều nhất.
Trang 3Trò chơi Core War này đợc giữ kín đến năm 1983, Ken Thompson ngời đã viếtphiên bản đầu tiên cho hệ điều hành UNIX, đã để lộ ra khi nhận một trong nhữnggiải thởng danh dự của giới điện toán – Giải thởng A.M Turing Trong bài diễnvă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 CoreWar Cũng năm 1983, Tiến sĩ Frederik Cohen đã chứng minh đợc sự tồn tại củavirus 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 Warvà 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 ravirus 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àonớ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.
- 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ất củaMỹ, 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 nguyhạ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 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:
Trang 4Đâ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ây nhiễmlà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à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ứctạ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 ramột cú sỗc cho những công ty diệt virus cũng nh những ngời tình nguyện tronglĩ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ấthiệ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ảiphá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 đánhmá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 5Chỉ 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ấtxứ 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ệthạ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ấptră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âynhiễm Cuối cùng chúng sẽ đồng loạt tấn công theo kiểu” từ chối dịch vụ-Denialof 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ặcchú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âyBan 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 máytrạm…), làm cho việc phòng chống vô cùng khó khăn, cho đến tận tháng 9 năm2002 , ở 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ủa cácloạ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:
Trang 6Ngay 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 cha 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àycó 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.
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ànhhai 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:
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 JMPFAR đế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ìnhPOST (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 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ên khôngthể 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 Ahoặ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 Đâylà 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 nh
Trang 7thông thờng: đọc Boot Sector (Master Boot) chuẩn mà nó cất giấu ở đâu đó vào0: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ảmgiác máy tính của mình vẫn hoạt động bình thờng.
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-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ếnhà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 chofile để 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ềukhiể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ơngtrì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ằmmụ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đợ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 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ạ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 sectorkhở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ảngpartition 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
S ử dụng các sector cuối cùng trên đĩa , vì khi phân bổ vùng trống cho file, DOStìm vùng trống từ nhỏ đến lớn cho nên vùng này thờng ít đợc sử dụng.
S 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àmtrên.
SFormat thêm track và ghi vào track vừa đợc format thêm.
Trang 8tuỳ thuộc vào độ lớn của đoạn mã virus mà B-virus đợc chia làm 2 loại:
-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 khi tiếnhành xong mới đọc sector khởi động chuẩn vào vùng nhớ và trao quyền cho nó để máytí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:
Dù 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ả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ì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êucầ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:
Trang 9Hầ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ì 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ụchiệ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ùnghợ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 cua DOSlà 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ú
Sau 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 B-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,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ớccủ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ềmliê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ệncủ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ồntạ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ùngnhớ 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 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 độngmớ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 ghivà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âynhiễ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:
Trang 10- 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ân ch-ơng trong trờng hợp Master Boot Việc không bảo toàn sẽ dẫn đến việc virusmất quyền điều khiển hoặc không thể kiểm soát đợc đĩa nếu virus khô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 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 độngcủ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ủacá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
- Mã hoá ngay chính chơng trình của mình để ngời sử dụng không phát hiệnra qui luật, cũng nh không thấy một cách ro ràng ngay sự hoạt động củavirus.
- 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ọiyêu cầu đọc/ghi Boot Sector ( Master Boot ) đều đợc virus trả về một bảnchuẩ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ự chiphố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:
Trang 11- 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ố chophé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, songdo 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êmtrọ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.
Thờng thì các F-virus chỉ lây lan trên các file khả thi ( có đuôi .COMhoặ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 filekhả 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ạicho 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à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ạnmã 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ơngtrì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 chonhữ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:
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ẽ đợcgắ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ạivirus 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;
Trang 12-Đố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.
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àofile để nguỵ trang, hoặc thậm chí thay thế một số đoạn mã ngắn trong file đối tợngbằ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ể truynhậ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ếtcá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òngthô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 lanphả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ạiduy 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ứcnă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áchthứ hai là so sánh một đoạn mã trong vùng nhớ ấn định với đoạn mã của virus, nếu cósự chênh lệch thì có nghĩa làvirus cha có mặt trong vùng nhớ và sẽ tiến hành lây lan.
Trên file, có thể có các cách kiểm tra nh kiểm tra bằng test logic nào đó với cácthông tin của entry trong th mục của file này Cách này không đảm bảo tính chính xáctuyệt đối song nếu thiết kế tốt thì khả năng trùng lặp cũng hạn chế, hầu nh không có,ngoài ra một u điểm là tốc độ thực hiện kiểm tra rất nhanh Ngoài ra có thể kiểm trabằng cách dò một đoạn mã đặc trng (key value) của virus tại vị trí ấn định nào đó trênfile, ví dụ trên các file cuối cùng của file.
3/Kỹ thuật thờng trú
Đây là một kỹ thuật khó khăn, lý do là DOS chỉ cung cấp chức năng th ờng trúcho chơng trình, nghĩa là chỉ cho phép cả chơng trình thờng trú Vì vậy nếu sử dụng