AWSのセキュリティ系サービスってどれ使えばいいんだろ?
はじめに
AWS WAFを触ってみようと思ったのですが、そもそも他にAWS Shieldとか色々あるけど、機能的にはどれを使えばいいのかよく分かっていませんでした。
WAFを使う前に、確認のためにざっくり整理してみました。
あくまでざっくり。
システム化出来ないとか、出来るかどうか分からない所は専門家に相談するのがおすすめです。なお相談する上である程度概要を知っておくと話がしやすいと思います。
結論
方向性 | 対策に使えるAWSサービス |
---|---|
DDoS寄り | AWS Shield Standard,AWS Shield Advanced,Elastic Load Balancing,Amazon CloudFront |
DDos系よりも標的型攻撃寄り | AWS WAF |
標的型攻撃寄り | Amazon Certificate Manager(でHTTPS化),Amazon Inspector,AWS CloudTrail,Amazon Macie,Amazon GuardDuty,Amazon EC2(IDS/IPS等の導入) |
方向性 | 脅威名 | 概要 |
---|---|---|
DDoS寄り | DNS Amplification (Reflection) | 間接的に大量のDNS回答を送りつける |
DDoS寄り | Slowloris | 低速・不完全なHTTPリクエストで最大同時接続数をオーバーさせる |
DDoS寄り | Layer 3 and Layer 4 DDoS Attacks | 大量のICMP(ping)、SYN、UDPフラッドで負荷をかける |
DDoS寄り | SSL Floods | 大量のSSL要求を出して負荷をかける |
DDos系よりも標的型攻撃寄り | HTTP Flood | 大量のHTTPリクエストを出して負荷をかける |
DDos系よりも標的型攻撃寄り | botnet | 「ゾンビPC」のグループで大量のリクエストを出して負荷をかける |
DDos系よりも標的型攻撃寄り | SQL インジェクション | 脆弱性を利用して不正に任意SQLを実行 |
DDos系よりも標的型攻撃寄り | OS コマンド・インジェクション | 脆弱性を利用して不正に任意OSコマンドを実行 |
DDos系よりも標的型攻撃寄り | パス名パラメータの未チェック/ディレクトリ・トラバーサル | 脆弱性を利用して不正にファイルを参照 |
DDos系よりも標的型攻撃寄り | クロスサイト・スクリプティング | 脆弱性を利用して不正に任意を実行JavaScriptを実行 |
DDos系よりも標的型攻撃寄り | CSRF(クロスサイト・リクエスト・フォージェリ) | 脆弱性を利用して間接的に不正リクエストを送らせる |
DDos系よりも標的型攻撃寄り | HTTP ヘッダ・インジェクション | 脆弱性を利用してフォーム内容等を改竄し、悪意あるHTTPレスポンスを返す |
DDos系よりも標的型攻撃寄り | メールヘッダ・インジェクション | 脆弱性を利用してメールヘッダを改竄し、指定の宛先にメールを送らせたりする |
標的型攻撃寄り | クリックジャッキング | ボタンやiframe等で画面を強制上書きして騙し、悪意あるブラウザ操作を行わせる |
標的型攻撃寄り | セッションハイジャック | セッション情報を横取りして本人になりすまし悪意のある操作をする |
標的型攻撃寄り | スピアフィッシング | 非デジタルも含めた脆弱性を突いて、攻撃や情報の取得を不正に行う |
筆者(セキュリティの専門家ではない)の個人的な考えでは、
- DDoS系寄り
- DDos系よりも標的型攻撃寄り
- 標的型攻撃寄り
が存在すると考えている。
やってみたこと
そもそもどういう脅威があるのか調べてみた
この世のすべてのセキュリティ脅威をリストアップすることは現実的ではないので、有名なものを思いつく限りリストアップしてみました。
その上で、 システム化の難しそう度 で分類を付けてみました。
軸:特定の人を対象とする度合い
- DDoS系寄り
- DDos系よりも標的型攻撃寄り
- 標的型攻撃寄り
上記の分類がなぜ システム化の難しそう度 の分類になると考えているか説明します。
標的型攻撃に寄るほど、特定の人の行動パターンや周辺情報を必要としますが、狙った情報を取得したり被害を与えるターゲットを絞ることが行いやすくなります。そのため、攻撃がパターン化しにくくなります。ゆえにシステム化が難しくなります。
DDos系寄り
- DNS Amplification (Reflection)
- DNSリフレクション攻撃、DNSリフレクター攻撃、DNSアンプ攻撃とも言われる
- DNSサーバを利用して間接的に大量のDNSパケットを送りつける攻撃
- DNSサーバにリクエストを送ると、送信元に回答が返る。そのため、送信元IPを偽装してDNSサーバにリクエストを送ることで、DNSサーバは偽装したIPにレスポンスを返してしまう。すなわち、任意のIPに対してDNSの回答を発生させることができる。そのためこれが起こせてしまう
- Slowloris
- 「スローロリス」と読む。
- HTTPのコネクションがぎりぎり切れないように維持しながら、断片的なリクエストデータを低速で送信しつづけ、いつまで経っても要求が完了できない状態にする。それによってWEBサーバのプロセスをいっぱいにし、最大同時接続数をオーバーさせる
- Layer 3 and Layer 4 DDoS Attacks
- 大量のICMP(ping)、SYN、UDPフラッドを送りつけてネットワークインフラに多大な負荷をかける攻撃。
- ネットワークDDoS攻撃とも呼ばれる
- SSL Floods
- 大量のSSL要求を出してWebサーバのキャパをオーバーさせる攻撃
DDos系よりも標的型攻撃寄り
- HTTP Flood
- 大量のHTTPリクエストを出してWebサーバのキャパをオーバーさせる攻撃
- botnet
- ボットネット、ゾンビクラスタとも言われる
- 「ゾンビPC」のグループで一斉に通信を発生させてサーバのキャパをオーバーさせる攻撃
- 「ゾンビPC」とは、悪意のある開発者などから操作できるようになったまま放置されているPCのこと。こういったものは被害者が気づかなかったりして、インターネット上に数多く存在してしまっている。ゾンビPCのグループはボットネットと言われている。
- SQL インジェクション
- 脆弱性を利用して、本来実行されたくないSQLを実行することにより不正にデータ取得されたりしてしまう攻撃
- OS コマンド・インジェクション
- 脆弱性を利用して、WEBサーバ側で意図しないOSコマンドを実行されて重要な情報を盗まれたり、攻撃の踏み台にされたりしてしまう攻撃
- パス名パラメータの未チェック/ディレクトリ・トラバーサル
- 脆弱性を利用して、本来見られなくないファイルを参照されたりしてしまう攻撃
- 例えば、WEBサイト上からリンクはないのだけど、直接
https://.../secret.txt
(見られなくないファイル)とパスを入れたらsecret.txtが取得されてしまったりするとか。
- クロスサイト・スクリプティング
- Webサイトに埋め込まれたスクリプトをクライアント側で実行する仕組みを利用している場合に、脆弱性を付いてそのスクリプトを任意のものに差し替えて、意図しないスクリプトの実行をさせる攻撃
- CSRF(クロスサイト・リクエスト・フォージェリ)
- 認証されたユーザしかアクセスできないWebサイトに対して、脆弱性を利用して、ユーザを介して間接的にWebサイトへ不正なリクエストを送らせる攻撃
- HTTP ヘッダ・インジェクション
- 脆弱性を突いて、本来ユーザがフォームやURLで入力したリクエストパラメータやクエリパラメータを改ざんすることで、任意のHTTPレスポンスを生成させたりする攻撃
- フィッシングサイトにリダイレクトさせたりできてしまう
- メールヘッダ・インジェクション
- メール送信WEBアプリなどの脆弱性を突いて、メールヘッダを細工して意図しない動作をさせる攻撃。これにより、本来の宛先ではなく、攻撃者が指定した宛先にメールを送ってしまうといったことが発生する。
標的型攻撃寄り
- クリックジャッキング
- 利用者を騙すためのボタンやiframe等を使って、サイト運営者側が意図するブラウザの操作を行わせる攻撃
- 例えば次のような操作があげられます。
- 掲示板へ書き込みをさせる
- 広告ページのクリックをさせる
- SNSの「いいね」系ボタンのクリックをさせる
- セッションハイジャック
- 利用者の識別にセッションIDを利用している場合に、脆弱性を利用して本人以外がセッションIDを何らかの方法で取得して本人になりすまし、勝手に意図しない操作をされてしまう攻撃
- スピアフィッシング
- 不特定多数ではなく、特定の相手に対して仕掛ける攻撃
- 特定の相手に仕掛ける性質上、一般的なアンチウイルスソフトやIDS・IPDなどでは検知できない可能性が高い
- 例えば次のような操作が挙げられます
- 情報を得たい会社の社員スケジュールを見たり、盗聴したりして人間関係や関わり合いを調査する。あるいは公開されているSNSより友人関係を調査する。
- マルウェア入りのメールを用意し、クリックしたら攻撃の踏み台になるような処理を仕込む
- その後知人や同僚を装いりマルウェア入りのメールを送付し、情報を返信するようメールで依頼する。
- メールを開いたことをきっかけに直接的・間接的に攻撃を開始し、必要な情報を取得する。
どういったAWSサービスが利用できそうか
個人的には、次のAWSサービスが利用できると考えています。
対DDos系寄り
AWS Shield系はサービス概要のページに書いてあるとおり、まさにDDoSに対する保護に役立ちそうです。
また、ELBやCloudFrontによってそもそも負荷をコントロールすることも有効だと考えられます。
- DNS Amplification (Reflection)
- Slowloris
- Layer 3 and Layer 4 DDoS Attacks
- SSL Floods
↓
- AWS Shield Standard
- AWS Shield Advanced
- Elastic Load Balancing
- Amazon CloudFront
対:DDos系よりも標的型攻撃寄り
標的型攻撃寄りだが、ある程度HTTPリクエストのパターン化ができそうであれば、AWS WAFによって保護ができるのではないでしょうか。
- HTTP Flood
- botnet
- SQL インジェクション
- OS コマンド・インジェクション
- パス名パラメータの未チェック/ディレクトリ・トラバーサル
- クロスサイト・スクリプティング
- CSRF(クロスサイト・リクエスト・フォージェリ)
- HTTP ヘッダ・インジェクション
- メールヘッダ・インジェクション
↓
- AWS WAF
対:標的型攻撃寄り
これはシステマティックな対応がかなり難しい部分ではないでしょうか。
ただ、 IDSやIPSを導入したり、そもそもすべての通信をなるべくHTTPS化して通信を横取りされないようにしたり、されても解読しにくくするとか、Amazon Inspectorで脆弱性がありそうな部分を検査して対応したり、Amazon MacieでS3バケットやAWS CloudTrailのログを監視したりなど、できうる 穴を防ぐ ことが重要かと思いました。
- クリックジャッキング
- セッションハイジャック
- スピアフィッシング
↓
- Amazon Certificate Manager
- Amazon Inspector
- AWS CloudTrail
- Amazon Macie
- Amazon GuardDuty
- Amazon EC2(IDS/IPS等の導入)
参考
- AWS WAF - AWS WAF、AWS Firewall Manager、および AWS Shield Advanced https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/waf-chapter.html
- 【AWS Black Belt Online Seminar】AWS WAF アップデート - YouTube https://www.youtube.com/watch?v=4KbCJAjiA3A
- 安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構 https://www.ipa.go.jp/security/vuln/websecurity.html
- DDoS攻撃用語集 https://products.nvc.co.jp/imperva/blog/glossary-ddos.html
- 安全なウェブサイトの作り方 - 1.8 メールヘッダ・インジェクション:IPA 独立行政法人 情報処理推進機構 https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_8.html
- クリックジャッキングとは? 攻撃の仕組みと対策:株式会社 日立ソリューションズ・クリエイト https://www.hitachi-solutions-create.co.jp/column/security/click-jacking.html#:~:text=クリックジャッキングとは、Webサイト上に隠蔽,よう誘導させる手法です。&text=クリックジャッキングはWeb,に仕掛けられています。
- スピアフィッシングとは(Spear phishing) | サイバー攻撃大辞典 https://securitychecklist.net/security/cyber-attack/Spear-phishing.html
Discussion