
Lỗ hổng bảo mật - những hiểu biết
căn bản

Ngày nay, kiếm được một phần mềm anti virus hoạt động hiệu quả và không
tốn quá nhiều tài nguyên máy không còn quá khó như một vài năm trước.
Điểm danh những phần mềm miễn phí, ta có AVG, Avast, Avira, thậm chí
việc kiếm key bản quyền xịn của những Kaspersky, Bitdefender cũng không
còn quá khó và đắt đỏ.
Nhưng khi nói đến bảo mật, có rất nhiều khía cạnh ta cần lưu tâm, trong đó tìm
kiếm và cài đặt một phần mềm antivirus tốt mới chỉ là một mặt của vấn đề. Hẳn
trong các bài viết về bảo mật, bạn đã nghe phát chán những chuyện như tránh
website khả nghi, chỉ download phần mềm từ các nguồn chính thức, để ý giao thức
mã hóa SSL khi đăng nhập - sử dụng mật khẩu ở đâu đó, nhớ đăng xuất khi dùng
máy công cộng... Nhân sự kiện về lỗ hổng bảo mật của java gần đây, chúng ta sẽ
cùng tìm hiểu thêm một chút về các lỗ hổng phần mềm.

Lỗi phần mềm
Ngay cả những phần mềm tầm trung đơn giản, chỉ phục vụ một vài tác vụ chuyên
biệt cũng đã tạo thành từ một lượng lớn code. Cấu trúc phần mềm được thiết kế bởi
con người, và những dòng code trong đó cũng được viết bởi con người, vì vậy việc
xuất hiện lỗi là không thể tránh khỏi. Trong phần lớn trường hợp, nếu một phần
mềm được sản xuất một cách chuyên nghiệp – các lỗi này không thể có tác động gì
quá lớn, nhất là đến các khía cạnh về bảo mật. Cùng lắm ta sẽ thấy một vài chức
năng không hoạt động, đôi lúc phần mềm “treo” khi đang làm việc hoặc làm việc
chậm chạp...

Nhưng nói vậy không có nghĩa là những lỗi nghiêm trọng liên quan đến bảo mật
không thể xảy ra. Nói cụ thể hơn một chút, đó là những lỗi phần mềm mà người
ngoài có thể khai thác để tác động thay đổi cách phần mềm vận hành, đưa thêm
vào các đoạn mã tự viết, xem các dữ liệu mà phần mềm quản lí... Ngoài các
nguyên nhân chủ quan như sự bất cẩn khi sử dụng của người dùng (click vào
đường link lạ, download các phần mềm độc hại), các lỗi này là một trong những
khe hở chính mà tin tặc thường tập trung khai thác để xâm nhập vào các hệ thống
máy móc – từ các máy chủ đến các máy cá nhân của người dùng cuối. Nếu lỗ hổng
này thuộc về một phần mềm không phổ biến, chỉ phục vụ vài tác vụ đơn giản và
không có vai trò quan trọng trong hệ thống, hiển nhiên hiểm họa về bảo mật vẫn có
nhưng không nghiêm trọng. Nhưng hệ thống phần mềm càng phức tạp, đồ sộ thì
hiển nhiên việc kiểm soát sự xuất hiện của những lỗi này càng khó – bất kể các kĩ

sư thiết kế có trình độ cao đến đâu. Và chính những phần mềm này lại thường
chiếm vai trò chủ chốt, cũng như tác động đến nhiều ngóc ngách của hệ thống.
Nhờ len lỏi qua kẽ hở tạo ra bởi lỗi của những phần mềm này, kẻ xấu có thể thực
hiện những thay đổi nhất định lên máy móc của người dùng, hay nắm được quyền
điều khiển, truy cập các thông tin nhạy cảm.
Zero-Day Exploits – Đòn tấn công âm thầm
Thực tế, các lỗ hổng có thể bị khai thác sử dụng cho mục đích xấu tồn tại trên bất
cứ phần mềm nào. Thậm chí có những phần của thiết kế khó có thể bị cho là lỗi
cho đến khi xuất hiện những công nghệ cho phép người ngoài khai thác nó – khiến
cho tác giả phải thiết kế lại cách sản phẩm của mình vận hành. Khi cập nhật phần
mềm mới, ngoài việc đôi lúc thấy xuất hiện các chức năng mới, hay hiệu năng hoạt
động được cải thiện, chắc hẳn không ít lần bạn thấy changelog(danh sách các thay
đổi) xuất hiện một loạt các sửa chửa lỗi gần đây nhất. Những người tạo ra một sản
phẩm dĩ nhiên phải là người hiểu rõ đứa con cưng của mình nhất – và sẽ cố hết sức
để sửa chữa lỗi mỗi khi phát hiện ra (ít nhất thì phần lớn trường hợp là như vậy).
Với sản phẩm phổ biến trên thị trường, được phát hành bởi các công ty- tổ chức
hoạt động một cách chuyên nghiệp, điều này càng đúng hơn.