カテゴリー
ネットの事件

英銀行の「正しい電話番号」確認サイト、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 での議論も多方向に拡散してしまっているのですが、主要な問題は偽メールや偽電話でだまそうとしている勢力が簡単に正式な電話番号のリストを入手できるところにあるのではないかなと思います。

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

カテゴリー
ネットの事件

Internet Explorer 3.0 チームにいた若手エンジニアの回想ツイート

子供がオンラインでプログラミングを学習できるサイト Hour of Code の創立者である ハディ・パルトヴィさん(Hadi Partovi)は、Internet Explorer 3.0 の開発者の一人だったのですね。初期の「ブラウザ戦争」にマイクロソフトという巨大企業側から関わった経験をツイートされています。

パルトヴィ氏は22歳の時、たった9人だった IE開発チームに入っています。初期のワールドワイドウェブ(WWW)の標準的な地位を占めていたネットスケープナビゲーターのシェアは95%。当時のIEはというと、技術的には2年近く遅れていたと。

以下、長連文ツイートから面白かった箇所を抜き出します。

  • チームは採用を絞りに絞った
  • ボスの言葉「できるといったやれ、できないのは構わない。できないことを引き受けて失敗するとチームが止まる。ノーと言うことを覚えなさい」
  • モチベーターとしてのビル・ゲイツ氏のメモ
  • IE3.0開発の発表日は真珠湾攻撃にちなんだ1995年12月7日。先制された戦争をやり返すためならAppleやAOLとも組んだ
  • Netscapeのマイク・アンドリーセン氏の次の言葉を壁に貼って闘志を燃やした「Netscapeによって、Windowsはもうすぐ品質の悪いデバイスドライバ集みたいなものになるだろう」
  • 3食を共に取り、深夜にフーズボールで遊んだ
  • 離婚や壊れた家庭や不眠症その他の悪い事も起こったが、2万人の会社内に人生を賭けた100人のチームがあった。(この部分と働きすぎの描写については、後で誇張しすぎたという訂正記事を出されています)
  • IE5で勝利した後、マイクロソフトは勝利したと考え、パラノイド的であることを止め、IEはジョークの対象になってしまった
  • だめになっていくIEを見るのがつらく、1999年に退社した

エキサイティングな環境に22歳の移民として入り、すばらしいメンバーと一緒に短期間で勝利を収めたことへの誇らしさが伝わる体験談でした。結果成功したから良い思い出になったという見方もできますが、馬車馬のように働ける時期に働くに足るチームと出会えたことがプラスになっているし、その後の起業等の成功にもつながっているのでしょうね。

カテゴリー
ネットの事件

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