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

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

Хакер, номер #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

Выпуски журнала "Xakep"
Журнал Хакер. Содержание номера #001Журнал Хакер. Содержание номера #002Журнал Хакер. Содержание номера #003Журнал Хакер. Содержание номера #004Журнал Хакер. Содержание номера #005Журнал Хакер. Содержание номера #006Журнал Хакер. Содержание номера #007Журнал Хакер. Содержание номера #008Журнал Хакер. Содержание номера #009Журнал Хакер. Содержание номера #010Журнал Хакер. Содержание номера #011Журнал Хакер. Содержание номера #012Журнал Хакер. Содержание номера #013Журнал Хакер. Содержание номера #014Журнал Хакер. Содержание номера #015Журнал Хакер. Содержание номера #016Журнал Хакер. Содержание номера #017Журнал Хакер. Содержание номера #018Журнал Хакер. Содержание номера #019Журнал Хакер. Содержание номера #020Журнал Хакер. Содержание номера #021Журнал Хакер. Содержание номера #022Журнал Хакер. Содержание номера #023Журнал Хакер. Содержание номера #024Журнал Хакер. Содержание номера #025Журнал Хакер. Содержание номера #026Журнал Хакер. Содержание номера #027Журнал Хакер. Содержание номера #028Журнал Хакер. Содержание номера #029Журнал Хакер. Содержание номера #030Журнал Хакер. Содержание номера #031Журнал Хакер. Содержание номера #032Журнал Хакер. Содержание номера #033Журнал Хакер. Содержание номера #034Журнал Хакер. Содержание номера #035Журнал Хакер. Содержание номера #036Журнал Хакер. Содержание номера #037Журнал Хакер. Содержание номера #038Журнал Хакер. Содержание номера #039Журнал Хакер. Содержание номера #040Журнал Хакер. Содержание номера #041Журнал Хакер. Содержание номера #042Журнал Хакер. Содержание номера #043Журнал Хакер. Содержание номера #044Журнал Хакер. Содержание номера #045Журнал Хакер. Содержание номера #046Журнал Хакер. Содержание номера #047Журнал Хакер. Содержание номера #048Журнал Хакер. Содержание номера #049Журнал Хакер. Содержание номера #050Журнал Хакер. Содержание номера #051Журнал Хакер. Содержание номера #052Журнал Хакер. Содержание номера #053Журнал Хакер. Содержание номера #054Журнал Хакер. Содержание номера #055Журнал Хакер. Содержание номера #056Журнал Хакер. Содержание номера #057Журнал Хакер. Содержание номера #058Журнал Хакер. Содержание номера #059Журнал Хакер. Содержание номера #060Журнал Хакер. Содержание номера #061Журнал Хакер. Содержание номера #062Журнал Хакер. Содержание номера #063Журнал Хакер. Содержание номера #064Журнал Хакер. Содержание номера #065Журнал Хакер. Содержание номера #066Журнал Хакер. Содержание номера #067Журнал Хакер. Содержание номера #068Журнал Хакер. Содержание номера #069Журнал Хакер. Содержание номера #070Журнал Хакер. Содержание номера #071Журнал Хакер. Содержание номера #072Журнал Хакер. Содержание номера #073Журнал Хакер. Содержание номера #074Журнал Хакер. Содержание номера #075Журнал Хакер. Содержание номера #076Журнал Хакер. Содержание номера #077Журнал Хакер. Содержание номера #078Журнал Хакер. Содержание номера #079Журнал Хакер. Содержание номера #080Журнал Хакер. Содержание номера #081Журнал Хакер. Содержание номера #082Журнал Хакер. Содержание номера #083Журнал Хакер. Содержание номера #084Журнал Хакер. Содержание номера #085Журнал Хакер. Содержание номера #086Журнал Хакер. Содержание номера #087Журнал Хакер. Содержание номера #088Журнал Хакер. Содержание номера #089Журнал Хакер. Содержание номера #090Журнал Хакер. Содержание номера #091Журнал Хакер. Содержание номера #092Журнал Хакер. Содержание номера #093Журнал Хакер. Содержание номера #094Журнал Хакер. Содержание номера #095Журнал Хакер. Содержание номера #096Журнал Хакер. Содержание номера #097Журнал Хакер. Содержание номера #098Журнал Хакер. Содержание номера #099Журнал Хакер. Содержание номера #100Журнал Хакер. Содержание номера #101Журнал Хакер. Содержание номера #102Журнал Хакер. Содержание номера #103Журнал Хакер. Содержание номера #104Журнал Хакер. Содержание номера #105Журнал Хакер. Содержание номера #106Журнал Хакер. Содержание номера #107Журнал Хакер. Содержание номера #108Журнал Хакер. Содержание номера #109Журнал Хакер. Содержание номера #110Журнал Хакер. Содержание номера #111Журнал Хакер. Содержание номера #112Журнал Хакер. Содержание номера #113Журнал Хакер. Содержание номера #114