▼2013年11月22日金曜日GitHubに大規模な不正ログイン試行GitHubのブログおよび国内の報道によると、GitHubに対して大規模な不正ログインが試みられたようです。GitHubは米国時間の2013年11月19日、ブルートフォース攻撃を受けたことを明らかにした。攻撃の時期や被害を受けたアカウント数は公にしていないが、今回の攻撃を踏まえ、より強固なパスワードや二要素認証などを利用するようユーザーに呼び掛けている。Historyページを確認したところ、不正ログインの試行が確認されました。IPアドレスは、ベネズエラ、タイ、ブラジルのものです。Historyを確認することを推奨します。今回の不正ログインの特徴は以下のようなものです。攻撃のパターンからはパスワードリスト攻撃ではないと思われる私は以前、このブログにて以下のように書きました。「辞書」のサイズはさまざまでしょうが、数十から数千くらいと推測されます。ペネトレーション検査等では数千以上の「大きな辞書」を使いますが、実際の攻撃では、1つのIDでちょっと試して、だめだったら次のIDで試した方が効率的のような気がします(攻撃対象が誰でも良い場合)。上記の「小さな辞書の方が効率的」と書いたことが現実に行われたと考えます。攻撃対象が誰でもよいと思う理由の1つは、私自身のGitHubリポジトリには価値あるソースコードがない、ということです。なると、犯人の動機が気になるところですが、GitHubにホストされたソースにマルウェアを注入したかった(ソフトウェアは何でもよかった)GitHubのOAuthでログインできるサイトの不正利用その他などが考えられます。この種の攻撃へのサイト側の対策は容易ではありません。攻撃者は、既存のセキュリティ施策をかいくぐるように攻撃をしています。アカウントロックを避けるために1アカウントあたり少ない試行で留めるIPアドレスを4万に分散させ、IPアドレス単位のロックや監視をくぐり抜ける試行を「ゆっくり」行うことにより、試行回数によるロックや監視をかいくぐる一方で、「小さな辞書」を用いると言うことは、123456やpasswordなどの「安易なパスワード」を避けるだけで対策できると考えられます。現在のGitHubには既に、パスワードの辞書チェック機能が実装されています。以下は、GitHubにてパスワードを「password1」に変更しようとした際の画面です。「パスワードはハッカーに推測されます」というエラーメッセージが表示され、このパスワードには設定できません。この辞書チェック機能は最近実装されたものでしょう。GitHubは迅速に対処を進めています。同様の辞書チェック機能は、既にtwitter、google、facebookでは実装されています(参照)。利用者側の対処はシンプルです。推測しにくいパスワードを設定する(必須)他のサイトで使っていないパスワードを設定する(必須)二要素認証を有効にする(推奨)ということで、私も(GitHubに重要資産はないものの、念のため)GitHubの二要素認証を有効にしました。不正ログインが大量に成功したわけではないので、タイトルに「試行」と追記しました。