DANH MỤC TÀI LIỆU
Tìm hiểu về lỗ hổng bảo mật
Lỗ hổng bảo mật - những hiểu biết căn bản
Lỗ hổng phần mềm có thể được hiểu như là một trục trặc hoặc điểm yếu trong
phần mềm hoặc trong hệ điều hành. Với sự phát triển của các công nghệ tấn công
mới, mức độ nghiêm trọng của lỗ hổng phần mềm đang tăng lên theo cấp số nhân.
Tất nhiên, tất cả các hệ thống đều ẩn chứa những lỗ hổng, nhưng vấn đề nằm ở chỗ
liệu những lỗ hổng này có bị khai thác và gây ra những thiệt hại hay không.
Các thảm họa an ninh mạng gây ra bởi các lỗ hổng phần mềm thường được giải
thích bởi ba yếu tố lý tưởng. Đó là:
Sự tồn tại: Đó là sự tồn tại của một lỗ hổng trong phần mềm.
Sự truy cập: Đó là khả năng mà tin tặc có thể truy cập vào một lỗ hổng bảo
mật.
Sự Khai thác: Đó là khả năng mà hacker có thể tận dụng và thu về lợi nhuận từ
lỗ hổng đó thông qua các công cụ hoặc với một số kỹ thuật nhất định.
Ngày nay, rất nhiều các tổ chức đang phải chứng kiến những lỗ hổng trong hệ
thống của họ bị khai thác. Ví dụ, dưới đây là bảng hiển thị 10 sản phẩm phần mềm
hàng đầu có nhiều lỗ hổng bảo mật nhất trong năm 2016 theo tham chiếu của hệ
thống CVSS:
Số thứ tự
Tên phần mềm
Nhà phát triển
Số lỗ hổng
1
Android
Google
523
2
Debian Linux
Debian
327
3
Ubuntu Linux
Ubuntu
278
4
Flash Player
Adobe
266
5
Leap
Novell
260
6
Opensuse
Novell
228
7
Acrobat Reader Dc
Adobe
277
8
Acrobat Dc
Adobe
277
9
Acrobat
Adobe
224
10
Linux Kernel
Linux
217
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.
5 lỗ hổng bảo mật quan trọng và cách thức tấn công
Để xây dựng phần mềm an toàn, không thể thiếu được sự hiểu biết về các lỗ hổng
phần mềm. Ở đây, chúng chúng ta sẽ tìm hiểu một cách tổng quan ngắn gọn về các
lỗ hổng bảo mật quan trọng và nguy hiểm.
SQL injection
Các lỗ hổng SQL injection mang lại cơ hội để các hacker chèn mã độc vào một câu
lệnh SQL. SQL Injection là một trong những kiểu hack web bằng cách inject các
mã SQLquery/command vào input trước khi chuyển cho ứng dụng web xử lí, bạn
có thể login mà không cần username và password, remote execution (thực thi từ
xa), dump data và lấy root của SQL server. Công cụ dùng để tấn công là một trình
duyệt web bất kì, chẳng hạn như Internet Explorer, Netscape, Lynx…
Vị trí trong danh sách liệt kê lỗ hổng (CWE)
Xếp
hạng
ID
Tên
1
CWE-
89
“Thất bại trong duy trì cấu trúc truy vấn SQL (còn được gọi là
SQL injection)"
Những ngôn ngữ lập trình bị ảnh hưởng
Bất kỳ ngôn ngữ mã hóa nào có thể được sử dụng trực tiếp với cơ sở dữ liệu SQL
đều dễ bị tổn thương bởi kiểu tấn công này. uy nhiên, dưới đây là một số ngôn ngữ
phổ biến nhất:
Các ngôn ngữ cấp cao: Perl, Ruby, Python, Java, VB.Net, SQL
Server Page: ASP, JSP, ASP.NET, PHP
Các ngôn ngữ cấp thấp hơn: C, C++
OS Command Injection
Các lỗ hổng OS Command Injection xảy ra khi phần mềm tích hợp dữ liệu do
người dùng quản lý trong một lệnh, các dữ liệu này được xử lý trong trình thông
dịch lệnh. Nếu dữ liệu không được kiểm tra, một hacker có thể sử dụng các siêu ký
tự shell để thay đổi lệnh đang được thực thi.
Vị trí trong danh sách liệt kê lỗ hổng (CWE)
ID
Tên
CWE 78
“OS Command Injection”
Buffer Overflow
Buffer overflow (tràn bộ nhớ đệm) là một loại lỗ hổng bảo mật nổi tiếng. Nó xảy ra
khi một chương trình cố gắng load thêm nhiều dữ liệu vào bộ đệm, vượt quá dung
lượng lưu trữ cho phép của nó.Việc dữ liệu được ghi bên ngoài có thể làm hỏng
chương trình, hỏng dữ liệu và thậm chí tạo điều kiện cho việc thực thi các mã độc.
Các ngôn ngữ như Java, Python, Visual Basic và C # bao gồm các mảng kiểm tra
ràng buộc và các kiểu chuỗi gốc. Do đó, tràn bộ đệm được coi là không thể xảy ra
trong những môi trường được viết bằng các ngôn ngữ này.
Vị trí trong danh sách liệt kê lỗ hổng (CWE)
Xếp
hạng
ID
Tên
3
CWE-
120
“Classic Buffer Overflow”
Bảng sau đây cho thấy các mục có liên quan của lỗ hổng bảo mật này trong
danh sách CWE:
ID
Tên
CWE
121
“Stack-based Buffer Overflow“
CWE
122
“Heap-based Buffer Overflow”
CWE
123
“Write-what-where Condition”
CWE
124
“Boundary Beginning Violation”
CWE
125
“Out of bounds Read”
CWE
128
“Wrap around Error”
CWE
129
“Unchecked Array Indexing”
CWE
131
“Incorrect Calculation of Buffer Size”
CWE
193
“Off by One Error”
CWE
466
“Return of Pointer Value Outside of Expected Range”
Những ngôn ngữ lập trình bị ảnh hưởng
Ngôn ngữ: C, Fortran, Assemblys.
Môi trường: Các máy chủ của ứng dụng, máy chủ web và ứng dụng web.
Uncontrolled Format String
Lỗ hổng này bao gồm việc chấp nhận kết quả đầu vào không được kiểm soát hoặc
trái phép dưới dạng chuỗi định dạng để thực thi một hàm. Điểm yếu này có thể dẫn
đến việc thực thi các mã độc hại và thậm chí có thể làm hỏng hệ thống.
Vị trí trong danh sách liệt kê lỗ hổng (CWE)
Xếp
hạng
ID
Tên
23
CWE 134
“Uncontrolled Format String”
Những ngôn ngữ lập trình bị ảnh hưởng
Ảnh hưởng Trực tiếp: C, C ++.
Ảnh hưởng gián tiếp: Perl (nếu đọc trong một loại dữ liệu giả mạo).
Integer Overflow
Lỗ hổng integer overflow (tràn số nguyên) tồn tại khi một phép tính cố gắng tăng
giá trị số nguyên cao hơn số nguyên được sử dụng để lưu trữ trong biểu thức có
liên quan. Khi lỗi này xảy ra, giá trị số nguyên có thể chuyển đổi thành số âm hoặc
rất nhỏ. Điểm yếu này trở thành một vấn đề bảo mật quan trọng khi kết quả tính
toán được sử dụng để xử lý vòng lặp điều khiển, xác định kích thước hoặc thực thi
các nhiệm vụ như sao chép, cấp phát bộ nhớ, ghép nối… và đưa ra quyết định.
Vị trí trong danh sách liệt kê lỗ hổng (CWE)
Xếp hạng
ID
Tên
24
CWE 190
“Integer Wraparound or Overflow”
Bảng sau đây cho thấy các mục có liên quan của lỗ hổng bảo mật này trong
danh sách CWE:
ID
Tên
CWE 682
“Incorrect Calculation “
thông tin tài liệu
Tài liệu cung cấp những kiến thức cơ bản về lỗ hổng bảo mật mà bạn nên biết
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×