LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

ラックピープル | 

【講演レポート】クラウドネイティブ時代、セキュリティエンジニアは変化するビジネスをどう守ればいいのか

クラウドネイティブを推進する上では、どのようなセキュリティリスクが潜んでいるのでしょうか。また、どのようなアプローチが有効なのでしょうか。2022年12月、ラックのCTO倉持が、「ITmedia Cloud Native Week 2022 winter」に登壇し、「クラウドネイティブ時代、セキュリティエンジニアは変化するビジネスをどう守ればいいのか」と題した講演をしました。

今年の2月に、アイティメディア株式会社の@ITで講演レポートが掲載されたので、同社の許諾を得てその内容をご紹介します。セキュリティエンジニアに求められるマインドセットや、組織の在り方などについて参考になれば幸いです。


 クラウド、コンテナ、サーバレス、マイクロサービスといったテクノロジーが登場し、開発環境もアジャイル開発やCI/CD(継続的インテグレーション/継続的デリバリー)、DevOpsといった手法を取り入れて進化し続けている。では、セキュリティ対策はどうだろうか。セキュリティ専門家は、変化する開発現場のニーズに十分対応できているだろうか。

 ラックの執行役員CTO(最高技術責任者)、倉持浩明氏は「クラウドネイティブ時代、セキュリティエンジニアは変化するビジネスをどう守ればいいのか」と題した基調講演の中で、クラウドネイティブな新しい環境にどのようなセキュリティリスクが存在しており、セキュリティエンジニアは開発者とともにどういったアプローチで取り組むべきかを紹介した。

狙われるWebアプリケーション、脆弱性の対策漏れも多数

 ラックはセキュリティサービスの一つとして、顧客のネットワークを24時間365日体制で監視し、さまざまなセキュリティ機器から上がってくるアラートをアナリストが精査し、本当に対応が必要なものだけに絞り込んで顧客に通知する監視サービスを「Japan Security Operation Center」(JSOC)で提供している。

 JSOCでは、ネットワークに対する不正アクセスはもちろん、Webアプリケーションを狙った攻撃も多数検知している。

 「2021年3月と同年12月には多数の攻撃を検知しました。12月にはApache Log4Jの脆弱(ぜいじゃく)性が発表されており、著名なパッケージソフトウェアやフレームワーク、ライブラリに関する脆弱性が公表されると、それを狙った攻撃が非常に多く検知される傾向があります」(倉持氏)

 クラウドにおけるセキュリティの脆弱性は、ユーザーの「設定ミス」に起因するものが多いという。事実JSOCでは、誤って公開ディレクトリなどに保存されたアプリケーションの設定ファイルなどを参照しようとする試みを多数検知しているそうだ。

ラック 執行役員CTO 倉持浩明氏
ラック 執行役員CTO 倉持浩明氏
JSOCで検知した、不正通信ごとの件数推移
JSOCで検知した、不正通信ごとの件数推移

 JSOCが検知するこうした動きは、運用フェーズに入ったWebアプリケーションを狙う攻撃だ。一方、開発者が構築しているWebアプリケーションのリスクは、ラックが提供している「セキュリティ診断サービス」で傾向を把握できる。同社は年間数千件を超える診断を実施しているが、「診断したWebアプリケーションのうち約40%で、重要な脆弱性を検知しています」と倉持氏は述べた。

 具体的には、クロスサイトスクリプティング(XSS)やSQLインジェクションといった開発フェーズでの対策漏れに起因する脆弱性がある。だが一方で「URLに重要な情報を格納していたり、権限昇格が可能だったりという具合に、設計フェーズまで戻って対策をしなければならず、手戻りが多くなってしまう脆弱性も多く発見されています」と倉持氏は述べ、Webアプリケーションファイアウォール(WAF)などの対策はあるものの、「設計の段階から安全に作り込んでいくという考え方が必要」とした。

原理、原則ならば答えられても、個別の開発環境へのキャッチアップは不十分?

 1開発者としてエンジニアとしてのキャリアをスタートしたという倉持氏。CGIやJava、仮想化、クラウドといったITインフラの変化に応じて一歩ずつ学びながら現在に至るという。その経験を踏まえ、「ツールの使い方も教えていますが、環境が変わっても対応できるエンジニアになるには、やはり原理、原則について教えていかなければならないと感じています」とした。

 では、変化するIT環境、開発環境の中、Webアプリケーションにはどのようなリスクがあるのだろうか。

 倉持氏は、アプリケーションエンジニアが開発するソースコードに存在するリスクはシステム全体の10~20%に過ぎず、脆弱性の多くはライブラリやコンポーネントなど、アプリケーションが依存する部分に多く見つかっていることを説明した。さらに、クラウド環境での脆弱性のほとんどが設定ミスに起因すること、日々新たなサービスがリリースされていることからキャッチアップも困難なことにあらためて言及した。

 「従来はインフラエンジニアの領域といわれていましたが、クラウドはソフトウェアでインフラを制御していく世界であり、アプリケーション開発エンジニアが果たすべき責務は非常に増えていることを実感しています」(倉持氏)

 一方、セキュリティエンジニアはこうした開発環境の変化にどれだけ追随できているだろうか。倉持氏は、セキュリティエンジニア約100人を対象に行ったアンケート調査結果を紹介した。

 まず「アプリケーション開発のセキュリティ向上に寄与していくために、今後、どのようなスキルを身に付けるべきか」を尋ねたところ、およそ半数が「クラウドについてもっと勉強すべき」と回答した。一方で、アジャイル開発やコンテナ、サーバレスといったクラウドネイティブな開発環境を支えるソリューションを応えたエンジニアは比較的少ないという結果になったという。

 また「アプリケーション開発者から相談を受けたら、セキュリティエンジニアとして適切にアドバイスできますか?」という質問については、「パブリッククラウドにおけるセキュリティ上の注意」ならば66%ができると答えた一方で、マルチクラウド環境やコンテナ、アジャイルといった分野になると比率は逆転し、否定的な声が多数になったという。

 こうした結果を踏まえ、倉持氏は社内でも何人かのセキュリティエンジニアと話し合ってみた。その結果、たとえ開発環境やインフラが変わっても、セキュリティの三要素である機密性、完全性、可用性を守るためにはどうすべきか、最小権限の原則やログ保存といったセキュリティの「原理、原則」については自信を持って回答できるという手応えがあったそうだ。

 だが、アプリケーション開発エンジニアが具体的にサポートしてほしいと期待しているコンテナやDocker、あるいはKubernetesといった特定の環境に特化した形の回答は「残念ながらそこに対して、セキュリティエンジニアは十分に満足できる回答はできていないというもどかしさのようなものが、アンケート回答に表れている」(倉持氏)。しかもアプリケーションエンジニアには、セキュリティの重要性は理解しつつも、やはり機能開発や価値を届ける開発に集中したい、といった相克がある状況だという。

「ペイブドロード」「セキュリティチャンピオン」といったコンセプトが有効に

 こうした前提を整理した上で倉持氏は、アプリケーション開発におけるセキュリティ向上に寄与するであろうコンセプトを幾つか紹介した。

 まず、要件定義や設計段階からセキュリティを考慮して開発を進める「セキュリティバイデザイン」や、開発工程の中で、できるだけ早い段階にセキュリティの工程を前倒しする「シフトレフト」がある。アンケートを行ったセキュリティエンジニアのうち67%が、アプリケーション開発のセキュリティ向上において、セキュリティバイデザインが最も重要であると回答し、手戻りに伴う費用やスケジュール遅れを防ぐ上でも重要だと位置付けていることが分かった。

 次に倉持氏が紹介したのは「ペイブドロード」というコンセプトだ。日本語に訳せば「舗装された道路」となるが、開発者自らセキュリティ対策をするために必要なツールを整備していくアプローチだ。

 グローバルなセキュリティコミュニティーであるOWASP(Open Web Application Security Project)がまとめた「OWASP TOP 10」の2021年版では、「安全が確認されない不安な設計」(Insecure Design)という項目が新たにランクインしている。残念ながら、安全ではない設計は、たとえ完璧な実装があっても修正はできない。「設計が間違っていたら、開発フェーズでカバーできません」(倉持氏)

 そうした設計上の不備を補うのが前述のセキュリティバイデザインであり、システム要件定義にはじめからセキュリティ要件を盛り込み、さらに専門家によるレビューを受けることで、「安全が確認されない不安な設計」を避けることができるだろう。

 一方、開発段階に入ってから生じる実装上の欠陥を補うのがペイブドロードだ。「セキュリティを開発チームに任せきりにするのではなく、組織として道を舗装し、ガードレールを設け、開発チームが安心して高速に開発を回していくことができるように環境を整備していくのが、ペイブドロードと呼ばれるコンセプトです」と倉持氏は説明し、組織としてもこういった部分に投資していくべきとした。

 システム開発は、要件定義、設計、実装、テスト、運用といったフェーズを経て進んでいく。シフトレフトで、セキュリティに関する工程をなるべく前倒しし、特に要件定義や設計段階ではセキュリティバイデザインとしてセキュリティ要件を盛り込み、レビューしていく。そして実装の部分ではSAST(Static Application Security Testing:静的セキュリティ検査)」やDAST(Dynamic Application Security Testing:動的セキュリティ検査)といったセキュリティテストツールを導入するなど、安全な実装をするための環境をペイブドロードコンセプトのもと整備し、運用後はDevOpsを活用していく。並行して、脆弱性管理ツールを組み合わせ、ライブラリやコンポーネントの管理、あるいはコンテナイメージの脆弱性マネジメントやクラウドの設定ミスを検知できるようなソリューションを導入していく、といったイメージになる。

 この過程で、セキュリティツールが発するエラーメッセージの解釈に迷うようなことがあれば、そこがセキュリティエンジニアの出番であり、適切なアドバイスをしていくことが重要だ。

 そして「こうしたツールやソリューションをそろえることで、クラウドネイティブ時代に開発スピードを速くしたいと考える開発チームに、自らセキュリティ対策を行えるような武器を与えてあげるのがペイブロドードのコンセプトです」とした。

 倉持氏はもう1つ、アプリケーション開発のセキュリティ対策に貢献していく上で有効なコンセプトとして「セキュリティチャンピオン」を紹介した。これは、もともと開発者の一員である誰かを、開発チーム内のセキュリティ担当者として配置するアプローチだ。

 アンケート結果からは、クラウドネイティブ時代において、セキュリティエンジニアが開発を学ぶのも重要だが、それ以上に「アプリケーション開発者がセキュリティ対策に取り組む方が効果的だろう」とする結果が出た。セキュリティチャンピオンはそれを具現化する方策といえる。「もともと開発チームの一員なので、自分たちのコードに関する課題や開発環境の状況をよく理解しています。そうしたメンバーに、開発チームを代表してセキュリティチームとの調整をしていく役割を担わせるのがセキュリティチャンピオンのコンセプトです」(倉持氏)

 具体的には、脆弱性診断士スキルマッププロジェクトにおいて定義されている役割でいうと、セキュリティレビューをリードする役割に加え、設計段階における脅威分析、セキュリティ要件の定義、コーディング規約の整備などが求められる。また、必要に応じて外部のセキュリティベンダーとコミュニケーションを取って適切にコントロールし、日頃から情報収集をすることも重要な役割となる。

 セキュリティバイデザインやペイブドロードといったコンセプトを生かすことで、設計から実装、運用に至るまでのWebアプリケーションのセキュリティ対策を進めていくことはできるだろうが、1つ、大切なポイントがある。それは「文化」に関する問題だ。

 「DevOpsやDevSecOpsにおいては、開発チームと運用チーム、セキュリティチーム間の文化の違いが問題であることは、本イベントでも多くの人が指摘していました。この課題に対してはセキュリティチャンピオンという形で、開発チームの中にセキュリティ担当者を任命し、それをセキュリティエンジニアがサポートしていく体制を取っていくのが望ましいアプローチではないかと整理できるでしょう」(倉持氏)

 そして、開発者をより適切に支援するためにも、セキュリティエンジニア側にも、アプリケーション開発やクラウドネイティブに関する新たな知識、技術を身に付けるようなトレーニング、教育を通して、キャッチアップしていくことが重要だとした。

ピープル、プロセス、テクノロジーの3つをバランスよく変革し、安全な開発環境を

 古くからある組織変革に関するフレームワークの一つに、「ピープル」「プロセス」「テクノロジー」の3つの頭文字を取ったPPTフレームワークがある。「私たちは、新しいテクノロジーやツール、サービスの導入にどうしても目が行きがちですが、テクノロジーの導入だけで定着はしません。プロセスを変え、人の意識や文化を変えていくという具合に、ピープル、プロセス、テクノロジーの3つをバランスよく変革していく必要があるというのがPPTフレームワークです」(倉持氏)

 Webアプリケーションのセキュリティ向上も、PPTフレームワークに当てはめることができる。ピープルに当てはまるのがセキュリティチャンピオンであり、プロセスはシフトレフトやセキュリティバイデザイン、そしてテクノロジー面のアプローチを包括的に推進していくのがペイブドロード、という形だ。

PPTフレームワークを実践する際のコンセプト
PPTフレームワークを実践する際のコンセプト

 「こうした取り組みを進めていくことで、バランスよくピープル、プロセス、テクノロジーに作用しつつ、アプリケーション開発をセキュアなものとし、クラウドネイティブ時代にクラウドの持つ効用、メリットを最大限引き出していくことができるのではないか」(倉持氏)

 最後に倉持氏は、自然災害に多い日本においては、サイバー攻撃も「運が悪かった、しょうがない」と災害のように捉えられがちだと指摘した。だが、「Webアプリケーションを狙ってくる攻撃者は災害ではなく、犯罪者です。時間と費用をかけ、適切なセキュリティ対策に取り組むことで、より付加価値の高い機能開発に取り組む時間が生まれるはずです」とし、セキュリティにきちんと時間をかけることで、クラウドのメリットを最大限享受してほしいと締めくくった。

元記事

この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

  • 【セミナーレポート】これからのアプリケーション開発のセキュリティ対策を考える

  • セキュリティ診断だけでは不十分?安全なWebアプリケーション開発で最も大事なこと

  • Terraform+Snykで、セキュアなクラウドインフラ構築&運用自動化を実現しよう!