2. フォーカス・リサーチ（1）

URL文字列の深層学習による詐称サイト識別
便利なサービスがインターネットで提供されるようになったを利用した詐称行為が登場します。よく見られるのは、有名な一方で、悪用される事例も増えています。複雑化、巨大化したシオンラインサービスサイトや銀行サイトに似せたWebページ

ステムをすべて人手で見守ることは困難になっており、すでにを準備し、偽メールなどを通じて利用者を誘導、個人情報やパ様々な自動化の仕組みが運用されています。
ここ数年、セキュリスワードなどを盗み取るというものです。もちろん、詐称行為ティ分野では深層学習の活用に注目が集まっています。経験と自体はWeb以前から存在するものですが、迷惑メールと同様、知識が重要となる分野において、深層学習による補助が実現で電子化によって低コストでより多くの人を狙うことができるきれば、より多くの人材が高度な運用に関わることが可能となようになりました。情報化は、表の世界と裏の世界、分け隔てなり、結果的に安全なサービスが実現できるでしょう。本稿では、

く恩恵を与えてくれたということです。

深層学習をサイバー攻撃の防御に活用する試みを紹介します。

2.1 Webの登場と詐称サイトの戦い

詐称サイトへのアクセスから利用者を守ることは、近年のネットワークサービス運用者にとって重要な課題の1つです。
ISP

欧州原子核研究機構（CERN）のフェローとして活動していたであれば、接続を提供している顧客に詐称サイトブロックなど

Tim Bernars-Leeが 最 初 の ワ ー ル ド ワ イ ド ウ ェ ブ（WWW）のサービスを提供している場合も多いでしょう。もしあなたがサ ー バ、CERN HTTPdを 公 開 し て か ら お よ そ30年 が 経 ち

組織の情報システム担当者なら、自組織内の利用者に対して何ます。ハイパーテキストをインターネットで実現したこの仕組

らかのセキュリティ対策ソフトウェアの導入を推進したりしみは、同氏らによって同時期に提案されたHTTP（Hypertextているかもしれません。現在広く利用されている詐称サイト防Transfer Protocol）とURL（Uniform Resource Locator）と御技術は、基本的にはブラックリストを用いた手法です。ただの抜群の組み合わせにより、瞬く間に世界の情報を繋ぐ技術にし、容易に想像できるように、単なるブラックリストでは広大なりました。1980年代から90年代は、TCP/IPを実装したBSDなWeb空間を網羅することは困難です。研究者たちは、より効UNIXが学術機関を中心に爆発的に普及した時期でもあり、世率的に悪性サイトを判別する方法を模索してきました。例え界中のコンピュータが相互に接続される土壌が育ちつつあっば、既存の詐称サイトのドメイン名に類似した文字列を機械的たことも無関係ではないでしょう。更に、米国立スーパーコンに推測して、少ないブラックリストからより多くの悪性ドメ

ピ ュ ー タ 応 用 研 究 所（NCSA）がGUIを 備 え たWebブ ラ ウ ザ

イン名の候補を作り出す試みがありました＊1。また、単なるリ

Mosaicを公開したことにより、コンピュータ技術者でなくてストの範疇を超え、ドメイン名が登録された時期、Googleでのも簡単に世界の情報にアクセスできるようになります。Web

検索順位などを参考にし、登録されて間もないドメイン名や、順技術の進化は今なお続いており、毎日どこかで新しいサービス位の低いドメイン名の信頼度を低く見積もる手法などもありまが立ち上がっています。

した＊2。実際にアクセスされたページの内容を透過プロキシなどで解析し、サイトが悪性かどうかを判断する技術なども提案

あらゆる技術に共通して当てはまることですが、世界を良くすされています＊3。更に、近年の深層学習の発展に伴い、セキュリることができる技術は同時に世界を悪くすることもできます。

ティ分野への深層学習応用も進んできています。

様々なサービスがWebで提供されるようになるにつれ、それ

＊1
＊2
＊3

16

P. Prakash, M. Kumar, R. R. Kompella, and M. Gupta, "PhishNet: Predictive blacklisting to detect phishing attacks," in 2010 Proceedings

IEEE INFOCOM, ser. INFOCOM, 2010, pp. 1–5.

S. Garera, N. Provos, M. Chew, and A. D. Rubin, "A framework for detection and measurement of phishing attacks," in Proceedings ofthe 2007 ACM Workshop on Recurring Malcode, ser. WORM ’07. New York, NY, USA: ACM, November 2007, pp. 1–8.

Y. Zhang, J. I. Hong, and L. F. Cranor, "CANTINA: A content-based approach to detecting phishing web sites," in Proceedings of the16th international conference on World Wide Web, ser. WWW ’07. ACM, May 2007, pp. 639–648.

© Internet Initiative Japan Inc.

Dec.2018

Vol.

41

2. フォーカス・リサーチ（1）

2.2 URL文字列に隠された意味もあります。経験則に基づいた様々な条件を検討し、それらの詐称サイトとの戦いに終わりはありません。何らかの防御技術組み合わせを用いて悪性かどうかを判断するのが、この分野でが考え出されれば、それを回避する仕組みが生み出されていきは一般的な手法です。

ます。それでも、より安全なインターネットの利用のため、新しい防御技術を検討していくことが重要です。

そしてその最前線に位置する技術として、深層学習を活用したURL判定技術が検討されています。

詐称サイトの判定率でいえば、実際にアクセス先のコンテンツを確認して判断するプロキシ型のものが有利です。ただし、実サイトへアクセスするという行為は危険な場合もあります。処2.3 深層学習の復活

深層学習が一般にも注目されるようになったのは5〜6年程

理負荷やプライバシーなどの課題もあり、実際のコンテンツへ前でしょうか。深層学習で使われるニューラルネットワークアクセスしない手法も多く提案されています。最も単純な手自体は古典的といっても良いくらい昔からある考え方です。

法が、URLそのものだけを見て判断する方法です。この場合、ただ、多層のニューラルネットワークを用いる深層学習の仕URLを構成する文字列に詐称サイトか否かを判断するための組みは、その計算量の多さや、適切に学習させることの技術的何らかの意味が含まれているのかどうかが問題となります。

困難さから、長らく実用化が困難であると考えられてきました。ところが、2010年代に入ると画像認識の分野で目覚ましこの疑問に対する正確な答えを持っている人はいません。
ただ、

い成果を挙げる手法が考案され、一躍注目を浴びるようにな

過去の研究を調べてみると、意味があると考えた人もいたこります。諸説あると思いますが、2012年に開催された大規とが分かります。例えば、よく知られた考え方の1つとして、ド模 画 像 認 識 競技会（ILSVRC、ImageNet Large Scale Visual

メイン名は発音可能な文字列である、というものがあります。

Recognition Challenge）でAlex Krizhevskyらによって実証

ドメイン名は何か現実の物やサービスに関連したものである

された深層学習を用いた画像認識システム＊4が、今に通じる深ことが多いため、自然言語や名称を元にした文字列が多く、必層学習の流れの始まりとみなされることが多いようです。それ然的に人間が発音できるものになりやすいというものです。マ

まで25%程度だった誤り率を一気に10%も向上させ、深層学ルウェアの中には、機械的に生成されたドメイン名（Domain習が現実的な場面に応用できる可能性を示したのです。以降、Generation Algorithm、DGA）
を利用しているものもあり、多く

主に画像や音声認識の分野で広く深層学習が使われるようにの場合これらの名前は発音不可能な文字列で構成されることになり、言語の翻訳、文書の分類、果ては囲碁に至るまで様々な分なります。
この区別ができれば、通常のアクセスと疑わしいアク野に応用されていきました。

セスを区別できるのではないかという考え方です。
ネットワークについても、主にセキュリティ分野で深層学習をまた、異常に多いサブドメイン（たくさんのドットが含まれて用いた技術が次々と提案されている状態です。
この記事では、
私いるホスト名）や、異常に深いパス（たくさんのスラッシュが含たちが提案するURL文字列から詐称サイトを判定する手法＊5をまれるURL）が使われる場合は悪性の場合が多いという考え方紹介しますが、当然この提案が世界初の試みというわけではあ＊4＊5

A. Krizhevsky, I. Sutskever, and G. E. Hinton, "Imagenet classification with deep convolutional neural networks," Advances in neuralinformation processing systems, 2012.

K. Shima, D. Miyamoto, H. Abe, T. Ishihara, K. Okada, and Y. Sekiya, "Classification of URL bitstreams using Bag of Bytes," in Proceedingsof First International Workshop on Network Intelligence(NI2018), 2018.

© Internet Initiative Japan Inc.

17

りませんし、またこれからもたくさんの研究者・技術者がより良うか、ドットやスラッシュの数、アルファベット、記号、数字のい方法を提案していくことになると思います。ネットワーク、比率、文字の出現場所、n-gram文字列の出現頻度など、様々な特にインターネットのような自律分散環境では、永久に動作す要素がURLを区別する特徴として検討され、検証されてきましる何かを作り出すことは困難です。時代と共にシステムもデーた。やみくもに特徴量を増やしてしまうと計算時間に影響してタも変遷していき、そのすべての情報を把握することは不可能くるため、従来の機械学習の手法では対象データの深い知識をです。
私たちは常に世界の一部しか見えておらず、見えている情持った専門家が、既存のデータをあの手この手で解析しながら報ですら瞬く間に古くなっていくからです。

役に立ちそうな特徴を厳選していました。

深層学習は万能の仕組みというわけではありません。
巷でいわれこれに対し、深層学習では、大量のデータを用いて学習させるこているような人間を超える知能がそこから生まれるのかどうか、とによって、自分で特徴量を見つけてくれるといわれています。

まだ私たちには分かりませんが、今できることは分かっています。

実際にはそう単純ではなく、注意深いデータの前処理が最終的な結果に影響してくることも多いと思いますが、特徴量定義の深層学習は機械学習の一手法であり、ある入力ベクトルに対し負担をある程度物量でカバーしてくれることも事実でしょう。て、一定の演算を行い、別のベクトルを出力します。これが分類問題や識別問題に使われることになります。画像認識の例

今回、URLを分類するにあたり、既存の特徴量は使わないこと

でいえば、猫の画像（をベクトルの形に変換したもの）を入力とします。その代わり、単純な変換処理を定義してURL文字列して、それが猫かどうかを0/1で出力するなどです。
「一定の演を固定長のベクトルに変換します。確かに、URLの分類に関し算」の内容を決めるため、深層学習では大量のデータを必要とては先人の知恵を活用することもできたと思いますが、今後します。猫の例でいえば、大量の猫の画像と、猫以外の画像など他のデータセットを対象としていく場合、常に有用な特徴量がです。これらは学習データと呼ばれ、あらかじめ答えが分かっ定義できるとは限りません。もし、単純な前処理と大量の学習ているものを使う場合を教師あり学習、そうでない場合を教師データでURLの識別が可能であると分かれば、他のデータセッなし学習と呼びます（その中間もあります）。深層学習は、こうトでも同様の戦略を取ることができるかもしれないという淡いった分類問題で大きな成果を収めています。

い目論見もあります。

2.4 URLのベクトル化

今回私たちが用いたベクトル化の手順は次のようになります。

さて、いよいよURLの分類の話に進んでいきたいと思います。
目的は、与えられたURLが問題のない通常のサイトなのか、詐

1. URLを文字単位に分割する称サイトなのかを判定することです。深層学習の手法を利用す

2. 各文字をASCIIコードの16進表記に変換するるため、まずはURLを深層学習の入力に利用できるベクトルの

3. ホスト部、パス部それぞれの先頭から1バイトずつ、4ビットずつシフトしながら、出現する値を列挙する形に変換しなければなりません。

4. ホスト部、パス部それぞれに出現した値（0x00から0xFF）
深層学習以前の機械学習では、このベクトル定義（特徴量の定義）が重要な工程でした。対象データを区別するために必要十分な情報を如何に事前に定義できるかが性能に大きく影響するためです。先にも述べたとおり、URL分類では、発音可能かど18の個数を数え、256次元のベクトルにする
5. ホスト部、パス部から計算された256次元のベクトルを連結し、512次元のベクトルにする
6. ベクトルを正規化する© Internet Initiative Japan Inc.

Dec.2018

Vol.

41

2. フォーカス・リサーチ（1）

手順1から3を図-1に示します。続く手順4で値の個数を数えしなかった次元の値は0です。元のURLが何であれ、URLの長ます。図-1に示した例では、ホスト部の値は次の通りです。

さがいくつであれ、必ず512次元のベクトルに変換することができます。ただし、このままではURL文字列が長くなるとベク

0x16（1個）、0x2E（3個）、0x42（1個）、0x61（1個）、0x64（1個）、0x69（2個）、0x6A（2個）、0x70（1個）、0x72（1個）、0x77（5個）、0x96（2個）、0xA2（1個）、0xA7（1個）、0xE6（3個）

トルのサイズが増大してしまうため、手順6で正規化しておきます。こうして変換した512次元のベクトルを、「URL特徴ベクトル」と定義します。

ホスト部のベクトルをV とし、次元i の値をv（とすi i：出現した値）ると、
v 0x16 = 1、v0x2E = 3、v0x42 =1、...、v 0xE6 = 3となります。出現2.5 ニューラルネットワーク設計

URLを固定長のベクトルに変換する準備は整いました。次は、そのURL特徴ベクトルをどう学習させるのかを決めなければなりません。今回の試みでは、シンプルな3層のニューラル

www.iij.ad.jp/index.html

ネットワークを用いました。深層学習というにはいささか浅い

Split charactersw w w .

iij . a d .

ネットワークですが、この種の手法に効果があるのかどうかを

j p / i n d e x . h t m l確認するためには十分だと考えます。

Convert the URL into HEX values

7777772E69696A2E61642E6A703F696E6465782E68746D6C

図-2に今回利用したニューラルネットワークのトポロジを示

Extract 8-bits values by shifting 4 bits in the HEX values

します。このトポロジをどこかで見たことがある方もいるか

3F,F6,69,96,6E,E6,64,46,65,57,78,82,2E,E6,68,87,74,46,6D,D6,6C

77,77,77,77,77,72,2E,
E6,69,96,69,96,6A,A2,2E,E6,61,16,64,42,2E,
E6,6A,A7,70

もしれません。この3層全結合トポロジは、株式会社PreferredNetworksが開発しているオープンソース深層学習ライブラリ
Chainer（https://chainer.org/）のサンプルとして登場し、MNISTデータセット（http://yann.lecun.com/exdb/mnist/）

図-1 URLのベクトル化

URL 文字列

ホスト部ベクトル（256次元）
512次元v
0v
1v
2v
3wv
255
4v
5

パス部ベクトル（256次元）
・・・・・

v
506v
507v
508

（全結合層）
256次元wv
510255v
511

ドロップアウト 0.75w
0w
1w
2・・・・・w
253w
254w
255

（全結合層）
256次元v
509

x0

ドロップアウト 0.75x1x2・・・・・

x253

x
254

x
255

（全結合層）y0y1

図-2 ニューラルネットワークトポロジ© Internet Initiative Japan Inc.

19を利用した手書き数字の認識モデルとして使われています。これを元に、次の2つの変更を加えました。

1. データの正確性：MNISTのようなデータは、すべてのデータが事前に検証され、あらかじめ正しいラベル（MNISTの場合だと、手書きの数字画像と、その画像が表す数字の1. 入出力次元数：MNISTサンプルの場合、入力画像の縦横値）が準備されています。
ところが、インターネット上で観サイズが28x28なので、784次元の入力、出力が0から測・収集されるデータに正確にラベルを付けることは困難

9までの数字なので10次元の出力となっていました。

です。
もし、間違った情報で学習を進めてしまえば、当然間

今 回 は、入 力 が512次 元 のURL特 徴 ベ ク ト ル、出 力 は違った答えを推測するモデルが育ってしまいます。

URLが詐称サイトかどうかを示す0か1の2次元に設定

2. 網羅性：学習に使うデータが真に一般的なデータなのかしています。

どうかを示すことはできません。偏ったデータで学習し

2. ドロップアウト率：MNISTサンプルでは過学習を抑えてしまうと、それ以外のパターンが出現したときに対応るための仕組みであるドロップアウトを利用していまできなくなります。これは手書き数字認識などでも同じせんが、今回のデータに関しては激しい過学習が観測さことがいえるのですが、0から9までの数字という、あるれたため、高めのドロップアウトを設定しています。

程度問題が限定された場合と、インターネット上のURL
文字列のような無限に広がる空間では、自ずと対応でき

今回は、提案手法の検証にもChainerを用いています。
Chainerる範囲に差が出てしまいます。

で定義したニューラルネットワークモデルを表-1に示します。
こういった問題があることを前提としつつ、なるべく正確な、2.6 データソースの選定網羅性の高いデータを準備することが大切です。今回、詐称サデータ構造とニューラルネットワークモデルが揃ったので、実イトのデータとしてPhishTank.com（https://www.phishtank.

際のデータを使って検証してみます。インターネットのようなcom/）に登録されているアクティブな詐称サイトのデータをダイナミックな環境では次の2つが大きな課題になります。

利用します。全世界すべての詐称サイトが登録されているわけ

from chainer import Chain
import chainer.functions as F
import chainer.links as Lclass Model(Chain):def ̲̲init̲̲(self):
super(Model, self).̲̲init̲̲()with self.init̲scope():self.l1 = L.Linear(None, 256)
self.l2 = L.Linear(None, 256)
self.l3 = L.Linear(None, 2)
def ̲̲call̲̲(self, x):h1 = F.dropout(F.relu(self.l1(x)),
ratio=0.75)
h2 = F.dropout(F.relu(self.l2(h1)),
ratio=0.75)
y = self.l3(h2)return y

表-1 Chainerによるニューラルネットワークモデル

20© Internet Initiative Japan Inc.

Dec.2018

Vol.

41

2. フォーカス・リサーチ（1）

ではないため、網羅性は保証できませんが、詐称サイトかどう

よって、同じニューラルネットワークモデルでも精度に大きくかの判断は人の目による投票ベースの処理が入るためある程差が出るということです。

度信頼できます。より難しいのは「詐称サイトではない」通常のサイトのデータです。検証では、ある研究組織のアクセスログ全世界すべてのデータを入手できない以上、ある程度の偏りのから、前述のPhishTankに登録されたものを取り除いたものをある学習になってしまうことは避けられません。最近ではビッ

詐称サイトではないURLと定義して利用していますが、より網グデータという言葉を聞かなくなりましたが、広範囲のデータ羅性を高めるためには異なる種類のアクセスログでの追試がを大量に持っている組織が有利になる状況は深層学習の世界必要になるでしょう。

でも継続、むしろ以前よりもその差が拡大するのではないかと思います。

2.7 深層学習の適用可能性

前節で準備した2種類のデータソースから、それぞれおよそ26,000個ずつ、ランダムにURLを抜き出します。
このうち80%2.8 まとめ

本稿では、詐称URLの判断に深層学習を応用する試みを紹介しを学習に使いました。残った20%で分類精度（Accuracy）を確ました。簡単なニューラルネットワークを用いた検証だったにかめたところ、94%のデータに対して正しく詐称URLとそうもかかわらず、94%の精度でURLの分類が可能となりました。

でない通常のURLを区別することができました。この結果が良同時に、データ収集の困難さ、データを持つことの強みについいのか悪いのか、意見の分かれるところだと思います。過去にても再確認できました。

提案されている分類手法では、この値よりも良い値を実現するものもあります。それらの手法は、単なる文字列だけではなく、ネットワークデータへの深層学習応用はこれからどんどん進他の情報（例えばWhoisの情報やGoogleの検索順位の情報歩していくと思います。コンピュータの能力も向上し、比較的など）を用いている場合もあるので単純な比較はできません。

簡単に深層学習を利用することもできるようになりました。今また、URL文字列のみを用い、私たちと同様に深層学習を活用後も新しい技術を取り込みつつ、より安全なインターネットのした試みもあり 、こちらも、今回の私たちの結果よりも高い実現を目指していきたいと思います。

＊6

分類精度を実現しています。ただ、彼らの提案したニューラルネットワークモデルを独自に実装し、私たちのデータセットを用いて追試してみたところ、論文で示されているような高い値《 謝辞 》を出すことはできませんでした。学習に用いたデータセットに本研究は、JST、CREST、JPMJCR1783の支援を受けたものです。

執筆者：

島 慶一（しま けいいち）
IIJ 技術研究所 主幹研究員。

＊6

J. Saxe and K. Berlin, "eXpose: A character-level convolutional neural network with embeddings for detecting malicious URLs, file paths

and registry keys," CoRR, vol. abs/1702.08568, February 2017.

© Internet Initiative Japan Inc.

21