Локальные атаки на корпоративные сети
.doc- не принимать в качестве паролей коротких последовательностей символов, меньше 8—10; максимально использовать предоставляемые системой возможности и вводить парольные последовательности в 15— 20 символов.
- обязательно использовать в пароле не только буквы и цифры, но и спецсимволы (!"№;%:?*{[<>? и т. п.) и изменение регистра символов (с нажатием клавиши <Shift>). He следует думать, что достаточно набирать в качестве пароля на клавиатуре, включенной в режим латинского шрифта, фразу на русском языке, ориентируясь на русскую раскладку. К сожалению, существуют уже словари для программ - взломщиков паролей, ориентированные и на такие хитрости;
- если у пользователя проблемы с запоминанием паролей, можно рекомендовать в качестве пароля известную ему, запоминающуюся фразу или первые строки литературного произведения, перемежая его спецсимволами, в латинской раскладке, со сменой регистров.
Пример (который, конечно же, следует использовать в качестве методики, а не копировать дословно).
Фраза: "31 декабря 1978 года мы пошли в баню" — цифр в ней и так достаточно, будем набирать ее в латинской раскладке, группируя слова спецсимволами и последние три слова в верхнем регистре. Получаем:
"(31-ltrf,hz)+[1978=ujlf] vs&GJIKB D"<FY>"",
что вполне может считаться хорошим паролем.
Дополнительно, если система хранения паролей имеет такую техническую возможность, на предприятии можно внедрить практику, когда уполномоченные администраторы или специалисты по информационной безопасности анализируют пароли пользователей с помощью соответствующего программного обеспечения в течение фиксированного промежутка времени (например, считаются приемлемыми пароли, которые не удалось взломать в течение трех дней).
В этом случае необходимо определить:
- процедуру, препятствующую злоупотреблению взломанным паролем со стороны проверяющего;
- ответственность пользователя за некачественно выбранный пароль, который был взломан - ведь выбор такого пароля объективно представляет угрозу для предприятия.
1.2.6. Атаки класса "повышение привилегий". Другая категория возможных локальных атак заключается в выполнении пользователем, получившим доступ в систему (не важно авторизованным пользователем или злоумышленником, приобретшим доступ от имени пользователя) различных несанкционированных действий. Данный класс атак носит название повышение привилегий.
Наиболее примитивный вариант - это поиск информации, когда пользователь начинает исследовать доступные для него возможности в системе, которые напрямую не связаны с его рабочими обязанностями. Если права пользователя в системе настроены в соответствии с принципом минимальных привилегий, то такой поиск не приведет к угрозе для системы. Однако, если сама система не позволяет жестко ограничить пользователя, то он может получить дополнительную информацию, например, о системных настройках, системном "мусоре" или о данных, которые не должны быть ему доступны, и использовать их дальше в своих интересах. В качестве системного "мусора" в данном случае можно рассматривать дампы памяти, файлы с расширением pwl и пр., из чего можно извлечь информацию.
В рамках такого поиска пользователь может пытаться изменить системные настройки, если система это позволяет. Например, пользователь может случайно или намеренно сделать доступными для остальных пользователей сети свои локальные информационные ресурсы, предназначенные только для него. Кроме того, при специфической организации доступа к данным пользователь может получить к ним доступ вне системы разграничения прав. Например, если разграничение прав доступа к данным производит приложение, а при этом СУБД, хранящая данные, такого разграничения не производит. В этом случае пользователь, обратившись к данным вне приложения, может получить доступ к информации, для него не предназначенной.
Если невозможно техническое ограничение прав пользователя на поиск информации, необходимо предпринять соответствующие дополнительные меры, например, запретить такой поиск в приказном порядке. Иногда система, не давая возможности ограничивать доступ, тем не менее, позволяет вести регистрацию такого доступа; подобные регистрационные журналы можно использовать для анализа несанкционированной активности пользователей.
1.2.7. Постороннее программное обеспечение. Более распространенный вариант, когда пользователь устанавливает на своем компьютере постороннее программное обеспечение. Он может сознательно устанавливать программное обеспечение, которое предназначено для исследования или взлома систем, либо неосознанно установить зловредную программу, результат может быть одинаково угрожающим. В этой ситуации:
- пользователь должен быть предупрежден о запрете установки стороннего программного обеспечения;
- служба информационной безопасности должна принимать меры к обнаружению и устранению таких программ.
Зловредные программы, устанавливаемые пользователем по незнанию, представляют собой скорее вариант удаленной атаки, так как пользователь компьютера не является ни автором, ни пользователем этой программы. В данном случае больший интерес представляют программы, устанавливаемые пользователем сознательно, чтобы использовать их в своих интересах.
Собственно, в зависимости от строгости порядков на предприятии, любую постороннюю программу - компьютерную игру, программу, обучающую иностранному языку, энциклопедию - можно считать зловредной. Во-первых, все они отвлекают пользователя в его рабочее время, за которое ему платит работодатель. Во-вторых, они расходуют ресурсы (место на диске, процессорное время и т. п.) системы, предоставленной пользователю для выполнения рабочих обязанностей.
Однако рассмотрим непосредственно так называемые "хакерские" программы. К ним следует отнести программы, предназначенные для повышения привилегий пользователя в данной локальной системе; анализаторы сетевой активности — снифферы; локальные взломщики паролей и других защищенных ресурсов (шифрованных документов, таблиц, архивов); дизассемблеры и отладчики; конструкторы и генераторы вирусов и сетевых пакетов; генераторы номеров кредитных карт и др.
Перечислим известные возможности таких программ как примеры существующих атак:
- программа повышения прав пользователя зависит от конкретной операционной системы и ее настроек. Позволяет пользователю с минимальными правами получить доступ к системным ресурсам с более высокими привилегиями, вплоть до привилегий администратора системы;
- сниффер (англ. sniffer) — программа, перехватывающая пакеты, поступающие к данной станции, в том числе и те, которые станция при нормальной работе должна проигнорировать. Если сеть предприятия организована по принципу множественного доступа (то есть пакеты получают все станции, но обрабатывают только те, для кого они предназначены), то сниффер может накопить существенную информацию, так как до него могут дойти, например, авторизационные пакеты с паролями;
- программы подбора паролей могут быть использованы пользователем на многопользовательских рабочих станциях с целью попытаться в фоновом режиме подобрать (например, по словарю) пароль другого пользователя этой же системы;
- взломщики шифров - программы, использующие различные криптоана-литические методы и известные уязвимости в криптографических алгоритмах для приведения данных в незашифрованное состояние без использования ключа дешифрования. Если в качестве шифрованного файла для программы был использован, например, файл паролей локальных пользователей (в том числе администратора), то при успешной работе программы будут получены соответствующие пароли;
- дизассемблеры (англ. disassembler) и отладчики (англ. debugger) позволяют провести анализ и пошаговое выполнение программного обеспечения (например, операционной системы или приложения) с тем, чтобы понять его внутреннюю логику и уязвимости или вызвать в его работе сбой с предсказуемым результатом, либо изменить ход работы программы в свою пользу;
- атаки на переполнение буфера - когда поступающие в программу данные вызывают сбой либо проблемы с выдачей программой информации, которая должна быть скрыта, либо с выполнением ряда действий иначе, чем это было запланировано разработчиком программы;
- конструкторы и генераторы вирусов позволяют соответственно создать программное обеспечение, которое в дальнейшем можно использовать для нанесения ущерба информационным системам;
- конструкторы и генераторы сетевых пакетов позволяют создавать пакеты, отличные от создаваемых уполномоченной системой, например, с измененным адресом отправителя или некорректным размером. Применение таких программ может привести к сбоям информационных систем или ошибочным аутентификациям, если аутентификация производится по адресу отправителя;
- генераторы номеров кредитных карт не являются угрозами локальной системе, они позволяют ввести в заблуждение удаленные системы, предоставляющие платные ресурсы путем предъявления к оплате несуществующих или чужих карт. Тем не менее, предприятие, чей работник использует такой трюк, может понести ущерб в ходе проведения расследования атакованной стороной.
Кроме перечисленных программ, пользователь может использовать программу автоматизированного поиска уязвимостей системы. Хотя чаще всего такие программы характерны для использования при удаленных атаках, тем не менее, они могут быть использованы для анализа локальной системы.
Как следует из списка, сфера действий этих программ различна, поэтому вместо того, чтобы бороться со всеми возможными атаками от этих программ, проще заранее кардинально решить вопрос с запретом установки таких программ. Рекомендации в этом случае могут быть следующими:
- пресечение источников проникновения постороннего программного обеспечения: блокировка внешних носителей, фильтрация входящего информационного трафика;
- разграничение прав пользователей в системе таким образом, чтобы они не могли устанавливать программное обеспечение самостоятельно;
- инвентаризация программного обеспечения, установленного у пользователей - регулярная автоматизированная проверка или выборочная инспекция;
- подготовка соответствующих нормативов по правилам работы и ознакомление с ними пользователей.
Возможно, в ближайшее время или в далеком будущем появятся другие атаки. Необходимо быть постоянно осведомленным о таких возможностях, т. е. регулярно изучать соответствующие информационные ресурсы (специализированные книги, сайты в Интернете, подписка на рассылку и т. п.). Информацию о новых появившихся атаках следует обязательно анализировать применительно к собственной сети, при этом нельзя забывать о том, что потенциально исполнителем атаки может быть и сотрудник своего предприятия. При соблюдении этих мер служба информационной безопасности будет готова адекватно воздействовать в подобных ситуациях.
1.2.8. Пример локальной атаки. Для более подробного ознакомления с описанными атаками приведем пример, в котором использовалось около семи локальных атак.
Одним из известных опубликованных в печати случаев применения социальной инженерии является рассказ Иры Винклер, директора по технологиям Национальной ассоциации компьютерной безопасности, о ее участии в тестовом проникновении в компанию с условным названием Zed Technologies. Данный случай интересен не столько сам по себе, сколько тем, что в нем описан целый спектр методов, которые может применить злоумышленник с целью овладения конфиденциальной информацией.
Для реализации своего плана Ира использовала пять видов атак: анализ открытых источников, выдача себя за другого сотрудника, использование авторизованного доступа для злоупотреблений, хакерские действия на информационные системы из локальной сети организации и из внешнего информационного пространства. Мы рассмотрим лишь те, которые относятся к социальной инженерии. Из архивов новостей она выяснила наиболее перспективные направления исследований в компании, финансовые затраты на проекты компании и объем потенциальных продаж. Узнала имя руководителя исследовательской группы, работающей над проектом, и получила краткую информацию о выпускаемых компанией продуктах и сотрудниках. участвовавших в их разработке. Из других открытых источников она установила имена руководителей подразделений компании, финансовое состояние компании и разнообразную общую информацию о компании и ее политике, организации работы сотрудников. Поиск в Интернет - конференциях названия компании выявил имена ряда служащих компании. Письма служащих в группы новостей компьютерной тематики рассказали ей об оборудовании и программных средах, использующихся в компании. Письма в нетехнические группы помогли выявить области интересов служащих, посылавших эти сообщения. Газета, выпускаемая компанией, описывала шесть главных проектов и приводила имена большого числа сотрудников, работающих над этими проектами.
Далее, Ира оформилась на работу в Zed Technologies как временный специалист по контракту. Она не указывает, как это было сделано, но по ее дальнейшему рассказу, она могла поступить туда даже уборщицей. Перед прибытием на рабочее место она менее чем за день, используя реальную бизнес-карту как образец, сделала в местном магазине бизнес – карту, которая выглядела точно так же, как сделанная в Zed Technologies. В ней было указано имя Иры и должность - администратор информационной безопасности.
На работе, встретившись с одним из известных ключевых работников, она заявила, что недавно ее приняли на работу администратором по информационной безопасности, дала ему свою бизнес-карту и сказала, что ей поставлена задача защиты информации компании. Ира попросила его детально описать, какая информация является критической, и какие люди имеют к ней доступ, спросила, есть ли источник, из которого можно взять полную информацию о технологии производства. В ответ он показал копии заметок с рабочих совещаний группы и список рассылки, члены которой получают эти заметки. По просьбе Иры он не только дал ей копии всех заметок из книги, но даже добавил Иру в список рассылки.
В беседе с другим работником они обсудили сделанные его отделом документы, и Ира узнала о типах документов, местах хранения файлов в сети, группе ответственных за архивацию файлов и имя человека, ответственного за их хранение. Этот сотрудник даже упомянул один документ, содержащий спецификацию технологии продукта. В записках рассылки Ира обнаружила сообщение, в котором указывалось местоположение черновиков документов, переданных правительству. В следующем предложении автор сообщения давал пароль для доступа к этому документу, в той же директории находились аналогичные документы о двух других приоритетных проектах компании. Ира использовала несколько типовых комбинаций в качестве пароля и одна из них оказалась правильной, она получила доступ к файлам. Как оказалось, каждый коммерческий менеджер отвечает за ряд проектов, поэтому файлы одного из менеджеров, содержали информацию о большом числе проектов.
Затем Ира узнала о том, что Zed Technologies использует смарт-карты для аутентификации доступа из внешнего информационного пространства. Она получила копию формы, используемой для заявки на получение смарт-карты, подделала подпись администратора информационной безопасности на ней и передала секретарю на утверждение.
Далее Ира попыталась задержаться на работе допоздна. Несколько уборщиков ходили по зданию, когда она начала искать незапертые шкафы, комнаты и ящики на столах и осматривать компьютеры, которые не были защищены с помощью устройств блокировки рабочих станций, требуемых согласно руководящим документам компании. Было невозможно избежать встреч с уборщиками, поэтому она не скрывала своего присутствия.
Она обнаружила два компьютера, оставленных без блокировки консоли. Два монитора были выключены, она просто включила один и обнаружила, что сотрудник все еще работает в программе электронной почты. При этом он сохранял старые письма. Просмотрев их, Ира нашла сообщение, содержащее основной график разработки, один из самых критических документов компании.
В своей работе Ира использовала ряд дополнительных технических средств типа автоматических анализаторов уязвимостей, таким образом она смогла похитить практически всю наиболее важную конфиденциальную информацию компании. По ее оценке причина этого в том, что компания сосредоточилась на защите от внешних атак. Как только атакующий получал статус сотрудника организации, меры защиты становились бесполезными, и информация подвергалась риску.
При этом следует учесть, что предварительно с ней было согласовано, что она не будет наносить вреда компании и сотрудникам. Если предположить, что в арсенале злоумышленника будут такие средства, как активное вмешательство в работу оборудования компании, установка подслушивающих устройств, запугивание, шантаж или физическое воздействие на сотрудников, то результат может быть достигнут даже при более серьезном подходе к безопасности для внутренних работников.
1.2.9. Утилиты локальных атак. Известная утилита, получения доступа к файловой системе Microsoft Windows NT - NTFS называется NTFSDOS. Думаем, что даже яростные противники Билла Гейтса согласятся, что с установленными соответствующими заплатами и исправлениями правильно сконфигурированная система Windows NT с корректно распределенными NTFS - правами и защищенным паролем администратора представляет собой достаточно надежную систему. Но все это верно только до тех пор, пока у злоумышленника нет возможности произвести загрузку с дискеты (в данном случае операционной системы DOS) и запустить пресловутый драйвер файловой системы ntfsdos.exe. Другим вариантом может быть физическое похищение жесткого диска компьютера и перемещение его туда, где возможно произвести загрузку с другой операционной системы, также NT-подобной (где у злоумышленника уже есть соответствующие права) или другой операционной системы (аналог NTFSDOS существует и для Linux).
Когда утилита запущена, она сканирует разделы жестких дисков, имеющихся на компьютере, и ищет NTFS-драйвер. Найдя его, утилита делает раздел NTFS доступным операционной системе DOS как логический диск, игнорируя при этом права доступа, которые были определены в файловой системе NTFS. Свободно распространяемая версия делает раздел NTFS доступным только для чтения, однако коммерческие версии и аналоги позволяют иметь полный доступ к файлам NTFS. Дополнительные ограничения свободных версий могут быть на размер диска (до 4 Мбайт), поддержку чередования дисков, отображения времени создания/модификации файлов и др.
Другая программа GetAdmin.exe, использующая уязвимость операционной системы Windows NT, позволяет добавлять пользователя (если только он не работает под учетной записью guest) в группу локальных администраторов. Реализация атаки стала возможна, так как функция NtOpenProcess (Получить доступ к процессу) не производила проверку соответствующих привилегий после изменения одного из флагов (N^s-obalFlag). При этом процесс winlogon с учетной записью System мог добавлять или удалять пользователя из группы администраторов. Используя эту программу, став локальным администратором, далее пользователь может производить любую перенастройку системы под свои интересы.
Программа взлома паролей Windows NT - LOphtCrack — использовала при атаке необходимость обратной совместимости различных версий аутентификационных протоколов. Взлом стал возможным из-за того, что более старая версия протокола LANManager использовала откровенно уязвимый алгоритм шифрования (если быть более точным - хэширования) паролей. Таким образом, злоумышленникам не было необходимости работать с более сильным механизмом защиты NT - они использовали более слабый вариант, оставленный для поддержки аутентификации старых версий. Пароли LAN Manager не производят различия между регистрами (строчная и заглавная буква рассматривается как одна и та же), что существенно сокращает количество вариантов паролей. Кроме того, стандартный пароль NT длиной в 14 символов LANManager разбивает на два по 7. А это при наличии возможности проверять хэш половинок пароля независимо (именно так и происходит на самом деле) позволяет злоумышленнику перебирать 677+677(=243), а не 6714(=284) вариантов пароля.
Чтобы раскрыть пароли, на первом шаге программа использует хэш LANManager. LOphtCrack обрабатывает список слов, используя при этом тот же алгоритм, что и LANManager, и сравнивает полученное значение с оригиналом из базы данных паролей SAM (Security Accounts Manager). Если устанавливается соответствие, то пароль раскрыт. Если программа доходит до конца словаря, то она начинает просмотр словаря заново, добавляя понемногу символов в начало и конец каждого словарного слова, и т. д. Вычислив значение хэша LANManager, LOphtCrack получает пароль без различия регистра. Теперь программа хэширует все варианты написания пароля (с буквами в разных регистрах) и сравнивает хэш-значения с исходными хэш-значениями для NT.
Специальная утилита из пакета NT4 - SP3 syskey обеспечивает дополнительную защиту, шифруя хэш-значения паролей из SAM. Однако поскольку в базе продолжают присутствовать и пароли для LANManager, программа может перенести акцент атаки на перехват пакетов с паролями, предназначенными для LANManager.
1.2.10. Предварительные выводы. Перечисленные примеры атак не являются новыми — они давно известны. Приведены они здесь только для того, чтобы показать, какие разнообразные причины могут послужить уязвимостями для систем. Новые виды атак появляются постоянно. Поэтому повторим еще раз основные рекомендации по противодействию им:
- стройте защиту на противостоянии не конкретной атаке, а классу атак;
- установите защиту на разных уровнях, так как новая атака, возможно, обойдет тот эшелон защиты, который был направлен против нее, но "споткнется" о другой эшелон соседнего класса (например, новый сверхвзломщик паролей, превосходящий имеющиеся заплаты и обновления системы, будет бесполезен, если сам файл паролей недоступен взломщику);
- будьте в курсе новых атак, о которых обычно информируют соответствующие организации, и своевременно устанавливайте обновления и заплатки на системы, выпускаемые производителем.
Более серьезным материалом на тему формирования парольной политики может служить документ CSC-STD-002-85 "Password Management Guide" Министерства обороны США [DOD2], одна из книг так называемой Радужной серии (Rainbow series), куда входят знаменитые "Оранжевая" [DOD1J и "Красная" [NCSC1] книги. В документе рассмотрены такие вопросы, как ответственность специалиста по безопасности, ответственность пользователя, функциональность механизма аутентификации и защита паролей. Кроме того, там предложены алгоритмы генерации и шифрования паролей, определение длины пароля, вероятности его угадывания и пр.