![画像](https://habrastorage.org/getpro/habr/post_images/49e/94d/6e5/49e94d6e54a4398855d1ffe35e035bd5.png)
いくつかのパターンを見ることに興味があり、この目的のために、2014年に流出したパスワードのデータベースを取得しました。Yandex、Google、Mailruから、600万件のエントリがありました。
データ処理
抽出されたデータは3つのテキストファイルで、login @ domain.ru:標準形式のpasswdには、さまざまなメールサービスからのログインとパスワードが含まれていました。 エントリの総数は約600万です。
このような巨大なデータ配列の処理は簡単な作業ではありませんでした。たとえば、テキストファイルに区切り文字を作成すると思った文字はすべて 、ログインまたはパスワードの中に見つかりました。 はい、あらゆる種類の引用符、キーボードにない特殊文字(例:§)、さらにはタブもありました。
一般に、ログインとパスワードには@と ":"の記号が含まれているため、「ログイン」、「ドメイン」、「パスワード」フィールドに分離するためのファイルの正確な解析は思いつきませんでした。 たとえば、このタイプの文字列を自動的に解析する方法:
user @ mail.ru @ gmail.com:123123 (最初の@はログインを指し、2番目はドメインを指します)
user:123@mail.ru:@ 123123 (最初の@はドメイン、2番目はパスワードを表します)
データはドメインごとにグループ化されました。 合計で、7423個のドメインが見つかりました。 100万回以上、gmail.com、mail.ru、yandex.ruがあります
興味深いことに、ドメインgmail.com777は295回見つかりました。 多くの場合、gmail.comドメインといくつかのセブンがあります。 この理由は私には謎のままです。 なぜ数字の7が明確でないのか。
さらに、すべてのドメインは、GMAIL MAILRU YANDEX OTHERの4つのグループにグループ化されました。 この郵便サービスに属する、またはこの郵便サービスに属するドメインは1つのグループになりました(たとえば、mail.ru、bk.ru、list.ru、inbox.ruなどのドメインがメールに含まれていました)。レコードの分布は次のとおりです。
ドメイン数
Gmail 2308234
MAILRU 1978822
ヤンデックス1640733
その他158896
その後、データを分析する準備ができたと判断しました。
データ分析:ボット仮説
ネットワークに漏洩したアカウントのほとんどがボットによって作成されたという仮説を確認しましょう。
私が思いついた最初の基準は、ログインのランダムな文字列です。 検証のために、6,000回のログインのランダムサンプルを取得し、単に目で見てみました。 速度の点では、これが最も最適なオプションです;スクリプトの作成には時間がかかります。 基準は確認されていません-ランダムなログインはほとんどありません。 6,000のログインのサンプルがランダムに生成したのは20以下です。
次の基準は、パスワードの長さの分布です。 ログインの長さの分布を見てみましょう-これは均一な分布であり、パスワードについては言えません。
![画像](https://habrastorage.org/getpro/habr/post_images/edf/698/75c/edf69875c6ed014657a1a45c9f427ac6.png)
![画像](https://habrastorage.org/getpro/habr/post_images/c2a/9fa/911/c2a9fa911930c4619d56f00abe6b4dfc.png)
ノッキング値は、6、8、および10文字の長さの領域で明確に表示されます。 おそらく、これらはボットに属する可能性のある非常に自動生成されたパスワードです。
次に、量の一様分布からそのような「外れ値」の数を計算します。 これを行うために、単純に滑らかな曲線を作成するだけで、列6、8、10の期待値を計算し、実際の値との差を見つけました。
結果
長さ6:1010907
長さ8:763313
長さ10:246115
合計:2020335
長さ8:763313
長さ10:246115
合計:2020335
結論:約200万(つまり、3分の1)のパスワードが人為的に生成されます。
異なるドメインのログインパスワードペアの一致
さて、この調査の目的は次のとおりです。異なる電子メールサービスに同じパスワードを設定する頻度と、その安全性を確認したかったのです。
ドメインごとにデータを4つのサブグループに分割し、ログイン、およびログインとパスワードのペアごとに共通部分を探します。 結果:
ドメインペア | 一致するユーザー名 | 一致するユーザー名/パスワードのペア |
GMAIL-MAILRU | 2362 | 121 |
GMAIL-YANDEX | 2421 | 215 |
MAILRU-ヤンデックス | 42005 | 33313 |
GMAIL-その他 | 924 | 63 |
ヤンデックス-その他 | 7075 | 6732 |
MAILRU-その他 | 4085 | 3339 |
gmailとロシア語を話すドメインの交差点は、mail.ruとYandexの交差点よりもはるかに小さいことがわかります。 また、Gmailで90%を超えるユーザーが新しいパスワードを作成した場合、Yandexメールペアでは80%のパスワードが同じであることがわかります。
クロスパスワードセキュリティチェック
次に、これらの一致するパスワードが何であるか、どれだけ安全かを見てみましょう。 これを行うには、最初に上位のパスワードを作成します。 600万のパスワードのうち、320万は一意であり、残りは少なくとも1回複製されます。 上部のサイズを選択してみましょう。何人がメールボックスを持つことができますか? 40を超えることはまずありません。次に、上位5000のパスワードを取得します。低い頻度は40です。これは、パスワードが上位5000にある場合、マージされたデータに40回以上表示されることを意味します。 。 ここで、交差点からのパスワードがそのようなトップに入る数を見てみましょう。
mailru-yandex交差点(合計33313交差点):
トップ5000:2485個のパスワード(7.4%)
上位100:575個のパスワード(1.7%)
興味深いことから:この選択からの最初の場所では、パスワードは123456です。奇妙なことに、2番目の場所では、パスワードはnatashaです。 一般的に、上部の女性の名前は非常に一般的です。
Gmailの交差点-mailru(合計121の交差点)
トップ5000:12個のパスワード
上位100:7個のパスワード
結論:パスワードの80%は同一のログインでも同じですが、これらのパスワードの93%は完全に安全です。
また、おやつとして-上位5000に入っているgmail-mailruの交差点からのパスワード:
パスワード
123456
262626
12345
ロパタ
天才
qwerty
qwe123
うだちゃ
1234
スベトラーナ
1q2w3e4r
azsxdcfv
262626
12345
ロパタ
天才
qwerty
qwe123
うだちゃ
1234
スベトラーナ
1q2w3e4r
azsxdcfv
黒い考古学に関する次の投稿では、マイニングの日付は次のとおりです。ログインとパスワード(完全および部分的)の一致をチェックし、パスワードに関する真実と神話に関する他の研究を行います。