История падения

Михаил Ромашов

Хакер, номер #019, стр. 019-050-1

- Не пробуй эту гадость! Привыкнешь, и твоя

жизнь не будет стоить ломаного цента.

Этим летом исполняется 4 года всеми нами "любимой" фирме Мирабилис. Путь, пройденный этой фирмой за столь небольшой срок, поражает. За эти четыре года несколько израильских программистов превратили это неказистое воплощение своих идей в солидную организацию, предоставлявшую свои услуги более чем семидесяти миллионам людей во всем мире. Вы подумали, что я собрался петь дифирамбы? Ничего подобного. Наоборот, моя статья, посвященная истории Мирабилиса, поведает вам обо всех известных мне ошибках и ляпах, допущенных программистами при создании и доработке сервиса ICQ.

Начнем с истории

Фирма Мирабилис основана в июле 1996 года четырьмя израильскими программистами. Yair Goldfinger (26, Главный технарь, uin# 80000), Arik Vardi (27, Главный управляющий, uins# 60000, 66666), Amnon Amir (24, Главный мыслитель) и Sefi Vigiser (25, Президент, uin# 70000).

Само название фирмы происходит от латинского слова mirabilis, в переводе означающее - удивительный. Знаменателен тот факт, что это же слово дало название осадочному минералу мирабилиту, или же глауберовой соли. Данный минерал используется в медицине как мощное слабительное. Это явное предупреждение всем нам - пользуясь услугами Мирабилиса, слишком на них не полагайтесь, иначе однажды вас может "пронести" по полной программе.

Начало истории

В ноябре 96 года запустили версию 1.113, предназначенную для общего использования. К тому времени уже использовалась вторая версия протокола связи клиента с сервером, а количество пользователей перевалило за 10000. Четырехзначные юины были тестовые и регистрировались программистами в период отладки предыдущей версии протокола в качестве пробных. На многих из них были установлены пароли нулевой длины, что уже не допускалось в общедоступной версии. В начале 99 года все они были стерты из базы данных Мирабилиса. Три аси на тот момент использовались российскими юзерами. На наши запросы о причине удаления этих юинов админы Мирабилиса делали большие квадратные глаза и говорили, что эти юины тестовые, и вы не могли их использовать ;).

Летом 97 года количество пользователей уже перевалило за миллион. В это же время был брошен первый камень в огород Мирабилиса.

HIJACK

Это была программа, написанная под Linux. Она использовала простоту и непродуманность второй версии протокола аси. Дело в том, что данный протокол, помимо того, что он был не кодированный, имел еще и ошибку, позволявшую вклиниться в процесс обмена данными между сервером и клиентом. Непродуманность протокола позволяла программе послать пакет с запросом на смену пароля от имени любого юина, находящегося в онлайне. Пакет формировался таким образом, что в нем указывался IP адрес реального пользователя атакуемой аси и новый пароль. Созданная таким образом имитация пакета принималась сервером за реальный запрос на смену пароля. Успех был полный - ведь для смены пароля на новый протокол аси не требует прислать старый.

Дыра была вскоре обнаружена и ликвидирована. Все было сделано без особых раздумий - просто отключили прием запросов на смену пароля для версии протокола, содержащей этот баг. Сам протокол не запрещался. Он до сих пор принимается сервером и позволяет пользовать асиных клиентов версии 1.113. Если вам надоели последние громоздкие версии, то завсегда можете вернуться к этому релизу.

Содержание  Вперед на стр. 019-050-2

ttfb: 2.9020309448242 ms