カテゴリー
ネットの事件

‘-‘ という名前の、中身が無いのに70万回ダウンロードされてる謎のnpmパッケージ

という名前の JavaScript/TypeScript パッケージについて警告を発している記事が話題となっています。

このパッケージ、中身はほとんど空で、Readme と、dev で TypeScript を動かせるようにするライブラリ群を呼ぶ箇所だけのもの。

しかし、この “-” を使っている他の npm パッケージが 50個以上あり、約一年前の公開時からのトータルのダウンロード数は72万回にもなります。

しかし、”-” を読み込んでいるパッケージを見てみても、”-” が必要そうには見えません。

警告記事では、この無名のパッケージが密かに使われるようになった原因が、npm コマンドのコマンドラインを打つときのミスタイプにあるのではないかとの仮説を立てています。

つまり、someFlag というオプションを使い

npm i -someFlag somepackage

と打つべきところで、

npm i - someFlag somepackage

と間違ってスペースを入れて実行したことで、”-” というパッケージがインストールされてしまい、その状態からパッケージを作って公開してしまったものが(50個以上)出てしまったのでは、ということです。

実際にわざと間違ってみたところ、someFlag の部分にマッチするnpmパッケージがあれば、特にエラーもなく”-“パッケージが入ってしまいます。

$ npm i - O knock-knock-jokes

added 3 packages, and audited 4 packages in 1s

found 0 vulnerabilities

$ npm ls
test-@ C:\work\temp
├── -@0.0.1
├── knock-knock-jokes@1.7.0
└── O@0.0.9

警告記事を公開した BleepingComputer 社“-“パッケージの作者にこのパッケージを公開した意図を問い合わせをしたが、返答は無かったということです。このパッケージだけを公開している捨てアカウント、という感じでもないのですが。

今のところ”-“パッケージをインストールしたからといって、少しディスクが無駄になる程度のことしか起こりませんが、将来”-“の新バージョンが出た時、新バージョンがどんな内容に置き換わっているかはわかりませんね。

“-” 以外にもコマンドラインのタイプミスで打ちそうなパッケージ名はいろいろありそうで、自分がインストールしたパッケージを確認すること(npm install の通常の出力ではインストールされたパッケージの個数しか出ない)や、npm パッケージを作って配る際に意図しないパッケージに依存していないかを確認することなどが必要そうです。

Hacker News のスレッドでは、”-“パッケージ自身が無意味で、依存することに将来のリスクがあるとしても、npm から単に消すわけにはいかない、という主張もあります。(“-“を実質使ってないのに)”-“に依存してるパッケージのインストールがエラーになるからですね。ちゃんと中身のあるパッケージが消えた時ほどのトラブルではないにしても、多くのCI/CDやデプロイが止まってしまうこともないとは言い切れません。

もし作者が意図してやってるとしたら、あらかじめ間違いそうなドメイン( googel.com とか)のサイトを用意してミスタイプした人を待ち構えるようなスクワッティングにも似た話ですね。”-“パッケージについては(まだ悪意の有無はわかってませんが)刈り取り前だったとしても、既に他の間違いそうなパッケージで意図しないコードが混入しているとかもあるのかもしれません。

via Hacker News

カテゴリー
ネットの事件

ランダムなアルファベット4文字x2で、Google画像検索が謎の抽象画を返してくる

グーグル画像検索を乗っ取るサイト?

reddit/whatisthisthing(これは何?)で質問されて話題になった謎の現象がこれ。

グーグル画像検索で”jwsr ljxb”のように、アルファベットで単語になってなさそうなものを2個入れると、出てくる候補が謎の図形画像だらけになります。

どんな4文字でも出るわけではありません。まず辞書にあるような4文字はダメです。その単語に関する画像が出てきます。略語として成立してるものもだめ。子音ばかりを読めないような並びで並べると出やすいように思います。

画像のサイトを開いてみると、どの画像も c0d3.attorney というドメイン上のページにあることがわかります。その内容はというと、

謎の画像二つに、ごく短いプロジェクト紹介、そしてその後ろには長々と、デタラメにも見える読めないテキストが続いています。

難解プログラミング言語 Malbolge を使ったプロジェクト

プロジェクト紹介の内容はこちら

c0d3.attorney は Malbolge, 1998年にベン・オルムステッド氏が作成したパブリックドメインな難解言語, で書かれたプログラムを表示することに特化したプロジェクトです。言語は使うことがほぼできないように設計されています。(しかし)設計上の弱点がこれまでに発見され、使えるプログラムを書くことが可能となりました。これを共有できることは喜ばしいことです

とても短い紹介文で、これ以外には情報がありません。

ページのほとんどを占めるデタラメ風テキストが、そうすると Malbolge 言語のコードだということなのでしょう。

画像もコードも、URLに与えたパラメータに応じて変化しますが、あるページで数えてみると、約5万語、61万文字ありました。

オンラインの Malbolge実行環境(あるんだ…) に最初の一行を食わせてみましたが、エラーとなってしまいました。1行だけ入れても動かないのかもしれません。

ちなみに、サイトにサンプルとしてある Hello, World はこれ

('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=

うん。まったくわからん。

Google は「知らん」と

TheNextWeb が Google にこの現象に関して問い合わせしてくれていますが、これは Google のイースターエッグではないし、同社は c0d3.attorney とは何の関係も無い、という回答が来たそうです。

「一般的な話」として、画像のあるページにある文字で検索したら出るよ、ともコメントにあったということで、ごくごく当たり前のつまらない結論になってしまうのですが、この自動生成っぽい Malbolge 言語のコードの中にアルファベット4文字のセットが大量にでき、その中の2組の4文字をウェブの他のサイトで2つ同時に使ってる他のサイトがほとんど無いために、検索で出てきてしまう、ということでしょうね。

今の時点でも、この謎のサイトを作ったのは誰か、などは判明していません。

純粋なプロジェクトか、意図のあるSEOスパムか?

ドメインの世界では、 .com 以下は、ランダムだろうと意味がなかろうと 4文字のドメイン名はすべて誰かに取得されていることが2013年には報告されています。打ち間違いでもなんでも、4文字.com を入れた人を待ち構えて、広告を見せたりドメインを売りつけたりという商売をしてる人たちがどこかに存在するわけです。

となると、今回のサイトもそういう「迷い込んできた人」を捕まえるために作られた可能性も消し去ることはできません。とはいえ、今のところサイトに来ても、広告があるわけでもなし。単に人が来たからといって得になることなんてあるのかなとも思います。

いろいろな文字列でGoogleから推薦される、と聞くと人によってはたいへん魅力的に感じるかもしれませんが、そのデタラメな文字で迷い込んでくる人が分量としてどれほどのものか、という話もあります。総量としては見つけてやってくる人はそれほど多くないかもしれません。

ですが、今回の件で興味を持った人は、単語になってない日本語の文字の組み合わせを大量に配置するサイトでも作れば、同様の結果を得られたりするかもしれませんね。

via reddit and TheNextWeb