Сводка Knoppix.ru от 18.08.2003 Никто не заметит...
Начав обзор событий первой половины августа вчерашним рассказом о выставке-конференциии LinuxWorld 2003 я, если честно, сознательно пошёл наперекор здравому смыслу, подсказывавшему, что первой и заглавной новостью после двухнедельного отпуска следует сделать не столь печальную, сколь поучительную историю, приключившуюся с FTP-архивом, принадлежащим известнейшей в мире open source организации Free Software Foundation (FSF, см. fsf.org): в конце концов, последствия LinuxWorld для всех нас если и будут ощутимы, то не сегодня и даже не завтра, а вот взлом вышеупомянутого FTP-сервера, остававшийся незамеченным на протяжении пяти (!) месяцев мог и наверняка аукнулся отдельным пользователям, вызвав нервную дрожь у других. И оттянув рассказ на день, я ни малейшим образом не желаю уменьшить значимость случившегося - просто
было необходимо подобрать материал, которым с вами сегодня и поделюсь.
Итак, началась эта история аж в марте - к счастью, нынешнего года - когда остающийся по сей день неизвестным злоумышленник сумел тайно получить права администратора на сервере gnuftp.gnu.org Сервер этот, находящийся в распоряжении FSF, задействован под проект GNU Project. Поскольку GNU является своего рода знаком качества, гарантирующим, что получившее его программное обеспечение действительно свободно, легко догадаться, что именно лежало на этом FTP-сервере - тысячи отдельных программ и пакетов, изданных под лицензией GNU GPL. Среди них были как малозначащие и редко используемые системные утилиты, так и пакеты, к помощи которых ежедневно прибегают миллионы человек во всём мире (в частности, компилятор языка Cи, GCC). Естественно, распространяются программы в форме исходных текстов.
Оговорка про тексты не случайна. Самое страшное, что взломщик (впрочем, эксперты делают оговорку: с тем же успехом это могла быть и взломщица), получив всю полноту власти параллельно с основным администратором архива, мог сделать - попытаться незаметно подкорректировать тексты выложенных на сервере программ, внедрив в них шпионские "закладки". Такие случаи известны, а, учитывая популярность данного хранилища (всё ж таки центральный архив проекта GNU), жертвами махинации могли пасть тысячи пользователей: скачав подправленную версию программы и откомпилировав её на своей машине, такие пользователи могли в перспективе потерять всё. К счастью, как уверяют специалисты FSF - обнаружившие факт взлома в конце июля - самые страшные предположения не подтвердились: судя по всему, исходные тексты программ остались нетронутыми. Что делал взломщик почти полгода? Скорее всего,
крал пароли клиентов FTP-сервера.
Полностью детали произошедшего не разглашаются, но, если судить по пресс-релизам (см. ftp://ftp.gnu.org/MISSING-FILES.README), кража логинов и паролей пользователей сервера - единственное, чем злоумышленник занимался. Полученную информацию - опять же предположительно - он мог использовать для попыток проникновения на другие серверы (не секрет, что многие из нас используют один и тот же пароль несколько раз). Как много людей пострадало от такой деятельности - неизвестно. Так или иначе, в настоящий момент "дыра" на взломанном сервере закрыта, а всё программное обеспечение перепроверено.
Из истории этой есть два интересных следствия. Прежде всего, любопытно то, как именно был осуществлён взлом. Все вы наслышаны о "злобных хакерах", которые только и делают, что ждут открытия их коллегами новой уязвимости в какой-то программе, чтобы быстро-быстро, пока разработчики программы не успели уязвимость залатать, воспользоваться ею для проникновения на чужую машину. Все слышали, но, наверное, мало кто верил в то, что такие супергерои действительно есть. История с gnuftp - живое подтверждение существования таких личностей. В марте была опубликована информация об уязвимости ptrace, посредством которой локальный пользователь в состоянии получить права администратора на Linux-компьютере. Между публикацией анонса и выходом "заплатки" прошла всего неделя - и взломщик gnuftp успел использовать это время с пользой для себя, как раз и завладев FTP-сервером GNU Project.
Второе важное следствие заключается в том, можно ли и как защититься от таких проникновений. В самом деле, гарантировать, что больше взломов крупных веб-архивов с текстами свободных программ не будет, никто не может. Но каждый из нас способен гарантировать себя от установки на компьютер поддельной версии программы - изменённой без ведома её автора или официального распространителя. Для этого используются так называемая контрольная сумма и цифровая подпись.
Контрольная сумма - штука очень простая: по сути, это сумма всех байт, составляющих ту программу, сумму для которой вы считаете. Конечно, на деле используется не просто побайтное суммирование, а более сложный алгоритм, который никогда не выдаст две одинаковых суммы для двух разных программ, но дела это не меняет: сегодня стандартом стали контрольные суммы, считаемые по алгоритму MD5. Каждая программа (в каком бы виде она ни распространялась) сопровождается такой суммой, представляющей длинное шестнадцатиричное число: что-нибудь вроде "0dc4d4fb1a5aabf63233471626656f70". Скачав программу из Сети, вам нужно обязательно проверить её MD5-сумму, что можно проделать с помощью имеющейся в каждом дистрибутиве Linux консольной утилиты md5sum (кстати, входящей в набор утилит, распространяемых GNU Project). Вот, к примеру, как считается контрольная сумма для файла под названием
a.txt:
md5sum a.txt
Сумму, полученную в результате работы md5sum на вашем компьютере, надо сравнить с той, которая была указана для оригинала программы - и если они не совпали, значит либо в процессе выкачки из Сети произошла ошибка, либо программа была кем-то изменена ещё на сервере. Работники FSF, опубликовали для всех программ, лежавших на взломанном FTP-сервере, список истинных контрольных сумм (см. ftp://ftp.gnu.org/before-2003-08-01.md5sums.asc), которыми следует воспользоваться в слуаче возникновения сомнений в неизменности выложенных на сервере программ.
Что мешает злоумышленнику, изменившему программу, изменить и контрольную сумму, публикуемую для проверки? Мешает цифровая подпись: взгляните на список контрольных сумм, ссылка на который приведена в предыдущем абзаце - он подписан цифровым криптографическим ключом по алгоритму PGP (в теле файла есть надпись "PGP SIGNED"). Проверив файл с помощью свободной программы GnuPG (также входящей во многие Linux-дистрибутивы - в частности, в ALT Linux), можно убедиться, что он не был изменён: подделать или взломать эти ключи практически невозможно. Криптографические ключи - штука интересная и многосторонняя, использовать которую можно не только для проверки истинности списков контрольных сумм, но и для тайной переписки, идентификации личности сетевого собеседника и многого другого. Впрочем, это уже отдельная большая история - которой посвящено немало статей, в том числе и
на русском языке (см. к примеру, старый, но не теряющий актуальности Русский Альбом PGP).
В очередном Совете дня читайте про русификацию Linux в случае отсутствия таковой, и - к коротким новостям:
Вы всегда можете обратиться к этой заметке, воспользовавшись адресом knoppix.ru/180803.shtml Ваши комментарии, советы и ссылки приветствуются! Пишите: knoppix@knoppix.ru