MCASでAWSアクセスを監視する

皆さんこんにちは。国井です。
前回、MCASのファイルポリシーを使ってOneDrive for Business共有を発見する方法を解説しましたが、ファイルポリシーはOffice 365のためだけのものではなく、AWS, box, dropboxなどのクラウドサービスも監視対象にすることができます
ですのでboxやdropboxで共有されたコンテンツも古くから共有されたものを見つけてブロックするような運用が可能です。

image
(このメニューの中から共有をブロックするのであれば[直接共有リンクの削除]などを利用するケースが多いと思います。間違ってたら誰かご指摘を!)

またAWSの場合であれば、S3バケットがパブリックアクセスできるようになっていないか?など気になるわけです。ここでは前回に引き続きMCASを使ってOffice 365以外のアクティビティを監視していく方法を紹介します。

アプリコネクタの登録

MCASではAPI経由で直接クラウドサービスの監視を行う場合、
アプリコネクタという設定でMCASとクラウドサービスの連携設定を行います。
連携可能なクラウドサービスの種類とどんな監視が可能かについては
MSサイトで紹介しているので、そちらをご覧ください。

アプリコネクタの登録方法は上記サイトにも説明があるのですが、AWSの登録方法が少し厄介だったのでここでは備忘録も兼ねて記載しておきます。
登録するときはMCASのポータルサイトから以下の要領で登録します。

image

このとき、AWS側のパラメーターを登録しなければなりません。
そこで、MCAS側の設定の前に、AWSにアクセスして必要なパラメーターを取ってきます。
ちなみに必要なパラメーターとはアクセスキーと秘密鍵の2つです。

image

AWSでアクセスキーと秘密鍵を取得

AWSコンソールにログインし、セキュリティ、ID、およびコンプライアンス > IAM をクリックしてユーザーを作成します。作成するユーザーの名前はなんでもよいのですが、重要なポイントは[プログラムによるアクセス]を選択しておくことです。
(※つまりAPIアクセスを認めるってことですね)

image

ユーザー作成のウィザードを進め、ユーザーに割り当てるロール(AWSではポリシーと呼ぶのかな?)を定義します。
ポリシーは[ポリシーの作成]から新規作成し、

image

以下の文字列をJSONタブに貼り付けます。

{
“Version” : “2012-10-17”,
“Statement” : [{
“Action” : [
“cloudtrail:DescribeTrails”,
“cloudtrail:LookupEvents”,
“cloudtrail:GetTrailStatus”,
“cloudwatch:Describe*”,
“cloudwatch:Get*”,
“cloudwatch:List*”,
“iam:List*”,
“iam:Get*”,
“s3:ListAllMyBuckets”,
“s3:PutBucketAcl”,
“s3:GetBucketAcl”,
“s3:GetBucketLocation”
],
“Effect” : “Allow”,
“Resource” : “*”
}
]
}

image

続くウィザード画面では作成したポリシーの名前を設定することになりますので、
名前も登録しておきます。ここまでできたら、ユーザーの作成は完了です。
すると、アクセスキーIDとシークレットアクセスキーが表示されるので
(※OAuth2.0のクライアントIDとシークレットのことですね)
文字列を控えておきます。

image

CloudTrailで証跡を作成

AWSコンソールにログインし、管理とガバナンス > CloudTrail をクリックしてAWSのアクティビティを収集できるようにします。(もうお気づきだと思いますが、MCASはCloudTrailに格納されたデータにAPI経由でアクセスし、監視を行っています)
CloudTrail画面から 証跡 > 証跡の作成 をクリックし、
image

証跡を保存するS3バケットを作成し、

image

image

証跡を残すイベントを選択します。ここで選択した内容がMCASから参照できる内容になります。

image

設定が完了したら保存して終了しましょう。

MCAS側の設定

MCASに戻って、AWSでユーザーを作成した時に生成されたアクセスキーIDとシークレットアクセスキーをそれぞれアクセスキーと秘密鍵に入力します。
これで[接続]ボタンをクリックすれば、できあがり。

image

しばらくすると、MCASの 調査 > アクティビティログをクリックすると、
AWSのアクティビティがすべて表示されます。

image

ご覧のような画面が表示されるので、
いつログインをしたか?とか、
root userが使われたか?とか、
MFAが有効になっていないとか、
そういったことが確認できると同時に
ログイン後の操作(上の画面だと「Account Summaryの表示」)も表示されます。

少し話は外れますが、アクティビティログではログに対するフィルターも設定することができ、下記のようなフィルターを設定すれば絞り込みができますし、
[検索に基づく新しいポリシー]をクリックして、ポリシーを作成し、
アラートを出力したり、アクセスをブロックしたりすることができます。

image

ポリシーの作成

アクティビティログに表示された内容からも確認できるように、アプリコネクタを使ってクラウドをMCASと連携させることによってクラウドサービスのリアルタイム監視ができるようになります。そして、その中からどのような条件の時にアクセスをブロックするか?などの条件をポリシーで作るわけです。例えば、前にも登場したS3バケットのパブリックアクセスを発見してブロックしたいということであれば、
MCASポータルからポリシー > ポリシーの作成 > ファイルポリシー を選択し、
ファイルポリシーに最初からテンプレートで[パブリックにアクセス可能なS3バケット]というのがあるので、これを選択するだけで監視を始められます。

image

テンプレートのデフォルト設定ではアラートを出力するだけになっているので、
[ガバナンスアクション]メニューから[非公開にする]にチェックをつけておけばブロックの設定ができます。

image
こんな感じでアプリコネクタにクラウドサービスを追加すれば、監視対象は広げることができるのでお勧めなんですが、この機能の最大の欠点は接続可能なクラウドサービスが少ない!ってことです。MCAS自体はずいぶんと前からあるクラウドサービスですが、この数年で接続可能なクラウドサービスが追加されたことはないので、この先もあまり期待はできなさそうです。。

今回は紹介しませんでしたが、MCASのポリシーにはファイルポリシー以外にも、ログインを監視するアクティビティポリシーやコピペ等の特定操作の監視をするセッションポリシーなどいろいろなポリシーがあるので、機会があればまた紹介できればと思います。