名前のタイプミスを狙った悪質なパッケージがRubyGemsで多数公開される 35
ストーリー by headless
偽物 部門より
偽物 部門より
人気のRubyGemパッケージに似たパッケージ名を付け、タイプミスを狙ってダウンロードさせようとする悪質なRubyGemパッケージが短期間に多数公開され、多数ダウンロードされていたそうだ(ReversingLabs Blogの記事、 Ars Technicaの記事)。
有名ドメイン名やパッケージ名のタイプミスを狙う攻撃は「タイポスクワッティング」などと呼ばれる。2017年にはこの手法を使用した悪質なパッケージがPyPIで発見されたことがスラドでも話題になった。調査を行ったReversingLabsもこの手法を使用する悪質なパッケージをPyPIやNPMで発見しているという。
タイポスクワッティングに絞って行われた今回の調査では、人気のRubyGemパッケージのリストを作り、名前の似たパッケージのアップロードを2月16日から25日まで監視。その結果、700以上の悪質なパッケージが2つのアカウントからアップロードされたそうだ。悪質なパッケージのダウンロード数は2アカウント合計で10万件近くに上り、たとえば悪質なパッケージ「atlas-client」は本物の「atlas_client」のダウンロード数の3分の1近くダウンロードされていたとのこと。
悪質なパッケージはいずれもWindowsユーザーをターゲットにしたものとみられ、インストールすると最終的にVBScriptがループで常駐してクリップボードを監視する。クリップボードで暗号通貨ワレットアドレスに一致する形式の文字列が検出されると、攻撃者の支配下にあるアドレスに置き換える処理が行われるとのことだ。
有名ドメイン名やパッケージ名のタイプミスを狙う攻撃は「タイポスクワッティング」などと呼ばれる。2017年にはこの手法を使用した悪質なパッケージがPyPIで発見されたことがスラドでも話題になった。調査を行ったReversingLabsもこの手法を使用する悪質なパッケージをPyPIやNPMで発見しているという。
タイポスクワッティングに絞って行われた今回の調査では、人気のRubyGemパッケージのリストを作り、名前の似たパッケージのアップロードを2月16日から25日まで監視。その結果、700以上の悪質なパッケージが2つのアカウントからアップロードされたそうだ。悪質なパッケージのダウンロード数は2アカウント合計で10万件近くに上り、たとえば悪質なパッケージ「atlas-client」は本物の「atlas_client」のダウンロード数の3分の1近くダウンロードされていたとのこと。
悪質なパッケージはいずれもWindowsユーザーをターゲットにしたものとみられ、インストールすると最終的にVBScriptがループで常駐してクリップボードを監視する。クリップボードで暗号通貨ワレットアドレスに一致する形式の文字列が検出されると、攻撃者の支配下にあるアドレスに置き換える処理が行われるとのことだ。
役割分担 (スコア:4, おもしろおかしい)
>ストーリー by headless
こういう話題の処理は、専門家に依頼すべきだったのでは。
Re: (スコア:0)
Hailomさんのことかーーーー!
Re: (スコア:0)
なんとなく同一人物とおもっていたが
Re: (スコア:0)
いわゆるタイポスラッディングである。
誤字脱字 (スコア:1)
たいていの人にとっては大して実害も無く話題提供位にしかならなかったけど、今は実害もあって怖いですね。
//医療関係では、昔から誤字脱字は大事故の元だったけどね・・。
ていうか (スコア:1)
パッケージシステムとか怖い
あんなどこの馬の骨が提供してて何に使ってるかもよくわからないライブラリを
じゃんじゃか寄せ集めて何となくバイナリができちゃうとか、正気の沙汰とは思えない
Re:ていうか (スコア:2)
LFSを使っているのかな
Re: (スコア:0)
半分冗談半分本気で何処まで精査したもんなんだろうねと思う。
トラブル起きると精査してない方が悪いって言われるのは当然なんだけど。。
今時のフロントエンドとかreact-scriptsで作った雛型をejectしたらnode_modulesに1000もパッケージ展開されるから、
現実的に自分や誰かがちょっとtypoした時どうやってカバーしてんだろう。リスク飲むしかないのか。
大手ITゼネコンでrailsでやった時は製造業ライクな先方の基準に従って事細かに管理させられて、
理屈は分かるも若干辟易させられたが、そうはいかんところが大半だろうし。
Re: (スコア:0)
typoに限らず、メンテナーが変わったタイミングでマルウェアが仕込まれる [opensource.srad.jp]なんてのもあるからね、
リポジトリに悪意あるコードを登録できてしまう以上、
typoに限らず、パッケージの新規導入・バージョンアップ時に(パッケージが依存するパッケージ含めて)
そういったコードが埋め込まれている可能性もあると思う。
Re: (スコア:0)
> 何となくバイナリができちゃうとか
それってもうRubyの話じゃなくなってない?
Re: (スコア:0)
最大限エスパーちからを働かせるとネイティブコードのbindingを含んだgemで…
ってもどっちでも一緒なんだけどね
Re: (スコア:0)
パッケージシステムってRubyの専売特許じゃないじゃん?
Re: (スコア:0)
そのうち、コピペしたらマルウェアtypoパッケージが組み込まれる、糞Qiita記事とかもセットで出てきそう。
hylomはしょっちゅう引っかかってそう。(T/O) (スコア:0)
タイトルオンリー
Re:hylomはしょっちゅう引っかかってそう。(T/O) (スコア:1)
引っ掛けてる方でしょ。
ワレット (スコア:0)
最近は「ワレット」ってカタカナをあてるの?
最初なんだか分からなかった。
JuliaはUUIDで一意性(同一性?)を担保? (スコア:0)
Juliaはprojectの中でモジュールとそのUUIDを指定することで一意性(同一性?)を担保してるのかな?詳しい方の解説を〜
Ruby Gemsは昔Gemへの署名の議論があったと思いますが、現在はどうなっているのでしょう。
Re: (スコア:0)
基本的には配布方法の問題なので同一性を担保できても意味がない
署名がつけられても多分あまり意味がない
Re: (スコア:0)
入力ミスによる一致、検索結果の誤認を狙っているので、一意性が破られている訳ではないですね
欲しいパッケージの UUID をどこかのサイトからコピペしてくるなら、パッケージ名をコピペしても同程度には安全だと思われます
署名は経路で改ざんされていないか、別サイトで配布されている場合に改ざんされていないか、似た作者名で偽装している場合に明確に区別できる
などに効果がありますが、今の SSL と同じで別にそのパッケージに悪意がないことの証明にはなりません
安全に使うには、大手が出しているもの、代表的なパッケージなどを選ぶことでしょうか
あとは自分でつくるか、OSS であればソースを見るなど、やはりコストを払う必要がありますね
歴史は繰り返す (スコア:0)
「エノケソ一座」っていつ頃の話だったっけ。
Re: (スコア:0)
それは視覚的に似ているだけでタイポを習ってはいないのでは。
自分が知ってる一番古いのはふた昔くらい前にみたwww.misrocoft.com。似たような組み合わせを試したら全部あったw
Re: (スコア:0)
slコマンド
タイポスクワッティング (スコア:0)
詳しくない人がうろ覚えで誤字に気付かず検索する→誤字ってるのでまともなページが出てこない→スラドが出てきたのでその記事を見る→閲覧者が増える→hylomが儲かる
# 「もしかして」というGoogleによる妨害工作を許すな
Re: (スコア:0)
誤字ってない検索の流入が減るからあかんやろ
Re: (スコア:0)
おせっかいさんが正解を提示して誤字を指摘するので、正規ルートの購読者も誘導できる。
がくがくぶるぶる (スコア:0)
slコマンドに怪しげな機能が入ってないかソースレビューしないと…
Re: (スコア:0)
なんかね
lsしたらいきなり画面の中で汽車が走り出すんですよ
もう馬鹿かと
自分ぐらいのレベルになるとこれはクラッカーに侵入されたとすぐに気がつきましたよ
みんなもセキュリティーは気をつけてな
Re:がくがくぶるぶる (スコア:1)
ごめん勝手に入れた
なんかもうslでSLが走ってくれないサーバーって落ち着かなくて
Re:がくがくぶるぶる (スコア:1)
UNIX/Linuxが2038年問題を乗り越えた後、現役や博物館のSLと、
UNIX/Linux上のslと、どっちが長く残るんでしょうね。
-- う~ん、バッドノウハウ?
Re: (スコア:0)
こうして無駄に電気が消費され、環境団体から石炭ガーという話が出てくるのであった。
Re: (スコア:0)
slコマンドの趣旨は
「こんな短いコマンド(ls)をタイプミスするほど焦ってもいいことないぞ。
SLが走る光景でも見て落ち着きたまえ」
というような話だったと思うのだが。
> なんかもうslでSLが走ってくれないサーバーって落ち着かなくて
というのはこの趣旨から見てセーフなのかアウトなのか?(2点)
Re: (スコア:0)
slコマンドに感銘したのでその昔大学研究室の共用PCにdorという
コマンドをつくって仕込んでおいたことがある。
Windowsなのにときどき御開帳のグラフィックが表示されていたの
をみたのでそれなりに需要はあったようだ。
できればslのようにcursesでつくりたかった。
Re: (スコア:0)
manでは
となっている。
時間を開けることで落ち着くよう促すって意味合いも有りはするだろうけど
暫し操作不能になる事でタイプミスを噛み締めさせ反省を促す効果のが強いように感じる。
# 大学時代、同じサーバで知り合いが使っているttyにslの出力流し込む非道を働いたのでAC
## 操作不能にこそならないがしっかりslが通過する。
予め似たような名前でミラー沢山作っとく (スコア:0)
最初にGemfileとかpackage.json書いた時は(typoに気付かず)すんなり動いてバージョンアップも追従されてく
そんで頃合い見てevilな実装を差し込んだりすると俺なら絶対対応できない…
Re: (スコア:0)
スラドのことかー!