プロダクト開発のトレンドは、アジャイル開発による継続的な仮説検証へ
NRIセキュアは、野村総合研究所(以下、NRI)グループの情報セキュリティ専門企業で、1995年にNRIの社内ベンチャーとしてスタートしたのち2000年に設立された。コンサルティングからソリューション導入、教育、運用、監視まで、企業の情報セキュリティに関するあらゆるニーズにワンストップで対応し、安心・安全なIT社会の実現を目指している。
関戸氏は同社のエキスパートセキュリティコンサルタントとして、組織やシステムに合わせたセキュリティ設計、開発プロセスの策定、自動化ツールの評価、CI/CDパイプラインの組み込み支援を行っている。また、同社が提供するDevSecOpsトレーニングの開発と講師も務めている。

NRIセキュアでは、ソフトウェアプロダクト開発は非常に重要であり、その活動を通じて日本や世界に新しい価値を提供することができると考えている。関戸氏は「ソフトウェア開発を通じ、セキュリティから支えることで価値のある社会づくりに貢献することをミッションとしてサービスを展開しています」と述べた。
プロダクト開発は、継続的にサービス開発に投資し、競争力を高めながら次々にシステムをリリースする活動だ。この継続的な投資が重要視されている。新しい価値を提供するためには継続した仮説・検証が不可欠だ。利用者のニーズを模索し、試作をリリースして評価する。評価が良ければさらに発展させ、悪ければ別のものを作る。

関戸氏は「従来のウォーターフォール開発のように明確に要件を決めて開発をするというプロセスではなく、少しずつ作っていくアジャイル開発が着目されています」と話す。例えば、ウォーターフォール開発で4カ月に1回リリースする間に、アジャイル開発では2週間に1回のリリースで計8回のリリースができ、その間に顧客のフィードバックを得て改善し、競争力を高めることができる。
セキュリティ対策の生産性を向上する「シフトレフト」と「セキュリティ・バイ・デザイン」とは
開発プロセスにセキュリティ対策を組み入れることも重要だ。セキュリティリスクアセスメントでは、あるべき姿に対し現在の状況の不足点を把握する。まず、リスクの範囲を明確にするためスコープを設定する。次に、設定したスコープでのリスクを特定する。このプロセスには脅威分析やソリューションを使ったリスク特定が含まれる。リスクの優先度を決定し、優先度が高いリスクから順に対策を講じる。リスク対策としてソリューションを使ってリスクを軽減することがある。
具体例として関戸氏は、システム設計を検証する脅威モデリング、ソースコードの検査、完成したWebアプリケーションの診断サービスなどを挙げ「どれか一つの方法だけで安心するのではなく、多角的にリスクを特定することで、広範囲のリスクに対処できる」とコメントした。

さらに関戸氏は、セキュリティ対策の生産性を向上させる2つのキーワードを紹介した。1つは「シフトレフト」で、システム開発のより早い段階でリスクを特定し、対応することを指す。もう1つは「セキュリティ・バイ・デザイン」で、設計段階からセキュリティを組み込み、安全なシステムを作ることを意味する。NRIセキュアには多くのセキュリティコンサルタントが在籍しており、これらの取り組みを支援できる。
関戸氏は、同社が「セキュリティ・バイ・デザイン」の考え方に基づいたセキュリティ強化スキームの構築を支援したMS&ADシステムズ株式会社の事例について、「多くの事業会社がそれぞれシステム開発運用を行う中で、担当者のセキュリティ知識に依存せずセキュリティを確保するために、シフトレフトとセキュリティ・バイ・デザインの取り組みを進めています。これによってセキュリティ品質を高め、手戻りコストの削減を実現しています」と説明した。
NRIセキュアが提案する、多様なソリューションとコンサルティング
NRIセキュアは顧客の組織や課題に適した様々なソリューションを取り扱っている。関戸氏はシフトレフトを支えるNRIセキュアのソリューションをいくつか紹介した。ソースコード管理では、中央リポジトリを用いた効率的な管理と、変更管理やCI/CDパイプライン機能を持つソリューションの選定が一般的だ。NRIセキュアはNRIと提携し、GitLabを提案している。
また、ソフトウェアを構成するライブラリの脆弱性を管理するSCA(Software Composition Analysis:ソフトウェア構成解析)も提供している。現在のソフトウェア開発では多くのライブラリを使用するため、システム内のソフトウェアや既知の脆弱性の把握が重要だ。この分野ではSnykを提案している。
さらに、ソースコード内の脆弱性を特定するSAST(Static Application Security Testing:静的アプリケーションセキュリティテスト)ではSynopsysのPolarisを、起動したアプリケーションの外部挙動から脆弱性を特定するDAST(Dynamic Application Security Testing:動的アプリケーションセキュリティテスト)ではNRIセキュアの100%子会社であるユービーセキュアのVexを紹介している。起動したアプリケーションの内部挙動をエージェントによって把握するIAST(Interactive Application Security Testing:対話型アプリケーションセキュリティテスト)もある。これはアプリケーション側にエージェントを組み込み、正常フローでも脆弱性を正確に特定する手法で、NRIセキュアはContrast Assessを提案している。
専門人材が支援するセキュリティコンサルティングサービスも複数提供している。「SEC Team Services」は、セキュリティコンサルタントが開発チームに寄り添い、Q&Aを通じて、開発の企画段階からリリース運用までセキュリティを幅広くサポートする。「セキュリティ設計評価サービス」は、システムの設計書から脆弱性がないかをアドバイスし、設計段階での修正により手戻りコストを削減し、セキュリティ・バイ・デザインを実現して生産性を向上させる。

「セキュリティ診断サービス」は、Webアプリケーションやソースコード、スマートフォンアプリケーションの診断を行う。セキュリティ研修「セキュアEggs(DevSecOps)」は、開発者やアジャイルチームの代表者向けの研修だ。この研修について関戸氏は「アジャイルの文化やツール選定、実際の組み込みについて、講義と演習を通じて2日間で学びます。すぐに現場で活用できる内容となっています」と説明した。
そして関戸氏は、同社のコンサルティング事例として、クレジットカード事業を展開する株式会社ジェーシービー(以下、JCB)の開発組織への支援について説明した。JCBでは、アプリケーションごとに10人程度の開発チームを展開しており、各チームを支援する共通機能の一つとして「セキュリティ」のチームを置いている。関戸氏は「弊社は設計時の質問、レギュレーション対応、セキュリティの勉強会、セキュリティ診断、コードレビューなどを提供しています。これにより、セキュリティの品質を均一化しながら開発に専念できるようにし、生産性の高いプロダクト開発を実現しています」と語った。
シフトレフトを実践するための3つのポイント
続いて関戸氏は、シフトレフト実践のポイントを3つ挙げた。
まずは、解決したい課題や目標とする期待値を明確にすることだ。漠然と取り組むのではなく、具体的にどのセキュリティリスクを特定し解決したいのかをはっきりさせる。コーディングを行う際に脆弱性を作り込んでしまうリスクなのか、サービス仕様に潜むリスクなのか、セキュリティを強化したい対象によって、解決策が変わるからだ。この点ではチームの成熟度も重要だ。例えば、開発のプロフェッショナルが多いチームであればツールが英語であることやマニュアルに専門用語が多くても対応できるが、新しく組織したチームならツールは日本語で平易なマニュアルが必要となる。
2つ目は、解決策を広く調査し、評価・比較すること。セキュリティコンサルタントに依頼する方法や、実際にソリューションを試す方法がある。
3つ目は、スモールスタート。ツールやソリューションを実際のプロジェクトで使ってみて評価する。セキュリティソリューションの多くはPoC(概念実証)の機会を提供しているため、これを利用して評価する。
NRIセキュアでは、常に先進ITやセキュリティの動向を調査し、事業に取り入れている。ブログやメールマガジンなどでも最新情報や事例を発信している。関戸氏は「弊社はお客様の開発支援に力を入れており、状況に応じた幅広い支援と、最新動向を踏まえた助言を提供しています。特に『SEC Team Services』はプロダクトの生産性向上に貢献するサービスですので、ぜひご相談いただきたいです」と呼びかけた。