ブルートフォース攻撃
今回はボクが勉強になったブルートフォース攻撃とリバースブルートフォースについて書きます。
ドコモ口座と言う名前で銀行口座から不正に資金が流出している事件がニュースになっているので調べました。
ボクは社会人を銀行員としてスタートしましたが、それも昔の話。
今も昔も変わらない常識としては、銀行からおカネを引き出すためには、必ず2つ以上の材料が必要です。
銀行の窓口:通帳と印鑑
ATM;キャッシュカードと暗証番号
ネットバンキング:口座番号と暗証番号と第2暗証番号
要は1個だけの材料では資金は引き出せないわけです。
例えば、通帳だけで引き出せてしまうと、通帳を拾った人が引き出せてしまうからです。
キャッシュカードもネットバンキングも同様です。
2つの材料が揃って初めて引き出せるわけです。
ATMの場合、暗証番号は数字4桁なので、0000から9999の1万通り。
つまり、ATMにキャッシュカードを差し込んで0000から順番に試していけば、いつか引き出せてしまいます。
しかし実際は、そんな不正操作をしていると、途中で操作できなくなります。
例えば、10回連続で暗証番号を間違うと不正と見なされてしまうわけです。
こうやって赤の他人がキャッシュカードでおカネを引き出すのを防いでいるわけです。
逆に言えば、赤の他人であっても、キャッシュカードと暗証番号さえあれば、おカネを引き出せてしまうのが弱点ですね。
だから、キャッシュカードに手書きで暗証番号を書いておくようなバカなマネはしてはいけないわけです。
一方、ネットバンキングの場合は、ATMと違って、自宅のパソコンなどで、暗証番号を何度も入力できるわけですが、こちらもATMと同様に、何度も間違えるとロックがかかるようになっています。
このように、(ネットバンキングに限りませんが)暗証番号やパスワードを順番に試していって突破しようとする行為を、
ブルートフォース攻撃
と言います。
要は、総当たり攻撃ですね。
時間をかければ、いつかは突破できてしまいますが、10回の攻撃でロックがかかったりするので、現実的には、ブルートフォース攻撃が成功するのは今の世の中では難しいと思います。
大昔の銀行員であるボクも、まあ常識的には、ネットで口座から不正におカネを引き出すのは限りなく不可能に近いと思っていますし、現実にそうです。
リバースブルートフォース
ところが、ドコモ口座事件では、なぜか不正に引き出されています。
しかも、何件も。
そんなに色んな人から、口座番号と暗証番号の両方を入手できるとは考えにくいので、これは、どこかにセキュリティの穴があるのかもね、と思っていたら、高木浩光さんがツイートしていました。
いや、ですから、氏名は銀行サービス(振込機能)で任意の口座番号で検索できるんですってば。有効な口座番号も同じ方法で特定できる。暗証番号はリバースブルートフォース。https://t.co/G0WwLI2ArE
— Hiromitsu Takagi (@HiromitsuTakagi) 2020年9月8日
「どこかから漏洩した口座番号、キャッシュカードの暗証番号といった一部の情報が悪用され」
ここで登場するのが、リバースブルートフォース。
ボクも知らない言葉だったんですが、目からウロコ。
これは、暗証番号を固定して口座番号を変えていく攻撃なんですね。
例えば、ブルートフォース攻撃なら、
口座番号1234567
と言う口座に対して、
0000
0001
0002
と順番に暗証番号を打ち込んでいくわけです。
で、10回目でロックされます。
ところが、リバースブルートフォースでは、最初に、
1234
などと暗証番号を固定しておいて、口座番号の方を、
1234567
1234568
1234569
などと変えていくわけです。
こうすると、ひとつの口座番号に対する攻撃は1回だけなので、ロックされるコトはありません。
そして、数多くの口座を調べていけば、中にはひとつくらい、
1234
と言う暗証番号を使っている口座もあるので、見事に、口座番号と暗証番号が揃ってしまうんですよね。
なるほど!
これなら1000回でも10000回でも攻撃できるわけです。
いや、喜んでいる場合では無いです。
これができてしまうと言うコトは、ネットバンキングで不正におカネを引き出されるコトが後を絶たないはず。
でも、実際には、ネットバンキングで口座からおカネを引き出す場合、さらにもうひとつの暗証番号(あるいはパスワードなど)が必要です。
つまり、口座番号、暗証番号と揃っただけでは不正におカネを引き出すコトはできず、さらにもうひとつの番号が必要なんですね。
そして、そのもうひとつの番号は毎回ランダムに変わる、ワンタイムパスワードであるコトが多いです。
だから、仮にリバースブルートフォースを行っても、やはり第三者が不正に口座からおカネを引き出すのは事実上不可能と言えるわけです。
良かった。
でも、ドコモ口座の件は、それが行われてしまっている。
なぜか。
考えられるのは、この、第2の暗証番号が無かったのでは?と言うコトです。
ドコモ口座とはドコモ側のアカウント。
それに銀行口座を連携して、銀行口座からドコモ口座におカネを送金し、そのドコモ口座を使ってネットなどで買い物できるわけですね。
すると、ドコモ口座と銀行口座の連携方法に問題があるのかな、と。
もし、この連携に第2の暗証番号が不要であれば、まさにリバースブルートフォースを使って、赤の他人がおカネをドコモ口座に移せてしまいます。
ボクはドコモ口座を使っていないですし、ドコモ口座対応の銀行口座も持っていないので、自分で確かめられないんですが、この連携方法はどのようなモノなんでしょうか。
ありました。
やはり、第2の暗証番号もしくはワンタイムパスワード無しで連携できる銀行があるようです。
なので、リバースブルートフォースによって、ドコモ口座をまったく使っていない被害者も発生しているコトにも納得がいきます。
口座の名義人から暗証番号が漏れたのでは無く、当てられてしまったんですね。
と言うコトは、第2の暗証番号もしくはワンタイムパスワードを使わずに連携できてしまうドコモと銀行に問題がある、と明言できてしまいますね。
興味ある事件なので、引き続き、追っていこうと思います。
とりあえず、ネットバンキングに限らず、インターネットのアカウントへのサインインを行う際のリバースブルートフォースは、パスワードが短ければ成功する可能性も上がってしまいます。
特に、銀行口座は、口座番号が7桁の数字、暗証番号は4桁の数字なので、めちゃくちゃ成功確率は高いですね。
ボクも勉強になりました。