Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS ログ解析のオデッセイ~システムの息遣いを読み解く冒険~/aws-log-analysi...

emi
July 09, 2024

AWS ログ解析のオデッセイ~システムの息遣いを読み解く冒険~/aws-log-analysis-odyssey-deciphering-the-breathing-of-systems

Classmethod Odyssey クラスメソッド設立20周年イベント 史上最大のテックとビジネスの祭典
https://classmethod.jp/m/odyssey/
7/9(火) Classmethod Odyssey ONLINE クラウド編1
15:40 - 16:20 / AWS ログ解析のオデッセイ:システムの息遣いを読み解く冒険

emi

July 09, 2024
Tweet

More Decks by emi

Other Decks in Technology

Transcript

  1. ログ取得の目的と役割 ログの目的 1. 業務ログ • OS、アプリケーションプログラム、業務処理の主要な イベントを記録 • 処理の正常終了確認や障害時の復旧に役立てる 2.

    セキュリティログ • 本人認証、アクセス認可、特権の使用等のイベントを記録 • セキュリティ侵害の兆候の検出、インシデント発生時の 証拠収集・解析に役立てる 6 第4章 1.ログ記録による証跡確保とログ自体の漏えい対策 | アーカイブ | IPA 独立行政法人 情報処理推進機構 https://www.ipa.go.jp/archive/security/vuln/programming/cc/chapter4/cc4-1.html
  2. ログ取得の目的と役割 1. 事実の確認ができない • システムが止まってしまったが、何が起こったのか分からない 2. 過程の確認ができない • システムが止まってしまった原因の特定ができない •

    直前・直後にアクセスした人が誰なのか分からない 3. 将来の予測ができない • 今後同じインシデントが繰り返す可能性があるかないか分からない • アクセスが集中する時間の傾向やシステム利用の伸び方が分からない 9
  3. ログ運用におけるチェックポイント 1. ログの保存対象 • ログ取得対象レイヤー • インフラ(基盤となる IaaS 環境)、OS /

    実行環境(コンテナ含む)、 アプリケーション、データ • 記録すべき情報 • いつ(時刻の記録) • NTP等を利用し、正確な時刻が記録されるよう措置する • 誰が(ユーザーの記録) • 何に対して(アクションの対象) • どんなアクションを行ったか(アクティビティの記録) • ユーザーの記録 • ログインせずに閲覧できるWebサイト等は IP アドレスを記録する • ログインした場合はユーザー名など、ユーザーを識別可能な情報を記録する 14
  4. ログ運用におけるチェックポイント • アプリケーションデータ • ユーザーによるデータへのアクティビティ • リソースの変更情報 • アクティビティの記録 •

    認証に関するイベント • 【MUST】ログイン • 【SHOULD】ログアウト • データやリソースの作成/更新/削除 • 閲覧履歴も取得できると望ましい • 【MUST】エクスポートなど、大量のレコードを参照するアクティビティ • 【SHOULD】サーバにおけるシェル実行ログ • その他セキュリティ上重要なイベント 15
  5. ログ運用におけるチェックポイント 法令やガイドライン等に準拠する場合の保存期間の目安 19 保存期間 法令・ガイドライン等 1か月 • 刑事訴訟法 第百九十七条 3

    • 「通信履歴の電磁的記録のうち必要なものを特定し、三十日を超えない期間を定めて、 これを消去しないよう、書面で求めることができる。」 3か月 • サイバー犯罪に関する条約 第十六条 2 • 「必要な期間(九十日を限度とする。)、当該コンピュータ・データの完全性を保全し及び 維持することを当該者に義務付けるため、必要な立法その他の措置をとる。」 1年間 • PCI DSS(Payment Card Industry Data Security Standard) • 監査証跡の履歴を少なくとも 1 年間保持する。少なくとも 3 か月はすぐに分析できる状 態にしておく。 • NISC(内閣サイバーセキュリティセンター) • 「平成 23 年度政府機関における情報システムのログ取得・管理の在り方の検討に係 る調査報告書」 政府機関においてログは1年間以上保存。 • SANS(Successful SIEM and Log Management Strategies for Audit and Compliance) • 1 年間のイベントを保持することができれば概ねコンプライアンス規制に適合する。 企業における情報システムのログ管理に関する実態調-調査報告書査-平成 28 年 6 月 9 日独立行政法人情報処理推進機構(IPA) P64 より引用 https://warp.da.ndl.go.jp/info:ndljp/pid/11440710/www.ipa.go.jp/files/000052999.pdf
  6. ログ運用におけるチェックポイント 法令やガイドライン等に準拠する場合の保存期間の目安 20 保存期間 法令・ガイドライン等 18か月(1.5年) • GDPR(General Data Protection

    Regulation:一般データ保護規則) • 欧州連合(EU)のデータ保護法 3年間 • 不正アクセス禁止法違反の時効。 • 脅迫罪の時効。 5年間 • 内部統制関連文書、有価証券報告書とその付属文書の保存期間に合わせて。 • 電子計算機損壊等業務妨害罪の時効。 7年間 • 電子計算機使用詐欺罪の時効。 • 詐欺罪の時効。 • 窃盗罪の時効。 10年間 • 『不当利得返還請求』等民法上の請求権期限、及び総勘定元帳の保管期限: • 商法 36 条。(取引中・満期・解約等の記録も同じ扱い) • 銀行の監視カメラ、取引伝票に適用している例あり。 企業における情報システムのログ管理に関する実態調-調査報告書査-平成 28 年 6 月 9 日独立行政法人情報処理推進機構(IPA) P64 より引用 https://warp.da.ndl.go.jp/info:ndljp/pid/11440710/www.ipa.go.jp/files/000052999.pdf
  7. ログ運用におけるチェックポイント 4. ログの保護 • ログデータへのアクセス制限 • ID/パスワードによるアクセス制限 • ログデータそのものの暗号化による保護 •

    暗号化により、ログの持ち出しができても解読や改ざんを防ぐ • ログを証拠として利用する場合の原本性保証 • タイムスタンプの付与 • ハッシュによる改ざん検知 • 検索用インデックスと別に生ログを保管する 22
  8. ログ運用におけるチェックポイント 5. ログの検索と解析 • ログ管理の目的に応じてリアルタイム性が重要なのか、一定時間ごとの 検索・解析ができればよいのか、ログ管理の設計時に見極める • 統合ログ管理製品と SIEM は用途が異なることを理解して導入する

    • 統合ログ管理製品:大量のログデータを効率的に処理し、保存する • SIEM(Security Information and Event Management):複数のソースからの データを相関分析し、セキュリティ上の意味を見出すことに特化 • 新たに機器等を導入する際には、統合ログ管理製品や SIEM が対応しているか 確認する 23
  9. AWS で取得できる様々なログ • 分散システムを「観測可能」にする三つの柱 • ログ • システム内で発⽣したイベント情報 • ex)

    アクセスログ、 エラー情報、… • メトリクス • ある時点のなんらかのシステム状態を表現する数値情報。⼀定間隔ごとの 時系列データとして記録される • ex) CPU 使⽤率、エラー率、ストレージ残容量、… • トレース • 分散システム内での一連のリクエストの流れ(トランザクション)やそれに関連する プロセスの可視化 • 一つのリクエストがシステムの異なる部分をどのように移動するか • ex)ユーザーがWebページで注文ボタンをクリックしてから、注文確認ページが表示 されるまでの全サービスの処理を追跡 26 AWS Blackbelt Containerメトリクス⼊⾨ CloudWatch Container Insights 2021-09 https://pages.awscloud.com/rs/112-TZM-766/images/202109_AWS_Black_Belt_Containers247_metrics.pdf
  10. AWS で取得できる様々なログ • 分散システムを「観測可能」にする三つの柱 • ログ • システム内で発⽣したイベント情報 • ex)

    アクセスログ、 エラー情報、… • メトリクス • ある時点のなんらかのシステム状態を表現する数値情報。⼀定間隔ごとの 時系列データとして記録される • ex) CPU 使⽤率、エラー率、ストレージ残容量、… • トレース • 分散システム内での一連のリクエストの流れ(トランザクション)やそれに関連する プロセスの可視化 • 一つのリクエストがシステムの異なる部分をどのように移動するか • ex)ユーザーがWebページで注文ボタンをクリックしてから、注文確認ページが表示 されるまでの全サービスの処理を追跡 27 AWS Blackbelt Containerメトリクス⼊⾨ CloudWatch Container Insights 2021-09 https://pages.awscloud.com/rs/112-TZM-766/images/202109_AWS_Black_Belt_Containers247_metrics.pdf CloudWatch メトリクス Performance Insights Container Insights X-Ray メトリクスやトレースもシステムの状態を理解するのに 非常に重要なのですが
  11. AWS で取得できる様々なログ • 分散システムを「観測可能」にする三つの柱 • ログ • システム内で発⽣したイベント情報 • ex)

    アクセスログ、 エラー情報、… • メトリクス • ある時点のなんらかのシステム状態を表現する数値情報。⼀定間隔ごとの 時系列データとして記録される • ex) CPU 使⽤率、エラー率、ストレージ残容量、… • トレース • 分散システム内での一連のリクエストの流れ(トランザクション)やそれに関連する プロセスの可視化 • 一つのリクエストがシステムの異なる部分をどのように移動するか • ex)ユーザーがWebページで注文ボタンをクリックしてから、注文確認ページが表示 されるまでの全サービスの処理を追跡 28 AWS Blackbelt Containerメトリクス⼊⾨ CloudWatch Container Insights 2021-09 https://pages.awscloud.com/rs/112-TZM-766/images/202109_AWS_Black_Belt_Containers247_metrics.pdf 本日はログに焦点を当てます
  12. AWS で取得できる様々なログ • CloudTrail • Config • Route 53 DNS

    クエリログ • VPC フローログ • S3 サーバーアクセスログ • ALB/NLB アクセスログ • CloudFront アクセスログ 29 • WAF ログ • API Gateway アクセスログ • CloudWatch Logs • SSM コンソールログ • RDS/Aurora 監査ログ • Lambda 関数ログ
  13. AWS で取得できる様々なログ • 監査ログ • CloudTrail • AWS アカウント/ユーザー/ロール/AWS サービスが実行した

    API アクションをイベントとして記録する • Config • AWS 上にどのようなリソースが存在し、どのような設定であるかを 把握できる • AWS 上のリスクのある設定を早期に発見し、解消できる • RDS/Aurora 監査ログ 31
  14. AWS で取得できる様々なログ • CloudTrail • ユーザーが直接操作したわけではない、 AWS の裏側の操作もすべて記録される • 調査範囲を絞ってフィルタするのが

    おすすめ 32 調査したいイベントソースやリソース名で 属性を絞るのが手軽でお勧め [コンソールで最近の管理イベントを表示する - AWS CloudTrail https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html
  15. AWS で取得できる様々なログ • CloudTrail • よりログを見やすくするには Athena や CloudTrail Lake

    33 AWS入門ブログリレー2024〜AWS CloudTrail編〜 | DevelopersIO https://dev.classmethod.jp/articles/introduction-2024-aws- cloudtrail/#CloudTrail%2520Lake%2520%25E3%2582%25AF%25E3%2582%25A8%25E3%2583%25AA%25E3%2582%25A8%25E3%2583%2587%25E3%2582%25A3%25E3%2582%25BF%25E3%2581%25AE%25E5%2588%25A9%25E7%2594%25A8 CloudTrail Lake の自動ダッシュボード
  16. AWS で取得できる様々なログ • Config • Configuration Recorder による 記録(Record) •

    Config Rules による評価 (Evaluate) 34 AWS入門ブログリレー2024〜AWS Config編〜 | DevelopersIO https://dev.classmethod.jp/articles/introduction-2024-aws-config タイムラインでリソースの変更履歴を確認できる
  17. AWS で取得できる様々なログ • ネットワークログ • Route 53 DNS クエリログ •

    VPC フローログ • 共に以下 3 種類のログ送信先を指定できる • CloudWatch Logs • S3 バケット • Amazon Data Firehose • 取得は任意。アクセスログ等から必要な通信情報を十分に取得できると 判断できる場合は不要 35
  18. AWS で取得できる様々なログ • Route 53 DNS クエリログ 36 Route 53

    のログクエリ | AWS re:Post https://repost.aws/ja/knowledge-center/route53-log-queries クエリタイムスタンプ ホストゾーン ID クエリ名 クエリタイプ DNS レスポンスコード レイヤ 4 プロトコル Route53 エッジロケーション : など CloudWatch Logs Insights でクエリした結果
  19. AWS で取得できる様々なログ • VPC フローログ 37 [アップデート]Amazon VPC フローログの保存と分析が更に安く・効率的に実行できるようになりました |

    DevelopersIO https://dev.classmethod.jp/articles/amazon-vpc-flow-log-update-apache-parquet-hive-prefixes-partitioned-files/#toc-vpcapache-parquet VPCフローログの各種フィールドの意味をまとめてみた | DevelopersIO https://dev.classmethod.jp/articles/vpc-flow-log-default-field/ バージョン アカウント ID インターフェース ID 送信元 IP 送信先 IP 送信元ポート 送信先ポート : など S3 に保存した VPC フローログを Athena でクエリした結果
  20. AWS で取得できる様々なログ • アクセスログ • S3 サーバーアクセスログ • ALB/NLB アクセスログ

    • CloudFront アクセスログ • WAF ログ • アクセス試行を記録したログファイル • システムやサービスへのアクセス要求の詳細が含まれており、 誰がいつどのリソースにアクセスしようとしたか記録される 38
  21. AWS で取得できる様々なログ • ALB アクセスログ • 現時点で S3 バケットにのみ 出力可能

    39 Application Load Balancer のアクセスログ - Elastic Load Balancing https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html 接続タイプ(http、https など) クライアントにレスポンスを返した時刻 リソース ID クライアントの IP アドレスとポート ターゲットの IP アドレスとポート : など
  22. AWS でのログ運用におけるチェックポイント 1. ログの取捨選択 • 重要度高 • 定義:インシデント調査時、調査の中心となるログ • 保存期間目安:3

    年間(不正アクセス防止法の時効) • 例:CloudTrail、Config などの監査ログ • 重要度中 • 定義:調査時にあるとより良いが、重要度高のログで代替が可能なログ • 保存期間目安:1 年間(PCI DSS での監査証跡の保持期間) • 例:S3 サーバーアクセスログ、ALB アクセスログなど • 重要度低 • 定義:調査において必要ではないが、補助的な情報を提供するログ • 保存期間目安:30日間 • 例:Route 53 DNS クエリログ、VPC フローログなど 43 開発環境、 ステージング環境でも 有効にしましょう 疎通できない…などの トラブルシューティング時に 取得するなど、 使いどころをおさえましょう
  23. AWS でのログ運用におけるチェックポイント 1. ログの取捨選択 • 重要度高 • 定義:インシデント調査時、調査の中心となるログ • 必須保存期間:3

    年間(不正アクセス防止法の時効) • 例:CloudTrail、Config などの監査ログ • 重要度中 • 定義:調査時にあるとより良いが、重要度高のログで代替が可能なログ • 必須保存期間:1 年間(PCI DSS での監査証跡の保持期間) • 例:S3 サーバーアクセスログ、ALB アクセスログなど • 重要度低 • 定義:調査において必要ではないが、補助的な情報を提供するログ • 保存期間目安:30日間 • 例:Route 53 DNS クエリログ、VPC フローログなど 44 開発環境、 ステージング環境でも 有効にしましょう 疎通できない…などの トラブルシューティング時に 取得するなど、 使いどころをおさえましょう 業務ログ 業務要件に応じて取得しましょう OS、ミドルウェアのログ 監査ログや認証関連ログは取得しましょう
  24. AWS でのログ運用におけるチェックポイント 45 ※ 2024/5/25 時点の東京リージョンでの料金で、$1 = 156円換算 ※ どちらも保存クラスがスタンダードの場合

    ※ S3 の書き込み料金はリクエスト回数によって計算されるため、表では 1 GB の ファイルを 1 回でアップロードすることを想定して計算している CloudWatch Logs S3 Standard 書き込み (取り込み)料金 $0.76/GB (≒ 118円) $0.0047 (≒ 0.7円) 月額保存料金 $0.033/GB (≒ 5円) $0.025/GB (≒ 3.9円) CloudWatch Logs と S3 にかかる料金比較 | DevelopersIO https://dev.classmethod.jp/articles/comparison-of-fees-for-cloudwatch-logs-and-s3/ 2. ログのコスト
  25. AWS でのログ運用におけるチェックポイント 46 ※ 2024/5/25 時点の東京リージョンでの料金で、$1 = 156円換算 ※ どちらも保存クラスがスタンダードの場合

    ※ S3 の書き込み料金はリクエスト回数によって計算されるため、表では 1 GB の ファイルを 1 回でアップロードすることを想定して計算している CloudWatch Logs S3 Standard 書き込み (取り込み)料金 $0.76/GB (≒ 118円) $0.0047 (≒ 0.7円) 月額保存料金 $0.033/GB (≒ 5円) $0.025/GB (≒ 3.9円) CloudWatch Logs と S3 にかかる料金比較 | DevelopersIO https://dev.classmethod.jp/articles/comparison-of-fees-for-cloudwatch-logs-and-s3/ 5~6KB の小さいファイルを 約 161,000 回に分けて PUT したら 同じ料金になる 2. ログのコスト
  26. AWS でのログ運用におけるチェックポイント 47 2. ログのコスト • CloudWatch Logs :保持期間(1日~10年、無期限) •

    S3:ライフサイクルルール(ほぼ無期限) 2,147,483,647日(≒587万年) 32 bit システムで使用される 符号付き整数(signed integer)の Max
  27. AWS でのログ運用におけるチェックポイント 48 2. ログのコスト • S3 Intelligent-Tiering では 128

    KB 未満の オブジェクトは高頻度アクセスティアに 保存され高頻度アクセスティア料金で課金される • Glacier への PUT リクエストは S3 Standard の保存 料金より高額 • 1 オブジェクトのサイズが小さく オブジェクト数が大量にある場合、 Glacier へライフサイクルポリシーで 移行することで逆にコスト増に [アップデート]Amazon S3 Glacier Flexible Retrieval でデータの復元時間が最大 85% 短縮されました | DevelopersIO https://dev.classmethod.jp/articles/amazon-s3-glacier-flexible-retrieval-improves-restore-time/ S3 ストレージクラスの選択に迷った時みるチャートを作ってみた(2023年度版) | DevelopersIO https://dev.classmethod.jp/articles/should_i_choice_s3_storage_class_2023/
  28. AWS でのログ運用におけるチェックポイント 49 3. ログの保管場所 • CloudWatch Logs が適しているケース •

    ログデータの保存量が 5GB 以下、もしくはそこまで多くないことが想定できる場合 • リアルタイムでのログ監視が求められる • まずは色々と出力して中身を見たい • 緊急時に迅速なログ確認が求められる • S3 への直接保存が適しているケース • 大規模データのアーカイブ • 他のサービスとのデータ共有 • バックアップ • コスト削減が最優先事項である
  29. AWS でのログ運用におけるチェックポイント 50 3. ログの保管場所 • CloudWatch Logs • イベントサイズ

    の Max:256 KB • S3 • オブジェクトのサイズ:0 Byte~最大 5 TB • 1 回の PUT リクエストでアップロード可能なオブジェクトの 最大サイズ:5 GB • 100 MB を超えるオブジェクトの場合 マルチパートアップロードを検討 CloudWatch Logs を利用してログ出力する際、ログが途切れてしまう原因を教えてください | DevelopersIO https://dev.classmethod.jp/articles/tsnote-cloudwatchlogs-lambda-limits-256kb/
  30. AWS でのログ運用におけるチェックポイント 4. ログの一元管理・集約 • ログが複数のアカウントにバラバラになって いると、ログを確認するために何度も ログイン・ログアウトする必要がある • Control

    Tower を有効化すると、 CloudTrail と Config ログが ログアーカイブアカウントに集約される 51 AWS Control Towerを基本から理解する。具体的な活用法を交えて解説 クラスメソッド株式会社 https://classmethod.jp/aws/articles/aws-control-tower/
  31. AWS でのログ運用におけるチェックポイント 4. ログの一元管理・集約 • アプリケーションのログは Amazon Data Firehose (旧

    Amazon Kinesis Data Firehose)を使い 1 箇所に集約できる • ログ集約用の 別アカウントにも配信可能 52 AWS入門ブログリレー2024〜 Amazon Data Firehose(旧 Amazon Kinesis Data Firehose)編〜 | DevelopersIO https://dev.classmethod.jp/articles/introduction-2024-amazon-data-firehose/
  32. AWS でのログ運用におけるチェックポイント 5. ログ可視化の工夫 • CloudWatch Logs Insights • ロググループに格納された

    ログに対して SQL ライクな クエリ言語を使って フィルタリングや集計などの 分析ができる 57
  33. AWS でのログ運用におけるチェックポイント 63 5. ログ可視化の工夫 • Athena • サーバーレスのクエリサービス •

    S3 の中身を見るのにすごく便利なやつ • データの保存場所であるデータレイクに対し SQL 形式のクエリを実行できる • ALB や CloudTrail などのログを検索、 可視化する際に有用なクエリエンジン Athena で Amazon S3 サーバーのアクセスログを分析する | AWS re:Post https://repost.aws/ja/knowledge-center/analyze-logs-athena [初心者向け]Application Load Balancerのアクセスログを、Amazon Athenaで色々なクエリを実行し分析してみた | DevelopersIO https://dev.classmethod.jp/articles/application-load-balancer-athena-202306/ ALBアクセスログのフィールドとして「traceability_id」が追加されました | DevelopersIO https://dev.classmethod.jp/articles/alb-accesslog-traceabilityid/ AWS入門ブログリレー2024〜 Amazon Athena 編〜 | DevelopersIO https://dev.classmethod.jp/articles/introduction-2024-amazon-athena/ S3 Athena S3 に格納された データに対し クエリ
  34. AWS でのログ運用におけるチェックポイント 64 5. ログ可視化の工夫 • AWS WAF ダッシュボード •

    WAF を通過したアクセスログをもとに どのルールを通過してどのルールで ブロックされたか、アクセス元の国、 アクセス元の端末の種類などが グラフで分かる
  35. おわりに • ログ取得の目的と役割 • ログの目的:業務ログ、セキュリティログ • ログの役割:事実の確認、過程の確認、将来の予測 • ログ運用におけるチェックポイント •

    ログ保存期間は法令やガイドラインなどに準拠 • AWS で取得できる様々なログ • 監査ログである CloudTrail、Config は優先的に有効化 • AWS でのログ運用におけるチェックポイント • コスト最適化、一元管理、可視化の工夫 70
  36. 参考文献 • 第4章 1.ログ記録による証跡確保とログ自体の漏えい対策 | アーカイブ | IPA 独立行政法人 情報処理推進機構

    • https://www.ipa.go.jp/archive/security/vuln/programming/cc/chapter4/cc4-1.html • セキュリティのためのログ分析入門 サイバー攻撃の痕跡を見つける技術:書籍案内|技術評論社 • https://gihyo.jp/book/2018/978-4-297-10041-4 • 調査・研究報告書:IPA 独立行政法人 情報処理推進機構 • https://warp.ndl.go.jp/info:ndljp/pid/10201926/www.ipa.go.jp/security/products/products.html • 企業における情報システムのログ管理に関する実態調査-調査報告書-IPA_平成 28 年 6 月 9 日 • https://warp.da.ndl.go.jp/info:ndljp/pid/11440710/www.ipa.go.jp/files/000052999.pdf • PCIDSSとは|日本カード情報セキュリティ協議会 • https://www.jcdsc.org/pci_dss.php • 内閣サイバーセキュリティセンター(NISC)について – NISC • https://www.nisc.go.jp/about/index.html • SANSについて • https://www.sans-japan.jp/about • Logging strategies for security incident response | AWS Security Blog • https://aws.amazon.com/jp/blogs/security/logging-strategies-for-security-incident-response/ 71