ヤマト運輸に関するセキュリティ事件についての分析

リスト攻撃による不正アクセスの発生

ヤマト運輸は2019年7月にリスト攻撃を受けたことによって3000件超の不正アクセスを受けた可能性があるとの発表を行った。
ヤマト運輸にあった情報は氏名や住所に加えてクレジットカード情報などもあった。不正アクセスのあった疑いがあるユーザーにはパスワード変更を行うような設定を行っている。
クロネコメンバーズにおける不正ログインについて | ヤマト運輸

リスト攻撃とは

パスワードリスト攻撃と言われる攻撃方法ですでに他の事件で流出しているパスワードと ID のリストを流用して攻撃する方法である。重要となるのは流出している情報はヤマト運輸のものではないということである。つまり、他のサイトで ID とパスワードを使い回しているユーザーが被害があることが懸念される。
そのことから、必ずしもヤマト運輸に責任があるわけではなく、使い回しをしているユーザー側にも注意が必要である事件であった。

ヤマト運輸のセキュリティ設計

ヤマト運輸のログイン方法は ID とパスワードによる認証が基本である。
それに加えて、任意で登録済みのメールアドレスに対するワンタイムパスワードによる二段階認証を設定することができる。そのため、 パスワード流出に対しては、比較的強度のあるセキュリティ設計をしていたことは客観的に認めるところである。 もし、あなたがヤマト運輸のユーザー登録をしている場合には、パスワードの見直しに加えて二段階認証の登録を行うことをお勧めする。仮にパスワードリスト攻撃で漏れたとしても、二段階認証の段階でログインを阻止することができるからだ。
ただし、これにも後述する脆弱性があったため、あまり意味は成していないようだった。

ヤマト運輸のセキュリティ設計に関する脆弱性

パスワードの文字数に関する脆弱性

先に申し上げた通り、ログイン方法は ID とパスワードの一般的な方式だ。ただ、パスワードについて文字数制限がありそれが少々脆弱性につながったと筆者は推測している。
ヤマト運輸のパスワードの文字数は6文字以上12文字以下という制限がある。
これはすなわち、パスワードリスト攻撃のうえで、パスワードが6文字以上12文字以下のリストに絞って攻撃すれば良いという考え方ができる。元々のリストの総数は推測しかねるが、そのうちの3万件に絞って攻撃できたというのは攻撃側のリスク回避につながっていただろう。
また、攻撃の総数は3万件以上と推測されており、3万件中の3000件ということから、十件に一件というユーザーがパスワードを使い回しているという推測が立つ。攻撃としては非常に効率的な攻撃だったと言えるだろう。

二段階認証に関する脆弱性

ヤマト運輸の二段階認証はパソコンサイトだけで、スマホサイトからは二段階認証は求められないということが判明した。

つまり、スマホサイト側から攻撃を仕掛ければ仮に二段階認証を設定していたとしても、防御できなかったということである。
残念ながらそれは脆弱性と言わざるを得ない。パソコンからスマホサイトを見ることも当然可能であるし、攻撃の防御策としてはなんら意味をなさないものといわざるを得ないだろう。もっとも、二段階認証にたどり着けるのは流出したパスワードが適合しているユーザーに限る。よって、第一のセキュリティ対策は「パスワードを使いまわさない」ということに尽きる。

今回の事件から見るリスト攻撃の対策

サイト運営側であるヤマト運輸では、いくつかの対策が必要と考えられる。

パスワード文字数制限の上限を増やすこと

パスワード文字数が12文字までというのは、あまり有効とは言えない。 12文字が今の最低ラインとも言っていい状況であれからせめて20文字程度、できれば、32文字程度までを制限としてあげるべきである。

二段階認証のスマホサイトでの適用

せっかくの二段階認証だが抜け穴がある以上、ある意味がない。直ちにスマホサイトも二段階認証を適用するべきである。 その場合において、メールによるワンタイムパスワードに加えて、SMS やワンタイムパスワードアプリの適用なども加えてしかるべきである。
あまり言及したくはないが、使用しているメールアドレスのログインパスワードも同様に使い回しているユーザーがいるかもしれない。二段階認証の本質と言える本人が持つ唯一の媒体から見ることができない状況を条件とするのであれば、メールアドレスの二段階認証では足りないと思う。

ユーザー側の対策

一方でユーザー側も対策が必要である。

パスワードを使いまわさないこと

これは何年も前から言われていることである。そして今回のような攻撃が起こる理由である。パスワードリスト攻撃が実際に行われた実例という面では今回は、反面教師になっただろう。

(ヤマト運輸では)パスワードの文字数を12文字にすること

これは12文字にしなければならないというわけではなく、パスワードは長ければ長いほど良い。しかし、ヤマト運輸ではパスワードの最大数が12文字であることから12時に設定されざるを得ないだろう。
一般的に安全だと言われている文字数は、総当たり攻撃について8文字と言われているが、これも数年前の情報であり今では8文字では決して安全とは言いづらい。今では12文字ぐらいが最低限と言ってもいいだろう。
もっとも、インターネット上のサイトへの総当たり攻撃は決して容易ではない。攻撃先に相応の数の攻撃を仕掛けるわけだから、時間がかかるし、攻撃元が特定されるリスクが高い。また、サイト側も複数回攻撃を失敗した場合に一時的にログインできなくするなどの対策をとっていることが一般的である。なので、インターネット上のサイトでは総当たり攻撃は成功しづらくリスクが高いので、あまり想定しなくていいだろう。
そうは言っても、パスワードが短いことは良いことではないし、絶対に総当たり攻撃されないといえない。少し前の PayPayの攻撃では、複数回ログインを失敗した場合に制限数を設けていなかったという事例がある(なお、今でもそれは解消されている)。 ユーザー側に置いてもパスワードはなるべく長くするのがオススメする。
以上が今回の事件から見るセキュリティに関する対策の筆者の考えである。 ぜひ、ユーザー側においてもセキュリティに関する意識を高めて対策を進めてほしい。

コメント

このブログの人気の投稿

リモートワークをLogicoolのマウスとキーボードで複数PC切り替えて優勝した

VBAでのInterfaceやキャスト

SUPERHOTがいかにSUPERHOTか語りたい