Lỗ hổng Log4Shell (CVE-2021-44228) được nhiều nhà nghiên cứu và chuyên gia an ninh mạng mô tả là lỗ hổng zero-day nghiêm trọng nhất mọi thời đại. Nó ảnh hưởng đến một tiện ích Java được sử dụng rộng rãi có tên là Log4j, đã ra đời từ năm 2001 để ghi nhật ký và giao tiếp các sự kiện, chẳng hạn như các hoạt động hệ thống thông thường và lỗi phần mềm. Sau đây, chúng tôi chỉ cho bạn cách bảo vệ hệ thống Linux của bạn khỏi nó.
Lỗ hổng bảo mật Log4Shell hoạt động như thế nào?
Ở cấp độ cơ bản, lỗ hổng bảo mật là do xác thực đầu vào không đúng. Điều này xảy ra khi phần mềm không xác thực đúng cách dữ liệu mà phần mềm nhận được, dẫn đến các lỗ hổng có thể xảy ra, vì đầu vào được xác thực không chính xác có thể được sử dụng để khiến chương trình thực hiện các hành động mà nó không được phép.
Log4Shell đặc biệt tận dụng các yêu cầu mà Log4j gửi đến máy chủ, sử dụng LDAP và JNDI. Bằng cách lợi dụng các yêu cầu này, kẻ tấn công có thể thực thi mã trên bất kỳ hệ thống dễ bị tấn công nào, điều này có thể dẫn đến việc kẻ độc hại kiểm soát hoàn toàn hệ thống và có khả năng cài đặt ransomware hoặc đánh cắp dữ liệu.
Log4Shell ảnh hưởng gì?
Vì Java là một ngôn ngữ lập trình cực kỳ phổ biến, rất nhiều phần mềm được viết bằng Java sử dụng Log4j cho chức năng ghi nhật ký của nó đã bị ảnh hưởng bởi lỗ hổng này. Một số phần mềm nổi tiếng và được sử dụng phổ biến nhất bị ảnh hưởng bởi lỗ hổng bảo mật này bao gồm Apache và trò chơi điện tử có tên Minecraft.
Làm thế nào để biết Phần mềm nào bị ảnh hưởng?
Log4Shell, giống như bất kỳ lỗ hổng bảo mật mạng nào khác, được giảm nhẹ bằng cách vá phần mềm bị ảnh hưởng bởi nó. Tuy nhiên, trường hợp của Log4Shell độc đáo hơn một chút, vì nó ảnh hưởng đến nhiều loại phần mềm như vậy và có thể khó lưu giữ danh sách những gì bị ảnh hưởng và những gì không.
May mắn thay, Trung tâm An ninh mạng Quốc gia của Hà Lan đã xuất bản một danh sách toàn diện trên GitHub, bao gồm tên phần mềm được phát triển bởi các tổ chức khác nhau, thông báo liệu chúng có dễ bị tấn công bởi Log4Shell hay không.
Cách quét máy chủ Apache của bạn để tìm lỗ hổng bảo mật
Vì lỗ hổng này đã ảnh hưởng rất nhiều đến cộng đồng phần mềm và an ninh mạng, nên không có gì ngạc nhiên khi có các công cụ sẵn có để quản trị viên quét máy chủ của họ để tìm lỗ hổng.
Một trong những trình quét như vậy là Log4j-RCE-Scanner, cho phép bạn quét lỗ hổng thực thi lệnh từ xa trên Apache Log4j tại nhiều địa chỉ.
Cài đặt Log4j-RCE-Scanner
Trước khi bắt đầu, chúng ta cần cài đặt các phụ thuộc của nó, httpx
và curl
.
Curl có thể được cài đặt dễ dàng trên Ubuntu và các hệ thống dựa trên Debian bằng cách sử dụng apt
lệnh:
sudo apt install curl
Điều tương tự có thể được thực hiện trên Arch Linux bằng cách sử dụng pacman
lệnh:
sudo pacman -Sy curl
Và trên các cài đặt CentOS và Fedora bằng yum
lệnh:
sudo yum install curl
Việc cài đặt httpx có thể được thực hiện bằng các lệnh sau:
git clone https://github.com/projectdiscovery/httpx cd httpx/cmd/httpx && go build . sudo mv httpx /usr/local/bin/
Sau khi cài đặt tất cả các phụ thuộc cần thiết, hãy sao chép kho lưu trữ Log4J-RCE-Scanner:
git clone https://github.com/adilsoybali/Log4j-RCE-Scanner
Truy cập thư mục mới tạo:
cd Log4j-RCE-Scanner/
Cuối cùng, thêm các quyền thực thi cần thiết cho tập lệnh Bash:
chmod +x log4j-rce-scanner.sh
Sử dụng Log4j-RCE-Scanner
Sau khi bạn đã cài đặt máy quét, cuối cùng bạn cũng có thể đến với phần thú vị của việc thực sự sử dụng nó.
Đọc phần trợ giúp của tập lệnh bằng cách nhập:
bash log4j-rce-scanner.sh -h
Bây giờ, bạn có thể quét máy chủ Apache của mình để tìm lỗ hổng Log4shell.
bash log4j-rce-scanner.sh -d [domain] -b [Burp collaborator]
Bạn có thể chỉ định miền và Cộng tác viên Burp của mình bằng cách sử dụng -d
và -b
cờ. Nếu miền của bạn dễ bị tấn công, các lệnh gọi lại DNS với tên miền dễ bị tấn công sẽ được gửi đến Burp Collaborator.
Ngoài ra, -l
cờ cũng có thể được sử dụng để chỉ định danh sách các miền.
Cài đặt và sử dụng máy quét dựa trên Python
Nếu bạn muốn sử dụng tập lệnh Python thay thế, bạn có thể sử dụng trình quét log4, được phát triển bởi Cơ quan An ninh mạng và Cơ sở hạ tầng của Hoa Kỳ.
Để cài đặt nó:
git clone https://github.com/cisagov/log4j-scanner/
Truy cập thư mục:
cd log4j-scanner/log4-scanner/
Bạn có thể cài đặt các phần phụ thuộc bắt buộc bằng cách sử dụng pip3
dựa trên Python lệnh:
pip3 install -r requirements.txt
Bạn có thể xem “trợ giúp” do tập lệnh cung cấp bằng cách sử dụng -h
cờ:
python3 log4j-scan.py -h
Quét một URL đơn giản và có thể được thực hiện bằng -u
cờ:
python3 log4j-scan.py -u example.com
Bạn cũng có thể quét danh sách các URL bằng cách sử dụng -l
cờ:
python3 log4j-scan.py -l list.txt
Cách vá Apache
Để chống lại lỗ hổng này, điều cực kỳ quan trọng là phải cập nhật cấu hình Apache của bạn.
Việc kiểm tra phiên bản Apache có thể được thực hiện theo nhiều cách:bằng cách kiểm tra từ bảng quản trị của bạn, chẳng hạn như CPanel hoặc Trình quản lý WebHost. Bạn cũng có thể kiểm tra phiên bản bằng cách chạy httpd
lệnh với -v
cờ:
httpd -v
Apache có thể được cập nhật lên phiên bản mới nhất, an toàn nhất bằng cách sử dụng apt
lệnh trên hệ thống Debian và Ubuntu:
sudo apt update && sudo apt upgrade apache2
Kết quả tương tự cũng được thực hiện bằng cách sử dụng yum
lệnh trên CentOS:
sudo yum install httpd
Câu hỏi thường gặp
1. Những phiên bản Log4j nào bị ảnh hưởng bởi lỗ hổng bảo mật?
Các phiên bản 2.1.7.1 dưới đây dễ bị khai thác. Phiên bản 2.15.0 đã khắc phục các yếu tố dễ khai thác nhất, với 2.17.1 khắc phục lỗ hổng thực thi mã từ xa khó khai thác.
2. Tôi có cần tiện ích Burp Collaborator để nhận các lệnh gọi lại DNS với các tên miền dễ bị tấn công không?
Theo nhà phát triển của máy quét dựa trên Bash, Burp Collaborator được sử dụng cùng với chính tập lệnh để nhận các lệnh gọi lại DNS với các tên miền dễ bị tấn công. Ngoài ra, có thể sử dụng địa chỉ Interact.sh.
3. Tôi có cần các yếu tố phụ thuộc khác để sử dụng máy quét dựa trên Bash không?
Để sử dụng cơ bản, bạn chỉ cần cài đặt httpx và Curl trên hệ thống của mình dưới dạng phụ thuộc. Tuy nhiên, để mở khóa một số chức năng, bạn cũng cần cài đặt Subfinder, Assetfinder và Amass.