正直に言うと、最初にこのテーマを深く調べたとき、自分がどれだけ見落としていたかに気づいて少し驚いた。

「ハッキングされる」というのは映画の世界では派手なイメージがある。でも現実はもっと地味だ。ボットが流出したパスワードリストを使って、あなたのアカウントに自動的にログイン試行を繰り返す。気づいたときにはもうアクセスを失っている。警告もドラマもない。

この記事では、そういった自動化された攻撃からボットによる攻撃を防ぐための実践的な方法を整理する。ツールの話だけじゃなく、考え方から変えていく内容にしたい。

ボットがアカウントを狙うとき、何が起きているのか

アカウント乗っ取りに使われるボットには、主にいくつかの種類がある。

クレデンシャルスタッフィングは、どこかの流出データベースから取得したID・パスワードの組み合わせを、複数のサービスに対して自動でテストするもの。パスワードの使い回しがある限り、これは有効に機能する。Have I Been Pwnedには2024年時点で140億件以上の流出アカウント情報が登録されており、その規模がどれほどか分かる。

パスワードスプレー攻撃はその逆で、「password123」「123456」のような一般的なパスワードを、大量のアカウントに対して試す。

ブルートフォース攻撃は、弱いパスワードを持つアカウントに対して、あらゆる組み合わせを試すもの。

日本においても状況は他国と変わらない。総務省の「インターネットトラブル事例集」や、警察庁の不正アクセス禁止法違反の検挙状況を見ると、不正アクセス被害は年々報告され続けており、その多くがアカウント乗っ取りを起点としている。
 

基本:パスワードとMFAの話

 

まずここから始めたい。なぜなら、ここを飛ばす人が一番多いから。

パスワードマネージャーを使うこと。 これはもう選択肢じゃなくて前提。複数サービスでパスワードを使い回しているなら、どれかの流出が起きた瞬間にまとめてリスクにさらされる。BitwisrdenはオープンソースでiOS・Android両対応。1Passwordはセキュリティ監査の実績がしっかりある。どちらでもいいが、使うことが大事。

パスワードは各サービスごとに異なるランダム文字列、最低でも16文字。辞書に載っている単語は避ける。

多要素認証(MFA)を有効にすること。 ただし、MFAの質にも差がある。

SMSによる認証コードは、何もないよりはましだが信頼性に限界がある。SIMスワッピング攻撃によって電話番号ごと乗っ取られるケースがあり、NISTのデジタルアイデンティティガイドライン(SP 800-63B)でも、高い保証レベルの認証にはSMSを主要手段として推奨していない。

認証アプリ(Google Authenticator、Authyなど)はより安全。YubiKeyのようなハードウェアセキュリティキーは、重要アカウントの保護において最も堅牢な選択肢の一つだ。

ボットが「人間らしく」見せかけてくる問題