SynPicture

SYNパケットの画像化で悪性ホストをリアルタイムに判定「SynPicture」

本研究では、ネットワークを流れるパケットを画像化し、その画像に対して画像処理のための深層学習アルゴリズムを適用することで悪性ホストを検知する手法を提案しました。さらに、本提案手法を実践的なシステムとして実ネットワークに適用し、運用するための研究開発を行なっています。

現在のインターネットにおける通信の多くは、Transmission Control Protocol (TCP) というプロトコルを利用します。TCPは、通信を行うホスト間のコネクションの制御やパケットの再送などを担うプロトコルであり、様々なアプリケーションがTCPを用いて通信しています。これはスキャンなどを行う、マルウェアなどに感染した悪性のホストも同様で、悪性ホストは攻撃の最初の段階のひとつとして、TCPによる接続をインターネット上のさまざまなホストに対して試みます。本研究ではこの、悪性ホストもTCPを用いるという点に着目し、悪性ホストと良性のホストでTCP通信の行い方に差があるのではないか、という仮説を立てました。この仮説に基づいて、TCPで通信を行う際に必ず送信するTCP SYNパケットを集めるて分析することで、そのSYNパケットを送信しているホストが良性か悪性かを判断する手法を開発しました。

提案手法の概要は次の通りです。まずネットワーク中からSYNパケットを採取し、送信元IPアドレスごとに保存します。続いて送信元IPアドレスごとに、一定数のSYNパケットの各フィールドの値をつなげて正規化し、二次元の画像(SYN画像)を生成します。

SynPicture-1

この画像には、あるIPアドレスを持つホストがどのようなSYNパケットをどのように送信したかの特徴が現れます。マルウェアなどに感染していない良性のホストが送信したSYNパケットと、ダークネットで観測された悪性ホストが送信したと考えられるSYNパケットの両方を大量に用意し、SYN画像に変換し、Convolutional Neural Network(CNN)を用いて学習することで、未知のホストが送信した一連のSYNパケットからそのホストが良性であるか悪性であるかを判定することができるようになります。

SynPicture-2-flow

本手法は、システムとして運用する上で3つの利点がああります。

  1. データ収集の容易さ: 本手法で解析の対象とするのはTCPのSYNパケットのみです。ひとつのSYNパケットのサイズはTCPヘッダ全体で20バイト、ホストを識別するためのIPアドレスを加えても、ひとつひとつのデータサイズは極めて小さく、実際に取得すべきデータ量を小さく抑えることができます。そのためデータの保存にそれほど大規模なストレージを必要としません。
  2. ネットワークを流れるユーザデータそのものは見ない: 本手法は、パケットのうち、IPヘッダとTCPヘッダ部のみを解析に利用します。ユーザデータを含むペイロードまで解析する必要がありません。
  3. アプリケーション非依存: 本手法はホストのSYNパケットの送信の仕方にのみ着目しています。そのためどのようなマルウェアやアプリケーションがSYNパケットを送信しているかには関知しません。

結果的に、今後未知のマルウェアが出現した場合、そのマルウェアのSYNパケット送信の振る舞いを学習することによって、同じ手法のまま新しい悪性ホストの検知できる可能性があります。これらの利点を踏まえて、現在は本手法を実ネットワークで運用するためのシステム開発を行なっています

関連業績リスト

  • Ryo Nakamura, Yuji Sekiya, Daisuke Miyamoto, Kazuya Okada and Tomohiro Ishihara, "Malicious Host Detection by Imaging SYN Packets and A Neural Network", IEEE International Symposium on Networks, Computers and Communications (IEEE ISNCC2018),  Roma, Italy, June 2018