ただのにっき
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つを残して確認済み。念のためモザイク入れてあるけどたぶん意味はない):
登録済みの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上の表示と比較すればよい。まぁ、全桁比較しなくてもいいと思うけど。