Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Какие бывают атаки?

Рубрика: Безопасность -> Уязвимости Linux-сервера
Метки:
Пятница, 16 января 2009 г.
Просмотров: 5498

Самая большая уязвимость в Linux в том, что она позволяет использовать простые пароли (вроде 123456 или qwerty) или вообще не использовать пароль. Да, обычный пользователь, скорее всего, не сможет установить такой пароль, но в большинстве случаев пароль назначается пользователем root, которому разрешено устанавливать любые пароли, в том числе и 12345.


     Администратор, то есть root, для себя установит «хороший», сложный пароль, а вот для пользователя - какой тот попросит. А ведь пользователь не пожелает пароля в виде Rjv3$gh!5jvFn5. Он попросит пароль попроще. Такой пароль может скомпрометировать всю систему, а затем и сеть. Ведь подобрать простой пароль методом brute force - проще простого, к тому же этот процесс давно уже автоматизирован.

     К тому же у пользователя зачастую один пароль для всего: и для входа в систему, и для какого-то приложения, и для Web-почты. Большинство приложений, правда, сохраняет пользовательские пароли в зашифрованном виде, но все равно существует риск их взлома, поэтому лучше для входа в систему использовать совершенно другой пароль.

     Программы регистрации, например программа login, для проверки подлинности пользователя запрашивает его пароль, зашифровывает его, а потом сравнивает с уже зашифрованным паролем из /etc/shadow. Если они совпадают, значит, исходные (незашифрованные) пароли тоже совпадают, и пользователю можно зарегистрироваться в системе.

     Наиболее часто используемый метод шифрования MD5 очень стойкий, единственный способ узнать исходный пароль - это перебор пароля. При этом хэшируется каждая возможная комбинация символов и затем сравнивается с хэшем пароля. Если они совпадают, значит, пароль найден. Данный метод называется brute force, что в переводе с английского означает «грубая сила», поскольку «умом» взять хэш нельзя и приходится действовать «в лоб».

     Пароль в Linux может состоять из 98 различных символов. Даже если пользователь установил пароль длиной 4 символа, нам придется перебрать более 90 миллионов различных комбинаций (98^4). Кажется, что это очень много. Но на самом деле все выглядит еще страшнее. На обычной машине с процессором частотой 1 ГГц подбор 4-символьного пароля методом brute force, если он закодирован с помощью MD5, займет около часа.

     Пароль из пяти символов будет подбираться около 3 дней, а вот подбор 6-символьного пароля, который обычно и устанавливается пользователями, займет около года. Конечно, если злоумышленнику повезет, то нужный пароль может быть «угадан» за сутки. К тому же большинство пользователей для пароля используют только нижний регистр символов.

     Если не учитывать символы в верхнем регистре, то за пару суток пароль может быть легко подобран методом brute force. Но если учитывать максимальное время подбора пароля, то нужно понимать, что за год пароль может поменяться, причем не один раз. Но, если у вас будет процессор с частотой 10 ГГц или 10 компьютеров по 1 ГГц, ваши шансы возрастут в 10 раз.