AIセキュリティ / AI SECURITY / APT
北朝鮮系KimsukyがAIエージェント「opencode」で偽文書を大量生成 — GeniansがLNK13件の手口を分析
Genians Security Centerは2026年9月10日、北朝鮮系サイバー攻撃グループKimsukyがAIコーディングエージェント「opencode」を使ってフィッシング用のおとり文書を量産している痕跡を確認したと報告した。8月11〜19日に回収した13件のLNKファイルはいずれもPowerShell起動とGitHubのPATを使ったペイロード取得を共通化し、文書のCreator欄にopencodeの名残や未置換の「(temporary value)」が残っていた。
Genians Security Centerは2026年9月10日(韓国時間)、北朝鮮系のサイバー攻撃グループKimsukyがAIコーディングエージェント「opencode」を使ってフィッシング用のおとり文書を大量生成していたとする分析を公開した。同センターが2026年8月11日から19日に回収した13件の悪性LNKファイルの解析で、文書のメタデータにopencodeの痕跡と、LLM(大規模言語モデル)が生成した下書きを十分に校正せずに使ったとみられる未置換のプレースホルダーが残っていた。
Geniansはこの活動を、同社が継続追跡するOperation GitPower(GitHubをC2基盤として悪用するKimsukyの攻撃クラスター)の延長と位置付けている。おとりのテーマが従来の外交・安全保障・学術から、金融機関や小売・企業の財務部門へ拡大している点も特徴だとしている。
何が起きたか — 13件のLNKとAI生成の痕跡
Geniansによると、攻撃はZIPアーカイブに同梱されたLNKファイルを利用者が展開・実行することで始まる。LNKは資金執行、保険料納付、利子支払い、政策資金、認証書更新、店舗基準情報、顧客書類、Visa決済など、韓国の金融・業務文書を装ったファイル名で偽装されていた。英語名の「Security_20260811.lnk」なども同一インフラと時期を共有しており、国内と海外の標的を並行して狙った可能性があると同社は指摘している。
回収した29件のおとり文書をハッシュで分類すると11種のユニーク文書に集約され、同一文書がランダムなファイル名で複数リポジトリに再配布されていた。文書内容の構造や定型文の類似度が高いことから、単一のプロンプトやHTMLテンプレートを基にトピックだけを差し替えて量産したとGeniansは評価している。
AI利用の直接的な証拠として、次の2点が挙げられている。
- **一部のPDFのCreator/Producerフィールドに「opencode」**と記録され、Authorは「anonymous」のままだった。opencodeはターミナル上で動作するオープンソースのAIコーディングエージェントで、GeniansはKimsukyが文書の文章や構成の生成に同エージェントを使ったと分析している。
- 本文中に「(temporary value)」などの未置換プレースホルダーが残っていた。正規の作成過程であれば数値や文言に置換・削除されるはずの一時テキストが最終文書に残存しており、LLMが生成した下書きを十分にレビューせず攻撃に転用したことを示すと同社は述べている。
別のPDF群ではHeadlessChromeとSkia/PDFのメタデータが確認された。HTMLで文書を作成した後にヘッドレスChromeのPDF保存機能で自動変換したことを示し、これもテンプレートからの自動生成を裏付けている。
LNKとPowerShellの手口 — GitHub PATでおとりと後続を取得
13件のLNKは、同一の作成ツールまたは自動生成手法で作られたことを示す共通の偽装・難読化を備えていたと、Geniansは説明している。
- アイコン偽装: 全件が
%ProgramFiles%\Google\Chrome\Application\chrome.exeをアイコンに指定し、ブラウザの実行ファイルに見せかける。 - プロパティ偽装: Description欄に「Type: Hangul Document Size: 2.84 KB Date modified: 10/20/2023 11:23」を一律で記載するが、実際の形式はLNKでサイズは約319KBまたは約8.9MBと一致しない。
- 先頭約300文字の空白で引数を隠蔽: ショートカットのプロパティ画面では中核のコマンドが見えにくくなる。
- 実行引数の長大化: 約5,800〜9,500文字に及び、数値配列と独自の加算演算デコーダーで難読化されている。変数名
$VIUSBvejbawfと定数+103は13件で共通し、鍵文字列だけを変種ごとに差し替える。 - ファイルサイズの水増し: LNK構造は先頭約16KBに収まるが、残りを「B0qS7zD5uK2mP9aX6cL3yN8v…」のような英数字パディングで埋め、約319KBと約8.9MBの2群に膨張させる。WindowsはLNK終端以降を無視するため実行に影響せず、一部のサンドボックスや検知エンジンの回避を狙ったとみられる。
LNK実行時に復号される第2段階のPowerShellは、代表例「20260811_자금집행.lnk」では次の流れを取る。
%TEMP%\자금집행첨부자료.pdfを準備し、既存ファイルを削除する。- ハードコードされた**GitHub PAT(Personal Access Token)**を読み込む。
h+t+t+p+sに分割した文字列を結合してhttps://raw.githubusercontent[.]com/sven5500/firtfirter/main/を組み立てる。Authorization: token ***とAccept: application/vnd.github.v3.rawヘッダーで認証し、おとり文書xnciuegwpo.pdfをダウンロードして開くことで利用者に正規文書と誤認させる。%AppData%\mlxchjvose.ps1を作成し、同リポジトリから後続ペイロードSqpmvihdrgS.txtを取得して%AppData%\qpmvixibrg.ps1として保存する。実行はconhost.exe --headless powershell.exe -ExecutionPolicy Bypass -File <path>でウィンドウを表示せずに行う。- 不可視のスケジュールタスクを登録する。タスク名は「BitLockor Encrypter All Drives_102974298364124_skillerty」など、BitLockerやMATLAB、.NET Framework NGENを偽装しつつ綴りをわずかに変えることでシグネチャ回避を図る。初回は登録の5分後、以降は10分間隔で実行する。
- 自身を
Remove-Itemで削除する。
一部の変種ではPastebinを第2の配信経路として使う例も確認された。GitHub側が遮断された場合の代替経路の並行運用とGeniansは評価している。おとりの形式もPDFだけでなくXLSXやPNGへ多様化していた。
解析回避とOperation GitPowerとの連続性
今回新たに確認された解析回避ルーチンとして、Geniansは次の挙動を挙げている。
- 解析・仮想化ツールのプロセスブロックリスト照合や、サンドボックスのユーザー名検査、コマンド履歴の削除を行うコードが第1段階の先頭に含まれる。
- 仮想マシンやx64dbgなどのリバースエンジニアリングツールを検出した場合に実行を停止し、自動解析と手動解析の双方を妨害する狙いとみられる。
一方で、先頭の空白隠蔽、カスタムデコーダー、GitHub Raw ContentへのPAT付きアクセス、不可視スケジュールタスクの登録と正規ソフト偽装といった中核のTTPは、Geniansが以前報告したOperation GitPowerと一致する。LNKのDescription偽装も同一で、同社はいずれも同一ビルダーでパラメータだけを変えて量産したと分析している。
対策 — Geniansが呼びかける検知ポイント
Genians Security Centerは、対策として次の検知・ハンティングを推奨している。
- LNKファイル起点のPowerShell実行をEDRで検知すること。特に
conhost.exe --headlessを伴う不可視実行や、-ExecutionPolicy Bypassを伴う%AppData%配下のスクリプト実行に注意する。 - GitHub Raw ContentへのPAT付きアクセスを監視すること。
Authorization: tokenヘッダーやAccept: application/vnd.github.v3.rawを伴うraw.githubusercontent.comへの外向き通信、Pastebinへの定期的な取得は本手口の特徴だとしている。 - おとり文書のメタデータ差異に着目すること。Creator/ProducerにopencodeやHeadlessChromeが残る文書、本文に「(temporary value)」のようなプレースホルダーを含む文書は、AIで量産されたおとりの可能性がある。
同社は、国家支援型アクターがAIを運用パイプラインに組み込むことで、フィッシングの量と体裁のばらつきが拡大し、文法ミスなど従来の目視での見分けが通用しなくなると指摘している。日本企業でも取引先や金融機関を装う文書への警戒と、LNKやPowerShell、GitHubを悪用する挙動ベースの検知への切り替えが求められるとしている。
出典
- Genians Security Center「Kimsuky Uses the AI Agent ‘opencode’ to Create Decoys as Its GitHub PAT-Based LNK Attacks Evolve」 https://www.genians.co.kr/en/blog/threat_intelligence/ai-agent-opencode
この記事は、公開情報と編集部の調査・知見をもとに構成しています。内容は公開時点の情報に基づく解説であり、個別の環境への診断・対応を保証するものではありません。重要な判断では、記事内の出典や各提供元の最新情報もご確認ください。