Làm thế nào để Quét và Khắc phục Lỗ hổng Log4j?

Spread the love

Lỗ hổng Log4j là một trong những vấn đề bảo mật nguy hiểm nhất trong các hệ thống hiện đại.

Ghi nhật ký là một tính năng chính trong các ứng dụng hiện đại và thư viện ghi nhật ký, Log4j, là công cụ đi đầu trong lĩnh vực này.

Thư viện này được sử dụng trong hầu hết các ứng dụng, dịch vụ và hệ thống. Do đó, tất cả các ứng dụng mà Log4j được sử dụng đều bị ảnh hưởng bởi lỗ hổng Log4j được tìm thấy vào năm ngoái.

Với những lo ngại về an ninh mạng ngày càng tăng trên toàn thế giới, các tổ chức và cá nhân đang thực hiện các bước để bảo vệ các ứng dụng, hệ thống và dữ liệu của họ.

Và khi lỗ hổng này được phát hiện, nó càng khiến các chuyên gia và doanh nghiệp căng thẳng hơn.

Do đó, phát hiện lỗ hổng Log4j và sửa chữa nó là điều cần thiết nếu bạn muốn bảo vệ dữ liệu, mạng, danh tiếng và lòng tin của khách hàng.

Trong bài viết này, tôi sẽ thảo luận về lỗ hổng Log4j, cùng với các bước để phát hiện và sửa chữa nó.

Hãy bắt đầu bằng cách hiểu Log4j và lý do bạn cần nó.

Log4j là gì?

Log4j là một tiện ích ghi nhật ký mã nguồn mở được viết bằng Java, được sử dụng chủ yếu để lưu trữ, định dạng và xuất bản các bản ghi nhật ký được tạo bởi các ứng dụng và hệ thống, sau đó kiểm tra lỗi. Các bản ghi có thể thuộc nhiều loại khác nhau, từ một trang web và dữ liệu trình duyệt đến các chi tiết kỹ thuật của hệ thống nơi Log4j chạy.

Thay vì viết mã từ đầu, các nhà phát triển có thể sử dụng thư viện Log4j bằng cách tích hợp mã của nó vào ứng dụng của họ.

Sử dụng Log4j, các nhà phát triển có thể theo dõi tất cả các sự kiện liên quan đến ứng dụng của họ với thông tin ghi nhật ký chính xác. Nó giúp họ giám sát các ứng dụng, phát hiện các vấn đề kịp thời và khắc phục các vấn đề trước khi chúng có thể biến thành một vấn đề lớn hơn về hiệu suất và / hoặc bảo mật.

Thư viện dựa trên Java này được viết bởi Ceki Gülcü và được phát hành vào năm 2001 theo Giấy phép Apache 2.0. Nó sử dụng các dịch vụ đặt tên Java và Giao diện thư mục (JNDI) để cho phép các ứng dụng tương tác với các ứng dụng khác như LDAP, DNS, CORBA, v.v., đồng thời có được một thư mục và chức năng đặt tên cho các ứng dụng dựa trên Java. Log4j có ba thành phần để thực hiện các tác vụ của nó:

  • Người ghi nhật ký để nắm bắt các bản ghi nhật ký
  • Bố cục để định dạng bản ghi nhật ký theo các kiểu khác nhau
  • Người nối để xuất bản các bản ghi nhật ký đến các điểm đến khác nhau

Trên thực tế, Log4j là một trong những thư viện ghi nhật ký nổi tiếng nhất trên web và được các tổ chức từ nhiều ngành và quốc gia sử dụng. Họ đã tích hợp thư viện ghi nhật ký này trong nhiều ứng dụng, bao gồm các dịch vụ đám mây hàng đầu của Google, Microsoft, Apple, Cloudflare, Twitter, v.v.

Nhà phát triển của nó, Apache Software Foundation, đã phát triển Log4j 2, một bản nâng cấp cho Log4j để giải quyết các vấn đề được tìm thấy trong các bản phát hành trước đó. Năm ngoái, một lỗ hổng đã được tìm thấy trong Log4j, khi không được giải quyết, có thể cho phép những kẻ tấn công đột nhập vào các ứng dụng và hệ thống, đánh cắp dữ liệu, lây nhiễm mạng và thực hiện các hoạt động độc hại khác.

Hãy hiểu nó nhiều hơn.

Log4Shell – Lỗ hổng Log4j là gì?

Log4Shell là một lỗ hổng bảo mật mạng quan trọng trên thư viện Log4j, ảnh hưởng đến hoạt động cốt lõi của thư viện. Nó cho phép kẻ tấn công kiểm soát một thiết bị hoặc ứng dụng được kết nối internet bằng cách thực hiện việc thực thi mã từ xa. Khi thành công, họ có thể:

  • Chạy bất kỳ mã nào trên thiết bị hoặc hệ thống
  • Truy cập tất cả mạng và dữ liệu
  • Sửa đổi hoặc mã hóa bất kỳ tệp nào trên ứng dụng hoặc thiết bị bị ảnh hưởng

Lỗ hổng này được báo cáo lần đầu tiên vào ngày 24 tháng 11 năm 2021, bởi Chen Zhaojun, một nhà nghiên cứu bảo mật tại Alibaba (một gã khổng lồ về thương mại điện tử của Trung Quốc). Lỗ hổng bảo mật đã ảnh hưởng đến máy chủ Minecraft của họ, được nhóm bảo mật đám mây của Alibaba phát hiện vào ngày 9/12.

Tiếp theo, NIST đã công bố lỗ hổng này trong Cơ sở dữ liệu về lỗ hổng bảo mật quốc gia và đặt tên là CVE-2021-44228. Apache Software Foundation sau đó đã xếp hạng lỗ hổng này là 10 về mức độ nghiêm trọng của CVSS. Điều này hiếm khi được giao và rất nặng nề vì nó có khả năng bị khai thác rộng rãi và dễ dàng, dẫn đến thiệt hại lớn cho các tổ chức và cá nhân.

  Mọi thứ bạn cần biết về đồng tác giả trong Excel

Đáp lại, Apache đã phát hành một bản vá cho lỗ hổng này nhưng vẫn còn một số phần vẫn chưa được khắc phục, dẫn đến các lỗ hổng khác:

  • CVE-2021-45046 đã tạo điều kiện cho các cuộc tấn công Từ chối Dịch vụ (DoS) thông qua tra cứu JNDI
  • CVE-2021-45105 cho phép tin tặc kiểm soát thông tin Bản đồ ngữ cảnh luồng và gây ra các cuộc tấn công DoS bằng cách diễn giải một chuỗi được tạo thủ công
  • CVE-2021-44832 tác động đến tất cả các phiên bản Log4j 2 thông qua tính năng Chèn mã từ xa (RCE)

Log4Shell hoạt động như thế nào?

Để hiểu mức độ nghiêm trọng của nó và mức độ nguy hại mà Log4Shell có thể gây ra, bạn nên tìm hiểu cách thức hoạt động của lỗ hổng Log4j này.

Lỗ hổng Log4Shell cho phép kẻ tấn công đưa từ xa bất kỳ mã tùy ý nào vào mạng và giành quyền kiểm soát hoàn toàn đối với nó.

Chuỗi tấn công mạng này bắt đầu với thư viện ghi nhật ký, chẳng hạn như Log4j, thu thập và lưu trữ thông tin nhật ký. Nếu không có thư viện ghi nhật ký, tất cả dữ liệu từ máy chủ sẽ được lưu trữ ngay lập tức sau khi dữ liệu được thu thập.

Nhưng nếu bạn muốn phân tích dữ liệu này hoặc cần thực hiện một số hành động dựa trên thông tin nhật ký cụ thể, bạn sẽ yêu cầu một thư viện ghi nhật ký để phân tích dữ liệu nhật ký trước khi nó được lưu trữ.

Do lỗ hổng Log4j, bất kỳ hệ thống hoặc ứng dụng nào sử dụng Log4j đều dễ bị tấn công mạng. Thư viện ghi nhật ký thực thi mã dựa trên đầu vào. Một hacker có thể buộc thư viện nhật ký thực thi mã có hại vì lỗ hổng bảo mật sẽ cho phép chúng thao túng đầu vào.

Trong khi đó, rất nhiều thứ xảy ra ở chế độ nền. Khi Log4j được chuyển qua một chuỗi được tạo thủ công cụ thể, nó sẽ gọi một máy chủ LDP và tải xuống mã đó được lưu trữ trong thư mục của nó để thực thi mã. Bằng cách này, những kẻ tấn công có thể tạo một máy chủ LDAP để lưu trữ mã độc hại có thể giúp chúng kiểm soát bất kỳ máy chủ nào mà mã được thực thi. Sau đó, nó sẽ gửi một chuỗi hướng mã độc của họ đến một ứng dụng hoặc hệ thống được nhắm mục tiêu và có toàn quyền kiểm soát nó.

Vì vậy, đây là cách lỗ hổng Log4j có thể bị khai thác:

  • Kẻ tấn công tìm thấy một máy chủ có phiên bản Log4j dễ bị tấn công.
  • Họ sẽ gửi cho máy chủ được nhắm mục tiêu một yêu cầu nhận bằng liên kết của máy chủ LDAP độc hại của họ.
  • Máy chủ được nhắm mục tiêu, thay vì xác minh yêu cầu, sẽ kết nối trực tiếp với máy chủ LDAP này.
  • Giờ đây, những kẻ tấn công sẽ gửi cho máy chủ được nhắm mục tiêu một phản hồi máy chủ LDAP có chứa mã độc hại. Do lỗ hổng của Log4j, cho phép nhận mã và thực thi nó mà không cần xác minh, hacker có thể lợi dụng điểm yếu này để đột nhập vào máy chủ mục tiêu và khai thác các hệ thống, mạng và thiết bị được kết nối.

Lỗ hổng Log4j có thể gây hại cho người dùng như thế nào?

Lỗ hổng Log4j đang được quan tâm vì nó được sử dụng trong một loạt các ứng dụng và hệ thống phần mềm.

Vì ghi nhật ký là một tính năng thiết yếu trong hầu hết các ứng dụng phần mềm và Log4j là giải pháp hàng đầu trong không gian, nên Log4j tìm thấy các ứng dụng trong nhiều hệ thống phần mềm khác nhau.

Một số dịch vụ và ứng dụng phổ biến sử dụng Log4j là Minecraft, AWS, iCloud, Microsoft, Twitter, bộ định tuyến internet, công cụ phát triển phần mềm, công cụ bảo mật, v.v. Do đó, những kẻ tấn công có thể nhắm mục tiêu một số lượng lớn các ứng dụng, dịch vụ và hệ thống từ người dùng gia đình, nhà phát triển mã, nhà cung cấp dịch vụ và các chuyên gia và cá nhân có liên quan khác.

Ngoài ra, lỗ hổng Log4j cực kỳ dễ bị kẻ tấn công khai thác. Quá trình tổng thể yêu cầu ít bộ kỹ năng hơn, không phải cấp độ chuyên gia, để thực hiện một cuộc tấn công. Đây là lý do tại sao số lượng các cuộc tấn công khai thác lỗ hổng này ngày càng tăng.

Tác động của lỗ hổng Log4j là:

  • Các cuộc tấn công DoS
  • Các cuộc tấn công chuỗi cung ứng
  • Khai thác tiền xu
  • Chèn phần mềm độc hại như ransomware và trojan Horse
  • Chèn mã tùy ý
  • Thực thi mã từ xa

Và nhiều hơn nữa.

Kết quả của các cuộc tấn công này, bạn có thể mất các ứng dụng, hệ thống và thiết bị của mình và dữ liệu của bạn có thể trở thành con mồi cho những kẻ tấn công có thể bán, thao túng dữ liệu của bạn hoặc để lộ dữ liệu ra thế giới bên ngoài. Do đó, doanh nghiệp của bạn có thể bị tổn hại về quyền riêng tư dữ liệu khách hàng, sự tin cậy, bí mật của tổ chức, thậm chí cả doanh số và doanh thu của bạn, chứ chưa nói đến rủi ro tuân thủ.

Theo một báo cáohơn 40% mạng công ty toàn cầu đã trải qua các cuộc tấn công do lỗ hổng này.

  Sửa lỗi Black Ops 3 ABC trong PS4

Vì vậy, ngay cả khi bạn không sử dụng bất kỳ phiên bản Log4j nào dễ bị tấn công trong các ứng dụng của mình, các tích hợp bên thứ ba của bạn có thể đang sử dụng nó, điều này khiến ứng dụng của bạn dễ bị tấn công.

Lưu ý rằng tất cả các phiên bản Log4j trước Log4j 2.17.0. bị tác động; do đó, bạn phải nâng cấp trình ghi nhật ký nếu bạn sử dụng nó. Ngoài ra, các nhà cung cấp nổi tiếng bị ảnh hưởng bởi lỗ hổng Log4j này là Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet, v.v. Nếu bạn sử dụng bất kỳ nhà cung cấp nào, hãy theo dõi ứng dụng của bạn liên tục và sử dụng hệ thống bảo mật để khắc phục sự cố ngay khi có phát sinh.

Cách phát hiện các chương trình bị ảnh hưởng của Log4j và khắc phục sự cố

Lỗ hổng Log4Shell có điểm 10 trong điểm CVSS. Do đó, tất cả các vấn đề trong Log4j vẫn chưa được vá. Nhưng có khả năng bạn hoặc nhà cung cấp bên thứ ba của bạn có thể đang sử dụng Log4j mà bạn đã sử dụng trong ứng dụng của mình.

Do đó, nếu bạn muốn bảo vệ dữ liệu, hệ thống và mạng của mình, hãy đảm bảo bạn làm theo một số bước khắc phục.

# 1. Cập nhật phiên bản Log4j của bạn

Cập nhật phiên bản Log4j hiện tại của bạn lên Log 4j 2.17.1 là kỹ thuật khắc phục hiệu quả nhất nếu bạn muốn bảo vệ thiết bị và ứng dụng của mình khỏi các cuộc tấn công do lỗ hổng Log4j.

Log4Shell là một kiểu tấn công zero-day có khả năng ảnh hưởng đến hệ sinh thái phần mềm của bạn. Apache đã sửa một số lỗ hổng trong các phiên bản gần đây, nhưng nếu hệ thống của bạn bị xâm nhập trước khi nâng cấp, bạn vẫn gặp rủi ro.

Do đó, giả sử như vậy, bạn không chỉ phải nâng cấp phiên bản mà còn phải bắt đầu các quy trình ứng phó sự cố ngay lập tức để đảm bảo không có lỗ hổng nào trong hệ thống và ứng dụng của bạn và giảm thiểu các cuộc tấn công. Bạn cũng phải xem lại tất cả nhật ký máy chủ của mình để tìm Chỉ số Thỏa hiệp (IOC) và liên tục theo dõi hệ thống và mạng của bạn.

# 2. Sử dụng Tường lửa và Hệ thống An ninh Mới nhất

Tường lửa như Tường lửa ứng dụng web (WAF) và tường lửa thế hệ tiếp theo có thể giúp bảo vệ chu vi mạng của bạn khỏi những kẻ tấn công bằng cách quét các gói dữ liệu đến và đi và chặn các gói dữ liệu đáng ngờ. Vì vậy, hãy sử dụng tường lửa mới nhất trong mạng của bạn và thiết lập các quy tắc gửi đi nghiêm ngặt trên máy chủ của bạn để giúp ngăn chặn các cuộc tấn công liên quan đến lỗ hổng Log4j.

Mặc dù kẻ tấn công có thể vượt qua tường lửa, nhưng bạn vẫn sẽ nhận được một số mức độ bảo mật với tường lửa có thể chặn các yêu cầu của kẻ tấn công.

Ngoài ra, hãy cập nhật tất cả các hệ thống bảo mật của bạn, chẳng hạn như Hệ thống phát hiện xâm nhập (IDS), Hệ thống ngăn chặn xâm nhập (IPS), v.v., với các chữ ký và quy tắc mới nhất. Các hệ thống này sẽ giúp chặn hoặc lọc lưu lượng RMI và LDAP kết nối với máy chủ LDAP độc hại.

# 3. Triển khai MFA

Thiết lập xác thực đa yếu tố (MFA) trong các ứng dụng và hệ thống của bạn sẽ cung cấp khả năng bảo mật tốt hơn khỏi những kẻ tấn công. Nó sẽ cung cấp lớp bảo mật thứ hai ngay cả khi kẻ tấn công cố gắng phá vỡ lớp đầu tiên. Bạn có thể làm điều đó thông qua sinh trắc học như dấu vân tay, quét mống mắt, v.v., đặt câu hỏi bảo mật hoặc bật mã PIN bảo mật.

Sử dụng MFA sẽ làm tăng độ khó và thời gian của kẻ tấn công để thực hiện một cuộc tấn công toàn diện. Đồng thời, nó cũng có thể thông báo cho bạn về sự cố ngay lập tức để bạn có thể thực hiện các bước khắc phục cần thiết khi bạn còn thời gian.

Ngoài ra, bạn cũng phải áp dụng các chính sách VPN nghiêm ngặt để giảm vi phạm dữ liệu. Điều này sẽ cho phép người dùng truy cập hệ thống của bạn một cách an toàn từ mọi nơi mà không sợ những kẻ tấn công.

#4. Thay đổi thuộc tính hệ thống

Trong trường hợp bạn không thể nâng cấp lên phiên bản mới nhất của thư viện Log4j, bạn phải thay đổi thuộc tính hệ thống java của mình ngay lập tức nếu bạn sử dụng phiên bản từ Log4j 2.10 đến Log4j 2.14.1.

Bạn phải thiết lập nó theo cách để ngăn chặn việc tra cứu mà những kẻ tấn công sử dụng để phát hiện các lỗ hổng và sau đó tìm cách khai thác chúng.

# 5. Xóa JNDI

Lý do cho lỗ hổng bảo mật quan trọng này nằm ở thiết kế của nó. Plugin JNDI Lookup có một lỗ hổng thiết kế mà qua đó những kẻ tấn công có thể thực hiện một cuộc tấn công.

JNDI được sử dụng để thực thi mã dựa trên dữ liệu đầu vào trong nhật ký của nó, bất kỳ ai cũng có thể thao tác dễ dàng vì trình ghi chấp nhận bất kỳ yêu cầu nào mà không cần xác minh.

Các nhà nghiên cứu bảo mật đã phát hiện ra rằng plugin này luôn cho phép dữ liệu chưa được phân tích cú pháp kể từ khi nó được phát hành vào năm 2013 và gửi nó đến thư viện Log4j.

  Cách quản lý nhanh chế độ xem phân tách trên Mac

Do đó, lỗ hổng Log4j dễ bị khai thác bằng một chuỗi đơn giản. Khi kẻ tấn công đưa nó vào, trình ghi nhật ký sẽ chấp nhận thao tác được yêu cầu trong chuỗi và thực thi nó ngay lập tức mà không cần xác minh.

Vì vậy, nếu bạn muốn bảo mật hệ thống và ứng dụng của mình, bạn phải vô hiệu hóa lớp – JndiLookup. Điều này sẽ ngăn trình ghi nhật ký thực hiện hành động dựa trên dữ liệu nhật ký.

Trên thực tế, tra cứu JNDI đã bị tắt trong Log4j 2.16.0 theo mặc định nhằm cố gắng bảo mật các ứng dụng và hệ thống của bạn.

Vì vậy, nếu bạn đang sử dụng phiên bản Log4j thấp hơn 2.16.0, hãy đảm bảo rằng bạn đã tắt tính năng Tra cứu JNDI.

# 6. Nói chuyện với nhà cung cấp của bạn

Nếu bạn đã làm đúng mọi thứ, tường lửa và hệ thống bảo mật của bạn được cập nhật, phiên bản Log4j được cập nhật, JNDI Lookup bị vô hiệu hóa, v.v., đừng thư giãn.

Ngay cả khi bạn không sử dụng phiên bản Log4j dễ bị tấn công trong các ứng dụng của mình, các nhà cung cấp bên thứ ba của bạn có thể đang sử dụng phiên bản đó. Vì vậy, bạn sẽ không bao giờ biết ứng dụng hoặc hệ thống của mình bị tấn công như thế nào vì vấn đề thực sự là do tích hợp bên thứ ba của bạn.

Do đó, hãy trao đổi với nhà cung cấp của bạn và đảm bảo rằng họ cũng đã nâng cấp Log4j lên phiên bản mới nhất và triển khai các phương pháp bảo mật khác được thảo luận ở trên.

# 7. Sử dụng Máy quét lỗ hổng Log4j

Có rất nhiều công cụ quét lỗ hổng Log4j có sẵn trên thị trường để giúp bạn dễ dàng phát hiện lỗ hổng Log4j trong hệ thống và ứng dụng của mình.

Vì vậy, khi bạn tìm kiếm các công cụ này, hãy kiểm tra tỷ lệ chính xác của chúng vì nhiều công cụ trong số chúng tạo ra kết quả dương tính giả. Ngoài ra, hãy tìm một công cụ có thể đáp ứng nhu cầu của bạn vì chúng có thể tập trung vào việc xác định lỗ hổng Log4j, báo cáo sự cố và khắc phục lỗ hổng.

Vì vậy, nếu trọng tâm của bạn là phát hiện, hãy tìm một máy quét lỗ hổng Log4j có thể phát hiện vấn đề hoặc sử dụng một máy quét có thể phát hiện và khắc phục sự cố.

Một số công cụ quét Log4j tốt nhất là:

  • Microsoft 365 Defender: Microsoft cung cấp một loạt các giải pháp và công cụ bảo mật để giúp bạn phát hiện và ngăn chặn việc khai thác Log4j trong mạng của mình. Bạn sẽ có thể phát hiện các nỗ lực khai thác và thực thi mã từ xa, bảo vệ bạn khỏi các lỗ hổng Log4j trong các thiết bị Windows và Linux.
  • Amazon Inspector và AWS: Amazon đã tạo một công cụ quét để tìm lỗ hổng Log4j trong các phiên bản Amazon EC2 và Amazon ECR.
  • CloudStrike Archive Scan Tool (CAST): CloudStrike cũng đã tạo ra một công cụ quét tuyệt vời để phát hiện lỗ hổng Log4j nhằm giúp bạn khắc phục sự cố kịp thời trước khi kẻ tấn công có thể khai thác nó.
  • Phát hiện nhật ký đám mây của Google: Giải pháp phát hiện nhật ký đám mây của Google cho phép bạn phát hiện các hoạt động khai thác Log4j bằng Trình khám phá nhật ký. Bạn có thể tạo truy vấn nhật ký trong công cụ này và quét các chuỗi khai thác tiềm năng.
  • Google cũng đã tạo log4jscanner, một trình quét hệ thống tệp mã nguồn mở để phát hiện lỗ hổng Log4j.
  • BurpSuite Log4j Scanner: Đây là một plugin bảo mật dành cho các chuyên gia và doanh nghiệp giúp họ phát hiện lỗ hổng Log4j.
  • Huntress Log4Shell Vulnerability Tester: Công cụ này tạo ngẫu nhiên một số nhận dạng duy nhất mà bạn có thể sử dụng trong khi kiểm tra các trường đầu vào của mình. Khi tìm thấy lỗ hổng trong ứng dụng hoặc trường đầu vào, máy chủ LDAP an toàn của nó sẽ chấm dứt kết nối độc hại ngay lập tức và giữ an toàn cho bạn.
  • WhiteSource Log4j Detect: WhiteSource đã tạo một công cụ CLI miễn phí, WhiteSource Log4j Detect, được lưu trữ trên GitHub để giúp bạn phát hiện và sửa các lỗ hổng Log4j – CVE-2021-445046 và CVE-2021-44228.
  • Các công cụ quét mã nguồn mở của JFrog cho Log4j: JFrog đã tạo ra nhiều giải pháp và công cụ mã nguồn mở khác nhau để tìm các lỗ hổng Log4j trong mã nhị phân và mã nguồn của bạn.

Sự kết luận

Lỗ hổng Log4j là một vấn đề bảo mật quan trọng. Kể từ khi thư viện ghi nhật ký này được sử dụng rộng rãi trong các ứng dụng và hệ thống khác nhau, lỗ hổng Log4j đã trở nên phổ biến, cho phép những kẻ tấn công khai thác một loạt các hệ thống và ứng dụng.

Vì vậy, nếu bạn muốn bảo vệ hệ thống và ứng dụng của mình khỏi lỗ hổng này, hãy đảm bảo bạn nâng cấp thư viện Log4j lên phiên bản mới nhất và thực hiện các phương pháp bảo mật tốt nhất đã thảo luận ở trên.

x