BSA / Back Doors


BSA

バックドア

要約

  • 別の誘惑はコード内にバックドアを置くことだ。それで例えば顧客サービスの代理人は、顧客がパスワードや証明書を紛失した場合でも、セキュアなデータを取得することができる。慎重に制御されたバックドアを配置することは、愚かな顧客を守る、輝くヒーローのように見える。
  • 一方、バックドアは、多くの場合、不十分な実装で、簡単にハックできる。結果は、セキュリティ上の無駄な時間と労力だ。
  • これを説明するために、我々は、百のウィンドウの問題(100th Window Problem)を使用する。あなたの会社に100窓の全て開いている大きな建物があり、出発する前に、あなたがすべてロックするように急いでいたとする。残念ながら、実際には1つを見落として、99の窓だけをロックした。優れたロックとロックされたすべての窓に防犯アラームを持っている場合でも、泥棒が100番目のウィンドウを開ければ、すべての企業の商品を持ち去ることができる。より多くのウィンドウを追加することは、すべてが安全であることを確認することをより難しくする。
  • 一般的に言えば、システムの関連する部分の100%を満たさずに安全にしても意味はない(訳注:その後の分で逆のことをいっているような気がして訳があっているか自信なし:Generally speaking, there’s no point in securing less than 100 percent of the relevant portion of your system. )。あなたがすべてでそれをやろうとしている場合、あなたはすべての安全に努めなければならない。バックドアを構築するよりも、顧客に、パスワードやキーの安全なオフサイト第三者委託(offsite escrow)を提案する方が良いだろう。彼らがパスワードや証明書を紛失した場合は、自分自身を責めるだけだ。
  • またあなたが「ところで、当社のソフトウェアは本当に安全ですが、必要な場合、我々はセキュリティを破ることができます。」とは言っていないなら。あなたは、「私たちはあなたの高価なミスを避けられるように助けますが、私たちのソフトウェアは我々でもセキュリティを破ることができないのでとても安全です。」ということになる。これは、より良い技術的なメッセージと、はるかに優れたマーケティングメッセージだ。

コラム

  • カスタマー・サポートは、バックドアからこっそり働くべきではない。
  • エンタープライズクラスのソフトウェアシステムのとある顧客が、データベース管理の問題を抱えていた。カスタマーサポートは、問題を診断するために必要なSQLコマンドを実行できなかったため、問題の診断するのにトラブルを抱えていた。
  • 私の開発者の一人は、非常に巧妙なソリューションを作成した。彼は顧客のサイトにインストールされている別のプログラムに任意のSQLを送信することができるプログラムを書いた。このプログラムは、顧客のデータベースにクエリを適用し、技術サポートに結果を返す。一度インストールすれば、それは定期的に、任意のコマンドのためにおよそ数分ごとにチェックする。
  • 顧客にこのプログラムを送り、彼らはそれをインストールして、短い時間で、顧客サポートチームが問題を解決した。実際には、この解決策は非常に顧客サポート、と開発チームの両方に賞賛され、次のリリースにこれを置くための強い圧力があった。だが私はノーと言った。不適切なコマンドを作成し、疑うことを知らない顧客に送信するリスクがあまりにも大きかったのだ。意図は良いときでも、あなたがバックドアを防ぐ必要がある。
  • Luke