Tuyên bố vấn đề: Các lỗ hổng không nhìn thấy, mối đe dọa thực sự
Internet có thể giống như một chiến trường không ngừng nghỉ, với các hệ thống của chúng ta liên tục bị tấn công. Các mối đe dọa đa dạng từ các tác nhân nhà nước tinh vi cho đến các bot tự động không ngừng dò tìm điểm yếu. Tôi đã học được bài học này một cách khó khăn khi máy chủ cá nhân của tôi bị tấn công brute-force SSH vào một đêm muộn. Trải nghiệm đáng sợ đó không chỉ là một lời cảnh tỉnh; nó củng cố niềm tin của tôi: hãy ưu tiên bảo mật ngay từ đầu. Chờ đợi một sự cố xảy ra đơn giản là tự rước họa vào thân.
Một bước quan trọng trong việc bảo mật bất kỳ hệ thống nào là hiểu rõ những điểm yếu của nó trước khi kẻ tấn công có thể khai thác chúng. Máy chủ, ứng dụng và thiết bị mạng thường chứa các lỗ hổng ẩn. Chúng có thể trở thành những cánh cửa mở cho những kẻ xâm nhập.
Môi trường IT hiện đại cực kỳ phức tạp, khiến việc phát hiện lỗ hổng thủ công trở thành một nhiệm vụ bất khả thi. Chúng ta cần một cách thức có hệ thống, tự động để liên tục xác định, đánh giá và quản lý các lỗi bảo mật này. Thách thức thực sự không chỉ là tìm ra chúng, mà còn là thực hiện một cách toàn diện và hiệu quả.
Các khái niệm cốt lõi: Khám phá OpenVAS/Greenbone
An ninh mạng chủ động phụ thuộc vào việc có tầm nhìn rõ ràng về các vector tấn công tiềm năng. Đây chính là nơi mà các máy quét lỗ hổng trở thành công cụ thiết yếu. Máy quét lỗ hổng là một hệ thống tự động được thiết kế để kiểm tra cơ sở hạ tầng của bạn—cho dù là hệ thống, mạng hay ứng dụng—để tìm kiếm các điểm yếu bảo mật đã biết, các cấu hình sai phổ biến và phần mềm lỗi thời. Hãy nghĩ nó như một thám tử kỹ thuật số, tích cực tìm kiếm những điểm yếu trong hệ thống phòng thủ kỹ thuật số của bạn.
Điều này đưa chúng ta đến với OpenVAS và Greenbone. OpenVAS (Open Vulnerability Assessment System) bắt đầu như một sáng kiến mã nguồn mở. Mục tiêu của nó là tạo ra một khung toàn diện để quét và quản lý lỗ hổng bảo mật. Kể từ đó, nó đã phát triển đáng kể. Greenbone Networks hiện đang duy trì khung Greenbone Vulnerability Management (GVM) cốt lõi. Mặc dù nhiều người vẫn sử dụng ‘OpenVAS’ một cách không chính thức, nhưng công nghệ mã nguồn mở cơ bản là một thành phần quan trọng của hệ sinh thái GVM rộng lớn hơn.
Greenbone cung cấp khung GVM, bao gồm một số thành phần mạnh mẽ. Greenbone Security Assistant (GSA) đóng vai trò là giao diện web trực quan. Greenbone Vulnerability Scanner (GVMd) là công cụ quét cốt lõi.
Nó được hỗ trợ bởi một cơ sở dữ liệu khổng lồ, được cập nhật liên tục các bài kiểm tra lỗ hổng mạng (NVT). Các NVT này về cơ bản là các chữ ký chuyên biệt mà máy quét sử dụng để phát hiện hàng chục nghìn lỗ hổng đã biết. Sử dụng OpenVAS/Greenbone mang lại một cách tiếp cận toàn diện để quản lý lỗ hổng. Nó không chỉ xác định các vấn đề mà còn giúp bạn theo dõi việc khắc phục chúng, đảm bảo hệ thống của bạn luôn an toàn theo thời gian.
Thực hành: Thiết lập và quét với OpenVAS/Greenbone
Bắt đầu với OpenVAS/Greenbone có thể có vẻ khó khăn do có nhiều thành phần. May mắn thay, Docker đã giúp việc triển khai trở nên dễ tiếp cận hơn nhiều. Đối với hướng dẫn này, chúng ta sẽ sử dụng thiết lập Docker Compose. Cách tiếp cận này điều phối các dịch vụ Greenbone khác nhau, cung cấp một quy trình cài đặt tương đối biệt lập và đơn giản.
Đầu tiên, hãy đảm bảo bạn đã cài đặt Docker và Docker Compose trên máy Linux của mình. Nếu chưa, đây là cách cài đặt chúng trên Ubuntu:
# Cập nhật danh sách gói và cài đặt các điều kiện tiên quyết
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
# Thêm khóa GPG chính thức của Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Thiết lập kho lưu trữ Docker ổn định
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Cài đặt các thành phần Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
# Thêm người dùng của bạn vào nhóm 'docker' để chạy các lệnh Docker mà không cần sudo
sudo usermod -aG docker $USER
# Bạn PHẢI đăng xuất và đăng nhập lại, hoặc chạy 'newgrp docker' để thay đổi này có hiệu lực.
newgrp docker
# Cài đặt Docker Compose (luôn kiểm tra GitHub để biết phiên bản mới nhất nếu cần)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Tiếp theo, tạo một tệp có tên docker-compose.yml. Điền vào nó nội dung sau. Cấu hình này thiết lập tất cả các thành phần Greenbone cần thiết: Greenbone Vulnerability Manager Daemon (GVMd), Greenbone Security Assistant (GSA – giao diện người dùng web), máy quét OpenVAS, cơ sở dữ liệu PostgreSQL và Redis.
# tệp docker-compose.ymlvà
version: "3.8"services:
gvmd:
image: greenbone/gvmd:stable
volumes:
- gvmd_data:/var/lib/gvm
environment:
# !! QUAN TRỌNG: Thay thế 'your_admin_password' bằng mật khẩu mạnh, duy nhất !!
- GVM_PASSWORD=your_admin_password
restart: unless-stopped
depends_on:
- postgres
- ospd-openvasgsa:
image: greenbone/gsa:stable
ports:
# Ánh xạ cổng HTTPS 443 trên máy chủ của bạn tới cổng HTTP 80 bên trong container
# Truy cập giao diện web qua https://localhost hoặc https://your_server_ip
- "443:80"
restart: unless-stopped
depends_on:
- gvmdospd-openvas:
image: greenbone/ospd-openvas:stable
restart: unless-stopped
volumes:
- openvas_plugins:/var/lib/openvas/plugins
- openvas_gnupg:/etc/openvas/gnupg
depends_on:
- redispostgres:
image: postgres:13
environment:
- POSTGRES_DB=gvmd
- POSTGRES_USER=gvm
# !! QUAN TRỌNG: Thay thế 'your_postgres_password' bằng mật khẩu mạnh, duy nhất !!
- POSTGRES_PASSWORD=your_postgres_password
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stoppedredis:
image: redis:6-alpine
restart: unless-stoppedvolumes:
gvmd_data:
openvas_plugins:
openvas_gnupg:
postgres_data:
```</pre><p><strong>Lưu ý bảo mật quan trọng: Trước khi tiếp tục, hãy nhớ thay thế cả <code>your_admin_password
your_postgres_passwordbằng các thông tin xác thực thực sự mạnh và duy nhất. Không sử dụng mật khẩu mặc định hoặc yếu.Bây giờ, hãy triển khai Greenbone bằng cách chạy Docker Compose ở chế độ detached:
docker compose up -d:
```</pre><p>Lệnh này sẽ tải xuống các hình ảnh Docker cần thiết và khởi chạy tất cả các thành phần Greenbone. Hãy chuẩn bị chờ đợi. Quá trình thiết lập ban đầu, đặc biệt là đồng bộ hóa các Bài kiểm tra lỗ hổng mạng (NVT) và nguồn cấp dữ liệu bảo mật, có thể mất một khoảng thời gian đáng kể—thường là vài giờ, tùy thuộc vào kết nối internet và tài nguyên hệ thống của bạn. Bạn có thể theo dõi tiến độ bằng cách kiểm tra nhật ký của dịch vụ <code>gvmd
docker logs -f gvmd(nếu chạy trên máy cục bộ của bạn) hoặc
```</pre><p>Hãy theo dõi các thông báo cho biết rằng các nguồn cấp dữ liệu đã được cập nhật đầy đủ và máy quét đã sẵn sàng hoạt động.</p><p>Khi tất cả các dịch vụ đã chạy và được đồng bộ hóa, bạn có thể truy cập giao diện web Greenbone Security Assistant (GSA).</p><p>Mở trình duyệt web của bạn và điều hướng đến <code>https://localhost
https://your_server_ip(nếu trên máy chủ từ xa). Bạn có thể sẽ gặp cảnh báo chứng chỉ vì kết nối sử dụng chứng chỉ tự ký. Đối với thiết lập cục bộ, bạn có thể an toàn bỏ qua cảnh báo này.Đăng nhập vào GSA bằng tên người dùng
adminvàGVM_PASSWORDmà bạn đã chỉ định trong tệpdocker-compose.ymlcủa mình.Chạy quét đầu tiên của bạn: Hướng dẫn từng bước
- Xác định mục tiêu: Trong giao diện GSA, điều hướng đến
Configuration→Targets. Nhấp vào biểu tượng "ngôi sao" để tạo một mục tiêu mới.
- Đặt tên mô tả cho mục tiêu của bạn (ví dụ: "Máy chủ cục bộ của tôi" hoặc "Giao diện web").
- Nhập địa chỉ IP hoặc tên máy chủ của hệ thống bạn muốn quét. Ví dụ, sử dụng
127.0.0.1để quét chính Docker host, hoặc chỉ định một IP khác trên mạng cục bộ của bạn.- Chọn phương pháp "Kiểm tra trạng thái hoạt động", chẳng hạn như "ARP Ping" hoặc "TCP-ACK Ping", để đảm bảo mục tiêu có thể truy cập được.
- Cuối cùng, lưu mục tiêu mới của bạn.
- Tạo một tác vụ: Tiếp theo, đi tới
Scans→Tasks. Nhấp vào biểu tượng "ngôi sao" để khởi tạo một tác vụ mới.
- Gán tên cho tác vụ của bạn (ví dụ: "Kiểm tra máy chủ hàng tuần").
- Chọn một "Cấu hình quét" phù hợp với nhu cầu của bạn. Các tùy chọn bao gồm "Quét nhanh và đầy đủ" để có cái nhìn tổng quan nhanh hơn hoặc "Quét sâu và đầy đủ" để phân tích kỹ lưỡng hơn.
- Chọn "Mục tiêu" bạn vừa tạo từ menu thả xuống.
- Bạn có thể thiết lập lịch trình cho các lần quét định kỳ hoặc chỉ cần để là "Chạy một lần" cho một lần quét ngay lập tức.
- Nhấp vào "Tạo" để hoàn tất tác vụ.
- Bắt đầu quét: Khi tác vụ đã được tạo, hãy tìm nó trong danh sách và nhấp vào biểu tượng "Phát" bên cạnh tên của nó để bắt đầu quét. Tác vụ sẽ trải qua một số trạng thái: "Đã yêu cầu," "Đang chờ," "Đang chạy," và cuối cùng là "Hoàn thành." Hãy lưu ý rằng các lần quét toàn diện có thể mất một lượng thời gian đáng kể để hoàn thành.
Giải thích kết quả của bạn: Những điều cần tìm kiếm
Sau khi trạng thái quét hiển thị "Hoàn thành," nhấp vào tên tác vụ trong danh sách
Scans→Tasksđể xem báo cáo chi tiết.Báo cáo sẽ cung cấp một danh sách các lỗ hổng được phát hiện theo thứ tự ưu tiên, đầy đủ các chi tiết cần thiết:
- Mức độ nghiêm trọng: Một điểm số bằng số, thường từ 0 đến 10, cho biết tác động tiềm tàng của lỗ hổng.
- Tên lỗ hổng: Tiêu đề rõ ràng, mô tả cho từng vấn đề được xác định.
- Giải pháp: Các khuyến nghị cụ thể về cách khắc phục lỗ hổng.
- Máy chủ bị ảnh hưởng: Địa chỉ IP hoặc tên máy chủ cụ thể nơi lỗ hổng được tìm thấy.
Luôn ưu tiên giải quyết các lỗ hổng có mức độ nghiêm trọng cao trước. Đối với mỗi phát hiện, hãy đọc kỹ giải pháp được cung cấp và thực hiện các bản vá, thay đổi cấu hình hoặc cập nhật phần mềm được khuyến nghị.
Sau khi bạn đã áp dụng một bản sửa lỗi, tốt nhất là nên chạy một lần quét tiếp theo. Điều này xác minh rằng lỗ hổng thực sự đã được giải quyết và không có vấn đề mới nào được đưa vào. Chu trình quét, khắc phục và xác minh liên tục này tạo thành nền tảng của quản lý lỗ hổng hiệu quả.
Kết luận: Áp dụng bảo mật chủ động
Phớt lờ các lỗ hổng hệ thống giống như để cửa trước của bạn mở toang giữa một thành phố đông đúc. Vấn đề không phải là liệu ai đó có tìm thấy nó hay không, mà là khi nào. OpenVAS/Greenbone, với khả năng quét mạnh mẽ và cơ sở dữ liệu NVT mở rộng, cung cấp một giải pháp mã nguồn mở mạnh mẽ. Nó giúp bạn xác định những điểm yếu quan trọng này rất lâu trước khi chúng có thể bị khai thác bởi các tác nhân độc hại.
Bằng cách tích hợp OpenVAS/Greenbone vào quy trình làm việc bảo mật của bạn, bạn có được cái nhìn sâu sắc vô giá về tình trạng bảo mật tổng thể của hệ thống. Công cụ này trao quyền cho bạn chuyển từ lập trường phản ứng—liên tục vá các vi phạm sau khi chúng xảy ra—sang lập trường chủ động, nơi bạn chủ động củng cố hệ thống phòng thủ của mình. Hãy nhớ rằng, an ninh mạng không phải là thiết lập một lần; đó là một cam kết liên tục. Quét thường xuyên và khắc phục cẩn thận là những thực hành cơ bản để duy trì một môi trường CNTT an toàn và kiên cường.

