VulnVault は、一般的かつ重大なアプリケーションセキュリティ脆弱性に関する、実践的で開発者ファーストのナレッジベースです。コードからビルド、インフラストラクチャ、デプロイまでのライフサイクル全体をカバーしています。
明確な説明、現実的な安全でないコードと安全なコードの例、そして複数のプログラミング言語とフレームワークにわたる実践的なガイダンスを提供し、チームがデフォルトで安全なアプリケーションを構築できるよう支援します。
🎯 目標: セキュアコーディングを理解しやすく、アクセスしやすく、再現可能なものにすることで、組織のアプリケーションセキュリティ体制を向上させる。
アクセスはこちら - https://viralmaniar.github.io/Vulnvault/site/vulnvault.html
ほとんどのセキュリティガイダンスは、次のいずれかです:
VulnVault は次のことでそのギャップを埋めます:
このリポジトリは次のような人々による利用を想定しています:
VulnVault は、ツールや標準ではなく脆弱性カテゴリごとに整理されています。
各脆弱性には通常、次の内容が含まれます:
例は、作為的なスニペットではなく、現実的なアプリケーションパターンを用いて書かれています。
現在のカバレッジには以下が含まれます(拡大中):
各例は**❌ 安全でない実装と✅ 安全な**実装を並べて対比しています。
String query = "SELECT * FROM users WHERE username = '" + username + "'";
なぜこれが重要か: 信頼できない入力がクエリに直接連結されるため、攻撃者がSQLロジックを操作できるようになります。
String query = "SELECT * FROM users WHERE username = ?";
PreparedStatement ps = connection.prepareStatement(query);
ps.setString(1, username);
ResultSet rs = ps.executeQuery();
📚 学習とリファレンス 開発中のセキュアコーディングハンドブックとして活用してください。
🔍 コードレビュー PRのコメントにVulnVaultの関連ページを直接リンクしてください。
🧪 セキュリティテスト SAST、DAST、ペネトレーションテストの検出結果が悪用可能かどうかを検証してください。
🎓 トレーニングとオンボーディング 新入社員やジュニア開発者のスキル向上に例を活用してください。
🛡 AppSecプログラムの実現 ガイダンスを社内標準、脅威モデル、リスク許容度に整合させてください。
コントリビューションは歓迎され、奨励されています。 以下の方法で貢献できます:
コントリビューションの基本原則:
VulnVaultは意図的に以下に焦点を当てています:
これは脆弱性スキャナーではなく、セキュリティを実現するための資産です。
このリポジトリの例は教育目的のみです。 安全でない例を本番システムにデプロイしないでください。
このプロジェクトはMITライセンスの下でライセンスされています。 詳細はLICENSEファイルを参照してください。
実際のセキュリティレビュー、ペネトレーションテスト、そして本番システムの構築とセキュリティ保護から得た教訓に触発されています。
🔐 セキュアなソフトウェアを構築しましょう。設計段階から。