カスペルスキー社のランダムパスワード生成ツールに欠陥が発覚、再生成を呼び掛け
2021/07/9
カスペルスキー社のパスワードマネージャーが搭載しているパスワード発行機能に偏りがあり、一般的なパスワードに比べて総当たりで解析されやすい状態だったことが明らかになった。
パスワードマネージャーツールの多くは新しく登録するサービス向けにランダムなパスワードを自動生成する機能を備えているが、今回同社のパスワードマネージャー「Kaspersky Password Manager」(KSP)で発覚したのが、時刻をキーに用いるロジックに欠陥があり、生成されるパスワードの組み合わせパターンに偏りがあったというもの。脆弱性の対象となるのは、Windows版はバージョン9.0.2 Patch Fより前、 Android版はバージョン9.2.14.872より前、iOS版はバージョン9.2.14.31より前となる。攻撃者がパスワードの発行時刻を知っているのが前提だったりと条件は限られるものの、同社は2020年アップデートのインストールを促すとともに、ランダムパスワードの再生成を呼び掛けている。これらを発見したセキュリティベンダーのDonjonは、同社のパスワード生成ロジックをフリーのパスワードマネージャー「KeePass」と比較しつつ、なぜ偏りのあるパスワードが発行されるに至ったのか、どのような条件下では解読されやすくなるのかを、ブログで詳しく説明している。
- List of Advisories(Kaspersky)
https://support.kaspersky.com/general/vulnerability.aspx?el=12430#270421 - Kaspersky Password Manager: All your passwords are belong to us(Donjon)
https://donjon.ledger.com/kaspersky-password-manager/ - Kaspersky Password Manager's random password generator was about as random as your wall clock(The Register)
https://www.theregister.com/2021/07/06/kaspersky_password_manager/
カスペルスキーのパスワードマネージャーが生成したパスワードは総当たり攻撃で爆速突破が可能と判明、一体なぜか?
2021/07/07
セキュリティ調査企業のLedger Donjonが、セキュリティ企業・カスペルスキーの開発するパスワードマネージャー「Kaspersky Password Manager(KPM)」のプログラムに問題があり、生成されたパスワードが総当たり攻撃に対して非常に脆弱だったことが判明したと発表しました。KPMの利用者には既にパスワードの更新をするように促すメッセージが送信されており、記事作成時点ですでに問題は修正済みとのことです。
Kaspersky Password Manager: All your passwords are belong to us | Donjon
https://donjon.ledger.com/kaspersky-password-manager/
Kaspersky Password Manager's random password generator was about as random as your wall clock • The Register
https://www.theregister.com/2021/07/06/kaspersky_password_manager/
パスワードを生成するにはさまざまな方法がありますが、KPMはランダムに選ばれた文字や数字、記号を組み合わせてパスワードを生成します。
例えば10個の文字セットからGetRandom32という乱数生成メソッドで文字を出力する場合、以下のようなコードで書くことができます。
const string charset = "0123456789";
return charset[GetRandom32() % 10];
「GetRandom32()」で0から31までの数字をランダムで選び、10で割った余りをcharsetに返す流れとなっているので、このままだと0と1が返ってくる確率が少し高くなってしまいます。そのため、「GetRandom32()」で31と32が出た時を無視するように手を加える必要があります。オープンソースで開発されるパスワードマネージャーのKeePassにおけるパスワードのランダム生成では、これに近い方法が採用されているとのこと。
const string charset = "0123456789";
do {
uGen = GetRandom32();
} while (uGen >= 30);
return charset[uGen];
このように、ランダム生成で重要なことは、「指定された範囲から文字を均一な確率で選出する」ということ。もし確率に偏りがあった場合、そのパスワードの安全性は必然的に低くなってしまいます。
Ledger Donjonは2019年に、KPMに搭載されているパスワード生成機能を調査しました。KPMのパスワード生成機能は大文字・小文字・数字・特殊文字から、デフォルトだと12文字のパスワードを作成するというもの。パスワードに使う文字セットはカスタマイズ可能で、パスワード生成機能のUIから設定できます。
Ledger Donjonの調査チームは「KPMに含まれるパスワードジェネレーターにはいくつかの問題があります。最も重大な問題は、『メルセンヌ・ツイスタ』と呼ばれる擬似乱数生成機(PRNG)を使用していたことです。そして、そのシード値にデバイスのシステム時刻を使っていました」と報告しました。
KPMのパスワード生成関数のコードが以下。seedがシステム時刻の下位32ビット(ft.dwLowDateTime)と上位32ビット(ft.dwHighDateTime)の和に定義されています
std::string pwlib::generatePassword(pwdlib::Policy policy, int seed)
{
if (seed == 0) {
FILETIME ft;
GetSystemTimeAsFileTime(&ft);
seed = ft.dwLowDateTime + ft.dwHighDateTime;
}
auto mtrand = std::bind(std::uniform_real_distribution<float>(0,1), mt19937(seed));
return generateRandomPassword(policy, mtrand);
}
擬似乱数生成機はその名の通り、一見ランダムのように見えるものの、一定のアルゴリズムで数を算出します。そして、その初期状態として設定されるのがシード値であり、シード値が同じであれば、擬似乱数は必ず同じ数字が生成されます。
PCのシステム時刻を擬似乱数生成のシード値に使っていたということは、KPMで生成されるパスワードは、システム時刻が同一であれば同じパスワードを生成していたということになります。
また、KPMの画面ではパスワード生成時に、大量の文字列が流れるアニメーションが表示する演出が採用されていました。このアニメーションの再生時間が1秒以上なので、1秒以内にパスワード生成ボタンを押すことがなく、この問題の発覚が遅れたと調査チームは指摘しています。
2010年から2021年までを秒に換算すると、およそ3億1561万9200秒になります。つまり、2010年から2021年までにKPMで生成されたパスワードは3億1561万9200パターンしかないということになります。調査チームによれば、3億1561万9200パターンのパスワードに総当たり攻撃をしかける場合、たった数分で突破できてしまうとのこと。また、アカウントの作成時刻はある程度絞られることを考えると、秒単位で突破される可能性も高いといえます。
このKPMのパスワード生成に関する脆弱性について、調査チームは2019年6月にレポートと概念実証をカスペルスキーに送信。カスペルスキーはこの脆弱性に「CVE-2020-27020」という識別子を割り振り、2020年10月に修正パッチを配布しました。また、ユーザーへは修正パッチをインストールした後にパスワードを再生成するように勧告しています。なお、影響を受けるのはWindows版・iOS版・Android版で、以下のバージョン以前のものとなります。
・Kaspersky Password Manager for Windows 9.0.2 Patch F
・Kaspersky Password Manager for Android 9.2.14.872
・Kaspersky Password Manager for iOS 9.2.14.31
トレンドマイクロのWindows版「パスワードマネージャー」に複数の脆弱性
修正版は自動配信中。バージョンがv5.0.0.1223およびそれ以降になっていることを確認
2021/07/06
脆弱性ポータルサイト「JVN」は7月5日、トレンドマイクロ製「パスワードマネージャー」に複数の脆弱性が存在すると発表した。同社が提供する情報をもとに、最新版へアップデートするよう呼び掛けている。
トレンドマイクロによると、今回修正された脆弱性は以下の2件(カッコ内はCVSS 3.0の基本値)。Windows版「パスワードマネージャー」v5.xに影響する。
- CVE-2021-32461:ローカルでログインした攻撃者がバッファオーバーフローを引き起こし、権限昇格が行われる(7.0)
- CVE-2021-32462:攻撃者がリモートからコードを実行しレジストリを操作することで、権限昇格が行われる(8.8)
6月30日現在、本脆弱性を利用した攻撃は確認されていないとのこと。アップデートは自動配信されており、バージョンがv5.0.0.1223およびそれ以降になっていれば問題はない。
トレンドマイクロ製パスワードマネージャーに複数の脆弱性
独立行政法人情報処理推進機構(IPA)および一般社団法人JPCERT コーディネーションセンター(JPCERT/CC)は7月5日、トレンドマイクロ製パスワードマネージャーにおける複数の脆弱性について「Japan Vulnerability Notes(JVN)」で発表した。
2021/07/07
独立行政法人情報処理推進機構(IPA)および一般社団法人JPCERT コーディネーションセンター(JPCERT/CC)は7月5日、トレンドマイクロ製パスワードマネージャーにおける複数の脆弱性について「Japan Vulnerability Notes(JVN)」で発表した。影響を受けるシステムは以下の通り。
パスワードマネージャー 5.x Windows 版 (5.0.0.1223 より前のバージョン)
JVNによると、トレンドマイクロ製パスワードマネージャーには複数の脆弱性があり、想定される影響は各脆弱性により異なるが、整数切り捨て動作不備によるバッファオーバーフロー及び権限昇格、リモートコード実行による権限昇格の可能性がある。
トレンドマイクロ株式会社では、パスワードマネージャー向けのアップデートを公開しており、最新版へアップデートするよう呼びかけている。