標的型攻撃メールの対策はAWSでできるのか?

標的型メールが流行っている昨今、特定のメールからしか受信をしないのであれば、メールドメイン単位でフィルタリングが出来るのだろうか。

特に大手企業のドメインは有名であり、中国からもよく狙われています。

SESでAWSを導入すればよいが、EC2でのMTAを実装を考えており、検討してみた。

AWS構成】

・ELB + EC2 + RDS ・EC2からメール受信時に、メールサーバのドメイン名 (FQDN)でアクセス権限をかける ・EC2にMTAをもつ

本来であれば、IPでの制限については、セキュリティグループとNACLで可能であり、 こちらで制限できるか、確認した。

セキュリティグループとNACLの違いは?

簡単にいうと、セキュリティグループはインスタンスレベルで動作。

NACLは、サブネットレベルで動作で動作。

比較をして見ましょう。

セキュリティグループ NACL
インスタンスレベルで動作 サブネットレベルで動作
ステートフル: ルールに関係なく、返されたトラフィックが自動的に許可 ステートレス: 返されたトラフィックがルールによって明示的に許可
該当のトラフィックを許可する前に全ての許可設定を評価 該当のトラフィックを許可するとき、ルール番号順にACLのルールを処理
インスタンスを起動するときのみ指定 サブネット内で起動した全てのインスタンスに対して自動的に適応

セキュリティグループはAWSに触れるひとであれば、当たり前の知識であるかもしれませんが、NACLはあまり設定をすることはないかもしれませので、もう少し深く説明しましょう。

NACLについて

・NACLは、ルールに番号付けしたリスト。 ・ACLに関連づけられたサブネットの入りと出のトラフィックのに対して小さな番号順に許可される。 ・インバウンドまたはアウトバウンドのトラフィックについて、個別に許可と拒否を設定 ・VPCは自動的にデフォルトACLに属します。初期設定で全ての入りと出のトラフィックを許可 ・任意にカスタマイズしたACLを追加可能 ・カスタムACLは、初期設定として全ての入りと出のトラフィックを拒否 ・許可ルールを追加することで通信可能 ・どのサブネットもACLを関連づける必要があり。 ・サブネットにACLを指定しない場合には、デフォルトACLが適応されます。 ・ACLはステートレスです。レスポンスの通信を許可する必要あり

フィルタできない通信は?

では、セキュリティグループとNACLで防げない通信はあるのでしょうか。

セキュリティグループとNACLは、リンクローカルアドレスに関するトラフィックをフィルタすることができません。 リンクローカルアドレスとは、VPC内で動いているDNSサーバー、DHCPAmazon EC2指定のメタデータです。 もし、これらの通信をブロックしたければ、EC2内にオリジナルのファイアウォールを設定すればブロックすることができます。

それでは本題であるFQDNの通信は?その他のWAFなどを用いてでできるだろうか?

残念ながら、 AWS サービスの機能を利用した方法では、このような要件を満たす方法はありませんでした。

このため実現方法は、セキュリティグループやネットワーク ACL を更新するスクリプトを作成するか、インスタンス内の iptables などで実施する必要があります。

iptabelsはCENTOS7では使われない技術になってきておりますが、Linuxで最も使われているファイアウォールです。

ドメインで止められないのであれば

それでは下記のように設定しましょう。

似たようなIPなので傾向を見るため、一定期間メールログからアクセス元のIPを抽出する。

それらを並べてみると、大体近いIPアドレスが多いのに気づく。

IP業者が使うであろうアドレスを含む広い範囲を遮断すればよい。

「国/地域別IPアドレス割当数一覧」というサイトを利用する。

数百個あるIPアドレスも複数のグループに分けられるはずだ。

iptabelsで下記のコマンドで設定する。 複数のコマンドをそれぞれ実行。

iptables -I INPUT 2 -s xx.xxx.xxx.xxx/12 -j DROP

そのあとは、リスタートすればよろし。

まとめ

AWSに関わらず、標的型メールが流行っている昨今、特定のメールドメインのブロックをオンプレのファイアウォールでも設定の可能・不可能があった。

AWSでは今は設定できないことではあるが、需要は多いと考えられるので、ぜひ実装してほしい。