Несколько лет уже существующий www.viruslist.com обзавелся новыми зеркалами www.securelist.com и www.securelist.ru. Владельцем новоявленного триптиха является “Лаборатория Касперского”, ведущий производитель систем защиты от вредоносного и нежелательного ПО, хакерских атак и спама (в этот же портал влился и www.spamtest.ru господина Ашманова). Главным редактором сайта стал Александр Гостев, руководитель Центра глобальных исследований и анализа угроз “Лаборатории Касперского”.
Как это обычно бывает в российском сегменте информационной безопасности, о безопасности веб-ресурса “про безопасность” можно слагать песни — как говорил известный поэт-песенник, “столько песен сложено, слажаю еще одну…”
Давайте посмотрим, чему может нас научить этот на самом деле замечательный информационный портал. Во-первых, пароли пользователей на нем хранятся в открытом виде, что будет весьма приятно тому, кто доберется до базы данных (интересно, пароль администратора сайта тоже в открытом виде? в таблице users?). Такой вывод можно сделать, банально запросив утерянный пароль:

Итак, урок от avschool №1 — храните пароли пользователей в Интернет-базах данных в открытом виде, чтобы их было легче украсть и использовать, когда украдете.
Кстати, как там поживают пользователи? Как и на всяком форуме, здесь есть страничка с информацией о пользователях:

Адрес страницы с пользовательским профилем: “http://www.securelist.com/ru/userinfo/номер_UID_пользователя“. Путь к профилям статичен и информацию о пользователях можно собрать с помощью автоматических средств (благо разметка стилей позволяет быстро автоматизировать процесс). Немного посканировав, можно увидеть, что пользователи добавлялись блоками (видимо для разных исходных сайтов — spamtest.ru, viruslist.com). Текущие регистрации открыты с позиций с номерами 19000.
В процессе регистрации пользователю предлагают указать два имени — одно для наглядного отображения на этой странице и еще одно в качестве имени учетной записи (login) для входа… Контроля качества пароля при этом нет. Контроля совпадения имени учетной записи и отображаемого имени пользователя также нет. Зачем это нужно? Резонный вопрос в ответ — а зачем тогда различать эти имена? Думаете, чтобы труднее было угадать “login” для входа? Запомним в уме этот коварный ход и смотрим дальше.
При вводе любого имени и пустого пароля, нам скажут, что пароль не указан:

Дальше — интереснее. Вот, что получается при вводе несуществующего имени учетной записи:

Сейчас будет тест на внимательность:

Да-да-да. Есть целых три варианта ответов: “Не указан пароль!”, “Неправильно введен логин или пароль!”, “Неправильный пароль!“. Если имя учетной записи правильное, а пароль нет — нам выдадут сообщение, подтверждающее корректность имени учетной записи — “Неправильный пароль!“…
Урок №2 — давайте автоматическим переборщикам паролей шанс. Можно даже не писать свой — достаточно использовать THC-Hydra (у этой старушки есть все необходимое). Постойте, куда же Вы? А-а-а… писать переборщик паролей? Ну, тогда учтите, что и cookie на этом сайте выставляют очень удобным для тотального опробования образом. Как? Давайте немного углубимся в дебри веб-аутентификации — насколько она здесь “bullet-proof”?
Как только веб-браузер подключается к сайту www.securelist.com, ему тут же отдают следующий набор cookie:
Параметр uid — это порядковый номер сеанса работы с сайтом, кодированный с помощью алгоритма BASE64:
00 00 00 02 4A 65 AB 57 70 CD 77 8C 0C 37 E1 02 ….Je.Wp.w..7…
Параметр VLUserkaspru заполняется только после успешной авторизации и состоит из двух частей — номера пользователя (он полностью совпадает с номером в страницах профилей — см.выше) и авторизационной части:
Самое интересное — это распределение значений параметра “uid”. Первые 4 и один последний байты неизменны, каков бы ни был посетитель. Если последовательно запрашивать значения uid, то изменяться будут только 3 байта из 16:
вариант № 1:
вариант № 2:
вариант № 3:
Получить вместо 2^128 всего лишь 2^24 вариантов… С учетом того, что это идентификатор работы одного из пользователей… Готов урок № 3 — делайте угадываемые номера сеансов и простые параметры cookie, они помогут при фиксации сеанса.
Так что, дерзайте. Тем более, что для нового автора блога надо набрать всего лишь 100 очков за комментарий… пользователи нам помогут. (-:
PS. За отдельную плату могу предоставить “аналитикам по ИБ” сведения о количестве пользователей сайта, использующих пароль “123456″.
Как это обычно бывает в российском сегменте информационной безопасности, о безопасности веб-ресурса “про безопасность” можно слагать песни — как говорил известный поэт-песенник, “столько песен сложено, слажаю еще одну…”
Давайте посмотрим, чему может нас научить этот на самом деле замечательный информационный портал. Во-первых, пароли пользователей на нем хранятся в открытом виде, что будет весьма приятно тому, кто доберется до базы данных (интересно, пароль администратора сайта тоже в открытом виде? в таблице users?). Такой вывод можно сделать, банально запросив утерянный пароль:

Итак, урок от avschool №1 — храните пароли пользователей в Интернет-базах данных в открытом виде, чтобы их было легче украсть и использовать, когда украдете.
Кстати, как там поживают пользователи? Как и на всяком форуме, здесь есть страничка с информацией о пользователях:

Адрес страницы с пользовательским профилем: “http://www.securelist.com/ru/userinfo/номер_UID_пользователя“. Путь к профилям статичен и информацию о пользователях можно собрать с помощью автоматических средств (благо разметка стилей позволяет быстро автоматизировать процесс). Немного посканировав, можно увидеть, что пользователи добавлялись блоками (видимо для разных исходных сайтов — spamtest.ru, viruslist.com). Текущие регистрации открыты с позиций с номерами 19000.
В процессе регистрации пользователю предлагают указать два имени — одно для наглядного отображения на этой странице и еще одно в качестве имени учетной записи (login) для входа… Контроля качества пароля при этом нет. Контроля совпадения имени учетной записи и отображаемого имени пользователя также нет. Зачем это нужно? Резонный вопрос в ответ — а зачем тогда различать эти имена? Думаете, чтобы труднее было угадать “login” для входа? Запомним в уме этот коварный ход и смотрим дальше.
При вводе любого имени и пустого пароля, нам скажут, что пароль не указан:

Дальше — интереснее. Вот, что получается при вводе несуществующего имени учетной записи:

Сейчас будет тест на внимательность:

Да-да-да. Есть целых три варианта ответов: “Не указан пароль!”, “Неправильно введен логин или пароль!”, “Неправильный пароль!“. Если имя учетной записи правильное, а пароль нет — нам выдадут сообщение, подтверждающее корректность имени учетной записи — “Неправильный пароль!“…
Урок №2 — давайте автоматическим переборщикам паролей шанс. Можно даже не писать свой — достаточно использовать THC-Hydra (у этой старушки есть все необходимое). Постойте, куда же Вы? А-а-а… писать переборщик паролей? Ну, тогда учтите, что и cookie на этом сайте выставляют очень удобным для тотального опробования образом. Как? Давайте немного углубимся в дебри веб-аутентификации — насколько она здесь “bullet-proof”?
Как только веб-браузер подключается к сайту www.securelist.com, ему тут же отдают следующий набор cookie:
VLUserkaspru = _ uid = AAAAAkpkaNy0aU4CQQnfAg==
Параметр uid — это порядковый номер сеанса работы с сайтом, кодированный с помощью алгоритма BASE64:
00 00 00 02 4A 65 AB 57 70 CD 77 8C 0C 37 E1 02 ….Je.Wp.w..7…
Параметр VLUserkaspru заполняется только после успешной авторизации и состоит из двух частей — номера пользователя (он полностью совпадает с номером в страницах профилей — см.выше) и авторизационной части:
VLUserkaspru = 19434:19HsMQI/mz8hE
Самое интересное — это распределение значений параметра “uid”. Первые 4 и один последний байты неизменны, каков бы ни был посетитель. Если последовательно запрашивать значения uid, то изменяться будут только 3 байта из 16:
вариант № 1:
00000007: 88 57 0000000D: 3E 37 0000000E: D1 E1
вариант № 2:
00000007: 57 1F 0000000D: 37 30 0000000E: E1 3F
вариант № 3:
00000007: BF 21 0000000D: 23 0E 0000000E: DD 12
Получить вместо 2^128 всего лишь 2^24 вариантов… С учетом того, что это идентификатор работы одного из пользователей… Готов урок № 3 — делайте угадываемые номера сеансов и простые параметры cookie, они помогут при фиксации сеанса.
Так что, дерзайте. Тем более, что для нового автора блога надо набрать всего лишь 100 очков за комментарий… пользователи нам помогут. (-:
PS. За отдельную плату могу предоставить “аналитикам по ИБ” сведения о количестве пользователей сайта, использующих пароль “123456″.