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