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

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

Глава 18

Уязвимости и их ландшафт

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

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

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

Методология атаки

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

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

2. Проанализировать информацию и найти уязвимую точку в цели, которая позволит добраться до объектов, на которые направлена атака.

3. Получить необходимый уровень доступа к цели.

4. Осуществить нападение на цель.

5. Завершить атаку, что может включать в себя уничтожение всяких следов атаки, и скрыться от возмездия.

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

Помните Звездные войны? Для того чтобы взорвать Звезду Смерти, повстанцы сначала должны были получить информацию, которую принцесса Лейа поместила в R2-D2. Это была единственная причина, по которой Люк должен был в первую очередь вызволить дроидов с Татуина. Спасение принцессы было в Мак-Гаффине. Это был первый шаг.

Шаг второй остался за кадром. Инженер восставших изучил информацию, полученную от дроидов и нашел слабое место в обороне их станции – проектировщики системы жизнеобеспечения никогда не предполагали, что их детище будут внимательно изучать профессионалы в области безопасности, и вот результат: Звезда Смерти, создание которой обошлось в десятки миллиардов «кредитов», может быть уничтожена через вентиляционную шахту.

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

Молодой мастер Люк смог завершить четвертый шаг после того, как Хан Соло оторвался от Дарта Вейдера, севшего ему «на хвост», и вкрадчивый голос Алека Гинеса внушил Люку мысль отключить компьютер, который являлся целью (возможно, работающий с бета-версией), и использовать Силу.

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

Только что описанный пример мало отличается от атаки через Интернет, нацеленной на компьютеры какой-либо компании. На первом шаге происходит выбор цели и сбор информации. Осуществить это на удивление легко. На веб-сайте обычно можно найти любую информацию: от сведений о том, что содержат различные базы данных Интернета, до способов работы с ними в режиме сетевого подключения. Специальный номеронабиратель поможет установить коммутируемое соединение. Существует множество техник, которыми нападающий может воспользоваться для того, чтобы узнать, как работает сеть, в которой находится его цель: изучение результатов работы специальных программ, используемых для проверки доступности адресата, служебных сообщений, состояния портов и т. д. Сетевой модуль проверки текущего состояния способен выдать еще больше информации. Это чаще всего похоже на вышибание двери, хотя компьютер сам готов выдать совершенно посторонним людям массу информации о том, какое аппаратное обеспечение в нем используется, какие работают программы и какие службы они поддерживают. Все эти сведения могут с успехом использоваться нападающим.

Второй шаг – это нахождение уязвимого места. На этом этапе атакующий внимательно изучает всю собранную информацию, для того чтобы выбрать точку атаки. Вероятно, на одном из компьютеров установлена определенная версия почтовой программы, операционная система или Solaris, или Windows NT, которые содержат известные ошибки. Возможно, удастся использовать FTP или регистрационное имя, или что-нибудь еще. Часть оборудования, обеспечивающего поддержку порта, через который лежит путь к цели, может оказаться незащищенной. Не исключено, что нападающий в силах использовать телефонную сеть объекта, на который направлена атака. Чем больше уязвимых мест в различных частях системы известно атакующему, тем лучше он сможет спланировать нападение.

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

Четвертый шаг – проведение атаки. Это может оказаться сложным делом, а может, наоборот, пустяковым. Если нападающий хорошо подготовлен, все проходит удивительно легко.

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