Giáo trình An toàn hệ thống thông tin
MỤC LỤC
ĐỀ MỤC TRANG
1. LỜI TỰA . 3
2. GIỚI THIỆU VỀ MÔ ĐUN MÔN HỌC. 5
3. SƠ ĐỒ QUAN HỆ THEO TRÌNH TỰ HỌC NGHỀ. 6
4.CÁC HÌNH THỨC HỌC TẬP CHÍNH TRONG MÔ ĐUN/MÔN HỌC. 8
5. BÀI 1: PHÂN TÍCH CÁC NGUYÊN NHÂN DẪN ĐẾN MẤT AN TOÀN TRONG
HỆ THỐNG THÔNG TIN. 9
6.BÀI 2: LƯU TRỮ HỆ THỐNG THÔNG TIN TRÊN CÁC THIẾT BỊ LƯU TRỮ . 17
7.BÀI 3: VIRUS TIN HỌC VÀ CÁCH PHÒNG CHỐNG . 49
8.BÀI 4: MỘT SỐ BIỆN PHÁP AN TOÀN CHO CÁC HỆ THỐNG MÁY TÍNH . 58
9.BÀI 5: MỘT SỐ PHƯƠNG THỨC MÃ HOÁ VÀ GIẢI MÃ DỮ LIỆU. 68
10.BÀI 6: XÂY DỰNG KẾ HOẠCH BẢO VỆ HỆ THỐNG THÔNG TIN TRÊN
MÁY TÍNH. 80
11.TÀI LIỆU THAM KHẢO. 100
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 giấ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ế của virus hoạt động 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 47 viên. Các virus thƣờng áp dụng một số 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 dữ liệu lấy 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 quy luật, cũng nhƣ không thấy một cách rõ 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ứ hai vẫn đƣợc nhiều virus áp dụng: Khi máy đang 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ọng, 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 thành hai 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úng chỉ phá hoại một 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. III. 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 hai 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 chèn đ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ải đọ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ẽ đƣợ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. - Ðối với file .EXE: Chỉ cần định vị lại hệ thống các thanh ghi SS, SP, CS, IP trong Exe Header để trao quyền điều khiển cho phần mã virus. Ngoài hai 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ố các kỹ thuật 48 đặ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 để ngụy 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 các 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 lƣu lại thuộc tính, ngày giờ cập nhật của file để sau khi lây nhiễm sẽ trả lại y nguyên 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 - Abort - 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 đảm bảo tính tồn tại duy nhất. Cũng giống nhƣ B-virus, một yêu cầu nghiêm ngặt đặt ra đố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 hai 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 đó trong đó đặ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 chƣa. Cách thứ 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 chƣa 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ác thô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ác tuyệ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 tra bông cách dò một đoạn mã đặc trƣng (key value) của virus tại vị trí ấn định nào đó trên file, ví dụ trên các byte 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 chức năng của DOS, chƣơng trình virus muốn thƣờng trú thì cả file đối tƣợng cũng phải thƣờng trú, mà điều này thì không thể đƣợc nếu kích thƣớc của file đối tƣợng quá lớn. Chính vì lý do trên, hầu hết các chƣơng trình virus muốn thƣờng trú đều phải thao tác qua mặt DOS trên chuỗi MCB bông phƣơng pháp "thủ công". Căn cứ vào việc thƣờng trú đƣợc thực hiện trƣớc hay sau khi chƣơng trình đối tƣợng thi hành, có thể chia kỹ thuật thƣờng trú thành hai nhóm: a. Thƣờng trú trƣớc khi trả quyền điều khiển. Nhƣ đã nói ở trên, DOS không cung cấp một chức năng nào cho kiểu thƣờng trú này, cho nên chƣơng trình virus phải tự thu xếp. Các cách sau đây đã đƣợc virus dùng đến: - Thao tác trên MCB để tách một khối vùng nhớ ra khỏi quyền điều khiển của DOS, rồi dùng vùng này để chứa chƣơng trình virus. - Tự định vị vị trí trong bộ nhớ để tải phần thƣờng trú của virus vào, thƣờng thì các virus chọn ở vùng nhớ cao, phía dƣới phần tạm trú của file command.com để tránh bị ghi đè khi hệ thống tải lại command.com. Vì không cấp phát bọ nhớ cho phần chƣơng trình virus đang thƣờng trú, cho nên command.com hoàn toàn có quyền cấp phát vùng nhớ đó cho các chƣơng trình khác, nghĩa là chƣơng trình thƣơng trú của virus phải chấp nhận sự mất mát do may rủi. - Thƣờng trú bông chức năng thƣờng trú 31h: Ðây là một kỹ thuật phức tạp, tiến trình cần thực hiện đƣợc mô tả nhƣ sau: Khi chƣơng trình virus đƣợc trao quyền, nó sẽ tạo ra một MCB đƣợc khai báo là phần tử trung gian trong chuỗi MCB để chứa chƣơng trình virus, sau đó lại tạo tiếp một MCB mới để cho chƣơng trình bị nhiễm bông cách dời chƣơng trình xuống vùng mới này. Ðể thay đổi PSP mà DOS đang lƣu giữ thành PSP mà chƣơng trình virus tạo ra cho chƣơng trình đối tƣợng, phải sử dụng chức năng 50h của ngắt 21h. 49 b. Thƣờng trú sau khi đoạt lại quyền điều khiển. Chƣơng trình virus lấy tên chƣơng trình đang thi hành trong môi trƣờng của DOS, rồi nó thi hành ngay chính bản thân mình. Sau khi thi hành xong, quyền điều khiển lại đƣợc trả về cho virus, và khi đó nó mới tiến hành thƣờng trú một cách bình thƣờng bông chức năng 31h của ngắt 21h. 4. Kỹ thuật ngụy trang và gây nhiễu Một nhƣợc điểm không tránh khỏi là file đối tƣợng bị lây nhiễm virus sẽ bị tăng kích thƣớc. Một số virus ngụy trang bông cách khi sử dụng chức năng DIR của DOS, virus chi phối chức năng tìm kiếm file (chức năng 11h và 12h của ngắt 21h) để giảm kích thƣớc của file bị lây nhiễm xuống, vì thế khi virus đang chi phối máy tính, nếu sử dụng lệnh DIR của DOS, hoặc các lệnh sử dụng chức năng tìm kiếm file ở trên để có thông tin về entry trong bảng thƣ mục, thì thấy kích thƣớc file bị lây nhiễm vẫn bông kích thƣớc của file ban đầu, điều này đánh lừa ngƣời sử dụng về sự trong sạch của file này. Một số virus còn gây nhiễu bông cách mã hoá phần lớn chƣơng trình virus, chỉ khi nào vào vùng nhớ, chƣơng trình mới đƣợc giải mã ngƣợc lại. Một số virus anti-debug bông cách chiếm ngắt 1 và ngắt 3. Bởi vì các chƣơng trình debug thực chất phải dùng ngắt 1 và ngắt 3 để thi hành từng b
File đính kèm:
- AnToanThongTin_End.pdf