2009年9月10日木曜日

[37signals] コミュニケーション改善について

(原文: On communicating better

先週我々は、8月の始めに見つかったセキュリティホール不正利用に関するやりとりにおいてあいまいな態度をとったことで、文字通り石炭の上を引きずり回される様な非難(drag a person over the coals)にさらされた。

問題はRuby on Railsにあることが判明した。このセキュリティホール不正利用は(自社と他社の)多くの製品に影響を与えた。本件は初期の調査が済んだ後に Rails セキュリティチームが引き受け、最初の報告があがってきてから数日のうちに根本原因に対するパッチが適用された。

修正は即座に行われたのに、コミュニケーションが不完全だった

問題は我々が終始、任務遂行の際のコミュニケーションに関して駄目駄目だった点にあった。我々は最初に脆弱性を報告してくれた人物とのコミュニケーションを怠り、社内でも怠り、公の場でも怠っていた。

完璧なセキュリティとは動きまわる標的のようなものだ。新たなセキュリティホール不正利用とそれに対するセキュリティ保護方法の発見は長い時間をかけて現れてくる。それらはOS上で、ブラウザ上で、フレームワーク上で、組み込みシステム上で、商用ソフト上で発生する。ソフトウェア産業に携わる者なら誰であれ、時々こういった問題に対処する必要が出てくる。重要なのは、問題をきちんと把握し、適切な部署に解決を委託し、問題の深刻度と優先度に応じて適切に対処し、関係者全員で包み隠さず連絡をとりあうことだ。誰かがセキュリティに関する問題を報告する時、彼らは解決の助けになりたいという意図のもと、報告してくれる。この点を忘れないことが我々にとって重要なことだ。

改善にむけて

なんでこうなったかを徹底的に吟味した後、我々はセキュリティ報告の取り扱いに関する社内プロセスの再検討を開始した。これはまだ始まったばかりの長期プロジェクトだ。短期で達成出来そうなものの中に、37signals.com のセキュリティ関連ページにおいていかにしてみんなとコミュニケーションをとるか、という再検証作業があった。

(時々こうするのが健康に良いことだというのは明らかなので)顏をぱちぱち叩いて目を覚ましてみると、使っている文言がよろしくないのだということがはっきりした。我々は、こんなもんだろう、という先入観にとらわれていたようだ。言葉足らずなものが何行かあった。こんなページにしようなどとは誰も思ってもいなかったのに、変えようというところまでは誰も気が回らなかった。今こそ刷新の時だ。

古いバージョン

「重要なデータを失う事は絶対にありません」「データが危険にさらされる事はありえません」「いつでもデータにアクセス出来ます」といったセリフは言うは易しだが、「絶対に」「ありえない」「いつでも」なんてのはセキュリティの世界ではありえない。何10億ドルもするセキュリティシステムが組み込まれた政府・銀行のコンピュータでさえ危険にさらされる可能性はあるのだ。誇大広告という手もありなんだろうが、我々はそうするつもりはない。

我々が約束出来るのは、我々がセキュリティの問題を真剣に受け止めているという事、我々がデータの安全とセキュリティを確保する為に多額を投じているという事、我々が今後もセキュリティの促進に専念するという事だ。社内の調査体制、社外の調査体制、パッチの適用、セキュリティ研究機関の報告に基づいた実践、耳を傾ける事。これらは我々がセキュリティ確保に専念する為の手段のほんの一部だ。

以上の事を肝に銘じた上で、見出し・本文・顧客が目にするセキュリティ関連のメッセージを書き直した。以前一緒に作業を行ったことのあるセキュリティ関連会社にも助言を求めた。問題はまだ残っているが文言は改善された。これなら表に出しても良いだろう。

現行の新しいバージョン

「データを失う事は絶対にありません」の代わりに「我々はデータを保護します」と言い換えた。「危険にさらされる事はありえません」の代わりに、物理的なセキュリティについて説明した(本文は前と同じものをコピーしたのだが、前の見出しは実際のところ全然内容にそぐわないものだった)。「いつでも」の代わりに「重要システムについて冗長性を確保しました」と言い換えた。曖昧な言葉ではなく意味の通る言葉にしたので、より良いものになった。

標準のセキュリティ関連ページの更新に加えて「セキュリティに関するお客様からの声」ページを作成した。このページではセキュリティ報告の提供に関するプロセスの詳細とセキュリティ報告の取り扱いがどのように行われるかについての説明が行われている。脆弱生について報告してくれた人とセキュリティ改善に協力してくれた人の名前の一覧も加えるつもりだ。

絶え間なき前進


我々のこれまでに打った手の中には他にも、セキュリティに関する専用窓口を設けた事、セキュリティ問題の報告を行う為の特別なメールアドレス(改竄を防ぐ為に公開鍵を用いる)を作成した事、適切な人に問題報告書をまわせるようにするためにより良い社内向けプロセスを作った事、問題報告のためにより良い社外向けプロセスをシステムに実装した事などがある。

もちろん広報ページの文言を刷新することと実際のセキュリティ問題とには何の関わりもないが、いかにしてコミュニケーションを図るかということがセキュリティ問題と大いに関わりがある事は間違いない。我々はこれまでも誤りを犯してきたがそのたびに改善してきた。我々は完璧ではないし今後も完璧になることはないだろうが、完璧を目指すという点については変わらない。自分の仕事をさし置いてまで我々とともにセキュリティ上の欠点を発見し・修正し・暴いてくれた全ての人に感謝の意を表明したい。


訳者コメント:

先日報じられた Rails の XSS 脆弱性に関する 37signals の取り組みについて書かれたエントリ。企業コンプライアンスだのなんだのと大げさな事を言う前にやるべきことがある、というのがよくわかる。

あくまでも私見ではあるが今回思ったのは、問題にすべきはセキュリティうんぬんではなく、オープンソースプロダクトは容易に公(public)としての責務を負わされ、こういった悲劇が生まれるという点にあるのではないか、ということ。

フリーソフトウェア運動は「自分で何とかする」という精神が先行するのに対し、オープンソース運動はプロプライエタリなソフトと同様の需給関係、つまり作る人と使う人という依存関係が発生しがちなように思える。

0 件のコメント:

コメントを投稿