Đồ án tốt nghiệp: Khảo sát virus One Half và thiết kế chương trình chống virus - Trường Đại học Bách khoa Hà Nội

Trường đại học

Đại học Bách Khoa Hà Nội

Chuyên ngành

Tin học

Người đăng

Ẩn danh
240
0
0

Phí lưu trữ

55 Point

Tóm tắt

I. Tổng quan về virus One Half và đồ án khảo sát

Virus One Half là một loại virus máy tính nguy hiểm, thuộc nhóm virus lây nhiễm sector khởi động. Virus này có khả năng mã hóa dữ liệu trên đĩa cứng theo từng sector một. Khi lây nhiễm vào hệ thống, virus ẩn mình trong vùng nhớ và chờ thời cơ hoạt động. Mỗi lần khởi động máy, virus sẽ mã hóa thêm một sector mới trên đĩa cứng. Quá trình này diễn ra âm thầm cho đến khi toàn bộ dữ liệu bị mã hóa. Đồ án khảo sát virus One Half nhằm mục đích tìm hiểu chi tiết cơ chế hoạt động của loại virus này. Nghiên cứu bao gồm phân tích cấu trúc, cách lây nhiễm và phương thức phá hoại. Từ đó xây dựng cơ sở lý luận vững chắc cho việc thiết kế chương trình chống virus hiệu quả. Đồ án sử dụng ngôn ngữ Assembly để tương tác trực tiếp với hệ thống ở mức thấp nhất.

1.1. Khái niệm virus máy tính và phân loại

1.2. Mục tiêu và phạm vi nghiên cứu đồ án

II. Phân tích cơ chế hoạt động của virus One Half

Virus One Half lây nhiễm vào Master Boot Record của đĩa cứng thông qua đĩa mềm bị nhiễm. Khi máy khởi động từ đĩa cứng có chứa virus, mã độc sẽ được nạp vào bộ nhớ trước hệ điều hành. Virus chiếm dụng một vùng nhớ nhất định trong RAM và di chuyển vector ngắt INT 13h. Mọi yêu cầu truy cập đĩa đều đi qua virus để kiểm soát. Cơ chế phá hoại của virus rất tinh vi. Mỗi lần khởi động, virus giải mã một sector trên đĩa cứng nhưng đồng thời mã hóa một sector khác. Người dùng không phát hiện sự thay đổi cho đến khi quá nhiều sector bị ảnh hưởng. Virus còn có khả năng chống phát hiện bằng cách trả về dữ liệu gốc khi đọc sector đã mã hóa. Điều này khiến các phần mềm diệt virus thông thường khó phát hiện. Việc phân tích virus đòi hỏi kiến thức sâu về hệ thống và kỹ năng đọc mã Assembly.

2.1. Cơ chế lây nhiễm qua boot sector

2.2. Cơ chế mã hóa và chống phát hiện

III. Thiết kế chương trình chống virus One Half

Chương trình chống virus được thiết kế dựa trên nguyên tắc so sánh và khôi phục. Đầu tiên, chương trình đọc MBR hiện tại và so sánh với mẫu virus đã biết. Nếu phát hiện virus, chương trình tiến hành quá trình khôi phục. Quá trình bao gồm đọc MBR gốc từ sector cuối của track 0. Chương trình kiểm tra tính hợp lệ của MBR gốc trước khi ghi đè. Tiếp theo, chương trình quét toàn bộ đĩa cứng để tìm sector đã bị mã hóa. Mỗi sector bị mã hóa được giải mã bằng khóa tương ứng. Chương trình sử dụng ngắt INT 13h để truy xuất đĩa ở mức thấp. Giao diện người dùng đơn giản, hiển thị tiến trình quét và kết quả. Chương trình được viết bằng ngôn ngữ Assembly để tối ưu hiệu suất. Mã nguồn được cấu trúc rõ ràng với các hàm riêng biệt cho từng chức năng. Chương trình có khả năng hoạt động trên môi trường DOS thực và DOS ảo.

3.1. Cấu trúc chương trình và các module chức năng

3.2. Kỹ thuật truy xuất đĩa và xử lý dữ liệu

IV. Kết luận và ứng dụng thực tiễn của đồ án

Đồ án đã hoàn thành các mục tiêu đề ra ban đầu. Virus One Half được phân tích chi tiết về cấu trúc và cơ chế hoạt động. Chương trình chống virus được thiết kế và kiểm tra thành công trên môi trường giả lập. Kết quả cho thấy chương trình có khả năng phát hiện và loại bỏ virus One Half. Quá trình khôi phục dữ liệu bị mã hóa đạt hiệu quả cao. Đồ án cung cấp kiến thức thực tiễn về virus học và lập trình hệ thống. Người đọc hiểu được cách virus xâm nhập và cách phòng chống hiệu quả. Kỹ năng phân tích mã Assembly được rèn luyện qua quá trình nghiên cứu. Đồ án cũng đặt nền tảng cho việc nghiên cứu các loại virus phức tạp hơn. Trong thực tế, nguyên tắc phát hiện virus có thể áp dụng cho nhiều loại virus khác. Chương trình có thể mở rộng để hỗ trợ phát hiện nhiều loại virus boot sector. Đồ án đóng góp vào công tác bảo mật hệ thống máy tính tại Việt Nam.

4.1. Đánh giá kết quả đạt được

4.2. Hướng phát triển và ứng dụng mở rộng

21/04/2026

Trích đoạn nội dung tài liệu

ĐỒ ÁN TỐT NGHIỆP LỜI NÓI ĐẦU Virus tin học hiện nay đang là nỗi băn khoăn lo lắng của những người làm công tác tin học, là nỗi lo sợ của những người sử dụng khi máy tính của mình bị nhiễm virus. Khi máy tính của mình bị nhiễm virus, họ chỉ biết trông chờ vào các phần mềm diệt virus hiện có trên thị trường, trong trường hợp các phần mềm này không phát hiện hoặc không tiêu diệt được, họ bị lâm phải tình huống rất khó khăn, không biết phải làm như thế nào. Vì lý do đó, có một cách nhìn nhận cơ bản về hệ thống, cơ chế và các nguyên tắc hoạt động của virus tin học là cần thiết. Trên cơ sở đó, có một cách nhìn đúng đắn về virus tin học trong việc phòng chống, kiểm tra, chữa trị cũng như cách phân tích, nghiên cứu một virus mới xuất hiện. Đồ án này giải quyết các vấn đề vừa nêu ra ở trên. Nó được chia làm 4 chương: Chương I. Chương II. Tổng quan về virus và hệ thống. Chương III. Khảo sát virus One Half. Chương IV. Thiết kế chương trình chống virus. Phần phụ lục cuối đồ án liệt kê toàn bộ chương trình nguồn của chương trình kiểm tra và khôi phục đối với virus One Half. Trong quá trình xây dựng đồ án này, tôi đã nhận được nhiều sự giúp đỡ của các thầy cô giáo, bạn bè đồng nghiệp và gia đình. Tôi xin cảm ơn sự giúp đỡ nhiệt tình của thầy Nguyễn Thanh Tùng, là thầy giáo trực tiếp hướng dẫn đề tài tốt nghiệp của tôi, cảm ơn các thầy cô giáo trong Khoa Tin học, các thầy cô giáo và các cán bộ của Trung tâm bồi dưỡng cán bộ Trường Đại học Bách khoa Hà nội đã tạo điều kiện giúp đỡ tôi hoàn thành đồ án này. 3 ĐỒ ÁN TỐT NGHIỆP Tôi cũng xin cảm ơn các bạn bè đồng nghiệp, người thân trong gia đình đã tạo điều kiện, động viên tôi trong quá trình làm đồ án. Vì điều kiện về thời gian không nhiều, kinh nghiệm còn hạn chế, không tránh khỏi các thiếu sót. Tôi mong nhận được các ý kiến đóng góp của các thầy cô giáo và các đồng nghiệp để các chương trình sau này được tốt hơn. ĐẶT VẤN ĐỀ Mặc dù virus tin học đã xuất hiện từ khá lâu trên thế giới và trong nước ta, song đối với người sử dụng và cả những người làm công tác tin học, virus tin học vẫn là vấn đề nan giải, nhiều khi nó gây các tổn thất về mất mát dữ liệu trên đĩa, gây các sự cố trong quá trình vận hành máy. Sự nan giải này có nhiều lý do: Thứ nhất, các kiến thức về mức hệ thống khó hơn các kiến thức về lập trình trên các ngôn ngữ bậc cao và các chương trình ứng dụng, đặc biệt những thông tin cần thiết về hệ thống không được DOS chính thức công bố hoặc là các thông tin dành riêng (Reseved), điều này làm cho những người đề cập ở mức hệ thống không nhiều. Thứ hai, hầu như rất ít các tài liệu về virus tin học được phổ biến, có lẽ người ta nghĩ rằng nếu có các tài liệu đề cập tới virus một cách tỷ mỷ, hệ thống thì số người tò mò, nghịch ngợm viết virus sẽ còn tăng lên nữa! Thứ ba, số lượng các virus xuất hiện khá đông đảo, mỗi virus có một đặc thù riêng, một cách hoạt động riêng và một cách phá hoại riêng. Để tìm hiểu cặn kẽ về một virus không thể 4 ĐỒ ÁN TỐT NGHIỆP một thời gian ngắn được, điều này làm nản lòng những người lập trình muốn tìm hiểu về virus. Tuy đã xuất hiện khá nhiều những chương trình tiêu diệt virus và khôi phục lại đĩa, khôi phục lại các file bị nhiễm song trong những trường hợp cụ thể, đôi khi các phần mềm này cũng không giải quyết được vấn đề. Có nhiều lý do: Thứ nhất, mỗi chương trình chỉ tiêu diệt một số loại virus mà nó biết. Thứ hai, chúng ta đều biết rằng sau khi một virus nào đó xuất hiện, nó mới được nghiên cứu và mã nhận biết của nó mới được đưa vào danh mục, khi đó chương trình mới có khả năng tiêu diệt được. Điều đó có nghĩa là có thể có các loại virus xuất hiện trong máy tính của chúng ta mà các chương trình kiểm tra virus vẫn cứ thông báo "OK". Đặc biệt là các virus do những người lập trình trong nước viết, hầu hết không được cập nhật vào trong các chương trình kiểm tra và tiêu diệt virus như SCAN, F-PROT, UNVIRUS,. Vì các lý do nêu trên, việc phòng chống virus vẫn là biện pháp tốt nhất để tránh việc virus xâm nhập vào trong hệ thống máy của mình. Trong trường hợp phát hiện có virus xâm nhập, ngoài việc sử dụng các chương trình diệt virus hiện đang có mặt trên thị trường, việc hiểu biết cơ chế, các đặc điểm phổ biến của virus là những kiến thức mà những người làm công tác tin học nên biết để có các xử lý phù hợp. Nội dung của đồ án này đưa ra một số phân tích cơ bản đối với mảng kiến thức hệ thống, các nguyên tắc thiết kế, hoạt động của các loại virus nói chung, áp dụng trong phân tích virus One Half. Trên cơ sở đó, đề cập tới phương pháp phòng tránh, phát hiện và phân tích với một virus nào đó. Các kiến thức này cộng với các phần mềm diệt virus hiện có trên thị trường có tác dụng trong việc hạn chế sự lây lan, phá hoại của virus nói chung. 5 ĐỒ ÁN TỐT NGHIỆP 6 ĐỒ ÁN TỐT NGHIỆP Chương II. GIỚI THIỆU TỔNG QUÁT VỀ VIRUS TIN HỌC. Virus tin học. Thuật ngữ virus tin học dùng để chỉ một chương trình máy tính có thể tự sao chép chính nó lên nơi khác (đĩa hoặc file) mà người sử dụng không hay biết. Ngoài ra, một đặc điểm chung thường thấy trên các 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. Ý tưởng và lịch sử. Lý thuyết về một chương trình máy tính có thể tự nhân lên nhiều lần được đề cập tới từ rất sớm, trước khi chiếc máy tính điện tử đầu tiên ra đời. Lý thuyết này được đưa ra năm 1949 bởi Von Neumann, trong một bài báo nhan đề 'Lý thuyết và cơ cấu của các phần tử tự hành phức tạp' (Theory and Organization of Complicated Automata). Sau khi máy tính điện tử ra đời, xuất hiện một trò chơi tên là 'Core War', do một số thảo chương viên của hãng AT&T's Bell phát triển. Trò chơi này là một cuộc đấu trí giữa hai đoạn mã của hai thảo chương viên, mỗi đoạn mã đều cố gắng tự nhân lên và tiêu diệt đoạn mã của đối phương. Đến 5/1984, Core War được mô tả trên báo chí và bán như một trò chơi máy tính. Những virus tin học đầu tiên được tìm thấy trên máy PC vào khoảng 1986-1987. Các virus thường có một xuất phát điểm là các trường Đại học, nơi có các sinh viên giỏi, thích tự khẳng định mình! 3. Phân loại: 7 ĐỒ ÁN TỐT NGHIỆP Thông thường, dựa vào đối tượng lây lan là file hay đĩa mà virus được chia thành hai nhóm chính: - B-virus: Virus chỉ tấn công lên Master Boot hay Boot Sector. - F-virus: Virus chỉ tấn công lên các file khả thi. Mặc dù vậy, cách phân chia này 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 file khả thi. Để có một cách nhìn tổng quan về virus, chúng ta xem chúng dành quyền điều khiển như thế nào. 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ẽ dò tìm các Card 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ư không thể chèn thêm một đoạn mã nào khác. Sau quá trình POST, đoạn chương trình trong ROM tiến hành đọc Boot Sector trên đĩa A hoặc Master Boot trên đĩa cứng vào RAM (Random Acess Memory) tại địa chỉ 0:7C00h và trao quyền 8 ĐỒ ÁN TỐT NGHIỆP điều khiển cho đoạn mã đó bằng lệnh JMP FAR 0:7C00h. Đây là chỗ mà B-virus lợi dụng để tấn công vào Boot Sector (Master Boot), nghĩa là nó sẽ thay Boot Sector (Master Boot) chuẩn bằng đoạn mã virus, vì thế quyền điều khiển được trao cho virus, nó sẽ tiến hành các hoạt động của mình trước, rồi sau đó mới tiến hành các thao tác như thông thường: Đọc Boot Sector (Master Boot) chuẩn mà nó cất giấu ở đâu đó vào 0:7C00h rồi trao quyền điều khiển cho đoạn mã chuẩn này, và người sử dụng có cảm giác rằng máy tính của mình vẫn hoạt động bình thường. Khi DOS tổ chức thi hành File khả thi (bằng chức năng 4Bh của ngắt 21h), nó sẽ tổ chức lại vùng nhớ, tải File cần thi hành và trao quyền điều khiển cho File đó. F-virus lợi dụng điểm này bằng cách gắn đoạn mã của mình vào file đúng tại vị trí mà DOS trao quyền điều khiển cho File sau khi đã tải vào vùng nhớ. Sau khi F- virus tiến hành xong các hoạt động của mình, nó mới sắp xếp, bố trí trả lại quyền điều khiển cho File để cho File lại tiến hành hoạt động bình thường, và người sử dụng thì không 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 đượ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.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ