VPNとアクセスポイントと安全性

## はじめに
アドベントカレンダー最終日となりました。入社一年目の貴志です。何を書こうか迷ったのですが、趣味であさっているセキュリティ記事の１つをざっくり紹介していこうと思います。紹介するのは[Black Hat USA 2020](https://www.blackhat.com/us-20/)でOrange Cyberdefense社が発表した調査レポート ([Virtually Private Networks](https://www.blackhat.com/us-20/briefings/schedule/#virtually-private-networks-20729))です。

今年はコロナ禍ということもありリモートワークとVPNは大活躍だったと思いますが、一方でVPN関連のインシデントも多く報告されています。紹介するレポートからVPNを使っていれば絶対安全というわけではないという１例を知っていただければと思います。

## VPNとは
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927106/094a80cf-5e5e-894b-78f1-359c5d15242f.png)
ざっくりいうとVPNとはローカルネットワーク間でトンネリング（暗号化）することによって誰でも利用できるインターネット上のトラフィックを保護できる機能です。個人のLANから社内LANへの通信を保護する目的で使われることが多く、またVPNと社内LANのFWを組み合わせて自宅からアクセスしていても社用PCが危険なサイトへのアクセスを防ぐこともできます。

## インシデント
2018年後半、某社の社員がホテルの公衆無線LANからVPNで社内LANに接続していました。このとき端末がインターネット上の不明なホストにSMB接続をしようとしたという警告を表示したことで問題が発覚しました。本来であればVPN経由で社内LANにSMB接続されるはずであり、もし悪意のあるサーバーにSMB接続していまえばハッシュ値など認証情報を窃取される危険性を孕む重大な問題です。

###調査

 * 社員の端末は普段社内の「HQ-PRINTER-1」というホストにSMB接続しており、インターネット上の不明なホスト名は「hq-printer-1.domain.com」であった。

 * 不明なホストにSMB接続しようとしたタイミングはスリープ状態から戻りVPN接続が確立するまでの数秒の間であった。

###原因
問題はVPN接続までの時間差とホテルの公衆無線LANの「DNS suffix」にありました。
社員の端末はスリープから復帰する際に直前にSMB接続していたプリンターにマッピングを行います。
VPN接続が確立していれば社内LANの外へ向かうSMB接続(ポート445)は拒絶され社内LAN内でホスト名が解決されるはずですが、スリープ復帰直後でVPN接続は確立していないのでDNS名前解決を行おうとします。
この時公衆無線LANの「DNS suffix」で自動的に「.domain.com」が補完されることとなり、VPN接続が確立する前にインターネット上の「hq-printer-1.domain.com」に接続を試みることとなりました。

####DNS suffix
DNS Suffixは不完全なホスト名が与えられた場合に設定したドメイン名を自動的に補足する機能。
ホテルの無線LANで設定されたDNS suffixのデフォルトドメイン名が「domain.com」であったので「hq-printer-1」と組み合わさり不明なホスト名「hq-printer-1.domain.com」が生まれた。

##インシデントから
このインシデントではホテル側の無線LANの設定ミスが原因でしたが、もし悪意のある無線LANであった場合攻撃者のサーバーに誘導される可能性もあります。そこでVPNがどの程度悪用された無線LANの様々なリスクに対抗できるか調査しました。
特に無線LANへのアクセスを制御する「Captive Portal」機能の問題を検討します。

####Captive Portal
無線LANのユーザーがネットワークに接続しようとした際に認証ページにリダイレクトさせネットワークにアクセスできないようにする機能。その間VPNは接続を確立できない。

###テスト
４つのVPN製品に対して悪用された無線LANにおいて「Captive Portal」のように振舞う場合とVPN接続が確立している場合で以下6つの脅威に対処できるか検証した。

####テスト項目
 * ネットワーク情報の漏洩
 * DNS中間者攻撃とDNSスプーフィング
 * ウェブサイトのなりすましによる個人情報窃取
 * ResponderでWindowsハッシュを窃取
 * ブラウザをトンネリングで利用した場合のリスク
 * ホストとの接続にIPv6を利用した場合のリスク

###VPNの設定がデフォルトの場合
 * Captured - VPNがCaptive Portalによって接続が確立できない状態
 * Online - VPNの接続が確立した状態
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927106/268af308-2411-a4c2-bd2b-d92f5df085de.png)
ほとんどのVPN製品で設定がデフォルトの状態では悪用された無線LANの脅威にほとんど対処されていないというような結果でした。また１部のVPN製品ではデフォルトでスプリットトンネリングを利用できるようになっていて、この状態のVPNはVPN接続が確立されていても危険な状態でした。

####スプリットトンネリング
スプリットトンネリングとは一般的なホストにはVPNトンネリングを利用せずにアクセスし、特定のホストへのアクセスのみをVPNトンネリングする機能。

###VPNをロックダウンモードで使用
####ロックダウンモード
ロックダウンモードは常時VPN接続を試み、接続が確立されると強制VPNトンネリングを行う機能。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927106/e97646e4-a19c-b2e9-a069-1227fdda74c7.png)
ロックダウンモードではVPN接続が確立した状態で脅威に対するリスクが軽減しました。しかし「Captive Portal」のようなVPN接続が確立されていない状態では保護できない脅威もあるというような結果でした。

###まとめ
 * VPNが作成するトンネルは脅威から守るために一定の効果がある。
 * デフォルトのVPNの設定では悪意のある無線LANに対してはほとんど対処されない。
 * 公衆無線LANのCaptive Portalは１例に過ぎず、汚染された自家ルーターでも同様の脅威に晒される可能性がある。
 * テストで用いたVPN機器は全て悪意のある無線LANやCaptive Potalに対処する機能を提供していたがベンダー間で有効性は異なった。

##終わりに
セキュリティのリスクはVPNの設定、バージョン、端末や社内NWの設計などによって全く異なると思います。日本で起こったインシデントでもVPNのバージョンがきっかけのものがありました。
VPN機器は日々アップデートされて様々なリスクに対応できるようになっています。しかし悪用された無線LANの脅威を完全に防ぐのはやはり難しいかもしれません。VPNを利用する側も公衆無線LANを使う際にはVPNの接続が確立されているかなど気をつけて利用するしかないですね。

####引用
https://i.blackhat.com/USA-20/Thursday/us-20-vanderWalt-Virtually-Private-Networks-wp.pdf