In this article
セキュアコーディング標準を導入するための3つの柱
人材、プロセス、ツールを活用したセキュアコーディング標準の実現方法
多くの組織にとって、セキュアなソフトウェアを迅速に提供することは、今日きわめて重要です。多くの開発者はセキュリティより開発スピードを優先しますが、両者のどちらかを選ぶ必要はありません。実際、セキュアコーディング標準を導入すれば、開発速度を損なうことなく、アプリケーションのセキュリティ態勢を強化できます。
セキュアコーディング標準とは?
セキュアコーディング標準とは、開発中のセキュリティ上の脆弱性やエラーを減らすために、組織が定める一連のルールやガイドラインです。適用される標準は、組織ごとのセキュリティ要件によって異なります。たとえば、決済を扱うアプリケーションにはPCI準拠要件が適用されます。
コーディングの原則に加えて、Common Vulnerabilities & Exposures(CVE)、National Vulnerability Database(NVD)、Snyk Intel 脆弱性データベースなど、標準化された脆弱性データベースを開発者は脆弱性管理に活用できます。
セキュアコーディングが重要な理由
セキュリティインシデントのリスクを組織にもたらすことなく高品質なソフトウェアを提供するには、セキュアコーディングが不可欠です。安全でないコードは、特に機密データを扱う業界において、金銭的・評判上の損害、市場操作や窃盗など、さまざまな悪影響をもたらすおそれがあります。開発の初期段階からセキュアコーディングを取り入れることで、アプリケーションの強固なセキュリティ基盤を築き、企業とステークホルダーを守ることができます。
セキュアコーディング標準によって、セキュアなソフトウェアをどのように提供できるのか、詳しく見ていきましょう。セキュアコーディング標準を導入するための3つの柱と、検討すべきセキュアコーディングのガイドラインもご紹介します。
ソフトウェアセキュリティ標準が必要な理由
セキュアなソフトウェアは多くの組織にとって優先事項ですが、サイバーセキュリティ人材のスキルギャップが開発チームに影響を及ぼしています。実際、米国のコンピューターサイエンス学部課程の上位24プログラムのうち、セキュリティコースを必修科目としているのはわずか1つです。そのため、セキュリティ人材の慢性的な不足に加え、新たに業界に入る開発者はセキュアコーディングを実践するための準備が不十分です。
企業がセキュアコーディング標準、つまり脆弱性の混入を防ぐ正式なコーディング慣行を採用すれば、開発者はより安全で高品質なソフトウェアを提供するための指針を得られます(セキュアコーディング標準については後ほど説明します)。開発の妨げになることなく、アプリケーションのセキュリティ態勢を大幅に向上させることができます。
さらに、最近の調査では、一般的な企業がハードウェアとソフトウェアの脆弱性の28%を修正できておらず、未解決のセキュリティ問題が57,000件以上にのぼることがわかりました。セキュアなコードを書くことで、コードベースに新たな問題が入り込むペースを抑え、多くの企業が直面している脆弱性のバックログ増加に対処できます。
セキュアコーディング標準の3つの柱
セキュアコーディング標準を導入するには、開発者の意識を変え、新しいプロセスを採用し、適切なセキュリティツールを活用する必要があります。それぞれを詳しく見ていきましょう。

人材
セキュアコーディング標準を適用するうえで最初に重要なのは、開発者からIT運用スタッフ、プロダクトマネージャーまで、すべての関係者にセキュリティ文化を根付かせることです。これにより、組織はソフトウェアを設計段階から安全に構築し、潜在的なリスクを管理するための脅威モデルを作成できます。
セキュリティチャンピオンプログラムも、開発チームにセキュリティの知識を広める効果的な方法です。セキュリティチャンピオンはアプリケーションセキュリティに関心があり、AppSecチームと緊密に連携しながら、開発チームの一員として活動する開発者です。セキュリティチャンピオンはセキュリティチームと開発チームの橋渡し役となり、セキュアコーディング標準の導入を促進できます。
プロセス
セキュリティ文化を育むだけでなく、組織はセキュアソフトウェア開発ライフサイクル(SSDLC)を構築する必要があります。SSDLCでは、設計から開発、テスト、デプロイ、保守に至るまで、ソフトウェア開発のあらゆる段階でセキュリティ対策を実施します。プロジェクトの各段階でセキュリティ問題に対処することで、脆弱性を事後対応で修正するのではなく、開発初期からセキュアコーディングを実践し、安全なソフトウェアをプロアクティブに提供できます。
手動でのセキュアコードレビューはセキュリティ問題の防止に役立ちますが、可能な限りセキュリティスキャンを自動化することも効果的です。たとえば、ソフトウェアコンポジション分析(SCA)を活用すれば、脆弱性データベースを使って、公開された既知のセキュリティ問題をすばやく検出し、修正できます。セキュリティプロセスを自動化することで、組織は最新の脅威に先手を打ちやすくなります。
チームでセキュアコーディング標準を適用するには?
セキュアコーディング標準を適用するには、開発チームに強固なセキュリティ意識を根付かせ、既存のワークフローに効率的なセキュリティ対策を取り入れ、開発者が使いたくなる適切なセキュリティツールを選ぶことが不可欠です。セキュアコーディング標準を効果的に適用すれば、企業はソフトウェア開発にDevSecOpsのアプローチを取り入れることができます。つまり、開発速度を損なうことなく、開発者がアプリケーションのセキュリティ態勢に責任を持てるようになります。
ツール
セキュアコーディング標準を導入する際、セキュリティチームが開発チームに新しいツールを無理に押し付けないことが重要です。そうしたやり方は摩擦を生み、長期的には新しいセキュリティツールやプロセスの展開を遅らせる可能性があります。代わりに、セキュリティチームは開発者にとって使いやすいツールを選び、導入を促進して開発者の生産性を高めるべきです。
具体的には、開発者にとって使いやすいツールは、既存の開発ワークフローにシームレスに統合できる必要があります。開発者は、作業を遅らせたり、多くの追加作業を必要としたりしないセキュリティツールを使う傾向があります。摩擦のないセキュリティツール体験は、開発者がアプリケーションセキュリティにより主体的に取り組むきっかけにもなります。
すべてを組み合わせる
このように、セキュアコーディング標準の導入には多層的なアプローチが最適です。Snykのクラウドネイティブアプリケーションセキュリティ(CNAS)プラットフォームを利用すれば、開発者がアプリケーションセキュリティを主体的に担い、開発プロセスにセキュアコーディング標準をすぐに適用できるよう支援できます。コードのセキュリティを手軽にチェックできる、Snykの無料コードチェッカーツールもお試しください。