この記事は、Threat Intelligence AnalystのBen Nahorneyによるブログ「Threats in encrypted traffic」(2019/9/30)の抄訳です。
通信内容が誰でも読み放題、そんな時代もありました。初期のオンライン通信は、秘匿化の配慮がほぼ皆無だったのです。つまり攻撃者にとって、ネットワークトラフィックの傍受など造作もないことだったのです。
ところが、パスワード認証やクレジットカード取引などのセンシティブデータが関わる場合、通信内容が漏れてしまっては問題になります。こうした背景があってトラフィックの暗号化が開発され、通信が保護される時代へと至ったのです。
現時点で、全世界の Web サイトの半数以上が HTTPS を使用しています。Cisco Cognitive Intelligence から得られたデータによれば、今や HTTP/HTTPS トラフィックの 82% が暗号化されています(Cognitive Intelligence は、シスコのネットワークトラフィック分析ソリューション「Stealthwatch」を陰で支えるクラウドベースの機械学習エンジンです)。
暗号化されたトラフィックの導入は、セキュリティとプライバシーの向上に貢献しています。暗号化によりトランザクションや通信で機密性を保持できるからです。ただし暗号化の普及により、悪意のあるトラフィックを検出することが困難になるという副作用もあります。暗号化されたトラフィックを逆手に利用し、その中に不正アクティビティを隠すことが容易になっているからです。
トラフィック暗号化の歴史
Web トラフィックのセキュリティとプライバシーに関する懸念により、1995 年に Netscape 社がセキュアソケットレイヤ(SSL)プロトコルを開発しました。SSL はいくつかのバージョンがリリースされた後、インターネット技術特別調査委員会(EITF)に引き継がれます。その際に名称が「Transport Layer Security(TLS)」 に変更されました。SSL は TSL や SSL の総称として使用されることがよくありますが、公式には SSL が旧称であり、TLS が正式名称です。
TLS プロトコルは既存のプロトコルと直接連動してトラフィックを暗号化します。そうした既存のプロトコルの代表格が HTTPS です。HTTPS は、SSL/TLS を介して送信される Hypertext Transfer Protocol (HTTP)です。HTTPS は TLS によって保護される最も一般的なプロトコルですが、SFTP や SMTPS といった他の一般的なプロトコルでも TLS が活用されています。TCP や UDP などの下位レベルのプロトコルでも TLS を使用できます。
暗号化が攻撃でも使われる
標的のシステムへ侵入するためなら、攻撃者はあらゆる労力を惜しみません。しかしその攻撃がネットワーク監視ツールによって不正なトラフィックとして検出されてしまうと、その苦労も水の泡となります。そのため多くの攻撃者はトラフィックを暗号化しています。
暗号化時代が訪れるまでは、一般的なネットワーク監視ツールでも攻撃に対応可能でした。しかし TLS により、暗号化されたトラフィックに脅威が潜むようになったのです。Cognitive Intelligence が収集したデータによると、Cisco Stealthwatch によって発見された脅威全体の 63% は、暗号化されたトラフィックの中で発見されました。
攻撃の中では、攻撃者が隠したいトラフィックが多く発生します。たとえばコマンドアンドコントロール(C2)サーバとの通信や、バックドア、収集したデータの外部送信などです。これらのトラフィックは実際にほぼ例外なく暗号化されています。
ボットネット
ボットネットとは、侵害を受けた多数のシステムで構成されるネットワークのことです。ボットネット内のシステム同士は一般に、クライアントサーバまたはピアツーピアを介して接続されます。侵害を受けたシステムへの命令の受け渡しには主に C2(コマンドアンドコントロール)システムが使われます。
感染数が多い Sality, Necurs, and Gamarue/Andromeda などのボットネットでは、C2 との通信がすべて暗号化されています。ボットネットによる不正操作の例としては、追加ペイロードのダウンロード、他のシステムへの拡散、分散型サービス妨害(DDoS)攻撃の実行、スパムの送信などが挙げられます。
RAT(リモートアクセス型トロイの木馬)
RAT の主な目的は、攻撃者がシステムをリモートで監視、制御できる状態にすることです。RAT がシステムへの侵入に成功すると、それ以降の操作については攻撃者からの指示を待ちます。RAT ではインターネットへの定期的または半定期的な接続が必要になります。不正操作を実行するために C2 インフラが使用されるケースも多くあります。
多くの RAT はコンピュータの管理制御の奪取を試みたり、パスワードやスクリーンショット、ブラウザ履歴などの情報を盗んだりします。盗まれた情報は攻撃者に送信されます。
最近の RAT の大半は、暗号化により送受信内容を隠しています。RAT の例としては、Orcus RAT や RevengeRat、Gh0st の亜種などがあります。
仮想通貨マイニングマルウェア
仮想通貨マイニングマルウェアは、マイニングを実行中のコンピュータとサーバとの間で TCP 接続を確立します。この接続により、コンピュータが定期的にサーバから作業指示を受け取り、処理してからサーバに送り返せるのです。仮想通貨という性質上、マイニングマルウェアにとってこうした接続は不可欠だと言えます。
接続時間の長さや、その重要性、発見される可能性の高さなどにより、マイニングマルウェアの多くは接続を暗号化します。
注意点ですが、仮想通貨マイニングでは、操作がユーザによる意図的なものか、攻撃者による不正なものかを問わず、通信がすべて暗号化されます。そこでの違いはユーザによる同意の有無です。詳しくは不正な仮想通貨マイニングに関する記事をご覧ください。
バンキング型トロイの木馬
バンキング型トロイの木馬が目的を果たすためには、侵害されたコンピュータ上で Web トラフィックを監視する必要があります。悪意のあるプロキシを介して Web トラフィックを傍受するタイプや、分析のため C2 サーバに Web トラフィックを送信するタイプまで存在します。
一部のバンキング型トロイの木馬は、活動内容を秘匿化するため C2 サーバとの送受信内容を暗号化します。たとえば、バンキング型トロイの木馬「IcedID」は盗んだデータを送信する際に SSL/TLS を使用します。「Vawtrak」と呼ばれる別のバンキング型トロイの木馬は、復号化と特定を困難にする特殊なエンコーディング形式により POST データトラフィックを秘匿化します。
ランサムウェア
ランサムウェアで最もよく知られている暗号化の用途は、人質に取るファイルに対してです。ただしランサムウェアはネットワーク通信でも暗号化を多用します。たとえば一部のランサムウェアファミリでは、復号キーを暗号化して配布します。
悪意のある暗号化トラフィックを検出する方法
暗号化された不正なトラフィックを検出するひとつの方法は、「トラフィック フィンガープリント」です。トラフィック フィンガープリントでは、ネットワークを通過する暗号化されたパケットを監視し、既知の不正パターン(フィンガープリント)がないか調べます。たとえば既知の C2(コマンドアンドコントロール)サーバへの接続には、固有のパターン(フィンガープリント)を示します。クリプトマイニングや既知のバンキング型トロイの木馬などのトラフィックでも同様です。
ただし、これにより暗号化された不正なトラフィックをすべて検出できるわけではありません。ランダムまたはダミーのパケットをトラフィックに挿入することで、パターンをカモフラージュできるからです。カモフラージュされた不正なトラフィックを検出するには、より複雑な不正接続を特定できる機械学習アルゴリズムなどの高度な検出技術が必要です。ただし機械学習アルゴリズムを導入しても回避される可能性があります。そのため階層型アプローチを実装し、さまざまな手口に対応できる態勢を整えておくことをお勧めします。
さらに、以下の対策もご検討ください。
- 暗号化されたトラフィックの分析機能を備えた Stealthwatch ネットワークトラフィックを収集し、機械学習と動作モデリングを使用することで、暗号化されたトラフィックを復号化せずに不正アクティビティを検出します。
- Cisco Umbrella に含まれている DNS 保護技術は、悪意のあるドメインへの接続を防止し、暗号化された接続を確立する前に脅威を阻止できます。
- AMP for Endpoints などの効果的なエンドポイント保護ソリューションも、脅威を未然に阻止するための強力な手段です。
その他の脅威については、「今月の脅威」ブログ シリーズをご覧ください。