Технологии цифровых подписей

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

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

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

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

Представим теперь готовую к передаче хеш-сумму в виде нескольких k-битных блоков hi, где k – это размер сообщений по алгоритму RSA в предыдущем параграфе. Вычислим над каждым блоком значение si=((hi)d)mod n, где d – это тот самый закрытый ключ отправителя. Теперь сообщение, состоящее из блоков si можно "спокойно" передавать по сети. Никакой опасности по известным hi и si найти Ваш секретный ключ нет – это настолько же сложная задача, как и задача "логарифмирования в конечном поле". А вот любой получатель сообщения может легко прочесть исходное значение hi, выполнив операцию ((si)e)mod n = ((hi)d*e)mod n = hi – Ваш открытый ключ (e,n) есть у всех, а то, что возведение любого числа в степень (e*d) по модулю n дает исходное число, мы доказали в прошлом параграфе. При этом никто другой, кроме Вас, не зная Вашего закрытого ключа d не может, изменив текст, а следовательно, и хеш-сумму, вычислить такие s'i, чтобы при их возведении в степень e получилась хеш-сумма h'i, совпадающая с хеш-суммой фальсифицированного текста.

Таким образом, манипуляции с хеш-суммой текста представляют из себя "асимметричное шифрование наоборот" : при отправке используется закрытый ключ отправителя, а для проверки сообщения – открытый ключ отправителя. Подобная технология получила название "электронная подпись". Информацией, которая уникально идентифицирует отправителя (его виртуальной подписью), является закрытый ключ d. Ни один человек, не владеющий этой информацией, не может создать такую пару (текст,si), что описанный выше алгоритм проверки дал бы положительный результат.

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

 


Лекция 6.

Название: Анализ безопасности сети передачи данных. Взаимодействие протоколов в сети.

Анализ безопасности сети передачи дан­ных

Сервера

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

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

• получение доступа к информации,

• получение несанкционированного доступа к услугам,

• попытка вывода из рабочего режима определенного класса услуг,

• попытка изменения информации или услуг, как вспомогательный этап какой-либо более крупной атаки.

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

А вот проблема вывода из строя (нарушения нормального функционирования) сервисов довольно актуальна в современном компьютерном мире. Класс подобных атак получил название атака "отказ в сервисе" (англ. deny of service – DoS ). Атака "отказ в сервисе" может быть реализована на целом диапазоне уровней модели OSI : физическом, канальном, сетевом, сеансовом. Детально схемы реализации данной атаки мы рассмотрим в параграфе, посвященном модели OSI.

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

DNS-служба (англ. Domain Name System – служба доменных имен) в сетях Intra- и Inter- Net отвечает за сопоставление "произносимых" и легко запоминаемых доменных имен (например, www.intel.com или mail.metacom.ru) к их IP-адресам (например, 165.140.12.200 или 194.186.106.26). Пакеты между станциями всегда передаются только на основании IP-адресов (маршрутизаторы ориентируются только на их значения при выборе направления отправки пакета – доменное имя вообще не включается в отправляемый пакет), а служба DNS была создана в основном для удобства пользователей сети. Как следствие и во многих сетевых программах имя удаленного компьютера для большей гибкости или для удобства операторов заносится не в виде 4-байтного IP-адреса, а в виде доменного имени. Да, действительно, два указанных преимущества будут достигнуты в этом случае, а вот безопасность пострадает.

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

Рабочие станции

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

Для борьбы с троянскими программами используется как обычное антивирусное ПО, так и несколько специфичных методов, ориентированных исключительно на них. В отношении первого метода как и с компьютерными вирусами необходимо помнить, что антивирусное ПО обнаруживает огромное количество вирусов, но только таких, которые широко разошлись по стране и имели многочисленные преценденты заражения. В тех же случаях, когда вирус или троянская программа пишется с целью получения доступа именно к Вашей ЭВМ или корпоративной сети, то она практически с вероятностью 90% не будет обнаружена стандартным антивирусным ПО.

Те троянские программы, которые постоянно обеспечивают доступ к зараженной ЭВМ, а, следовательно, держат на ней открытый порт какого-либо транспортного протокола, можно обнаруживать с помощью утилит контроля за сетевыми портами. Например, для операционных систем клона Microsoft Windows такой утилитой является программа NetStat. Запуск ее с ключом "netstat -a" выведет на экран все активные порты ЭВМ. От оператора в этом случае требуется знать порты стандартных сервисов, которые постоянно открыты на ЭВМ, и тогда, любая новая запись на мониторе должна привлечь его внимание. На сегодняшний день существует уже несколько программных продуктов, производящих подобный контроль автоматически.

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

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

Среда передачи информации

Естественно, основным видом атак на среду передачи информации является ее прослушивание. В отношении возможности прослушивания все линии связи делятся на :

• широковещательные с неограниченным доступом

• широковещательные с ограниченным доступом

• каналы "точка-точка"

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

К широковещательной категории сетей относятся сеть TokenRing, сеть EtherNet на коаксиальной жиле и на повторителях (хабах – англ. hub). Целенаправленную (защищенную от прослушивания другими рабочими станциями) передачу данных в сетях EtherNet производят сетевые коммутаторы типа свич (англ. switch) и различного рода маршрутизаторы (роутеры – англ. router). Сеть, построенная по схеме с защитой трафика от прослушивания смежными рабочими станциями, почти всегда будет стоить дороже, чем широковещательная топология, но за безопасность нужно платить.

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

• невитая пара – сигнал может прослушиваться на расстоянии в несколько сантиметров без непосредственного контакта,

• витая пара – сигнал несколько слабее, но прослушивание без непосредственного контакта также возможно,

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

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

Вывод систем передачи информации из строя (атака "отказ в сервисе") на уровне среды передачи информации возможен, но обычно он расценивается уже как внешнее механическое или электронное (а не программное) воздействие. Возможны физическое разрушение кабелей, постановка шумов в кабеле и в инфра- и радио- трактах.

Узлы коммутации сетей

Узлы коммутации сетей представляют для злоумышленников 1) как инструмент маршрутизации сетевого трафика, и 2) как необходимый компонент работоспособности сети.

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

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

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

Взаимодействие протоколов в сети

Эталонная модель взаимодействия открытых систем OSI (англ. Open Systems Interconnection) была разработана институтом стандартизации ISO с целью разграничить функции различных протоколов в процессе передачи информации от одного абонента другому. Подобных классов функций было выделено 7 – они получили название уровней. Каждый уровень выполняет свои определенные задачи в процессе передачи блока информации, причем соответствующий уровень на приемной стороне производит преобразования, точно обратные тем, которые производил тот же уровень на передающей стороне. В целом прохождение блока данных от отправителя к получателю показано на рис.1. Каждый уровень добавляет к пакету небольшой объем своей служебной информации – префикс (на рисунке они изображены как P1...P7). Некоторые уровни в конкретной реализации вполне могут отсутствовать.

Рис.1.

Данная модель позволяет провести классификацию сетевых атак согласно уровню их воздействия.

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

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

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

Транспортный уровень отвечает за доставку больших сообщений по линиям с коммутацией пакетов. Так как в подобных линиях размер пакета представляет собой обычно небольшое число (от 500 байт до 5 килобайт), то для передачи больших объемов информации их необходимо разбивать на передающей стороне и собирать на приемной. Транспортными протоколами в сети Интернет являются протоколы UDP и TCP. Реализация транспортного протокола – довольно сложная задача, а если еще учесть, что злоумышленник придумывает самые разные схемы составления неправильных пакетов, то проблема атак транспортного уровня вполне объяснима.

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

Сеансовый уровень отвечает за процедуру установления начала сеанса и подтверждение (квитирование) прихода каждого пакета от отправителя получателю. В сети Интернет протоколом сеансого уровня является протокол TCP (он занимает и 4, и 5 уровни модели OSI). В отношении сеансового уровня очень широко распространена специфичная атака класса "отказ в сервисе", основанная на свойствах процедуры установления соединения в протоколе TCP. Она получила название SYN-Flood (зд. flood – англ. "большой поток").

При попытке клиента подключиться к серверу, работающему по протоколу TCP (а его используют более 80% информационных служб, в том числе HTTP, FTP, SMTP, POP3), он посылает серверу пакет без информации, но с битом SYN, установленным в 1 в служебной области пакета – запросом на соединение. По получении такого пакета сервер обязан выслать клиенту подтверждение приема запроса, после чего с третьего пакета начинается собственно диалог между клиентом и сервером. Одновременно сервер может поддерживать в зависимости от типа сервиса от 20 до нескольких тысяч клиентов.

При атаке типа SYN-Flood злоумышленник начинает на своей ЭВМ создавать пакеты, представляющие собой запросы на соединение (то есть SYN-пакеты) от имени произвольных IP-адресов (возможно даже несуществующих) на имя атакуемого сервера по порту сервиса, который он хочет приостановить. Все пакеты будут доставляться получателю, поскольку при доставке анализируется только адрес назначения. Сервер, начиная соединение по каждому из этих запросов, резервирует под него место в своем буфере, отправляет пакет-подтверждение и начинает ожидать третьего пакета клиента в течение некоторого промежутка времени (1-5 секунд). Пакет-подтверждение уйдет по адресу, указанному в качестве ложного отправителя в произвольную точку Интернета и либо не найдет адресата вообще, либо чрезмерно "удивит" операционную систему на этом IP-адресе (поскольку она никаких запросов на данный сервер не посылала) и будет просто проигнорирован. А вот сервер при достаточно небольшом потоке таких запросов будет постоянно держать свой буфер заполненным ненужными ожиданием соединений и даже SYN-запросы от настоящих легальных пользователей не будут помещаться в буфер : сеансовый уровень просто не знает и не может узнать, какие из запросов фальшивые, а какие настоящие и могли бы иметь больший приоритет.

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

 


Лекция 7.

Название: Протоколы аутентификации при удаленном доступе. Средства защиты компьютерных систем при подключении к Интернет.

Протоколы аутентификации при удаленном доступе

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

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

В первую очередь узел подключения к Интернету должен быть надлежащим образом защищен брандмауэром и системой обнаружения/предотвращения вторжений.

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

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

Радикальным решением является применение двухфакторной аутентификации, когда система просит пользователя предоставить ей «то, что ты знаешь» (имя и, возможно, некий PIN-код), и «то, что у тебя есть» – какой-либо аппаратный идентификатор, ассоциирующийся с этим пользователем.

Сегодня несколько компаний предлагают системы двухфакторной аутентификации, основанной на генерации одноразовых паролей (One-Time Password – OTP), в числе которых RSA Security, VASCO Data Security и ActivIdentity. Им удалось решить проблему обеспечения пользователей одноразовыми паролями для входа в компьютерную систему. Не так давно известный производитель средств безопасности Aladdin усилил свой криптографический USB-маркер eToken, встроив в него генератор OTP.

Генератор OTP представляет собой автономный портативный электронный прибор, способный генерировать и отображать на встроенном ЖК-дисплее цифровые коды. Для семейства устройств Digipass компании VASCO механизм генерации одноразовых паролей основан на криптографическом TripleDES-преобразовании набора данных, состоящего из 40 бит текущего времени и 24-битового вектора данных, уникальных для каждого идентификатора доступа. Полученный результат преобразования виден на дисплее в виде шести или восьми десятичных цифр, визуально считывается пользователем и вручную вводится как пароль в ответ на запрос прикладных программ об аутентификации. Периодичность смены паролей при этом составляет 36 с, таким образом, пользователь получает действительно одноразовый пароль для входа в систему.

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

 

Рис.1. Принцип работы системы двухфакторной аутентификации фирмы VASCO

Рассмотрим механизм интеграции двухфакторной аутентификации с существующими системами на примере решения компании VASCO. Первый способ основан на использовании программного обеспечения VACMAN RADIUS Middleware (VRM), которое представляет собой сервер аутентификации и обеспечивает совместимость с любым межсетевым экраном или маршрутизатором, поддерживающим RADIUS-аутентификацию. VRM функционирует подобно прокси-серверу между брандмауэром и RADIUS-сервером (рис. 1).

VRM представляет собой простой, быстрый в инсталляции и конфигурировании сервер аутентификации, выполненный как продукт «под ключ». Он может работать в любой среде RADIUS и позволяет защитить сеть предприятия путем надежной двухфакторной аутентификации без замены или переконфигурирования уже установленных серверов RADIUS и брандмауэров. Логически VRM размещается между клиентом RADIUS, например NAS (Network Access Server), RAS (Remote Access Server) или брандмауэром, и сервером RADIUS. После установки VRM функционирует прозрачно, обеспечивая надежную двухфакторную аутентификацию и никаким образом не влияя на работу серверов и других компонентов сети.

Второй способ позволяет встроить аутентификацию VASCO в любые пользовательские приложения, работающие с различными операционными системами. VACMAN Controller предлагает полный набор функций аутентификации и дает возможность разработчику легко интегрировать их в собственное приложение. Комплект поставки состоит из файлов библиотек для написания программ на С/C++ и Java, а также файлов с руководством для программистов. Библиотеки позволяют с помощью набора функций, которые включаются в разрабатываемое приложение, управлять данными и режимами аутентификации. Сами библиотеки независимы от платформы и существуют в версиях для Linux, Sun Solaris, HP-UX, AIX, Windows NT/2000, AS/400 и OS/390.

Типичное использование библиотек VACMAN Controller при разработке приложений содержит следующие этапы:

• интегрирование модели данных Digipass;

• назначение устройств Digipass пользователям;

• проверка пароля;

• расширенное управление Digipass.

В каждое устройство Digipass в процессе производства записывается определенный набор данных. Они содержат уникальный номер устройства и режимы аутентификации (длина генерируемого пароля, информация для разблокирования и др.). Эта же информация в зашифрованном виде хранится в поставляемом вместе с устройством файле DPX. На первом этапе данные об устройстве Digipass извлекаются из файла DPX и переносятся в базу данных разрабатываемого приложения. На втором этапе происходит назначение устройств Digipass конкретным пользователям. В базе данных идентификатор пользователя связывается с определенным устройством Digipass. (Заметим, что продолжительность работы Digipass GO-3 определяется временем жизни батареи питания – к сожалению, ее замена разработчиками не предусмотрена. Согласно «Руководству по эксплуатации», этот срок составляет не менее пяти лет).

Рис. 3. RSA SecureID SID700

Подобно Digipass фирмы VASCO, устройства RSA SecurID на этапе производства могут быть сконфигурированы для генерации 6- или 8-значных паролей с периодичностью 30 с, 60, 90 и 120 с (рис. 3). Типичный период генерации для большинства идентификаторов доступа 60 с.

В RSA SecurID Key Fob (SD600) компании RSA Security для генерации одноразовых паролей применяется алгоритм Advanced Encryption Standard (AES). Исходными данными при этом являются значения текущего времени и уникального для каждого прибора набора данных, записанных в него на этапе производства.

Рис. 2. Структура сети с использованием продуктов RSA

Сервер RSA Authentication Manager осуществляет двухфакторную аутентификацию пользователей на основе показаний прибора SecurID. В отличие от сервера аутентификации VASCO VRM, пользователи взаимодействуют с сервером RSA ACE/Server посредством программных агентов RSA ACE/Agent. Такие агенты уже встроены в сотни современных серверов удаленного доступа, брандмауэров, маршрутизаторов, точек доступа беспроводных систем, есть также разработанные специально для широко распространенных Web-серверов (Microsoft IIS, Apache, Stronghold и SunONE), локального и удаленного доступа в ОС Windows и UNIX. Пример сети с использованием продуктов RSA приведен на рис. 2.

Кроме взаимодействия посредством агентов, RSA ACE/Server может применять протоколы аутентификации RADIUS и TACACS+. В состав RSA ACE/Server входит собственный сервер RADIUS, что позволяет иметь общую базу данных пользователей как для аутентификации по протоколу RADIUS, так и для аутентификации SecurID. При двухфакторной аутентификации требуется ввести идентификатор (имя) и пароль, состоящий из персонального идентификатора (PIN) и цифрового кода, отображаемого на дисплее SecurID в текущий момент.

Администрирование RSA Authentication Manager выполняется с графической консоли. С ее помощью назначаются идентификаторы доступа SecurID пользователям, устанавливаются правила разграничения доступа с возможностью задавать время, когда он разрешен, а также объединять пользователей в группы. RSA Authentication Manager позволяет импортировать данные из LDAP-директории, в которой централизованно хранятся данные о пользователях. На сервере ведется аудит доступа пользователей и действий администратора. Для увеличения производительности в случае аутентификации большого количества пользователей и обеспечения работоспособности сервера при выходе из строя аппаратного обеспечения RSA Authentication Manager допускает функционирование до 60 дублирующих серверов-реплик.

В состав сервера RSA Authentication Manager входят следующие компоненты:

• базы данных пользователей, идентификаторов доступа SecurID, агентов RSA ACE/Agent, аудита попыток аутентификации и действий администратора;

• процессор аутентификации;

• консоль администрирования;

• средства репликации базы данных и менеджера блокирования атак типа «replay»;

• сервер RADIUS;

• сервер TACACS+;

• утилита ускоренного администрирования Quick Admin с Web-интерфейсом.

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

Для защиты обмена служебной информацией между различными программными модулями сервера аутентификации RSA Authentication Manager, а также между сервером и агентами (RSA Authentication Agents) используется ее шифрование (с применением алгоритмов RC5 и DES).

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

RSA Authentication Manager может работать под управленим таких операционных систем:

• Microsoft Windows 2000 Server или Advanced Server;

• Microsoft Windows 2003 Server;

• HP-UX 11 на PA-RISC 2.x;

• IBM AIX 5L v.5.1 или 5.2 на PowerPC и RISC/6000;

• Solaris 8 или выше на UltraSPARC.

Интересным является устройство eToken NG-OTP компании Aladdin, представляющее собой комбинированный идентификатор доступа в формате USB со встроенным генератором OTP и ЖКИ для отображения одноразовых паролей. Помимо стандартных функций криптографического идентификатора доступа, таких как защищенное хранение секретных ключей и цифровых сертификатов пользователей, шифрования/дешифрования данных, цифровой подписи и т. п., он может генерировать одноразовые пароли для защищенного удаленного доступа мобильных пользователей к корпоративным ресурсам.

Как и в VRM компании VASCO, аутентификация в устройствах Aladdin базируется на протоколе RADIUS. Серверная часть решения встроена в систему управления средствами аутентификации TMS (Token Management System), которая служит для управления всем жизненным циклом как eToken, так и eToken NG-OTP.

Преимуществами двухфакторной аутентификации на основе eToken NG-OTP являются поддержка всех совместимых с RADIUS решений, шифрования и цифровой подписи почтовых сообщений, защиты ПК, защищенного доступа к Web и построения VPN с использованием eToken.

В качестве алгоритма криптографического преобразования входных данных для получения одноразового пароля в eToken NG-OTP применяется совместимый с OATH алгоритм, основанный на HMAC/SHA1.

В заключение отметим основные преимущества двухфакторной аутентификации с использованием OTP. К ним относятся:

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

• отсутствие необходимости устанавливать какое-либо дополнительное программное обеспечение на клиентской части компьютерной системы, так как пользователь вводит пароль вручную, используя те же программные интерфейсы, что и при применении статических паролей;

• снижение затрат на администрирование, поскольку администратору не нужно периодически менять статические пароли на сервере;

• низкая стоимость устройств для генерации одноразовых паролей;

• применение генераторов OTP возможно в тех случаях, когда пользователю недоступен USB-порт (либо он просто отсутствует – как в PDA, смартфонах, мобильных телефонах).

Средства защиты компьютерных систем при подключении к Интернет

Internet - огромная сеть построенная из множества совершенно независимых компьютеров, принадлежащим самым разным людям и организациям. На них хранится огромное количество интересной и самой разнообразной информации, часть из которой интересует совсем не тех людей или мешает им фактом своего существования. Это приводит к тому, что в последнее время появилось большое количество компьютерных преступников (именуемых 'хакерами'), поставивших целью своего существования взлом компьютерных систем. Так как в интернете отсутствует какой-либо централизованый контроль за действиями подобных личностей, каждому конкретному администратору каждой конкретной системы, подключенной к интернету приходится самому заботиться о безопасности (security) в своей системе.

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

Как известно, первые работоспособные unix-системы появились в середине-конце семидесятых и на сегодняшний день, благодаря своей масштабируемости и огромному количеству программ, они до сих пор остаются одними из лучших операционных систем для серверов и даже персональных компьютеров, особенно, когда дело касается локальных или глобальных сетей. К сожалению, большинство из таких систем имеют один огромный недостаток в интересующей нас области. Рут (root - главный администратор системы) имеет право делать с компьютером все, что захочет. Существование этого принципа подразумевает, что хакер, получив каким-нибудь образом права пользователя root, сможет сделать с данным компьютером (а во многих случаях - и со всей компьютерной системой, сообщающейся с данным компьютером) все что пожелает. Другие модели безопасности, имеющие несколько администраторов с ограниченными правами, на базе Unix-систем не реализуются из-за принципиальных правил построения таких систем или реализуются в ограниченном масштабе (например - многие коммерческие системы включают в себя поддержку ACL, позволяющую, в общем случае, разумно распределять права между отдельными администраторами, но все равно имеют пользователя root с неограниченными правами, что сводит все преимущества ACL к нулю). К слову, следует заметить, что в системах, не имеющих "пользователя с неограниченными правами", также имеется множество "лазеек", позволяющих эти права получить (например, классический сценарий взлома с правами backup-оператора). Однако, в Unix-системах для создания безопасности достаточно высокого уровня зачастую требуется приложить больше усилий, чем в системе с распределенными правами администраторов (разумеется, если дело не касается откровенно "клинических" случаев, вроде Windows NT, которую Microsoft пытается позиционировать как замену Unix-системам).

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

Разумеется, наибольшую опасность для современных систем, имеющих хорошую историю борьбы с различными багами и дырами, представляет человеческий фактор. Любой человек совершает ошибки. С этим нужно мириться и стараться строить всю систему безопасности так, чтобы подобные ошибки не причиняли ей серьезного вреда. Перечень распространенных ошибок, приводящих к появлению "дыр" в системах безопасности очень широк, но наиболее часто встречаются следующие: установка и/или запуск непроверенных программ, различные попытки упростить администрирование (повторяющиеся пароли, раздача одного и того же административного аккаунта нескольким людям, установка чрезмерного количества специальных программ и сервисов, расширяющих количество вариантов администрирования (особенно удаленного) и т.д.), отсутствие хорошего контроля за деятельностью "простых" пользователей. Как видно, это именно человеческие ошибки и основной упор в защите компьютерных систем нужно делать на уменьшение вероятности их появления.

От теории перейдем к рассмотрению практических вариантов противодействия возможным попыткам взлома.

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

Правильная организация локальной сети внутри компьютерной системы также является одной из ключевых областей компьютерной безопасности. Как правило, подобные сети реализуются на базе систем "каждый со всеми" (Ethernet) и гораздо реже - с применением других решений. В общем случае, локальную сеть следует рассматривать как один большой компьютер и, соответственно, считать каждую возможную "дыру" на отдельном компьютере сети, как общую для всех компьютеров этой сети. Большинство сценариев взлома построено на следующем принципе - получив доступ к одному из компьютеров, имеющему подключение к локальной сети, за счет возможностей перехвата пакетов на этой локальной сети, адресованных другим компьютерам, уменьшенным правилам фильтрации пакетов в пределах этой сети, упрощенным правилам предоставления административных сервисов между компьютерами сети, можно получить доступ и к остальным компьютерам этой локальной сети. Типичные действия, совершаемые для этого - перехват пакетов с данными авторизации (например, запуская программу типа tcpdump с фильтром на пакеты, идущие с/на 23-ий (telnet) и/или 21-ый (ftp) tcp-порты в течение достаточно долгого времени, хакер легко сможет узнать имена и пароли пользователей и, скорее всего, даже системных администраторов на компьютерах, стоящих в том же ethernet-сегменте, что и взломанный компьютер. Более сложные случаи включают в себя перехват пакетов систем типа NFS (шаринг файловых систем между хостами), YP (синхронизация данных авторизации на нескольких системах), которые часто используются в системах с большим количеством точек доступа)), анализ и использование систем доступа, основанных на "доверии" (rlogin, rsh, частные случаи использования ssh) между компьютерами локальной сети. В свете вышесказанного, при построении локальных сети компьютерной системы с доступом в Internet, следует разбивать ее на два или даже больше сегментов с фильтрацией пакетов между ними (в более "близких" к Internet сегментах, следует устанавливать компьютеры, которые непосредственно общаются с ним (www/ftp/что-то_еще-серверы), в более дальних - сервера баз данных, клиентские машины (их также желательно вынести в отедельный сегмент)). С огромной осторожностью следует относиться к применению программ типа rlogin и rsh, а при больших размерах сети - и telnet, ftp (лично я рассматриваю ssh, как хорошую замену для всех этих программ, дающую достаточный для большинства применений уровень защиты). Программные системы "раздачи" файлов или специальных данных по сети (NFS, samba, rdist, YP) также следует применять только в случаях крайней необходимости и по возможности - использовать для их траффика соединения "точка-точка" (ppp, slip, различные туннельные драйвера с шифрованием). Множество проблем с точки зрения безопасности в локальных сетях вызывает также необходимость создания бэкапов данных. Если бэкапы хранить на каждом компьютере отдельно - в случае его взлома, они могут быть утеряны (эту вероятность всегда следует оценивать как 100%). Если бэкапы хранить на других компьютерах - встают проблемы перехвата траффика с бэкапом данных авторизации и возможность "раскусить" пароли из бекапов от другой машины. Возможный выход из этой тяжелой ситуации - хранить копию бэкапов локально, а также сваливать их в шифрованном виде на один или несколько специальных бэкап-серверов, не имеющих больше никаких других сервисов и средств удаленного доступа (для уменьшения вероятности взлома этих бэкап-серверов и/или вывода их из строя до или на время взлома).

Фильтрация пакетов (файрволл) - очень мощное и удобное средство для ограничения доступа к компьютерным системам. Любое подключение компьютерной системы к сети Internet должно идти через файрволл. Он должен запрещать доступ к наименее защищенным от внешних влияний сервисам, использующих нешифрованные формы пересылки данных авторизации или вообще их неиспользующие (rlogin, rsh, telnet, NFS, YP, при необходимости - ftp, tftp, pop* и им подобные). Также запрету следует подвергать незапланированные исходящие соединения наружу (это будет хорошей защитой при использовании хакером различных sniffer-ов, "жучков" и "закладок"). При больших размерах сети - файрволлы следует также устанавливать между отдельными сегментами сети. К счастью, в большинстве современных Unix-систем имеется возможность включить на каждом компьютере свой маленький файрволл. Не следует недооценивать эту возможность - например, компьютер установленный как бэкап-сервер просто обязан иметь в запретах все виды соединений, кроме входящих соединений с данными бэкапа, а на компьютере, служащем www-сервером - можно запретить входящие и исходящие tcp-соединения, кроме http и ftp (при наличии необходимости внешнего администрирования сервера по ftp). Такой подход к конфигурированию системы может показаться несколько параноидальным, но зато дает возможность обеспечить "непотопляемость отдельных отсеков". Правда, это может дать неожиданные плоды в виде возникновения опасности осуществления сценария "уставший админ", когда администратор, желающий произвести администрирование удаленного сервера и не имея возможности сделать это с локальной консоли, зачастую просто отключает всю или большую часть правил файрволла на время администрирования (а иногда - и забывает потом их включить), что делает сеть уязвимой для атак снаружи, а также, при не совсем правильных настройках файрволла - дает ложное ощущение безопасности. Часто возникающая ошибка, при конфигурировании файрволла - запретить коннекты на практически все tcp-порты, но оставить открытыми остальные протоколы, которые могут быть использованы хакерами для взлома. Также следует внимательно относиться к вопросам надежности работы файрволла во всех возможных ситуациях. Файрволл может быть подвергнут взлому, как и любой другой компьютер. Поэтому проблема правильного конфигурирования и слежения за работой файрволла должна стоять на первом месте. Стоит поостеречься распространившейся в последнее время немного наивной веры в защищенность "аппаратных" роутеров. Как правило - все подобные устройства имеют широкий набор средств удаленного доступа, которые при малейших ошибках в настройках делают их настоящими находками для хакеров, благодаря наличию в них большого спектра специфических средств файрволла, роутинга, слежения за работой сети и туннелирования. При слишком "открытых" настройках, такое устройство станет, если не стартовой площадкой для взлома, то уж источником полезной для хакера информации - обязательно.

Одну из самых неприятных проблем в области безопасности компьютерных систем представляют из себя "баги" и "дыры" в программах и операционных системах. Они всплывают в самые неподходящие моменты и с самыми неприятными последствиями, зачастую сводя на нет старания администраторов в области безопасности. За время развития Unix-систем в них было найдено огромное количество багов и дыр, но до сих пор никто не сможет гарантировать, что не появится новых (более того - периодически обнаруживаются новые дыры, а благодаря Internet-у, подробные описания этих дыр (часто - с примерами программ) становятся известными за считанные часы). В общем случае, следует считать, что баги и дыры могут быть везде. Самые опасные из этих дыр - дыры в программах-серверах, предоставляющих сервис через Internet (ftp/www/mail-сервера и им подобные), так как их нельзя закрыть (иначе потеряется смысл самого подключения к Internet) и многие из них запускаются из под аккаунта с правами root. Дыры в ядрах систем не менее опасны, так как хотя и приводят в основном только к Denial of Service (DoS) или расширению средств "локального" взлома, тем не менее появления возможности использования подобных дыр и багов также следует опасаться (хакер может использовать, например, сценарий с подменой машин. Получив доступ к одному из компьютеров локальной сети или взломав роутер и изменяя таблицы роутинга, хакер может временно вывести из работспособного состояния выбранную машину и прописать в конфигурации взломанной машины адрес компьютера, подвергнутого DoS с целью получить доступ к сервисам, доступных только с этого компьютера). Большинство дыр в Unix-программах появляются по причине переполнения стека - пожалуй самой серьезной проблемы в области отладки программ. Программа, получающая какие-либо данные снаружи (а это делают практически все программы) и "забывающая" ограничивать или правильно контролировать размер вводимых данных может переполнить буфер данных процедуры, выделяемый обычно на стеке и вводимые данные заполняют области стека, в которых хранятся адреса возвратов из процедур, что делает возможным запуск на исполнение машинного кода, написанного хакером или передачи управления на неверные участки программы. Такая проблема связана с принципиальными ограничениями одностековой архитектуры, присущей большинству процессоров и компиляторов C, когда и данные и адреса возврата хранятся вперемешку в одном стековом сегменте. К сожалению, двухстековые системы (или c большим количеством стеков) не получили широкого распространения, а различного рода фиксы, делающие стековый сегмент недоступным для хранения исполняемого кода не дают полной гарантии отсутствия в программе подобных дыр (хакер не сможет исполнить свой собственный код, заполняя им стек, но легко сможет передать управление в нужный ему участок программы или код, лежащий в статическом сегменте данных). Конечно, использование данных дыр довольно сложно (требуется точно знать адреса возвратов, содержимое регистров и иметь полный код программы, а то и всей операционной системы, но в случае серьезно подготовленных атак хакер обычно имеет и то и другое). Такого рода дыры находили и находят практически во всех программах, поэтому максимум, что можно сделать - запускать минимум необходимых программ и полностью закрывать на файрволлах (или с помощью специальных tcp-враперов) соединения к программам, нужных только в пределах локальной сети или не прошедших достаточную проверку. В более выгодном положении оказываются программы и операционные системы со свободно распространяемыми исходными текстами - в них обычно "ковыряется" множество самых разных людей и баги обнаруживаются и фиксятся достаточно быстро. Разумеется, у свободно распространяемых исходных текстов есть и обратная сторона - среди "ковыряющихся" в них людей есть и хакеры, которые могут использовать обнаруженные баги в целях взлома. Однако, при необходимости обеспечить максимальный уровень безопасности, наличие исходных текстов и их полный анализ просто обязательны (к счастью, такие уровни безопасности требуются в очень редких случаях).

Особое место занимают "баги" и "дыры" намеренно помещенные в программы. Такие дыры могут появиться в результате использования непроверенных программ, целенаправленных действий хакеров и из-за каких-то особых мотивов авторов программ. Разумеется, использовать подобные программы не следует ни при каких обстоятельствах. Проблема заключается в том, что не всегда подобные "закладки" легко обнаружить. Для уменьшения вероятности занесения подобных программ следует придерживаться одного простого принципа. Никогда не используйте бинарные файлы, полученные из незаслуживающих доверия источников. Этот принцип включает в себя настоятельную рекомендацию запускать только скомпилированные в пределах своей организации бинарники (возможно, следует задуматься о выделении специального compiler-сервера, хорошо защищенного, чтобы не искать необходимые исходные тексты и патчи по большому количеству компьютеров и не бояться подмены на какой-нибудь из машин исходных текстов системных программ. Это также позволит убрать компилятор C/C++, исходные тексты и библиотеки с большинства Unix-машин для усложнения жизни хакерам). Периодически проверяйте контрольные суммы запускаемых файлов и скриптов. Причем делайте это программой, скомпилированой на другом компьютере и static-сборкой. В сетях с различными операционными системами появляется угроза осуществления довольно нетривиальных сценариев взлома, как например такой (этот сценарий, как все предыдущие и последующие (кроме тех, о которых сказано обратное) является вымышленым и совпадения с реально происшедшими случаями будут совершенно случайны): в сети из нескольких компьютеров под Windows 95 и Unix-сервера администратор для доступа к своему почтовому ящику использовал pop3-клиента (на сервере стоял POP-3 сервер, который проверял логин/пароль по /etc/passwd). Хакер, достаточно проинформированный о применяемых в данной организации программах, прислал по электронной почте документ формата Microsoft Word 95 с макросом-вирусом (троянским конем), который прочитал конфигурационные файлы pop3-клиента и переслал обнаруженный там пароль администратора хакеру.

Частным случаем намеренно сделаных дыр являются "отладочные" дыры. Средства отладки встраиваются во многие программы с целью облегчить их конфигурирование и отслеживание ошибочных ситуаций. Фактически, такие средства являются потенциальными дырами, при невнимательном отношении к процессу их использования. В качестве примера, приведу реальный случай, который немного коснулся и меня лично. Один из Internet-провайдеров нашего города использовал программу mpd-1.0 (Multi-link PPP по RFC-1717) под FreeBSD-2.2 для связи со своим провайдером, находящимся в другом городе. Администраторы с целью облегчить себе контроль за работой данной программы запускали ее в отладочном режиме со включенной tcp-консолью (при необходимости, можно было сделать telnet на определенный порт и управлять работой mpd), причем без всякого пароля. Закончилось это тем, что однажды утром содержимое дисков сразу нескольких компьютеров этого провайдера оказалось уничтоженным. К сожалению, администраторы не стали утруждать себя тщательными расследованием этого случая, поэтому точный способ взлома остался неизвестным, но как показали мои исследования исходных текстов - mpd в такой отладочной конфигурации позволял выполнять произвольные команды с правами рута без серьезных усилий со стороны хакера. Обязательно проверяйте и отлаживайте новое программное обеспечение на специально выделенных компьютерах с минимальным доступом извне и старайтесь сводить отладочные работы на системах, подключенных к Internet к минимуму.

Строя систему безопасности, не следует забывать о "физической" безопасности. При наличии физического доступа к компьютеру, практически любая защитная система может быть взломана за короткое время. Например, большинство Unix-систем можно загрузить в single-user mode, а при его запрете - загрузиться с другого физического носителя (дискета, лента, компакт-диск и т.д.) затем подмонтировать локальные диски компьютера и получить полный доступ к этому компьютеру (системы шифрования данных, хранимых на дисках, к сожалению, не слишком распространены и довольно дороги). Поэтому необходимо тщательно следить за охраной помещений, в которых установлены компьютеры, контролировать доступ в эти помещения, правильно подбирать и инструктировать персонал, имеющий доступ к компьютерам (классические ситуации с забытым логином на локальной консоли или обиженным сотрудником явно не способствуют повышению уровня безопасности), контролировать трассы прокладки локальных сетей и крайне внимательно относиться к любым незапланированным перезагрузкам/отключениям/потерям связи, особенно во время отсутствия персонала и тому подобное. Разумеется, уровень реализации всех этих мер напрямую зависит от необходимого уровня безопасности и стоимости защищяемой информации.

К сожалению, такое может случиться с каждым - в каталоге /usr/tmp лежит копия sh с битом SUID и владельцем root, все логи за предыдущую неделю куда-то испарились, несколько машин имеет на дисках только пару случайно уцелевших файлов, а представители конкурентов задают глупые вопросы, с трудом сдерживая улыбку. Если такое произошло - можете считать что вам даже повезло - вашу систему взломали те, кому хотелось просто показать свою "крутизну". В случае хорошо подготовленного и продуманного взлома "по заказу" вы рискуете просто ничего не узнать . Но акции подобного уровня встречаются нечасто и обычно о факте взлома узнают в тот же или на следующий рабочий день. Что же делать если система подверглась взлому? К своей искренней радости, автор данной странички с этим вопросом на практике никогда не встречался. Однако, я могу предложить несколько чисто умозрительных рекомендаций. Во-первых - не надо спешить. Если вам нужно найти истинного виновного (а его нужно найти в подавляющем большинстве случаев) и узнать в каком же месте ваша система безопасности дала сбой - самое плохое что вы сможете сделать, это взять последние бэкапы и начать все восстанавливать, уничтожая последние следы взлома и снова открывая все те же дыры. Оцените примерный срок начала взлома. Поищите заслуживающие доверия бэкапы, датированные более ранним числом. Внимательно исследуйте всю ту информацию, что имеется в наличии (логи, бэкапы, исходные тексты и т.д.) на предмет возможный подделок, жучков и дыр. Сценарий "почти идеального взлома" (до осуществления которого дело почти никогда не доходит) включает в себя занесение всевозможных жучков во все возможные места - исходные тексты программ, ядра операционной системы, статические и динамические библиотеки, SUID-ные программы и даже компиляторы и дистрибутивы операционной системы, записаные на дисках машин подвергнувшихся взлому - все это может содержать в себе код, добавленный хакером в своих личных интересах. Чем ближе взлом к "идеалу", тем меньше будет встречаться подобных вставок, так что всегда храните, как минимум - контрольные суммы для всех файлов на носителях, расположенных в обычное время как можно дальше от ваших компьютеров.


Лекция 8.

Название: Фильтры и защитные экраны. Современные комплексные системы.

Фильтры и защитные экраны

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

• пакетной фильтрации;

• сервисах-посредниках (proxyservices).

Эти две функции можно использовать как по отдельности, так и в комбинации.
Пакетная фильтрация. Использование маршрутизаторов в качестве firewall
Фильтрация осуществляется на транспортном уровне: все проходящие через межсетевой экран пакеты или кадры данных анализируются, и те из них, которые имеют в определенных полях заданные ("неразрешенные") значения, отбрасываются.

Пропуск во внутреннюю сеть пакетов сетевого уровня или кадров канального уровня по адресам (MAC-адреса, IP-адреса, IPX-адреса) или номерам портов TCP, соответствующих приложениям. Например, для того, чтобы трафик telnet не пересекал границу внутренней сети, межсетевой экран должен отфильтровывать все пакеты, в заголовке TCP которых указан адрес порта процесса-получателя, равный 23 (этот номер зарезервирован за сервисом telnet). Сложнее отслеживать трафик FTP, который работает с большим диапазоном возможных номеров портов, что требует задания более сложных правил фильтрации.

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

Главные преимущества фильтрации межсетевым экраном по сравнению с фильтрацией маршрутизатором состоят в следующем:

межсетевой экран обладает гораздо более развитыми логическими способностями, поэтому он в отличие от маршрутизатора легко может, например, обнаружить обман по IP-адресу;

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

Сервисы - посредники (Proxy-services)

Сервисы-посредники не допускают возможности непосредственной передачи трафика между внутренней и внешней сетями. Для того, чтобы обратиться к удаленному сервису, клиент-пользователь внутренней сети устанавливает логическое соединение с сервисом-посредником, работающим на межсетевом экране. Сервис-посредник устанавливает отдельное соединение с "настоящим" сервисом, работающим на сервере внешней сети, получает от него ответ и передает по назначению клиенту - пользователю защищенной сети.
Для каждого сервиса необходима специальная программа: сервис-посредник. Обычно, защитный экран включает сервисы-посредники для FTP, HTTP, telnet. Многие защитные экраны имеют средства для создания программ-посредников для других сервисов. Некоторые реализации сервисов-посредников требуют наличия на клиенте специального программного обеспечения. Пример: Sock - широко применяемый набор инструментальных средств для создания программ-посредников.

Сервисы-посредники не только пересылают запросы на услуги, например, разработанный CERN сервис-посредник, работающий по протоколу HTTP, может накапливать данные в кэше межсетевого экрана, так что пользователи внутренней сети могут получать данные с гораздо меньшим временем доступа.

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

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








Дата добавления: 2015-05-30; просмотров: 1061;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.075 сек.