Xem mẫu
- 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: binhpt@tlu.edu.vn
1. GIỚI THIỆU CHUNG thay đổi so với bản gốc. Đây là một đặc điểm
Cuộc chiến chống virus máy tính (VRMT) cơ bản giúp nhận dạng ra file bị nhiễm virus.
ngày càng trở nên dai dẳng. Cứ mỗi khi có Khi nằm trong bộ nhớ, virus thường tìm
một virus mới ra đời, các phần mềm diệt cách truy cập vào những địa chỉ vùng nhớ
virus lại cố gắng tìm cách diệt và cập nhật ngoài quyền hạn được phép. Một số virus
virus mới vào cơ sở dữ liệu của nó. Những còn tìm cách tự biến đổi mã lệnh nhị phân
người viết virus lại tìm cách sửa đổi virus để (virus đa hình) nhằm qua mặt phần mềm diệt
qua mặt phần mềm diệt, virus mới lại xuất virus. Đây là những đặc điểm giúp nhận diện
hiện… Quá trình đó cứ lặp đi lặp lại và chưa virus khi nó thi hành trong bộ nhớ
biết lúc nào sẽ kết thúc. [1] Để lây được sang file khác, virus buộc
Liệu có giải pháp nào giúp ngăn chặn phải gọi tới các hàm truy cập file của hệ điều
virus hiệu quả hơn so với việc sử dụng các hành. Đây là đặc điểm giúp ta có thể phát
chương trình diệt virus đó không? Trong hiện và giám sát hành động của virus ở cấp
khuôn khổ bài viết này chúng tôi xin đề nghị hệ điều hành.
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 3.2. Đề xuất giải pháp
hành, chứ không ngồi chờ virus lây lan rồi
Virus muốn lây lan hay phá hoại thì mã
mới dùng phần mềm để diệt.
lệnh của nó phải được kích hoạt. Do đó
2. PHƯƠNG PHÁP NGHIÊN CỨU 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ìm kiếm giải pháp toàn diện cho việc
từng hành động của nó khi nó đã kích hoạt.
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 Điều đó chỉ có thể được thực hiện ở cấp hệ
nhất của virus, như kỹ thuật lây lan, kỹ thuật điều hành. Dưới đây là 3 giải pháp tương ứng
ngụy trang, kỹ thuật phá hoại… từ đó đúc rút với 3 mức độ bảo vệ:
ra những đặc điểm chung nhất của VRMT. a) Giám sát nguồn gốc phần mềm
Biết được những đặc điểm cơ bản đó của Hầu hết các chương trình máy tính đều
virus, ta có thể tìm ra những nguyên tắc dành chỗ để chứa các thông tin về tác giả,
chung để nhận dạng và phát hiện virus khi bản quyền, số hiệu phiên bản... Nếu ta bổ
chúng chưa kịp kích hoạt và lây lan. Bước sung thêm vào đó một chút thông tin nhận
tiếp theo là xây dựng được một quy trình dạng phần mềm nữa thì hiệu quả đem lại sẽ
phòng chống virus ở cấp thấp với nhiều mức rất thú vị. Giả sử ta gắn vào mỗi file chương
bảo vệ khác nhau. 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ó
3. KẾT QUẢ NGHIÊN CỨU
thể dễ dàng phát hiện điều đó khi so sánh
3.1. Một số đặc điểm cơ bản của virus chương trình với mã hash đính kèm:
máy tính [2] Proc||Hash(Proc)
Virus thường gắn bản thân nó vào một file Do kích thước mã hash khá nhỏ nên việc
thi hành khác khi lây lan, khiến cho file đó bị đính kèm sẽ không ảnh hưởng lớn tới kích
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 + Các lệnh tham chiếu tới mã lệnh (như
đơn giản như vậy thì một virus thông minh lệnh nhảy và lệnh Call) chỉ được phép tham
có thể tự làm giả mã hash sau khi lây vào chiếu tới vùng nhớ chứa mã lệnh được cấp.
file. Giải pháp chặt chẽ hơn là tiến hành mã + Mọi lời gọi tới hàm hệ thống luôn được
hoá mã hash của chương trình bằng khoá hệ điều hành giám sát.
riêng của tác giả chương trình đó (PRA), Bất cứ hành động nào vi phạm quy tắc nói
virus không biết PRA nên không thể làm giả trên sẽ bị ngăn chặn và không thể thi hành.
mã hash đính kèm: Nếu chương trình có chứa virus, và virus
Proc||E(PRA,Hash(Proc))||E(PRCA,PUA) muốn tìm cách sao chép bản thân nó ra ngoài
Để hệ điều hành có thể giải mã mã hash và vùng nhớ được cấp, hành động đó sẽ bị ngăn
kiểm tra tính hợp lệ của chương trình, ta chặn. Một số virus đa hình cần thay đổi mã
cũng cần đính kèm theo khoá công khai của lệnh của nó thường xuyên, tức là nó phải truy
tác giả chương trình (PUA). Đề phòng trường cập vào vùng nhớ chứa mã lệnh để tiến hành
hợp virus làm giả cặp khoá của tác giả, PUA đọc/ ghi (giống như đọc/ ghi dữ liệu), hành
cần được xác minh bởi một tổ chức đáng tin động đó cũng không thể thực hiện được.
cậy (CA - Certificate Authority), dưới dạng Nếu virus không lây lan trong bộ nhớ, có
một chứng chỉ số: E(PRCA,PUA), trong đó thể nó sẽ tìm cách lây vào các file thi hành
PRCA là khoá riêng của tổ chức CA. [3] trong ổ đĩa, hoặc sao chép file chứa nó thành
Như vậy mỗi lập trình viên hay nhà sản nhiều bản trên các ổ đĩa khác nhau. Muốn
xuất phần mềm cần phải gắn vào sản phẩm vậy nó cần gọi tới các hàm hệ thống để truy
chứng chỉ số của mình, để đảm bảo nguồn cập file hay đĩa. Do các hàm hệ thống đều
gốc phần mềm, cũng như chịu trách nhiệm được giám sát, một hành động đáng ngờ như
về phần mềm mình làm ra.
mở một file thi hành để ghi, ghi đè lên một
Khi thi hành một chương trình trong máy
file thi hành, hay tự động sao chép bản
tính, việc đầu tiên mà hệ điều hành cần làm
thân… sẽ bị phát hiện và từ chối.
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 Thường thì các file thì hành rất hiếm khi
chương trình có nguồn gốc không hợp lệ bị thay đổi, trừ khi nó được cập nhật lên
(chứng chỉ số không hợp lệ), hoặc mã hash phiên bản mới hay được cài đặt lại. Nếu
chương trình không khớp thì chương trình sẽ không phải các lý do đó thì gần như chắc
bị từ chối thi hành. chắn là do virus. Nhưng nếu một chương
b) Kiểm soát chương trình trong bộ nhớ trình vô hại thực sự muốn cập nhật lên phiên
Nếu vượt qua được mức bảo vệ thứ nhất bản mới, liệu hành động đó có bị hiểu nhầm
nói trên thì chương trình sẽ được hệ điều là nguy hiểm và bị hệ điều hành từ chối
hành cho phép thi hành. Như vậy không có không? Tất nhiên bộ phận giám sát hàm hệ
nghĩa là chương trình hoàn toàn vô hại. Rất thống đủ thông minh để phân biệt điều đó.
có thể người viết virus đã dùng một thủ thuật Đích của virus là lây lan sang file khác chứ
nào đó (như tạo hồ sơ giả) để vượt qua vòng không phải là lây vào chính nó.
kiểm duyệt của CA, và có được một chứng Giả sử bằng cách nào đó virus vẫn lây được
chỉ số hợp lệ, nhờ đó chương trình chứa virus vào một file thi hành khác, thì hành động đó
sẽ qua được khâu kiểm tra nguồn gốc. Lúc cũng sẽ trở nên vô nghĩa vì file mới nhiễm sẽ
này cần đến mức bảo vệ thứ hai. Ở lần chạy không thể thi hành được, do virus không thể
đầu tiên, chương trình sẽ được thi hành trong cập nhật một mã hash mới cho file.
chế độ kiểm soát đặc biệt: Như vậy mọi hành động nhằm lây lan hay
+ Mã lệnh và dữ liệu của chương trình được ngụy trang của virus đều sẽ bị ngăn chặn, một
nạp vào những vùng nhớ riêng biệt. chương trình có những lệnh đáng ngờ như vậy
+ Các lệnh tham chiếu tới dữ liệu chỉ được sẽ bị từ chối thi hành. Tuy nhiên việc kiểm
phép tham chiếu tới các địa chỉ bộ nhớ trong soát tới từng lệnh tham chiếu như trên sẽ làm
vùng dữ liệu đã cấp. 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 Việc thiết kế lại hệ điều hành có thể ảnh
tiên tính từ khi file chương trình được cài đặt hưởng tới các hệ thống đang tồn tại, tới các
vào máy tính. Nhưng nếu virus đủ khôn ngoan phần mềm hiện có, tới thói quen của người
để không có hành động đáng ngờ nào trong lần dùng… Tất cả những vấn đề nói trên đòi hỏi
chạy đầu tiên, và nó chỉ ra tay hành động vào phải có quá trình chuyển đổi, tốn nhiều thời
một thời điểm bất ngờ khác? Lúc đó sẽ cần tới gian và không dễ thực hiện.
mức bảo vệ thứ ba dưới đây.
c) Hệ điều hành có cơ chế phân quyền 4. KẾT LUẬN
chặt chẽ Việc thiết kế và xây dựng một hệ điều
Với hai mức bảo mật nói trên, nếu chương hành an toàn sẽ giúp ngăn chặn được sự lây
trình chứa virus vẫn vượt qua được thì nó
lan và phát triển của virus máy tính từ gốc.
cũng không thể lây lan hay biến hình được,
Nhưng những khó khăn chủ yếu lại nằm ở
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ư vấn đề con người. Liệu người dùng có chấp
một trojan horse hay logic bomb, đến một nhận thay đổi thói quen để có được sự an
thời điểm nhất định sẽ bất ngờ phá huỷ các toàn không?
file dữ liệu trên đĩa! Dự đoán hành động phá Ngoài vấn đề thói quen cũng cần kể đến
hoại của virus không dễ dàng, vì việc truy vấn đề tài chính. Về mặt kỹ thuật, việc xây
cập và đọc/ghi vào các file dữ liệu vốn là một dựng một hệ điều hành hoạt động theo
hành động hợp pháp và không bị nghi ngờ. nguyên tắc nêu trên không phải là quá khó,
Để hạn chế tối đa hậu quả phá hoại của nhưng nó lại khác biệt với đa số các hệ điều
virus, các hệ điều hành cần được thiết kế với hành đang tồn tại, tức là sẽ phải chỉnh sửa lại
một cơ chế phân quyền chặt chẽ. Mỗi người cả hệ thống phần mềm ứng dụng kèm theo.
dùng hay nhóm người dùng chỉ được cấp Điều đó đồng nghĩa với việc phải chi thêm
những quyền hạn nhất định đối với những nhiều tiền để có các phần mềm mới.
khu vực dữ liệu nhất định. Khi đó nếu virus Tuy nhiên vấn đề này đã từng có tiền lệ.
bất ngờ tiến hành phá hoại các file dữ liệu thì Khi MicroSoft chuyển đổi hệ điều hành
hậu quả cũng chỉ nằm trong phạm vi hạn chế Windows từ nền tảng cũ sang nền tảng NT
của một người dùng cụ thể, chứ không ảnh (New Technology), ban đầu họ cũng gặp rất
hưởng chung tới toàn hệ thống. nhiều khó khăn, nhưng dần dần cũng được
Cùng với hành động phá hoại, virus cũng
người dùng chấp nhận. Hy vọng trong tương
để lộ bản thân. Do không còn khả năng lây
lai sẽ xuất hiện những hệ điều hành mới lấy
lan hay nguỵ trang, việc tiêu diệt virus sẽ trở
nên hết sức dễ dàng. thiết kế an toàn làm chủ đạo.
Các nghiên cứu liên quan
3.3. Những khó khăn và hạn chế Các công trình nghiên cứu của Ludwig [4]
Mục tiêu của giải pháp này là ngăn chặn hay Nachenberg [1] đã tổng hợp rất đầy đủ
virus, tức là những mã lệnh có khả năng lây về virus và cuộc chiến chống virus máy tính.
lan. Do đó đối với những mã độc không tự lây
5. TÀI LIỆU THAM KHẢO
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 [1] Carey Nachenberg, 1997, Computer virus-
phần mềm được giám sát chặt chẽ, những mã antivirus coevolution, ACM.
độc loại này cũng sẽ hạn chế, nếu người dùng [2] Andrew S. Tanenbaum, 2001, Modern
cảnh giác, không tuỳ tiện chạy chương trình lạ Operating Systems, Prentice Hall.
thì sẽ không bao giờ bị nhiễm). [3] William Stallings, 2006, Cryptography and
Network Security, Prentice Hall.
Việc gắn mã hash và chứng chỉ số của tác
[4] Mark Ludwig, 2009, The Giant Black Book
giả vào chương trình đòi hỏi cần có sự thay Of Computer Viruses, CreatSpace.
đổ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.
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
nguon tai.lieu . vn