トップ «前日 最新 翌日» 編集
RSS feed

ただのにっき


2012-03-08(木) [長年日記]

GitHubのセキュリティホールがふさがったのでSSH Keyを確認しよう

先日、Railsアプリにありがちなセキュリティホールがあることが判明したGitHub。詳細は@sora_hによる「github の mass assignment 脆弱性が突かれた件」が非常によくまとまっているので参照のこと。脆弱性の内容そのものもだけど、開発者として脆弱性指摘をどのように受容、対応すべきかを考えさせられる事例だった。

で、これはようするに赤の他人が任意のリポジトリへのコミット権を取得できてしまうという事例だったのだけど、脆弱性の内容をみる限りその他のさまざまな入力もスルーされていた可能性がある。ということで、その対策が(おそらく)なされたのだろう、今朝になってGitHubから「SSH Keyの確認をせよ」というメールがいっせいにユーザに配信された。3日で修正とか、GitHubの中の人もずいぶんがんばった感が。

もっともメールがかなりそっけなないので、tDiaryの開発に加わるためにわざわざGitHubアカウントをとった人も読んでいるであろうここにもいちおうやり方を書いておく。

メールにも書かれている https://github.com/settings/ssh へアクセスするとこんな感じになっている(すでに1つを残して確認済み。念のためモザイク入れてあるけどたぶん意味はない):

[スクリーンショット]GitHubのSSH Key登録画面

登録済みのSSH Keyがずらっと並んでいるんだけど、ここに書かれているfingerprintが正しいかどうかをチェックして「Applove」ボタンを押す(もちろん身に覚えのないものであれば「Reject」を押す)のだが、そのfingerprintは以下のように確認できる:

% ssh-keygen -lf ~/.ssh/id_dsa
1024 XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:b8::bb:71:2f:fc:af /home/sho/.ssh/id_dsa.pub (DSA)

「~/.ssh/id_dsa」は自分のSSH鍵ファイル。dsaじゃなくてrsaかも知れない。公開鍵(~.pub)でも秘密鍵(.pubなし)のどちらでも可。また、ssh-agentやkeychainを使っている人は、以下でも得られる:

% ssh-add -l
1024 XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:b8::bb:71:2f:fc:af /home/sho/.ssh/id_dsa (DSA)

これをGitHub上の表示と比較すればよい。まぁ、全桁比較しなくてもいいと思うけど。

Tags: github
本日のツッコミ(全6件) [ツッコミを入れる]
zunda (2012-03-08(木) 09:39)

端末に表示されたssh-keygen -lの結果をコピーしてGitHubのページが表示されているWWWブラウザ内の文字列を検索(たぶんCtrl-FしてCtrl-V)すれば楽に全桁比較できますね。

ただただし (2012-03-08(木) 09:41)

おお、そりゃそうだ。あったまいい~

sora_h (2012-03-08(木) 10:26)

github.com/blog を見るに SSH key の mass assignment 脆弱性はすぐに修正されたけど、それ以外の mass assignment 脆弱性の捜索かこの SSH key の review ページ等作るのに3日かかったんだろうなー。

hsbt (2012-03-08(木) 13:06)

https://github.com/settings/security を作っていたのかもね

通りすがり (2012-03-09(金) 23:19)

zundaさんの方法で完璧なんですが、本文の最後に念のためにツッコミをいれておくと、sshのfingerprintは全桁確認した方が一応良いですよ。先頭と最後しか見ない人が余りにも多いので、先頭と最後だけfingerprintが一致する鍵を作ってこっそり差し替えておくという攻撃方法が既に報告されています。

ただただし (2012-03-10(土) 07:17)

おお、なるほど、それはたしかに可能な攻撃方法ですね。気をつけます。


トップ «前日 最新 翌日» 編集
RSS feed