2018-02-06 セキュリティニュースまとめ: X.509 デジタル証明書を秘密の通信路として悪用する方法が確認される
X.509 デジタル証明書を秘密の通信路として悪用する方法が確認される
一次ソース: Fidelis Cybersecurity
同社リサーチャーによる論文
Covert channel by abusing x509 extensions
本件に関する PoC (Github)
関連ニュース記事
参考情報
概要
- すでに侵害を受けた組織内から外部の C2 サーバーへ秘密の通信を行う方法として、X.509 デジタル証明書の拡張領域を悪用する方法が確認された
- TLS ハンドシェイク中、X.509 デジタル証明書の拡張領域を使って C2 サーバー宛のデータを送信することにより実際には TLS セッションを張らなくても C2 サーバーとデータを交換することができる
- 証明書に含まれる値を検査しないセキュリティ対策はバイパスされてしまう可能性がある
- Mimikatz を使った PoC
- この方法を利用する攻撃例の検知用 YARA ルールサンプルと YARA ルールを元にした Suricata の IDS Alert ルールサンプル
YARA ルールのサンプル
- 拡張領域の subjectKeyIdentifier (主体者鍵識別子) を利用した攻撃で 127 バイトより長い値をもつ主体者鍵識別子を検出する
rule abnormal_subjectkeyid { meta: author = "Jason Reaves" strings: $shortlens = /\x06\x03\x55\x1d\x0e\x04.\x04[^\x08\x10\x14\x20\x30\x40]/ $longlens = {06 03 55 1d 0e 04 8?} condition: any of them }
Suricata IDS アラートのルールサンプル
- 拡張領域の subjectKeyIdentifier (主体者鍵識別子) を利用した攻撃で 127 バイトより長い値をもつ主体者鍵識別子を検出する YARA ルールを Suricata のルールに変換
alert tcp any any -> any any ( msg:"Abnormal x509v3 SubjectKeyIdentifier extension"; dsize:>768; content: "|16 03|"; depth:2; content:"|06 03 55 1d 0e 04|"; offset:0x150; pcre:"/\x06\x03\x55\x1d\x0e\x04.\x04[^\x08\x10\x14\x20\x30\x40]/"; classtype:misc-attack; sid:1000001; rev:1;)
まとめ
- C2 サーバーへの秘密の通信路として X.509 の拡張領域を利用すると、ネットワーク境界に配備したセキュリティ機能が検出できない場合がある
- 標準から逸脱したデジタル証明書を検出することで、こうした秘密の通信路を検出しうる