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

AES SIEMを運用してわかった できること、できないこと/Incident Handling with AES SIEM

AES SIEMを運用してわかった できること、できないこと/Incident Handling with AES SIEM

Amazon Elasticsearch serviceを用いて構築したSIEMを運用してきた結果わかった、できること、できないことを共有します。

本資料は、Security-JAWS #22 勉強会で用いたものです。

Aa438786215088ca65d9d0b42ef37675?s=128

Eiji Sugiura

August 30, 2021
Tweet

Transcript

  1.   AES SIEMを運用して分かった できること、できないこと eiji@freee Security-JAWS #22 2021.08.27

  2.   2 2017−12 freeeにjoin、CSIRT専属engineerとして、社外、社 内を問わず、incident response、および、securityを担保す る仕組みづくりを担当。 2020−07 product securityを専門とするPSIRT発足に伴い、

    blue teamとして活動中。 前職は、managed security service providerで、UTM OS、 log backendの開発に従事していた関係上、Linux Kernel network stack、TCP/IP、network securityがcore skill。 その昔、jazz Guitarを弾けましたが、今は見る影なし 家族は、妻と1男1女の4人家族 杉浦 英史 PSIRT 機関長 Eiji Sugiura プロフィール画像の トリミング方法
  3.   freeeの紹介

  4. 4 SaaSで会計サービスを提供

  5.   5 freee会計 freee開業 freee福利厚生 freeeアプリストア freee人事労務 freee会社設立 freeeスマート受発注 freeeプロジェクト管理

    freee資金調達 freee申告 freeeカード プロダクトラインアップ
  6. スモールビジネスを、世界の主役に。

  7. 7 誰もが自然に経営できる環境

  8. 8 リアルタイムデータ収集 + 可視化 + 自動化 serviceを守るのがPSIRTの責務

  9.   9 AES SIEMとは? できること できないこと わかったこと 本日のアジェンダ 01 02

    03 04
  10.   01 AES SIEMとは?

  11. 11 1年前を思い出してみる SensorでBlock/ResetしたログだけElasticsearchにいれて、nginxやRailsのlogと照合していた Security Sensor AWS WAF DeepSecurity Service Log

    nginx Application Log rails rescue 報われない苦労 目grep、人力join
  12.   12 AES SIEMとは? AWS managed serviceで、securityに関わる業務を楽にしてくれそう! AES Amazon Elasticsearch

    Service SIEM Security Information & Event Management
  13. 13 AES SIEMとは? 日本のAWSの中の人が開発 https://github.com/aws-samples/siem-on-amazon-elasticsearch-service https://github.com/nakajiak AWS CDKでSIEMを構築 ETL =

    Lambda : es-loader Log Database = AWS Elasticsearch Service v7.9以上 Viewer = Kibana AWS Log + αをサポート CloudTrail, SecurityHub, GuardDuty WAF fulllog, NetworkFirewall CloudFront, ELB, Route53 resolver query log VPC flow log S3 access log Directory Service, WorkSpaces Linux syslog, Windows event log ...
  14. 14 AES SIEMとは https://github.com/aws-samples/siem-on-amazon-elasticsearch-service/blob/main/README_ja.md

  15.   02 できること

  16. 16 できること ETLを簡単に構築できる ETL Elastic Common Schema GeoIP Centralized Log

    Bucket JSON 正規表現で解析できるもの Dashboard graph, table Dead Letter Queue 1 callで処理できるthresholdを超えたobject + offsetを保持 es-loader
  17. 17 できること AWS由来のログをElasticsearchにloadする前に、field nameを揃えてくれる eventName eventName sourceIPaddress userIdentity.[userName|arn|...] type -

    *.ipAddressV4 resource.accessKeyDetails.userName terminatingRuleId action clientIp - Elastic Common Schema rule.name event.action source.ip user.name es-loader https://www.elastic.co/guide/en/ecs/current/ecs-field-reference.html CloudTrail GuardDuty AWS WAF
  18.   18 できること Threat Hunting Dashboard CloudTrail / GuardDuty eventで

    怪しいものを探す Inspection filterを使って、ポチポチ調査 Custom Filter いくつか最初から用意されている
  19. 19 Alertが飛んできた!他に何もやってないよね? Demo

  20. 20 Demo

  21.   03 できないこと

  22. 22 できないこと 多量のログ、サポート外のログ 多量のログ 小さなobjectを多量に作成すると、 全てを拾えない サポート外のログ DeepSecurity WAFv1 Elasticsearch

    service 簡単に溢れてしまう 溢れると、基本的には入れ直し Dead Letter Queue 溜まるけど、Load処理は手動 PUT trigger Alerting 検知アラートは飛ばない es-loader
  23. 23 できないこと -- サポート外のログ ECS設定 + script拡張を実装 WAFv1対応 RuleIdやnonTerminatingMatchingRuleの扱 いが異なる

    COUNTを区別できるように改修 es-loader https://github.com/aws-samples/siem-on-amazon-elasticsearch-service/blob/main/source/lambda/es_loader/aws.ini#L789-L820 https://github.com/aws-samples/siem-on-amazon-elasticsearch-service/blob/main/source/lambda/es_loader/siem/sf_waf.py
  24. 24 できないこと -- サポート外のログ importer Lambda作成 + ECS設定 + script拡張を実装

    DeepSecurity対応 importerがSNS eventをS3に出力 sf_deepsecurity.pyでPacketDataもdecode es-loader importer
  25. 25 多量のログ 小さなobjectを多量に作成すると、 全てを拾えない   できないこと -- 多量のログ AWS WAF:

    Lambda concurrency > 1,000 per account PUT trigger
  26. 26  log account  service account accountを分けてみる AWS WAF: service accountのbucketで処理→accountを超えてbulk

    insert 多量のログ service accountで処理 PUT trigger
  27. 27  log account PUT trigger  service account Load方法を変えてみる AWS WAF:

    pollingすることにした ログ集約は臨機応変に organizationsで集めやすいもの CloudTrail、GuardDuty CloudWatch Event trigger Polling + まとめて処理 一定間隔でlambdaを1つだけ起動 複数のobjectをまとめて処理
  28. 28  log account できないこと -- Alerting Slackに飛ばす Elasticsearch Alerting 設定するだけ

    CloudWatch Event trigger PUT trigger Lambdaを別に書く pollingによるlatence悪化を防ぐ  service account PUT trigger
  29. 29 できないこと -- DLQの自動処理 CloudTrail S3 object logging, VPC flow

    log : Lambda execution timeout
  30.   04 わかったこと

  31.   31 VPC az-a az-c az-d Elasticsearch設定の苦労あるある VPCに閉じ込めたい Master node

    Data node Ultrawarm node Node設定変更=blue green deploy 容量変更でも全台入れ替え ALBが参照するData node IPも変わってしまう VPCにおく場合 S3とSQS VPC endpointを忘れずに
  32.   32 Elasticsearch運用の苦労あるある index fullにならないように... Daily index monthlyだと、migrateが終わらない、 やり直しも大変 indexは、50GB以内に抑えたい

    Hot/Warm/Cold storage Hot→Ultrawarm はそれなりに時間がかかる Ultrawarm→Coldは一瞬 たまにしかsearchしないのであれば、Coldへ ただし、Coldは 参 照 できないので、 参 照 前 に Warmへのmigrateが必要 Index State Managment Hot→Warm→Cold migrationを自動化する legacyなcuratorは用いない 25% Free Storage Alert Data nodeの空き容量が25%切ったらalert Planning + Feedback log容量は予測できないもの、実測してから考えま しょう trial and error
  33.   33 日々の運用 PSIRTの1週間 Security Weekly Meeting もくもく会
 Incident Handling

    Kaizen hour 担当者が集まって状況整理 気になるものは一緒に探ってみる CSIRT/PSIRTで情報共有 検知状況を解釈し、対処方針を決める 文書としてまとめておく 改善してみる 気になるものを試してみる もしものときには Alertや申告ベースで始まるincidentは 最優先で対応
  34.   34 AES SIEMのありがたみ 全てを串刺しで観測できる 外部からの攻撃 WAFやDeepSecurityで検知 社内からの攻撃 EDR、NGFWで検知 侵入後の水平展開

    CloudTrail、GuardDutyで検知 AES SIEMに集約 前後関係の把握、被害範囲の特定
  35.   35 日々の運用 短期で解決できるもの DDoS 脆弱性探索 検知漏れの把握 WAFをすり抜けて、 DeepSecurityで検知される 自作自演

    mobile appが無限loop
  36.   36 日々の運用 これからも考えていくこと PublicAPI 気軽にfor loopで他社を探索 処理能力推定 sign upした後にaccount大量追加

    「取引」大量インポート Cost Cost Calculator
  37.   37 AES SIEMとは? できること できないこと わかったこと 本日のアジェンダ 01 02

    03 04
  38. 38 AWS managed service log →ETL+Threat Hunting S3にlogを保存していれば、ここまでは簡単にできる 対応するログ追加 =

    ECSへのmapping + 拡張script ログさえあれば、対応させることも簡単 ElasticSearch index management index fullを防止する 日々の運用 threat huntingに、欠かせないtool Summary
  39.   39 AES SIEMとは? できること できたこと できなかったこと 運用の苦労 本日のアジェンダ 01

    02 03 04
  40. None