3.2.1. Mô-đun phát hiện nguy cơ, lỗ hổng dựa trên CSDL mẫu thử
Với tập các mẫu thử được xây dựng dựa trên ngôn ngữ mô tả kịch bản NASL, chúng tôi sẽ tiến hành tích hợp công cụ openvas-nasl để có thể dò quét, phát hiện các lỗ hổng bảo mật trong một host.
Hiện nay, OpenVAS đều cho phép người dùng sử dụng tập plugins chứa tệp các mẫu dò quét lỗ hổng NVT (Network Vulnerability Tests). Theo thống kê trực tiếp từ các bản miễn phí của OpenVas, thì hiện tại đã cung cấp khoảng hơn 70.000 mẫu NVTs cho cộng đồng và vẫn không ngừng được tăng lên.
Hình 3.6 - Minh hoạ một số mẫu thử lỗ hổng của OpenVAS Quá trình tạo NVT bao gồm năm bước được nêu dưới đây:
- Bước 1: Bước đánh giá, trong bước này, nhóm đánh giá sẽ được thông báo về các mối đe dọa bảo mật hiện có và phân tách các mối đe dọa trong các danh mục khác nhau tùy theo mức độ nghiêm trọng của từng mối đe dọa.
- Bước 2: Bước quyết đinh,trong bước này, nhóm đánh giá quyết định NVT nào sẽ được thực hiện và mối đe dọa nào.
- Bước 3: Bước thực hiện,trong bước này, nhóm đánh giá đã đưa ra quyết định và nhóm phát triển đang triển khai NVT. Nếu nhóm phát triển tìm thấy bất kỳ vấn đề nào trên đường đi (ví dụ: chiến lược triển khai mơ hồ), họ sẽ trả lại NVT cho nhóm đánh giá để được đánh giá lại.
Chương 4: Thực nghiệm và đánh giá
- Bước 4: Trong bước thứ tư, nhóm đảm bảo chất lượng kiểm tra NVT được phát triển ở bước thứ ba để xác nhận chất lượng của NVT mới được triển khai. Nếu NVT không đáp ứng mức chất lượng cần thiết, nó sẽ được trả lại cho nhóm phát triển.
- Bước 5: Trong bước cuối cùng, chất lượng của NVT đã được xác nhận và nhóm đảm bảo chất lượng sẽ bật đèn xanh để xuất bản NVT mới được tạo.
Mô-đun này dựa trên plugin NVT để tìm ra các lỗ hổng tiềm ẩn tại máy chủ. Vì chỉ có thể kiểm tra các lỗ hổng bảo mật tồn tại các NVT tương ứng, nên số lượng lỗ hổng được phát hiện phụ thuộc vào mức độ lớn và cập nhật của cơ sở dữ liệu NVT. Cơ sở dữ liệu này thường được cập nhật thông qua giao diện dòng lệnh trong quá trình cài đặt OpenVAS. Tuy nhiên, người dùng không biết về tính tối ưu của cơ sở dữ liệu NVT và không được thông báo khi cơ sở dữ liệu bị lỗi thời. Thay vào đó, người dùng sẽ gọi lệnh greenbone-nvt-sync theo định kỳ thông qua giao diện dòng lệnh cho quá trình cập nhật.
Dựa trên tập mẫu thử lỗ hổng của OpenVas, chúng tôi đã sử dụng công cụ NASL để tiến hành thử nghiệm dò quét lỗ hổng từ một hệ thống (host).
Ví dụ sau đây minh hoạ thực hiện phát hiện lỗ hổng thông qua một mẫu thử NVT được xây dựng theo kiểu dò quét tuần tự các cổng:
if(description){ script_name(english:"Simple TCP scan"); script_summary(english:"PortScan 1-9999"); script_family(english:"General"); script_copyright(english:"UET-VNU"); exit(0); }
for(port=1; port<9999; port++){ if (get_port_state(port)>=0){
mysock = open_sock_tcp(port); if(mysock){
r = recv(socket:mysock, lenght:256); close(mysock);
if (r) display("Open Port ", port, " DATA: ", r); if (!r) display("Open Port", port, "\n");
} }
3.2.2. Mô-đun dò quét lỗ hổng hệ thống CNTT
Việc đánh giá, xác định lỗ hổng hệ thống CNTT tương ứng với việc thi hành các mẫu dò quét NVTs. Chẳng hạn, để dò quét các lỗ hổng tại host có địa chỉ “vnu.edu.vn”, chúng ta sử dụng cú pháp sau:
nasl -X -B -d -i /var/lib/openvas/plugins -t vnu.edu.vn * Kết quả dò quét được minh hoạ như hình sau:
Hình 3.7 - Kết quả thi hành các mẫu dò quét NVTs
3.3. Xây dựng mô-đun quản lý tác vụ xác định rủi ro
Trong phạm vi của luận văn, chung tôi chỉ tập trung mô tả chi tiết phân tích thiết kế mô-đun quản lý tác vụ xác định rủi ro ATTT.
Danh mục các chức năng chính của Mô-đun quản lý tác vụ xác định rủi ro: - Chức năng quản lý các tác vụ dò quét thực hiện thu thập các rủi ro.
- Chức năng quản lý thực thi các tiến trình tương ứng với các tác vụ dò quét. - Chức năng lập lịch và quản lý lịch thực hiện các tiến trình dò quét rủi ro. Xác định vai trò người dùng trong chức năng quản lý tác vụ được phân biệt như sau:
Vai trò Khách:
- Được phép đăng nhập hệ thống, chỉ được quyền xem và hiển thị thông tin bộ dữ liệu được sử dụng trong hệ thống.
Chương 4: Thực nghiệm và đánh giá
- Không được cấp quyền sử dụng chức năng quản lý tác vụ.
Vai trò Quan sát:
- Được phép đăng nhập hệ thống và có quyền như vai trò như người dùng dạng khách. - Được quyền xem danh mục tác vụ dò quét xác định rủi ro.
- Cấm không được sử dụng các chức năng khác.
Vai trò Đánh giá, dò quét rủi ro:
- Được phép đăng nhập hệ thống và có quyền như vài trò của người Quan sát. - Được cấp quyền tạo mới tác vụ dò quét xác định rủi ro.
- Được cấp quyền cập nhật, xoá tác vụ dò quét hệ thống.
- Được cấp quyền khởi động, tạm dừng và kết thúc tiến trình dò quét rủi. - Cấm không khai thác sử dụng các chức năng khác.
Vai trò Quản trị (Admin):
- Được phép đăng nhập hệ thống và và có quyền như vài trò của người Đánh giá, dò quét rủi ro.
- Được cấp quyền tạm dừng, kết thúc các tác vụ dò quét khác mà người dùng trong tổ chức đã tạo.
- Được cấp quyền cập nhật, xoá toàn bộ các tác vụ xác định rủi ro mà người dùng trong tổ chức đã tạo.
Ca sử dụng (use-case):
Tác nhân Ca sử dụng
Quan sát kết quả đánh giá, dò quét
- Xem danh mục tác vụ và kết quả dò quét xác định rủi ro. - Xem chi tiết thông tin tác vụ dò quét xác định rủi ro.
Đánh giá, dò quét rủi ro ATTT (assessment role)
- Xem danh mục tác vụ và kết quả dò quét xác định rủi ro. - Xem chi tiết thông tin tác vụ dò quét xác định rủi ro. - Tạo mới tác vụ dò quét xác định rủi ro.
- Cập nhật tác vụ dò quét xác định rủi ro do người dùng đó tạo ra. - Xoá tác vụ dò quét xác định rủi ro do người dùng đó tạo ra. - Khởi động tiến trình dò quét rủi ro tác vụ người dùng đó tạo ra. - Tạm dừng tiến trình đang dò quét rủi ro do người dùng đã tạo ra. - Kết thúc tiến trình đang dò quét rủi ro tác vụ người dùng đã tạo ra. - Tạo mới lịch thi hành tác vụ đánh giá rủi ro.
- Cập nhật lịch thi hành tác vụ đánh giá rủi ro do người dùng đó đã tạo ra.
- Hiển thị chi tiết lịch thi hành tác vụ đánh giá rủi ro do người dùng đó đã tạo ra.
- Hiển thị danh mục lịch thi hành tác vụ đánh giá rủi ro do người dùng đó đã tạo ra.
- Chạy lịch thi hành tác vụ dò quét đánh giá rủi ro do người dùng đó đã tạo ra.
Quản trị (admin)
- Xem danh mục tác vụ và kết quả tổng thể dò quét xác định rủi ro. - Xem chi tiết thông tin tác vụ dò quét xác định rủi ro hệ thống. - Tạo mới tác vụ dò quét xác định rủi ro trong các hệ thống. - Cập nhật tác vụ dò quét xác định rủi ro trong các hệ thống. - Xoá tác vụ dò quét xác định rủi ro trong các hệ thống. - Khởi động tiến trình dò quét rủi ro trong tổ chức đã tạo ra. - Tạm dừng tiến trình đang dò quét rủi ro.
- Kết thúc tiến trình đang dò quét rủi ro. - Tạo mới lịch thi hành tác vụ đánh giá rủi ro. - Cập nhật lịch hành tác vụ đánh giá rủi ro. - Xoá lịch hành tác vụ đánh giá rủi ro.
- Hiển thị chi tiết lịch thi hành tác vụ đánh giá rủi ro. - Hiển thị danh mục lịch thi hành tác vụ đánh giá rủi ro. - Chạy lịch thi hành tác vụ dò quét đánh giá rủi ro. Bảng 3.1 - Bảng các ca sử dụng mô-đun quản lý tác vụ
Biểu đồ tuần tự:
Để thể hiện trình tự sự kiện các ca sử dụng, chung tôi sử dụng biểu đồ tuần tự như hình 3.8. Trong đó, back-end dùng để chỉ nền tảng hệ thống còn front-end dùng để chỉ giao diện ứng dụng web, người dùng dùng để thao tác. Số lượng ca sử dụng khá nhiều, tương tác người dùng tương đối giống nhau nên chúng tôi chỉ mô tả 2 ca sử dụng để thể hiện cho biểu đồ dưới đây. Trong đó thể hiện hai ca sử dụng này là: Tạo mới tác vụ dò quét rủi ro và Khởi động tiến trình dò quét rủi ro.
Chương 4: Thực nghiệm và đánh giá
Hình 3.8 - Biểu đồ tuần tự minh hoạ chức năng quản lý tác vụ
Quản lý danh mục tác vụ dò quét rủi ro: Được chúng tôi cung cấp các hàm chức năng liên quan tới: Thêm mới, cập nhật, xóa, hiển thị với các ca sử dụng đã nêu ở trên.
Lược đồ cơ sở dữ liệu:
Bảng sau minh họa chi tiết các thuộc tính cho tác vụ dò quét rủi ro:
Column Type Constraints
Id Integer PrimaryKey Uuid Text Owner Integer Name Text Hidden Integer Comment Text Run_status Integer Start_time Integer
End_time Integer Config Integer Target Integer Schedule Integer Schedule_next_time Integer Schedule_periods Integer Scanner Integer Config_location Integer Target_location Integer Schedule_location Integer Scanner_location Integer Upload_result_count Integer Hosts_ordering Text Alterable Integer Creation_time Integer Modification_time Integer Scanner Text
Bảng 3.2 - Lược đồ cơ sở dữ liệu
Các hàm chức năng dùng cho quản lý danh mục các tác vụ dò quét
Chương 4: Thực nghiệm và đánh giá
Ca sử dụng Tạo mới tác vụ xác định rủi ro:
STT Mô tả Diễn giải
1 Mô tả tóm tắt Cho phép người dùng có đủ vai trò và quyền thực hiện nhiệm vụ tạo mới tác vụ dò quét để tiến hành đánh giá rủi ro ATTT trong một hệ thống
2 Luồng sự kiện o Luồng cơ bản:
▪ Ca sử dụng bắt đầu khi người dùng chọn chức năng tạo mới tác vụ xác định rủi ro ATTT.
▪ Hệ thống hiển thị giao diện cho phép người dùng nhập các thuộc tính liên
quan đến tác vụ dò quét xác định rủi ro ATTT. Cụ thể gồm tên tác vụ; địa chỉ IP hoặc tên (hostname) của hệ thống cần đánh giá; thông tin mô tả thêm.
▪ Hệ thống hiển thị thông báo kết quả tạo mới tác vụ.
o Luồng thay thế:
▪ Hệ thống thông báo cho người dùng khi có lỗi xảy ra trong quá trình thực hiện.
3 Yêu cầu đặc biệt Người dùng có vai trò và quyền tạo mới tác vụ dò quét (có vai trò từ “Đánh giá” trở lên).
4 Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
5 Hậu điều kiện Không
Bảng 3.3 - Ca sử dụng Tạo mới tác vụ xác định rủi ro
Ca sử dụng Hiển thị danh sách tác vụ dò quét xác định rủi ro:
STT Mô tả Diễn giải
1 Mô tả tóm tắt Cho phép người dùng có đủ vai trò và quyền thực hiện nhiệm vụ hiển thị toàn bộ danh mục tác vụ dò quét trong một hệ thống
2 Luồng sự kiện o Luồng cơ bản:
▪ Ca sử dụng bắt đầu khi người dùng chọn chức năng hiển thị danh mục.
▪ Hệ thống hiển thị giao diện danh mục các tác vụ dò quét.
o Luồng thay thế:
▪ Hệ thống thông báo cho người dùng khi có lỗi xảy ra trong quá trình thực hiện.
3 Yêu cầu đặc biệt Người dùng có vai trò và quyền tạo mới tác vụ dò quét (có vai trò từ “Quan sát” trở lên).
4 Tiền điều kiện Người dùng đã đăng nhập vào hệ thống 5 Hậu điều kiện Không
Bảng 3.4 - Ca sử dụng hiển thị danh sách tác vụ dò quét xác định rủi ro
Ca sử dụng Cập nhật tác vụ dò quét xác định rủi ro:
STT Mô tả Diễn giải
1 Mô tả tóm tắt Cho phép người dùng có đủ vai trò và quyền thực hiện cập nhật tác vụ đánh giá rủi ro trong một hệ thống 2 Luồng sự kiện o Luồng cơ bản:
▪ Ca sử dụng bắt đầu khi người dùng chọn chức năng cập nhật tác vụ.
▪ Hệ thống hiển thị giao diện với các thông tin chi tiết. Người dùng có thể cập nhật các thông tin liên quan đến tác vụ.
▪ Hệ thống thông báo kết quả cập nhật. o Luồng thay thế:
▪ Hệ thống thông báo cho người dùng khi có lỗi xảy ra trong quá trình thực hiện.
3 Yêu cầu đặc biệt Người dùng có vai trò và quyền tạo mới tác vụ dò quét (có vai trò từ “Quản trị” trở lên, hoặc người tạo tác vụ có vai trò “Đánh giá”).
4 Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
5 Hậu điều kiện Không
Bảng 3.5 - Ca sử dụng Cập nhật tác vụ dò quét xác định rủi ro
Ca sử dụng Xóa tác vụ dò quét rủi ro:
STT Mô tả Diễn giải
1 Mô tả tóm tắt Cho phép người dùng có đủ vai trò và quyền thực hiện xóa tác vụ đánh giá rủi ro trong một hệ thống
Chương 4: Thực nghiệm và đánh giá
▪ Ca sử dụng bắt đầu khi người dùng chọn chức năng xóa tác vụ.
▪ Hệ thống thông báo kết quả cập nhật. o Luồng thay thế:
▪ Hệ thống thông báo cho người dùng khi có lỗi xảy ra trong quá trình thực hiện.
3 Yêu cầu đặc biệt Người dùng có vai trò và quyền tạo mới tác vụ dò quét (có vai trò từ “Quản trị” trở lên, hoặc người tạo tác vụ có vai trò “Đánh giá”).
4 Tiền điều kiện Người dùng đã đăng nhập vào hệ thống 5 Hậu điều kiện Không
Bảng 3.6 - Ca sử dụng Xóa tác vụ dò quét rủi ro
Các chức năng Quản lý tiến trình dò quét xác định rủi ro ATTT: Chi tiết dược minh hòa các hàm như hình dưới đây:
Hình 3.10 - Các chức năng Quản lý tác vụ dò quét xác định rủi ro ATTT
Ca sử dụng Khởi động tiến trình dò quét rủi ro trong hệ thống:
STT Mô tả Diễn giải
1 Mô tả tóm tắt Cho phép người dùng có đủ vai trò và quyền khởi động tiến trình dò quét đánh giá rủi ro ATTT trong một hệ thống
2 Luồng sự kiện o Luồng cơ bản:
▪ Ca sử dụng bắt đầu khi người dùng chọn chức năng khởi động thi hành tác vụ. ▪ Hệ thống hiển thị trạng thái đang thi hành
o Luồng thay thế:
▪ Hệ thống thông báo cho người dùng khi có lỗi xảy ra trong quá trình thực hiện.
3 Yêu cầu đặc biệt Người dùng có vai trò và quyền tạo mới tác vụ dò quét (có vai trò từ “Quản trị” trở lên, hoặc người tạo ra tác vụ có vai trò “Đánh giá”).
4 Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
5 Hậu điều kiện Không
Bảng 3.7 - Ca sử dụng Khởi động tiến trình dò quét rủi ro trong hệ thống
Ca sử dụng Tạm dừng tiến trình dò quét rủi ro trong hệ thống:
STT Mô tả Diễn giải
1 Mô tả tóm tắt Cho phép người dùng có đủ vai trò và quyền tạm dừng tiến trình dò quét đánh giá rủi ro ATTT trong một hệ thống
2 Luồng sự kiện o Luồng cơ bản:
▪ Ca sử dụng bắt đầu khi người dùng chọn chức năng tạm dừng thi hành tác vụ.
▪ Hệ thống hiển thị đã tạm dừng thi hành tác vụ dò quét rủi ro ATTT hệ thống.
o Luồng thay thế:
▪ Hệ thống thông báo cho người dùng khi có lỗi xảy ra trong quá trình thực hiện.
3 Yêu cầu đặc biệt Người dùng có vai trò và quyền tạo mới tác vụ dò quét