要注意!人気ライブラリ「Keyv」で発生したサプライチェーン攻撃「Shai-Hulud」の全容
Keyv and friends compromised in active Shai-Hulud supply chain attack
Keyv and friends compromised in active Shai-Hulud supply chain attack
現在、人気ライブラリの「Keyv」を含む複数の関連パッケージが、悪意のある「Shai-Hulud」サプライチェーン攻撃にさらされていることが判明しました。開発環境や本番環境でこれらのライブラリを使用している場合、直ちに依存関係を確認し、最新の安全なバージョンへの更新や代替策の検討を行ってください。特にNode.js環境でのパッケージ管理には細心の注意が必要です。
GitHubが公開リポジトリに対してシンプルな分類器を作って、明らかに怪しいものをアップロードするユーザーのアカウントを事前にロックする仕組みを持っていないことに驚いたよ。(リポジトリが公開される前なら本人にとっても好都合だし、踏み台として悪用されることも防げる)。GitHubのソフトウェアなら、インターンでも1日で80/20の法則に従ってそれっぽいものを作れるだろ?AIへの投資としては、これこそ有意義な使い道だと思うんだけどね。
今さらだけど、今までなかったのに突然pre-installフックを追加するようなパッケージは、問答無用で拒否して徹底的に疑うべきだ。もうpre-installやpost-installフックなんて廃止する時期だよ。まずは新しいフックの追加を禁止することから始めよう。
node_modules(あるいはpnpm store)の膨大なファイルの中に、これが混入していないかチェックできるgrepか何か知ってる人いる?
うわぁ、これは痛いな。致命傷になるよ。この「ガラスの顎」みたいにもろい依存関係システムが、供給網攻撃(サプライチェーン攻撃)を成功させる根本原因だってのは本当にひどい話だ。一度やられると掃除するのもすごく大変。今の時代、攻撃者は侵害したリポジトリやアプリ、Webサイトをほぼ即座に利用してくるから、元の問題を片付けたとしても、そこから派生した被害が大量に残ることになるんだ。
echo "min-release-age=5" >> ~/.npmrc これ、nodeを使っているならデフォルトの最低条件にしておくべきだよ。
また自問自答してるんだけど、分離環境を使っていない開発者を「晒し者(shaming)」にする動きを始めるべきじゃないか?未だに自分だけが例外で、みんなフル権限で開発環境を動かしているみたいなんだ。なぜ?この考えを深掘りするために記事(https://evertheylen.eu/p/shame-devs-without-isolation/ )も書いたんだけど、コメントでぜひ議論したい。
2025年以降の攻撃をカバーするようにドキュメントを更新したよ: 1. NPMサプライチェーン攻撃の手法: https://npm-supply-chain-attack-techniques.pagey.site/ 2. NPMエコシステムの脅威レポート: https://npm-supply-chain-attacks-25-26.pagey.site/
GitHubって、Shai-Huludのようなデータの持ち出し用リポジトリが作成されたことを検知して、そのままブロックすることってできないのかな?ワームなんだから、攻撃者もそんなに素早く適応できないだろうし。
全開発者がdevcontainersを学んで、一貫して使うべき時が来たね。セットアップも実行も超簡単だし、今回のワームがやるような攻撃のほとんどを防げるよ。vscodeを使っているなら、このガイド(https://code.visualstudio.com/docs/devcontainers/containers )が最適だ。
ソフトウェアのサプライチェーン攻撃を検知するOSSツールを開発してるよ: https://github.com/ossillate-inc/packj Packjは静的・動的コード解析や振る舞い分析を使って、シェル呼び出しやSSHキーの使用、ネットワーク通信、decode+evalの実行といった侵害の兆候をスキャンするんだ。なりすましパッケージ(タイポスクワッティング)を検知するために、いくつかのメタデータ属性もチェックしてくれる。