2013年11月22日金曜日

GitHubに大規模な不正ログイン試行

GitHubのブログおよび国内の報道によると、GitHubに対して大規模な不正ログインが試みられたようです。
GitHubは米国時間の2013年11月19日、ブルートフォース攻撃を受けたことを明らかにした。攻撃の時期や被害を受けたアカウント数は公にしていないが、今回の攻撃を踏まえ、より強固なパスワードや二要素認証などを利用するようユーザーに呼び掛けている。
GitHubにブルートフォース攻撃、一部のパスワードが破られるより引用
私もGitHubアカウントがありますのでSecurity Historyページを確認したところ、不正ログインの試行が確認されました。IPアドレスは、ベネズエラ、タイ、ブラジルのものです。


GitHubアカウントをお持ちの方は、念のためSecurity Historyを確認することを推奨します。
今回の不正ログインの特徴は以下のようなものです。
  • 少数の「弱いパスワード」に対する試行と思われる
  • 1アカウントに対して、時間をおいて少しずつ試行する「ゆっくりした攻撃」
  • 4万のIPアドレスからの分散攻撃
  • 攻撃のパターンからはパスワードリスト攻撃ではないと思われる
私は以前、このブログにて以下のように書きました。
「辞書」のサイズはさまざまでしょうが、数十から数千くらいと推測されます。ペネトレーション検査等では数千以上の「大きな辞書」を使いますが、実際の攻撃では、1つのIDでちょっと試して、だめだったら次のIDで試した方が効率的のような気がします(攻撃対象が誰でも良い場合)
パスワード攻撃に対抗するWebサイト側セキュリティ強化策より引用
上記の「小さな辞書の方が効率的」と書いたことが現実に行われたと考えます。攻撃対象が誰でもよいと思う理由の1つは、私自身のGitHubリポジトリには価値あるソースコードがない、ということです。
となると、犯人の動機が気になるところですが、
  • GitHubにホストされたソースにマルウェアを注入したかった(ソフトウェアは何でもよかった)
  • GitHubのOAuthでログインできるサイトの不正利用
  • その他
などが考えられます。

この種の攻撃へのサイト側の対策は容易ではありません。攻撃者は、既存のセキュリティ施策をかいくぐるように攻撃をしています。
  • アカウントロックを避けるために1アカウントあたり少ない試行で留める
  • IPアドレスを4万に分散させ、IPアドレス単位のロックや監視をくぐり抜ける
  • 試行を「ゆっくり」行うことにより、試行回数によるロックや監視をかいくぐる
一方で、「小さな辞書」を用いると言うことは、123456やpasswordなどの「安易なパスワード」を避けるだけで対策できると考えられます。現在のGitHubには既に、パスワードの辞書チェック機能が実装されています。以下は、GitHubにてパスワードを「password1」に変更しようとした際の画面です。

「パスワードはハッカーに推測されます」というエラーメッセージが表示され、このパスワードには設定できません。この辞書チェック機能は最近実装されたものでしょう。GitHubは迅速に対処を進めています。同様の辞書チェック機能は、既にtwitter、google、facebookでは実装されています(参照)。

利用者側の対処はシンプルです。以下を推奨します。
  • 推測しにくいパスワードを設定する(必須)
  • 他のサイトで使っていないパスワードを設定する(必須)
  • 二要素認証を有効にする(推奨)
ということで、私も(GitHubに重要資産はないものの、念のため)GitHubの二要素認証を有効にしました。

追記(11:00) 不正ログインが大量に成功したわけではないので、タイトルに「試行」と追記しました。

0 件のコメント:

コメントを投稿

フォロワー