KnigaRead.com/

Михаил Флёнов - Linux глазами хакера

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Михаил Флёнов, "Linux глазами хакера" бесплатно, без регистрации.
Перейти на страницу:

Лазейки есть всегда, потому что программы пишут люди, а им свойственно ошибаться. Получается, что даже в самой защищенной программе есть дыра, просто ее, наверное, еще не нашли. Спросите любого хакера про самое защищенное ядро Linux, и он вам скажет, что последняя версия отличная и не содержит багов. Повторите вопрос через месяц, но на этот раз тоже ядро окажется дырявым и без заплаток, и с ним работать не рекомендуется.

При появлении каждой новой версии ОС мы слышим, как она надежна и безопасна, но через короткое время появляются обновления. Избежать ошибок невозможно, и с этим надо смириться и регулярно устанавливать исправления.

В большинстве случаев я бы не назвал уязвимости ошибками, потому что программы работают верно, просто хакер использует их особым образом и выводит из строя систему. Такие ситуации предусмотреть очень сложно, и задача разработчика максимально их сократить.

Итак, рассмотрим основные принципы безопасности, которые могут понадобиться в нашей повседневной жизни.

14.1.1. Ответственность

Первое, с чем необходимо разобраться, — кто должен отвечать за безопасность системы. В большинстве организаций этим занимаются администраторы, и это первая ошибка. Человек, который настраивает систему, может не иметь исчерпывающей информации по безопасности и просто не будет видеть своих ошибок.

В администрировании очень часто возникают классические ошибки обмана зрения. Я написал достаточно много работ и постоянно сталкиваюсь с такой проблемой. Когда вы читаете свой текст, то видите его таким, какой он должен быть, а не то, что есть на самом деле. Например, вы можете написать слово "горад", а читать его как "город" только потому, что так было задумано.

Ошибка в одной букве конфигурационного файла может привести к плачевным последствиям, и администратор ее может не увидеть, потому что воспринимает параметр таким, как надо. Зато любой взгляд со стороны без проблем зацепится за ошибку. Лучше всего, если таким наблюдателем будет специалист.

Администратор должен настраивать и обслуживать систему, а специалист по безопасности обязан проверять настройки и тестировать систему на уязвимости. Конечно же, оба человека должны помогать друг другу и могут быть взаимозаменяемы, но не стоит их объединять в одном лице, особенно в крупных компаниях.

Оплата высококвалифицированных специалистов должна быть достойная, и здесь не стоит экономить, потому что человеческий фактор — самая большая дыра в безопасности.

14.1.2. Защищайте только то, что нужно

Многие специалисты по безопасности рекомендуют защищать только то, что нужно. Действительно, зачем охранять мусорную корзину, когда в ней находятся одни только отходы, которые никому не нужны. Тут же вспоминается знаменитый фильм "Хакеры", в котором главные герои залезали в мусорный бак. Что они там искали? Различные документы или бумажки. Нередко пользователи записывают пароль на листочках, или им раздают параметры доступа в виде распечаток, именно это искали хакеры.

То же самое и с файловой системой. Некоторые безобидные папки могут оказаться хорошим материалом для хакера. Однажды я тестировал на безопасность систему, в которой была открыта только одна директория с файлами, содержащими тексты песен группы "Dune". Вроде бы невинная вещь, и что можно сделать через текстовые файлы?

Я запустил подбор пароля для пользователя root и в качестве словаря указал эти файлы, Каково же было мое удивление, когда я увидел, что установленный пароль root — название группы "Dune". Взлом занял всего несколько секунд!!!

Очень часто в открытые папки администраторы выкладывают информацию, связанную с их интересами, и если параметры доступа тоже заданы исходя из этих пристрастий, то и на подбор пароля потребуется не более 5 минут.

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

На данный момент известно не так уж много способов для удаленного взлома, зато, имея локальный доступ к системе, вероятность повысить свои права увеличивается в несколько раз. Защищать компьютер от проникновения по сети проще, и основным способом в этом случае является использование сетевого экрана. Если хакеру все же удалось пробраться, то тут уже все зависит от правильной политики регламентации доступа. Если хоть где-то есть ошибка, то хакер сможет получить права администратора.

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

Основными целями, которые подвергаются атакам хакеров, являются:

□ уязвимые программы ОС. Если посмотреть отчеты по безопасности, то вы увидите, что дыры в различных утилитах появляются почти каждую неделю, и программисты с администраторами только и успевают их затыкать;

□ программы сторонних разработчиков. Все программное обеспечение, которое включается в дистрибутив производителем, тщательно тестируется. Сторонние же разработчики осуществляют проверку только на своем дистрибутиве, и нет гарантии, что программа будет также безопасно и стабильно работать со всеми вариантами ОС Linux. К тому же профессионализм некоторых "чужих" разработок оставляет желать лучшего, и мы об этом уже говорили, когда рассматривали безопасность открытого программного обеспечения (см. разд. 1.3);

сценарии и программы, написанные администратором системы или программистами вашей организации. Очень часто для расширения возможностей ОС пишутся собственные сценарии (чаще всего используется интерпретатор Perl), и нередко именно они становятся причиной взлома. Только профессионал, хорошо знакомый с принципами безопасности и правилами создания кода, сможет создать защищенный сценарий или программу. Любители и простые администраторы слишком мало внимания уделяют различным проверкам параметров, чем незамедлительно воспользуется хакер.

Итак, разделение на "важно" и "неважно" должно быть. Значимые данные должны защищаться лучше, их надо шифровать и устанавливать за ними более тщательное наблюдение. Но при этом необходимо думать о системе в целом.

Были случаи, когда администраторы один сервер с закрытой информацией защищали и любили, а другой — открывали для всеобщего обозрения и использования. Это правильное решение, но между этими серверами не должно быть доверительных отношений, и имена пользователей и пароли следует делать разными. Но т.к. мы ленивые, то пароль root для всех серверов, чаще всего, один и тот же или отличается незначительно, чтобы легко было запомнить. Если не совершать этой ошибки, то решение с физически разделенными для разных задач серверами является верным решением.

14.1.3. Нет поблажек

Допустим, что вы администрируете сервер на крупном предприятии с большим количеством офисов. Это самое сложное с психологической точки зрения. Почему? Сейчас увидите.

Большинство администраторов защищают сеть от внешнего вмешательства. Но по статистике большинство взломов, причем самых жестоких, происходят внутри системы (работниками фирмы, друзьями и т.д.), потому что администраторы не выдерживают натиска друзей и коллег, требующих дать пароль или доступ к определенному ресурсу. Вы не должны поддаваться на такие уговоры. Если предоставить большие привилегии другу, он может наказать вас взломом. Пусть он будет и случайным или просто шалостью, но ликвидация последствий может оказаться достаточно проблематичной.

Безопасность — это не только надежная защита системы от взлома, но и устойчивость к неправильным действиям пользователя. Хотите пример? Их у меня много, но простейший и чаще всего встречающийся — это эффект начальника. Многие администраторы считают, что руководитель или директор фирмы должен иметь все права, чтобы иметь возможность просмотреть любую информацию. Идея хорошая, но реализуется достаточно сложно, потому что начальники, получив доступ на чтение, начинают просить право на запись, чтобы можно было что-то изменить. А это уже намного страшнее, особенно, если шеф не IBM-совместимый и плохо знает компьютер. Именно такие просят максимальные права, и неумелые/случайные действия могут уничтожить все данные. Виноватым сделают вас.

Еще один недостаток повышенных прав для друзей и начальства — невозможность защитить их пароли. Когда только один пользователь (root) имеет максимальные права в системе, то его пароль защитить достаточно просто. Но если таких 10 человек, то за их паролями уследить сложнее. Любой из этих пользователей может выбрать себе слабый по стойкости пароль или просто записать его на бумаге. Благодаря этому хакер может получить привилегированный доступ к системе и натворить бед.

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*