[注意喚起]S3に対するランサムウェアの流行に伴いAmazon GuardDutyによる脅威検出を活用するようアナウンスがありました
こんにちは、臼田です。
みなさん、AWSの脅威検出してますか?(挨拶
今回はAmazon GuardDutyのお知らせ通知にて下記内容が送られてきましたので、こちらの解説と注意喚起を行います。
{
"version": "1",
"type": "GENERAL",
"featureDetails": [
{
"featureLink": [
"https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_findings_cloudwatch.html#guardduty_cloudwatch_severity_notification",
"https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-attack-sequence-finding-types.html#attack-sequence-s3-compromised-data",
"https://docs.aws.amazon.com/guardduty/latest/ug/guardduty-extended-threat-detection.html"
],
"featureDescription": "GuardDuty Extended Threat Detection automatically detects multi-stage attacks that span multiple data sources, AWS resource types, and time. It generates attack sequence findings, which have critical severity with value 9.0. We strongly advise all customers to ensure their EventBridge rules and downstream tooling is receiving and not filtering out these new finding types. We also recommend to review such findings promptly, if received. For example, a critical severity AttackSequence:S3/CompromisedData finding can uncover a sequence of suspicious actions indicative of a potential ransomware attempt where a threat actor attempts to use their own encryption keys (SSE-C) to encrypt the contents of an S3 bucket. Detection of data compromises requires you to have GuardDuty S3 protection enabled."
}
]
}
内容の要約
GuardDuty Extended Threat Detection は、複数のデータソース、AWS リソースタイプ、および時間にまたがる多段階攻撃を自動的に検出します。これにより、値が 9.0 の重大な重大度を持つ攻撃シーケンスの検出結果が生成されます。すべてのお客様に、EventBridge ルールとダウンストリームツールがこれらの新しい検出タイプを受信し、フィルタリングしないようにすることを強くお勧めします。また、このような検出結果を受け取った場合は、すぐに確認することをお勧めします。たとえば、重大な重大度である AttackSequence:S3/CompromisedData の検出結果では、脅威アクターが独自の暗号化キー (SSE-C) を使用して S3 バケットの内容を暗号化しようとする、潜在的なランサムウェアの試みを示す疑わしい一連のアクションが明らかになることがあります。データ侵害を検出するには、GuardDuty S3 保護を有効にする必要があります。
通知内容の解説
タイトルにも入れましたが、ここしばらくS3に保存されたオブジェクトを暗号化し身代金を要求するランサムウェア攻撃が流行しています。
ランサムウェアは攻撃者がデータを暗号化して利用できなくすることでビジネスの可用性を損ね、復元するための鍵の提供と引き換えに身代金を要求する攻撃手法ですが、昨今のS3に対するランサムウェアではS3の正規の機能である「SSE-C」が利用されています。
SSE-CはS3オブジェクトの暗号化を、クライアントが持ち込んだ鍵を利用してサーバー側で暗号化する手法です。AWSの正規の機能を利用しつつ、鍵自体は攻撃者が所持することができるため、奇しくもランサムウェアの手法と同じように利用できることから昨今利用されていると考えられます。
AWSではこれに対し、この攻撃手法の構造解析結果や対策についての記事を出しています。
Amazon S3 を標的としたランサムウェアの構造分析 | Amazon Web Services ブログ
Preventing unintended encryption of Amazon S3 objects | AWS Security Blog
今回はこれに加え、Amazon GuardDutyを利用することで該当の攻撃手法を早期発見することにもつながるため、通知の設定を有効にしておくように、という注意喚起の通知がありました。
すべてのAWSアカウントで、すべてのリージョンでAmazon GuardDutyを有効化しておくことがベストプラクティスです。通知も含めて徹底しましょう。
S3に対するランサムウェアの対策
Amazon GuardDutyによる検出ももちろん大切ですが、これはあくまで早期に対処できる体制を作るにとどまります。他にも以下のような対策がありますので合わせて実施を検討してください。詳細は上述したAWSの記事にあります。
根本対策
S3に対するランサムウェアはあくまで攻撃者が該当AWS環境に侵入できた後、S3に対するアクセス権限を所持しているところから始まります。攻撃者が侵入できないようにIAMアクセスキーの漏洩を発生させないことが基本的な対策です。
IAMユーザーを極力減らし、IAM Roleの利用へと置き換えると共に、IAM利用者に対する教育を徹底しましょう。
防御策
根本的な対策ではありませんが、S3に対するランサムウェアの動作を止めるための新たな手段として、先日のre:Inventにて発表されたリソースコントロールポリシー(RCPs)にて下記ポリシーを設定することで、SSE-Cの利用を止めることができるため攻撃を防ぐことが可能です。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "RestrictSSECObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "*",
"Condition": {
"Null": {
"s3:x-amz-server-side-encryption-customer-algorithm": "false"
}
}
}
]
}
基本的にSSE-Cを利用するユースケースはほぼ無いため、この設定を全体に適用しておくのは悪くない対策でしょう。
他にも、バージョニングやAWS Buckupなどのバックアップ手段やオブジェクトロックなどの変更防止なども要件に合わせて利用可能です。これらは極力利用するポリシーとして整備していきましょう。
通知自体の解説
ちなみにこちらの通知はAmazon GuardDutyのお知らせでサブスクライブして受け取れます。
通常は新しい機能やFinding Typesの通知であることが多いですが、たまに今回のようなGENERAL
タイプの通知もあります。私の観測している限りでは2回目のGENERAL
タイプの通知です。
1回目は下記。
通知を受け取りたい方は下記を参照してください。
まとめ
最近流行しているS3に対するランサムウェアの対応方法とAmazon GuardDutyでの通知の必要性について共有しました。
1つの対策だけでは何かあったときにうまく機能しないこともあります。根本的なセキュリティの実装を強化し、異常を検出するためのセンサーを利用し、すぐに対処できる体制を作っていきましょう。