Các bộ phim và chương trình truyền hình đã dạy chúng ta liên kết tin tặc máy tính với các nhiệm vụ khó khăn, các âm mưu chi tiết và các kế hoạch phức tạp.
Điều mà nhà nghiên cứu bảo mật Carlos Fernández và tôi đã tìm thấy gần đây trên các cơ quan đăng ký nguồn mở lại kể một câu chuyện khác: những kẻ xấu đang ủng hộ sự đơn giản, hiệu quả và tư duy lấy người dùng làm trung tâm. Và để đưa mã độc của họ lên một tầm cao mới, họ cũng đang thêm các tính năng mới được hỗ trợ bởi ChatGPT.
Cũng giống như phần mềm dưới dạng dịch vụ ( SaaS ), một phần lý do tại sao các dịch vụ cung cấp phần mềm độc hại dưới dạng dịch vụ (MaaS) như DuckLogs , Redline Stealer và Racoon Stealer trở nên quá phổ biến ở các thị trường ngầm là chúng có các kênh hỗ trợ khách hàng tích cực và các sản phẩm của họ có xu hướng bóng bẩy và thân thiện với người dùng. Chọn các hộp này, điền vào biểu mẫu này, nhấp vào nút này… Đây là mẫu phần mềm độc hại sẵn sàng sử dụng của bạn! Không cần phải nói, những sản phẩm này thường được xây dựng bởi tội phạm mạng chuyên nghiệp.
Trong các dịch vụ MaaS ít phổ biến hơn mà chúng tôi đã tìm thấy ngoài tự nhiên, chẳng hạn như công cụ lấy mã thông báo Discord Z3US , có một nỗ lực để kết hợp các nguyên tắc thiết kế lấy con người làm trung tâm, nhưng sản phẩm không hỗ trợ khách hàng. Hầu hết được điều hành và sử dụng bởi thanh thiếu niên, các tài khoản Telegram được liên kết chứa đầy những lời phàn nàn và những lời “nói xấu” thù địch do một lời hứa không thành về “bảo hành trọn đời”:
Ngay cả trước khi tôi tham gia Sonatype, tôi đã tự hỏi bộ mặt hiện đại của tội phạm mạng trông như thế nào . Và giờ đây, khi tôi đang theo dõi một loạt các chiến dịch và những kẻ xấu từ khắp nơi trên thế giới, tôi đã hiểu ra một điều: hầu hết các gói độc hại mà nhóm nghiên cứu bảo mật khiến tôi chú ý không phải là sản phẩm của một thiên tài kỳ quặc đội mũ trùm đầu. mã hóa từ một tầng hầm tối chứa đầy màn hình. Nhờ bản chất đơn giản của MaaS, bất kỳ ai cũng có thể dễ dàng tạo và tải các mẫu phần mềm độc hại lên cơ quan đăng ký nguồn mở với chi phí thiết lập và kiến thức kỹ thuật tối thiểu.
Các nhà nghiên cứu của Avast đã quan sát thấy rằng kể từ khi bắt đầu xảy ra đại dịch Covid-19, các nền tảng như Discord và Telegram ngày càng trở nên phổ biến trong giới trẻ. Thay vì sử dụng phương tiện truyền thông xã hội chính thống, những thanh thiếu niên này tạo ra các cộng đồng phần mềm độc hại trong Discord với mục đích chơi trò chơi, trò chuyện và giao tiếp xã hội mà không có sự giám sát của cha mẹ. Các cộng đồng này thường được dẫn dắt bởi các thành viên thành thạo kỹ thuật nhất, những người thể hiện bằng cách sở hữu các máy chủ cạnh tranh hoặc thậm chí bằng cách chia sẻ ảnh chụp màn hình có thông tin mà họ đã đánh cắp từ những nạn nhân không ngờ tới. Họ cũng đang tích cực tìm kiếm các thành viên khác dựa trên kỹ năng lập trình hoặc tiềm năng đóng góp cho các chiến dịch của họ.
Do hậu quả không mong muốn của các hoạt động này, các cơ quan đăng ký nguồn mở linh hoạt mà chúng tôi dựa vào đang phải đối mặt với tình trạng quá tải tài nguyên. Chỉ riêng tháng trước, các nhà nghiên cứu bảo mật của chúng tôi đã xác nhận 6.933 gói được tải lên cơ quan đăng ký npm và PyPI là độc hại.
Gần đây, chúng tôi đã theo dõi chiến dịch của một nhóm nói tiếng Tây Ban Nha có tên là EsqueleSquad đã tải hơn 5.000 gói lên PyPI. Tải trọng trong các gói này đã cố tải xuống Windows Trojan từ Dropbox, GitHub và Discord bằng cách sử dụng lệnh PowerShell.
Sau đó, chúng tôi đã điều tra các hoạt động của một nhóm khác có tên là SylexSquad, có thể đến từ Tây Ban Nha, nhóm này đã tạo ra các gói chứa phần mềm độc hại được thiết kế để đánh cắp thông tin nhạy cảm. Ngoài việc quảng cáo sản phẩm của họ bằng video YouTube và bán chúng trên thị trường, họ còn có một cộng đồng Discord nhỏ để tuyển dụng thành viên mới. Và dường như họ có nhiều thời gian để gây ô nhiễm chuỗi cung ứng phần mềm mã nguồn mở.
Trong tuần đầu tiên của tháng 4, hệ thống AI của chúng tôi đã gắn cờ một loạt gói được tải lên PyPI là đáng ngờ, sau đó được các nhà nghiên cứu bảo mật của chúng tôi xác nhận là độc hại. Các gói này có mẫu đặt tên bao gồm tiền tố “py”, theo sau là tham chiếu đến phần mềm chống vi-rút: pydefenderultra , pyjunkerpro , pyanalizate và pydefenderpro .
Carlos Fernández nhận thấy các gói đã được ghi có vào nhóm SylexSquad, gợi ý về việc tiếp tục chiến dịch mà chúng tôi đã theo dõi trước khi liên quan đến các gói reverse_shell và sintaxisoyyo . Sau khi thực hiện khám phá này, chúng tôi bắt đầu lập bản đồ các hoạt động của họ.
Trong trò chơi mèo vờn chuột, mỗi khi chúng tôi xác nhận một trong các gói này là độc hại, nhóm PyPI sẽ giúp chúng tôi gỡ gói đó xuống và vài giờ sau, những kẻ xấu sẽ lẻn vào một gói có tên tương tự.
Để cung cấp cho bạn bức tranh đầy đủ về chiến dịch này, hãy tóm tắt lại những phát hiện ban đầu của chúng tôi:
Nếu các nhà phát triển cài đặt gói PyPI reverse_shell , setup.py
sẽ thực thi bypass.py
, một tập lệnh bị xáo trộn nhẹ được lưu trữ trên GitHub và được mã hóa dưới dạng một chuỗi số tương ứng với mã ASCII.
Sau khi giải mã mã nguồn, nó sẽ tạo các giá trị đăng ký mới trên Windows để duy trì sự bền bỉ và do đó, nó sẽ gọi một tệp được lưu trữ trên GitHub khác, WindowsDefender.py
, một trình đánh cắp thông tin. Dữ liệu nhạy cảm như thông tin trình duyệt (lịch sử, cookie, mật khẩu…), tài khoản Steam, tài khoản Telegram, thẻ tín dụng và thậm chí cả ảnh chụp màn hình máy tính của nạn nhân sẽ được tải lên bằng webhook Discord của kẻ tấn công.
Chuyển nhanh đến các gói mới được ghi có cho nhóm này và chúng tôi tìm thấy một setup.py
hoàn toàn khác bao gồm mã bị xáo trộn nặng nề (mã hóa AES 256) được tạo bằng Pyobfuscate , một dịch vụ hứa hẹn “bảo vệ bằng 4 lớp thuật toán”. Trước khi Carlos xắn tay áo thực hiện quy trình giải mã mã nguồn, chúng tôi chỉ có thể tìm ra hai mẩu thông tin từ biển mã được ngụy trang: URL dịch vụ và một thông báo có thể đọc được: ' why, are, you, reading, this, thing, huh
' Mỗi từ trong thông báo đó là một biến được sử dụng cho quá trình giải mã mã nguồn:
Tôi sẽ không đi vào chi tiết về cách hoạt động của Pyobfuscate, nhưng với sự kiên nhẫn và kiến thức chuyên môn, Carlos đã gỡ mã nguồn thành công và để lộ hình dạng thật của nó. Anh ấy thấy thú vị khi nội dung bị xáo trộn không chỉ có trong setup.py
mà còn có trong WindowsDefender.py
có thể đọc được trước đó, ban đầu được lấy từ GitHub và bây giờ là từ dịch vụ transfer.sh .
Khi những kẻ xấu không hành động đủ nhanh, rất có thể các nhà nghiên cứu bảo mật như chúng tôi —và các quy tắc của GitHub về việc không cho phép nền tảng được sử dụng làm CDN chứa phần mềm độc hại — sẽ phá hỏng kế hoạch của chúng. Đó là trường hợp của WindowsDefender.py
, ban đầu được lưu trữ trên repo GitHub “joeldev27” khi nó được sử dụng bởi các gói PyPI pycracker và pyobfpremium và không hoạt động ngay sau đó.
Vì tên tệp đó đã được sử dụng một cách nhất quán nên tôi đã tìm hiểu kỹ và thấy rằng WindowsDefender.py
được lưu trữ trên một kho lưu trữ GitHub có tên là CosasRandoms480 . Khi tôi chia sẻ phát hiện này với Carlos, anh ấy trả lời với vẻ ngạc nhiên: “Trong vài giờ tới, một gói mới sẽ xuất hiện trên PyPI với setup.py
bị làm rối. Sau khi cài đặt, nó sẽ tải xuống từ kho lưu trữ mà bạn vừa tìm thấy một tập lệnh bị xáo trộn nặng nề có tên WindowsDefender.py
, tập lệnh này sẽ thiết lập một cơ chế duy trì và tải xuống trình đánh cắp thông tin mà chúng tôi đã điều tra trước đây, cũng có tên là WindowsDefender.py
.”
Dự đoán của anh ấy đã trở thành hiện thực khi gói pyobfadvance xuất hiện chưa đầy 30 phút sau trên PyPI, sử dụng hiệu quả “CosasRandoms480” làm CDN phần mềm độc hại. Chúng tôi đã báo cáo nó với nhóm PyPI và nó đã bị gỡ xuống ngay sau đó.
Các nhà khoa học và triết gia đã tự hỏi liệu chúng ta có đang sống trong một mô phỏng máy tính hay không . Làm việc như một nhà nghiên cứu bảo mật chắc chắn cảm thấy như vậy. Bạn bị mắc kẹt trong vòng lặp nghiên cứu, khám phá và báo cáo, và những mối đe dọa tương tự cứ lặp đi lặp lại.
Hai ngày sau, một gói tín dụng SylexSquad mới được gắn cờ trên hệ thống của chúng tôi: pydefenderpro. setup.py
bị xáo trộn tương tự. Cùng một URL từ cùng một repo GitHub đang thực thi cùng một WindowsDefender.py
với cùng một mã cơ chế lưu giữ lâu dài và cùng một lần thực thi trình đánh cắp thông tin trong WindowsDefender.py
. Mọi thứ trông giống nhau, nhưng tệp không còn bị xáo trộn nữa và một tập lệnh mới đang được gọi từ transfer.sh :
“Đó là CHUỘT!” Carlos đã nhắn tin cho tôi trên Slack . “Và cũng là một kẻ đánh cắp thông tin–”
“Chuột đột biến à?” Tôi đã trả lời, đề cập đến một xu hướng mà chúng tôi đã theo dõi trong tự nhiên của một loại phần mềm độc hại kết hợp các trojan truy cập từ xa và các phần mềm đánh cắp thông tin.
“Chính xác,” Carlos nói.
Nghiên cứu của OSINT tiết lộ rằng mã RAT mới không phải là bản gốc mà là bản sao của một bản sao của DiscordRAT :
Rửa sạch và lặp lại : một gói độc hại được báo cáo cho nhóm PyPI và nhóm PyPy sẽ gỡ gói đó xuống.
Tất nhiên, một gói mới, pydefenderultra, đã xuất hiện ngay sau đó. Điều khác biệt ở đây là những kẻ xấu đã chuyển sang dịch vụ pastebin.pl thay vì GitHub để tải xuống WindowsDefender.py
, có thể là do kho lưu trữ “CosasRandoms480” đã bị vô hiệu hóa.
Chúng tôi nghi ngờ rằng phiên bản có thể đọc được của WindowsDefender.py
giúp dễ dàng xác nhận rằng nó vi phạm các quy tắc GitHub . Nhưng tại sao các diễn viên xấu lại quyết định giải mã kịch bản? Nó có quá phức tạp đối với quy trình đơn giản của họ không?
RAT tiếp tục biến đổi. Menu và nhận xét hiện đã được dịch sang tiếng Tây Ban Nha và có các chức năng bổ sung.
Chu kỳ tiếp tục khi họ tải lên một gói khác, pyjunkerpro . Lần này, các chức năng được thêm vào bao gồm keylogger, máy ghi âm, lọc dữ liệu hệ điều hành và khả năng tải bất kỳ tệp nào từ nạn nhân lên kênh Discord của kẻ tấn công. Các nhận xét về mã này nhiều một cách bất thường, thường chỉ liên quan đến mã hướng dẫn chứ không phải một phần mềm độc hại.
“Đợi đã,” Carlos nói, suy nghĩ thành tiếng, “Nếu họ đang sử dụng AI để tạo ra các chức năng mới thì sao?”
Các công cụ như GPTZero và Copyleaks cung cấp một điểm khởi đầu tốt để phát hiện văn bản do AI tạo ra. Tuy nhiên, việc xác định mã do AI tạo ra vẫn còn là một thách thức, vì hiện tại không có công cụ nào (mà tôi biết) có khả năng thực hiện điều đó một cách chính xác. May mắn thay, con người vẫn rất giỏi trong việc nhận ra các mẫu…
Tôi nhanh chóng mở tab ChatGPT và nhập lời nhắc bằng tiếng Tây Ban Nha, được dịch thành: “Viết mã Python cho bot Discord tải âm thanh lên từ máy tính từ xa bằng PyAudio.” Đầu ra tôi nhận được giống nhau một cách kỳ lạ:
Có vẻ như chúng tôi đang theo dõi những đứa trẻ tập lệnh đã sao chép mã từ nhiều nguồn khác nhau rồi sử dụng ChatGPT để thêm các khả năng mới. Mã duy nhất thu được đã mang lại cho họ sự tự tin để quảng cáo nó trên YouTube hoặc bán nó thông qua thị trường của riêng họ. Và không ai có thể nghi ngờ nó không phải là một sáng tạo ban đầu.
Điều này đặt ra một câu hỏi hấp dẫn: chúng ta nên gọi những diễn viên xấu này là gì? Những đứa trẻ được viết kịch bản bằng AI? Nhắc nhở trẻ em?
Tôi đã hỏi ChatGPT và nó nói: Nếu một cá nhân đang sử dụng ChatGPT để thêm các khả năng mới vào phần mềm độc hại của họ, thì họ có thể được coi là một loại tin tặc cao cấp hơn so với một đứa trẻ tập lệnh truyền thống. Thay vào đó, có thể chính xác hơn khi gọi họ là "tin tặc" hoặc "tin tặc được hỗ trợ bởi AI".
Lôi cuốn.
ChatGPT đang mang lại cho họ nhiều trạng thái hơn.
Để thử nghiệm, Carlos muốn thử một lời nhắc để xem liệu công cụ này có giúp chúng tôi hiểu sâu hơn về hoạt động của những kẻ xấu hay không.
“Tôi cần mã Python có thể sử dụng API Discord làm bot (sử dụng mã thông báo). Tập lệnh sẽ kết nối với bot và hiển thị thông tin bang hội, thành viên bang hội, kênh bang hội và lịch sử tin nhắn.”
Đúng như dự đoán, ChatGPT đã tạo mã nhận xét nhiều và hướng dẫn rõ ràng để bắt đầu: Để sử dụng mã này, hãy thay thế "your_bot_token_here" bằng mã thông báo bot của bạn và chạy tập lệnh Python . Vì vậy, chúng tôi đã sao chép mã thông báo mà "tin tặc hỗ trợ bởi AI" đã thêm vào MicrosoftUpdate.py
và dán mã đó vào tập lệnh Python do AI tạo của chúng tôi.
Chúng tôi đã chạy mã đó…
…và chúng tôi đã tham gia! Chúng tôi đã thu thập thông tin về các thành viên (MEE6, $Demon666, $̷y̷n̷t̷a̷x̷E̷r̷r̷o̷r̷, aitanaxx05 + 4 reps, Esmeralda, SylexNaranjoDomina và AI Image Generator), các kênh và lịch sử tin nhắn. Hóa ra, họ đã lây nhiễm cho một số người dùng — chúng tôi đã xác định được một IP từ Cuba và một IP khác từ Ấn Độ. Và thông tin về hệ điều hành đã được lọc ra các kênh được đặt tên theo tên người dùng của nạn nhân bị nhiễm:
Chúng tôi phát hiện ra rằng chúng tôi đã kết nối với một bot có tên “SylexNaranjoDomina'' có đặc quyền của quản trị viên. Điều này có thể cho phép ai đó thêm thành viên, xóa webhook hoặc sửa đổi các kênh hiện có.
Ai đó có thể dễ dàng thay đổi tên bang hội từ “Máy chủ của Demon666” thành “Máy chủ của Script Kiddie” – một mô tả phù hợp cho loại diễn viên xấu này, mặc dù tôi tin rằng ChatGPT có thể phản đối ý tưởng đó.
Cuộc điều tra này cho thấy rõ ràng rằng sự phổ biến của MaaS và việc sử dụng mã do AI hỗ trợ đã tạo ra cơ hội mới cho những kẻ xấu kém thành thạo về mặt kỹ thuật. Với nhiều người dùng hơn tận dụng các công cụ và dịch vụ này, thậm chí còn có nhiều cơ hội hơn cho các gói độc hại lây nhiễm môi trường xây dựng của bạn. Khi bối cảnh an ninh mạng tiếp tục phát triển, thì hệ thống phòng thủ của chúng ta cũng vậy. Bằng cách cập nhật thông tin, thận trọng và được bảo vệ, chúng ta có thể đi trước một bước trước mối đe dọa luôn thay đổi của tội phạm mạng.