Thứ tư, 01/04/2020 | 00:00 GMT+7

Cách sử dụng Vuls làm máy quét lỗ hổng bảo mật trên Ubuntu 18.04

Vuls là một trình quét lỗ hổng open-souce , không cần tác nhân được viết bằng Go . Nó tự động hóa việc phân tích lỗ hổng bảo mật của phần mềm được cài đặt trên hệ thống, đây có thể là một nhiệm vụ nặng nề đối với các administrator hệ thống phải thực hiện thủ công trong môi trường production . Vuls sử dụng nhiều database về lỗ hổng bảo mật nổi tiếng, chẳng hạn như Database lỗ hổng quốc gia (NVD). Tiết kiệm tài nguyên, Vuls có khả năng quét nhiều hệ thống cùng một lúc và gửi báo cáo qua email hoặc Slack. Nó có ba chế độ quét ( nhanh , gốc nhanhsâu ), bạn có thể chọn tùy theo tình huống.

Vuls không phải là một máy quét bảo mật CNTT rộng rãi; ví dụ, nó không giám sát lưu lượng mạng hoặc bảo vệ khỏi các cuộc tấn công đăng nhập brute-force. Tuy nhiên, Vuls cung cấp một cách tự động báo cáo lỗ hổng cho các gói Linux. Khi database Vuls sử dụng được thông báo về việc sửa chữa một số lỗ hổng nhất định, Vuls cũng sẽ đưa thông tin khắc phục này vào báo cáo của bạn . Khi tạo báo cáo, Vuls ưu tiên các lỗ hổng bảo mật khẩn cấp nhất bằng cách sử dụng hệ thống xếp hạng được cài đặt từ database .

Trong hướng dẫn này, bạn sẽ triển khai Vuls tới server Ubuntu 18.04. Điều này bao gồm xây dựng Vuls và các phụ thuộc của nó từ mã nguồn, cấu hình quét và báo cáo cho Slack, và tùy chọn kết nối nó với các máy mục tiêu để cho phép quét từ xa. Cuối cùng, bạn sẽ có một hệ thống báo cáo lỗ hổng bảo mật tự động để cảnh báo bạn về các lỗ hổng bảo mật mà không cần phải kiểm tra thủ công.

Yêu cầu

Trước khi bắt đầu hướng dẫn này, bạn cần:

  • Server có RAM ít nhất 2 GB chạy Ubuntu 18.04 với quyền truy cập root và account phụ, không phải root. Bạn có thể cài đặt điều này theo hướng dẫn cài đặt server ban đầu này . Đối với hướng dẫn này, user không phải root là sammy .
  • (Tùy chọn) Nhiều server đang chạy (tốt nhất là) Ubuntu 18.04 với quyền truy cập root và account phụ, không phải root, nếu bạn muốn cài đặt Vuls để quét chúng từ xa. Trong hướng dẫn này, account phụ là sammy-shark .

Bước 1 - Cài đặt phụ thuộc

Trong phần này, bạn sẽ tạo một folder để lưu trữ dữ liệu Vuls, cài đặt version mới nhất của ngôn ngữ lập trình Go và cài đặt các gói khác mà Vuls và các gói phụ thuộc của nó yêu cầu.

Đối với hướng dẫn này, bạn sẽ lưu trữ tất cả dữ liệu liên quan đến Vuls trong folder /usr/share/ vuls-data . Tạo nó bằng cách chạy lệnh sau:

  • sudo mkdir /usr/share/vuls-data

Để làm cho nó có thể truy cập sammy , hãy chạy lệnh sau:

  • sudo chown -R sammy /usr/share/vuls-data

Đến đây bạn đã tạo folder vuls-data , đây sẽ là không gian làm việc của bạn. Trước khi bạn tiếp tục cài đặt các gói được yêu cầu, trước tiên hãy cập nhật cache ẩn của trình quản lý gói:

  • sudo apt update

Để download và biên dịch các phần phụ thuộc, bạn sẽ cài đặt git , gcc , make , sqlite , debian-goodieswget .

sqlite là một hệ thống database mà bạn sẽ sử dụng ở đây để lưu trữ thông tin về lỗ hổng bảo mật. debian-goodies chứa tiện ích checkrestart , tiện ích này cung cấp thông tin về những gói nào có thể và cần được khởi động lại vào bất kỳ thời điểm nào.

Bạn có thể cài đặt tất cả chúng trong một lệnh:

  • sudo apt install sqlite git debian-goodies gcc make wget

Đến đây bạn đã cài đặt các gói cần thiết. Tiếp theo, cài đặt Go bằng trình quản lý gói snap bằng cách chạy lệnh sau:

  • sudo snap install go --classic

Bạn sử dụng snap để cài đặt Go vì nó cài đặt version mới nhất của ngôn ngữ, không giống như apt , có thể cài đặt version cũ hơn. Bạn không nên làm việc với version cũ hơn và có thể khiến bạn không thể hoàn thành hướng dẫn này.

Để hoạt động, Go yêu cầu một số biến môi trường mà bạn sẽ cài đặt : GOPATHPATH . GOPATH chỉ định folder làm việc cho Go và PATH (chứa các folder trong đó các chương trình được đặt) phải được mở rộng để thông báo cho hệ thống biết nơi tự tìm Go.

Các biến môi trường này cần được đặt mỗi khi user đăng nhập. Để tự động này, bạn sẽ tạo ra một file thực thi mới, được gọi là go-env.sh , dưới /etc/profile.d . Điều này sẽ dẫn đến việc folder thực thi mỗi khi user đăng nhập.

Tạo go-env.sh bằng editor của bạn:

  • sudo nano /etc/profile.d/go-env.sh

Thêm các lệnh sau vào file :

/etc/profile.d/go-env.sh
export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin:/snap/bin 

Lệnh export đặt biến môi trường đã cho thành giá trị mong muốn; ở đây bạn sử dụng nó để điền GOPATHPATH với các giá trị thích hợp.

Lưu và đóng file .

Hiện tại, go-env.sh không thực thi được. Để khắc phục điều này, hãy đánh dấu nó là thực thi bằng cách chạy lệnh sau:

  • sudo chmod +x /etc/profile.d/go-env.sh

Để tránh phải đăng nhập lại, bạn có thể reload go-env.sh bằng lệnh:

  • source /etc/profile.d/go-env.sh

Lệnh source reload file đã cho vào shell hiện tại trong khi vẫn giữ nguyên trạng thái của nó.

Trong phần này, bạn đã cài đặt ngôn ngữ Go, cài đặt các biến môi trường của nó và cài đặt các gói mà bạn sẽ yêu cầu sau này. Trong các bước tiếp theo, bạn sẽ download và biên dịch các chương trình Go mà Vuls yêu cầu. Các chương trình đó là go-cve-dictionarygoval-dictionary , được Vuls sử dụng để truy vấn database lỗ hổng bảo mật.

Bước 2 - Cài đặt và chạy go-cve-Dictionary

Trong phần này, bạn sẽ download và biên dịch go-cve-dictionary , một gói Go cung cấp quyền truy cập vào NVD ( Database về lỗ hổng quốc gia). Sau đó, bạn sẽ chạy nó và tìm nạp dữ liệu về lỗ hổng bảo mật để Vuls sử dụng. NVD là repository các lỗ hổng an ninh mạng được báo cáo công khai của chính phủ USA , chứa các ID lỗ hổng (CVE - Common Vulnerabilities and Exposures), tóm tắt và phân tích tác động và có sẵn ở định dạng máy có thể đọc được.

Go lưu trữ các gói dưới $GOPATH/src/ . Bạn có thể mở rộng điều này hơn nữa với việc sử dụng các folder con để ghi chú nguồn root . Ví dụ: các gói từ GitHub, do user tạo, example-user sẽ được lưu trữ dưới $GOPATH/src/github.com/ example-user .

Trước tiên, bạn sẽ cài đặt go-cve-dictionary , do kotakanbe tạo ra, bằng cách sao chép gói Go từ GitHub và biên dịch nó sau đó.

Bắt đầu bằng cách tạo một folder để lưu trữ nó, theo đường dẫn ví dụ:

  • mkdir -p $GOPATH/src/github.com/kotakanbe

Điều hướng đến nó bằng lệnh:

  • cd $GOPATH/src/github.com/kotakanbe

Đến đây bạn sẽ sao chép go-cve-dictionary từ GitHub vào server của bạn bằng lệnh:

  • git clone https://github.com/kotakanbe/go-cve-dictionary.git

Sau đó, chuyển đến root gói:

  • cd go-cve-dictionary

Cuối cùng, biên dịch và cài đặt nó bằng cách chạy lệnh sau:

  • make install

Lưu ý lệnh này có thể mất một chút thời gian để hoàn thành. Để làm cho nó có sẵn trên toàn hệ thống, hãy sao chép nó vào /usr/local/bin :

  • sudo cp $GOPATH/bin/go-cve-dictionary /usr/local/bin

go-cve-dictionary yêu cầu quyền truy cập vào folder xuất log và theo mặc định, nó là /var/log/vuls . Tạo nó bằng lệnh:

  • sudo mkdir /var/log/vuls

Hiện tại, mọi người đều có thể đọc được folder log . Hạn chế quyền truy cập đối với user hiện tại bằng lệnh sau:

  • sudo chmod 700 /var/log/vuls

Đặt cờ quyền thành 700 hạn chế quyền truy cập chỉ chủ sở hữu.

Để làm cho nó có thể truy cập được cho sammy hoặc user khác, hãy chạy lệnh sau:

  • sudo chown -R sammy /var/log/vuls

Bây giờ, bạn sẽ tìm nạp dữ liệu về lỗ hổng bảo mật từ NVD và lưu trữ nó trong không gian làm việc Vuls của bạn ( /usr/share/ vuls-data ):

  • for i in `seq 2002 $(date +"%Y")`; do sudo go-cve-dictionary fetchnvd -dbpath /usr/share/vuls-data/cve.sqlite3 -years $i; done

Lệnh này lặp lại từ năm 2002 đến năm hiện tại ( seq 2002 $(date +"%Y") ) và gọi go-cve-dictionary fetchnvd để tìm nạp dữ liệu NVD cho năm hiện tại (vòng lặp) bằng cách truyền -years $i . Sau đó, nó lưu trữ thông tin này trong database theo /usr/share/ vuls-data .

Lưu ý: Lệnh này sẽ mất nhiều thời gian để hoàn thành và sẽ không thành công nếu server của bạn có RAM dưới 2 GB.

Trong bước này, bạn đã download và cài đặt go-cve-dictionary , đồng thời tìm nạp dữ liệu NVD cho Vuls để sử dụng sau này. Trong phần tiếp theo, bạn sẽ download và cài đặt goval-dictionary và tìm nạp dữ liệu OVAL cho Ubuntu.

Bước 3 - Cài đặt và chạy goval-Dictionary

Trong phần này, bạn sẽ download và biên dịch goval-dictionary , một gói Go cung cấp quyền truy cập vào database OVAL cho Ubuntu. Sau đó, bạn sẽ chạy nó và tìm nạp dữ liệu về lỗ hổng bảo mật để Vuls sử dụng. OVAL là viết tắt của Open Vulnerability and Assessment Language, là một ngôn ngữ mở được sử dụng để thể hiện các kiểm tra nhằm xác định liệu các lỗ hổng phần mềm có tồn tại trên một hệ thống nhất định hay không.

Cùng một tác giả, kotakanbe , viết goval-dictionary , và bạn sẽ lưu nó bên cạnh gói trước.

Điều hướng đến folder $GOPATH/src/github.com/kotakanbe :

  • cd $GOPATH/src/github.com/kotakanbe

Sao chép gói từ GitHub bằng cách chạy lệnh sau:

  • git clone https://github.com/kotakanbe/goval-dictionary.git

Nhập folder gói:

  • cd goval-dictionary

Biên dịch và cài đặt nó với make :

  • make install

Sao chép nó vào /usr/local/bin để làm cho nó có thể truy cập được trên phạm vi global :

  • sudo cp $GOPATH/bin/goval-dictionary /usr/local/bin

Sau đó, tìm nạp dữ liệu OVAL cho Ubuntu 18.x bằng cách chạy lệnh sau:

  • sudo goval-dictionary fetch-ubuntu -dbpath=/usr/share/vuls-data/oval.sqlite3 18

Trong bước này, bạn đã download và cài đặt goval-dictionary , đồng thời tìm nạp dữ liệu OVAL cho Ubuntu 18.x. Trong bước tiếp theo, bạn sẽ download và cài đặt gost và tìm nạp dữ liệu trình theo dõi bảo mật Debian.

Bước 4 - Cài đặt và chạy gost

Trong phần này, bạn sẽ download và biên dịch gost , một gói Go cung cấp quyền truy cập vào trình theo dõi lỗi bảo mật Debian. Sau đó, bạn sẽ chạy nó và tìm nạp dữ liệu về lỗ hổng bảo mật để Vuls sử dụng. Trình theo dõi bảo mật Debian thu thập tất cả thông tin về tình trạng lỗ hổng của các gói được phân phối với Debian. Dữ liệu từ trình theo dõi này có thể hữu ích vì Ubuntu, là một bản phân phối, dựa trên Debian.

Bạn sẽ lưu gói này trong một folder mới. Tạo nó bằng cách chạy lệnh sau:

  • sudo mkdir -p $GOPATH/src/github.com/knqyf263

Điều hướng đến folder $GOPATH/src/github.com/knqyf263 mà bạn vừa tạo:

  • cd $GOPATH/src/github.com/knqyf263

Sao chép gói từ GitHub bằng lệnh:

  • sudo git clone https://github.com/knqyf263/gost.git

Khi nó kết thúc, hãy nhập folder gói:

  • cd gost

Biên dịch và cài đặt nó với make :

  • make install

Sao chép nó vào /usr/local/bin để làm cho nó có thể truy cập được trên phạm vi global :

  • sudo cp $GOPATH/bin/gost /usr/local/bin

Sau đó, softlink database của nó vào folder /usr/share/vuls-data , để sau này Vuls có thể tìm thấy nó:

  • ln -s $GOPATH/src/github.com/knqyf263/gost/gost.sqlite3 /usr/share/vuls-data/gost.sqlite3

Tạo folder file log cho gost :

  • sudo mkdir /var/log/gost

Hạn chế quyền truy cập đối với user hiện tại bằng lệnh sau:

  • sudo chmod 700 /var/log/gost

Như đã lưu ý trước đây, việc đặt cờ cho phép thành 700 hạn chế quyền truy cập chỉ chủ sở hữu.

Để làm cho nó có thể truy cập được cho sammy hoặc user khác, hãy chạy lệnh sau:

  • sudo chown -R sammy /var/log/gost

Sau đó, tìm nạp dữ liệu trình theo dõi bảo mật Debian bằng lệnh:

  • gost fetch debian

Bạn sẽ thấy kết quả tương tự như sau:

Output
INFO[04-01|21:54:59] Initialize Database INFO[04-01|21:54:59] Opening DB. db=sqlite3 INFO[04-01|21:54:59] Migrating DB. db=sqlite3 INFO[04-01|21:54:59] Fetched all CVEs from Debian INFO[04-01|21:55:00] Fetched CVEs=2943 INFO[04-01|21:55:00] Insert Debian CVEs into DB db=sqlite3 26385 / 26385 [=========================================================================] 100.00% 9s

Trong bước này, bạn đã download và cài đặt gost và tìm nạp dữ liệu cho Debian. Trong bước tiếp theo, bạn sẽ download và cài đặt Vuls.

Bước 5 - Download và cấu hình Vuls

Với tất cả các phụ thuộc được cài đặt, bây giờ bạn sẽ download và biên dịch Vuls từ mã nguồn. Sau đó, bạn sẽ cấu hình nó để quét máy local .

Tạo một folder mới có chứa đường dẫn đến repository Vuls bằng lệnh sau:

  • mkdir -p $GOPATH/src/github.com/future-architect

Điều hướng đến nó:

  • cd $GOPATH/src/github.com/future-architect

Sao chép Vuls từ GitHub bằng cách chạy lệnh sau:

  • git clone https://github.com/future-architect/vuls.git

Nhập folder gói:

  • cd vuls

Biên dịch và cài đặt nó cùng một lúc bằng lệnh:

  • make install

Lưu ý có thể mất một khoảng thời gian để lệnh này hoàn thành.

Sao chép nó vào /usr/local/bin để làm cho nó có thể truy cập được trên phạm vi global :

  • sudo cp $GOPATH/bin/vuls /usr/local/bin

Bây giờ, bạn sẽ tạo một file cấu hình cho Vuls. Điều hướng trở lại /usr/share/ vuls-data :

  • cd /usr/share/vuls-data

Vuls lưu trữ cấu hình của nó trong một file TOML mà bạn sẽ gọi là config.toml . Tạo nó bằng editor của bạn:

  • sudo nano config.toml

Nhập cấu hình sau:

vuls-data / config.toml '> / usr / share / vuls-data /config.toml
[cveDict] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/cve.sqlite3"  [ovalDict] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/oval.sqlite3"  [gost] type = "sqlite3" SQLite3Path = "/usr/share/vuls-data/gost.sqlite3"  [servers]  [servers.localhost] host = "localhost" port = "local" scanMode = [ "fast" ] #scanMode = ["fast", "fast-root", "deep", "offline"] 

Hai phần đầu tiên của cấu hình này ( cveDictovalDict ) trỏ Vuls đến database lỗ hổng bảo mật mà bạn đã tạo trong hai bước cuối cùng. Phần tiếp theo ( servers ) đánh dấu sự bắt đầu của thông tin liên quan đến server . Các phần riêng biệt sẽ group thông tin về từng server . Server duy nhất mà Vuls sẽ quét với cấu hình được phác thảo này là server localhost ( localhost ).

Vuls cung cấp bốn chế độ quét:

  • Chế độ nhanh (mặc định): quét mà không có quyền root, không có phụ thuộc và rất nhẹ trên server đích.
  • Chế độ root nhanh : quét với các quyền root và có thể phát hiện các quy trình đã nâng cấp nhưng chưa khởi động lại.
  • Chế độ quét sâu : giống như chế độ root nhanh, nhưng kiểm tra các thay đổi, có thể dẫn đến tải cao trên server mục tiêu.
  • Chế độ offline : quét máy mà không cần truy cập internet và được dùng kết hợp với các chế độ khác.

Lưu và đóng file .

Để kiểm tra tính hợp lệ của file cấu hình, hãy chạy lệnh sau:

  • vuls configtest

Bạn sẽ thấy kết quả sau:

[Feb 27 19:36:42]  INFO [localhost] Validating config... [Feb 27 19:36:42]  INFO [localhost] Detecting Server/Container OS... [Feb 27 19:36:42]  INFO [localhost] Detecting OS of servers... [Feb 27 19:36:42]  INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04 [Feb 27 19:36:42]  INFO [localhost] Detecting OS of containers... [Feb 27 19:36:42]  INFO [localhost] Checking Scan Modes... [Feb 27 19:36:42]  INFO [localhost] Checking dependencies... [Feb 27 19:36:42]  INFO [localhost] Dependencies... Pass [Feb 27 19:36:42]  INFO [localhost] Checking sudo settings... [Feb 27 19:36:42]  INFO [localhost] sudo ... No need [Feb 27 19:36:42]  INFO [localhost] It can be scanned with fast scan mode even if warn or err messages are displayed due to lack of dependent packages or sudo settings in fast-root or deep scan mode [Feb 27 19:36:42]  INFO [localhost] Scannable servers are below... localhost 

Bạn đã nhập đúng cấu hình và Vuls đã phát hiện ra rằng nó có thể quét server local .

Bạn đã cài đặt và cấu hình Vuls để quét server local . Trong bước tiếp theo, bạn sẽ chạy quét local và xem báo cáo đã tạo.

Bước 6 - Chạy Quét local

Trong phần này, bạn sẽ chạy quét local và sau đó xem báo cáo lỗ hổng đã tạo. Bây giờ, bạn đã chỉ cấu hình server local mà Vuls đã phát hiện chính xác trong bước cuối cùng. Chế độ quét mặc định, nếu không được chỉ định rõ ràng, rất nhanh.

Để chạy quét, hãy thực hiện lệnh sau:

  • vuls scan

Bạn sẽ thấy kết quả tương tự như sau:

[Feb 27 19:44:12]  INFO [localhost] Start scanning [Feb 27 19:44:12]  INFO [localhost] config: /usr/share/vuls-data/config.toml [Feb 27 19:44:12]  INFO [localhost] Validating config... [Feb 27 19:44:12]  INFO [localhost] Detecting Server/Container OS... [Feb 27 19:44:12]  INFO [localhost] Detecting OS of servers... [Feb 27 19:44:12]  INFO [localhost] (1/1) Detected: localhost: ubuntu 18.04 [Feb 27 19:44:12]  INFO [localhost] Detecting OS of containers... [Feb 27 19:44:12]  INFO [localhost] Checking Scan Modes... [Feb 27 19:44:12]  INFO [localhost] Detecting Platforms... [Feb 27 19:44:12]  INFO [localhost] (1/1) localhost is running on other [Feb 27 19:44:12]  INFO [localhost] Scanning vulnerabilities... [Feb 27 19:44:12]  INFO [localhost] Scanning vulnerable OS packages... [Feb 27 19:44:12]  INFO [localhost] Scanning in fast mode   One Line Summary ================ localhost       ubuntu18.04     539 installed   To view the detail, vuls tui is useful. To send a report, run vuls report -h. 

Vuls đã ghi lại những gì nó đã làm trong quá trình này. Để xem báo cáo về các lỗ hổng đã được xác định, hãy chạy:

  • vuls tui

Vuls chia chế độ xem báo cáo thành bốn bảng:

  • Các máy đã quét: nằm ở phía trên bên trái, liệt kê các máy mà Vuls đã quét.
  • Tìm thấy lỗ hổng: nằm ngay bên phải danh sách máy, hiển thị lỗ hổng Vuls tìm thấy trong các gói đã cài đặt.
  • Thông tin chi tiết: chiếm phần bên trái của màn hình, hiển thị thông tin chi tiết về lỗ hổng, được lấy từ database .
  • Các gói bị ảnh hưởng: nằm bên phải thông tin chi tiết, hiển thị các version gói bị ảnh hưởng là gì và nếu có version cố định.

Chế độ xem báo cáo thay thế vuls

Bạn có thể di chuyển con trỏ qua các bảng bằng cách nhấn ENTER và chuyển bằng các mũi tên trên bàn phím.

Trong bước này, bạn đã chạy quét local và kiểm tra kết quả. Trong phần tùy chọn tiếp theo, bạn sẽ cấu hình Vuls để quét nhiều máy mục tiêu.

Bước 7 - (Tùy chọn) Cấu hình nhiều máy mục tiêu

Trong phần này, bạn sẽ cấu hình Vuls để quét nhiều máy mục tiêu. Điều này đòi hỏi phải cấu hình /etc/sudoers trên mục tiêu và cấu hình Vuls để quét mục tiêu.

Ở bước trước, bạn đã cấu hình Vuls để quét máy localhost ( localhost ). Bạn có thể thêm bao nhiêu server tùy thích, miễn là bạn có những điều sau:

  • IP của server mục tiêu
  • quyền truy cập root vào server đích
  • một account có sẵn trên server đích ( sammy-shark trong hướng dẫn này)

Bạn chỉ có thể sử dụng account user không phải root trên server đích để quét ở chế độ nhanh. Để cho phép quét ở chế độ root và sâu nhanh, bạn cần chỉnh sửa file /etc/sudoers trên (các) máy mục tiêu. Tệp sudoers kiểm soát user có thể chạy những lệnh nào và cả việc bạn có cần password cho các lệnh đã chỉ định hay không.

visudo là tiện ích để xác định các luật cho quyền truy cập và quyền truy cập quyền , bạn chỉ có thể chạy nó dưới dạng root . Vì tầm quan trọng của sudoers , file sẽ không thoát ra với lỗi mà không đưa ra cảnh báo.

Trên server mục tiêu, đăng nhập như là root và mở sudoers để chỉnh sửa bằng cách chạy visudo :

  • visudo

Thêm dòng này vào cuối file :

/ etc / sudoers
sammy-shark ALL=(ALL) NOPASSWD: /usr/bin/apt-get update, /usr/bin/stat *, /usr/sbin/checkrestart 

Dòng này hướng dẫn sudo cho phép user sammy-shark chạy apt-get update , checkrestart và mọi lệnh có sẵn từ stat mà không cần cung cấp password .

Lưu và đóng file . Nếu bạn mắc lỗi cú pháp trong quá trình này, visudo sẽ thông báo cho bạn và đề nghị chỉnh sửa lại hoặc thoát.

Lưu ý: Bằng cách cho phép user sammy-shark trong sudoers , bạn đang cho phép Vuls quét bằng chế độ root nhanhsâu . Nếu bạn cũng muốn cho phép các chế độ đó cho máy localhost ( localhost ), hãy chỉnh sửa sudoers trên localhost như hình trước.

Vuls sử dụng trình checkrestart để kiểm tra các gói được cập nhật nhưng yêu cầu khởi động lại. Để đảm bảo server đích có nó, hãy đăng nhập với quyền là user không phải root của bạn và cài đặt nó bằng cách chạy lệnh sau:

  • sudo apt install debian-goodies -y

Đó là tất cả những gì bạn cần làm trên server mục tiêu; bây giờ bạn có thể đăng xuất khỏi mục tiêu và đăng nhập lại vào server đầu tiên của bạn .

Để thêm một server mới để quét, hãy mở config.toml và thêm các dòng sau vào dấu [servers] :

/usr/share/vuls-data/config.toml
[servers.target_name] host = "target_ip" port = "22" user = "account_username" keyPath = "account_rsa_key" scanMode = [ "deep" ] # "fast", "fast-root" or "deep" 

Các dòng trên dùng làm mẫu để thêm server mới. Hãy nhớ thay target_name bằng tên mong muốn, target_ip bằng IP của server đích, account_username bằng tên user và account_rsa_key bằng đường dẫn đến khóa RSA. Vuls không hỗ trợ xác thực password SSH, vì vậy việc chỉ định keyPath là cần thiết.

Lưu và đóng file .

Tiếp theo, đối với mỗi server mục tiêu mà bạn đã thêm, bạn sẽ xác nhận các khóa RSA trên máy local . Để làm điều này, bạn sẽ đăng nhập vào server mục tiêu từ server đầu tiên của bạn bằng khóa thích hợp, như sau:

  • ssh sammy-shark@target_ip -i account_rsa_key

Khi được hỏi bạn có muốn tiếp tục kết nối hay không, hãy nhập yes , sau đó đăng xuất bằng cách nhấn CTRL + D

Nếu bạn gặp lỗi về quyền file khóa quá mở, hãy đặt chúng thành 600 bằng cách chạy lệnh sau:

  • chmod 600 account_rsa_key

Đặt quyền thành 600 đảm bảo chỉ chủ sở hữu mới có thể đọc và ghi file khóa.

Để kiểm tra tính hợp lệ của cấu hình mới, hãy chạy lệnh sau:

  • vuls configtest

Sẽ không có kết quả từ lệnh này. Nếu có bất kỳ lỗi nào, hãy kiểm tra config.toml của bạn so với cấu hình trong hướng dẫn.

Trong bước này, bạn đã thêm nhiều server đích hơn vào cấu hình Vuls của bạn , do đó đánh dấu chúng để quét. Trong phần tiếp theo, bạn sẽ cấu hình Vuls để quét và gửi báo cáo định kỳ đến một không gian làm việc Slack đã cấu hình .

Bước 8 - Cấu hình Quét định kỳ và Báo cáo cho Slack

Trong phần này, bạn sẽ cấu hình Vuls để gửi báo cáo tới Slack và thực hiện cron việc cron để chạy quét Vuls định kỳ.

Để sử dụng tích hợp Slack, bạn cần có một webhook đến trên Slack cho không gian làm việc của bạn . Webhook đến là một cách đơn giản để ứng dụng cung cấp thông tin thời gian thực cho các ứng dụng khác. Trong trường hợp này, bạn sẽ cấu hình Vuls để báo cáo kênh Slack của bạn .

Nếu bạn chưa từng tạo webhook, trước tiên bạn cần tạo một ứng dụng cho không gian làm việc của bạn . Để làm như vậy, trước tiên hãy đăng nhập vào Slack và chuyển đến trang tạo ứng dụng . Chọn một tên mà bạn sẽ nhận ra, chọn không gian làm việc mong muốn và nhấp vào Tạo ứng dụng .

Bạn sẽ được chuyển hướng đến trang cài đặt cho ứng dụng mới. Nhấp vào Webhooks đến trên thanh chuyển bên trái.

Alt bên trái thanh  chuyển  "webhooks đến"

Bật webhooks bằng cách lật lựa chọn bên cạnh tiêu đề Kích hoạt webhooks đến .

Alt kích hoạt các móc web đến

Một phần mới bên dưới trang sẽ được khám phá. Cuộn xuống và nhấp vào nút Thêm Webhook mới vào không gian làm việc . Trên trang tiếp theo, chọn kênh bạn muốn gửi báo cáo đến và nhấp vào Ủy quyền .

Bạn sẽ được chuyển hướng trở lại trang cài đặt cho webhook và bạn sẽ thấy một webhook mới được liệt kê trong bảng. Nhấp vào Copy để sao chép nó vào clipboard và ghi chú lại để sử dụng sau này.

Sau đó, mở config.toml để chỉnh sửa:

  • sudo nano config.toml

Thêm các dòng sau:

/usr/share/vuls-data/config.toml
[slack] hookURL      = "your_hook_url" channel      = "#your_channel_name" authUser     = "your_username" #notifyUsers  = ["@username"] 

Thay thế your_hook_URL bằng URL webhook mà bạn đã lưu ý trước đó, your_username bằng tên user của user đã tạo web hook và your_channel_name bằng tên của kênh mong muốn. Lưu và đóng file .

Để kiểm tra tích hợp, bạn có thể tạo báo cáo bằng cách chạy vuls report , như sau:

  • sudo vuls report -to-slack

Vuls sẽ mất một vài phút để chạy và thoát thành công. Nếu nó hiển thị lỗi, hãy kiểm tra những gì bạn đã nhập so với các dòng trước đó.

Bạn có thể kiểm tra ứng dụng Slack và xác nhận Vuls đã gửi báo cáo thành công.

Tiêu đề thay thế cho báo cáo đã đăng Slack

Đến đây bạn đã cấu hình báo cáo, bạn sẽ cài đặt quét theo lịch. cron là một bộ lập lịch công việc dựa trên thời gian được tìm thấy trên mọi máy Ubuntu. Nó được cấu hình thông qua file crontab để xác định theo cú pháp chính xác khi nào một lệnh sẽ chạy. Để giúp chỉnh sửa dễ dàng, bạn sẽ sử dụng trình crontab , tiện ích này sẽ mở file crontab hiện tại trong editor .

Mở file crontab hiện tại bằng cách chạy lệnh sau:

  • crontab -e

Khi được yêu cầu , hãy chọn editor bạn muốn từ danh sách.

Thêm dòng sau vào cuối file :

0 0 * * * vuls scan -config=/usr/share/vuls-data/config.toml; vuls report -config=/usr/share/vuls-data/config.toml > /dev/null 2>&1 

Dòng trên hướng dẫn cron chạy vuls scanvuls report với cấu hình đã cho mỗi ngày vào buổi trưa (ký hiệu là 0 0 * * * trong cú pháp cron ).

Lưu và đóng file .

Trong bước này, bạn đã kết nối Vuls với không gian làm việc Slack của bạn và cấu hình cron để chạy quét Vuls và báo cáo hàng ngày vào buổi trưa.

Kết luận

Đến đây bạn đã cài đặt thành công Vuls với tính năng quét và báo cáo tự động trên server Ubuntu 18.04. Để biết thêm các tùy chọn báo cáo, cũng như khắc phục sự cố, hãy truy cập tài liệu Vuls .

Với Vuls, đánh giá lỗ hổng bảo mật trở thành một quy trình liền mạch hơn trong môi trường production . Để thay thế cho việc cài đặt cron , cũng có thể sử dụng Vuls trong quy trình triển khai liên tục , vì các bản quét của nó rất nhẹ và bạn có thể chạy chúng khi cần. Bạn cũng có thể xem xét triển khai tường lửa với Vuls để hạn chế quyền truy cập và giảm nhu cầu truy cập root.


Tags:

Các tin liên quan

Cách tạo người dùng mới hỗ trợ Sudo trên Ubuntu 18.04 [Quickstart]
2020-03-23
Cách cài đặt và cấu hình SNMP Daemon và Client trên Ubuntu 18.04
2020-03-17
Cách lưu trữ một trang web với Caddy trên Ubuntu 18.04
2020-03-13
Cách sử dụng nsh để chạy các lệnh từ xa an toàn trên Ubuntu 18.04
2020-03-04
Cách đóng gói và xuất bản ứng dụng Snap trên Ubuntu 18.04
2020-02-25
Cách thiết lập Nền tảng Eclipse Theia Cloud IDE trên Ubuntu 18.04 [Khởi động nhanh]
2020-02-10
Cách sử dụng Cron để tự động hóa công việc trên Ubuntu 18.04
2020-01-31
Cách cài đặt và sử dụng Radamsa để Fuzz kiểm tra các chương trình và dịch vụ mạng trên Ubuntu 18.04
2020-01-30
Cách cài đặt Tinc và thiết lập VPN cơ bản trên Ubuntu 18.04
2020-01-21
Cách thiết lập Nền tảng Eclipse Theia Cloud IDE trên Ubuntu 18.04
2020-01-06