AWS JAPAN APN ブログ

LogStare を活用した AWS サービスのログ分析の効率化と標準化

この記事は、株式会社 LogStare 取締役 CTO 堀野友之氏、取締役 マーケティングディレクター 佐藤綾子氏と、アマゾン ウェブ サービス ジャパン合同会社 パートナー ソリューション アーキテクト 櫻谷広人による共著です。

AWS でシステムを構築・運用する上でのベストプラクティスをまとめた AWS Well-Architected フレームワークでは、運用上の優秀性の柱の中で「OPS08-BP02 ワークロードログを分析する」という項目を定義しています。ログ分析に関して AWS がどのように考えているか、以下に中身を一部引用するので確認してみましょう。

”アプリケーションの運用面をより詳細に把握するには、ワークロードログを定期的に分析することが不可欠です。ログデータを効率的にふるい分け、可視化し、解釈することで、アプリケーションのパフォーマンスとセキュリティを継続的に最適化できます。”

ログは、分析や可視化をすることで初めて意味を持ちます。オブザーバビリティの重要性は理解しつつも、実際にはログの出力までしか行っておらず、細かい分析や可視化にまでは手が回っていないというお客様も少なくないのではないでしょうか。先の項目の中ではまさにこの点が指摘されており、このような状況ではビジネスに悪影響を及ぼす重要なインサイトを見逃してしまうリスクがあります。

AWS 上に構築したシステムのログ分析には、Amazon CloudWatchAmazon Athena のような AWS サービスだけでなく、株式会社 LogStare が提供するクラウド型マネージド・セキュリティ・プラットフォーム LogStare のようなパートナーソリューションを利用することもできます。この記事では、それぞれのツールの特徴や利用方法、適したユースケースなどについて解説します。

AWS サービスのロギング機能および分析方法

AWS のマネージドサービスはロギングの機能を備えていることが多く、分析系のサービスと組み合わせることでログの収集から分析、可視化までを簡単に行うことができるようになっています。例えば、Amazon Virtual Private Cloud (Amazon VPC) 内の IP トラフィックに関する情報をキャプチャした VPC フローログ、AWS アカウント内で発生したアクティビティを記録する AWS CloudTrail ログ、ウェブアプリケーションのリクエストを分析した結果の詳細が含まれる AWS WAF ログなどがあります。

ログの出力・保存先としては、サービスによって Amazon S3Amazon CloudWatchAmazon Kinesis、サードパーティの SaaS など様々な選択肢があります。ログの性質や配信頻度、ダウンストリームの分析プラットフォームとの相性などによって最適なものを選択してください。この記事では、CloudWatch Logs に出力された AWS WAF のログを CloudWatch Logs Insights を使用して分析する例と、Amazon S3 に出力された Application Load Balancer のアクセスログを Amazon Athena を使用して分析する例をご紹介します。

Amazon CloudWatch Logs Insights を使用したログ分析

Amazon CloudWatch は、AWS、オンプレミス、ハイブリッド、その他のクラウドアプリケーションとインフラストラクチャリソースに関するデータと実用的なインサイトを提供するモニタリングおよび管理サービスです。様々な機能セットが含まれており、ログの収集から分析、アラート、ダッシュボードでの可視化など、統合的なモニタリング基盤として利用することができます。

また、AWS Lambda、AWS WAF、AWS CloudTrail など多くの AWS サービスでログの出力先として CloudWatch Logs をサポートしています。このようなケースでは、CloudWatch Logs Insights を使用することで、一から分析基盤の準備をすることなくすぐにインタラクティブなログの分析を行うことが可能です。

例えば、AWS WAF のログを CloudWatch のコンソールから確認すると、リクエストごとに以下のような JSON 形式でレコードが表示されます。

図 1: CloudWatch コンソールで WAF ログを表示

このようなレコードが大量に含まれるロググループから、SQL インジェクションをブロックしたレコードのみを取得したい場合は、CloudWatch Logs Insights から以下のクエリを実行することで、目的のレコードのみをフィルターすることが可能です。クエリ構文の詳細についてはドキュメントをご覧ください。

fields @timestamp 
| parse @message ',"terminatingRuleMatchDetails":[*],' as terminatingRuleMatchData 
| filter terminatingRuleMatchData like /SQL_INJECTION/
| display @timestamp, httpRequest.clientIp, httpRequest.country, terminatingRuleMatchData, httpRequest.requestId
| limit 10

図 2: クエリの実行結果

また、CloudWatch Logs Insights は AWS WAF のコンソールからも利用することができます。こちらでは、サンプルクエリとして Top 100 IP addressesTop 100 user-agents などよく使われるものもいくつか用意されており、試しやすいようになっています。可視化のタブに移動すると、データをグラフで表示することができます。

図 3: AWS WAF コンソールからクエリの実行および可視化

Amazon Athena を使用したログ分析

次に、Amazon Athena を使用した分析方法を見てみましょう。Amazon Athena は、標準的な SQL を使用して Amazon S3 内のデータを直接分析することを容易にするインタラクティブなクエリサービスです。SQL だけでなく、ノートブックを利用して Apache Spark アプリケーションを構築することもできます。利用者側でのインフラストラクチャのセットアップや管理は不要で、大規模なデータセットや複雑なクエリを用いる場合でも、自動的にスケールしてクエリを並列実行します。

今回は、Application Load Balancer のアクセスログを分析してみます。アクセスログの有効化やテーブル作成の手順についてはドキュメントをご覧ください。

例えば、リクエストログをクライアントの IP アドレスと HTTP メソッドでグルーピングしてカウントするクエリは以下のようになります。

SELECT COUNT(request_verb) AS
  count,
  request_verb,
  client_ip
FROM alb_logs
GROUP BY request_verb, client_ip
LIMIT 100;

図 4: Athena クエリエディタからクエリを実行

標準的な SQL が利用できるので、開発者にとっても比較的扱いやすい方法です。また、分析環境を一から用意することなく、AWS マネジメントコンソール上からすぐにインタラクティブな分析を行うことができるのが Athena の強みです。

ログ分析におけるパートナーソリューションの役割

CloudWatch Logs Insights や Amazon Athena によって多角的な視点からログを分析することは、セキュリティ運用の目的だけでなく、AWS サービスの利用状況や稼働状況を把握し AWS サービスの効果を最大化するためにも有効です。

しかしそれらの手法はクエリ言語の使用に慣れ親しんだ開発者向けであるため、情報システム部門に配属されたばかりの新米エンジニアや、彼らの上長となる管理部門長にとっては難易度が高く、使いこなせるようになるまでに時間がかかるという声も聞こえます。

そうした場合に AWS パートナーのソリューションを活用することで、技術的な難易度を下げながらも CloudWatch Logs Insights や Amazon Athena によるログ分析に近い効果を得られることがあります。

LogStare を使用したログ分析

パートナーソリューション LogStare は、ネットワーク監視とログ管理の機能を併せ持ち、AWS、オンプレミス、その他のクラウドアプリケーションを統合管理することができるセキュリティ運用プラットフォームです。様々な AWS サービスと連携することができ、AWS Web Application Firewall (WAF) Ready 製品にも認定されています。

ログ分析の業務を行う SOC (Security Operation Center) 事業者が監修し、SOC が実務で使う多数のログ分析テンプレートを搭載していることが特徴です。これによりユーザーはクエリ言語を習得せずとも SOC エンジニアと同様にログ分析を行うことができます。

図 5: LogStare の利用イメージ

LogStare は CloudWatch Logs から API を用いてログを収集します。従ってAWS WAF、AWS CloudTrail、AWS Network Firewall など様々な AWS サービスのログ収集が可能です。CloudWatch Logs を LogStare で収集するために必要な権限や設定手順については LogStare が運営するネットワーク・ログ監視の技術情報ブログ「ナレッジステア 」をご覧ください。

LogStare で収集したログは JSON 形式で保存されると共に自動的に正規化およびレポート作成が行われます。JSON 形式のログを GUI から任意の条件で検索することも可能ですが、セキュリティ運用の観点でログ分析を行うにあたっては、まずサマリレポートから全体の利用傾向やインシデントの有無を確認し、ドリルダウンしていく方法が標準的です。

ここでは例として AWS WAF のログ分析を LogStare で実施します。

ある企業が利用している AWS WAF に一週間でどの程度の通信量があるか、それらのうち想定していないアクセス (ここでは不正なアクセスや誤遮断などを指します) がどの程度あるかを調べるとします。

一週間の通信のサマリレポートは LogStare の標準のレポートとして提供されているので、LogStare のレポート画面でレポート単位を「週単位」にし確認したい日付範囲 (この例では 2023/7/16 – 2023/7/22 の一週間とします) を設定します。次に、レポートの一覧から「001_日付別」を選択します。表示されたレポートから一週間の全体の通信の傾向を把握できます。

図 6: 週単位のサマリレポート

このグラフからは一週間のうち 7/19 から 20 にかけて明らかにアクセスが増えており、特に 7/20 は遮断された通信 (黄色い積み上げグラフ部分) も多く不正アクセスの可能性があることが分かります。この日に具体的にどこからアクセスがあったのかを調べるには、この画面からログをドリルダウン分析します。

ドリルダウン分析を行うには、画面上の集計表から分析したい行を選択し、クローズアップ分析ボタンをクリックして設定画面を表示します。

図 7: ドリルダウン分析を行う行を選択

図 8: ドリルダウン分析の詳細設定

集計項目として、どこからのアクセスかを確認するため「送信元 IP アドレス」を選択します。また、集計方法に「ユーザーエージェント数 (ユニーク)」を選択し送信元 IP アドレスあたりのユーザーエージェントの数で攻撃の可能性を判断します。さらに BLOCK 件数、ALLOW 件数をそれぞれに集計することで不正なアクセスがブロックされているかを確認します。

図 9: 集計項目および集計方法を選択

図 10: 生成されたドリルダウン分析レポート

分析の結果、特定の IP アドレスからのアクセスが特出していること、またユーザーエージェントが他の IP アドレスに比べ過剰な数であり攻撃行動が考えられることなどが読み取れます。

また、前述のドリルダウン分析をせずとも、日次レポートから同様の分析をすることも可能です。この場合はレポート単位を「日単位」にし確認したい日付 (この例では 2023/7/20) を設定、レポートの一覧から「003_送信元 IP アドレス別」を選択します。

図 11: 日単位の送信元 IP アドレス別レポート

このレポートからも前述のドリルダウン分析の結果と同様に特定の IP アドレスからのアクセスが多いことが分かります。

このようにクエリ言語を習得せずともマウス操作のみでログ分析できること、ログ分析の視点が SOC 監修によるテンプレートで標準化されていることが LogStare の特徴です。

また、LogStare は無償版が AWS Marketplace に出品されているので、Amazon Elastic Compute Cloud (Amazon EC2) で容易に構築でき、評価やその後の機能拡張がスムーズであることも利点です。この記事で紹介したログ分析は有償版の機能を用いていますが、AWS Marketplace から利用し始めた場合は、BYOL で有償版に拡張することができます。

AWS サービスのログ分析におけるソリューションの選び方

ここまで CloudWatch Logs Insights、Amazon Athena、パートナーソリューション LogStare を使った AWS サービスのログ分析の例をそれぞれ紹介しました。

CloudWatch Logs Insights は CloudWatch Logs が稼働する環境であれば簡単に利用できるため、AWS の運用管理に携わるエンジニアに適しています。インラタクティブで自由度の高いログ分析環境を保持しておきたい場合には Amazon Athena が適しています。標準化されたログ分析レポートをセキュリティ運用に活用したい場合は LogStare が適しています。

ログ分析は、ビジネスに悪影響を及ぼす重要なインサイトを発見し、企業活動を円滑に進めるために不可欠なものであり、AWS サービスの運用の面でも AWS Well-Architected フレームワークに記載されている通り ”ログデータを効率的にふるい分け、可視化し、解釈することで、アプリケーションのパフォーマンスとセキュリティを継続的に最適化できます。”

まとめ

ログ収集・分析基盤の構築は、システムの運用にとって不可欠なものです。本記事で紹介したように、AWS サービスのログ分析には、AWS サービスだけでなく LogStare のようなパートナーソリューションを活用することもできます。誰が運用をするか、どのようなスキルを持っているか、目的は何かなど、自社の要件に応じて適切なツールを選択することが効率的な運用の鍵となります。まだログ分析について検討できていないというお客様は、本記事を参考に様々な方法を試してみてください。

LogStare (ログステア) – AWS パートナースポットライト

株式会社 LogStare は AI による高精度なログ管理・ログ監視機能を持つ純国産のマネージド・セキュリティ・プラットフォーム「LogStare」シリーズを開発、販売する AWS ソフトウェアパートナー企業です。LogStare は、AWS Web Application Firewall (WAF) Ready 製品に認定されています。

LogStare 問い合わせ先 | パートナー概要 | AWS Marketplace