Lựa chọn giải pháp

Một phần của tài liệu NGHIÊN cứu PHÁT TRIỂN GIẢI PHÁP dò QUÉT lỗ HỔNG TRONG các hệ THỐNG THÔNG TIN (Trang 48)

Hiện tại Nessus đang được đánh giá là công cụ mạnh nhất, là một nhánh của Nessus nên OpenVAS luôn được đánh giá rất cao. Trong khi Nessus đang phát triển theo hướng cung cấp phần mềm thương mại, mặc dù có phiên bản cung cấp cho người dùng cá nhân, nhưng các tính năng bị hạn chế.

Đối với Metaspoit Framework có một số nhược điểm như: Khó tiếp cận đối với người mới bắt đầu. Quy mô đồ sộ về tài liệu đòi hỏi người sử dụng phải kiên trì để có thể sử dụng thành thào công cụ này. Để phát triển và khai thác các tính năng của framework đòi hỏi có kiến thức sâu rộng để có thể tùy biến các mô-đun khai thác, vì nhiều khi không có sẵn.

Lý do tiếp nữa là OpenVAS là mã nguồn mở nên hoàn toàn có khả năng tùy biến theo nhu cầu của dự án cần tích hợp các module khác nữa vào hệ thống. Việc lựa chọn các giải

Chương 2: Giải pháp phân tích, đánh giá rủi ro an toàn thông tin

pháp mã nguồn đóng sẽ làm cho khả năng tích hợp các chức năng mới, module mới là rất khó khả thi.

Lý do tiếp theo là mức độ cập nhật của dự án rất là cao, theo đánh giá của tổ chức an toàn https://linuxsecurity.expert/tools/openvas/ thì OpenVAS có độ cập nhật là 97% xấp xỉ mức cao nhất là 100%, đảm bảo mọi lỗ hổng bảo mật sẽ được cập nhật.

Một lý do nữa là giấy phép phát triển của OpenVAS là theo GPL nên hoàn toàn hợp lệ để có thể tuỳ biến, tích hợp trong phần mềm vScanner. Trong phạm vi luân văn, chúng tôi sử dụng công cụ Openvas được tích hợp trong vScanner đảm nhiệm chức năng của

HostScanner.

2.6. Tổng kết chương

Trong chương này chúng tôi đã đưa thực trạng hiện nay về vấn đề rủi ro trong đảm bảo an toàn thông tin của các tổ chức, đơn vị. Từ đó đưa ra được hướng đi để giải quyết bài toàn đặt ra. Với phạm vi đánh giá rủi ro về an toàn thông tin là rất rộng, do đó chúng tôi tập trung vào xây dựng giải pháp dò quét lỗ hổng bảo mật các hệ thống thông tin của đơn vị, tổ chức. Trong phạm vi chương này, chúng tôi đề xuất xây dựng giải pháp phần mềm vScanner dùng cho dò quét từ xa các lỗ hổng của hệ thống, phục vụ cho việc đánh giá rủi ro về bảo mật an toàn thông tin.

Ngoài ra, chúng tôi cũng nghiên cứu các giải pháp đang có trên thì trường để có những đánh giá về ưu và nhước điểm của từng hệ thống, từ đó có thể xác định hướng lựa chọn nền tảng phù hợp và giải quyết được bài toán đặt ra.

Trên đây là tóm tắt các nội dung trong chương 2, các bước cụ thể cho việc xây dựng giải pháp vScanner sẽ được trình bày trong chương tiếp theo.

CHƯƠNG 3: XÂY DỰNG HỆ THỐNG ĐÁNH GIÁ, DÒ QUYÉT LỖ HỔNG 3.1. Xây dựng hệ thống

3.1.1. Môi trường phát triển

Quá trình phối hợp, xây dựng phần mềm được triển khai trên bộ công cụ phát triển phần mềm Visual Studio Code phiên bản 1.40.0 với ngôn ngữ golang (được sử dụng trong phần back-end) và khung lập trình vue.js (được sử dụng trong phần front-end kết hợp với html, css, javascript).

3.1.2. Cài đặt thư viện nền tảng

Nhóm phát triển sử dụng các phần mềm: gvm_libs, openvas, gvmd đi cùng các gói cần thiết để dựng khung hệ thống back-end. Việc cài đặt các thư viện này được minh hoạ như dưới đây:

apt install -yq --no-install-recommends \ bison \ cmake \ pkg-config \ libglib2.0-dev \ libgpgme-dev \ libgnutls28-dev \ uuid-dev \ libssh-gcrypt-dev \ libhiredis-dev \ gcc \ gettext \ git \ libpcap-dev \ libksba-dev \ libsnmp-dev \ libgcrypt20-dev \ libpq-dev \ postgresql-server-dev-all \ libical-dev \ libmicrohttpd-dev \

Chương 4: Thực nghiệm và đánh giá libxml2-dev \ nodejs \ python-polib \ yarn && \ doxygen && \ uuid-dev Cài đặt gvm_libs:

Curl -o "${gvm_libs_name}" -L "https://github.com/greenbone/openvass canner/archive/${gvm_libs_name}"

echo "Building gvm libs" cd ${DIR} && \

tar -xvf ${gvm_libs} && \ cd gvm-libs* && \

mkdir build && \ cd build && \

cmake ${cmake_build_params} .. && \ make && \

make DESTDIR=${install_dir} install && \ make install

Cài đặt bộ biên dịch các mẫu thử lỗ hổng NVTs (NASL):

curl -o "${openvas_name}" -L "https://github.com/greenbone/openvas- scanner/archive/${openvas_scanner}"

cd ${DIR} && \

tar -xvf ${openvas_scanner} && \ cd openvas-* && \

mkdir build && \ cd build && \

cmake ${cmake_build_params} .. && \ make && \

make DESTDIR=${install_dir} install

Cài đặt thư viện đảm nhiệm chức năng kết nối hệ quản trị CSDL PostgreSQL với vScanner:

tar -xvf ${gvmd} && \ cd gvmd-* && \

mkdir build && \ cd build && \

cmake ${cmake_build_params} -DBACKEND=POSTGRESQL .. && \ make && \

make DESTDIR=${install_dir} install

Đồng bộ hoá các bộ NVT, CERT-DATA, SCAP-DATA

greenbone-nvt-sync && \ sleep ${wait_sync}

greenbone-certdata-sync && \ sleep ${wait_sync}

greenbone-scapdata-sync

Khởi chạy postgresql

/etc/init.d/postgresql start && \

pg_isready -h localhost -p 5432 && \

while [ $? -ne 0 ]; do sleep 5; pg_isready -h localhost -p 5432; done && \ gvm-portnames-update service-names-port-numbers.xml && \

rm service-names-port-numbers.xml && \ /etc/init.d/postgresql stop

Cài đặt thư viện OSPD:

Để hỗ trợ việc tích hợp được dễ dàng, hãng Greenbone đã phát triển sẵn một thư viện thực hiện các thao tác giao tiếp cơ bản, để giúp người lập trình khi tích hợp chỉ cần cụ thể hóa các thao tác trên cho phù hợp.

Thư viện này được phát triển trên ngôn ngữ lập trình Python tại địa chỉ github https://github.com/greenbone/ospd/blob/master/doc/INSTALL-ospd-scanner.md

Mỗi một module cần tích hợp sẽ cần kế thừa lớp OSPD này sau đó chỉnh sửa các API tương ứng cho phù hợp với nhu cầu là hệ thống đã sẵn sàng để tích hợp. Do vậy công việc đầu tiên là cần phải cài đặt thư viện này trước khi xây dựng các bộ scanner cũng như tiến hành tích hợp. Các bước thực hiện như sau:

- OSPD yêu cầu phiên bản Python là >= 3.5, do đó cần phải cài Python trước khi cài thư viện. Có thể kiểm tra phiên bản của Python 3 bằng lệnh

Chương 4: Thực nghiệm và đánh giá

root@ubuntu2004:~# python3 –version

Python 3.8.10

Hình 3.1 - Cài đặt Python

- Tiếp đến kiểm tra phiên bản của tiện ích cài đặt các module của Python.

root@ubuntu2004:~# pip3 –version

pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)

Hình 3.2 - Cài đặt pip3

- Cài thư viện phụ thuộc: OSPD phụ thuộc vào các thư viện sau python3-paramiko python3-lxml python3-defusedxml, nên cần phải cài đặt nó trước khi tiếp tục.

root@ubuntu2004:~# apt-get install python3-paramiko python3-lxml python3- defusedxml

- Tạo môi trường ảo module này. Đây là điều khuyến cáo nên làm vì nó đảm bảo cho việc xảy ra sự cố thì cũng không ảnh hưởng đến các ứng dụng khác đang dùng Python. Ngoài ra việc tạo môi trường ảo này còn đảm bảo cho việc cập nhật thay đổi cũng không ảnh hưởng đến các ứng dụng khác, đặc biệt trong trường hợp có sự xung đột về thư viện.

sudo apt-get install python3-pip sudo pip3 install virtualenv

Khi đó công cụ tạo môi trường ảo được lưu vào thư mục ./local/bin của thư mục hiện thời khi gõ lệnh. Để có thể sử dụng được tiện lợi thì nên đưa nó vào thư mục chứa các file nhị phân chuẩn /usr/bin của Linux

cp ./local/bin/virtualenv /usr/bin

Tạo môi trường ảo cho OSPD trong thư mục /usr/local

cd /usr/local

virtualenv ospd_scanner

Khi đó lệnh sẽ tạo một thư mục có tên là ospd_scanner nằm trong thư mục /usr/local và đây là thư mục chứa đầy đủ môi trường Python độc lập với môi trường Python của hệ thống.

/usr/local/ospd-scanner$ ls bin certs include lib

Khi liệt kê nội dung của thư mục này thì sẽ thấy các thư mục chứa các file nhị phân là bin, thư viện là lib. Để sử dụng môi trường ảo này, cách đơn giản nhất là sử dụng trực tiếp các lệnh từ thư mục bin này.

Hình 3.4 - Cài đặt ospd_scanner - Cài đặt module OSPD

Chương 4: Thực nghiệm và đánh giá

Trong thư mục hiện tại (nên là thư mục home của tài khoản root), tải mã nguồn của OSPD về:

#git clone https://github.com/greenbone/ospd-ikeprobe.git #tar zcf ospd-ikeprobe.tar.gz ospd-ikeprobe

#/usr/local/ospd-scanner/bin/pip3 install ospd-ikeprobe.tar.gz

Hình 3.5 - Cài đặt ospd-ikeprobe

Khi đó thư viện OSDP sẽ được cài đặt vào thư mục lib của môi trường ảo trên, cụ thể nó được cài vào thư mục /usr/local/ospd_scanner/lib/python3.8/site-packages, với 2 thư mục con là ospd, và ospd-1.3.2.dist-info.xs

3.2. Xây dựng các mô-đun với các thư viện nền tảng hệ thống 3.2.1. Mô-đun phát hiện nguy cơ, lỗ hổng dựa trên CSDL mẫu thử 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

Một phần của tài liệu NGHIÊN cứu PHÁT TRIỂN GIẢI PHÁP dò QUÉT lỗ HỔNG TRONG các hệ THỐNG THÔNG TIN (Trang 48)

Tải bản đầy đủ (PDF)

(81 trang)