NPM汚染、Node.js脆弱性の話の覚え書き
来年のSECCONに出そうなトピックだなぁと思ってメモしておく。こんなツイートが流れてきた。
えーっと、npm 汚染で vscode 拡張やばいらしいけど vscode-tanakh 直す必要があったら起こして下さい。
— mattn (@mattn_jp) November 27, 2018
文脈よく分からなくて、なんかあったっけ?と思ってNPM、汚染とかキーワードで調べたら2つほど話が出てきたから備忘録的に書いておく。新しい話としては、NPMのパッケージのメンテナが変わって、マルウェア版が仕込まれて配布されたという話。たしかにこれはなにも意識せずに取りこんじゃったりしそうで怖い。
“2018/11/27に判明したnpmパッケージ乗っ取りについて - Qiita” https://t.co/YMWxme24p5
— 認定ジャバ (@katzchang) November 27, 2018
npm経由でまたマルウェアが配布された。https://t.co/zQRYTIY1ZM
— 高梨陣平 (@jingbay) November 26, 2018
パッケージオーナーは知らない人にメンテナ権限を譲与。今では暗号通貨採掘が埋められた。npmサイドはマルウェア版を引き上げたが利用プロジェクトが対応する必要がある https://t.co/FRtZLWl9te
もう1つは、Javascript特有のPrototypeの脆弱性を突いた攻撃がありそうだとのこと。ざっくり調べると、JavascriptではPrototypeというものがあって、全てのオブジェクトの祖としてPrototypeがいる。これを上書きすることによってオブジェクトの振る舞いが変わってしまって意図せぬ挙動となるらしい。ちょっと前にPrototypeの仕様をふーん、と読んだばかりだったのでびっくりした。
この辺りの記事が分かりやすい。