記事の序文
SDL セキュリティ テスト プロセスのコード監査部分では、通常、コード監査ツールを使用してソース コードのセキュリティ スキャンを実施し、スキャン結果をレビューして既存のセキュリティ問題を選別し、修復のためのセキュリティ注文の形式で開発者に提出します。監査ツールの利点は、迅速かつ完全に監査できることですが、誤検知や漏れも多いため、時間があるときに手動監査を使用してソース コードの二次セキュリティ監査を実施する企業もありますが、手動監査も同様です。一般的なセキュリティ問題は、時間がかかり、コードを完全にカバーすることを保証することが難しいことです。
監査のアイデア
以下では、JAVA プロジェクトのコード監査を例として、監査のアイデアを示します。
コードレベル
監査人は、プロジェクト コード内の安全でないコーディングや安全でない関数の使用を検索して、次のような一般的なリスクを見つけることができます。 OWASP トップ 10 の脆弱性
XXE
SQLインジェクション
コマンドの実行
ファイルのアップロード
ファイルの読み取り
JNIDインジェクション
逆シリアル化の脆弱性
……
ビジネスレベル
監査人は、プロジェクト フォルダー ディレクトリ、ファイル名、ファイル ソース コード内のコード関数に関するコメントを参照することで、コードのこの部分に対応するビジネス関数を推測し、一般的なビジネス関数の設計上の欠陥を探すことができます。
ユーザーログイン
ユーザー登録
パスワードを回復
アカウントのリチャージ
個人情報を変更する
……
コンポーネントフレームワーク
監査人は、プロジェクトの pom ファイルをチェックすることで、安全でないサードパーティのオープン ソース コンポーネントが使用されているかどうかを判断できます。また、プロジェクト ドキュメントなどの指示をチェックすることで、プロジェクトが安全でないフレームワークを使用しているかどうかを判断できます。
フレームワークの脆弱性
サードパーティライブラリの脆弱性
……