Webinar解説「悪質なボットへの適切な対策とは」

安田 良明 解説:
ISC2認定主任講師/株式会社ラック 安田 良明 氏
CISSP, SSSP

Webinar開催日:2019年6月19日
スピーカー: 伊藤 悠紀夫 CISSP, ソリューションアーキテクト; F5 networks Japan.

Webinar視聴のご視聴はこちら

みなさん、こんにちは。ISC2認定講師の安田 良明です。7月の冷夏が嘘のように毎日暑い日が続き、夏バテされている方も多いと思いますが、僕は光栄にも、ISLA(Information Security Leadership Awards)Asia-Pacificを受賞することになり、7月に香港で開催された「ISC2 Secure Summit APAC」のセレモニーに参加することができたので、日々やる気に満ちております。

今回は、記念すべき、第10回目に配信されたISC2日本語Webinarのアーカイブ視聴の解説を行います。第10回目のWebinarでは、「悪質なボットへの適切な対策」について、そもそもボットとは何か、一般的なボットの脅威とは何か、悪質なボットへの対策とは何かについて、攻撃者のボットインフラの仕組みを加えた解説がされており、時代に応じたボット対策が必要なことを理解することができました。また、ボットによる攻撃ベクトルに対応際に必要となる、一般的なアプリケーションセキュリティに関する知識と技術に加え、ボットならではの対策を組み合わせる多層防御の考え方を身に着けることができました。ボット対策というと技術的な視点が中心になりますが、最新のボット対策を適切に実装することで、費用対効果に優れたクラウド環境を実現できることもわかりましたので、クラウドファーストストラテジーに向かう企業戦略の1つとして、課金モデルを最適化したク

ラウド環境を柔軟に手に入れられることも学ぶことができました。

今回は、2019年6月19日に行われた「F5 Networks」様のWebinar「悪質なボットへの適切な対策とは」について、「アイデンティティとアクセスマネジメント(IAM)」及び「ソフトウェア開発セキュリティ」の2つのCISSP的な考え方にリンクさせながら解説を行ってみたいと思います。

CISSPの8ドメインでは、これらの2つのドメインは密接に関連があり、「IAM」の共通知識の中では、「識別される対象」を理解することが重要であり、ユーザー、デバイスID、IPアドレス、位置情報等に加えて、サービスやAPI等もアイデンティティの対象としてマネジメントする考え方が必要になります。いまや、サービスやAPIについては、オンプレミスのアプリケーション環境で単体動作を行うより、インターネット上でフェデレーション環境として使用されることが一般的になったため、インターネット上で協調動作するサービスやAPIが、各連携する組織が期待する処理を行えるようにマネジメントし、その考え方を、ソフトウェア開発の現場に適用させていく必要があります。

「ソフトウェア開発セキュリティ」では、ソフトウェア開発の現場で、WebサービスやAPIを用いたソフトウェア開発が行われる際、サービスやAPIに対しても、組織が期待する適切なポリシーを実装する必要があります。また、組織がWebサービスやAPIを使用する際に脅威となる攻撃ベクトルも適切にマネジメントする必要があります。「IAM」及び「ソフトウェア開発セキュリティ」で紹介されている数々のCBK(共通知識分野)を実践することで、識別、認証、認可の考え方をソフトウェア開発環境にも適用することが可能となるため、WebサービスやAPIからの情報資産に対する処理について、適切にマネジメントを行うことができるようになります。それでは、CISSPのこれら2つのドメインで要求される共通知識を踏まえて、「悪質なボットへの適切な対策とは」について解説したいと思います。

初めに、Webinar冒頭部で伊藤様が、ボットの種類について「良いボットと悪いボット」の事例を解説しております。良いボット(クローラ、タスクボット等)は、ユーザーエクスペリエンスを向上させることや日常業務の自動化(RPA:Robotic Process Automation)に貢献するため、良いボットの活動は継続させる必要があり、悪いボット(スクレイパボット、DDoS等)については、悪意のある活動(不当な情報利用、システム負荷等)が成功する前に悪いボットの活動を検知して、組織やユーザーに不利益が被らないように対応する必要があります。また、悪いボットが構成される要素として、感染したデバイス、感染または侵害されたIoTデバイス、攻撃者が所有するノード上のボットの種類があることを説明しています。この悪いボットの特徴点を正確に識別することで、不正なボットからの通信を検知して拒否することができるようになりますが、同様に良いボットからの通信も正確に内容を把握しておかないと、良いボットの通信を受け入れずに誤って拒否してしまうことがあります。 さらに、アプリケーション環境においては、良いボット、悪いボットに加え、人によるアプリケーションの操作が発生していますので、人が発生させる通信内容も把握する必要があります。そのため、組織が適切に業務トラフィックのみを受け入れるためには、人、良いボット、悪いボットの通信を正確に識別し、適切に通信を受け入れたり拒否したりする仕組みづくりが、マネジメントと技術の現場に必要となります。リファレンスとして、伊藤様のWebinarで紹介されている「人間vs良いボットvs悪いボット」の引用元URLを巻末に※1として記載します。

ここで登場する「人、良いボット、悪いボット」の振る舞いを適切に識別し、アクセス制御を実装する考え方は、CISSP/SSCPの共通知識として必要になります。CISSP/SSCPでは、経営陣が承認したアクセス制御ポリシーを組織の物理環境や情報システムに具体的、現実的に実装することが要求されるため、「IAM」の共通知識を理解しておく必要があります。アクセス制御については、「ビジネス要件およびセキュリティ要件に基づいて、資産へのアクセスが許可および制限されることを保証する手段」として定義しており、組織またはお客様における役割の必要性に応じて、「知る必要性の原則」や「最小特権」を勘案し、適切なアイデンティティの発行、提示されたアイデンティティの妥当性確認、アイデンティティに対する最小権限付与を行う必要があります。

そのため、「IAM」を実践するためには、一意のユーザーを把握し、適切なアクセス制御を紐付けることが要求され、組織内の情報システムや公開Webサーバーを運用する際、適切なユーザーかどうか確認した必要性がある場合のみアイデンティティを発行し、認証によりアイデンティティの妥当性を確認し、事前に定義された権限設定どおりのリソースに対するアクセス権を割り当てる必要があります。

注意しなければならないのは、CISSP/SSCPでは、アイデンティティの対象をユーザーIDやユーザーアカウントだけを対象にしているのではなく、システム上で識別可能なIPアドレス、MACアドレス、位置情報、デバイスID、API等を含めて検討する必要があります。さらに、そのアイデンティティは、本当に組織が許可した人なのか、組織が提供したデバイスなのか、適切な業務トラフィックなのかを追加の属性(ユーザー属性、リソース属性、環境属性等)を設定することで、より厳格な属性ベースによるアクセス制御が最新のCISSP/SSCPの共通知識では要求されています。アイデンティティのきめの細かさ、いわゆる粒度は、組織に応じて決定する必要がありますが、重要なことは、アイデンティティの粒度が細かければ、それだけ適切な識別、認証、認可が可能であり、結果として、アカウンタビリティの精度が厳格化されることにつながります。

Webinarの解説に戻りますが、それでは、具体的、現実的に人、良いボット、悪いボットの通信を正確に識別し、悪いボットの通信だけ拒否する仕組みづくりはどのように実現すればよいのでしょうか。例えば、悪いボットを防ぐためにIPアドレスを識別するブラックリストを採用したとしても、悪いボットのIPアドレスが短時間で変化するため、悪いボットを識別しつづけるのは、限界があります。さらに、TORベースのボットの場合、そもそもIPアドレスによる識別が機能しないため、膨大な量のIPアドレスを識別し、防ぎきるようなアプローチは合理的なアプローチではありません。また、位置情報を活用し、特定地域からの通信を防ぐとしても、日本以外でグローバルにサービスを展開している場合は、地域選択をすること自体が困難な場合があります。これらの理由により、ネットワークベースのアプローチだけでは、対応が不十分であることは、情報セキュリティ業界では、広く浸透している考え方です。

また、ソフトウェア開発セキュリティとして、コードレベルのセキュリティを実施することで、人なのかボットなのかを判定するロジックを埋め込むということもできますが、進化するボットにロジックを対応し続ける必要があるため、開発現場の負荷が相当高くなるアプローチになります。特に、CISSPの共通知識として、「ソフトウェア開発セキュリティ」のドメインの中で、DevSecOpsについても触れていますが、ソフトウェア開発手法に応じては、継続的なコードの統合と継続的なコードのデリバリの負荷が高すぎることや、実際に運用できない開発手法も想定されますし、コードの品質維持を担保できない恐れ等もあるため、CISSPは、常に、開発現場側で対応する必要があるセキュリティ管理策と製品とサービス側でサポートする管理策を経済合理性と照らし合わせて選択することが要求されています。ただし、伊藤様の説明にあるように、WAFによる製品やサービスによる対策が可能かというと、従来のWAFは、OWASP TOP10ベースの防御設計のため、先進的な悪いボットに対応する機能は限定的なため、費用対効果に優れない選択肢になってしまいます。

そのため、悪いボットを防ぐためには、ボットによるアプリケーションレイヤーへの攻撃を正確に把握し、攻撃ベクトルごとに対応した対策を実施する必要があると、伊藤様が説明しています。その際に参考になる情報源として、OWASPがボットに関するカテゴリを21種類に定義している情報を公開しており、各カテゴリを確認することで、アプリケーションレイヤーへの攻撃を適切に対策できる手法を手に入れられることを伊藤様が紹介しております。

伊藤様が紹介されている正確にボットを検知する技術として、ボットのシグネチャ(振る舞い)による検知やDNSレピュテーションによる検知があります。最初の検知を通過したボットの通信については、サーフィンパターンの特定(キーボードやマウスの操作の有無)、フィンガープリンティングの特定(画面サイズや解像度、タイムゾーン、フォント等)により、人なのかボットなのかを特殊なJavaScriptやエージェント機能を使用することで識別することができます。ここで紹介されているサーフィンパターンの特定やフィンガープリンティングの特定等の技術については、「IAM」の共通知識として、アプリケーション実行環境における属性ベースアクセス制御の考え方が適用されており、合理的に悪いボットからの通信を削除し、適切な通信のみを受け入れる環境を実現しています。これらの検知技術により、アクセス制御ポリシー通りに、アプリケーションレイヤーの属性を識別、認証することで、人と良いボットの通信のみ、組織は受け入れることができるようになります。

最後になりますが、以前までのwebinar解説でも紹介してきましたが、今後もゼロトラスト環境が浸透していく中、ネットワークレイヤーにおけるセキュリティ管理策が限定的にしか機能しない情報システム環境が増えていくため、アプリケーションレイヤーにおけるアクセス制御技術について、CISSP/SSCPは、複数の管理策を理解しておく必要があります。また、オンプレミスからクラウド環境に移行していく中、クラウド環境の課金を抑えることが経営課題となってきます。その際、「IAM」の共通知識となるプロビジョニング、デプロビジョニングのプロセスをサプライチェーン含めて適用し、業務上不要なアイデンティティや不要なトラフィックを削除することで、クラウド環境のCPU、メモリ、ストレージ、ネットワークを必要最小限に抑えることが可能になります。今回、伊藤様にご紹介していただいたボット対策は、クラウド環境における費用対効果を改善するソリューションとして、僕自身、理解を深めることができました。

いかがでしたでしょうか。今回は、「F5 networks Japan.」様のWebinar「悪質なボットへの適切な対策とは」をCISSPの共通知識分野に紐付けて考えてみました。Webinarでは、いくつかの代表的なアプリケーションレイヤーへの攻撃としてクレデンシャルスタッフィングやスクレイピング等を解説しておりますので、是非、Webinarを視聴してみてください。また、ボットのカテゴリの詳細については、OWASPが公開している情報を確認してください※2。

最後に、ISC2が提供するWebinarは、ISC2メンバーまたはそれ以外の方、どなたでも視聴することができますので、是非、みなさんの組織で有効活用していただきたいと思います。Webinarはオンライン視聴だけではなく、Webinarの講演資料やスポンサー様が公開しているホワイトペーパー等をオフラインで確認することもできますので、お時間があるときにWebinarのトピックをISC2 CBK(共通知識分野)に紐付けて読み解いていくことが可能です。また、ISC2メンバーでない方は、Webinarを通じて、グローバルスタンダードにおけるCBK(共通知識分野)に触れていただければと思います。さらに、興味がわきましたら、CISSPチャレンジセミナー、SSCP 1Day セミナー、(ISC)² Nightにお越しいただけると嬉しいです。

※1 2018 Bad Bot Report: The Year Bad Bots Went Mainstream

※2 OWASP Automated Threats to Web Applications