Компьютерная система глазами хакера
Лучше поздно, чем никогда
После многолетнего пренебрежительного отношения к защите компьютерных данных деловой мир наконец спохватился и признал важность этой проблемы. Громкие процессы о проникновении злоумышленников в корпоративные компьютерные системы, особенно "дело Левина" (названное Интерполом "самым серьезным транснациональным сетевым компьютерным преступлением", в результате которого американский Сити-банк недосчитался 400 тыс. долл.), заставили действовать не только центры компьютерной обработки данных. К ним присоединились директора компаний, которые пусть с опозданием, но все-таки осознали, что с вводом в эксплуатацию новой компьютерной системы, имеющей выход в Internet, они рискуют распахнуть перед злоумышленниками всех мастей (профессиональными взломщиками и грабителями, обиженными подчиненными или ничем не брезгующими конкурентами) виртуальное окно, позволяющее беспрепятственно проникать в святая святых компаний и наносить им весьма существенный материальный ущерб. Сегодня неосведомленность руководителей и бюджетные ограничения уже не являются препятствиями на пути внедрения адекватных мер защиты информации в компьютерных системах, поэтому акцент делается на выбор конкретных инструментов и решений.
Выяснилось, что построение надежно защищенной компьютерной системы невозможно без тщательного анализа потенциальных угроз ее безопасности. Был спешно составлен перечень необходимых действий, которые, по мнению специалистов, позволят создать полноценную картину сценариев возможных нападений на компьютерную систему. Этот перечень включал следующее:
- определение ценности информации, хранимой в компьютерной системе;
- оценку временных и стоимостных затрат, которые может позволить себе злоумышленник для преодоления защитных механизмов атакуемой им компьютерной системы;
- построение модели поведения злоумышленника, которой он, вероятнее всего, будет придерживаться при атаке;
- оценку временных и стоимостных затрат, необходимых для организации адекватной защиты компьютерной системы.
Итак, при проведении анализа потенциальных угроз безопасности компьютерной системы эксперты практически ставили себя на место злоумышленника, пытающегося в нее проникнуть. А для этого важно было сначала понять, что представляет собой этот злоумышленник:
- уровень его профессиональной подготовки;
- имеющаяся у него информация об атакуемой компьютерной системе;
- права доступа к системе;
- вероятные способы атаки.
Однако экспертам, которым приходилось ставить себя на место взломщика, изначально не понравилось именоваться злоумышленниками. Во-первых, само слово было довольно длинным и неуклюжим. А во-вторых, оно не совсем точно передавало суть решаемой ими задачи, которая в конечном счете состояла не в обнаружении брешей в защите компьютерной системы, а в их ликвидации. Поэтому они взяли на вооружение другой термин, который, по их мнению, более точно соответствовал возложенной на них миссии, и стали разрабатывать сценарии поведения так называемых хакеров.
Кто такие хакеры
Хотя в последнее время термин "хакер" можно довольно часто встретить на страницах компьютерной прессы, однако до сих пор не сложилось единого мнения о том, кого именно следует именовать хакером. Чаще всего так называют любого высококлассного специалиста в области компьютерной техники и всего, что с ней связано. Однако имеются серьезные разногласия относительно того, как эти компьютерные энтузиасты применяют свои уникальные познания на практике. Одни предлагают называть хакером лишь того, кто пытается взломать защиту компьютерных систем, чтобы затем выдать обоснованные практические рекомендации по улучшению их защитных механизмов. Другие призывают именовать хакером высококвалифицированного специалиста, который взламывает компьютеры исключительно в преступных целях. Чтобы не ввязываться в полемику, касающуюся в основном нравственно-этической стороны деятельности хакеров, в ходе дальнейшего изложения хакером именуется лицо, стремящееся обойти защиту компьютерной системы вне зависимости от того, преследуются по закону его действия или нет. При этом основной целью таких компьютерных взломщиков является получение в компьютерной системе дополнительных привилегий и прав доступа. Следовательно, хакер может выступать в одной из двух ролей: как постороннее лицо, не имеющее никаких легальных привилегий и прав доступа, или как пользователь компьютерной системы, обладающий ограниченными привилегиями и правами доступа.
Статистика компьютерных преступлений свидетельствует о том, что уровень профессиональной подготовки хакера отличается удивительным разнообразием. Им может стать обычный школьник, случайно обнаруживший программу взлома на одном из специализированных хакерских серверов в Internet. В то же время отмечено и появление настоящих хакерских банд, главарями которых являются компьютерные специалисты высочайшей квалификации.
В дальнейшем о хакере будем говорить как о высококвалифицированном специалисте-компьютерщике, поскольку именно его действия представляют наибольшую угрозу безопасности компьютерных систем. Для такого хакера характерны следующие черты и особенности поведения:
- он всегда в курсе последних новинок компьютерной техники, устройств связи и программных средств;
- перед тем, как атаковать компьютерную систему, взломщик всеми способами пытается собрать максимум информации о ней, включая данные об используемом программном обеспечении и личных качествах ее администраторов;
- добывая нужную информацию, он не брезгует агентурными и оперативно-техническими методами (например, устанавливая подслушивающие устройства в местах, часто посещаемых обслуживающим персоналом компьютерных систем, которые намеревается взломать);
- перед попыткой взлома компьютерной системы он апробирует методы, которые планируется применить для атаки, на заранее подготовленной модели с теми же средствами обеспечения безопасности, что и в атакуемой системе;
- сама атака компьютерной системы осуществляется по возможности быстро, чтобы ее администраторы не смогли зафиксировать факт совершения атаки и не успели предпринять меры по ее отражению, а также по выявлению личности атакующего и его местонахождения;
- хакер не пользуется изощренными методами взлома защиты компьютерной системы, памятуя о том, что чем сложнее алгоритм атаки, тем вероятнее возникновение ошибок и сбоев при его реализации;
- чтобы минимизировать время, необходимое для взлома, и количество возможных ошибок, хакер обычно атакует компьютерную систему при помощи заранее написанных программ, а не набирает необходимые команды с помощью клавиатуры компьютера;
- хакер никогда не действует под собственным именем и тщательно скрывает свой сетевой адрес; на всякий "пожарный" случай у него имеется тщательно продуманный план отступления, позволяющий замести следы или оставить ложный след (например, одновременно он может специально вести заведомо обреченную на провал атаку из другого места, благодаря которой журнал аудита атакуемой компьютерной системы окажется забитым зарегистрированными событиями, что не позволяет системному администратору выяснить характер действительной атаки и предпринять действенные меры, чтобы не допустить ее в будущем);
- хакеры широко применяют программные закладки, которые самоуничтожаются либо при их обнаружении, либо по истечении некоторого фиксированного периода времени.
Методы взлома защиты компьютерных систем
В общем случае программное обеспечение любой универсальной компьютерной системы состоит из трех основных компонентов - системы управления базами данных (СУБД), операционной системы (ОС) и сетевого программного обеспечения (СПО). Поэтому все попытки взлома защиты компьютерных систем можно разделить на три части.
Атаки на уровне систем управления базами данных
Защита СУБД является одной из самых простых. Это связано с тем, что СУБД имеют строгую внутреннюю структуру, и операции над элементами СУБД определены довольно четко. Как правило, эти операции включают в себя четыре основных действия - поиск, вставку, удаление и замену элемента, а остальные операции носят вспомогательный характер и применяются довольно редко. Наличие строгой структуры и четко определенных операций упрощает решение задачи защиты СУБД. В большинстве случаев хакеры не удостаивают СУБД своим вниманием, предпочитая взламывать защиту компьютерной системы на уровне ОС и получать доступ к файлам СУБД средствами ОС. Однако, если используется СУБД с недостаточно надежными защитными механизмами или версия СУБД плохо протестирована, содержит ошибки (возможно также, что при определении политики безопасности администратором СУБД были допущены ошибки) тогда преодоление хакером защиты, реализуемой на уровне СУБД, становится вполне вероятным событием.
Кроме того, имеются два специфических сценария атаки на СУБД, для защиты от которых требуется применять специальные методы. В первом случае результаты арифметических операций над числовыми полями СУБД округляются в меньшую сторону, а разница суммируется в некоторой другой записи СУБД (как правило, эта запись представляет собой денежную сумму, которая хранится на личном счете хакера в банке, а округляемые числовые поля относятся к счетам других клиентов банка). Во втором случае хакер получает доступ к полям записей СУБД, для него доступной является только накопляемая статистическая информация. Идея хакерской атаки на СУБД заключается в том, чтобы так хитроумно сформулировать запрос, чтобы множество записей, для которого собирается статистика, состояло только из одной.
Атаки на уровне операционной системы
В отличие от СУБД, защищать ОС гораздо сложнее. Дело в том, что внутренняя структура современных ОС чрезвычайно сложна, и поэтому соблюдение адекватной политики безопасности является значительно более трудной задачей, чем в случае с СУБД. Среди людей несведущих бытует мнение, что самые эффективные атаки на ОС могут быть организованы только с помощью сложнейших средств, основанных на самых последних достижениях науки и техники, а хакер должен быть программистом наивысочайшей квалификации. Это не совсем так.
Похвально быть в курсе всех новинок в области компьютерной техники. Да и высочайшая квалификация зачастую бывает совсем не лишней. Однако искусство хакера состоит отнюдь не в том, чтобы взламывать любую самую "крутую" компьютерную защиту. Нужно просто суметь найти слабое место в конкретной защитной системе и использовать его максимально эффективно. При этом простейшие методы взлома оказываются ничуть не хуже самых изощренных, поскольку чем проще алгоритм атаки, тем больше вероятность ее завершения без ошибок и сбоев. Это особенно важно, если возможности предварительного тестирования этого алгоритма в условиях, приближенных к "боевым", весьма ограничены.
Успех реализации того или иного алгоритма хакерской атаки на практике в значительной степени зависит от архитектуры и конфигурации конкретной ОС, являющейся объектом этой атаки. Однако есть несколько видов атак, которым может быть подвергнута практически любая ОС.
Кража пароля
- подглядывание за легальным пользователем, когда тот вводит пароль, дающий ему право на работу с ОС (даже если во время ввода пароль не высвечивается на экране дисплея, хакер может легко узнать пароль, просто следя за перемещением пальцев пользователя по клавиатуре);
- получение пароля из файла, в котором этот пароль был сохранен "ленивым" пользователем, не желающим затруднять себя вводом пароля для идентификации себя при сетевом подключении (как правило, такой пароль хранится в файле в незашифрованном виде);
- поиск пароля, который пользователи, чтобы не забыть, часто записывают на календарях, в записных книжках или на оборотной стороне компьютерных клавиатур (особенно часто подобная ситуация встречается, если администраторы заставляют пользователей применять длинные, трудно запоминаемые пароли);
- кража внешнего носителя парольной информации (дискеты или электронного ключа, на которых хранится пароль пользователя для входа в ОС).
Подбор пароля
- полный перебор всех возможных вариантов пароля;
- оптимизированный перебор вариантов пароля (по частоте встречаемости символов, с помощью словарей наиболее часто применяемых паролей, с использованием информации о конкретном пользователе - его имени, фамилии, номера телефона, даты рождения и т. д., с учетом сведений о существовании эквивалентных паролей - при этом из каждого класса эквивалентности опробуется всего один пароль, что может значительно сократить время перебора).
- Сканирование "жестких" дисков компьютера: хакер последовательно пытается обратиться к каждому файлу, хранимому на "жестких" дисках компьютерной системы. Если объем дискового пространства достаточно велик, можно быть вполне уверенным, что при описании доступа к файлам и каталогам администратор допустил хотя бы одну ошибку, в результате все такие каталоги и файлы будут прочитаны хакером. Для сокрытия следов хакер может организовать эту атаку под чужим именем, например под именем легального пользователя, пароль которого известен хакеру.
- Сборка "мусора": если средства ОС позволяют производить восстановление ранее удаленных объектов, хакер может воспользоваться этой возможностью, чтобы получить доступ к объектам, удаленным другими пользователями (например, просмотрев содержимое их "мусорных" корзин).
- Превышение полномочий: используя ошибки в программном обеспечении или в администрировании ОС, хакер получает полномочия, превышающие те, что были предоставлены ему согласно действующей политике безопасности:
- запуск программы в качестве системной (драйвера, сервиса, демона и т. д.) или от имени пользователя, имеющего необходимые полномочия;
- подмена динамически загружаемой библиотеки, используемой системными программами, или изменение переменных среды, описывающих путь к таким библиотекам;
- модификация кода или данных подсистемы защиты ОС.
Отказ в обслуживании
Целью этой атаки является частичный или полный вывод ОС из строя:
- захват ресурсов (хакерская программа производит захват всех имеющихся в ОС ресурсов, а затем входит в бесконечный цикл);
- бомбардировка запросами (хакерская программа постоянно направляет ОС запросы, реакция на которые требует привлечения значительных ресурсов компьютерной системы);
- использование ошибок в программном обеспечении или администрировании.
Если программное обеспечение компьютерной системы не содержит ошибок и ее администратор строго соблюдает адекватную политику безопасности, рекомендованную разработчиками ОС, то все перечисленные виды атак являются малоэффективными. Дополнительные меры, которые должны быть предприняты для повышения степени безопасности функционирования компьютерной системы, в значительной степени зависят от конкретной ОС, под управлением которой работает данная компьютерная система. К сожалению, приходится признать, что вне зависимости от предпринятых мер полностью устранить угрозу взлома компьютерной системы на уровне ОС невозможно. Поэтому политика безопасности должна быть построена так, чтобы даже преодоление рубежа защиты, создаваемого средствами ОС, не позволило бы хакеру нанести серьезный ущерб компьютерной системе.
Атаки на уровне сетевого программного обеспечения
Уровень СПО является наиболее уязвимым для атак хакеров. Это происходит потому, что канал связи, по которому происходит передача сообщений, чаще всего незащищен, и тот, кто обладает физическим доступом к этому каналу, может перехватывать передаваемые сообщения и отправлять свои собственные. Поэтому на уровне СПО возможны следующие разновидности хакерских атак:
- прослушивание сегмента локальной сети (в пределах одного и того же сегмента этой сети любой подключенный к нему компьютер может принимать сообщения, адресованные другим компьютерам сегмента, а следовательно, если компьютер хакера подсоединен к некоторому сегменту локальной сети, то ему становится доступен весь информационный обмен между компьютерами этого сегмента);
- перехват сообщений на маршрутизаторе (если хакер имеет привилегированный доступ к сетевому маршрутизатору, то он получает возможность перехватывать все сообщения, проходящие через этот маршрутизатор, и хотя тотальный перехват из-за слишком большого объема невозможен, чрезвычайно привлекательным для хакера является выборочный перехват сообщений, содержащих пароли пользователей и их электронную почту);
- создание ложного маршрутизатора (путем отправки в сеть сообщений специального вида хакер добивается, чтобы его компьютер стал маршрутизатором сети, после чего получает доступ ко всем проходящим через него сообщениям);
- навязывание сообщений (отправляя в сеть сообщения с ложным обратным сетевым адресом, хакер обманным путем переключает на свой компьютер уже установленные сетевые соединения и в результате получает права пользователей этих соединений);
- отказ в обслуживании (хакер отправляет в сеть особые сообщения, после чего одна или несколько компьютерных систем, подключенных к сети, полностью или частично выходят из строя).
Поскольку хакерские атаки на уровне СПО спровоцированы открытостью сетевых соединений, разумно предположить, что для отражения этих атак необходимо максимально защитить каналы связи и тем самым затруднить сетевой обмен для лиц, не являющихся легальными пользователями. Вот несколько способов:
- максимальное ограничение размеров компьютерной сети (чем больше сеть, тем труднее ее защитить);
- изоляция сети от внешнего мира (по возможности следует ограничивать физический доступ к компьютерной сети извне, чтобы уменьшить возможность несанкционированного подключения хакера);
- шифрование сетевых сообщений (тем самым можно устранить угрозу перехвата сообщений, правда, это приведет к снижению производительности СПО и росту накладных расходов);
- цифровая подпись сетевых сообщений (если все сообщения, передаваемые по компьютерной сети, снабжаются стойкой цифровой подписью, и при этом неподписанные сообщения игнорируются, то можно забыть об опасности навязывания сообщений и про большинство угроз, связанных с отказом в обслуживании);
- использование брандмауэров3 (брандмауэр является вспомогательным средством защиты, применяемым только в том случае, если защищаемую компьютерную сеть невозможно изолировать от других сетей, поскольку брандмауэр довольно часто не способен отличить потенциально опасное сетевое сообщение от совершенно безвредного, и в результате типичной является ситуация, когда брандмауэр не только не защищает от хакерских атак, но еще и препятствует нормальному функционированию компьютерной сети).
Универсальные правила защиты
Перечисленные выше методы хакерской атаки на компьютерную систему являются наиболее типичными и были описаны в самой общей форме. Применение этих методов в конкретных случаях может иметь свои особенности, которые потребуют разработки дополнительных защитных мер. Однако даже в случае рассмотрения обобщенной модели взлома компьютерных систем можно сформулировать универсальные правила, которых следует придерживаться, чтобы минимизировать риск взлома вашей системы:
- Не отставайте от хакеров, будьте всегда в курсе последних разработок из области компьютерной безопасности. Оформите подписку на несколько специализированных журналов, в которых подробно освещаются вопросы защиты компьютерных систем от взлома. Регулярно просматривайте материалы, помещаемые в хакерских серверах Internet;
- Руководствуйтесь принципом разумной достаточности: не стремитесь построить абсолютно надежную защиту. Ведь чем мощнее защита, тем больше ресурсов компьютерной системы она потребляет и тем труднее ее использовать;
- Храните в секрете информацию о принципах действия защитных механизмов компьютерной системы. Чем меньше хакеру известно об этих принципах, тем труднее ему будет организовать успешную атаку;
- Постарайтесь максимально ограничить размеры защищаемой компьютерной сети и без крайней необходимости не допускайте ее подключения к Internet;
- Перед тем, как вложить денежные средства в покупку нового программного обеспечения, поищите о нем информацию, имеющуюся на хакерских серверах Internet;
- Размещайте серверы в охраняемых помещениях. Не подключайте к ним клавиатуры и дисплеи, чтобы никто не имел доступа к этим серверам, кроме как через сеть;
- Шифруйте и снабжайте цифровой подписью абсолютно все сообщения, передаваемые по незащищенным каналам связи;
- Используйте брандмауэр для всех сообщений, отправляемых или принимаемых через защищенную сеть, если она соединена с другой, незащищенной, сетью; а также шифруйте их и снабжайте цифровой подписью;
- Не пренебрегайте возможностями, которые предоставляет аудит. Интервал между сеансами просмотра журнала аудита не должен превышать одних суток;
- Изучите внимательно все новые записи (если окажется, что количество событий, помещенных в журнал аудита, необычайно велико), поскольку не исключено, что компьютерная система подверглась атаке хакера, который пытается замести следы своего нападения, зафиксированные в журнале аудита;
- Регулярно производите проверку целостности программного обеспечения компьютерной системы. Проверяйте ее на наличие программных закладок;
- Регистрируйте все изменения политики безопасности в обычном бумажном журнале. Регулярно сверяйте политику безопасности, принятую в компьютерной системе, с зарегистрированной в этом журнале. Это поможет обнаружить присутствие программной закладки, если она была внедрена хакером в компьютерную систему;
- Пользуйтесь защищенными ОС (SCO Unix, Windows NT, Solaris);
- Создайте несколько ловушек для хакеров (например, заведите на диске файл с заманчивым именем, прочитать который невозможно с помощью обычных средств, и если будет зафиксировано успешное обращение к этому файлу, значит в защищаемую компьютерную систему была внедрена программная закладка);
- Регулярно тестируйте компьютерную систему с помощью специальных программ (типа SATAN).
DaoS Dago.Org
|
|