アプリケーションに潜むセキュリティリスクは、開発の前工程で対処すべき
マイクロフォーカスエンタープライズ株式会社は、顧客のデジタル変革を支援するソフトウェア製品の開発、販売、サポートなどを行っている世界最大級のソフトウェア企業の日本法人。同社のプリセールス統括本部 松尾政仁氏は冒頭、企業が直面している課題について、デジタル化への課題の洗い出しと分析が困難なこと、新規製品のリリース遅れによる競争力低下、マシンラーニング/AIなどへの対応遅れ、クラウド移行対応の遅れ、脆弱性、情報漏洩などのセキュリティリスクへの対応が不十分など、さまざまな問題があることを挙げ「ビジネスの変革と高度化への対応のため、効率化への取り組みが必要です」と述べた。
昨今の開発システムでは、効率化のアプローチとしてDevOpsを採用が行われており、コードデプロイ頻度が増加、コミットからデプロイまでのリードタイムやインシデントからの回復時間の高速化が行えるようになった。しかしながら、DevOpsのサイクルからセキュリティが取り残されていると松尾氏は指摘する。その理由として、専門性が高いことや、セキュリティ推進の理由となるコンプライアンスがDevOpsの対象外であること、開発者は機能するコードを迅速に提供することが求められているためセキュリティまでケアできていないこと、などが挙げられる。
次にアプリケーションが持つセキュリティ上の問題について、マイクロフォーカスのFortifyソフトウェアセキュリティリサーチチームが示した「2019 Application Security Risk Report」の内容を紹介した。これによると、Webアプリの79%、モバイルアプリの88%、アプリ全体の61%に問題が存在しているという。
アプリケーションに問題が発生した場合、開発の後の工程になればなるほど修正の手間がかかる。NIST(アメリカ国立標準技術研究所)の調査では、修正にかかる手間は、実装段階では要件定義時の手間と比較して10倍、システムテスト段階なら15倍、運用の段階では30倍としている。松尾氏は「できる限り早い段階で脆弱性を見ていく、つまり開発の実装段階で脆弱性を見つけていくという仕組みを作っていくことが重要になります。継続的計画と継続的インテグレーションとテスト、そして継続的脆弱性テストの取り組みによって、DevOpsからDevSecOpsへのシフトを実現できると考えています」と説明した。
続いて、アジャイル開発におけるDevSecOpsの構成イメージを提示した。アジャイル開発はバックログを管理し、開発者によって出来上がったコードが品質を保っているか継続的にテストをする。何か問題があればその不具合を修正して開発していく。同社のエンタープライズアジャイル管理製品「ALM Octane」は、要件管理、バックログ管理、タスク管理、テスト管理、不具合管理をみて品質を可視化する製品だ。
IDEからALM Octaneのバックログ情報を参照し、開発者がコミットしたら自動的にビルドされ、開発環境やテスト環境にデプロイされる。機能や性能のセキュリティテストはパイプラインにのせて自動的に実行され、それらの結果はALM Octaneでテストの状況と自動的に関連づけされて管理・可視化される。ALM Octaneはスクラムレベルのチームから、エンタープライズまでを対象とし、高い品質を維持しながらリリースの短縮化を実現する体制をサポートするという。
同社では、DevSecOpsの工程に組み込まれる各種自動テストのための製品群を提供している。「UFT One」はGUI/API機能テスト自動化ツールで、人間に代わってGUI操作を自動的に行い機能的に正しいかどうかの検証を行う。「LoadRunner Professional」は負荷テストのプラットフォーム。たくさんのユーザーに代わってアプリケーションを動作させ、システムや想定しているレスポンスに問題がないか、ボトルネックがどこにあるかを捉えることができる。そして、「Fortify」が、さまざまな手法でアプリケーションセキュリティテストを行うツールだ。
「ツールによって特徴があり、適切なフェーズやタイミングでテストを行っていきます。コードができあがったタイミングではコードの脆弱性をチェックし、システムのリリース前はパフォーマンステストや動的セキュリティテストを実施します。パイプラインの中に組み込んで、継続的にテストを効率化していくということが重要になります」(松尾氏)