Azure ReposにSECURITY.mdファイルを追加する
Edward Thompson
2019年5月6日
0 分で読めますこの記事では、Azure Reposにおける8つのセキュリティベストプラクティスシリーズから、ベストプラクティスその4「リポジトリにSECURITY.mdファイルを追加する」を取り上げます。
Azure ReposにSECURITY.mdファイルを追加する
ほとんどのプロジェクトオーナーやメンテナーが、リポジトリにREADME.mdを追加するのは自然なことです。実際、今ではそれが当たり前となっており、README.mdがないとかなり問題視されます。同様に、プロジェクトに関するセキュリティ情報をまとめたSECURITY.mdファイルを追加することも、ますます一般的になっています。オープンソースプロジェクトのユーザーに重要なセキュリティ情報を提供できるだけでなく、メンテナーが脆弱性の開示やアップデート、一般的なセキュリティ対策への対応方法を考えるきっかけにもなります。
SECURITY.mdファイルに記載することが推奨されるトピックの概要を紹介します。
脆弱性開示ポリシー。 2017年版Snykオープンソースセキュリティの現状レポートによると、公開された脆弱性開示ポリシーを設けていないメンテナーのうち、脆弱性について非公開で通知を受けたことがあるのはわずか21%です。一方、公開ポリシーを設けているメンテナーでは73%に上ります。この結果は、問題を報告する人がセキュリティ問題を責任ある方法で完全に開示するための手順を定めることの重要性を示しています。連絡先と連絡方法も明記しましょう。これにより、プロジェクトのユーザーから重要なフィードバックを得られるため、とても重要です。何かを行うための明確で簡単な方法がなければ、そもそも対応を見送ってしまいがちです。また、脆弱性の存在を公開課題として登録し、修正が提供される前に意図せず広く知られてしまうこともあります。問題が見つかったときに、プロジェクトのユーザーがメンテナーへ適切な情報を伝えられるよう、必要な手順をすべて示してください。
セキュリティアップデートポリシー。ソフトウェアの脆弱性は毎日のように発見されています。アプリケーションやライブラリに脆弱性が見つかった場合、プロジェクトのユーザーに知らせる責任があります。ユーザーは、本番環境の重要なシステムでオープンソースコードを利用しているかもしれません。脆弱性の深刻度やリスク、修正済みのコードバージョンへの移行方法など、関連情報を共有するための明確なプロセスを定めておく必要があります。あらかじめプロセスを定めておけば、新たなセキュリティ脆弱性が発見・修正された際に、できるだけ早くユーザーへ情報を届けられます。セキュリティ関連のメーリングリストを用意するだけでもよいでしょう。リポジトリ内でこうした情報を共有する場所として、SECURITY.mdファイルが適しています。Webサイトがある場合は、独立したページを作ることも検討してください。例としてExpress.jsのセキュリティページをご覧ください。
セキュリティ関連の設定。プロジェクトのセキュリティ上の考慮事項は、コードだけにとどまりません。オープンソースプロジェクトのユーザーは、利用環境で必要な動作をさせるために、プロジェクトに設定を追加したり、各種設定値を調整したりする必要があるでしょう。プロジェクトのデプロイ時にセキュリティを強化できる推奨設定を、ユーザーに提供してください。たとえば、HTTPSを有効にする、認可レイヤーを追加する、そしてもちろんデフォルトのパスワードを変更する、といった設定です(多くのMongoDBユーザーが事前に知っておきたかったアドバイス)。多くのユーザーはセキュリティへの理解が十分でないことを念頭に置き、役立つアドバイスをできる限り提供しましょう。
既知のセキュリティ上の不足と今後の改善。ユーザーが環境を保護するために必要な情報を提供することと、攻撃者に攻撃経路のヒントを与えることの間には、トレードオフがあります。共有する情報がどちらの側にもどう利用されるか、常に検討してください。セキュリティ改善策をすべて実装し終えているプロジェクトは、ほとんどありません。現在実装されていないセキュリティ対策について、プロジェクトのユーザーに伝えることが重要です。ユーザーがプロジェクトの利用方法について十分な情報に基づいて判断できるよう、全容を知らせましょう。掲載した対策の実装に、ユーザーが貢献してくれるかもしれません。
Azure Reposのセキュリティベストプラクティス8項目の続きを読む:
まだダウンロードしていない方は、このチートシートを今すぐダウンロードして目につく場所に貼り、今後も安全な判断ができるようにしましょう。




