Tải bản đầy đủ (.pdf) (4 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (208.06 KB, 4 trang )

Tuyển tập Hội nghị Khoa học thường niên năm 2020. ISBN: 978-604-82-3869-8

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:

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ớ
ngồ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.

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… Q 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
khn khổ bài viết này chúng tơi xin đề nghị
một giải pháp hồn tồ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.

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 số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

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

Để tìm kiếm giải pháp tồ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ị
84


Tuyển tập Hội nghị Khoa học thường niên năm 2020. ISBN: 978-604-82-3869-8


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 khố
riêng của tác giả chương trình đó (PRA),
virus khơng biết PRA 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 khố cơng khai của
tác giả chương trình (PUA). Đề phịng trường
hợp virus làm giả cặp khố của tác giả, PUA
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à khố 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 số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 hồn tồ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 số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 ngồ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
85


Tuyển tập Hội nghị Khoa học thường niên năm 2020. ISBN: 978-604-82-3869-8

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.

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ó q 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
tồn khơng?
Ngồ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
ngun tắc nêu trên khơng phải là q 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.

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 tồ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.

5. TÀI LIỆU THAM KHẢO
[1] Carey Nachenberg, 1997, Computer virusantivirus 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.

86


Tuyển tập Hội nghị Khoa học thường niên năm 2020. ISBN: 978-604-82-3869-8

87



×