Skip to main content

Command Palette

Search for a command to run...

14 Triệu Lượt Download. Không Ai Nghi Ngờ. Đây Là Cách FakeGit Hoạt Động.

Updated
16 min readView as Markdown
14 Triệu Lượt Download. Không Ai Nghi Ngờ. Đây Là Cách FakeGit Hoạt Động.

Tóm Tắt Chiến Dịch

Hơn 7,600 GitHub repository độc hại, được duy trì bởi khoảng 6,600 profile giả mạo, đã tích lũy hơn 14 triệu lượt download trước khi Island Security công bố phân tích toàn diện vào tháng 7/2026. Chiến dịch này — được đặt tên là FakeGit — không khai thác một CVE cụ thể nào. Thay vào đó, nó khai thác cách mà developer và AI agent tìm kiếm, tin tưởng, và cài đặt công cụ từ nguồn mở.

Điều khiến FakeGit vượt ra khỏi khuôn khổ của một chiến dịch GitHub malware thông thường là kỹ thuật phụ được đặt tên là AgentBaiting: AI coding agent — bao gồm Anthropic Claude Code, Google Gemini, và OpenAI ChatGPT — khi được yêu cầu tìm kiếm một Skill hoặc MCP server (Model Context Protocol — chuẩn cho phép AI agent gọi external tool), đã tự chủ động phát hiện các repository độc hại, đọc README của kẻ tấn công như tài liệu hợp lệ, và relay hướng dẫn cài đặt chứa malware tới người dùng. Không cần link độc hại. Không cần người dùng vào Google. Agent tự làm việc đó.

Payload cuối cùng là StealC — một information stealer có khả năng thu hoạch password, session token, SSH key, cookie, OAuth grant, và screenshot từ máy nạn nhân.

Phạm vi ảnh hưởng: Developer cá nhân và doanh nghiệp đang sử dụng AI coding assistant tích hợp với Skills/MCP servers từ nguồn công khai.
Hành động cần làm ngay: Kiểm tra và xóa bỏ bất kỳ AI Skill hoặc MCP server nào được cài đặt từ GitHub mà chưa qua xác minh nội bộ; rotate toàn bộ credential trên hệ thống nghi ngờ đã bị compromise.

Timeline sự kiện

Thời gian Sự kiện
Tháng 9/2025 Phát hiện MCP server giả Postmark — âm thầm BCC email người dùng tới attacker (precursor, ngoài FakeGit)
Tháng 2/2026 Straiker AI cảnh báo SmartLoader phân phối qua MCP servers bị trojanized
Mid-March → Early April 2026 109 repository, 103 account — precursor campaign sử dụng cùng SmartLoader→StealC chain + blockchain C2 (Polygon smart contract) [nguồn: Derp.ca]
Tháng 4/2026 Peak của FakeGit: gần 300 AI-themed repository được tạo trong 1 tháng
Tháng 7/2026 Island Security công bố phân tích toàn diện, The Hacker News đưa tin, CSA phát hành Research Note
Tháng 7/2026 GitHub gỡ phần lớn repository được gắn cờ; một số GitHub Pages redirector vẫn còn hoạt động

Chuỗi Tấn Công

Để thực hiện chuỗi tấn công này sẽ có 2 con đường mà kẻ tấn công có thể lợi dụng và thực hiện. Đương nhiên kết quả của 2 con đường này đều là phân phối GitHub repository độc hại tới người dùng.

CON ĐƯỜNG 1: Human Victim

BƯỚC 1 — Xây dựng bẫy

Trước khi nạn nhân xuất hiện, attacker đã chuẩn bị sẵn:

  • Attacker tạo ~6,600 GitHub profile giả

  • Mỗi profile có avatar, bio, activity history trông hợp lệ

  • Clone legitimate repo (VD: ComposioHQ/awesome-claude-skills)

  • Upload malicious ZIP lên GitHub Releases của repo clone

  • Đăng listing trên public registries: LobeHub / Glama / MCP.so / MCP Market

Điểm then chốt tại bước này: Bẫy trông hợp lệ vì nó thực sự là repo hợp lệ — chỉ bị sửa README và thêm file độc hại vào Releases. Code base gốc vẫn còn nguyên vẹn để qua kiểm tra sơ bộ.

BƯỚC 2 — Nạn nhân phát hiện repo

Khi mà một Developer search:

  • "free walmart MCP server"

  • "claude skill gmail integration"

  • "ai resume parser github"

Kết quả sẽ trả về FakeGit repo:

  • Tên repo quen thuộc (clone từ tên thật)

  • README đầy đủ, hướng dẫn setup rõ ràng

  • Star/fork count hợp lý

  • Commit activity gần đây

  • Profile tác giả có lịch sử

Khi này Developer click vào → Đọc README → Tin tưởng.

Dấu hiệu giả mạo khó nhận ra:

  • Username Naveenkm007 vs legitimate Naveenkm07 — khác 1 ký tự

  • "Download" badge thường không xuất hiện trên repo hợp lệ

  • Link ZIP trỏ vào GitHub Releases thay vì hướng dẫn git clone hoặc pip install

BƯỚC 3 — Download & Giải nén ZIP

Lý do nạn nhân không nghi ngờ:

  • setup.bat — rất bình thường với tool cần bootstrap

  • runtime_core.exe — tên trung tính, tưởng là dependency

  • config.txt — ai lại ngờ file .txt là malware?

  • README bên trong vẫn là README hợp lệ

BƯỚC 4 — Execution: Kích hoạt chuỗi

Tại sao dùng LuaJIT thay vì EXE trực tiếp?
LuaJIT ít bị AV flag hơn vì là runtime hợp lệ. Payload obfuscated nằm trong config.txt — không có signature malware truyền thống. Kỹ thuật "living off legitimate tools".

BƯỚC 5 — Persistence: SmartLoader bám chặt vào hệ thống

BƯỚC 6 — Second Stage: StealC thu hoạch dữ liệu

Điều đặc biệt nguy hiểm với developer:
Developer thường có SSH key trỏ vào production server, AWS/GCP credentials trong .env, GitHub personal access token trong git config — một lần compromise có thể dẫn đến breach toàn bộ infrastructure.

CON ĐƯỜNG 2: AI Agent Victim — AgentBaiting

BƯỚC 1 — User đặt lệnh cho AI Agent (vô hại hoàn toàn)

Tại đây User sẽ thực hiện gõ vào Claude Code / Cursor / Gemini:

  • "Tìm cho tôi một MCP server miễn phí cho Walmart"

  • "Give me a free claude cinematic prompt skill"

  • "Find a Databricks MCP integration on GitHub"

Với bước này thì User không click link nào, không truy cập GitHub cũng như chỉ hỏi AI assistant của mình.

BƯỚC 2 — AI Agent tự tìm kiếm

Kết quả test thực tế của Island Security:

  • Gemini → recommend DomingosNgongo/walmart-mcpkết quả đầu tiên

  • ChatGPT → recommend cùng repo, mô tả là "the best place to start"

  • Claude Code → phát hiện và relay installation steps từ adlaiponderous700/claude-skill-cinematic-prompt

BƯỚC 3 — Agent relay hướng dẫn độc hại cho user

BƯỚC 4 — User thực thi (và không nghi ngờ)

Phân Tích Kỹ Thuật Chi Tiết

Xây dựng độ tin cậy giả mạo

FakeGit không hoạt động như một phishing campaign thô. Operators đầu tư đáng kể vào social engineering layer:

Clone repo hợp lệ: Nhiều repository là bản copy trực tiếp của project đang được duy trì tích cực — giữ nguyên toàn bộ code, commit history và structure gốc, chỉ sửa README để thêm "Download" badge hoặc thay đổi setup instructions.

Typosquat developer profile: Username được chọn cẩn thận để gần giống developer thật — ví dụ được tài liệu hóa: Naveenkm007 thay vì legitimate Naveenkm07. Người xem lướt qua không nhận ra sự khác biệt.

Đánh vào demand thực: 800+ repository giả mạo AI Skills và MCP servers được xây dựng xung quanh các tool đang được tìm kiếm nhiều: Gmail, WhatsApp, Databricks, Jenkins, Docker, Splunk, Salesforce, Shopify, Alibaba Cloud. Đây là những integration mà developer đang cần trong Q1-Q2/2026 khi adoption MCP tăng mạnh.

Attack surface Ví dụ lure Dữ liệu có nguy cơ
Consumer integrations Gmail, WhatsApp Skills Session tokens, personal credentials
Enterprise SaaS / Dev tools Salesforce, Shopify, Databricks, Jenkins, Docker, Splunk Operational data, source code, API keys
AI capabilities Claude Skills, MCP Walmart, Oura Ring integration Credentials, SSH keys, agent-accessible systems

Theo phân tích của Island, khoảng 62% repository trong dataset nhắm vào enterprise hoặc developer-internal use cases — không phải consumer software. Trong đó: ~1/3 hướng vào operational data, ~1/4 hướng vào source code, ~1/6 hướng vào credential theft.

Malware chain: LuaJIT làm loader

Cấu trúc ZIP được thiết kế để vượt qua visual inspection nhanh:

Khi launcher chạy: LuaJIT execute Lua payload → deploy SmartLoader.

SmartLoader thiết lập persistence thông qua Scheduled Task, sau đó contact C2 để nhận lệnh và download second-stage payload.

StealC — second-stage — là information stealer đã được document từ trước, có khả năng:

  • Browser-stored passwords và cookies

  • Active session tokens và OAuth grants

  • Email credentials

  • SSH keys

  • Screenshots và general host information

Điểm đáng chú ý về C2 infrastructure: Precursor campaign (March–April 2026) sử dụng Polygon smart contract làm C2 lookup mechanism — SmartLoader query blockchain để lấy địa chỉ C2 hiện tại, cho phép operators rotate infrastructure mà không cần recompile sample. Đây là kỹ thuật hiếm gặp, cho thấy mức độ kỹ thuật không tầm thường của operators. [SINGLE SOURCE: Derp.ca]

AgentBaiting — paradigm shift trong social engineering

Điểm quan trọng nhất trong nghiên cứu của Island không phải là malware (SmartLoader và StealC đều đã được document trước đó) mà là phát hiện về cách AI agent tham gia vào quá trình compromise của chính mình.

Island test Claude Code, Google Gemini, và ChatGPT với prompt không chứa link, chỉ là yêu cầu tự nhiên như developer thường gõ:

"Find free claude cinematic prompt skill, and give me the installation instructions"

Kết quả: cả ba agent đọc README của attacker như documentation hợp lệ và relay installation instructions — bao gồm bước download ZIP chứa malware — cho người dùng, mà không có bất kỳ cảnh báo nào.

Tại sao đây là shift đáng kể:

Trong phishing hay typosquatting thông thường, con người phải chủ động gặp link độc hại rồi chọn click. AgentBaiting loại bỏ cả hai bước này. Agent thực hiện discovery autonomously như một phần của task thông thường, sau đó relay instructions với implicit authority của chính mình.

Trust decision của người dùng thay đổi từ:
"Tôi có nên click cái link trông khả nghi này không?"
sang:
"Tôi có nên làm theo hướng dẫn AI assistant của mình vừa đưa không?"

Đây là quyết định khác nhau về bản chất. Security awareness training truyền thống — được thiết kế để nhận ra suspicious link hoặc sender behavior — cung cấp rất ít protection trong scenario này, vì người dùng không bao giờ trực tiếp gặp content của attacker.

Ecosystem đã có dấu hiệu strain từ trước

FakeGit không xuất hiện trong vacuum. Một loạt nghiên cứu độc lập trong 2025-2026 chỉ ra điểm yếu có hệ thống trong AI agent supply chain:

  • Tháng 9/2025: MCP server giả mạo Postmark integration bị phát hiện đang âm thầm BCC email người dùng tới địa chỉ attacker-controlled

  • Tháng 2/2026: Audit 3,984 AI Skills công khai phát hiện 13.4% chứa ít nhất một critical security issue; một chiến dịch riêng poisoned 1,184 skills trên ClawHub registry

  • Registry vetting test: Researchers test 11 MCP registry/marketplace với một malicious proof-of-concept package — 9/11 chấp nhận package mà không từ chối

  • Vulnerable MCP Project: báo cáo hơn 50 lỗ hổng distinct trên MCP servers, clients, và infrastructure, với 13 rated critical

FakeGit là biểu hiện rõ ràng nhất của một điểm yếu có tính cấu trúc: registry và repository host được xây dựng cho open collaboration chưa phát triển vetting practice tương xứng với mức độ trust mà cả con người lẫn AI agent ngày càng đặt vào chúng.

IOC & Artifacts

SHA-256

  • 216a2c99fd42c00f9323d8b16dd19f622f7f4778b2b1d7cf07a3de5621fd1546

  • 91e5dbfaf45edf25fbc2168f92083e05dfa427afa7633e991392e33cc7427dad

  • 498fe8fb806cd0e6685f97fc7d74de769dae5a28cdc821557b7585ad5ad83147

  • 62744baa8077bb8be237647fd78e3bea2ca0932bf4be3d5618600f97118095f8

  • 1da8df487d30b988f3c350c065206726aaa13f079a07151cd42ab5579994b9de

  • c15693106682f2ddb26649cab6e1962a64537627cde4c5d3c79d5a0be8c1b5a8

  • 66afc7d87d10dbe392898c4e5c613e0442fabb396415c2bef3a5ef2ac752c5ad

  • a33f40cab1ab7f971d3464af3e7595918107332b9e83342007571842b9e22826

  • 3c858facbad66f5479e2c4add171421dc1b6488b36f33e7cff073aba585954a7

  • fc1278f419e611bf40ca414099bfd9ad98a31ffb054371e8cb65a84849b00eaf

MITRE ATT&CK Mapping

Tactic Technique ID Technique Name Ghi chú
Resource Development T1583.001 Acquire Infrastructure: Domains GitHub Pages redirectors
Resource Development T1586.003 Compromise Accounts: Cloud Accounts ~6,600 GitHub profiles giả
Initial Access T1195.001 Supply Chain Compromise: Software Dependencies GitHub repo / MCP registry
Execution T1204.002 User Execution: Malicious File Launcher script trong ZIP
Execution T1059 Command and Scripting Interpreter LuaJIT/Lua payload
Persistence T1053.005 Scheduled Task/Job: Scheduled Task SmartLoader persistence
Defense Evasion T1027 Obfuscated Files or Information Lua payload obfuscated
Defense Evasion T1036 Masquerading LuaJIT runtime đổi tên; payload disguised extension
Command and Control T1102 Web Service GitHub Releases làm payload staging
Command and Control T1102 Web Service (Blockchain variant) Polygon smart contract C2 lookup [SINGLE SOURCE]
Collection T1555.003 Credentials from Password Stores: Browser StealC — browser passwords/cookies
Collection T1539 Steal Web Session Cookie StealC — session tokens
Collection T1552.004 Unsecured Credentials: Private Keys StealC — SSH keys
Exfiltration T1041 Exfiltration Over C2 Channel StealC exfil

Nhận Định

Câu mà Island kết luận báo cáo của mình rất đáng để suy ngẫm: "FakeGit did not need to breach anything." Không có CVE, không có zero-day, không có zero-click exploit. Chiến dịch này hoạt động thuần túy trên trust architecture của hệ sinh thái developer tool — và nó hoạt động hiệu quả đến mức tích lũy được 14 triệu downloads trước khi bị bóc tách toàn diện.

Về AgentBaiting: Chúng tôi cho rằng đây không phải là kỹ thuật one-time mà là pattern sẽ tái diễn và tinh vi hơn. Cơ chế hiện tại của các AI coding agent không có reliable mechanism nào để phân biệt một open-source contribution hợp lệ với một purpose-built lure. Khoảng trống này sẽ tồn tại cho đến khi registry, model provider, và enterprise cùng adopt vetting standard nghiêm túc hơn cho agent-installable software — điều mà tốc độ cải thiện hiện tại cho thấy sẽ còn mất nhiều thời gian.

Về mức độ nghiêm trọng cho tổ chức tại Việt Nam: Developer Việt Nam đang adopt AI coding tools với tốc độ nhanh — Cursor, GitHub Copilot, Claude Code, và các công cụ MCP-enabled đang trở thành một phần workflow bình thường. Nhưng phần lớn tổ chức chưa có internal governance cho việc cài đặt AI Skill hay MCP server, chưa có allowlist, và chưa có review process. Attack surface của AgentBaiting đang mở rộng song song với adoption rate — trong khi defense chưa theo kịp.

Về StealC payload và blast radius: Một developer bị compromise không chỉ mất credential cá nhân — mà tiềm năng expose toàn bộ production environment mà họ có access đến. Trong scenario AgentBaiting, nếu AI agent đang chạy với standing service account credentials (pattern khá phổ biến trong CI/CD pipeline), blast radius của một compromise thành công có thể lan rộng vượt xa workstation của developer đó.

So sánh với traditional phishing: Sự khác biệt thực chất không phải là về kỹ thuật — mà là về điểm kiểm soát. Security awareness training, email gateway, URL filter, và safe browsing policy đều được thiết kế cho threat model trong đó con người là link trung gian giữa attacker content và execution. AgentBaiting bypass link đó hoàn toàn. Đây là lý do FakeGit đáng được quan tâm ở level architectural, không chỉ ở level IOC.

Khuyến Nghị

Immediate (0–24h)

  • Kiểm kê AI Skills và MCP servers đã cài đặt: Liệt kê tất cả Skill/MCP server hiện có trên môi trường developer. Với bất kỳ item nào có nguồn gốc từ GitHub repository chưa được verify nội bộ — xem xét uninstall ngay và kiểm tra host.

  • Hunt theo pattern FakeGit trên endpoint:

    • Tìm LuaJIT process chạy từ path bất thường

      Get-Process | Where-Object { $_.Path -match "AppData|Temp|Downloads" }

    • Kiểm tra Scheduled Task trỏ vào user directory

      Get-ScheduledTask | Where-Object {

      $_.Actions.Execute -match "AppData|Temp|Users"

      } | Format-List TaskName, Actions

  • Rotate credentials có nguy cơ: Trên bất kỳ hệ thống nào đã cài AI Skill từ public repo chưa verified trong 6 tháng qua — rotate ngay: browser passwords, SSH keys, session tokens, API keys, OAuth tokens.

Short-term (1–7 ngày)

  • Triển khai internal allowlist cho AI tooling: Bất kỳ AI Skill hoặc MCP server nào được phép cài đặt phải đến từ danh sách được review và approve nội bộ. Agent-driven autonomous discovery từ public registry phải bị disable hoặc require explicit human approval trước khi thực thi.

  • Update detection rule cho SmartLoader delivery pattern:

    • RULE: Flag ZIP archive chứa đồng thời:

      (1) .bat hoặc .sh launcher script

      (2) PE executable với tên không match chức năng (check PE header)

      (3) File với extension .txt / .ico / .lic chứa binary content

  • Mandatory human review checkpoint: Với mọi installation instruction đến từ AI agent — kể cả khi agent không đưa link trực tiếp — phải có human review README nguồn gốc trước khi thực thi bất kỳ lệnh nào. Log review này vào change management.

  • Scan MCP registry listings: Kiểm tra xem tên project hoặc tool nội bộ có bị impersonate trên LobeHub, Glama, MCP.so, MCP Market không.

Long-term

  • Áp dụng SDLC governance cho agent tooling: Skills, MCP servers, và agent plugin cần được đưa vào cùng quy trình dependency management như traditional software — không phải category riêng có scrutiny thấp hơn.

  • Principle of Least Privilege cho AI agents: AI agent không nên chạy với standing production credential hay service account có broad access. Limit scope của credential agent có thể sử dụng đến mức tối thiểu cần thiết — điều này trực tiếp giảm blast radius nếu AgentBaiting attack thành công.

  • Engage model providers về agent controls: Khi deploy AI coding agent cho đội ngũ developer, làm việc với provider (Anthropic, Google, OpenAI) để hiểu các control có sẵn: restrict discovery scope, disable external search, hoặc require confirmation trước khi agent surface external resource.

  • Chuẩn bị cho iterations tiếp theo: AgentBaiting trong FakeGit là version đầu tiên được document. Version tiếp theo có thể target model context poisoning (inject malicious content vào agent memory/context) hoặc prompt injection qua README. Defense cần được thiết kế để handle cả những variant chưa được thấy, không chỉ defend theo IOC hiện tại.

Tham Khảo

AgentBaiting: How Fake AI Skills Deliver Malware at Scale

FakeGit Campaign Uses 7,600 GitHub Repositories to Spread SmartLoader Malware

FakeGit and AgentBaiting: Malicious Repos Target AI Agents – Lab Space

FakeGit Campaign Floods GitHub With 7,600 Malware Repositories

More from this blog

F

FPT IS Security

1000 posts

Dedicated to providing insightful articles on cybersecurity threat intelligence, aimed at empowering individuals and organizations to navigate the digital landscape safely.