Microsoftアカウントに不正アクセスされた。まさか自分が?というのが正直な感想だ。
セキュリティというと楽天証券のアカウント乗っ取りが相次いだ事件が記憶に新しい。あれ以来楽天証券もセキュリティ強化の紆余曲折を経てパスキーという最近広がりつつあるセキュリティ方式を導入している。
身の回りのセキュリティを見直してパスワード管理の方法なども変えたので注意喚起の記事を書こうと思う。

おいらーです。社会人歴5年目の社畜サラリーマン。あまりの仕事量に効率化に目覚め、仕事の効率化・家事の効率化を模索し続けている社畜。X(Twitter)やってます。
Microsoftアカウントに不正アクセスがあった
ある日「Microsoft アカウントの不審なサインイン」というメールが届いた。この手の不正アクセス検知のメールはだいたい自分が新しい端末からログインした際に届くか、そもそもこういうメール自体がフィッシングの可能性があるので、取り合ったこともないのだが今回は違った。
確認のためMicrosoft アカウントでログインをしてみたところ、立て続けにブラジル・アメリカからのログイン成功の履歴が残っていた。本当に数分の内にブラジルとアメリカからログインされているようなのでおそらくVPN経由じゃないかとは思う。


そして、この不正アクセスの数時間後に非通知で電話がかかってきた。もちろん出なかったが電話番号が生きているかを確認するためにかけられたのではないかと思う。
急いでパスワード変更とセキュリティ強化


異常を検知して自動で保護は行われたようで、実際何かされた形跡はなかったがとりあえず急いでパスワードを変更した。さらにログインしているデバイスを確認し、一度全デバイスからのログアウトをした。特に不正にログインしている状態のデバイスはないようだったが念のためだ。
そして二段階認証の設定をしていなかったのでその設定もした。今回の事件はそもそも二段階認証をしていなかったのがよくなかった。現代において二段階認証は最低限のセキュリティだ。
それから最近かなり増えてきたパスキーの設定もした。パスキーというのはデバイスの生体認証を使う認証方法で、デバイス側に秘密鍵が保存されるため非常に高いセキュリティを実現できるというやつだ。
諸々のセキュリティも見直し


俺は今回乗っ取られたMicrosoftアカウントのキーワードに使っていた単語をかなり使いまわしていたので、各所で使っているパスワードの変更と二段階認証を設定する作業をひたすらすることになった。
IT全盛期の現代、これを一斉にやろうとするとものすごい時間を取られる。そもそも全部ちゃんと変えられたのかも怪しい。何らか漏れているアカウントもありそうな気もしている。パスワードは都度別のものを用意する必要があるというのは本当にそうだと身を持って実感した。幸い実害はなかったが。
最近のセキュリティ事情
諸々のアカウントのセキュリティを見直す中で最近のセキュリティ事情も少し勉強した。年々セキュリティというのは進化するし、セキュリティを突破する方法もどんどんと開発されてしまうので今後のためにも最低限把握しておいたほうが良さそうだと思ったからだ。
現代の最低限の守り【二段階認証】


最近のセキュリティの主流は二段階認証だ。二段階認証とは、ログインの際にパスワードだけでなく別の端末(スマホなど)や電話番号、メールアドレスなどを使った別の認証を加える方式のことだ。
特にワンタイムパスワード(OTP)を使った方法が多い。OTPはあらかじめ登録した電話番号やメールアドレスに対して、発行後短時間しか有効にならない一時的なコードが送信され、そのコードをログイン画面で入力することで本人であることを認証してログインできるという方式である。
その他にもMicrosoftやgoogleが提供するAuthenticatorというアプリを使った認証もある。これはスマホにAuthenticatorアプリをインストールし、そのスマホのAuthenticatorアプリとアカウントを紐付けておくことで、二段階認証時にアプリに通知がきて承認することができるという方法だ。
二段階認証用に登録されているアプリや電話番号、メールアドレスにアクセスできなければコードが分からないためパスワードが割れてしまったとしてもアカウントを守ることができるのが特徴だ。
ただこれでも脆弱性がある。フィッシングサイトにユーザーが誤って入力してしまったID・パスワードをリアルタイムに使ってログインをしてパスコードを発行させた場合、ユーザーは今入力しているサイトが偽物だと気付くことができず、通知されてきたパスコードをそのままフィッシングサイトに入力してしまい、リアルタイムに悪意あるユーザーにログインされてしまう可能性がある。
最新の高度なセキュリティ【パスキー】


二段階認証の脆弱性は人間を介在して二段階目の認証を行うところにある。人間はミスをする生き物なので人間の判断でフィッシングサイトに気づかないといけないというのは弱点になってしまうのである。
そんなわけで昨今それを克服したパスキーという方式が広がってきている。
特に金融機関系のアプリ・サイトが早々に導入をしているのだが、このパスキーというのはいわゆる公開鍵暗号を使ったセキュリティで、デバイス側に秘密鍵を持つ方法だ。デバイスに保存された秘密鍵がないと暗号化されたパスキーの中身を復号することができない。秘密鍵の使用は指紋や顔を使ったデバイスでの生体認証によって行われる。
パスキーは作成時にどのサイトに対するパスキーなのかをセットでデバイスに保存する。例えばgoogleへのログインならgoogleのURLとパスキーをセットで保存して秘密鍵が作られる。そしてgoogleへアクセスしてログインしようとした際には、デバイスが今どのサイトにアクセスしようとしているかを照合し、そのサイトに合った秘密鍵を取り出してきて生体認証を要求する。
この方式であればデバイスが機械的にURLを照合するためそのサイトがフィッシングサイトであるかどうかを人間がチェックする必要がない。


例えば仮にアクセスしようとしているサイトがgoogIe(lがIになっている)というフィッシングサイトだった場合、デバイス側はgoogIeというドメインに対するパスキーを持っていないのでそもそもパスキー認証を行わない。デバイスはgoogleとgoogIeを全く別物としてちゃんと認識するのでそもそもgoogleのパスキーを取り出してくることもないというわけだ。そしてパスキーによる認証が行われないことで人間はそれがフィッシングサイトであることに気付くことができる。
また、ログインの情報も含めてすべてデバイス側が保存しており、秘密鍵使用のための生体認証だけが必要なので実はパスワード管理も入力もかなり楽になるというメリットもある。セキュリティも高く楽になるということで現状はなかなかいい方式となっている。
ブラウザのパスワードマネージャーは要注意らしい


パスワードを覚えなくていいという話でいうとブラウザのパスワードマネージャーを使った自動入力機能がある。多くの人は使っているのではないだろうか。ぶっちゃけめちゃくちゃ便利。
そして大方の予想通りブラウザのパスワード自動入力機能はセキュリティが十分ではなく攻撃の対象になりやすいらしい。
ブラウザのパスワードマネージャーはログイン情報を入れる場所を見つけると自動で入力しようとするためそれを逆手に取って、見えない透明な入力ボックスを作って勝手に入力させたり、ブラウザのプログラムファイルが保存されている場所を狙って情報を抜くマルウェアがあったりするらしい。
最近はブラウザ側での対策も多少されているようだが、やっぱり使わないのが安全ってこと。でもじゃあサイトごとに違うパスワードをすべて覚えて毎回打ち込むのか?って話になってくる。
専用パスワードマネージャーという手段


じゃあどうしたらいいんだ?と思っていろいろ調べていたところ専用のパスワードマネージャーというものが存在するということを知った。
Bitwardenや1Passwordなどが有名なパスワードマネージャーのようで、パスワード管理に特化したサービスらしい。セキュリティの専門的なことは全くわからないが、特化したサービスなだけあってセキュリティは高いようである。
Googleのようなサービスやブラウザとも独立しているため連携がどれだけスムーズに取れるかどうかが気になるところではあるが、その問題がないのであれば導入する価値はあるかもしれない。
パスワードの管理方法を検討
専用パスワードマネージャーという存在を知り、パスワード管理も真面目に考えることにした。現在主に使っているのはGoogleのパスワードマネージャーやブラウザのパスワードマネージャーなのだが、これだと一本化されていなくて不便な上、上述の通りセキュリティにも不安がある。
ブラウザのパスワードマネージャーは廃止
ブラウザのパスワードマネージャーを使った自動入力は便利であるが、先述の通りそもそもセキュリティリスクが高いのでこれは廃止の方向で考えることにした。
Googleのパスワードマネージャーは若干不便
パスワードマネージャーというと、GoogleにもChromeやAndroidスマホで使うことができるパスワードマネージャーのサービスがある。自分はGoogleのアカウントを軸にしているし、相性は悪くない。しかしどうやら対応しているブラウザはChromeのみらしく、Braveを愛用している俺としては選択肢から外さざるを得なかった。
無料で使える専用パスワードマネージャー「Bitwarden」
そこで今回専用パスワードマネージャーのBitwardenを導入してみることにした。
専用パスワードマネージャー最大手はどうやら1Passwordのようだが、なんと1Passwordは有料で、月額2.99ドルもする。日本円で約500円だ。大きな金額ではないにせよ、そもそも初めての専用パスワードマネージャーで使いこなせるかわからない上、Googleのパスワードマネージャーや対抗馬のBitwardenが無料である中でなかなか手が出ないなと思った。
そんなわけでまずは無料でも登録できるログイン情報や使用デバイス数に制限のないBitwardenを使ってみることにした。
Bitwardenの使い方
BitwardenはまずPCで初期設定をする必要がある。スマホアプリだけで完結するのはどうやら難しそうなので最初だけ我慢してPCで作業するとよい。
Safariには対応していない部分があるという話も聞いたのでMac環境の人は別途調べてみてほしい。
PCでの操作


まずはBitwardenの公式サイトからアカウント登録を行う。このときマスターパスワードというものを登録するのだが、このマスターパスワードがBitwardenを守る極めて重要な砦になる。
Bitwardenに保存するパスワード情報はBitwardenのサーバーに保存されるが、マスターパスワードを鍵として暗号化されており、このマスターパスワードを忘れてしまうとBitwarden運営であっても復元することができないらしく、重要なパスワードになっている。もちろんマスターパスワードが割れてしまうとまずいので二段階認証も必須だ。
初期設定だと二段階認証が設定されていないので、設定>セキュリティ>二段階認証 から設定しておいた方が良い。


アカウント登録ができたら今使っているパスワードマネージャーからパスワード情報をエクスポートする。例えばブラウザのパスワードマネージャーを使っているのであれば、ブラウザの設定からパスワードマネージャーの設定を開けばエクスポートすることができる。


次にエクスポートをしたファイルをBitwardenに読み込ませる。Bitwardenサイトのサイドバーからツール>Import を選ぶ。その後エクスポート元を選んで読み込ませれば良い。俺はBraveを使っているが、BraveやEdgeはChromeと同じChromium系のブラウザなのでChromeを選べば問題ない。
なお、エクスポートしてきたファイルは機密情報の塊なのでインポートが終わったら即削除しておく。


次にブラウザに拡張機能を導入して、Bitwardenから簡単にパスワードを呼び出せるようにする。拡張機能をインストールする際は公式サイトからよく確認しながらインストールしてほしい。偽物などをインストールしてしまうと重大なセキュリティリスクになる。


拡張機能をインストールできたらログインして設定を開く。設定の「自動入力」の欄に「Bitwardenをデフォルトのパスワードマネージャーにする」というチェックボックスがあるのでこれをクリックする。
ブラウザによってはブラウザ側のパスワードマネージャーと競合してしまう可能性があるのでブラウザ側のパスワードマネージャーの設定を開き、ブラウザ側のパスワードマネージャーはオフにする。


ブラウザの拡張機能を入れ終わったらデスクトップアプリもインストールする。ブラウザの拡張機能だけでも機能はするが、デスクトップアプリと連携させることで、PCの生体認証(顔認証や指紋認証)でのロック解除ができるようになるのでインストールした方が便利(でないと毎回マスターパスワードの入力を要求されてさすがに面倒くさい)。


デスクトップアプリのインストール後、ウィンドウ左上のファイルから設定 を開いて「Windows Helloでロック解除」にチェックを入れると、デスクトップアプリ起動時に生体認証でロック解除できるようになる。なお、その下のチェックボックスにチェックを入れていると、デスクトップアプリ起動時は生体認証を使わずマスターパスワードの入力でロック解除をしないといけなくなる。俺はさすがに面倒なのでチェックを外している。


さらに、設定の下の方を見ると、トレイアイコンに関する設定やPC起動時の動作の設定ができる。ブラウザで生体認証を使うにはデスクトップアプリがバックグラウンドで動いている必要があるので、「ログイン時に自動的に起動」にチェックを入れておくと便利だ。また、デスクトップアプリをウィンドウで開いていると邪魔なので、トレイアイコン系の設定は全てチェックしておく方が使い勝手が良い。


その後、デスクトップアプリ側で「ブラウザ統合を有効にする」にチェックを入れる。チェックを入れたらブラウザに戻り、一度ブラウザを再起動する。


ブラウザの再起動後、Bitwarden拡張機能を開いて設定>アカウントのセキュリティ に移動し、「生体認証でロック解除」にチェックを入れると、タイムアウト時に生体認証でロックを解除できるようになる。
スマホでの操作


まずはGoogle PlayやApp StoreでBitwardenのアプリをインストールする。インストールしたらPCで作ったアカウントにログインをする。
スクショが取れないようになっているので画像はないが、Bitwardenアプリの設定>自動入力 から「自動入力サービス」をオンにし、”Use Brave autofill integration”や”Use Chrome autofill integration”についてもオンにすると、スマホで使っているブラウザでBitwardenからのパスワード呼び出しができるようになる。


また、スマホ側のデフォルトのパスワード保存先もBitwardenに変更する。これは設定から「パスワードとアカウント」を開いて変更できる。AndroidだとデフォルトがGoogleになっていると思うが、これを変更する。これでBitwardenを軸にパスワード管理ができるようになる。
一元管理できてかなり便利
Bitwarden使い始めてまだ日が浅いがかなり便利だ。心配していた複数デバイス・マルチプラットフォームでの連携についても非常にスムーズでむしろ、ブラウザのパスワードマネージャーのように特定のプラットフォームに依存しなくなったのがかなり便利だ。
移行はかなり面倒ではあるが、パスワードを管理している場所のセキュリティは極めて重要だ。金融機関系のパスワードが割れたりしたらと考えると恐ろしいのでこれはやっておくべき対処なんだろうと思う。








