Михаил Флёнов - Linux глазами хакера
14.1.4. Защита рабочего места
Охрана рабочего места является не менее важной, чем защита ОС и ее сервисов. Когда мне пришлось работать программистом в большой компании, в мои обязанности входили: разработка модулей сбора информации с производственного оборудования, настройка и установка сервера с программой в цех и сопровождение ПО. Для каждого компьютера я выбрал разные пароли, которые были сложными для запоминания.
Я хорошо позаботился о безопасности, но через некоторое время, когда пришел снимать копию базы данных на случай краха системы, увидел на мониторе написанный маркером пароль. Возникает вопрос — зачем я мучился и придумывал хитрую комбинацию, когда любой проходящий мимо работник фирмы или даже посторонний мог ее увидеть?
Начинающие пользователи не любят запоминать сложных вещей, поэтому рисуют пароли на мониторе, клавиатуре или на листиках, которые лежат прямо на столе, тогда все попытки обезопасить систему бессмысленны.
Защищать рабочее место нужно так же, как и доступ по сети. Из моей практики могу сказать, что большинство взломов происходят именно из-за безответственного отношения самих пользователей.
Для предохранения рабочего места следуйте следующим рекомендациям:
1. Никогда не записывайте пароли на листиках и других заметных и легко доступных местах. Потратьте немного времени, чтобы запомнить основные кодовые комбинации.
2. Отходя от компьютера, блокируйте клавиатуру утилитами vlock или xlock, или выходите из системы, чтобы в ваше отсутствие никто и ничего не мог делать.
3. Если хакер получил доступ к клавиатуре работающего компьютера, поменяйте пароль текущего пользователя — это дело пяти секунд. Никогда не надейтесь на хранитель экрана, потому что пока он включится, вы потеряете контроль над своей учетной записью. Я отключаю хранитель экрана, чтобы его наличие не смущало меня, а вместо этого выработал привычку всегда блокировать работу компьютера.
4. Если вы используете графический режим, то никогда не держите ярлыки на рабочем столе. На экране могут быть видны только значки по умолчанию, а если поместить туда ссылку на чужой компьютер, с которым вы работаете, то хакер увидит это. Такая информация может сильно развязать руки злоумышленнику.
5. Необходимо разрешать вход в BIOS (Basic Input Output System, базовая система ввода вывода) только с помощью пароля. Если хакер получил физический доступ к компьютеру, то он сможет его перезагрузить в однопользовательском режиме и далее взломать пароль root.
6. Защищайте паролем загрузку ОС в конфигурационном файле LILO. Проблемы загрузчика мы рассматривали в разд. 3.2.
7. Перезагрузка компьютера не должна быть случайной или незапланированной. Отключите в файле /etc/inittab строку, отвечающую за сочетание клавиш <Ctr>+<Alt>+<Del>.
14.1.5. Документация по безопасности
Многие считают документацию уделом бюрократов и категорически не пишут никаких инструкций или других руководств. Я сам до поры до времени был таким и предпочитал следить за системой самостоятельно, пока она не стала слишком сложной, что не охватить одному, и не произошел взлом.
Мы рассмотрим много рекомендаций по обеспечению безопасности, и впоследствии многие правила станут для вас родными, — вы будете знать, как действовать во время и после взлома. Но пользователи останутся в неведении.
Рассмотрим простейший пример. Хакер проник в систему и получил исключительные права root. Вы закрываете уязвимость и меняете пароль администратора, но хакер возвращается в систему. Почему? Во время взлома хакер мог украсть файлы /etc/passwd и /etc/shadow и расшифровать пароль (подобрать с помощью специализированных утилит для хранящихся в файле зашифрованных его версий). После взлома все пользователи должны поменять свои пароли. Для решения этого вопроса есть два способа:
1. Самостоятельно сгенерировать пароли и раздать пользователям. В большой организации это удобно, потому что можно быть уверенным, что все пароли изменены, но с передачей могут быть проблемы.
2. Написать инструкцию по безопасности, которая обяжет всех пользователей по первому сигналу администратора сменить свои пароли. Этот документ должен быть прочитан всеми сотрудниками.
Из своей практики могу посоветовать использовать комбинацию этих двух методов: пользователи сами должны сменить пароли, но если этого не произошло в течение 3 часов после сигнала, то пароль меняется автоматически. В этом случае уже пользователи будут бегать к вам, чтобы узнать, как войти в систему.
Помимо этого, в инструкции по безопасности должны быть рекомендации по составлению сложного и длинного пароля, а вы просто контролируйте выполнение.
Через документацию вы можете заставить работников различных служб помогать вам в обеспечении безопасности. Например, администраторы серверов не могут отследить, когда увольняется кто-то из сотрудников. А ведь после ухода уже бывший служащий может отдать свои параметры доступа другому человеку, и он проникнет в систему.
Случаи со взломами, совершенные бывшими сотрудниками, случаются достаточно часто. Я сам неоднократно столкнулся с этим, когда администратор был уволен, но никто не изменил пароли. Через пару дней все файлы на сервере были уничтожены. Я в это время работал программистом в той фирме, и все сотрудники отдела ИТ в срочном порядке восстанавливали данные.
14.1.6. Пароли
Не буду повторяться, что пароли должны быть сложными, а поговорим немного о другом.
Все пароли необходимо менять через определенные периоды времени. На своем сайте (а к нему имеют доступ достаточно много человек) я это делаю каждый месяц, потому что в Интернете слишком много хакеров, которые только и ищут легкую добычу.
На серверы я также меняю пароли каждый месяц, а на особо важные — даже каждую неделю. Это сложно, потому что нужно постоянно запоминать новые комбинации, зато более безопасно.
Единственное, что не меняется, — это пароль на вход в Windows на моем ноутбуке. Со своим компьютером я работаю один и никого не подпускаю. Не потому, что боюсь обнародовать что-то важное, а больше опасаюсь случайной потери данных.
Многие хакеры, получая доступ к системе, некоторое время не проявляют никакой активности. Они осматриваются, знакомятся с принципами работы системы и определяются, как сделать, чтобы их не вычислили. Быстрые действия можно ожидать только от того, кто проникает в систему ради уничтожения всех данных, и кому нет смысла уничтожать следы своего пребывания. Слава богу, что таких взломов не так уж и много.
Итак, проникнув в систему, хакер будет незаметно сидеть в ней, и вы можете ничего не заподозрить. Но если каждый месяц меняется пароль, то после очередной смены злоумышленник теряет свои права, и требуется повторный взлом для выявления нового пароля.
Регулярное обновление паролей усложняет подбор. Как это происходит. Многие автоматизированные системы выявления атак могут без проблем определить, когда на отдельную учетную запись авторизуются несколько раз подряд. Чтобы обойти такие системы, хакеры проверяют пароли с определенной задержкой. Это делает взлом дольше, но, в конце концов, даст результат, если пароль несложный и постоянный. Если пароль изменчив, то вероятность успеть его подобрать до очередной смены становится очень низкой.
Чтобы увидеть это на примере, представим, что пароль может содержать только числа. Допустим, что на первоначальном этапе он был равен 7 000 000. Хакер тупым перебором прошел от 0 до 6 000 000, и в этот момент пароль меняется на 5 000 000. Дальнейшее сканирование хоть до миллиарда не даст результата, потому что диапазон, в котором находится новый пароль, уже пропущен.
Второе преимущество от регулярной смены пароля заключается в том, что пока хакер будет подбирать действительно сложный пароль, он уже устареет, и воспользоваться им не удастся.
Как заставить пользователя менять пароли через определенные промежутки времени? Для этого есть утилита chage, которая имеет следующий вид:
chage параметры пользователь
В качестве параметра можно указывать следующие ключи:
□ -m N — минимальное число дней (N) до смены пароля. Указав это значение чуть меньше, чем максимальный период (см. следующий параметр), вы защитите систему от нежелательной смены паролей. Это значит, что если хакер захватит учетную запись, он не сможет изменить пароль. Конечно же, злоумышленник тоже может выполнить команду chage, но только если у него есть права администратора. Три-четыре дня разницы между минимальным и максимальным значением необходимы для того, чтобы пользователь смог сменить пароль, пока он не устарел. Меньше 3 дней нежелательно, потому что существуют выходные, и если срок действия попадет на воскресенье, пользователь не успеет сменить пароль. По умолчанию стоит значение -1, что соответствует отсутствию проверки;