Amazon Macie で特定アラートが誤検知してしまう場合の対処

Macie 使ってますか?
2020.03.17

みなさん Macie 使ってますか?

え。読み方知ってますよね・・(震え声

Amazon Macie は S3 のオブジェクトを機械学習によって機密データの検出、クラス分類、不正アクセスの危険性があるものをアラートで配信してくれる非常に便利なサービスです。

冒頭、「使ってますか?」と聞いたものの、残念ながら東京リージョンにはまだ来ておらず、利用できるのはバージニアとオレゴンのみです。早く東京リージョンに来て欲しいサービスの 1 つですね。

今回、Macie を使うなかでアラートの誤検知に遭遇する機会がありましたので、その際に行った対処等についていご紹介したいと思います。

Macie について

「Amazon Macie って何だっけ?」という方は、是非、以下の記事をあわせてお読みください。ちょっと古い記事にはなりますが、それほどアップデートも多くないので概要を把握するには十分な記事となっています。

誤検知の内容について

今回、誤検知されてしまったアラートは「Possible Payment Card Industry Data Security Standard (PCI DSS) - credit card information detected in S3 bucket」です。

つまり、「S3 バケット内にクレジットカード情報が入ってるので、PCI DSS に準拠していることを確認してください」というアラートです。

どのデータが対象になったのかは判らない

しかし、今回バケット内にクレジットカード情報なんてものは持ってないので、誤検知であることは明確でした。一体、どのデータがクレジットカード情報として検出されてしまったのか調べようと思いましたが、Macie で確認できるのは検出件数などのメタデータのみです

Macie は対象のバケットを指定するだけで、その中にあるオブジェクトを自動的に機械学習しアラート配信してくれますが仕組み上、分析時のみそのデータを保持し、分析が完了した後はメタデータしか保持していません。

よって、サポートに確認してもオブジェクトのどのデータが検出対象になったかを調査することは出来ません。

ユーザーのデータを保護するという観点では当然の仕様ですので、諦めましょう。逆に、そのようにしてセキュリティを確保していると考えると良いですね。

クエリから判断できるか?

Macie の Basic Alert の設定を確認すると、クエリ情報が記載されています。たとえば今回の 「Possible Payment Card Industry Data Security Standard (PCI DSS) - credit card information detected in S3 bucket」であれば、以下のようになっています。

Lucene クエリ構文で書かれていますが、「1つのオブジェクトで少なくとも 20 件のクレジットカード番号と、メールアドレス、名前の情報を検出するクエリ」であることが解るものの、具体的な cc_number の部分がどういうロジックになっているかは判りません。

なんとなくクレジットカード番号と間違われてそうな数字データと、メールアドレスまたは名前を別のオブジェクトとして分ければ回避できそうな気もしますが、誤検知逃れのためにデータの持ち方を変えるというのも筋が良くない気がしたので、今回はそういった対応はしませんでした。

オブジェクト単位のフィルタは出来るのか?

Macie では、どのデータが誤検出されたかを判断することは出来ませんが、どのオブジェクトで検出されたか、までは特定できます。

例えば日次で上がってくる特定のオブジェクトが毎回、誤検知されるのであればオブジェクト名などでフィルタリングしたいところですが、現状、Macie ではオブジェクト単位のフィルタリングは出来ませんでした。

ユーザーが出来ることは 3 パターン

このように検討していくと、ユーザーができる対応はそんなに多くなく、概ね以下の 3 パターンになるか思います。

  • バケットを Macie の対象外にする
  • バケットを特定アラートの対象外にする
  • 特定アラートを無効にする

バケットを Macie の対象外にする

当たり前の話ですが、S3 バケットを Macie の管理対象外にしてしまえば検知はされません。気をつけたい点は Macie の管理対象外にするということは、クラス分類だけでなく、不正なアクセスパターン検出の対象にもなりません。

クラス分類のみを無効にして、不正アクセスパターン検出の対象には含めたい、といった使い方は現時点では出来ません。

バケットを特定アラートの対象外にする

特定アラートの対象から、特定のバケットのみをホワイトリストとして除外することができます。

Macie の管理ダッシュボードから [ALERTS] を開き、除外したいアラートの右上にある矢印をクリックします。すると、Whitelist bucket メニューがありますので、これを開くと以下のメニューが表示されます。

ホワイトリスト設定はデフォルトのアラートを複製して、別のアラートとして作成されますので Clone and disable the default managed alert. にチェックを入れ、SUBMIT をクリックし除外します。

すると以下のようにデフォルトのアラートは無効化され、複製されたアラートが作成されます。これで、ホワイトリストのバケットについては当該アラートに検出されなくなります。

特定アラートを無効にする

対象となるバケットが多く、個別にホワイトリスト登録が面倒な場合、特定アラートそのものを無効化することもできます。

Macie の管理ダッシュボードから [ALERTS] を開き、除外したいアラートの右上にある矢印をクリックします。Edit basic alert メニューがありますので、これを開くと以下のようにアラートの設定画面が開きます。最下部に Enabled の設定がありますので、No - disabled を選択し、SAVE します。

Enabled の列(虫眼鏡の左横)が No に変わりましたので、これで特定アラートが無効化されました。

今回、私のケースでは「対象バケットが多かったこと」「そもそもクレジットカード情報を扱うことが無いことが明確」という点で、バケット単位ではなくアラートそのものを無効化するという対処にいたしました。

さいごに

Macie は東京リージョンに来ていないこともあり、あまり情報が多くなかったので同じことで悩んでいる方がおられましたら参考にしてください。

Macie は S3 に対しての発見的統制に役立つ便利なサービスので、はやく東京リージョンで使いたいですね!

以上!大阪オフィスの丸毛(@marumo1981)でした!