カテゴリー
ネットの事件

英銀行の「正しい電話番号」確認サイト、JSONで全74000番号を晒す作りで議論を呼ぶ

イギリスの大手バークレーズ銀行、利用者の電話詐欺被害対策として「バークレイズ銀行の電話番号として正しいか調べる」サイトを公開しているのですが、その実装に問題があるのではという疑義がHacker News で上がり議論となっています。

Phone number checker サイトでは、電話番号を一つ入力するフォームが置かれ、ここに電話番号を入力すると、74000個ある正式な電話番号の場合は「この番号へ掛けても大丈夫です」という結果が出ます。

大手とはいえ、一つの銀行が74000個も番号を抱えてるのはすごいですね。フリーダイヤルから支店や部署まですべての番号を含むにしても。

議論となっているのは、このチェッカがクライアントサイドだけで動いているらしいこと。JSONファイルが読み込まれていて、このファイルに74000個の電話番号がベタ書きされています。


{
"numbers": [
"0800000097",
"0800001011",
"0800008008",
"0800111777",
"0800201612",
"0800222200",
"0800222800",
"0800227222",
"0800281435",
"0800282390",
"0800289289",
"0800289888",
"0800289989",

最初に声を上げたブログが、入力フォームの形式チェックがあまりちゃんとしていない(ハイフンを含んだりイギリスの国番号44から始まる形式を正しく認識できない等)やJSONファイルのサイズ(1.3Mbytes)が大きすぎることを問題にしていた(これぐらい許容範囲だとか、正規表現で書けばよいとか圧縮をちゃんとすればよいとか)ため、Hacker News での議論も多方向に拡散してしまっているのですが、主要な問題は偽メールや偽電話でだまそうとしている勢力が簡単に正式な電話番号のリストを入手できるところにあるのではないかなと思います。

発信者番号通知も改竄可能なので、騙す側に改竄するための正しい番号のリストを教えているという話でもあります。このチェッカが正しく理解されていないと、電話を「受けた時」にこのチェッカで正しいとされたから電話の相手を信用してもいいと思ってしまったりしてしまう可能性もあります。

カテゴリー
ネットの事件

‘-‘ という名前の、中身が無いのに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

カテゴリー
セキュリティ

マックハック – ドイツのマクドナルドアプリが無料注文機に

東ベルリンのマクドナルドで、記者の前でWiFiから無料のハンバーガー注文をしてみせた3人組のハッカーの話です。

現地のマクドナルドのスマートフォンアプリでは、購入後にアンケートがあり、アンケートに答えると無料のドリンククーポンが貰えるそうです。

ドイツのソフトウェア開発者デビッド・アルバートさんは、この無料ドリンククーポンの使用時の通信内容が毎回同じであることに気づき、まずはドリンク飲み放題という手段を手に入れました。

さらに彼らは、アプリケーションからマクドナルドのサーバへの通信経路にプロキシーサーバーを挟み、そこで通信の書き換えを行うことで、どのメニューの注文でも好きな値段に、ゼロにでも、書き換えることを確認したそうです。

アプリから0円(0ドル)で注文し、呼ばれて受け取りカウンターに行った彼らは、記者の前で店員に自分たちが無料で注文するトリックを使ったこと、正規の値段を支払うことを申し出たそうですが、店のマネージャーはいいから取っておきな、と取り合わなかったそう。

これまでも同じように自ら申告して、店側が注文をキャンセルしたこともあるし、咎められずに受け取ったハンバーガーをホームレスにあげたりもしたそう。

彼らは無銭飲食をしたいわけではなく、この抜け穴をマクドナルドに伝えることで3人のうち2人の職探しの助けにならないかと考えていたとのこと。

そのような動機で昨年11月にマクドナルドのカスタマーサービスに問題を伝えたものの、2週間経っても穴は塞がれず。その後記者がマクドナルドに問い合わせした際には、「システムは十分にセキュアに作られていて、よほどの手練れでもなければそんな穴はつけないだろう。とはいえ、改善はしています」と回答されたということ。

12月中旬には、この食べ放題ハックは使えなくなっているのが確認されたそうです。3人にも、マクドナルドからの感謝が何らかの形で示されたらしいです。

via Schneier on Security