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 勉強会で用いたものです。

Eiji Sugiura

August 30, 2021
Tweet

More Decks by Eiji Sugiura

Other Decks in Technology

Transcript

  1.   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 プロフィール画像の トリミング方法
  2. 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 ...
  3. 16 できること ETLを簡単に構築できる ETL Elastic Common Schema GeoIP Centralized Log

    Bucket JSON 正規表現で解析できるもの Dashboard graph, table Dead Letter Queue 1 callで処理できるthresholdを超えたobject + offsetを保持 es-loader
  4. 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
  5.   18 できること Threat Hunting Dashboard CloudTrail / GuardDuty eventで

    怪しいものを探す Inspection filterを使って、ポチポチ調査 Custom Filter いくつか最初から用意されている
  6. 22 できないこと 多量のログ、サポート外のログ 多量のログ 小さなobjectを多量に作成すると、 全てを拾えない サポート外のログ DeepSecurity WAFv1 Elasticsearch

    service 簡単に溢れてしまう 溢れると、基本的には入れ直し Dead Letter Queue 溜まるけど、Load処理は手動 PUT trigger Alerting 検知アラートは飛ばない es-loader
  7. 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
  8. 24 できないこと -- サポート外のログ importer Lambda作成 + ECS設定 + script拡張を実装

    DeepSecurity対応 importerがSNS eventをS3に出力 sf_deepsecurity.pyでPacketDataもdecode es-loader importer
  9. 27  log account PUT trigger  service account Load方法を変えてみる AWS WAF:

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

    CloudWatch Event trigger PUT trigger Lambdaを別に書く pollingによるlatence悪化を防ぐ  service account PUT trigger
  11.   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を忘れずに
  12.   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
  13.   33 日々の運用 PSIRTの1週間 Security Weekly Meeting もくもく会
 Incident Handling

    Kaizen hour 担当者が集まって状況整理 気になるものは一緒に探ってみる CSIRT/PSIRTで情報共有 検知状況を解釈し、対処方針を決める 文書としてまとめておく 改善してみる 気になるものを試してみる もしものときには Alertや申告ベースで始まるincidentは 最優先で対応
  14. 38 AWS managed service log →ETL+Threat Hunting S3にlogを保存していれば、ここまでは簡単にできる 対応するログ追加 =

    ECSへのmapping + 拡張script ログさえあれば、対応させることも簡単 ElasticSearch index management index fullを防止する 日々の運用 threat huntingに、欠かせないtool Summary