転職活動を行っている多くの人々にとって、求人情報やリクルーターからの連絡は重要な情報源ですが、その裏にはサイバーリクルーターと呼ばれる巧妙な攻撃者たちが潜んでいます。最近では、攻撃者がJavaScriptを悪用し、無防備な転職希望者を狙う手法が増加しています。
これらの攻撃者は、求人情報やツールを装って不正なコードを仕込み、ターゲットのシステムに侵入するのです。本記事では、転職希望者をターゲットにしたサイバーリクルーターの罠と、その背後にあるJavaScriptを使った巧妙な不正侵入の実例をご紹介します。
2024年12月、北朝鮮のハッカー集団が新たなマルウェア「OtterCookie」を用いたサイバー攻撃を展開していることが報じられました。この攻撃は「Contagious Interview(感染性インタビュー)」と呼ばれる手法で、主に就職活動中の個人を標的としています。
Contagious Interviewとは?
Contagious Interview(別名:DeceptiveDevelopment)とは、ソーシャルエンジニアリングを駆使した持続的な攻撃キャンペーン、要するに『人をだます手口を使い、長期的に続けられる計画的なサイバー攻撃』のこと。
攻撃者はリクルーターになりすまし、求職者に接触。その後、面接プロセスを装って、マルウェアが仕込まれたビデオ会議アプリやnpmパッケージをダウンロードさせ、被害者のコンピュータに侵入します。
npmとは?
npm(Node Package Manager)とは、JavaScriptのプログラムやツールを簡単に共有、インストール、管理できるシステムです。つまり開発者が便利な機能をパッケージ(小さな部品)としてまとめて公開するための仕組みです。このシステムを使えば、必要な機能を手軽に自分のプロジェクトに追加できます。簡単に言うと、npmパッケージは「便利な機能をまとめたアプリの部品」ですが、攻撃者はこれを悪用して「危険な機能」を隠蔽し、ダウンロードさせるわけです。
OtterCookieマルウェアの詳細
NTTセキュリティホールディングスの調査によれば、OtterCookieは2024年9月に初めて確認され、11月には新バージョンが発見されました。このマルウェアは、JavaScriptで記述されており、Socket.IOライブラリを使用してコマンド&コントロールサーバー(いわゆるC2サーバー。攻撃者が遠隔でマルウェアを操作するための中心的なサーバー)と通信するわけです。
OtterCookieの機能は以下のとおり。
- シェルコマンドの実行: 攻撃者がリモートでコマンドを実行し、システム情報を収集します。
- データ窃取: ファイル、クリップボードの内容、暗号通貨ウォレットのキーなどを盗み出します。
初期のバージョンでは、暗号通貨ウォレットのキー窃取機能がマルウェア自体に組み込まれていましたが、最新バージョンではリモートコマンドとして実行されるように変更されています。
シェルコマンドがなぜ実行できるのか
シェルコマンドは、コンピュータを効率的に操作するために非常に強力です。プログラムを起動したり、システムを設定したりする際に使われます。特にシステム管理者や開発者は、シェルコマンドを駆使して作業を行います。
そう。攻撃者がマルウェアを使ってシェルコマンドを実行する場合だってあるのです。例えば、以下のようなことができます。
- 悪意のあるソフトウェアをインストールする(例:バックドアの設置)
- ファイルの削除や変更を行う(例:大事なファイルを削除する)
- システムを制御する(例:PCを遠隔操作する)
- もちろん「ファイルの一覧を表示」「ファイルを移動」「フォルダを作成」などの操作も可能
つまり、なんでもできてしまうわけですね。
このようなことから、通常、ブラウザ内で動作するJavaScriptにはシェルコマンドを実行する権限はありません。しかし、以下のような環境では可能になります
1. Node.js環境での実行
Node.jsは、サーバーサイドでJavaScriptを動かすためのプラットフォームです。
Node.jsには、child_process
モジュールという機能があり、これを使うとシェルコマンドを実行できます。以下はその例です。
const { exec } = require('child_process');
exec('ls', (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
console.log(`Output: ${stdout}`);
});
さらに先述のSocket.IOはNode.jsと密接に関連しているライブラリ。つまり攻撃者はコマンドを送信し、Socket.IOを利用してC2サーバー(攻撃者が遠隔でマルウェアを操作するための中心的なサーバー)とリアルタイムで通信することができるわけです。
Node.js環境は簡単に構築できてしまう
Node.jsをユーザーのPCにインストールさせるのは、それほど難しいことではありません。Node.jsは公式サイトや多くのパッケージ管理ツールを通じて簡単にインストールできるため、攻撃者がユーザーに「インストールしてください」と指示するだけで成功する可能性があります。例えばビデオ会議アプリを動かすため、能力テストツールを動かすため、独自のSNSツール等を動かすため、そのようなことを口実としてNode.jsをインストールさせる場合、疑う人は少ないかもしれません。
ちなみに、下記は一般的なNode.jsのインストール手順です。
- ユーザーは公式Node.jsサイトにアクセス
- 提供されているインストーラーをダウンロード
- インストーラーを実行して「次へ」を何度かクリックするだけでインストール
この手順自体は初心者でも簡単にこなせるものです。
今回の場合、冒頭あたりで述べた悪意あるnpmパッケージ、これをインストールさせ、そのパッケージに仕込まれたスクリプトによって、Node.jsが自動的にインストールされたのではないでしょうか。
たとえば「このツール(ビデオ会議アプリ)を動かすには追加の(npmパッケージの)インストールが必要です」等、相手を誘導したのかもしれません。
これにより、攻撃者はユーザーのシステム上で自由にシェルコマンドを実行できるようになるわけです。結果として、これがバックドア(攻撃者がシステムに不正にアクセスするための隠れた入り口や手段)となり、被害が発生したのでしょう。
その他の被害例
このように、偽のリクルーターが「面接のため」と称して、マルウェアのインストールを促すケースが報告されています。
ちなみに逆のケースもあります。
当記事ではリクルーター(加害者)⇒求職者(被害者)のパターンをご紹介しましたが、求職者(加害者)⇒リクルーター(被害者)のパターンだってあるのです。
実例を紹介しましょう。2024年8月、日本の組織を標的にしたサイバー攻撃が報告されました。この攻撃はAPT-C-60という南北韓国系のサイバーエスピオナージュグループによって実行されたもので、APT-C-60は、東アジア諸国をターゲットにすることで知られています。今回は求人応募を装ったバックドア攻撃で日本の企業が被害を受けました。詳しくはコチラ⇒求人応募を悪用!日本の組織を狙うAPT-C-60のSpyGlace攻撃
防御策
このような攻撃から身を守るためには、以下の点に注意することが重要です。
- 不審な連絡に注意: 知らない相手からの突然の連絡や、面識のないリクルーターからのオファーには慎重に対応しましょう。
- ソフトウェアのダウンロード元を確認: 信頼できる公式サイトや正規のアプリストアからのみソフトウェアをダウンロードし、提供元が不明なリンクや添付ファイルは開かないようにしましょう。
- セキュリティソフトの導入と更新: 最新のウイルス定義に更新されたセキュリティソフトを使用し、定期的にシステムスキャンを行いましょう。
- OSやアプリケーションの更新: 定期的にシステムやアプリケーションのアップデートを行い、既知の脆弱性を修正しましょう。
まとめ
北朝鮮のハッカー集団による「OtterCookie」を用いた攻撃は、求職者を狙った巧妙な手口です。とはいえ、不審な連絡やソフトウェアには十分注意し、適切なセキュリティ対策を講じることで、被害を未然に防ぐことが可能です。
いかがだったでしょうか。
転職活動をしていると、思わぬ場所にサイバーリクルーターが潜んでいることがあります。JavaScriptを悪用した攻撃は、一見無害に見えるツールや求人情報の中に隠れており、ユーザーの知らぬ間にシステムに不正アクセスを試みます。このようなサイバーリクルーターの巧妙な手口を理解し、警戒することが必要です。自分のデバイスや個人情報を守るためには、不審なツールやパッケージをインストールしないこと、そして常に最新のセキュリティ対策を講じることが重要です。今後、サイバー攻撃のリスクに対して賢く対策を取ることで、無駄なトラブルを避け、安心して転職活動を進めることができるでしょう。
出典
The Hacker News, “North Korean Hackers Deploy OtterCookie Malware in Contagious Interview Campaign,” 2024年12月. https://thehackernews.com/2024/12/north-korean-hackers-deploy-ottercookie.html