Cảnh báo CCleaner đang bị nhiễm virus và phát tán nhanh
CCleaner là gì
CCleaner là một ứng dụng cho phép người dùng thực hiện bảo dưỡng định kỳ trên hệ thống của họ. Nó bao gồm các chức năng như dọn dẹp các tập tin tạm thời, phân tích hệ thống để xác định cách thức mà hiệu suất có thể được tối ưu hóa và cung cấp một cách đơn giản hơn để quản lý các ứng dụng được cài đặt.
Hình 1: Ảnh chụp màn hình của CCleaner 5.33
Nếu như máy tính của bạn đang chạy CCleaner 5.33, hoặc có tải về/cập nhật CCleaner vào giữa khoảng 15 tháng 8 năm 2017 và 11 tháng 9 năm 2017, hãy ngay lập tức gỡ bỏ phần mềm CCleaner, chạy các phần mềm kiểm tra malware để giảm thiệt hại và tránh việc malware lây lan.
Những phần mềm đáng tin cho tác vụ này có thể kể tới Malwarebytes, với phần mềm cho bạn sử dụng miễn phí trong 14 ngày; Bitdefender Antivirus Free Edition (miễn phí); SUPER AntiSpyWare cũng miễn phí.
Cài lại hệ thống, hay phục hồi về trạng thái máy trước ngày 15 tháng 8 năm 2017 cũng đều là những phương pháp hiệu quả.
Một lưu ý quan trọng: theo như trang chủ cho download CCleaner, thì phiên bản miễn phí sẽ không được tự cập nhật, vì thế malware rất có thể là chỉ tấn công máy tính của bạn thông qua việc cài đặt phần mềm CCleaner 5.33 bằng cách thủ công (tải về và cài).
Ảnh hưởng của vụ tấn công này có thể là rất lớn, xét tới việc CCleaner là một phần mềm nổi tiếng được sử dụng rộng rãi. Nếu bạn đã bị tấn công, hãy thực hiện những biện pháp khắc phục cần thiết; nếu bạn chưa bị tấn công, thì cũng hãy cẩn thận hơn với những file tải về từ mạng Internet trong tương lai.
Vào ngày 13 tháng 9 năm 2017 trong khi tiến hành thử nghiệm beta khách hàng của công nghệ phát hiện khai thác mới của chúng tôi, Cisco Talos xác định một thực thi cụ thể được kích hoạt hệ thống bảo vệ phần mềm độc hại tiên tiến của chúng tôi. Sau khi kiểm tra chặt chẽ hơn, thực thi trong câu hỏi là cài đặt cho CCleaner v5.33, mà đã được chuyển giao cho các điểm cuối của các máy chủ CCleaner tải hợp pháp. Talos đã bắt đầu phân tích ban đầu để xác định những gì đã gây ra công nghệ này để cờ CCleaner. Chúng tôi xác định rằng mặc dù thực thi cài đặt tải đã được ký bằng chữ ký điện tử hợp lệ do để Piriform, CCleaner không phải là ứng dụng duy nhất đi kèm với việc tải xuống. Trong khi cài đặt CCleaner 5.33, 32-bit nhị phân CCleaner được bao gồm cũng chứa một payload độc hại mà đặc trưng một thế hệ tên miền Algorithm (DGA) cũng như hardcoded Command and Control (C2) chức năng. Chúng tôi xác nhận rằng phiên bản độc hại này của CCleaner được đang được lưu trữ trực tiếp trên máy chủ tải về CCleaner như thời gian gần đây như ngày 11 tháng 9 2017.
Khi xem xét các trang sử Phiên bản trên trang web tải về CCleaner, nó xuất hiện rằng phiên bản bị ảnh hưởng (5.33) được phát hành vào ngày 15 tháng 8, năm 2017. Vào ngày 12 tháng 9 năm 2017 phiên bản 5.34 đã được phát hành. Phiên bản có chứa các payload độc hại (5.33) đã được phân phối giữa những ngày này. Phiên bản này được ký bằng chứng chỉ hợp lệ đã được ban hành để Piriform TNHH bởi Symantec và có giá trị thông qua 2018/10/10. Piriform là công ty mà Avast gần đây đã mua và là công ty đầu tiên người đã phát triển các ứng dụng phần mềm CCleaner.
Hình 2: Chữ ký kỹ thuật số của CCleaner 5.33
Một ví dụ thứ hai gắn liền với mối đe dọa này được phát hiện. Mẫu thứ hai này cũng đã được ký kết sử dụng giấy chứng nhận kỹ thuật số hợp lệ, tuy nhiên timestamp ký xấp xỉ 15 phút sau khi mẫu ban đầu được ký kết.
Sự hiện diện của một chữ ký điện tử hợp lệ trên hệ nhị phân CCleaner độc hại có thể là dấu hiệu của một vấn đề lớn dẫn đến các phần của sự phát triển hoặc ký quá trình bị xâm phạm. Lý tưởng nhất là chứng chỉ này phải được thu hồi và không tin cậy tiến lên phía trước. Khi tạo ra một dịch vụ chăm sóc cert mới phải được thực hiện để đảm bảo những kẻ tấn công không có chỗ đứng trong môi trường nào đó để thỏa hiệp giấy chứng nhận mới. Chỉ có quá trình ứng phó sự cố có thể cung cấp chi tiết liên quan đến phạm vi của vấn đề này và làm thế nào để giải quyết tốt nhất nó.
Điều thú vị là các tạo tác biên soạn sau đây đã được tìm thấy trong hệ nhị phân CCleaner rằng Talos phân tích:
S:workspaceccleanerbranchesv5.33binCCleanerReleaseCCleaner.pdb
Với sự hiện diện của vật tổng hợp này cũng như thực tế là nhị phân được chữ ký số sử dụng một chứng chỉ hợp lệ được cấp cho các nhà phát triển phần mềm, có khả năng là một kẻ tấn công bên ngoài tổn hại một phần của sự phát triển của họ hoặc xây dựng môi trường và thừa hưởng truy cập vào để chèn phần mềm độc hại vào CCleaner xây dựng mà đã được phát hành và được tổ chức bởi tổ chức. Nó cũng có thể là một người trong cuộc với quyền truy cập vào một trong hai sự phát triển hay xây dựng môi trường trong tổ chức cố ý bao gồm các mã độc hại hoặc có thể đã có một tài khoản (hoặc tương tự) thỏa hiệp cho phép kẻ tấn công bao gồm mã.
Nó cũng quan trọng cần lưu ý rằng trong khi các phiên bản trước của trình cài đặt CCleaner hiện vẫn có sẵn trên máy chủ tải về, phiên bản có chứa các payload độc hại đã bị xoá và không còn có sẵn.
CÁCH HOẠT ĐỘNG CỦA VIRUS TRÊN CCLEANER
Trong 32-bit CCleaner v5.33 nhị phân bao gồm trong bộ cài đặt CCleaner v5.33 hợp pháp, ‘__scrt_get_dyn_tls_init_callback’ đã được sửa đổi để gọi vào mã ở CC_InfectionBase (0x0040102C). Điều này đã được thực hiện để chuyển hướng dòng chảy thực thi mã trong trình cài đặt CCleaner để mã độc hại trước khi tiếp tục với các hoạt động CCleaner bình thường. Các mã được gọi là có trách nhiệm giải mã dữ liệu, trong đó có hai giai đoạn của payload độc hại, một PIC (Chức vụ Mã độc lập) PE loader cũng như một tập tin DLL mà có hiệu quả chức năng như tải trọng phần mềm độc hại. Tác giả phần mềm độc hại đã cố gắng để giảm việc phát hiện các DLL độc hại bằng cách đảm bảo các IMAGE_DOS_HEADER được xóa trắng, cho thấy kẻ tấn công này đã cố gắng để duy trì dưới radar để phát hiện các kỹ thuật thông thường.
Trình cài đặt sau đó tạo ra một đống thực thi sử dụng HeapCreate (HEAP_CREATE_ENABLE_EXECUTE, 0,0). Không gian sau đó được phân bổ cho đống mới này đó là nơi mà các nội dung của dữ liệu giải mã có chứa phần mềm độc hại được sao chép. Khi dữ liệu được sao chép vào đống, các nguồn dữ liệu bị xóa. Sau đó nạp PE được gọi và bắt đầu hoạt động của nó. Khi quá trình nhiễm trùng đã được bắt đầu, trình cài đặt xóa các vùng bộ nhớ mà trước đây chứa bộ nạp PE và các tập tin DLL, giải phóng bộ nhớ được phân bổ trước, phá hủy đống và tiếp tục trên với hoạt động CCleaner bình thường.
Bộ nạp PE sử dụng vị trí thực hành mã hóa độc lập để xác định vị trí các tập tin DLL trong bộ nhớ. Sau đó nó ánh xạ DLL vào bộ nhớ thực thi, gọi DLLEntryPoint để bắt đầu thực hiện các DLL được nạp và nhị phân CCleaner tiếp tục như bình thường. Một khi điều này xảy ra các phần mềm độc hại bắt đầu thực hiện đầy đủ của nó, sau quá trình được nêu trong các phần sau.
CBkrdr.dll
Các tập tin DLL (CBkdr.dll) đã được sửa đổi trong một nỗ lực nhằm tránh bị phát hiện và có IMAGE_DOS_HEADER zeroed ra. Các DLLEntryPoint tạo ra một chủ đề thực hiện để kiểm soát có thể được trả lại cho bộ nạp. Chủ đề này có nhiệm vụ gọi CCBkdr_GetShellcodeFromC2AndCall. Nó cũng thiết lập một Return Oriented Programming (ROP) chuỗi được sử dụng để deallocate bộ nhớ gắn liền với DLL và thoát khỏi chủ đề.
CCBkrdr_GetShellcodeFromC2AndCall
Chức năng này có nhiệm vụ hầu hết các hoạt động độc hại mà Talos quan sát trong khi phân tích phần mềm độc hại này. Đầu tiên, nó ghi lại thời gian hệ thống hiện tại trên hệ thống bị nhiễm. Sau đó nó sẽ trì hoãn cho 601 giây trước khi tiếp tục hoạt động, khả năng một nỗ lực để trốn tránh hệ thống phân tích tự động được cấu hình để thực hiện các mẫu trong một thời gian xác định trước thời gian hoặc xác định xem phần mềm độc hại đã được thực hiện trong một chương trình gỡ rối. Để thực hiện chức năng chậm trễ này, các phần mềm độc hại gọi là chức năng mà cố gắng ping 224.0.0.0 sử dụng một delay_in_seconds Timeout thiết lập để 601 giây. Sau đó nó sẽ kiểm tra để xác định thời gian hệ thống hiện tại để xem nếu 600 giây đã trôi qua. Nếu điều kiện không được đáp ứng, các phần mềm độc hại chấm dứt thực hiện trong khi nhị phân CCleaner tiếp tục hoạt động bình thường. Trong tình huống mà các phần mềm độc hại là không thể thực hiện IcmpCreateFile, nó sẽ rơi trở lại để sử dụng Sleep () để thực hiện các chức năng tương tự chậm trễ. Các phần mềm độc hại cũng so sánh thời gian hệ thống hiện tại với giá trị được lưu giữ trong vị trí registry sau đây:
HKLMSOFTWAREPiriformAgomo:TCID
Nếu giá trị được lưu trữ trong TCID là trong tương lai, các phần mềm độc hại cũng sẽ chấm dứt thực hiện.
Các phần mềm độc hại sau đó kiểm tra để xác định các đặc quyền gán cho người dùng đang chạy trên hệ thống. Nếu người dùng hiện chạy quá trình độc hại không phải là một quản trị viên phần mềm độc hại sẽ chấm dứt thực hiện.
Nếu người dùng thực hiện các phần mềm độc hại không có quyền quản trị trên hệ thống bị nhiễm, SeDebugPrivilege được kích hoạt cho quá trình này. Các phần mềm độc hại sau đó đọc giá trị của ‘InstallID’ được lưu trữ trong các địa điểm đăng ký sau:
HKLM SOFTWARE Piriform Agomo: MUID
Nếu giá trị này không tồn tại, phần mềm độc hại tạo ra nó bằng cách sử ‘((rand () * rand () ^ GetTickCount ())’.
Một khi các hoạt động nói trên đã được thực hiện, các phần mềm độc hại sau đó bắt đầu profiling thông tin hệ thống và hệ thống thu thập được sau đó truyền đến máy chủ C2 hệ thống thông tin được lưu trữ trong các cấu trúc dữ liệu sau đây.:
Hình 5: Cấu trúc dữ liệu CCBkdr_System_Information
Một khi hệ thống thông tin đã được thu thập, nó được mã hóa và sau đó mã hóa sử dụng sửa đổi Base64. Các phần mềm độc hại sau đó thiết lập một chỉ huy và kiểm soát (C2) kênh như mô tả trong phần sau.
COMMAND AND CONTROL (C2)
Trong khi phân tích phần mềm độc hại này, Talos xác định những gì dường như là một lỗi phần mềm có mặt trong các mã độc hại liên quan đến chức năng C2. Các mẫu mà Talos phân tích đọc một DGA tính địa chỉ IP nằm ở vị trí registry sau đây, nhưng hiện tại không làm gì với nó:
HKLM SOFTWARE Piriform Agomo: NID
Đó là chưa biết gì mục đích của địa chỉ IP này là vào thời điểm này, như các phần mềm độc hại không xuất hiện để tận dụng nó trong các hoạt động tiếp theo. Trong mọi trường hợp, một khi hệ thống thông tin đề cập trước đây đã được thu thập và chuẩn bị sẵn sàng để truyền đến máy chủ C2, phần mềm độc hại sau đó sẽ cố gắng để truyền tải nó sử dụng một yêu cầu HTTPS POST để 216 [.] 126 [.] 225 [.] 148. Các thông tin liên lạc HTTPS tận dụng một tiêu đề chủ HTTP mã hóa cứng được thiết lập để Speccy [.] Piriform [.] Com, một nền tảng hợp pháp mà còn được tạo ra bởi Piriform để theo dõi phần cứng. Điều này có thể thực hiện phân tích động khó khăn hơn như tên miền sẽ xuất hiện để được hợp pháp và thậm chí dự kiến tùy thuộc vào cơ sở hạ tầng nạn nhân. Các yêu cầu cũng tận dụng HTTPS nhưng bỏ qua tất cả lỗi bảo mật như các máy chủ hiện trả về một chứng chỉ SSL tự ký đã được cấp cho các tên miền phụ được xác định trong lĩnh vực tiêu đề Host. Trong trường hợp không nhận được phản hồi từ máy chủ C2, phần mềm độc hại sau đó không trở lại một thế hệ tên miền Algorithm (DGA) như mô tả trong phần ‘Domain thế hệ thuật toán’ của bài viết này.
Khi một máy chủ C2 đã được xác định để sử dụng bởi các phần mềm độc hại, nó sẽ gửi dữ liệu mã hóa có chứa thông tin cấu hình hệ thống và lưu trữ địa chỉ C2 IP ở vị trí registry sau đây:
HKLM SOFTWARE Piriform Agomo: NID
Các phần mềm độc hại sau đó lưu trữ các giá trị của thời gian hệ thống hiện tại cộng với hai ngày vào vị trí registry sau đây:
HKLM SOFTWARE Piriform Agomo: TCID
dữ liệu nhận được từ các máy chủ C2 sau đó được xác nhận để xác nhận rằng dữ liệu nhận được có định dạng chính xác cho một cấu trúc CCBkdr_ShellCode_Payload. Một ví dụ đã được biểu diễn ở dưới:
Hình 6: Cấu trúc dữ liệu CCBkdr_ShellCode_Payload
Các phần mềm độc hại sau đó khẳng định rằng giá trị của EncryptedInstallID phù hợp với giá trị mà trước đây đã được truyền đến máy chủ C2. Sau đó nó phân bổ bộ nhớ cho payload shellcode thức. Sau đó, tải trọng được giải mã bằng Base64 sửa đổi và lưu trữ vào khu vực bộ nhớ vừa được cấp phát. Sau đó nó được giải mã và gọi với địa chỉ của LoadLibraryA và GetProcAddress như thông số. Khi tải trọng đã được thực hiện, bộ nhớ được deallocated và giá trị registry sau đây được thiết lập để thời gian hệ thống hiện tại cộng với bảy ngày:
HKLM SOFTWARE Piriform Agomo: TCID
sau đó bộ đệm nhận được zeroed ra và deallocated. Cấu trúc CCBkdr_ShellCode_Payload cũng được deallocated và phần mềm độc hại sau đó tiếp tục với các hoạt động CCleaner bình thường. Một sơ đồ mô tả các hoạt động cấp cao của phần mềm độc hại này là dưới đây:
Hình 7: Operation Malware Process luồng
Thuật toán
Trong tình huống mà các máy chủ C2 chính không trả lại một phản ứng với yêu cầu HTTP POST được mô tả trong phần trước, phần mềm độc hại không trở lại sử dụng một thuật toán DGA. Các thuật toán được sử dụng bởi phần mềm độc hại này là theo thời gian và có thể được tính bằng giá trị của năm và tháng. Một danh sách các lĩnh vực DGA là dưới đây:
Hình 8: 12 Tháng DGA Genearation
Phần mềm độc hại sẽ tiến hành tra cứu DNS cho mỗi tên miền được tạo ra bởi các thuật toán DGA. Nếu tra cứu DNS không dẫn đến sự trở lại của một địa chỉ IP, quá trình này sẽ tiếp tục. Phần mềm độc hại sẽ thực hiện một truy vấn DNS của miền DGA tích cực và hy vọng rằng hai địa chỉ IP sẽ được trả về từ máy chủ tên quản lý không gian tên miền của DGA. Các phần mềm độc hại sau đó sẽ tính toán một máy chủ C2 thứ bằng cách thực hiện một loạt các hoạt động bit trên các giá trị địa chỉ IP được trả về và kết hợp chúng để xác định địa chỉ máy chủ dự phòng C2 thực tế để sử dụng cho các hoạt động C2 tiếp theo. Một sơ đồ cho thấy quá trình này là dưới đây:
Cisco Talos quan sát trong quá trình phân tích các lĩnh vực DGA đã không được đăng ký, vì vậy chúng tôi đã đăng ký và sinkholed họ để ngăn chặn những kẻ tấn công từ việc có thể sử dụng chúng cho mục đích xấu.
TÁC ĐỘNG TIỀM NĂNG
Tác động của cuộc tấn công này có thể là nghiêm trọng do số lượng rất cao của hệ thống có thể bị ảnh hưởng. CCleaner tuyên bố có hơn 2 tỷ lượt tải về trên toàn thế giới như của tháng mười một năm 2016 và được cho là đang thêm người dùng mới với tốc độ 5 triệu một tuần.
Hình 10: CCleaner Nhân khẩu học người tiêu dùng
Nếu ngay cả một phần nhỏ trong những hệ thống đã bị tổn hại một kẻ tấn công có thể sử dụng chúng cho bất kỳ số lượng mục đích xấu. Hệ thống bị ảnh hưởng cần phải được phục hồi về trạng thái trước khi 15 tháng 8 năm 2017 hoặc cài đặt lại. Người sử dụng cũng nên cập nhật lên phiên bản mới nhất có sẵn của CCleaner để tránh nhiễm trùng. Tại thời điểm viết bài này có nghĩa là phiên bản 5,34. Điều quan trọng cần lưu ý là theo tải CCleaner trang , phiên bản miễn phí của CCleaner không cung cấp thông tin cập nhật tự động, vì vậy đây có thể là một quá trình thủ công cho người dùng bị ảnh hưởng.
Khi phân tích dữ liệu từ xa dựa trên DNS liên quan đến cuộc tấn công này, Talos xác định được một số lượng đáng kể của hệ thống làm các yêu cầu DNS cố gắng để giải quyết các lĩnh vực liên quan đến các lĩnh vực DGA nói trên. Như các lĩnh vực này chưa bao giờ được đăng ký, nó là hợp lý để kết luận rằng các điều kiện duy nhất mà hệ thống sẽ cố gắng giải quyết các địa chỉ IP liên kết với chúng là nếu họ đã bị ảnh hưởng bởi phần mềm độc hại này. Trong khi hầu hết các lĩnh vực liên quan đến DGA này có ít hoặc không có giao thông yêu cầu liên kết với chúng, các lĩnh vực liên quan đến tháng Tám và tháng Chín (mà tương quan với khi mối đe dọa này đã hoạt động trong môi trường tự nhiên) cho thấy hoạt động nhiều hơn đáng kể.
Nhìn vào các hoạt động liên quan đến DNS được quan sát bởi Cisco Umbrella trong tháng tháng 7 năm 2017 (trước khi CCleaner 5.33 được phát hành), chúng tôi quan sát thấy rất ít trong cách yêu cầu DNS để giải quyết địa chỉ IP cho DGA miền liên quan đến phần mềm độc hại này:
Hình 11: Hoạt động DNS cho Tháng Bảy 2017 DGA miền
Như đã đề cập trước đó trong bài viết này, phiên bản của CCleaner gồm phần mềm độc hại này đã được phát hành vào ngày 15, năm 2017. Đồ thị dưới đây cho thấy một sự gia tăng đáng kể số lượng các hoạt động liên quan đến DNS domain DGA sử dụng trong tháng 8 năm 2017:
Hình 12: Hoạt động DNS cho tháng 8 năm 2017 DGA miền
Tương tự như vậy, tên miền DGA gắn liền với tháng 9 năm 2017 phản ánh hoạt động sau đây liên quan đến các nỗ lực để giải quyết các IP liên kết với nó:
Hình 13: Hoạt động DNS cho tháng 9 năm 2017 DGA miền
Lưu ý rằng trong ngày 01 tháng 9 2017 có vẻ như hoạt động DNS chuyển từ miền DGA đã qua sử dụng trong tháng, với địa chỉ trong tháng Chín, phù hợp với thuật toán DGA theo thời gian được mô tả trong “Tên miền thế hệ Algorithm” phần này bài viết trên blog. Sau khi vươn tới Avast chúng tôi lưu ý rằng các máy chủ đã được đưa xuống và trở thành không có sẵn cho hệ thống đã bị nhiễm bệnh. Kết quả là, chúng ta đã thấy một sự gia tăng đáng kể số lượng các yêu cầu đó đã được hướng vào các lĩnh vực DGA failback sử dụng bởi các phần mềm độc hại.
Hình 14: Giao thông Spike Sau server Takedown
Nó cũng đáng chú ý là tại thời điểm bài viết này, phát hiện virus cho mối đe dọa này vẫn còn rất thấp (Các phát hiện đang ở 1/64 tại thời điểm viết bài này).
Hình 14: nhận diện VirusTotal cho CCleaner Binary
Là một phần của câu trả lời của chúng tôi để mối đe dọa này, Cisco Talos đã phát hành bảo hiểm toàn diện để bảo vệ khách hàng. Thông tin chi tiết liên quan đến bảo hiểm này có thể được tìm thấy trong “Bảo hiểm” phần của bài viết này.
PHẦN KẾT LUẬN
Đây là một ví dụ tiêu biểu trong phạm vi mà những kẻ tấn công đang sẵn sàng để đi qua trong nỗ lực của họ để phân phối phần mềm độc hại cho các tổ chức, cá nhân trên toàn thế giới. Bằng cách khai thác các mối quan hệ tin tưởng giữa các nhà cung cấp phần mềm và những người sử dụng phần mềm của họ, những kẻ tấn công có thể được hưởng lợi từ sự tin cậy vốn có của người sử dụng trong các tập tin và máy chủ web được sử dụng để phân phối bản cập nhật. Trong nhiều tổ chức dữ liệu nhận được từ các nhà cung cấp phần mềm thường hiếm khi nhận được cùng một mức độ xem xét kỹ lưỡng vì đó mà được áp dụng cho những gì được coi là nguồn không tin cậy. Những kẻ tấn công đã cho thấy rằng họ sẵn sàng để tận dụng sự tin tưởng này để phân phối phần mềm độc hại trong khi vẫn không bị phát hiện.