2021/08/16 AM 02:50
SoftEther VPN Project / ソフトイーサ株式会社
登 大遊
はじめに
本ドキュメントは、2021/08/16 公開の 「SoftEther VPN」/「PacketiX VPN」の Ver 4.37 Build 9758 Beta に関連する情報を提供します。
本ドキュメントは、「SoftEther VPN」/「PacketiX VPN」をインストールし管理されている VPN サーバーの管理者様で、IPsec 機能 (L2TP/IPsec, EtherIP/IPsec または L2TPv3/IPsec) を有効にされ、かつ、以下の条件に合致する方向けのものです。
- 「SoftEther VPN」/「PacketiX VPN」の「L2TP/IPsec」等の IPsec VPN 関係機能を有効化して利用されており、かつ、変更が推奨されている事前共有鍵 (Pre-shared key) を「vpn」(3 文字のデフォルト値、非推奨) のまま変更されていない。
および / または ※1: - 外国からのものと思われる日本の広範囲のグローバル IP アドレスの IPsec VPN 装置宛に無差別に侵入試行パケットが送付される現象により、攻撃者によって「SoftEther VPN」および「PacketiX VPN」との間で IPsec レイヤのネゴシエーションが確立されるか確立途中で、認証前の状態であっても CPU、メモリおよびネットワーク帯域が無駄に消費され、また、その結果、正規の L2TP/IPsec 等のユーザーの通信が影響を受ける現象を確認されている。
※ 1: 2021/8/16 AM 04:06 追記: ESP パケットの SPI (Security Parameter Index) をスキャンしていると思われる攻撃パケットが、外国から寄せられているようです。このようなパケットを大量に受けた場合、IPsec 事前共有鍵 (Pre-shared key) の変更の有無に関わらず、以前の SoftEther VPN / PacketiX VPN のビルドでは、CPU、メモリおよびネットワーク帯域を浪費する影響が生じる可能性があります。このような現象が生じている場合は、IPsec 事前共有鍵 (Pre-shared key) の変更をされている場合でも、Build 9758 の適用をお試しください。
概要
- 2021/08/15 08:40 頃から、外国からのものと思われるサイバー攻撃により、日本の広範囲のグローバル IP アドレスの IPsec VPN 装置宛に、侵入試行パケットが送付されていると思われる現象が確認されています。
- 上記のパケットを送付してくる攻撃者の意図は現時点で不明ですが、この攻撃は、「SoftEther VPN」および「PacketiX VPN」を狙ったものではないと考えられます。また、通常のユーザー認証等が強固に設定されている「SoftEther VPN」および「PacketiX VPN」への侵入につながるものではありません。(「SoftEther VPN」および「PacketiX VPN」では、後述のとおり、IPsec 事前共有鍵が一致するのみでは、有意な通信はできません。)
- しかし、SoftEther VPN および PacketiX VPN の L2TP/IPsec 機能等を有効にし、かつ、変更が推奨されている事前共有鍵 (Pre-shared key) を「vpn」(3 文字のデフォルト値) のまま変更されていない場合は、この攻撃パケットを用いた IPsec レイヤの処理が一旦確立され、攻撃者はユーザー認証は通過できないものの、IPsec レイヤのトンネルの制御パケットが原因で、SoftEther VPN および PacketiX VPN のサーバーの CPU、メモリおよびネットワーク帯域が無駄に消費され、その結果、正規の L2TP/IPsec 等のユーザーの通信速度が低下したり、VPN 接続に失敗したりする等の影響を受ける可能性があると考えられます。
- このような日本の広範囲のグローバル IP アドレスの IPsec VPN 装置を狙った攻撃は、今後も発生する可能性があります。これにより、無意味な性能低下が継続して発生する可能性があります。
- そこで、このような攻撃により、SoftEther VPN および PacketiX VPN で上記のような性能低下が発生している場合、または事前にそのような事象を予防されたい場合は、以下の対処方法を用いてください。
対処方法
SoftEther VPN および PacketiX VPN に対して、攻撃者によって IPsec レイヤのネゴシエーションが確立され、認証前の状態であっても CPU、メモリおよびネットワーク帯域が無駄に消費され、その結果、正規の L2TP/IPsec 等のユーザーの通信が影響を受ける現象が発生している場合は、以下の対策を実施されることを推奨します。
- 従来より、IPsec 機能の利用前の変更が推奨されている IPsec 事前共有鍵 (Pre-shared key) を、「vpn」(3 文字のデフォルト値) から、8 文字以上のある程度複雑な文字列に変更してください。なお、事前共有鍵をデフォルト値「vpn」のまま使用することは好ましくないことから、本現象の有無にかかわらず、適時に変更されることをお勧めします。
- 2021/08/15 にリリースした新しいビルド Ver 4.37 Build 9758 にアップデートしてください。ビルド Ver 4.37 Build 9758 では、IPsec Informational Exchange パケットによる切断済みトンネル識別番号の通知の頻度が制限され、攻撃者との間の無意味なパケットの発生が抑制されます。詳しくは、「詳細」をご参照ください。
事象を防ぐためには、上記 1. および 2. の両方の対策を行なうことをお勧めします。
詳細
ソフトイーサ株式会社は、2021 年 8 月 15 日 (日) 午前 8 時 40 分頃から、外国のクラウドサービスのいくつかの IP アドレスを発信源とし、日本の広範囲のグローバル IP アドレスに対し、正確な意図は不明ですが、恐らく無差別に IPsec VPN によるネットワーク侵入を試みていると考えられるブルートフォース型のサイバー攻撃を観測しています。正確には未確認ですが、恐らく、IPsec VPN の事前共有鍵 (Pre-shared key) に推測可能な単語が使用されている場合に、辞書攻撃により事前共有鍵を特定し、IPsec VPN トンネルを確立して様々な企業ネットワークへの侵入を試みる攻撃の一種であると考えられます。
現在のところ、上記の IPsec VPN を狙った無差別なサイバー攻撃は、SoftEther VPN および PacketiX VPN を狙ったものではないとみられます。この攻撃は、一般的な IPsec 機器 (L2TP 等のカプセル化プロトコルを用いない通信を用いる IPsec 機器) を狙ったものであるとみられます。この攻撃により、通常、SoftEther VPN および PacketiX VPN が侵入されるおそれはないと考えます。そもそも、SoftEther VPN および PacketiX VPN は、一般的なレイヤ 3 IPsec VPN ルータと異なり、純粋な IPsec パケットを用いた通信を行ないません。SoftEther VPN および PacketiX VPN の L2TP/IPsec を用いたリモートアクセス VPN 機能においては、IPsec レイヤ上で別途 L2TP/IPsec のレイヤでユーザー認証等を行なった後に VPN 通信を行ないます。また、特殊な用途 (EtherIP/IPsec 機能または L2TPv3/IPsec 機能を用いた VPN ルータとの相互接続機能) の場合においても、予め VPN サーバーに手動設定された認証パラメータに基づく ISAKMP Phase 1 ID 値による認証を必要としています。
しかしながら、SoftEther VPN および PacketiX VPN の L2TP/IPsec 機能、EtherIP/IPsec 機能または L2TPv3/IPsec 機能を有効にしている場合で、かつ、変更が推奨されている事前共有鍵 (Pre-shared key) を「vpn」(3 文字のデフォルト値) のまま変更されていない環境においては、このような攻撃により、攻撃者のホストとの間で IPsec レイヤのトンネルが確立されます。その後、実際には L2TP 認証等が確立しないことから、侵入されることはなくとも、結果として、VPN サーバーとして利用しているホストの CPU、メモリおよびネットワーク帯域などのリソースが、無駄に消費される場合があります。特に、SoftEther VPN および PacketiX VPN は、攻撃者との間で確立された IPsec トンネル (認証前の無意味なトンネル) が一定時間無通信である場合は、IPsec トンネルを切断しますが、攻撃者はトンネルの切断通知の後も、元のトンネルの識別番号を用いて ESP と呼ばれるフレームを VPN サーバーに送付してきます。SoftEther VPN および PacketiX VPN は、すでに切断されたトンネルの識別番号宛のパケットが届いたときは、トンネルが切断されている旨の通知を送信元 IPsec クライアントに送付します。これは、IPsec Informational Exchange パケットと呼ばれます。送信元 IPsec クライアント (攻撃者の書いたプログラム) の実装上の挙動として、IPsec Informational Exchange パケットが届いたら、攻撃ホストは、再度新たな ESP フレームを VPN サーバーに再送するように見受けられるものがあります。この結果、攻撃者のプログラムと、攻撃者が全く意図していない SoftEther VPN および PacketiX VPN の VPN サーバーの IPsec モジュールとの間で、ピンポン現象が発生し、全く無意味な互いの CPU、メモリおよびネットワーク帯域が全く無駄に消費されることになります。攻撃者は無意味なコストをかけて攻撃を行なうこととなりますが、VPN サーバーの管理者の視点においては、攻撃者が IPsec パケットを連続して送付している間は、正規の L2TP/IPsec 等のユーザーによる VPN 通信の速度が低下したり、VPN 通信の確立に失敗したりする不利益を受けます。なお、上記は現時点における攻撃パケットの挙動に基づいて推測をしたものです。他の攻撃手法または意図の可能性としては、IPsec ESP パケットの SPI と呼ばれる値のスキャン攻撃、またはパケット量の増幅を意図したリフレクション攻撃 (DoS 攻撃) の一種である可能性もあります。
上記の IPsec Informational Exchange パケットによる不存在トンネル識別番号の通知は、SoftEther VPN および PacketiX VPN の不具合ではなく、本来、意図した挙動です。しかしながら、上記のようなピンポン現象が発生し、CPU、メモリおよびネットワーク帯域が消費されると、正規のユーザーへの影響が発生します。そこで、2021/08/15 にリリースした新しいビルド Ver 4.37 Build 9758 では、IPsec Informational Exchange パケットを送り返す処理にレート・リミットを実装しました。具体的には、ある特定の IPsec クライアントホストからの通信に対して、1 秒間に最大 20 回の IPsec Informational Exchange パケットの応答を行ない、それ以降は応答をしないように制限をしました。
この新ビルドでは、攻撃者による上記のような IPsec VPN セッションが確立された場合であっても、CPU、メモリおよびネットワーク帯域の無駄な消費は抑えられるようになりました。
なお、上記の対策にかかわらず、変更が推奨されている事前共有鍵 (Pre-shared key) を「vpn」(3 文字のデフォルト値) のまま変更されていない環境においては、事前共有鍵をデフォルト値「vpn」のまま使用することは好ましくないことから、本現象の有無にかかわらず、VPN サーバー設定ツールの案内メッセージのとおり、8 文字以上のある程度複雑な文字列に変更することを推奨します。
上記のような IPsec VPN を狙った攻撃手法、および「SoftEther VPN」/「PacketiX VPN」に対する影響やその回避策等につきまして、さらに詳しいことが分かりましたら、このページでお知らせをいたします。