Laura Bell
SafeStack.ioのチームによるこのセキュリティチェックリストは、開発チームのセキュリティ文化を向上させ、一般的なセキュリティリスクについてコードを一貫してチェックできるようにするために作成されました。
脆弱性の発見が早ければ早いほど、その修正にかかるコストは低くなり、また修正も容易になります。このツールは、ソフトウェアチームのコードレビュープロセスの一部として使用され、セキュリティ姿勢とリリースするコードの品質を向上させることを目的としています。
セキュリティチェックリストは、3つのフェーズで構成されています
コミットされたコードからすべてのシークレット情報が取り除かれたのか?
未解決のリスクは提起され、文書化されているか?
コードのレビューに適切な人が参加しているか?
変更の目的は明記され、レビュアーに理解されているか?
コードにデバッグ機能はあるか?
ユーザー提供のデータか:
ログを記録する:
フレームワーク、ライブラリ、ツール、その他の依存関係に対して:
レスポンスメッセージ:
テスター向け:
詳細はこちらCode Review Security Checklist Implementation Manual 。
セキュアコーディングのプラクティスを一貫して行うことにより、コードレビュー文化を改善できます。
これは、ソフトウェアの開発プロセスにおいて、より良いセキュリティの実践を構築するための良い出発点です。ローカルのプラクティスに合わせて追加・修正することが推奨されます。
包括的なものではありません。また、独立した教材、説明責任の仕組み、安全な開発への完全なガイドとして意図されているわけでもありません。
セキュリティチェックリスト自体をコードレビューリクエストのテンプレートとし て含め、レビューツールでその完了を要求するように設定することができます。また、チームのワークステーションの周囲に物理的なコピーを置いておくと便利でかもしれません。
最初のフェーズは、コードを作成した人がチームと共有する前に、実際のパスワード、キー、トークン、その他の秘密事項がコードに含まれていないことを確認するところからです。
次の段階はレビューで、各項目は開発者以外のレビュアーの誰でも完成させることができます。レビュアーは、正しい人がタグ付けされ、全員が意図した変更を理解していることを確認します。
そして、デバッグコードの有無、信頼できないデータやレスポンス情報の扱い、ツールの正しい使い方、十分なログとテストの網羅性などをチェックします。
最後に、コードレビューの結果、レビューの範囲を超えたリスクが摘出された場合、レビュアーはそのリスクをチームに提起し、レビューされる場所にログが残るようにします。これは、レビュアーのだれでも完了することができます。
チームは、自分たちのニーズに合わせてチェックリストを修正する必要があります。自分たちができないから、やりたくないからという理由で、安全対策を削除してはいけません。チェックリストの変更の決定にはチーム全体が参加し、変更後のチェックリストは1つのシステムでテストし、意図したとおりに機能することを確認する必要があります。変更の結果、焦点の定まった、簡潔で実行可能な、協力的で、テストされ、統合されたチェックリストが得られるはずです。
Cover photo by Glenn Carstens-Peters on Unsplash
(コードレビュープロセスにおける)セキュリティチェックリスト をチームや顧客、ステークホルダーと実施するにあたりより詳細にお知りになりたい場合は、以下のリンクを参照してください。