Нашумевшая утечка 773 млн ящиков и 22 млн паролей | Это только начало…

Вместо всей информации, совсем коротко:

Утекли:
[email protected]
[email protected]
[email protected]

[email protected] , в том числе Adobe и многие другие…

Наводит мысль о надежности некоторых сервисов. Дальше я разъясню о чем идет речь, как с этим бороться и как мыслить верно… Далее Вас ждут Разбор и ссылки и скрипты

13 Января 2019 года, Австралиец и создатель сервиса Have I Been Pwned Трой Хант (Troy Hunt) обнаружил в облачном сервисе MEGA огромную базу данных, содержавшую порядка 773 млн уникальных электронных адресов и 22 млн уникальных паролей.

После твита Ханат, статья вышла на хабре, затем распостранилась по всем крупным источникам информации.

15 Января 2019 г, загрузив ее к себе и обработав свыше 12 тыс. отдельных файлов и более 87 ГБ данных, которые включали 2 692 818 238 строк адресов и паролей, предположительно собранных из разных источников, Трой Хант попросту догрузил данные в свой сервис по проверке утечки https://haveibeenpwned.com и с его слов пришлось раскошелиться за такое пополнение «словарика»…

Судя по скриншоту на обработку потрачено 22 тысячи австралийских долларов или 15 тысяч американских или 1 000 000 рублей или 5 700 000 тенге…

Желательно, как можно раньше сменить пароль, тк утекшими данными могут воспользоваться злоумышленники.
Пару моих e-mail, также находится в этой базе данных. Я пароли уже сменил.

Если сервис выводит: Oh no — pwned!
Значит данные логин и пароль от почты скомпрометированы и их срочно необходимо сменить. Можете проверить ниже и ориентировочную причину слива.
Если выводит: Good news — no pwnage found! То все в порядке, ваших данных в этой базе нет. Но мы крайне рекомендуем все равно сменить пароль на всех сервисах, а вот почему, пояснения ниже…
С одной стороны все красиво реализовано, но вот следом за этой шумной новостью вышла еще одна статья на хабре о вреде пользования подобными сервисами по проверке утекших данных, а до этого такая статья https://habr.com что по сути утекает и будет утекать…
Но давайте разберем, ведь ясное дело, что Марк не стал бы с личных денег тратить 22 штуки кенгурушных денег, а все таки или у него крутые спонсоры, или он продает или что-то недоговаривает или все же есть такие интузиасты. В статье о предостороженности слива базы почтовых ящиков с неимеющимися пока паролями или ограничением выдачи может быть доля правды, но все же, если Вы тотально не доверяете сервису, то подраскинув серым веществом, можно попробовать поступить по другому.

Скачать можно имеющийся список и самому проверить локально:

https://haveibeenpwned.com/Passwords в разделе Downloading the Pwned Passwords list

Проверку хэша по базе можно сделать и руками на самом сервисе без загрузки. Если префикс 12345, то отправляем сюда https://api.pwnedpasswords.com/range/12345 и получаем набор хэшей.

Вот тут сам Трой описал, как защищается пароль в этом подсервисе, т.е. передается только префикс хэша:
www.troyhunt.com/ive-just-launched-pwned-passwords-version-2#cloudflareprivacyandkanonymity

Если коротко, то надо сначала локально посчитать SHA-1 от своего пароля. В линуксе, к примеру, вот так:

echo -n yourpassword | sha1sum | awk '{print $1}'

Не забудьте отключить журнал терминала или потом его почистить.

После этого надо открыть через браузер (или любым другим способом) адрес

https://api.pwnedpasswords.com/range/{hashPrefix}

где вместо {hashPrefix} вставить первые пять символов своего посчитанного SHA-1 («префикс»). Сайт выведет все хеши паролей из базы, которые начинаются с той же комбинации символов, дальше с помощью Ctrl-F смотрим, есть ли полный хеш нашего пароля в списке (точнее, не полный, а его оставшаяся часть, идущая после префикса, который вводился в адресной строке).

Автоматизируем на Linux:

echo -n 'password' | sha1sum | awk '{prefix=substr($1,1,5); reminder=substr($1,6,35); if(system("curl -s https://api.pwnedpasswords.com/range/" prefix "> ./pwhashes.txt")){print "Error"; exit} cmd="cat ./pwhashes.txt | tr [A-Z] [a-z] | grep \"" reminder "\""; cmd | getline result; close(cmd); split(result,arr,":"); if(!length(arr[2])) print "Password not found"; else print "Password found: " arr[2]}'

Вместо ‘password‘ подставить проверяемый пароль.

Автоматизируем на Windows (Powershell):

function Check-Password($password) {
$passwordBytes = [System.Text.Encoding]::ASCII.GetBytes($password)
$hash = (Get-FileHash -InputStream ([System.IO.MemoryStream]::new($passwordBytes)) -Algorithm SHA1).Hash
$hashSuffix = $hash.Substring(5)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$hashes = (Invoke-RestMethod "https://api.pwnedpasswords.com/range/$($hash.Substring(0, 5))") -split "\s+"
$hashes | ? { $_ -like "$hashSuffix`:*" } | % { ($_ -split ":")[1] } | % { "Password is used by $_ user(s)" }
}

Check-Password (Read-Host)

Автоматизируем на Python3 для проверки своих паролей. Пароль никуда не отправляется.

import hashlib
import requests
import getpass

def test_pw(byte_string):
hasher = hashlib.sha1()
hasher.update(byte_string)
digest = hasher.hexdigest().upper()
print(f'Hash: {digest[:5]}, {digest[5:]}')
print(f'GET https://api.pwnedpasswords.com/range/{digest[:5]}')
pw_list = requests.get(f'https://api.pwnedpasswords.com/range/{digest[:5]}')
for line in pw_list.text.split('\n'):
info = line.split(':')
if info[0] == digest[5:]:
print(f'Pwned! Seen {int(info[1])} times.')
break
else:
print('Not found')

pw = getpass.getpass()
test_pw(pw.encode())

Оригинал: disq.us/p/1yy2tst

Так же можно воспользоваться плагином к KeePass для полной проверки своих имеющихшся… Ну естественно скрещиваем пальцы и надеемся, что гитхаб плагин не сольет.

Так же можно проверить слив по доменному имени:

https://haveibeenpwned.com/DomainSearch

Для самых нетерпеливых, мы нашли ссылки на сам архив, а так же на вторую его часть о которой умолчал Марк.

  1. Collection#1 — 36,25 Gb — https://files.catbox.moe/dt5ic2.torrent
  2. Collection#2 — 364.65 Gb — https://files.catbox.moe/8ntq8q.torrent

Ждем продолжения, общий слив насчитывал 7 архивов, в сумме почти на 1 Тб

Исходя из проанализированной общедоступной информации, вывод таков — меняйте все свои пароли на что-то более серьезное, не пользуйтесь ненужными сервисами и не регистрируйтесь там, где Вам действительно нет надобности, регулярно меняйте пароли и не используйте один пароль или почту для всех сервисов…

Материалами служил почти весь доступный интернет, в первую очередь хабр, секьюритилаб, твитер, гугл и прочие публичные источники.