Codenomicon 2018で語られた「Dev」と「Sec」連携のポイント:対話だけではなくツールを活用したセキュリティテストの自動化が不可欠に
「Black Hat USA 2018」に先駆けて2018年8月7日にSynopsysが開催した「Codenomicon 2018」では、セキュリティ担当者と開発者、運用者が一体となってセキュアなアプリケーションを迅速にリリースに必要なポイントが紹介された。
2018年8月8日、9日にかけて、世界最大級のセキュリティカンファレンス「Black Hat USA 2018」が米国ラスベガスで開催された。2017年ですら世界中から1万7000人を超える参加者があったが、今回はそれ以上の規模となる見込みだ。
一部の専門家だけがセキュリティについて議論していた十数年前とは異なり、今やありとあらゆる人や企業、あるいはモノにとってセキュリティは不可欠の要素であり、関心事になっている。デジタルテクノロジーへの依存度が高まっている今、いわゆる「セキュリティ担当者」だけではなく、コミュニティー全体が協力し、業界エコシステムが一丸となって取り組む必要がある――初日の基調講演では、さまざまな脆弱(ぜいじゃく)性を発見してきたGoogleの「Project Zero」のマネジャー、Parisa Tabriz氏がそのように呼び掛けた。
DevとSecとOpsをつなぐ鍵は「自動化」
その前日、8月7日にSynopsysが開催した「Codenomicon 2018」でも、セキュアなアプリケーションを迅速にリリースしていくため、セキュリティ担当者と開発者、運用者が対立するのではなく、一体となってアプリケーションの開発、テスト、デプロイを行う「DevSecOps」の重要性が語られた。
デジタルトランスフォーメーションが加速する中、他社より少しでも早く顧客の望む機能をリリースしていくことが自社の差別化につながる。そのことに気付いた企業では、開発の生産性を高め、スピーディーに新機能を提供するため、DevOpsやCI/CD(継続的インテグレーション/継続的デリバリー)といったアプローチを取り入れ始めた。ただ、リリースしたサービスに脆弱性があっては元も子もない。というわけで、開発ライフサイクルの早い段階からセキュリティを考慮し、実装し、セキュリティテストを組み込んでいくシフトレフトの流れも広がっている。
Codenomicon 2018のセッション「The Future of Application Security」に登場したForrester Researchの主席アプリケーションセキュリティアナリスト、Amy DeMartine氏によると、こうした新しいスタイルの開発プロセスを実現するには、幾つか必要な要素があるという。
「セキュリティ担当者はCVEがどうのこうのといった脆弱性の話しかしない。開発者は開発者で、開発の生産性を上げることに専念するため、ムダなことには一切力を注ぎたくないと考えている。一方、運用者はどうかというと、とにかく今動いているものには手を触れたくない、変えたくないというのが正直なところだ」(DeMartine氏)
そんな日本とあまり変わらない状況を変え、DevとSecとOpsが一体となってスピーディーな開発を実現するには、互いに会話を交わして理解を深めるのも大切だが、何より「自動化」が不可欠だとDeMartine氏は述べた。
「これまでセキュリティ担当者は開発プロセスを妨げてきた。開発したコードに対するテストを手作業でやっていては、開発のスピードに追い付けない。テストを行い、問題点を洗い出して修正するという一連の作業を自動化することによって、開発スピードのギアを上げ、迅速にリリースしていくことができる」(DeMartine氏)
CI/CDのパイプラインに自動化されたセキュリティテストを組み入れることで、スピードの面だけではなく、テストのカバレッジが拡大し、品質向上につながるという側面でもメリットがあるとした。
CI/CDとIASTの統合でアプリケーションセキュリティテストの自動化を
では、どうやってその自動化を実現するのか。「CI/CDを実現するJenkinsでもいいし、何らかのチケットサービスでもいいが、ワークフローの中に、セキュリティテストの自動化ツールをうまく組み入れていくことがポイントになる」とDeMartine氏はコメントしている。それも「既存の開発環境に合わせてフレキシブルに導入できるものを選ばなければならない」とし、セキュリティ側の都合だけで無理やり押し付けてもうまくいかないと注意した。
そうした観点から同氏が注目しているのが、「Interactive Application Security Testing」(IAST:対話型アプリケーションセキュリティテスト)だという。
これまでアプリケーションのセキュリティを検査する方法としては、ソースコードを解析する「Static Application Security Testing」(SAST:静的セキュリティテスト)と、実際にアプリケーションを動作させて検査する「Dynamic Application Security Testing」(DAST:動的セキュリティテスト)の2つが主流で、それぞれ一長一短があった。
「SASTは独自コードの解析に必要だし、オープンソースソフトウェアのコンポジション解析も必要だ。IASTはDASTに近く、そこに欠けていた部分を補って、いずれは置き換えていくことになるだろう。
DASTではセキュリティ専門家がアプリケーションにログインしてペネトレーションテストを走らせ、そのアウトプットを開発者にフィードバックしていたが、そのやり方では手戻りが発生して時間がかかり過ぎるし、開発者にとって、何をどのように直せばいいかが分かりにくかった。これはまったくもって時間のムダだった」(DeMartine氏)
これに対しIASTではチェックインのたびにテストを行い、具体的な修正事項とともに自動的にレポートを生成する。このため「開発側が主導権を握りつつ、ライフサイクルの早期の段階で問題を修正できる」とDeMartine氏は述べ、ひいては、セキュリティが開発の足かせになるのではなく、生産性の向上に寄与できると説明した。
ただ、IASTはまだ発展途上の領域であり、サポートする言語もJavaや.NETなどに限られている。また、世の中にはまだまだ、CI/CDに載せられないレガシーなアプリケーションも多い。そうした限界はあるものの、CI/CDとIASTの組み合わせによるセキュリティテストの自動化は、「開発のスピードを高め、リリースのスピードを高め、多くのメリットをもたらすだろう」とDeMartine氏は語っている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「シフトレフト」がセキュリティ対策やインシデント対応にも有効な理由
@ITは、2018年6月22日、東京で「@ITセキュリティセミナー」を開催した。本稿では、基調講演「もし組織に、突然サイバー攻撃が予告されたなら」の内容をお伝えする。 - 「セキュア開発」はなぜ浸透しないのか?――DevSecOpsを妨げる“4つの敵”
本稿では、@IT編集部が2017年2月7日に東京で開催した「@ITセキュリティセミナー」レポート第2弾(東京Bトラック編)をお届けする。 - DevOpsとSecは同じ夢を見るか?
米国で開催されたRSA Conference 2016では、開発・運用とセキュリティ担当者の距離を縮め、「セキュアでビジネスニーズに合ったサービスを素早く提供する」という共通の目的を達成するためのキーワード「DevSecOps」に関連するセッションが多数行われた。