1. Trang chủ
  2. » Công Nghệ Thông Tin

Phòng chống virus máy tính ở cấp độ hệ điều hành

4 5 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 208,06 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài viết phòng chống virus máy tính ở cấp độ hệ điều hành đề nghị một giải pháp hoàn toàn khác: Chủ động phòng ngừa virus ở cấp thấp - cấp hệ điều hành, chứ không ngồi chờ virus lây lan rồi mới dùng phần mềm để diệt.

Trang 1

PHÒNG CHỐNG VIRUS MÁY TÍNH Ở CẤP ĐỘ HỆ ĐIỀU HÀNH

Phạm Thanh Bình

Khoa Công nghệ thông tin - Đại học Thuỷ lợi, email: binhpt@tlu.edu.vn

1 GIỚI THIỆU CHUNG

Cuộc chiến chống virus máy tính (VRMT)

ngày càng trở nên dai dẳng Cứ mỗi khi có

một virus mới ra đời, các phần mềm diệt

virus lại cố gắng tìm cách diệt và cập nhật

virus mới vào cơ sở dữ liệu của nó Những

người viết virus lại tìm cách sửa đổi virus để

qua mặt phần mềm diệt, virus mới lại xuất

hiện… Quá trình đó cứ lặp đi lặp lại và chưa

biết lúc nào sẽ kết thúc [1]

Liệu có giải pháp nào giúp ngăn chặn

virus hiệu quả hơn so với việc sử dụng các

chương trình diệt virus đó không? Trong

khuôn khổ bài viết này chúng tôi xin đề nghị

một giải pháp hoàn toàn khác: Chủ động

phòng ngừa virus ở cấp thấp - cấp hệ điều

hành, chứ không ngồi chờ virus lây lan rồi

mới dùng phần mềm để diệt

2 PHƯƠNG PHÁP NGHIÊN CỨU

Để tìm kiếm giải pháp toàn diện cho việc

phòng chống VRMT, trước tiên chúng tôi

tiến hành nghiên cứu những kỹ thuật cơ bản

nhất của virus, như kỹ thuật lây lan, kỹ thuật

ngụy trang, kỹ thuật phá hoại… từ đó đúc rút

ra những đặc điểm chung nhất của VRMT

Biết được những đặc điểm cơ bản đó của

virus, ta có thể tìm ra những nguyên tắc

chung để nhận dạng và phát hiện virus khi

chúng chưa kịp kích hoạt và lây lan Bước

tiếp theo là xây dựng được một quy trình

phòng chống virus ở cấp thấp với nhiều mức

bảo vệ khác nhau

3 KẾT QUẢ NGHIÊN CỨU

3.1 Một số đặc điểm cơ bản của virus

máy tính [2]

Virus thường gắn bản thân nó vào một file

thi hành khác khi lây lan, khiến cho file đó bị

thay đổi so với bản gốc Đây là một đặc điểm

cơ bản giúp nhận dạng ra file bị nhiễm virus Khi nằm trong bộ nhớ, virus thường tìm cách truy cập vào những địa chỉ vùng nhớ ngoài quyền hạn được phép Một số virus còn tìm cách tự biến đổi mã lệnh nhị phân (virus đa hình) nhằm qua mặt phần mềm diệt virus Đây là những đặc điểm giúp nhận diện virus khi nó thi hành trong bộ nhớ

Để lây được sang file khác, virus buộc phải gọi tới các hàm truy cập file của hệ điều hành Đây là đặc điểm giúp ta có thể phát hiện và giám sát hành động của virus ở cấp

hệ điều hành

3.2 Đề xuất giải pháp

Virus muốn lây lan hay phá hoại thì mã lệnh của nó phải được kích hoạt Do đó nguyên tắc cơ bản là phải ngăn chặn virus từ trước khi nó được kích hoạt, hoặc kiểm soát từng hành động của nó khi nó đã kích hoạt Điều đó chỉ có thể được thực hiện ở cấp hệ điều hành Dưới đây là 3 giải pháp tương ứng với 3 mức độ bảo vệ:

a) Giám sát nguồn gốc phần mềm

Hầu hết các chương trình máy tính đều dành chỗ để chứa các thông tin về tác giả, bản quyền, số hiệu phiên bản Nếu ta bổ sung thêm vào đó một chút thông tin nhận dạng phần mềm nữa thì hiệu quả đem lại sẽ rất thú vị Giả sử ta gắn vào mỗi file chương trình mã hash của chính nó, nếu file này bị nhiễm virus và bị thay đổi, hệ điều hành có thể dễ dàng phát hiện điều đó khi so sánh chương trình với mã hash đính kèm:

Proc||Hash(Proc)

Do kích thước mã hash khá nhỏ nên việc đính kèm sẽ không ảnh hưởng lớn tới kích

Trang 2

thước chương trình Tuy nhiên nếu chỉ làm

đơn giản như vậy thì một virus thông minh

có thể tự làm giả mã hash sau khi lây vào

file Giải pháp chặt chẽ hơn là tiến hành mã

hoá mã hash của chương trình bằng khoá

riêng của tác giả chương trình đó (PR A),

virus không biết PR A nên không thể làm giả

mã hash đính kèm:

Proc||E(PRA,Hash(Proc))||E(PRCA,PUA)

Để hệ điều hành có thể giải mã mã hash và

kiểm tra tính hợp lệ của chương trình, ta

cũng cần đính kèm theo khoá công khai của

tác giả chương trình (PU A) Đề phòng trường

hợp virus làm giả cặp khoá của tác giả, PU A

cần được xác minh bởi một tổ chức đáng tin

cậy (CA - Certificate Authority), dưới dạng

một chứng chỉ số: E(PRCA,PUA), trong đó

PRCA là khoá riêng của tổ chức CA [3]

Như vậy mỗi lập trình viên hay nhà sản

xuất phần mềm cần phải gắn vào sản phẩm

chứng chỉ số của mình, để đảm bảo nguồn

gốc phần mềm, cũng như chịu trách nhiệm

về phần mềm mình làm ra

Khi thi hành một chương trình trong máy

tính, việc đầu tiên mà hệ điều hành cần làm

là kiểm tra nguồn gốc chương trình, so sánh

chương trình với mã hash đính kèm Nếu

chương trình có nguồn gốc không hợp lệ

(chứng chỉ số không hợp lệ), hoặc mã hash

chương trình không khớp thì chương trình sẽ

bị từ chối thi hành

b) Kiểm soát chương trình trong bộ nhớ

Nếu vượt qua được mức bảo vệ thứ nhất

nói trên thì chương trình sẽ được hệ điều

hành cho phép thi hành Như vậy không có

nghĩa là chương trình hoàn toàn vô hại Rất

có thể người viết virus đã dùng một thủ thuật

nào đó (như tạo hồ sơ giả) để vượt qua vòng

kiểm duyệt của CA, và có được một chứng

chỉ số hợp lệ, nhờ đó chương trình chứa virus

sẽ qua được khâu kiểm tra nguồn gốc Lúc

này cần đến mức bảo vệ thứ hai Ở lần chạy

đầu tiên, chương trình sẽ được thi hành trong

chế độ kiểm soát đặc biệt:

+ Mã lệnh và dữ liệu của chương trình được

nạp vào những vùng nhớ riêng biệt

+ Các lệnh tham chiếu tới dữ liệu chỉ được

phép tham chiếu tới các địa chỉ bộ nhớ trong

vùng dữ liệu đã cấp

+ Các lệnh tham chiếu tới mã lệnh (như lệnh nhảy và lệnh Call) chỉ được phép tham chiếu tới vùng nhớ chứa mã lệnh được cấp + Mọi lời gọi tới hàm hệ thống luôn được

hệ điều hành giám sát

Bất cứ hành động nào vi phạm quy tắc nói trên sẽ bị ngăn chặn và không thể thi hành Nếu chương trình có chứa virus, và virus muốn tìm cách sao chép bản thân nó ra ngoài vùng nhớ được cấp, hành động đó sẽ bị ngăn chặn Một số virus đa hình cần thay đổi mã lệnh của nó thường xuyên, tức là nó phải truy cập vào vùng nhớ chứa mã lệnh để tiến hành đọc/ ghi (giống như đọc/ ghi dữ liệu), hành động đó cũng không thể thực hiện được Nếu virus không lây lan trong bộ nhớ, có thể nó sẽ tìm cách lây vào các file thi hành trong ổ đĩa, hoặc sao chép file chứa nó thành nhiều bản trên các ổ đĩa khác nhau Muốn vậy nó cần gọi tới các hàm hệ thống để truy cập file hay đĩa Do các hàm hệ thống đều được giám sát, một hành động đáng ngờ như

mở một file thi hành để ghi, ghi đè lên một file thi hành, hay tự động sao chép bản thân… sẽ bị phát hiện và từ chối

Thường thì các file thì hành rất hiếm khi

bị thay đổi, trừ khi nó được cập nhật lên phiên bản mới hay được cài đặt lại Nếu không phải các lý do đó thì gần như chắc chắn là do virus Nhưng nếu một chương trình vô hại thực sự muốn cập nhật lên phiên bản mới, liệu hành động đó có bị hiểu nhầm

là nguy hiểm và bị hệ điều hành từ chối không? Tất nhiên bộ phận giám sát hàm hệ thống đủ thông minh để phân biệt điều đó Đích của virus là lây lan sang file khác chứ không phải là lây vào chính nó

Giả sử bằng cách nào đó virus vẫn lây được vào một file thi hành khác, thì hành động đó cũng sẽ trở nên vô nghĩa vì file mới nhiễm sẽ không thể thi hành được, do virus không thể cập nhật một mã hash mới cho file

Như vậy mọi hành động nhằm lây lan hay ngụy trang của virus đều sẽ bị ngăn chặn, một chương trình có những lệnh đáng ngờ như vậy

sẽ bị từ chối thi hành Tuy nhiên việc kiểm soát tới từng lệnh tham chiếu như trên sẽ làm chậm đáng kể tốc độ thi hành của chương

Trang 3

trình, và chỉ nên thực hiện trong lần chạy đầu

tiên tính từ khi file chương trình được cài đặt

vào máy tính Nhưng nếu virus đủ khôn ngoan

để không có hành động đáng ngờ nào trong lần

chạy đầu tiên, và nó chỉ ra tay hành động vào

một thời điểm bất ngờ khác? Lúc đó sẽ cần tới

mức bảo vệ thứ ba dưới đây

c) Hệ điều hành có cơ chế phân quyền

chặt chẽ

Với hai mức bảo mật nói trên, nếu chương

trình chứa virus vẫn vượt qua được thì nó

cũng không thể lây lan hay biến hình được,

tức là nó không thực sự là một virus nữa

Nhưng nó vẫn có thể nằm im chờ thời như

một trojan horse hay logic bomb, đến một

thời điểm nhất định sẽ bất ngờ phá huỷ các

file dữ liệu trên đĩa! Dự đoán hành động phá

hoại của virus không dễ dàng, vì việc truy

cập và đọc/ghi vào các file dữ liệu vốn là một

hành động hợp pháp và không bị nghi ngờ

Để hạn chế tối đa hậu quả phá hoại của

virus, các hệ điều hành cần được thiết kế với

một cơ chế phân quyền chặt chẽ Mỗi người

dùng hay nhóm người dùng chỉ được cấp

những quyền hạn nhất định đối với những

khu vực dữ liệu nhất định Khi đó nếu virus

bất ngờ tiến hành phá hoại các file dữ liệu thì

hậu quả cũng chỉ nằm trong phạm vi hạn chế

của một người dùng cụ thể, chứ không ảnh

hưởng chung tới toàn hệ thống

Cùng với hành động phá hoại, virus cũng

để lộ bản thân Do không còn khả năng lây

lan hay nguỵ trang, việc tiêu diệt virus sẽ trở

nên hết sức dễ dàng

3.3 Những khó khăn và hạn chế

Mục tiêu của giải pháp này là ngăn chặn

virus, tức là những mã lệnh có khả năng lây

lan Do đó đối với những mã độc không tự lây

lan được như trojan horse hay logic bomb thì

vẫn chưa có giải pháp triệt để (Khi nguồn gốc

phần mềm được giám sát chặt chẽ, những mã

độc loại này cũng sẽ hạn chế, nếu người dùng

cảnh giác, không tuỳ tiện chạy chương trình lạ

thì sẽ không bao giờ bị nhiễm)

Việc gắn mã hash và chứng chỉ số của tác

giả vào chương trình đòi hỏi cần có sự thay

đổi toàn diện trong thói quen của lập trình

viên và công tác phân phối phần mềm

Việc thiết kế lại hệ điều hành có thể ảnh hưởng tới các hệ thống đang tồn tại, tới các phần mềm hiện có, tới thói quen của người dùng… Tất cả những vấn đề nói trên đòi hỏi phải có quá trình chuyển đổi, tốn nhiều thời gian và không dễ thực hiện

4 KẾT LUẬN

Việc thiết kế và xây dựng một hệ điều hành an toàn sẽ giúp ngăn chặn được sự lây lan và phát triển của virus máy tính từ gốc Nhưng những khó khăn chủ yếu lại nằm ở vấn đề con người Liệu người dùng có chấp nhận thay đổi thói quen để có được sự an toàn không?

Ngoài vấn đề thói quen cũng cần kể đến vấn đề tài chính Về mặt kỹ thuật, việc xây dựng một hệ điều hành hoạt động theo nguyên tắc nêu trên không phải là quá khó, nhưng nó lại khác biệt với đa số các hệ điều hành đang tồn tại, tức là sẽ phải chỉnh sửa lại

cả hệ thống phần mềm ứng dụng kèm theo Điều đó đồng nghĩa với việc phải chi thêm nhiều tiền để có các phần mềm mới

Tuy nhiên vấn đề này đã từng có tiền lệ Khi MicroSoft chuyển đổi hệ điều hành Windows từ nền tảng cũ sang nền tảng NT (New Technology), ban đầu họ cũng gặp rất nhiều khó khăn, nhưng dần dần cũng được người dùng chấp nhận Hy vọng trong tương lai sẽ xuất hiện những hệ điều hành mới lấy thiết kế an toàn làm chủ đạo

Các nghiên cứu liên quan Các công trình nghiên cứu của Ludwig [4] hay Nachenberg [1] đã tổng hợp rất đầy đủ

về virus và cuộc chiến chống virus máy tính

5 TÀI LIỆU THAM KHẢO

[1] Carey Nachenberg, 1997, Computer virus-antivirus coevolution, ACM

[2] Andrew S Tanenbaum, 2001, Modern Operating Systems, Prentice Hall

[3] William Stallings, 2006, Cryptography and Network Security, Prentice Hall

[4] Mark Ludwig, 2009, The Giant Black Book

Of Computer Viruses, CreatSpace

Ngày đăng: 10/07/2022, 13:27

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w