COLUMN

SSRF攻撃とは?~EC2のIMDSv2のデフォルト化について解説してみた

みなさん、こんにちは。

今回はSSRF攻撃について解説しつつ、EC2のIMDSv2のデフォルト化について解説してみたのでセキュリティに興味のある方はぜひお読みいただければと思います。

1. SSRF攻撃について

Server Side Request Forgery(SSRF)攻撃は公開サーバーを経由して外部から直接アクセスできない内部サーバーにリクエストを偽造し、公開されていないサーバーにアクセスする攻撃手法です。

例えばAmazon Web Service(AWS)が提供しているEC2インスタンスのInstance Metadata Service(IMDS)に対して攻撃が行われると、インスタンスの構成情報だけでなく認証情報を盗まれてしまう恐れがあります。認証情報を悪用されることで機密データが格納されているサーバーから情報を抜き取られることは想像に難くありません。

SSRF攻撃が2019年7月、米金融大手Capital Oneで不正アクセスにより1億人を超える個人情報が漏えいした事件により話題になりました。

Capital OneのサイトはAWSに設定されており、Capital Oneが独自に構築したWAF(ModSecurity)の設定不備を突かれて攻撃を許したことが原因とされています。

今回の事件では大まかに以下のステップでAWSのS3に保存されていた情報が漏えいしました。

①攻撃者はCapital Oneが独自に構築したWAFへアクセス

②攻撃者はWAF経由でEC2のIMDSにアクセスし、WAFは攻撃者に代わってEC2のIMDSからIAM Roleの認証情報を取得し攻撃者へ応答

③攻撃者は取得したIAM Roleを使用してS3バケットへアクセス

④Syncコマンドを実行しS3バケットから機密データを取得

Capital Oneの情報漏えい事件から学べることは、EC2のIMDSなどから認証情報を盗まれないよう設定内容に不備がないか定期的にチェックすることが大切です。

またAWSで環境構築されている場合はAmazon GuardDuty(脅威検知サービス)の有効化や、後述するIMDSv1からIMDSv2へ切り替えの検討など対策を講じてセキュアな環境にしていきましょう。

クラウド初心者でも読めばわかる!AWS、Azure移行のためのセキュリティ対策を徹底解説!~セキュリティ面の不安をなくして、安心したクラウド導入へ~ 資料ダウンロードはこちら!

2. EC2のIMDSとは

ここで改めてIMDSについて触れていきます。IMDSはInstance Metadata Serviceの略で、EC2インスタンスに関するメタデータを取得するためのサービスです。インスタンスメタデータは実行中のEC2インスタンスを設定または管理するために使用されています。IMDSを利用することでインスタンス ID、ホスト名、プライベートIPアドレス、そしてEC2インスタンスに関連付けられたIAMロールがある場合はそのロールに関連付けられた一時的な認証情報などを取得することができます。

IMDSにはIMDSv1とIMDSv2があります。両者の主な違いとしては、インスタンスメタデータの取得方法にあります。

IMDSv1の場合、実行中のEC2インスタンスからcURLなどのツールでリンクローカルアドレス(http://169.254.169.254)にHTTPリクエストを送ることで誰でもインスタンスメタデータを取得できます。

例えば「http://169.254.169.254/latest/meta-data/」の後に「ami-id」を付けてcurl コマンドを実行するとEC2インスタンスのAMI IDを取得できます。

IMDSが利用できること自体はとても便利ですがセキュリティの脆弱性を突かれたSSRF等の攻撃を受けると、簡単に情報が抜かれ悪用されてしまうことが想像できたと思います。

IMDSv1の問題点を改善したIMDSv2について次の章で紹介していきます。

クラウド初心者でも読めばわかる!AWS、Azure移行のためのセキュリティ対策を徹底解説!~セキュリティ面の不安をなくして、安心したクラウド導入へ~ 資料ダウンロードはこちら!

3. IMDSv2とは何か

IMDSv2とはIMDSv1の問題点を改善した新しいバージョンです。

IMDSv2では、IMDSv1のようにリンクローカルアドレスへ単純なHTTPリクエストを送るだけではEC2インスタンスのメタデータを取得できないようになっています。まずはIMDSv2を有効化しているEC2インスタンスで、IMDSのIPv4アドレスを使用した例をご覧ください。

はじめにPUTリクエストで時限付きのセッショントークンを取得し、セッショントークンをTOKENという環境変数に格納しています。次に格納した環境変数をヘッダに入れてリクエストすることでようやくIMDSを利用できるようになります。

セッションは最大6時間までで、IMDSv2ではセキュリティを高めるためセッショントークンはセッションを開始したEC2インスタンスからのみ直接利用できる使用となっています。

IMDSv2を利用することで以下のような環境で多層防御が強化されます。

  • オープンなWebサイトアプリケーションファイアウォールからの保護
  • オープンリバースプロキシからの保護
  • SSRF脆弱性からの保護
  • オープンレイヤー3ファイアウォールとNATからの保護

セキュリティ対策の一環としてIMDSv2が有用であることが分かりました。次の章ではIMDSv2を有効化したEC2インスタンスを構築する方法についてご紹介します。

クラウド初心者でも読めばわかる!AWS、Azure移行のためのセキュリティ対策を徹底解説!~セキュリティ面の不安をなくして、安心したクラウド導入へ~ 資料ダウンロードはこちら!

4. クイックスタートでIMDSv2を設定してみた

4-1. Amazon Linux 2

AWSではEC2インスタンスを構築する際にクイックスタートがデフォルトで選択されています。クイックスタートはその名の通り必要なオペレーディングシステム(OS)を選択し、既存のキーペアを指定または新規でキーペアを作成するだけでEC2インスタンスを構築することができます。

さっそくクイックスタートを利用してIMDSv2を設定していきましょう。

はじめに適切な権限が付与されているIAMユーザーでAWSにログインし、EC2のコンソール画面を開きます。EC2ダッシュボードの画面が開かれていると思いますので、以下の図のように「インスタンスを起動」を押下します。

EC2インスタンスを起動するために必要なパラメータを設定する起動ウィザードに遷移し、アプリケーションおよびOSイメージ(Amazonマシンイメージ)を見るとすでにクイックスタートが選択されていることが確認できます。

続いてIMDSがデフォルトでどのバージョンを選択されているか確認していきます。

執筆時点ではAMIがデフォルトでAmazon Linux 2023が選択されているので、Amazon Linux 2に変更します。

続いて下の方へスクロールして「高度な詳細」のトグルを開くと、以下の図のようにメタデータバージョンのパラメータが確認できます。デフォルトでは「V2のみ(トークンは必須)」が選択されているので、すぐに検証用の仮想サーバーを用意したい場合にクイックスタートでIMDSv2が選択されたEC2インスタンスを素早く構築することができるので安心です。

それではIMDSv2が選択された状態でEC2インスタンスを起動し、IMDSv2のみが利用できるのか確認していきます。

まずはEC2のコンソール画面から見ていきます。

起動したEC2インスタンスの概要を確認すると赤枠のIMDSv2の箇所が「Required」になっており、IMDSv2のみ利用できる状態になっています。

IMDSv1およびIMDSv2の両方を利用できる状態でEC2インスタンスを起動すると、IMDSv2が「Optional」になっておりどちらのバージョンも使えることが確認できます。

次にEC2インスタンス内からIMDSv1およびIMDSv2が利用できるか確認します。

EC2インスタンスにSSH接続しIMDSv1のインスタンスメタデータを取得しようとした結果が以下の図です。

HTTPリクエストではインスタンスメタデータを取得できないことが分かります。つまりIMDSv1を利用できないということです。続いてIMDSv2のインスタンスメタデータを取得しようとした結果が以下の図です。

IMDSv2のインスタンスメタデータを取得できています。クイックスタートではAmazon Linux 2を選択してもIMDSv2のみの利用がデフォルトで設定されていることが確認できました。

クラウド初心者でも読めばわかる!AWS、Azure移行のためのセキュリティ対策を徹底解説!~セキュリティ面の不安をなくして、安心したクラウド導入へ~ 資料ダウンロードはこちら!

4-2. Amazon Linux 2023

先ほどのAmazon Linux 2と同様にAmazon Linux 2023も確認していきます。EC2インスタンスの起動ウィザードまでの手順はAmazon Linux 2と同じです。またクイックスタートではデフォルトでAmazon Linux 2023が選択されているのでOSの設定はそのままにし、「高度な詳細」のトグルを開いてメタデータバージョンのパラメータを確認します。以下の図のようにAmazon Linux 2と同様にデフォルトで「V2のみ(トークンは必須)」が選択されていることが確認できました。

IMDSv2が選択された状態でEC2インスタンスを起動します。IMDSv2の設定状況ですがEC2のコンソール画面からの確認はAmazon Linux 2と同様なので省略し、さっそくEC2インスタンス内からIMDSv1およびIMDSv2が利用できるか確認します。

EC2インスタンスにSSH接続しIMDSv1のインスタンスメタデータを取得するためcurlコマンドを実行した結果が以下の図です。

Amazon Linux 2と同様にAmazon Linux 2023でもIMDSv2のみ有効化している場合は、HTTPリクエストではインスタンスメタデータを取得できないことが分かります。続いてIMDSv2のインスタンスメタデータを取得しようとした結果が以下の図です。

想定通りIMDSv2からインスタンスメタデータを取得することができました。

参考:

クラウド初心者でも読めばわかる!AWS、Azure移行のためのセキュリティ対策を徹底解説!~セキュリティ面の不安をなくして、安心したクラウド導入へ~ 資料ダウンロードはこちら!

5. まとめ

過去の事件を例にIMDSの役割やクイックスタートによるIMDSv2の設定および確認方法について紹介いたしました。

セキュリティを高めるためIMDSv2を有効化することを推奨いたしますが、サードパーティの製品によってはIMDSv2に対応していないケースもあります。IMDSv2を利用できるかどうか提供元のメーカーに確認することをお勧めいたします。

またSSRF攻撃の章で少し触れましたがIMDSv2を利用するだけでなく、その他のセキュリティも正しく設定されているか確認する必要があります。NTT東日本ではAWS、Azure移行のためのセキュリティ対策を徹底解説した資料をダウンロードできますので、資料を参考にしていただきセキュアな環境を目指して徹底的に対策していきましょう。

クラウド初心者でも読めばわかる!AWS、Azure移行のためのセキュリティ対策を徹底解説!~セキュリティ面の不安をなくして、安心したクラウド導入へ~ 資料ダウンロードはこちら!

ページ上部へ戻る

無料ダウンロード

自社のクラウド導入に必要な知識、ポイントを
このに総まとめ!

あなたはクラウド化の
何の情報を知りたいですか?

  • そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
  • 【AWS・Azure・Google Cloud】
    どれが自社に最もマッチするの?
  • 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
  • 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?

初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。

NTT東日本では
そんなあなたにクラウド導入に必要な情報を

1冊の冊子にまとめました!

クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・

  • システムインフラの維持にかかるトータルコストがあまり変わらない。。
  • 情シス担当者の負担が減らない。。
  • セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
  • そもそも”クラウド化”とは?
    その本質的なメリット・デメリット
  • 自社にとって
    最適なクラウド環境構築のポイント
  • コストを抑えるため
    具体的なコツ
  • 既存環境からスムーズにクラウド化
    実現するためのロードマップ

など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。

クラウドのわからない・
面倒でお困りのあなたへ

クラウドのご相談できます!
無料オンライン相談窓口

NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!

NTT東日本が選ばれる5つの理由

  • クラウド導入を
    0からワンストップでサポート可能!
  • 全体最適におけるコスト効率・業務効率の改善
    中立的にご提案
  • クラウド環境に問題がないか、
    第3者目線でチェック
    してもらいたい
  • 安心の24時間・365日の対応・保守
  • NTT東日本が保有する豊富なサービスの組み合わせで
    ”課題解決”と”コスト軽減”を両立

特に以下に当てはまる方はお気軽に
ご相談ください。

  • さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
  • オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
  • オンプレミスとクラウド移行した際のコスト比較を行いたい
  • AWSとAzure、どちらのクラウドが自社に適切かわからない
  • クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
  • クラウド利用中、ネットワークの速度が遅くて業務に支障がでている

クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。