プロキシで「これは危険なURLだ」と判断されてアクセスを拒否したり、メールシステムでメールにフィッシングのURLが含まれる場合に「これは危険なURLだ」と判断してメールの遮断や隔離を行うような仕組みで使われるような「危険なURL」のだと思われるので、その話をします。
まず、「危険なURL」の基準ですが、URLのアクセス先のサイトについて、次のようなパターンです。
- 偽のログイン画面を出す等のフィッシングサイト
- ブラウザ等の脆弱性をついてウィルス等に感染をさせようとするサイト
- 偽の警告画面、金儲け、ポルノ入手方法等で悪意あるツールをダウンロードさせ、実行させようとするサイト
- JavaScript等で勝手に暗号資産のマイニングに参加させられるサイト(掘り出された暗号資産はサイト管理者のもの)
- その他、見た人になんらかの損害を与える可能性がある有害なサイト
最後のその他に全て含めてしまいましたが、毎年のように新しい手法が開発されるため、全てのパターンを上げることは不可能です。
では、プロキシやメールシステムがどうやってやっているのか、普通はセキュリティ会社の製品、または、それらを組み込んだ製品を使います。セキュリティ会社では、インターネット上にある膨大なURLについて、安全、危険、怪しい等のどれにあたるのかをデータベース化しています(実際はもっと細かく怪しさを数値化しています)。未評価と合わせて、あるURLがどれぐらい安全であるかを判断できるようにしているのです。各製品は、そのデータベースに基づき、URLを評価します。プロキシやメールシステムの設定で、一定以上怪しいと判断された場合は、遮断等の処理を行っていると言うことです。
トレンドマイクロとSymantecがURLを評価するサイトを公開していますので、どのURLがどうなのかを試して見ることができるでしょう。※
※ これらのサイトは公開されていますが、スクレイピング等で自動的に見に行くようなことは禁止されています。データベースへのアクセスは別途SDKが用意されていたる場合がありますので、販売代理店に連絡してみてください。なお、いずれの場合でも、上のサイト等の無償提供している場合を除き、データベースの利用は有償です。
なお、"https://teratail.com/"はトレンドマイクロは安全としていますが、Symantecは未評価で、しかもアメリカにあるらしいです。
では、このデータベースをどうやって作っているかというと…たぶん、各社に問い合わせても教えてくれません。なぜなら、どうして危険と判断されるかがわかれば、どうやったら危険と判断されないかもわかるからです。もし、その「危険と判断されない方法」が悪意ある人物に知られてしまったら、今の手法自体が無意味になってしまいます。
ですので、これから下は全て憶測です。
ある程度のセキュリティ関する知識がある人が先程の危険なURLのサイトを見たら、危険かそうではないかはわかります。実際に、ある程度の人手で判断している部分があります。しかし、膨大な量を処理するのは容易ではありません。そこで、処理を自動化しています。サンドボックス上のブラウザを使って、実際のサイトにアクセスし、そのコードや動作を分析するのです。どういった場合に危険だとするかは、たぶん各社企業秘密で教えてくれないでしょう。今流行りのAIも駆使していると思います。そうやって自動的な評価値が定まりますが、誤評価もあります。誤評価の修正は世界中の顧客からの報告からです。そういった報告があると、再評価を行ったり、先程言った人の目で実際に判断等を行っていると言うことです。そうやって、データベースを充実させていきます。
全てがそうではありませんが、各製品は次のような動作をしています。
- データベースにあるURLか? -> あれば、その評価値で判断
- なければ、サンドボックス上のブラウザでURLにアクセスし、自動分析 -> 分析結果の評価値で判断
この2.が動作する基準は不明です。標的型攻撃メール訓練(ユーザー毎に異なるURLを送る手法)を行うと、一定数の2.の動作が行われていて集計の邪魔になるので、私は嫌いです。※
※ 自動処理でのサイトへのアクセスは通常のブラウザのようにアクセスします。検索botのようにUserAgent等でわかるようにはなっていません。なぜなら、悪意あるサイトは自動処理でのアクセスには「安全なサイト」を表示して、評価を誤魔化そうとするからです。
そうそう、特定組織のみを標的にした本当の意味での標的型攻撃メールで使用されるようなURLについては、どの製品であっても安全であると判断することはほぼ不可能です。なぜなら、その組織以外からのアクセスは「安全なサイト」を表示して、正しく評価できなくさせるからです。これを防ぐには組織内部に上の自動処理を行うサンドボックスを用意しておく必要があり、これがまた、ハードウェアもそこそこの性能がいるので高くなるのが悩みの種です。
話が脱線気味になってしまいましたが、上のようなことをやれば危険なURLを知ることは可能でしょう。一人でやるのは現実的ではないので、まずはセキュリティ会社を設立し、セキュリティに詳しい優秀な社員を集めるところから始めるといいと思います。
そういや、欲しいのはURLの方でしたね。まず、会社のプロキシやメールシステムのシステム管理者になります。ログや隔離されたメールから「危険なURL」を毎日取り放題です。
いや、本当に確認したいのは、弾かれた方じゃなくてすり抜けた方なんですけどね。最近流行っているメールの傾向から独自ルールを追加して、すり抜けたものも弾けないか試行錯誤の繰り返しです。システム管理者なんてなるもんじゃないですよ、ほんと。