Lỗi command injection qua biến môi trường cho phép thực thi mã tùy ý trong GNU Bash

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Giới thiệu chung

Dữ liệu gốc

GNU Bash đến và gồm phiên bản 4.3 xử lý các chuỗi đứng sau định nghĩa hàm trong giá trị của các biến môi trường, cho phép attacker từ xa thực thi mã tùy ý thông qua một môi trường được tạo đặc biệt, như đã được chứng minh bằng các vector liên quan đến tính năng ForceCommand trong OpenSSH sshd, các module mod_cgi và mod_cgid của Apache HTTP Server, các script được thực thi bởi những DHCP client không được chỉ rõ, và những tình huống khác trong đó việc thiết lập môi trường diễn ra qua một ranh giới đặc quyền của quá trình thực thi Bash, còn được gọi là "ShellShock." LƯU Ý: bản sửa ban đầu cho vấn đề này không chính xác; CVE-2014-7169 đã được gán để bao phủ lỗ hổng vẫn còn tồn tại sau bản sửa không chính xác.

Sản phẩm và phạm vi ảnh hưởng

  • GNU Bash: Các bản đến và gồm 4.3 được ghi nhận là bị ảnh hưởng.
  • Arista EOS: NVD ghi nhận các nhánh 4.9.0 đến trước 4.9.12, 4.10.0 đến trước 4.10.9, 4.11.0 đến trước 4.11.11, 4.12.0 đến trước 4.12.9, 4.13.0 đến trước 4.13.9, và 4.14.0 đến trước 4.14.4f.
  • Oracle Linux: Các phiên bản 4, 5 và 6 được ghi nhận là bị ảnh hưởng.
  • QNAP QTS: Các bản trước 4.1.1 được ghi nhận là bị ảnh hưởng; record cũng có các dòng riêng cho 4.1.1 và 4.1.1 với build 0927.
  • Mageia: 3.0 và 4.0 bị ảnh hưởng. SUSE và openSUSE: SUSE Studio Onsite 1.3, openSUSE 12.3, 13.1, 13.2, Linux Enterprise Desktop 11 và 12, Linux Enterprise Server 10 SP3, 10 SP4, 11 SP1, 11 SP2, 11 SP3 và 12, cùng Linux Enterprise Software Development Kit 11 và 12 được ghi nhận là bị ảnh hưởng.
  • Debian: Debian Linux 7.0 bị ảnh hưởng.
  • Red Hat: Record bao gồm Gluster Storage Server for on-premise 2.1, Virtualization 3.4, các nhánh Enterprise Linux 4.0 đến 7.0, Desktop 5.0 đến 7.0, Server 5.0 đến 7.0, Workstation 5.0 đến 7.0, Scientific Computing 6.0 và 7.0, cùng các nhánh EUS, AUS, TUS, RHUI và kiến trúc IBM z Systems hoặc Power với các phiên bản được liệt kê trong structured record.
  • IBM: InfoSphere Guardium Database Activity Monitoring 8.2, 9.0, 9.1; PureApplication System gồm các dòng wildcard và 2.0.0.0; QRadar Risk Manager 7.1.0; QRadar Security Information and Event Manager 7.1.0, 7.1.1, 7.1.2; và QRadar Vulnerability Manager 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4, 7.2.6, 7.2.8 được ghi nhận là bị ảnh hưởng.
  • Nhiều dòng trong record là package, build hoặc CPE wildcard và không cung cấp ranh giới fixed version. Không nên suy ra trạng thái của các nhánh song song hoặc bản phát hành muộn hơn nếu vendor chưa xác nhận.

Chi tiết kỹ thuật

Bash của GNU xử lý phần chuỗi nằm sau định nghĩa hàm khi nhập hàm từ giá trị của biến môi trường. Nếu attacker có thể khiến một dịch vụ hoặc client đặt biến môi trường được tạo đặc biệt rồi khởi chạy Bash, phần chuỗi này có thể bị thực thi như mã lệnh tùy ý.

Các đường tấn công được mô tả gồm ForceCommand trong OpenSSH sshd, các module mod_cgi và mod_cgid của Apache HTTP Server, script do DHCP client chạy, và những trường hợp khác trong đó dữ liệu môi trường đi qua ranh giới đặc quyền trước khi Bash được thực thi. Điều kiện reachability thực tế phụ thuộc vào việc sản phẩm có gọi Bash hay không, cách biến môi trường được truyền vào, và đặc quyền của tiến trình gọi Bash.

Đây là lỗi OS command injection dẫn đến arbitrary code execution. Nếu Bash được chạy với đặc quyền cao hơn nguồn dữ liệu đầu vào, mã của attacker có thể chạy trong context của tiến trình đó và có khả năng vượt qua ranh giới đặc quyền. Chi tiết triển khai và call path cụ thể của từng appliance, bản phân phối hoặc sản phẩm tích hợp không được xác lập đầy đủ trong record.

Khả năng khai thác

  • Khả năng tiếp cận: Có thể khai thác từ xa khi attacker kiểm soát hoặc ảnh hưởng được giá trị biến môi trường trước khi một dịch vụ hoặc client gọi Bash. Các đường dẫn gián tiếp qua SSH, CGI và DHCP được record nêu rõ; các đường dẫn khác phụ thuộc triển khai.
  • Xác thực và tương tác: Vector mạng trong record mô hình hóa trường hợp không cần đặc quyền trước và không cần user interaction, nhưng điều kiện thực tế có thể chặt hơn ở từng sản phẩm. Một public exploit record mô tả một đường dẫn sản phẩm yêu cầu user đã xác thực để tiếp cận SSH xử lý các biến môi trường.
  • Độ phức tạp: Việc khai thác được đánh dấu là có độ phức tạp thấp trong record.
  • Trạng thái công khai: Record đánh dấu lỗi này là đã bị khai thác trong thực tế và có public exploit. Điều đó không chứng minh rằng mọi sản phẩm hoặc mọi cấu hình bị ảnh hưởng đều có cùng mức reachability.
  • Bản sửa đầu tiên không đầy đủ, vì vậy việc đã áp dụng một bản cập nhật Bash ban đầu không tự động chứng minh hệ thống đã an toàn.

Tác động kỹ thuật

Lỗi cho phép thực thi mã tùy ý trong context của Bash hoặc tiến trình gọi Bash. Với đường dẫn mạng phù hợp, attacker có thể đạt được quyền của dịch vụ, tài khoản SSH, script DHCP hoặc thành phần gọi Bash; quyền thực tế phụ thuộc cấu hình và không mặc nhiên là quyền quản trị.

Nếu tiến trình có quyền truy cập dữ liệu hoặc hệ thống quan trọng, hậu quả có thể gồm đọc dữ liệu, sửa file và cấu hình, thay đổi hành vi dịch vụ, tạo persistence hoặc làm gián đoạn hệ thống. Một số đường dẫn sản phẩm có thể yêu cầu xác thực hoặc điều kiện riêng, nên không nên áp dụng mô hình unauthenticated cho mọi triển khai. Phạm vi ảnh hưởng cũng có thể bị giới hạn bởi sandbox, container, account permission hoặc cơ chế cô lập của sản phẩm, nhưng record không thiết lập các giới hạn đó cho từng sản phẩm.

Tác động đến tổ chức

  • Dịch vụ SSH, web CGI, DHCP client và các thành phần khác có thể trở thành điểm vào cho thực thi mã từ xa nếu chúng truyền được môi trường được tạo đặc biệt vào Bash.
  • Nếu mã chạy với quyền của dịch vụ hoặc tài khoản quản trị, attacker có thể làm lộ dữ liệu, sửa cấu hình, thay đổi ứng dụng hoặc gây gián đoạn dịch vụ.
  • Các appliance và sản phẩm đóng gói Bash có thể cần firmware hoặc bản cập nhật riêng, vì việc cập nhật package Bash trên hệ điều hành nền chưa chắc cập nhật được bản sao Bash bên trong sản phẩm.
  • Do record xác nhận exploitation và public exploit, tổ chức nên ưu tiên inventory, xác định đường dẫn có thể bị ảnh hưởng và áp dụng bản sửa theo từng vendor thay vì chờ có dấu hiệu xâm nhập.

Cách khắc phục

  1. Áp dụng bản cập nhật của vendor trước tiên. Cập nhật Bash hoặc firmware, image và product release chứa Bash theo hướng dẫn riêng của từng vendor. Record xác nhận patch đã có, nhưng không cung cấp một fixed release chung áp dụng cho mọi bản phân phối và appliance.
  2. Với Arista EOS, dùng các ranh giới nhánh được ghi nhận trong affected data làm mốc kiểm tra: 4.9.12, 4.10.9, 4.11.11, 4.12.9, 4.13.9 và 4.14.4f. Xác nhận thêm với vendor rằng bản cập nhật tương ứng đã được triển khai cho đúng nhánh và model.
  3. Với Oracle Linux, Red Hat, SUSE, Debian, QNAP, Mageia, IBM và các sản phẩm tích hợp khác, đối chiếu advisory và package hoặc firmware revision của chính vendor. Không thay thế bản sửa sản phẩm bằng giả định rằng chỉ cần cập nhật Bash hệ điều hành là đủ.
  4. Nếu chưa thể cập nhật ngay, tạm thời giảm các đường dẫn cho phép dữ liệu không tin cậy đi vào môi trường của Bash, đặc biệt ở SSH, CGI, DHCP client và các integration chạy qua ranh giới đặc quyền. Biện pháp này chỉ là giảm phơi nhiễm tạm thời, không thay thế patch.
  5. Xác minh lại sau khi cập nhật, vì record nêu rõ bản sửa ban đầu không chính xác. Không coi việc đã cài bản cập nhật đầu tiên hoặc việc kiểm tra đơn giản trên một host là bằng chứng cho toàn bộ fleet đã được khắc phục.

Cách phát hiện

  1. Kiểm kê Bash trên máy chủ, image, appliance và các sản phẩm tích hợp, bao gồm các bản cài đặt không được quản lý trực tiếp bởi hệ điều hành.
  2. Đối chiếu package hoặc firmware hiện tại với advisory của vendor và trạng thái backport của bản phân phối. Không chỉ dựa vào chuỗi phiên bản hiển thị của shell, vì vendor có thể sửa lỗi bằng cách backport.
  3. Xác định các dịch vụ có thể truyền dữ liệu do attacker kiểm soát vào môi trường của tiến trình Bash, đặc biệt là OpenSSH sshd với ForceCommand, Apache mod_cgi hoặc mod_cgid, DHCP client script và các integration vượt ranh giới đặc quyền.
  4. Rà soát process-creation telemetry như một biện pháp phòng ngừa, tập trung vào tiến trình con bất thường được tạo bởi sshd, Apache CGI worker hoặc DHCP client. Đây là dấu hiệu cần điều tra, không phải IOC được xác nhận riêng cho lỗi này.
  5. Kiểm tra thay đổi bất thường đối với tài khoản, cấu hình, file và dịch vụ trên các hệ thống từng chạy bản Bash bị ảnh hưởng. Evidence hiện có không xác lập một IOC chung cho mọi sản phẩm.
Nguồn (182)
debian (CNA)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.