リスト型アカウントハッキング防止システム構築 #1「事前準備編」

2019年5月25日

テクノロジー

テレビや新聞で「情報漏えい」や「パスワード漏洩」というニュースをよく聞きますが、これはサーバーをハッキングされたり、内部エンジニアの犯行など色々なパターンがありますが、「リスト型アカウントハッキング」というアタック型攻撃は、通常のセキュリティ対策では、どうしようもなく難しい対策であるという事を、ITに疎い人はなかなか理解するのが難しいでしょう。 ちなみに、下記URLに、情報漏えいに関するニュースをまとめてくれているサイトがあったので、興味のある人は見てもらいたいのですが、テレビで取り上げられていなくても、かなりの数の企業が情報漏えいを公表しているのが見てわかります。 https://cybersecurity-jp.com/leakage-of-personal-information

リスト型アカウントハッキングについて

少し聞き慣れない「リスト型アカウントハッキング」という言葉は、一体どういうインシデントなんでしょうか? これは別名「リスト型攻撃」とも言われていて、色々なサイトで発生している個人情報漏洩したデータを他のサイトで同じIDとパスワードが利用できるかどうか確認するための作業と考えられます。 ネットサービスを利用する時に、ほとんどのサービスでは、メールアドレスとパスワードをセットでアカウント登録して、ログインを行うというのが一般的なので、どのサイトでも同じメールアドレスとパスワードで登録していると、このリスト型攻撃で、ログイン成功されてしまうと、他のサイトでも、自分のアカウントで悪意のある他人が簡単にログインされてしまうというハッキング被害にあってしまうんですね。 よくアカウント登録する際に「同じパスワードは使用しないでください」と書かれているのはこのためですね。 確かに、メールアドレスは、複数使うなんていうのは、あまりありえず、一つで複数のサービスアカウントを作るのが当たり前の為、変更できるのはパスワードだけなのです。 そして、企業側もパスワードの使い回しを禁止するというのは、非常にITを利用していて使いづらくなってしまい、手帳に色々なサービスのパスワードを書き溜めて、スマホで利用しているツワモノもいましたが、果たしてそれってITで便利なのかどうか、非常に疑わしい感じです。 そして、今回はそんな企業側(サービス提供側)の方で、リスト型攻撃をうけないようにするための対策を技術力を使って考えてみようと思います。

リスト型攻撃を防止するためには?

攻撃を行う側に立って考えてみると、個人情報データベースが手元にあったら、ログインを確認できるサービスサイトは、世の中に腐るほどあるし、大手のサイトで確認ができれば、そのアカウントでいくらでも悪さを行うことも可能です。 しかし、人の手を使ってひとつずつ確認をするような事をすると、何万件、何百万件という作業を行うのは、有り得ないため、必ずBOT対応をする事になります。 いわゆる、ロボット攻撃という手法で、パソコンを使って自動でログインを確認する方法です。 プログラムが組める人であれば、比較的簡単な作業で、構築することは可能です。 特定のIPアドレスからのアクセスが多いからといって、そのIPアドレスをシャットダウンしていたのは、昔の対策で、今では、どの喫茶店でもfreeWifiが備わっているため、防止されたら、少し場所を変えるだけで簡単にIPアドレスが変更されてしまうので、この方法は局所的な一時しのぎにしかなりません。   ここで考えたいのは、機械でログイン処理を行っているのか、人が行っているのかを判定することができれば、人の手はOKで機械処理はNGというセキュリティが実現できれば、企業対策としては非常に堅牢な環境が作れるでしょう。

機械と人の見極め方

ボットツールを作ったことがある人であれば、わかると思いますが、機械は全ての操作を正確に行います。 人との決定的な差は、正確かどうかという点が一つあります。 例えばボタンを押す際に、機械は座標で100x100やら0x0のポイントを正確にクリックすることができますが、人が通常操作をすると、必ず座標にランダム性や誤差が生まれます。 もちろん、人でもたまたま、基準になりそうな座標をクリックする場合はありますが、複数回同じ正確性が繰り返される場合(2回以上でもん文覚的確率になるので)ロボットであると判断できます。 また、人の操作は、ブラウザアプリなどで取得できる「イベント」ログが発生しますが、ロボット操作の場合は、ブラウザイベントはほとんど発生しません。 こうした、ロボットと人とを見極めて、ロボットの場合は、ログイン画面の送信ボタンを押せないようにしてしまうことで、外部攻撃を回避できる可能性が非常に高くなるでしょう。 もちろん、プログラムで仕込んだものに対しては、それを回避するプログラムを記述することは可能です。 こうした判定を複数作っておき、それらをランダムで発動させたり、何かしらの乱数に対応させるような処理を行うことで、かなりの防止が行えることが想定できます。 今回はリスト型攻撃についての説明を主に行いましたが、次回から、これに対応するためのプログラムを構築していきたいと思います。 全ての企業がこうした対策をとるようになると、利用ユーザーは、安心して同じパスワードを使い回せるようにもなります。 まあ、いたちごっこという見方もありますが、企業はこのレベルの努力はしてもらいたいですね。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。