Сервер в кармане, или просто о сложном!

Проблемы защиты сетевых соединений в Windows NT

Обновлено: 16.01.2025
Вадим Проскурин, vadim_proskurin@hotmail.com

В статье показана недостаточность защиты сетевых соединений между рабочими станциями и серверами Windows NT, организованных посредством интерфейса NPFS. Этот интерфейс имеет ряд слабостей, позволяющих осуществлять различные удаленные атаки. Предложены две атаки, одна из которых относится к классу "отказ в обслуживании", а другая позволяет получать обычному пользователю права администратора путем перехвата административных сетевых соединений. Рассматриваются возможности усиления защиты NPFS-соединений в Windows NT.

Что такое NPFS.

Аббревиатура NPFS расшифровывается как Named Pipe File System. Несмотря на то, что в этом названии присутствуют слова "file system", назвать NPFS файловой системой можно только с очень большой натяжкой. Драйвер npfs.sys, хотя и работает в соответствии со спецификациями драйвера файловой системы, не управляет никакими файлами. Вместо этого npfs.sys управляет так называемыми каналами (named pipes). Вместе с файлами, дисковыми директориями, устройствами и почтовыми ящиками (mailslots) каналы относятся к классу файловых объектов. Большинство функций, предназначенных для работы с файлами (в том числе CreateFile, ReadFile и WriteFile), работают и с каналами.

Канал можно представить себе как некую виртуальную трубу, по которой перетекает информация от одного процесса к другому. Информация может передаваться как в одну сторону (однонаправленный канал), так и в обе стороны (двунаправленный или дуплексный канал). Хотя каналы Windows NT очень похожи на аналогичные объекты UNIX, техническая реализация каналов в Windows NT и UNIX существенно различается.

Создание канала происходит следующим образом.

  • Процесс-сервер создает канал с помощью функции программного интерфейса Win32 CreateNamedPipe. Канал может быть создан только на локальном компьютере.
  • Процесс-сервер активизирует канал с помощью функции ConnectNamedPipe. Теперь к каналу могут подключаться клиенты.
  • Процесс-клиент подключается к каналу посредством вызова функции CreateFile. Параметры функции отличаются от обычных только именем открываемого объекта, которое имеет вид \computer_namepipepipe_name. Вместо имени компьютера может использоваться символ '.' (точка), в этом случае речь идет о локальном компьютере.

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

Клиент может отключиться от канала в любой момент с помощью функции CloseHandle. Сервер может отключить клиента в любой момент с помощью функции DisconnectNamedPipe. После прекращения связи с клиентом сервер может повторно использовать канал с помощью повторного вызова функции ConnectNamedPipe.

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

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

В целом интерфейс NPFS весьма удобен для обмена информацией между процессами, особенно в тех случаях, когда процесс-клиент и процесс-сервер выполняются на разных компьютерах одной локальной сети. NPFS широко используется операционной системой Windows NT для своих нужд. С помощью NPFS решается множество задач, некоторые из которых играют важную роль в обеспечении безопасности операционной системы. Например, каналы lsass, lsarpc и LANMAN используются при передаче по сети имени и пароля пользователя при сквозной аутентификации в домене Windows NT. Также стоит отметить, что удаленный вызов процедур (RPC) в Windows NT реализован как надстройка над NPFS.

Некоторые странности NPFS.

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

Пусть некий процесс создал экземпляр некоторого канала. Другой процесс пытается создать экземпляр того же самого канала, вызывая CreateNamedPipe с тем же именем создаваемого канала. Как это ни странно, второй экземпляр канала будет успешно создан. Более того, если второй процесс вызовет теперь ConnectNamedPipe, экземпляр канала, созданный вторым процессом, сможет обслуживать клиентов.

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

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

Другой интересный эффект. Каналы, как и любые другие объекты Windows NT, могут иметь дескриптор защиты (security descriptor), описывающий то, какие пользователи имеют какие права на доступ к данному объекту. Мне так и не удалось найти простой метод, позволяющий получить дескриптор защиты канала по его имени (конечно, можно это сделать с помощью драйвера фиктивного устройства, но это слишком трудоемко). Эксперименты показывают, что любой канал, даже системный, даже такой важный и ответственный, как lsass, может быть открыт любым пользователем. Все, что требуется от пользователя - это аутентифицироваться под любым именем на компьютере, на котором выполняется процесс, обслуживающий данный канал.

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

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

Из всего вышеперечисленного непосредственно следует, что NPFS представляет собой прекрасный объект для удаленных атак. Две возможные (но далеко не единственно возможные) атаки рассмотрены ниже.

Атака PipeBomb.

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

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

Все перечисленные эффекты приводят к тому, что загрузка процессора компьютера, на котором выполняется процесс-сервер, стабильно держится на уровне 100% (при этом около 90% времени процессор обслуживает процессы с базовым приоритетом High), а объем свободной оперативной памяти этого компьютера уменьшается со скоростью от 1 до 3 мегабайт в секунду. Когда и физическая, и виртуальная памяти компьютера переполняются, и начинается рост файла виртуальной памяти, эта скорость несколько уменьшается. Уже через минуту атакованный компьютер становится практически неработоспособен (окно Explorer прорисовывается несколько минут), а через 5-10 минут перегруженность операционной системы достигает такой степени, что команда Shutdown выполняется 3-6 часов.

Эта атака интересна тем, что использует не слабости протокола TCP/IP, в общем-то, чуждого для Windows NT, а слабости "родного" программного обеспечения этой операционной системы. Атака одинаково эффективно работает для любого сервис-пака Windows NT 4.0, включая четвертый, поражаются и рабочие станции, и серверы. Не исключено, что эту атаку можно применять и в Internet, инкапсулируя пакеты SMB в пакеты TCP/IP (сетевая составляющая интерфейса NPFS организована как надстройка над протоколом SMB).

Существует программа, реализующая данную атаку.

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

Атака AdminTrap.

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

В программном интерфейсе Win32 существует функция ImpersonateNamedPipeClient, выполняющая олицетворение (impersonation) клиента канала. Олицетворение клиента канала заключается в том, что потоку, вызвавшему данную функцию, назначается маркер доступа (access token) клиента экземпляра канала, handle серверного конца которого указан в качестве параметра функции. При этом поток процесса-сервера, обслуживающий данный экземпляр канала, получает полномочия пользователя, который подключился к этому экземпляру канала в качестве клиента. Обычно данная функция используется системными процессами-серверами для временного понижения полномочий, но если полномочия клиента превышают полномочия сервера, наблюдается обратная ситуация - после выполнения олицетворения полномочия сервера повышаются. Для того чтобы функция ImpersonateNamedPipeClient нормально выполнилась, необходимо, чтобы маркер доступа клиентского конца экземпляра канала представлял собой маркер олицетворения (impersonation token). Если процесс-клиент и процесс-сервер выполняются на разных компьютерах сети, это всегда имеет место. Никаких специальных привилегий для вызова ImpersonateNamedPipeClient не требуется.

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

Программа AdminTrap создает троянский экземпляр одного из системных каналов и ждет, когда к нему подключится клиент. Затем AdminTrap выполняет олицетворение клиента. Если олицетворение прошло успешно, один из потоков программы AdminTrap получает полномочия пользователя-клиента троянского экземпляра канала. В Windows NT интерфейс NPFS в основном используется для обмена информацией между операционными системами компьютеров локальной сети и удаленного администрирования, прикладные программы используют каналы редко. Поэтому вероятность того, что программа AdminTrap после вызова ImpersonateNamedPipeClient получит полномочия администратора, весьма велика, а при наличии этих полномочий программа может оказывать на операционную систему локального компьютера практически любые негативные воздействия. Например, подобная программа может использоваться для внедрения в систему программных закладок.

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

Поэтому для демонстрации того, что программа AdminTrap действительно получает полномочия пользователя, соединение с которым она перехватила, была выбрана несколько нестандартная процедура. Описываемая версия программы, получив полномочия пользователя-клиента, пытается зарегистрировать в операционной системе пользователя-администратора по имени AdminTrap. Для предотвращения использования программы AdminTrap в противозаконных целях в нее встроен ряд блокировок, в том числе:

  • пароль пользователя AdminTrap не описан ни в настоящей статье, ни в файле ReadMe.txt, прилагаемом к программе;
  • пользователь AdminTrap создается заблокированным (disabled). Снять эту блокировку может только администратор;
  • в качестве полного имени пользователь AdminTrap получает информацию о том, кто, с какого компьютера и в какое время провел атаку.

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

При программной реализации вышеописанной атаки имела место одна техническая проблема. Если к моменту создания троянского экземпляра канала в системе существует N легальных экземпляров этого канала, только N+1-й клиент канала сможет подключиться к троянскому экземпляру. Обычно системные процессы-серверы создают от двух до десяти экземпляров каждого обслуживаемого канала, поэтому, если не предпринять специальных мер, ожидание подключения клиента к троянскому экземпляру канала будет довольно долгим. В программе AdminTrap эта проблема решена следующим образом. Перед созданием троянского экземпляра канала программа подключается в качестве клиента ко всем легальным экземплярам атакуемого канала. Троянский экземпляр канала создается только тогда, когда все легальные экземпляры канала заняты и процесс-сервер, обслуживающий канал, настолько перегружен, что не может создавать новые экземпляры с той скоростью, с которой они захватываются программой AdminTrap. Другими словами, на операционную систему оказывается строго дозированное воздействие PipeBomb. Необходимая интенсивность воздействия определяется программой самостоятельно путем анализа времени реакции процесса-сервера на запросы клиентов.

Программа AdminTrap нормально функционирует под управлением всех существующих на сегодняшний день сервис-паков Windows NT 4.0. Мне удавалось перехватывать следующие сетевые соединения:

  • winreg - удаленное управление реестром, списком сервисов, репликацией и административными оповещениями (alerts); удаленный просмотр системных журналов; удаленное диагностирование и оценка производительности;
  • spoolss - удаленное управление принтером.

Вероятно, существуют и другие сетевые соединения, которые могут быть перехвачены программой AdminTrap. Не исключено, что в некоторых системах централизованного управления безопасностью сети (System Management Server, Secret Net и т.д.) NPFS используется системным программным обеспечением для установки административных соединений. При этом установка административных соединений происходит без непосредственного участия пользователя-администратора, что упрощает перехват этих соединений - система сканирует сеть каждые несколько минут и не нужно ждать, пока администратор соизволит обратиться к данному компьютеру сети.

Как с этим бороться.

Как было показано выше, в реализации интерфейса NPFS в Windows NT имеются слабости, позволяющие злоумышленникам осуществлять различные атаки операционной системы. К этим слабостям относятся следующие:

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

Рассмотрим несколько способов преодоления вышеописанных слабостей.

Возможно создание двух и более объектов, одноименных, но не идентичных функционально.

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

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

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

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

Стандартный метод решения подобных проблем заключается в следующем. Создается сервис, который автоматически загружается при старте операционной системы, открывает все объекты, защита которых по умолчанию неудовлетворительна, и устанавливает этим объектам новые атрибуты защиты. Подобный метод описан, например, в [7], где он применяется для изменения атрибутов защиты секций, в которых хранится код часто используемых системных библиотек (KnownDlls). К сожалению, для решения проблемы с защитой каналов данный метод неприменим.

Для того чтобы изменить атрибуты защиты какого-либо объекта Windows NT, вначале надо открыть этот объект с правом доступа WRITE_DAC (если нужно получить старые атрибуты защиты объекта, дополнительно потребуется право READ_CONTROL). Microsoft рекомендует использовать для изменения атрибутов защиты каналов функции GetFileSecurity и SetFileSecurity (см. [5]), однако эти функции при попытке их применения к каналам всегда сообщают об ошибке ERROR_PIPE_BUSY.

Существует и обходной путь. В Windows NT имеются две универсальные (и, как это обычно бывает, недокументированные) функции, позволяющие управлять защитой любых объектов. Это функции NtQuerySecurityObject и NtSetSecurityObject. Функция NtQuerySecurityObject позволяет получить атрибуты защиты любого объекта, handle которого передан функции в качестве параметра, функция NtSetSecurityObject - установить новые атрибуты защиты любому объекту. Если получить каким то образом handle экземпляра канала, открытый с правами доступа READ_CONTROL и WRITE_DAC, то с помощью двух вышеназванных функций можно установить этому экземпляру канала любые атрибуты защиты.

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

Источник: http://bezpeka.com/ru/lib/sec/syst/art403.html

Где NT хранит пароли

Обновлено: 16.01.2025
Марк Джозеф Эдвардс, Дэвид Лебланк

Марк Джозеф Эдвардс, Дэвид Лебланк
WINDOWS 2000 MAGAZINE #02/99
ЖУРНАЛ СИСТЕМНЫХ АДМИНИСТРАТОРОВ И РАЗРАБОТЧИКОВ

Наверняка вы знаете о том, что пароли служат ключами к большинству <дверей> в сети. А известно ли вам, где Windows NT 4.0 хранит эти пароли? Их можно обнаружить во многих интересных местах. И для того, чтобы обеспечить надежную защиту системы, необходимо располагать полной информацией о них.

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

Ключи реестра SAM

NT хранит постоянно используемую копию базы данных SAM на жестком диске. Вы можете получить доступ к этой базе данных через реестр системы (HKEY_LOCAL_MACHINE, ключ SAM), написав программу или используя редактор реестра (например, regedt32.exe). В принципе, пользователи не имеют доступа к ключу реестра SAM непосредственно из редактора реестра, так как NT предоставляет права доступа к данному ключу только системной учетной записи SYSTEM. Однако пользователи, имеющие административные привилегии, могут воспользоваться трюком NT и обеспечить доступ из пользовательской среды с правами SYSTEM.

Блокировка службы Планировщика NT (NT Scheduler). Упомянутый выше трюк состоит в использовании службы Планировщика NT для запуска редактора реестра на системной консоли в некоторое заранее определенное время. По умолчанию, Планировщик NT при выполнении заданий использует права учетной записи SYSTEM. Поэтому любая программа, запущенная Планировщиком, имеет полный набор системных привилегий, включая доступ к базе данных SAM. Чтобы защититься от данной опасности, приходится действовать жесткими методами, так как для этого необходимо заблокировать службу Планировщика NT. Блокировка данной службы не всегда возможна в связи с тем, что она может потребоваться для запуска обычных заданий. Если вы не в состоянии заблокировать службу Планировщика, постарайтесь сконфигурировать ее таким образом, чтобы она работала от имени учетной записи пользователя (права пользователя - это необходимый минимум для выполнения запланированных заданий).

Использование технологии системного ключа (system key). Для обеспечения защиты SAM вы также можете применить предлагаемую Microsoft технологию системного ключа. Данная технология впервые появилась в составе дополнений (hotfix) к пакету обновления NT Service Pack 2 (SP2), но широкую известность она получила, когда вошла в состав SP3. (О сервисном пакете SP3 читайте статью Service Pack 3 Is Really Security Pack 3 в журнале Windows NT Magazine, август 1997.) Технология системного ключа применяется для защиты NT и ее паролей посредством шифрования базы данных SAM и требует использования ключа шифра при загрузке операционной системы.

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

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

Более подробно о каждом из этих вариантов можно прочитать в статье Microsoft: Windows NT System Key Permits Strong Encryption of the SAM (http://support.microsoft.com/support/kb/articles/q143/4/75.asp).

Хотя системный ключ и помогает защитить SAM, прежде чем броситься в бой и начать его устанавливать, следует осознать несколько важных моментов. Нужно иметь в виду, что после установки syskey.exe на компьютере не существует возможности его удаления. Следовательно, необходимо очень внимательно отнестись к вопросу выбора оптимального для вашей системы метода хранения ключа. Непосредственно после установки syskey.exe нужно сформировать новую дискету ERD (Emergency Repair Disk). В противном случае вы не сможете полностью восстановить систему, если это потребуется.

Одно из реальных преимуществ использования системного ключа состоит в том, что если взломщикам удастся получить копию вашей базы данных SAM, они не смогут вытащить оттуда действующие хэш-коды паролей. У них не будет возможности применить для расшифровки паролей такие утилиты как L0phtCrack от L0pht Heavy Industries. Но следует заметить, что системный ключ не сможет остановить тех пользователей, которые имеют административные привилегии. Эти пользователи могут выгрузить базу данных SAM в формате, пригодном для взлома такими инструментами, как L0phtCrack; поэтому нужно очень аккуратно назначать административные права. Например, утилита Pwdump2 успешно получает хэш-коды паролей из базы данных SAM, даже если используется технология системного ключа. Следует учитывать потенциальную опасность, которую представляют подобные инструменты.

Другим преимуществом технологии системного ключа является возможность обнаруживать попытки такого малоизвестного способа взлома, при котором для получения доступа к системе применяются загрузочные диски. Конечно, такой метод взлома возможен только в том случае, если вы можете загрузиться с системного диска NT. Однако если это удается сделать, то взломщик может перенести базу данных SAM в другое место и затем перезагрузить компьютер. В процессе перезагрузки NT обнаруживает отсутствие базы данных SAM и создает новую базу, которая содержит только двух пользователей: Administrator и Guest, причем оба имеют пустые пароли. Очевидно, что теперь взломщик может зарегистрироваться в системе как Administrator, введя пустой пароль, сделать все, что ему нужно, затем перезагрузиться со своего системного диска и вернуть оригинальную копию базы данных SAM на прежнее место.

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

Аудит SAM

При любых обстоятельствах предусмотрительный администратор должен активизировать аудит базы данных SAM, чтобы своевременно обнаруживать какие-либо подозрительные действия. Разумеется, аудит предполагает, что вы будете регулярно и тщательно просматривать журнал событий. Процедура установки аудита SAM описана по шагам в колонке <Установка аудита системы безопасности>. Также эта процедура описывается в статье Microsoft Enable Auditing of Microsoft Windows NT Server Password Registry (http://support.microsoft.com/support/kb/articles/q186/ 3/74.asp). Вы можете активизировать аудит базы данных SAM, однако он не будет выполняться, если кто-то загрузит систему с другой копии ОС.

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

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

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

SAM на различных носителях информации

NT может помещать базу данных SAM на различные носители информации, включая дискеты, магнитные ленты и жесткие диски. Копирование базы на дискету или ленту требует определенных действий со стороны пользователя, такая операция не является частью обычной работы NT. В процессе ежедневного функционирования NT может размещать базу данных SAM в двух каталогах на жестком диске: %systemroot% epair и %systemroot%system32config. Хотя каталог config и содержит рабочую копию базы данных SAM, используемую <живой> системой, к этой базе нельзя получить доступ (например, для копирования) из таких программ, как Windows Explorer (Проводник), пока работает ОС. Это связано с тем, что системный процесс Local Security Authority (LSA) (lsass.exe) захватывает файл базы данных SAM для монопольного использования.

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

Каталог epair содержит ту же информацию, что и дискета ERD, создаваемая утилитой rdisk.exe и используемая для восстановления системы. И каталог epair, и дискета ERD содержат копии базы данных SAM, поэтому они должны быть надежно защищены. Дискета ERD должна храниться в столь же безопасном месте, что и ленты с архивами данных.

Для защиты каталога epair назначайте права таким образом, чтобы злоумышленники не могли получить доступ к данному каталогу и содержащимся в нем файлам, в особенности к файлу sam._, в котором находится база данных SAM. Чтобы защитить файлы в каталоге epair, используйте утилиту calcs.exe, входящую в состав Microsoft Windows NT Server 4.0 Resource Kit или другую аналогичную программу. Выполните следующие действия.

В окне Command Prompt перейдите в каталог %systemroot% (обычно это C:winnt) и выполните команду:

cacls repair /g administrators:F system:F /t

Либо вы можете, используя программу Windows Explorer, сделать следующее.

1. Откройте Windows Explorer.
2. Перейдите в каталог repair (обычно это C:winnt epair), нажмите правую клавишу мыши и выберите в открывшемся меню Properties.
3. Выберите закладку Security.
4. Выберите Permissions.
5. Отметьте Replace Permissions on Subdirectories и Replace Permissions on Existing Files.
6. Удалите из списка всех пользователей, кроме Administrators и SYSTEM.
7. Убедитесь, что и Administrators, и SYSTEM имеют права Full Control.
8. Нажмите OK.

Теперь вы назначили пользователям Administrators и SYSTEM права Full Control на данный каталог и все файлы, которые в нем содержатся. Поскольку режим редактирования ACL выбран не был, права всех остальных пользователей удалены системой.

В зависимости от конфигурации системы помимо каталогов epair и config NT может записывать информацию, имеющую отношение к SAM, в следующие файлы: pagefile.sys, memory.dmp или user.dmp. NT использует файл pagefile.sys как дополнительное пространство для организации виртуальной памяти, которое добавляется к физической памяти, установленной в компьютере. Файл memory.dmp создается при аварийном завершении работы операционной системы, если в конфигурации NT выбран режим записи образа памяти на диск. Файл user.dmp создается при аварийном завершении работы какой-либо прикладной программы, если в конфигурации программы Dr. Watson выбран режим записи образа памяти в файл.

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

Чтобы уменьшить опасность, связанную с использованием файлов user.dmp и memory.dmp, вам необходимо предпринять одно из следующих действий:

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

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

Чтобы отключить создание файлов user.dmp программой Dr. Watson запустите утилиту drwtsn32.exe, отключите параметр Create Crash Dump File и закройте программу.

Чтобы отключить в параметрах настройки NT создание файла memory.dmp, запустите в Панели Управления (Control Panel) программу System и выберите закладку Startup/Shutdown.

Затем отключите параметр Write debugging information to. Если вам все же необходимо иметь образы памяти на момент аварийного завершения работы NT, постарайтесь настроить параметры ОС и программы Dr. Watson таким образом, чтобы файлы, содержащие образ памяти, помещались в защищенный каталог, доступный только администраторам.

Что касается файла pagefile.sys, то его открывает и защищает от попыток непосредственного доступа со стороны взломщиков только операционная система. Однако следует упомянуть прошлогодний инцидент, когда клиентская служба NetWare для Windows NT помещала в память пароли пользователей NetWare в открытом виде. Эти пароли могли быть записаны в файл pagefile.sys при переписывании соответствующей страницы памяти на диск. Любой человек, имеющий копию файла pagefile.sys и текстовый редактор, мог без труда получить пароли. Разработчики Novell решили эту проблему. Теперь, прежде чем поместить пароли в pagefile, они шифруются с использованием недокументированного API-интерфейса. Однако взломщики могут пробить эту защиту. Так, изобретательные российские программисты нашли способ расшифровки информации, получаемой из файла pagefile.sys. Чтобы защититься от подобных атак, настраивайте NT таким образом, чтобы файл pagefile.sys удалялся при завершении работы системы. (Как это сделать, мы расскажем далее.) И не забывайте о необходимости физической защиты компьютера с целью предотвращения нежелательного доступа к файлу pagefile.sys.

Да, вы можете сконфигурировать NT так, чтобы pagefile удалялся при нормальном завершении работы системы. Но таким способом вы обеспечите защиту только от тех взломщиков, которые копируют или изменяют файл, загрузившись с другой копии ОС (т. е. используя загрузочный диск или загрузив NT из другого системного каталога). Большинство взломщиков понимают, что в таком случае у них есть возможность получения доступа к системе путем перемещения базы данных SAM, следовательно, взлом файла pagefile.sys становится бессмысленным

Несмотря на это, в ситуациях, когда условия эксплуатации системы требуют установки и использования нескольких копий ОС, удаление файла pagefile при нормальном завершении работы можно считать достаточной мерой безопасности. Следует иметь в виду, что если NT сконфигурирована так, чтобы удалять pagefile во время завершения работы системы, то неизбежна некоторая задержка в процессе начальной загрузки и останова ОС. Однако эта задержка несущественна, если принять во внимание уровень безопасности, которого мы в результате достигаем. Для того чтобы включить режим удаления файла pagefile.sys во время нормального завершения работы ОС, следует модифицировать (или создать) в системном реестре параметр ClearPageFileAtShutdown (типа REG_SZ) в ключе HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management, присвоив ему значение 1.

Хэш-коды паролей в памяти

По умолчанию, NT кэширует необходимые для регистрации атрибуты для 10 последних пользователей, входивших в систему интерактивно. Это делается для того, чтобы пользователь смог зарегистрироваться, даже если вы отключите компьютер от сети, или контроллер домена окажется недоступным. NT обеспечивает определенную защиту кэшируемой информации. Однако если ваши задачи требуют более высокого уровня безопасности, вы можете полностью отключить кэширование, чтобы исключить попытки атак на данные в кэш-памяти. Нужно учитывать, что кэшируемые данные содержат хэш-коды других хэш-кодов паролей. Поэтому их очень сложно взломать и использовать для несанкционированного входа в систему. Мы не можем вспомнить ни одного случая использования хакерами таких данных из кэш-памяти. Чтобы отключить кэширование, установите в 0 значение параметра реестра CachedLogonsCount (типа REG_DWORD) в ключе HKEY_ LOCAL_MACHINESOFTWAREMicrosoftWindowsNTCurrentVersion Winlogon.

SAM в сети

ОС Windows NT использует протокол SMB (Server Message Block - блок серверных сообщений), разработанный совместно фирмами Microsoft, IBM и Intel. Данный протокол определяет алгоритмы функционирования файловой службы в сетевой среде. Нетрудно предположить, что во время сеанса SMB по сети должны передаваться пакеты, содержащие информацию конфиденциального характера. Среди прочего эти пакеты обычно включают в себя зашифрованные данные протокола NTLM, передаваемые NT во время фазы аутентификации.

Взломщики, используя существующие сетевые анализаторы, могут легко перехватывать данные, передаваемые по сети. Задача перехвата нужных пакетов и получения из них информации о паролях всегда считалась нелегкой. Но ситуация в корне изменилась с появлением продукта SMB Packet Capture, выпущенного компанией L0pht Heavy Industries. Это сетевой анализатор, который тесно интегрирован с программой L0phtCrack. Имея в своем распоряжении L0phtCrack, можно легко <выхватывать> из сети хэш-коды паролей, передаваемые в соответствии с протоколом SMB.

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

Для защиты от подобных атак нужно использовать протокол NTLMv2, поставляемый в составе пакетов обновления SP4 и SP5, либо применять механизм создания виртуальных частных сетей (VPN - Virtual Private Network) типа Microsoft PPTP. Протокол NTLMv2 позволяет защитить данные, передаваемые по внутренней локальной сети, а PPTP обеспечивает защиту информации, передаваемой через такие <небезопасные> сети, как, например, Internet. Если вы реализуете PPTP, то обязательно установите последние сервисные пакеты, включая дополнения и исправления к ним (hotfix). Мы предупреждаем вас об этом, потому что в свое время PPTP-соединение считалось очень ненадежным. Microsoft внесла необходимые корректировки, устраняющие недостатки PPTP. Но эти корректировки будут вам недоступны, если вы не установите hotfix к пакету SP3 или более позднему пакету.

Следует иметь в виду, что при отсутствии в вашей системе механизма VPN и технологии подписей SMB взломщик может использовать сеанс SMB для получения несанкционированного доступа в систему. Microsoft реализовала технологию подписей SMB в пакете обновления SP3 и также включила ее во все последующие пакеты обновления. При использовании подписей пакетов SMB операционная система проверяет подлинность каждого пакета, прежде чем принять его к исполнению. Однако реализация подписей SMB не всегда безопасна. Для получения более подробной информации обязательно прочитайте статью Microsoft How to Enable SMB Signing in Windows NT (http://support.microsoft.com/support/kb/articles/q161/3/72.asp).

Для борьбы со средствами взлома типа L0phtCrack можно запретить NT посылать в сеть хэш-коды паролей, формируемые по протоколу LAN Manager (LM). Хэш-коды LM являются более простыми, чем коды NTLM, так как NTLM позволяет задействовать пароли, учитывающие регистр. Также NTLM допускает возможность применения дополнительных символов клавиатуры. Это расширяет диапазон символов ключа шифрования на 26. Заметим, что сложные пароли труднее поддаются расшифровке даже при наличии таких инструментов, как L0phtCrack.

Целесообразно включать в пароль символ <возврат каретки>, так как L0phtCrack не умеет нормально обрабатывать этот символ. Чтобы вставить <возврат каретки>, нажмите клавиши Alt+0+1+3 на цифровой панели клавиатуры.

Для решения описываемой проблемы Microsoft реализовала в составе дополнений и исправлений к сервисному пакету SP3 новый ключ реестра. Он был включен во все сервисные пакеты, вышедшие после SP3. Новый параметр реестра, LMCompatibilityLevel, имеет тип REG_DWORD и размещается в HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsa.

При использовании NTLMv2 можно установить значение этого параметра равным 0, 1, 2, 3, 4 и 5. Если это значение равно 0, то NT при аутентификации сетевого соединения передает по сети пароли как в формате NTLM, так и в формате LM (этот метод аутентификации обеспечивает совместимость с другими системами и используется в NT по умолчанию). Если значение равно 1, то NT передает оба типа хэш-кодов только тогда, когда этого требует сервер. Если значение равно 2, то хэш-коды паролей в формате LM не используются ни при каких обстоятельствах. Если значение равно 3, применяется только аутентификация по протоколу NTLMv2. Значение параметра, равное 4, запрещает контроллеру домена использовать аутентификацию LM, а значение 5 указывает на необходимость применять при аутентификации только протокол NTLMv2. Наиболее безопасной является установка значения этого параметра равным 2. Но следует иметь в виду, что системы, поддерживающие только протокол LM (т. е. Windows 95 и Windows for Workgroups), не смогут установить соединение с данной системой NT. Полный перечень особенностей конфигурации описан в статье Microsoft How to Disable LM Authentication on Windows NT (http://support.microsoft.com/support/kb/articles/q147/7/06.asp). Заметим, что при установке пакета обновления SP4 данный ключ реестра способен принимать шесть различных значений.

Еще один способ взлома системы может иметь место, если взломщик располагает возможностью физического доступа к компьютеру. Используя такие средства, как NT Locksmith или ERD Commander (оба можно найти на http://www.wininternals. com), ничего не стоит получить доступ в систему с правами любого пользователя. Для защиты от этого метода взлома следует принять меры, препятствующие физическому доступу к компьютеру.

Можно немного расслабиться

В этой статье мы представили основные идеи и особенности конфигурации, которые следует учитывать при установке и сопровождении ОС Windows NT и ее системы безопасности. Также мы упомянули несколько вопросов, связанных с приложениями NT (см. колонки <Безопасность приложений BackOffice> и <Безопасность прикладных программ>), которые проливают свет на потенциальные проблемы и могут способствовать поиску путей защиты паролей от несанкционированного доступа.

Эта статья должна помочь вам несколько разгрузить свой мозг. Но не слишком расслабляйтесь. Вам по-прежнему необходимо держать систему под контролем. Продолжайте следить за журналами событий!

Об авторах

Марк Джозеф Эдвардс - сетевой инженер с 16-летним опытом работы. Он является автором книги Internet Security with Windows NT (издательство 29th Street Press). С ним можно связаться по электронной почте по адресам mark@ntshop.net или mje@winntmag.com.
Дэвид Лебланк более пять лет занимается вопросами безопасности Windows NT, является старшим технологом группы по компьютерной безопасности корпорации Microsoft. C ним можно связаться по электронной почте по адресу dleblanc@mindspring.com.

Установка аудита системы безопасности
  1. Войдите в систему с административными правами.
  2. Запустите программу User Manager. Выберите в меню: Policies, Audit и отметьте Audit These Events.
  3. Выделите для аудита (по минимуму) события с успешным (Success) и неудачным (Failure) результатом выполнения; включите аудит попыток входа в систему и выхода из нее (Logon, Logoff). Закройте диалоговое окно, чтобы активизировать аудит системы.
  4. Откройте программу Services в Панели Управления (Control Panel), установите для службы Планировщика NT (NT Scheduler) режим запуска от имени системы (System account). Запустите (или перезапустите) службу Планировщика.
  5. Откройте командное окно DOS и проверьте текущее системное время.
  6. Прибавьте к текущему времени 1-2 минуты (так, если время 11:30, используйте 11:32) и введите следующую команду:
      at 11:32 /interactive "regedt32.exe"
    

    Эта команда вставляет в список Планировщика событие, по которому в 11:32 на консоли будет запущена утилита regedt32 с правами SYSTEM.

  7. Дождитесь 11:32, когда Планировщик NT запустит редактор реестра. При этом вы получите доступ ко всему реестру, включая базу данных SAM. Будьте внимательны при редактировании реестра - ошибка может вывести из строя систему.
  8. Выберите HKEY_LOCAL_MACHINE, найдите дерево SAM и выделите его в левой панели экрана.
  9. Выберите в меню: Security, Auditing.
  10. В диалоговом окне Auditing выберите Add, Show Users.
  11. Добавьте учетную запись SYSTEM, группу Domain Admins, все учетные записи пользователей, имеющих административные права, а также все остальные учетные записи, которым присвоены следующие права (User Rights):
    • Take ownership of files or other objects (Овладение файлами или иными объектами)
    • Back up files and directories (Архивирование файлов и каталогов)
    • Manage auditing and security log (Управление аудитом и журналом безопасности)
    • Restore files and directories (Восстановление файлов и каталогов)
    • Add workstations to domain (Добавление рабочих станций к домену)
    • Replace a process-level token (Замена маркера уровня процесса)
  12. Отметьте: Audit Permission on Existing Subkeys
  13. Отметьте Success и Failure для следующих полей:
    • Query Value
    • Set Value
    • Write DAC
    • Read Control
  14. Нажмите кнопки OK, Yes.
  15. Повторите шаги с 10 по 14 для ключа SECURITY, если это необходимо. Это не требуется, если вам нужно активизировать аудит только тех ключей, которые содержат пароли.

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


Безопасность приложений BackOffice

Многие прикладные программы, работающие в среде Windows NT, используют пароли, которые хранятся не в базе данных SAM. Такие приложения, как Microsoft Outlook, Internet Explorer (IE), Internet Information Server (IIS), SQL Server, - размещают пароли в различных областях системы. Нужно иметь представления обо всех этих областях и принимать меры для предотвращения нежелательного доступа в систему.

Одно из наиболее распространенных приложений в NT - Internet Explorer. Сам IE не требует ввода паролей, однако этого требуют многие узлы, доступ к которым осуществляется с помощью IE. Слабый дизайн Web-узлов обычно приводит к появлению проблем в области безопасности. В особенности это происходит, когда необходимые для входа на сайт имена пользователей и пароли размещаются в специальных модулях настройки клиентов, называемых cookies.

Срок жизни модулей настройки клиентов можно программировать, следовательно, можно указать, что он истекает немедленно.Тогда эти данные будут оставаться в памяти только в тот период, когда они используются в текущей работе с узлом, и никогда не будут записаны на диск. Модули, содержащие имена пользователей и пароли, срок жизни которых не истек, NT сразу же записывает в каталог %systemroot%profilesusernamecookies.

Любой, кому доступен этот каталог, имеет доступ ко всем данным, хранящимся в модулях настройки клиентов, включая такую информацию, как имена пользователей и пароли. Злонамеренный оператор Web-узла, знающий, где нужно искать соответствующую информацию, сможет найти ее в каталоге cookies. И пользователь ничего не будет знать об этом. Эта ситуация не является дырой в системе безопасности IE. Это просто особенность алгоритмов работы HTML Cookies.

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

Клиент Outlook во время обычной работы нигде не хранит в системе паролей в открытом текстовом виде. Однако если вы работаете с сервером по протоколу POP3, то пароли передаются по сети в явном виде. Такие пароли можно легко перехватить с помощью сетевого анализатора пакетов. Протокол POP3 требует передачи открытых паролей, поэтому Microsoft ничего не может сделать для решения этой проблемы. Но несмотря на это, для приема почтовых сообщений можно использовать вместо POP3 протокол APOP (Authenticated Post Office Protocol). Этот протокол работает с зашифрованными паролями.

SQL Server при аутентификации пользователей хранит пароли в системном реестре. Соответствующие ключи реестра очень слабо защищены. Например, когда вы регистрируете SQL-сервер с использованием SQL Executive, имя пользователя и пароль для этого сервера записываются в реестр, в дерево HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServer. И любой сообразительный пользователь, имеющий право непосредственной регистрации с консоли сервера, может легко получить пароли SQL-серверов. Поэтому будьте внимательны при назначении пользователям прав регистрации на серверах с локальной консоли. Желательно также запретить удаленный доступ к реестру на всех системах NT, где это возможно. Но это следует очень аккуратно планировать, так как многим системам управления сетью и многим программам установки необходимо использовать удаленный доступ к реестру.

Недавно было обнаружено, что при установке пакета Microsoft BackOffice Server пароли пользователей остаются записанными на диск в явном виде в областях файловой системы, доступных обычному пользователю. Во время инсталляции создается файл reboot.ini в каталоге program filesmicrosoft backoffice. Если пользователь в процессе установки Backoffice 4.0 выбирает установку продуктов SQL Server, Exchange Server или Microsoft Transaction Server (MTS), то программа установки запрашивает имя и пароль для пользователей, необходимые для работы данных продуктов.

Если подробнее, то программа установки запрашивает имена и пароли пользователей, от имени которых работают SQL Executive, Exchange Services и MTS Remote Administrator, и сохраняет эту информацию в виде открытого текста в файле reboot.ini. После завершения установки программе не удается удалить этот файл. Позаботьтесь о том, чтобы не предоставлять излишних прав доступа системам BackOffice. Если вы имеете достаточно надежную систему безопасности, то вряд ли вы столкнетесь с описанной проблемой. Но, несмотря на это, обязательно удалите вручную этот файл после завершения установки BackOffice 4.0. Более подробная информация по этой проблеме изложена в статье Microsoft BackOffice Installer Tool Does Not Delete Password Cache File (http://support.microsoft.com/support/kb/articles/q217/0/04.asp).


Безопасность прикладных программ

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

Многие программные продукты имеют уязвимые места с точки зрения безопасности. Одним из таких продуктов является СУБД Oracle. Эта СУБД хранит в системе конфиденциальную информацию в виде открытого текста.

Отсюда вытекает мораль: необходимо обеспечивать защиту собственными силами, отслеживая состояние системы до, во время и после установки новых программ, в особенности если эти программы не являются широко известными коммерческими продуктами. Отслеживать состояние системы удобно при помощи утилиты Sysdiff, входящей в состав пакета Microsoft Windows NT Workstation 4.0 Resource Kit. Посредством Sysdiff вы можете создать образ системного реестра перед установкой новых продуктов и затем сравнить его с реально используемым реестром после установки программ. Утилита Sysdiff отображает все различия между двумя образами реестра. В качестве альтернативного варианта можно использовать утилиту Regmon (ее можно найти на Web-сайте Sysinternals: http://www.sysinternals.com). Данная утилита позволяет наблюдать за доступом к реестру в реальном времени.

Что касается файловой системы, вы можете сделать сравнение ее состояния до и после установки. Это поможет выявить, какие файлы были удалены или добавлены во время установки нового продукта. Чтобы сделать такое сравнение, можно использовать утилиту Windiff из набора Resource Kit. Это делается следующим образом.

Прежде чем установить новый программный продукт, откройте окно DOS и перейдите в корневой каталог диска, с которым вы собираетесь работать (например, C:). Чтобы создать текстовый файл, содержащий полную структуру файлов и каталогов, введите команду

dir /S > directory1.txt

Эта команда создает файл directory1.txt, включающий в себя список всех каталогов и файлов, расположенных на текущем диске. Создайте такие файлы для всех дисков, имеющихся у вас в системе, назначая разные имена файлов для каждого диска. После завершения установки нового программного продукта точно так же создайте еще один набор файлов, назначая другие имена файлов. Затем, используя утилиту Windiff, выполните сравнение структур каталогов, содержащихся в соответствующих созданных файлах. В результате Windiff отобразит все каталоги и файлы, которые были удалены, добавлены или модифицированы во время установки. Обязательно прочитайте справочный файл Windiff, который содержит подробные инструкции по работе с данной утилитой.

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

 

Шпионские программы и новейшие методы защиты от них

Обновлено: 16.01.2025
Н.Д. Красноступ, Д.В. Кудин

Н.Д. Красноступ, Д.В. Кудин

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

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

Санкционированные же мониторинговые программные продукты используется администратором безопасности вычислительной системы (службой информационной безопасности предприятия или организации) для обеспечения ее наблюдаемости - "свойства вычислительной системы, позволяющего фиксировать деятельность пользователей и процессов, использование пассивных объектов, а также однозначно устанавливать идентификаторы причастных к определенным событиям пользователей и процессов с целью предотвращения нарушения политики безопасности и/или обеспечения ответственности за определенные действия" [1]. Именно это свойство, в зависимости от качества его реализации, позволяет в той или иной мере контролировать соблюдение сотрудниками предприятия установленных правил безопасной работы на компьютерах и политики безопасности.

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

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

способствует и содействует превращению продукта для мониторинга и наблюдаемости в продукт-шпион. Напротив, наличие в программе следующих требований:

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

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

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

Для чего используются мониторинговые программы?

Их применение позволяет специалисту, ответственному за информационную безопасность предприятия:

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

Для чего используются несанкционированно устанавливаемые мониторинговые программы, т.е. программы-шпионы?

Их применение позволяет злоумышленнику:

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

Продукты-шпионы представляют серьезную опасность защите отдельных и соединенных в сеть компьютерных систем.

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

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



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



Программные кейлоггеры (keyloggers, key loggers, keystroke loggers, key recorders, key trappers, key capture programs и множество других вариантов названия) принадлежат к той группе программных продуктов, которые осуществляют контроль над деятельностью пользователя персонального компьютера. Первоначально программные продукты этого типа предназначались исключительно для записи информации о нажатиях клавиш клавиатуры, в том числе и системных, в специализированный журнал регистрации (Log-файл), который впоследствии изучался человеком, уставившим эту программу. Log-файл может отправляться по сети на сетевой диск, ftp сервер в сети Интернет, по Email и др. В последнее время программные продукты, имеющие данное название, выполняют много дополнительных функций - это перехват информации из окон, перехват кликов мыши, "фотографирование" снимков экрана и активных окон, ведение учета всех полученных и отправленных Email, мониторинг файловой активности, мониторинг системного реестра, мониторинг очереди заданий, отправленных на принтер, перехват звука с микрофона и видео-изображения с веб-камеры, подключенных к компьютеру и др.

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

MYDOOM - worst yet to come
The Age
... So far, the damage is minimal. But the pre-eminent danger is that one
virus strain has a keylogger." Faulkner said it is possible ...
http://www.theage.com.au/articles/2004/01/29/1075088122616.html

CI Host CEO Monitors Computer Virus Epidemic Effects: ...
Yahoo News (press release)
... One in every dozen e-mails carries the virus. So far, the damage is
minimal. But the preeminent danger is that one virus strain has a keylogger." ...
http://biz.yahoo.com/prnews/040128/flw020_1.html

MYDOOM virus delivers gloom
Press of Atlantic City
... Infected computers still will have a backdoor in them, as well
as a key logger that records every keystroke. "A backdoor ...
http://www.pressofatlanticcity.com/news/newjersey/012804MYDOOM_J27.html

SCO offers $250000 reward for arrest of Mydoom worm author
ComputerWorld
... According to Symantec, the worm also installs a "key logger" that can
capture anything that is entered, including passwords and credit card
numbers, and will ...
http://www.computerworld.com/securitytopics/security/virus/story/0,10801,89470,00.html

NEW, fast-spreading worm spells Doom
InfoWorld
... The worm will install a "key logger" that can capture anything that
is entered, including passwords and credit card numbers, Ruckman said...
http://www.infoworld.com/article/04/01/27/HNdoomworm_1.html

NO move to stop email bounce messages yet, says Telecom
Computerworld New Zealand
... Symantec also claims the worm will install a "key logger" that can
capture anything that is entered, including passwords and credit card
numbers ...
http://www.computerworld.co.nz/news.nsf/UNID/23A51A1010B535FCCC256E280012F960?OpenDocument

WEB virus beats defence
Melbourne Herald Sun
... Anti-virus company Symantec warned the virus could install a "key logger"
program on to computers, allowing hackers access to every keystroke, including ...
http://www.heraldsun.news.com.au/common/story_page/0,5478,8513866%255E421,00.html

GLOBAL Hauri Offers Quick Fix to the Latest Cyber Threat
Market Wire (press release)
... spread by email. With the infections MyDoom also installs a key logger
and backdoor server on the infected computer. A new feature ...
http://www.marketwire.com/mw/release_html_b1?release_id=62255

INVESTOR Scammed By Keylogger Spyware
Emediawire (press release)
... In reality what was in their download was a keylogger that
captured & recorded the usernames and passwords to online accounts ...
http://www.emediawire.com/releases/2004/1/emw100583.htm

И это - не единственный пример. Многие серьезные и наиболее опасные предшественники Mydoom также содержали кейлоггеры. При этом нередко для распространения червей использовалась широко известная уязвимость IFrame браузера Microsoft Internet Explorer, которая позволяла запустить произвольный код на компьютере пользователя при простом просмотре HTML документа в браузере или почтовом клиенте Outlook. И хотя она была "залатана" еще в 2001 году (http://www.microsoft.com/technet/security/bulletin/MS01-020.asp), широкомасштабные вирусные эпидемии в недавнем прошлом еще раз показали, что многие пользователи до сих пор работают на устаревших системах без обновлений и патчей, несмотря на регулярные предупреждения антивирусных компаний. Кроме того, компания Microsoft регулярно выпускает патчи, закрывающие новые уязвимости, позволяющие злоумышленнику выполнять произвольный код на компьютере пользователя.

Примерами известных программных кейлоггеров являются Activity Logger, Boss Everyware, Ghost Keylogger, HookDump, IamBigBrother, Invisible KeyLogger Stealth, iOpus STARR, iSpyNOW, KeyCopy, KeyKeeper, KeyKey, KeyLog, KeySpy, Keystroke Reporter, PC Spy, Perfect Keylogger, ProBot, Realtime Spy, Spector Pro, SpyAgent, SpyBuddy, WinWhatWhere Investigator. В мире на сегодняшний день существуют сотни подобных продуктов, отличающихся друг от друга функциональностью, удобством работы, информативностью отчетов, возможностями по невидимости и защите от обнаружения/удаления.

Образцы внешнего вида анализаторов Log-файла программ Perfect Keylogger и Boss Everyware приведены ниже:





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



Аппаратные кейлоггеры (keystroke recording device, hardware keylogger и пр.) представляют собой миниатюрные приспособления, которые могут быть прикреплены между клавиатурой и компьютером или встроены в саму клавиатуру. Они регистрируют все нажатия клавиш, сделанные на клавиатуре. Процесс регистрации абсолютно невидим для конечного пользователя. Аппаратные кейлоггеры не требуют установки какой-либо программы на компьютере интересующего объекта, чтобы успешно перехватывать все нажатия клавиш. Такое устройство может быть тайно прикреплен к ПК объекта кем угодно - коллегой, уборщицей, посетителем и т.д.. Когда аппаратный кейлоггер прикрепляется, абсолютно не имеет значения, в каком состоянии находится компьютер - включенном или выключенном.

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

Особо известны на рынке следующие аппаратные кейлоггеры - KeyKatcher, KeyGhost, MicroGuard, Hardware KeyLogger, производителями которых являются компании Allen Concepts Inc., Amecisco, KeyGhost Ltd., MicroSpy Ltd.

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

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

Современные аппаратные кейлоггеры представляют собой встроенные приспособления, которые выглядят, как оборудование для ПК.

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

Современный внутренний аппаратный кейлоггер представляет собой встроенное приспособление, которое выглядит, как клавиатура ПК.

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

Внешние виды анализаторов аппаратных кейлоггеров приведены ниже:





 

Методы противодействия программам-шпионам



Для обнаружения и удаления мониторинговых программных продуктов, которые могут быть установлены без ведома пользователя ПК, в настоящее время используются программы различных типов, обеспечивающие более или менее эффективную защиту исключительно только против ИЗВЕСТНЫХ программ-шпионов с помощью сигнатурного анализа. Для эффективной работы программ данного типа необходимо получить образец программы-шпиона, выделить из нее сигнатуру и включить данную сигнатуру в свою базу. При обновлении сигнатурной базы пользователи персонального компьютера получают возможность бороться с данным вариантом программы-шпиона. По данному принципу работают многие известные фирмы производители антивирусного программного обеспечения.

Но есть и другая группа программ-шпионов, которая наиболее опасна для любых автоматизированных систем - это НЕИЗВЕСТНЫЕ программы-шпионы. Они подразделяются на программы пяти типов:

  1. Программы-шпионы, разрабатываемые под эгидой правительственных организаций (как пример - продукт Magic Lantern, проект под названием Cyber Knight, США).
  2. Программы-шпионы, которые могут создаваться разработчиками различных операционных систем и включаться ими в состав ядра операционной системы.
  3. Программы-шпионы, которые разработаны в ограниченном количестве (часто только в одной или нескольких копиях) для решения конкретной задачи, связанной с похищением критической информации с компьютера пользователя (например, программы, применяемые хакерами-профессионалами). Данные программы могут представлять собой немного видоизмененные открытые исходные коды программ-шпионов, взятые из сети Интернет и скомпилированные самим хакером, что позволяет изменить сигнатуру программы-шпиона.
  4. Коммерческие, особенно, корпоративные программные продукты, которые очень редко вносятся в сигнатурные базы, а если и вносятся, то только по политическим мотивам (как пример - программные продукты таких известных фирм, как WinWhatWhere Corporation, SpectorSoft Corporation, ExploreAnywhere Software LLC, Omniquad Ltd. и др.).
  5. Программы-шпионы, представляющие собой keylogging модули включаемые в состав программ-вирусов. До внесения сигнатурных данных в вирусную базу данные модули являются неизвестными. Пример - всемирно известные вирусы, натворившие много бед в последние годы, имеющие в своем составе модуль перехвата нажатий клавиатуры и отправки полученной информации в сеть Интернет, например -

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

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

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

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

Что же может противопоставить пользователь персонального компьютера программам-шпионам?

Решение данной проблемы возможно только в использовании комплекса программных продуктов:

  • Программный продукт N1 - это продукт, который использует эвристические механизмы защиты против программ-шпионов, созданные специалистами, имеющими больший опыт борьбы с программами-шпионами. Он оказывает защиту непрерывно и не использует никакие сигнатурные базы.
  • Программный продукт N2 - это Антивирусный программный продукт, использующий постоянно обновляемые сигнатурные базы.
  • Программный продукт N3 - это персональный Firewall, контролирующий выход в сеть Интернет с персонального компьютера на основании политик, которые устанавливает сам пользователь.

Такая последовательность выбрана неспроста.

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

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

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

Антивирусных программных продуктов, использующих постоянно обновляемые сигнатурные базы, в мире создано великое множество (AVP, Dr.Web, Panda Antivirus, Norton Antivirus и многие другие). Персональных межсетевых экранов создано еще больше (Norton Internet Security, BlackICE Defender, GuardianPro Firewall, Tiny Personal Firewall и многие другие). А защитные программные продукты первого типа представлены на сегодняшний день всего лишь одним продуктом, не имеющим аналогов в мире. Этот продукт называется PrivacyKeyboard™.

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

PrivacyKeyboard™ имеет в своем составе модули, обеспечивающие

  • защиту от перехвата нажатий клавиш клавиатуры;
  • защиту от перехвата текста из окон;
  • защиту от снятия изображения рабочего стола;
  • защиту от снятия изображения активных окон.

Для собственной защиты от внешнего разрушительного воздействия программ-шпионов программный продукт PrivacyKeyboard™ имеет систему контроля целостности и другие защитные функции.



Методы противодействия аппаратным кейлоггерам



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

Сегодня существует только два метода противодействия аппаратным кейлоггерам при работе на стандартном персональном компьютере:

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

Остановимся детальнее на втором пункте.

Программный продукт PrivacyKeyboard™ имеет в своем составе модуль защиты от аппаратных кейлоггеров, выполненный в виде виртуальной экранной клавиатуры, которая вызывается пользователем в случае необходимости.

Раскладка виртуальной клавиатуры переключается автоматически при переключении раскладки основной клавиатуры персонального компьютера и поддерживает все языки и раскладки, которые установлены в операционной системе Microsoft Windows NT/2000/XP.

Структурная схема и краткое описание механизма функционирования программы PrivacyKeyboard™ представлены ниже.

  1. Модуль блокирования программных кейлоггеров является активным по умолчанию, обеспечивая постоянную и прозрачную защиту "на лету" от различных типов программных кейлоггеров. Его можно легко выключить/включить одиночным левым щелчком мыши на иконке PrivacyKeyboard™ в системном трее. Когда Модуль блокирования программных кейлоггеров включен, PrivacyKeyboard™ подавляет любые кейлоггеры, которые могут быть включены в состав коммерческих, бесплатных и условно бесплатных продуктов, а также "троянских коней" и вирусов, использующих самые разные принципы функционирования и основанных на модулях пользовательского уровня либо уровня ядра системы - dll, exe, sys и др., которые создают лог-файлы на жестком диске, в памяти, реестре, на сетевых дисках, либо пересылают лог-файлы на заранее указанные адреса по протоколам SMTP, FTP, HTTP и др.
  2. Модуль блокирования аппаратных кейлоггеров можно активировать путем нажатия правой клавиши мыши на иконке PrivacyKeyboard™ в системном трее и выбора опции Показать модуль блокирования аппаратных кейлоггеров. При этом на экране появится виртуальная клавиатура. Она поддерживает различные раскладки клавиатуры и языки, установленные в системе. При работе с виртуальной клавиатурой в целях безопасности стандартная клавиатура блокируется. При включении Модуля блокирования аппаратных кейлоггеров автоматически включается Модуль блокирования программных кейлоггеров, даже если он перед этим был выключен. Настоятельно рекомендуется использовать совместное функционирование этих двух модулей для ввода наиболее критичной информации - логинов, паролей, кодов доступа и т.п.

Разработчиком программы PrivacyKeyboard™ является ООО "Центр информационной безопасности" (г. Запорожье, Украина). Доступна бесплатная версия для ознакомления, скачать которую можно по адресу: http://www.bezpeka.biz/download.html.



Ссылки



 

  1. НД ТЗИ 1.1-003-99. Терминология в области защиты информации в компьютерных системах от несанкционированного доступа. // Департамент специальных телекоммуникационных систем и защиты информации Службы безопасности Украины. - Киев, 1999.
  2. "2001 AMA Survey: Workplace Monitoring & Surveillance: Summary of Key Findings"
    American Management Association
    http://www.amanet.org/research/pdfs/ems_short2001.pdf
  3. "Computer And Internet Surveillance in the Workplace: Rough Notes".
    Andrew Schulman, Chief Researcher, Privacy Foundation, US, 2001-2002
    http://www.sonic.net/~undoc/survtech.htm
  4. "The Extent of Systematic Monitoring of Employee E-mail and Internet Use"
    Andrew Schulman, Chief Researcher, Privacy Foundation, US, 2001-2002
    http://www.sonic.net/~undoc/extent.htm

Источник: http://bezpeka.com/ru/lib/sec/gen/art382.html

Социальная инженерия. Профессиональное программирование. Последовательный взлом

Обновлено: 16.01.2025
wider@frost.net.ru

Автор:
E-mail:wider
WWW:brotherhood



 

Вступление

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

Социальная инженерия

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

Добыча информации. Социальная инженерия. Последовательный взлом.

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

  Стоял я как-то перед зданием одной компании. Очень хорошее пятиэтажное здание, отданное полностью под эту компанию, постояв возле входа, я обнаружил, что все кто туда входит, отчитываются вахтеру, куда они и зачем. Понятно, что просто так туда не войти. Обойдя, его я обнаружил две дыры (дыры не такие, какие бывают у OS, а такие, которые бывают в ситуации такой, какая сейчас, я просто провел аналогию). Дыры заключались в следующем: 1) с задней стороны здания нет дверей, поэтому там люди не ходят, но есть лестница на крышу, такая простая лестница, железная, не удобная, немного высоко над землей. И хотя висела видеокамера, которая якобы все снимала, я видел, что она не работает, не горели никакие лампочки и не шли провода. 2) Прямо в притык с этим зданием строили новое здание, выше на четыре этажа, то есть девятиэтажное здание, пустое. И пара окон как раз выходила на крышу этого здания, и хотя на окнах была решетка, я заметил, что другая пара окон, которые на этаж выше без решетки и что высота между ними не большая. На следующую ночь, я вместе с другом забрались через стройку, протащив с собой лестницу и спустив ее со стройки 6-этажа на 5 этаж здания-жертвы. На крыше было: спутниковая антенна, 10 телефонных кабелей, и вроде бы ethernet. Нам тогда кроме телефонных кабелей нечего не надо было, поэтому мы занялись ими. Друг у меня работал в тел. компании, и был хорошим телефонным специалистом, он взял с собой два прибора: первый позволял прослушать, что в линии без подключения, второй - вклинивание в линию, не обрывая ее. В эту ночь все разведали и ушли. На следующую ночь мы разведали первый путь проникновения на крышу: лестницу, как я и предполагал, никто нечего не обнаружил. И на этот раз мы взяли с собой все необходимые приспособления. Вот что мы сделали за эту ночь: поставили 5 диктофонов на линии, чтобы они включались, когда в линии идет сигнал, на остальных линиях мы обнаружили только модемы и, подключившись к этим линиям, мы сделали, так чтобы при звонке на этот телефон запрос передавался на другой телефон (стандартная АТС`ная фича). На всех других телефонах у нас стояли модемы, которые принимали звонки и записывали пароли. Через сутки мы узнали 13 паролей, среди них 2 админовских и куча информации на диктофонах. Обнаружили, что среди тех телефонов присутствует телефон Отдела Кадров, Приемной директора, Серверной (!), Справочной, остальные оказались простыми телефонами сотрудников. За неделю записи данных с первых четырех телефонов нам дали столько информации об этой компании, что хватило бы для того, чтобы разорить их и ограбить легальным путем. А если еще учесть то, что мы обнаружили потом на их серваках через админовские пароли, то этого нам хватило на два месяца просмотра информации.

  Напоследок хочу сказать, что хотя на первый взгляд этот пример никак не связан с социальной инженерией стандартного характера (не участвует человек-жертва, нет сути развода жертвы на что-либо), я вам скажу, что здесь использовались методы человеческого сознания. То есть не надо думать, что раз висят камеры, то нас увидят или, что раз крупная компания, то им на крышу не залезешь. Надо думать технически тоже, а не социально. Поэтому в этом примере мы действовали по принципы обратного от human denial of service, то есть когда людей выводят из строя воздействием на них социальных мерок, таких как значимость компании и стереотипы охраны здания.

  И еще один пример, без комментариев, просто читайте и вникайте :)

  "Извините, а вы куда?" - охранник выглядел злым, что проходят мимо него.
  " В серверную. Вы что не видите, что я тороплюсь??" - я сделал недоуменное лицо, показывая, что я не собираюсь тратить свое время на какую-то личинку типа охранника.
  "Да, конечно, но у вас есть пропуск? Вы кто?" - он нервничал, что не узнает меня, еще бы, откуда ему меня знать.
  "Как кто? Вы что, не знаете своего начальства? Я - Свиридов. Как ваша фамилия?" - я сделал укоризненный взгляд, показывая, что я раздражен.
  "Моя? Ээ: Привалов, старший охранник Привалов!" - мямля ответил грозный человек, запинаясь и не зная куда смотреть.
  "Привалов? Ну, вы у меня смотрите, сегодня же зайду к вашему начальнику" - сказал я и быстро двинулся дальше.
Охранник поглядел мне в след и подумал "Фу... опять кого-то к нам занесло, ездят тут всякие начальники из Москвы, а нас не предупреждают".
  Я быстрым шагом прошел по коридору, оглядывая, как тут все смотрится, до этого я видел эту структуру только по топологии сети, украденной с сервера. "Хмм... должно быть это серверная" - подумал я, вспоминая план, и нажал на ручку двери. Она отворилась, и я увидел лысого человека с бородой нервно курившего и смотревшего на монитор. "Наверняка системный администратор" - мелькнула мысль, и я подошел.
  "Извините, а вы не могли бы посмотреть, что там у вас на сервере с моим именем" - сказал я извиняющим голосом, таким как говорят все пользователи перед грозными администраторами.
  "Хмм... а вы кто такой, я вас не узнаю" - спросил бородатый, как все админы подозрительный.
  "А я только вчера устроился, мне сказали, что у меня должна быть учетная запись на сервере, я попробовал войти, но у меня не получилось, вот я к вам и зашел" - пробубнил я, смотря на него невинными глазами.
  "Хмм: ну сейчас посмотрю. Как фамилия?"
  "Привалов. Привалов Александр Викторович" - сказал я обрадовавшимся голосом пользователя.
  "Ну да, вас не было в базе данных, я добавил. Пароль у вас такой же, как учетная запись, поменяйте при входе в сеть" - сказал админ уже увлекаемый снова в монитор.
  "Хорошо" - сказал я и исчез в двери.
  Вышел я из здания довольный, подошел к таксофону и набрал номер телефона серверной.
  "Алло" - сказал все тот же голос бородатого.
  "Хмм, Андрей Владимирович, почему у нашего начальства из Москвы нет доступа к информации для совета директоров?" - сказал я жестко поставленным баритоном.
  "Ну, как так, я не знал, что он из совета директоров, сейчас поставлю права доступа. Я не знал, предупреждать надо" - пробубнил он немного раздраженно.
  "Ну, хорошо, позаботитесь" - сказал я более грубо и положил трубку.
  Мой путь от таксофона до дома был налегке. Я пришел, сел за компьютер, набрал номер телефона внутри корпоративной сети компании X, вошел в сеть под Приваловым и стал с интересом читать документы совета директоров.

Нахождение и обработка информации.

  Рассмотрев раздел о том, как добывать информацию, рассмотрим, как находить информацию.
  Я видел много документацией в сети, как собрать информацию о человеке, которого вы собирайтесь атаковать. Наивные. На самом деле собирать ее не надо, так как она лежит перед вами. Зайдите не страничку вашей жертвы. Вот. Вот перед вами вся информация, которая вам нужна. Он сам вам ее дал. Город, где живет (часто). Может быть телефон, как связаться. Адрес, где их можно дойти (это если это фирма). E-mail (всегда). Имена и фамилии руководителей (на корпоративных сайтах). Это все, что вам нужно. Имя + фамилия + должность + e-mail = все, что нужно социальному инженеру.

  Была очень интересная компания, которая мне очень не нравилась. Я зашел на их сайт и прочитал, все, что там было написано. Я узнал: е-маил, имя и фамилию их веб-админа. Этого оказалось достаточно. Я по е-майлу представился как начинающий, но прогрессивный веб-дизайнервеб-программист и указал на некоторые ошибки в их сайте (немного неправильные скрипты, кое какие дизайнерские ошибки). И указал им url сайта, где была информация о том, как не допускать таких ошибок и парочка программ, которые помогали исправить эти ошибки. Конечно же, сайт был сделан мною, причем очень натурально, не хуже какого-нить www.download.ru или www.design.ru, при чем программы, которые там лежали ДЕЙСТВИТЕЛЬНО работали, исправлял ошибки, выдавали tips и все такое. Просто они выполняли еще кое-чего, ну просто то, что мне было необходимо. И, конечно же, мой сайт лежал не на www.chat.ru или tripod.com, а на хорошем домене www.[имя сайта].com, ведь нечего не стоит купить его на пару месяцев. Главное, чтобы все выглядело натурально и чтобы все, что там лежали было правдой, и работало.
  Да кстати, забыл упомянуть, что программы, которые он скачал, были написаны мною, и исправили ошибки на его сайте, так что он обрадовался, что ему действительно дали реальную ссылку. Что потом произошло уже не важно, главное, что я добился своего - я получил доступ к его web-сайту.

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

Некоторые способы развода людей.

  Итак, как же все-таки получить что-либо путем развода?
  Можно раскрутить админаоператораопера на что-либо путем:
1) обещания дать взамен что-то (не обязательно потом исполнять)
2) просто за хороший разговор (когда говорят "он мне просто понравился")
3) путем наезда.
  Про первый пункт я думаю все понятно и так. Поэтому обсуждать его мы не будем.
  Второй пункт: тут главное определить врата сортировки собеседника. Для тех, кто не знает, что такое врата сортировки поясняю. У каждого человека есть свои врата сортировки. Они могут быть такие: место, время, люди, вещи, ценности. Сейчас объясню на примере: у Васи врата сортировки являются люди и время. В таком случае в разговоре легко прослеживается то, что человек часто тебя спрашивает "кто это был?" (врата сортировки: люди) или "а когда?" (врата сортировки: время). Понимаете? Вот такие дела. Так вот, когда определяешься врата сортировки человека, легко найти с ним общий язык, нужно просто говорить по его вратам сортировки. Тогда он с удовольствием будет с тобой говорить и соответственно легко, что-то из человека выклянчить.
  Третий путь: жестко на человека наехать. Я как-то присутствовал при ситуации, когда просто человек заходил на канал на irc и начинал наежать на какого-либо оператора. Сначала соответственно оператор тоже в ответ наежал, но тут главное не расслабиться, а быть серьезней. Я видел такую ситуацию, когда оператор уже начинал бояться человека, и пытался с ним подружиться, подмазывался и уже даже давал ему оператора.
  Также для развода может быть применен метод, описанный в следующем пункте.

Human denial of service (HDoS)

  Последнее время в сети стали появляться сообщения о HDoS, что буквально можно перевести, как Человеческий Отказ В Обслуживании или если говорить простым языком - прекращение реагирования человека на какие-либо действия. То есть, можно запутать человека так, чтобы все, что вы скажете после этого, он воспринял как правду, или наоборот, как резкую ложь.

  Он сидел и читал логи сервера под управлением FreeBSD 2.2.8 и не понимал, почему сегодня ночью с 5 хостов одновременно пытались соединиться к порту 7 по протоколу udp. Он знал, что это порт для echo - отображение введенных символов, никаких дыр в этом сервисе он не знал, да и атака не была похоже на DoS - соединение устанавливалось, пересылалась какая-то строка и разрывалось, не занимая никакие сетевые и процессорные ресурсы. Это было похоже на попытку buffer overflow через ECHO. Но он не знал, что в ECHO есть такая дыра и стал упорно изучать исходные тексты свой OS в надежде найти, где там дыра, и сам, тестируя свою систему посылая различные строки, и отлавливая, что ему будут посылать еще в этот порт.
  В это же самое время, я сидел и пытался все более его запутать. Я стал посылать строки в finger, в sendmail, в popper, при этом, делал так, чтобы строки были немного разные, для каждой конкретной передачи и очень отличающие для разных служб. Это очень походило на поиск сразу во всех службах строки приводящей к buffer overflow. И все это отображалось в логах у админа, засоряя их по всякому. Я спокойно запустил эти программы посылки строк на 5 машинах, а сам в это время со своей машины ломал его сервер, а так как логи в это время чрезвычайно были пестры о попытках buffer overflow, то мои слабые попытки никак не выдавались в них. Когда у меня была успешная попытка, и я зашел, у него в логах отобразилось, что с внешнего хоста зашли под root`ом, но он этого не видел, он был чрезвычайно занят просмотром исходников.

  Мы хорошо видим пример HDoS. Мы вывели из строя админа, переключив его внимание на ненужную работу. Он просматривал исходники, которые были без ошибок, а он был уверен, что они есть, ведь иначе, зачем кому-то пытаться таким образом атаковать систему.
  Это натуральный пример HDoS.
  Таким образом, можно сделать достаточно много. При желании, можно реализовать такую ситуацию, что акции великих компаний начнут падать. Представьте такую ситуацию: заходите вы на www.intel.com, а там написано в новостях, что вчера сгорело одновременно 5 заводов, где выпускались процессоры (на самом деле, это хакер поменял новости). Это приведет к тому, что цены на процессоры резко вырастут, а акции Интела упадут. Делайте выводы сами. Стоит ли писать на взломанных веб-серверах "hacked by megaspoofa. btw, admins is lamers" или может быть взять ситуацию под контроль?

Углубленные методы и аспекты добычи информации.

  Перед осуществлением добычи информации, определите, какая информация вам необходима. Иначе вы можете затратить множество времени, для добычи не нужной вам информации. После того, как вы точно обдумайте, что вам необходимо от, допустим, системного администратора компании X, то подумайте, кто еще знает эту информацию, кто знает о существовании этой информации, кто имеет доступ к этой информации, кто имеет право на изменение этой информации. Часть ответов из этих вопросов вы решите в процессе добычи информации, но чем больше вы будете знать ответов, тем легче будет добыть информацию.
  Для начала необходимо узнать координаты и личные данные (как можно больше) о тех людях, кто имеет отношение к этой информации. Если вы знаете хотя бы домашний телефон одного сотрудника, то можно по справочнику узнать фамилию, иногда имя и отчество. Если вы это узнали, то вы можете попробовать узнать через этого человека всю остальную информацию. Вы можете позвонить ему, представить работником компании X, желательно в должности выше его и попросить координаты остальных людей, с которыми вам придется общаться. Так же желательно, чтобы в данном мероприятии участвовало несколько человек с различными голосами, также желательна представительница женского пола с красивым голосом. После того, как вы по цепочке узнаете личные данные на каждого человека, попытайтесь узнать о них рабочие данные. Это легко сделать, достаточно встретить любого, кто работает в этой компании, и поинтересоваться, а как выглядит Вася Пупкин. И кем он работает, а также его кабинет с телефоном, так как, видите ли, вам сказали его найти, а вы не знаете кто это. Любой не подумав нечего плохого, расскажет вам, если он знает. Таким образом, вы накопите много информации. Обязательно узнайте, кто стоит по должности под и над этими людьми, чтобы можно было так манипулировать.
  Теперь вы можете звонить к нижестоящему человеку этого человека и говорить, что вы якобы по поручению этого человека должны сделать что-либо важное, но не можете, так как присутствуют какие-либо проблемы. И поэтому просите, чтобы он сделал то-то (здесь надо его попросить сделать то, к чему вы собственно и стремились, например, дать вам привилегированные права).
  Можно уговорить, чтобы тот человек, которому вы звонили, связался с системным администратором и сделал для вас акаунт с соответствующими привилегиями. Желательно, чтобы тот, кто будет говорить с сис. админом был выше его по должности. Таким образом, сис. админа будет просить уже человек, которого он знает. И нечего не заподозрит. А вы тем временем можете наслаждаться доступом в сеть с крутыми привилегиями.

Профессиональный подход к программированию backdoor.

  Для добычи информации вам часто может понадобиться backdoor, который будет запущен там, где вам надо. Но сразу вам скажу - забудьте обо всех тех "троянцах", которые вы до этого видели. Напишите свой backdoor или попросите, профессиональна, написать вам такой, какой вам нужен.
  Всякие интересные и "полезные" вещи, как открывание cd-rom, выключение монитора, чат с жертвой - отложите это до будущих времен. Backdoor нужен для того, что определяет его название - back door - задняя дверь, незаметный проход, запасной вход. Нужно писать для того, чтобы получить доступ, манипулировать информацией, красть ее. А так как все развлечение занимают лишний код, и увеличивают сложность backdoor`а. Backdoor должен писаться только для того, что нужно вам и ничего иного. И не забывайте очень важного плюса этой ситуации: никакой антивирус не скажет про вашу замечательную программу, что она backdoor. :)
  Если вы будете следовать этому, то вы сможете узнать гораздо больше информации, чем рассчитывали.

  Мне понадобилось как-то узнать пароль root`а на одном unix`е. По стандарту мне надо ломать саму машину, где стоит unix. Но если она очень хорошо защищена, то это не так легко сделать, если вообще возможно. Но если вспомнить про человеческую незащищенность и социальную инженерию, то все unix-машины становятся доступны. Я сделал следующее: написал backdoor под windows, который делал буквально следующее: он записывал все набранное на клавиатуре и давал доступ к диску. ВСЕ. Ничего лишнего. Получился этакий ftp-сервер с логой, того, что написано на компьютере. В этого я скачал все файлы с рабочей станции этого человека и взял логу, того, что он писал. Этого оказалось достаточно, потому что там были пароли и от акаунта на unix-машине, и от root`а. Его пароль был прописан в почтовом клиенте. А пароль root`а лежал в логе (когда он удаленно заходил на его сервер, он вводил этот пароль). В итоге была взломана машина unix. Хотя никакие методы проникновения замечены не были.
  Вывод: нужно думать более глобально, не нужно ограничивать свое внимание только на объекте (aka жертве), а нужно думать обо всех машинах в сети.

  Так вот, поэтому практически во многих ситуациях нам достаточно прочитать веб-сайт жертвы и написать back door.
  Определите к чему и для чего вы хотите получить доступ. Если вам всего лишь надо скопировать всю информацию и то, что вводил пользователь с клавиатуры - ограничитесь упрощенным фтп-сервером и кей-логгером. Вам этого хватить.
  Если вы хотите постоянно наблюдать за жертвой, то встройте еще функцию screenshot`а, чтобы смотреть на экран жертве, встройте поддержку socks-соединения, чтобы работать не напрямую, а через socks-сервер. Встройте шифрование передаваемых данных и проверку паролем доступа к backdoor`у жертвы. Можете добавить, если это необходимо удаленное управление реестром.
  Но никогда не стоит делать того, что вам не надо. Не надо, допустим, вставлять в программу функцию просмотра запущенных процессов и их завершение. В большинстве случаев можно обойтись минимумом.
  Еще разумный шаг: использование plug-in`ов. На начальном этапе жертве посылается только база, даже без file manager`а. Но такой, который бы сам скачал бы plug-in с этим и установил.

Stealth-backdoors.

  Теперь рассмотрим такую немаловажную вещь, как стелс-технологию.
  Несколько примеров backdoor`ов.

  1. Небольшая программа (15-35 кб) при запуске соединяется с прописанным в ней фтп-сервером, скачивает с него некую модифицированную программу (например, internat.exe - переключение кодировки) с встроенным троянцем. (я делал так: клал на фтп-сервер несколько версий этого internat`а: w95en.exe, w95ben.exe, w95ru.exe, w95bru.exe, w98en.exe, w98ru.exe, w98seen.exe, w98seru.exe - win95 англ., win95osr2 англ, win95 русский и так далее до win98 second edition; и качал соответствующий). После скачивания он заменяет ей родную программу и удаляется. При перезагрузке он запускается как internat.exe, его даже видно в task list. Ни у кого нет подозрений. При этом порты он никакие не открывает, но раз в 30 минут принимает почту с определенного акаунта, который в нем прописан. Если почта есть, он проверяет ее принадлежность к вам, если принадлежность обнаруживается, то он исполняет команды, которые вы там укажите. Например, запустить фтп-сервер или скачать программу из сети и ее запустить. Или удалиться. Или закачать лог-файл на фтп-сервер. ВСЕ что угодно. ВСЕ, что вы сами встроите в свой backdoor.
  2. Небольшая программа (30-60 кб) при запуске соединяется с прописанным в ней фтп-сервером, скачивает с него некую модифицированную программу (например, internat.exe - переключение кодировки) с встроенным троянцем. При перезагрузке соединяется со специальным сервером, который вы запускайте на какой-нить unix-машине, и ждет команд от него, а вы уже на тот сервер посылайте свои команды, при этом на машине жертвы никак не узнают именно ваш ip-адрес. Поэтому вычислить вам будет крайне тяжело, только через промежуточный сервер. А если промежуточный сервер запускать на каком-нибудь сервере, который не играет для вас никакой роли (например, взломанный shell-box), то вы в любой момент сможете удалить всю информацию на нем.
  3. Небольшая программа (60 кб) при запуске соединяется с прописанным в ней фтп-сервером, скачивает с него полный комплект модифицированных программ, которые заменяют все стандартные утилиты (wordpad, internat, notepad, calc, image, write, explorer, iexplorer, scandisk, solitair). При этом даже если кто-либо обнаружить, что-то в вашей одной программе и заменить ее, то будут работать другие. Желательно, чтобы в каждой из них был разный принцип работы (один через unix-box, другие через е-маил, третьи напрямую и т.д.). При этом, когда начинает работать другой, они вам слали е-маил с извещением, каким образом ведет себя пользователь и какие программы он запускает. При этом можно пойти дальше и заразить dll системы. В которых при вызове любой функции, выполнялись и ваши функции тоже.


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

Последовательный взлом.

  Что делает человек, когда он хочет взломать много серверов? Он запускает сканнер, который ищет дыры и проверяет все сервера. Что он делает, когда хочет поломать один сервер? Он запускает тот же сканнер и проверяет только этот сервер.
  Вы наверно слышали выражение, что взломать можно что угодно. Так вот, оно верное, если следовать из того, что человек является самой опасной дырой в системе. А сервер может быть вообще без дыр.
  Если некий человек имеет доступ к тому серверу, который нам требуется взломать, то он обязательно как-то получает к нему доступ. И в 99% случаев это комбинация имени пользователя и пароля. И когда ему надо удаленно получить доступ к этому серверу, то он вводит этот пароль на свой машине. По логике вещей можно догадаться, что эта машина является на основе Windows 9x/NT. Тут-то как раз и вспоминаем, что все Windows 9x не обладают безопасностью. Или даже если на машине жертвы стоит unix, то скорей всего он не так защищен как сервер. В любом случаи, легче взломать его машине, чем ломать сервер. Ведь наверняка, даже если на сервере регулярно смотрят лог-файлы попыток взлома, то кто этим будет заниматься на локально машине с Windows.

  Есть некая компания, где установлено 200 компьютеров, 2 сервера на основе Unix, и два сервера WinNT. По виду работы этой компании все пользовательские компьютеры подключены через локальную сеть в Internet. У всех пользователей организован вход в домен NT при включении компьютера. Прослеживаем такую ситуацию: злоумышленник разговаривает по icq с один из пользователей и "дарит" ему некую хорошую программу, которую пользователь запускает. Злоумышленник получает доступ к этой машине. Легкими средствами получает все пароли. От почтового ящика на одном из Unix это компании, пароль входа в сеть на NT. И к тому же мы получили доступ в локальную сеть. Мы уже из этого локального компьютера можем попытаться получить доступ к NT. Путем перехвата smb-сообщений, куда может входить пароль администратора. Путем brute-force атаки, которая будет происходить быстро из-за того, что это LAN, а не WAN. И т.д. После того, как он получить доступ к NT. Наверняка там он найдет один из паролей на unix, из тех, кто имеет доступ туда логиниться. Или же, если там он не найдет, у него будет больше шансов их получить, так как он получить доступ ко всем локальным паролям, которые можно попытаться взломать. И админы в любом случаи больше доверяют серверу NT, чем рабочим станция и могут логиниться с NT в Unix. Тут-то и можно перехватить их пароль.

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

Заключение.

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

Оценка эффективности систем защиты информации

Обновлено: 16.01.2025
Ведущей компанией по обеспечению эффективной информационной безопасности является компания Security Vision. Компания внедрила такие ИБ решения как IRP, SOC, SGRC, КИИ и другие в десятках крупных государственных и частных компаний. ИТ-продукты компании Security Vision включены в единый реестр программ, получили все сертификаты и лицензии. Сайт компании - www.securityvision.ru

В.В. Домарев, к.т.н.

Содержание:

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

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

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

Постановка задачи

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

Как же организовать такое взаимодействие? В футболе команды проводят регулярные тренировки, определяя роль, место и задачи каждого игрока. Качество или эффективность команд оценивается по игре в матчах, результаты которых заносятся в турнирную таблицу. Таким образом, после проведения всех встреч команд (каждой с каждой), можно сделать вывод об уровне состояния мастерства как команды в целом, так и отдельных ее игроков. Побеждает тот, у кого наиболее четко организовано взаимодействие:
Выражаясь терминами современного бизнеса, для решения вопросов взаимодействия нужно перейти от "чисто" технического на "конкретно" логический уровень представления процессов создания и функционирования СИСТЕМ защиты информации. Хотелось бы, чтобы все специалисты, считающие себя профессионалами в информационных технологиях, поднялись чуть выше "багов" и "кряков" и уже сейчас задумались над тем как их знания и опыт будут логически увязаны со знаниями и опытом других специалистов.
В "строгой научной постановке" задача автора состоит в предоставлении пользователям вспомогательного инструмента "елки" - (модели СЗИ), а задача читателя (пользователя) - украсить эту "елку" новогодними игрушками - (своими знаниями и решениями). Даже если "игрушек" пока еще нет, наличие "елки" поможет выбрать и приобрести нужные "украшения".

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

Модель представления системы информационной безопасности

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

Рис.1. Модель СЗИ

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

Требования к модели
Такая модель должна удовлетворять следующим требованиям (Рис. 2.):
Использоваться в качестве:
· Руководства по созданию СЗИ
· Методики формирования показателей и требований к СЗИ
· Инструмента (методика) оценки СЗИ
· Модели СЗИ для проведения исследований (матрица состояния)
Обладать свойствами:
· Универсальность
· Комплексность
· Простота использования
· Наглядность
· Практическая направленность
· Быть самообучаемой (возможность наращивания знаний)·
· Функционировать в условиях высокой неопределенности исходной информации
Позволять:
· Установить взаимосвязь между показателями (требованиями)
· Задавать различные уровни защиты
· Получать количественные оценки
· Контролировать состояние СЗИ
· Применять различные методики оценок
· Оперативно реагировать на изменения условий функционирования
· Объединить усилия различных специалистов единым замыслом

Рис. 2. Требования к модели СЗИ

Описание подхода к формированию модели ИБ
Как составить такое представление об информационной безопасности, что бы охватить все аспекты проблемы? Человек получает наиболее полное представление об интересующем его явлении, когда ему удается рассмотреть это нечто неизвестное со всех сторон, в трехмерном измерении.
Воспользуемся этим принципом.
Рассмотрим три "координаты измерений" - три группы составляющих модели СЗИ.
1. Из чего состоит (ОСНОВЫ)
2. Для чего предназначена (НАПРАВЛЕНИЯ)
3. Как работает (ЭТАПЫ)

Рис. 3. Три "координаты измерений" - три группы составляющих модели СЗИ

ОСНОВАМИ или составными частями практически любой сложной СИСТЕМЫ (в том числе и системы защиты информации) являются:
· Законодательная, нормативно-правовая и научная база;
· Структура и задачи органов (подразделений), обеспечивающих безопасность ИТ;
· Организационно-технические и режимные меры и методы (политика информационной безопасности);
· Программно-технические способы и средства.

Рис. 4. Координата ОСНОВЫ

НАПРАВЛЕНИЯ формируются исходя из конкретных особенностей ИС как объекта защиты. В общем случае, учитывая типовую структуру ИС и исторически сложившиеся виды работ по защите информации, предлагается рассмотреть следующие направления:
· Защита объектов информационных систем;
· Защита процессов, процедур и программ обработки информации;
· Защита каналов связи;
· Подавление побочных электромагнитных излучений.
· Управление системой защиты;

Рис. 5. Координата НАПРАВЛЕНИЯ

Но, поскольку каждое из этих НАПРАВЛЕНИЙ базируется на перечисленных выше ОСНОВАХ, то элементы ОСНОВ и НАПРАВЛЕНИЙ, рассматриваются неразрывно друг с другом. Например, одну из ОСНОВ под названием "Законодательная база:" необходимо рассматривать по всем НАПРАВЛЕНИЯМ, а именно:
Законодательная база защиты объектов:
Законодательная база защиты процессов, процедур и программ:
Законодательная база защиты каналов связи:
Законодательная база подавления побочных электромагнитных излучений:
Законодательная база по управлению и контролю самой системы защиты:
Аналогично следует рассматривать остальные грани ОСНОВ (структуру:, меры:, средства) по всем НАПРАВЛЕНИЯМ.
Как видите, для формирования самого общего представления о конкретной системе защиты необходимо ответить минимально на 20 (4*5=20) самых простых вопросов. Но и это еще не все... Далее необходимо рассмотреть ЭТАПЫ (последовательность шагов) создания СЗИ, которые необходимо реализовать в равной степени для каждого в отдельности НАПРАВЛЕНИЯ с учетом указанных выше ОСНОВ.

Проведенный анализ существующих методик (последовательностей) работ по созданию СЗИ позволяет выделить следующие ЭТАПЫ:
· Определение информационных и технических ресурсов, а также объектов ИС(!) подлежащих защите;
· Выявление полного множество потенциально возможных угроз и каналов утечки информации;
· Проведение оценки уязвимости и рисков информации (ресурсов ИС) при имеющемся множестве угроз и каналов утечки;
· Определение требований к системе защиты информации;
· Осуществление выбора средств защиты информации и их характеристик;
· Внедрение и организация использования выбранных мер, способов и средств защиты.
· Осуществление контроля целостности и управление системой защиты.

Рис. 6. Этапы создания систем защиты информации.

Поскольку ЭТАПОВ семь, и по каждому надо осветить 20 уже известных вам вопросов то в общей сложности для формирования представления о конкретной системе защиты необходимо ответить на 140 простых вопросов. Совершенно очевидно что по каждому вопросу (элементу) возникнет несколько десятков уточнений.
В общем случае количество элементов матрицы может быть определено из соотношения
K = Oi*Hj*Mk
Где
К - количество элементов матрицы
Oi - количество составляющих блока "ОСНОВЫ"
Hj - количество составляющих блока "НАПРАВЛЕНИЯ"
Mk - количество составляющих блока "ЭТАПЫ"

В нашем случае общее количество элементов "матрицы" равно 140
K=4*5*7=140.
поскольку Oi=4, Hj=5, Mk=7

Все это можно представить в виде своеобразного кубика Рубика, на гранях которого образовалась мозаика взаимосвязанных составляющих элементов системы защиты.
А теперь для простоты понимания попробуем преобразовать трехмерную фигуру в двухмерную. Для этого развернем трехмерный куб на плоскости (на листе бумаги) и получим трехмерную матрицу в виде двухмерной таблицы, которая поможет логически объединить составляющие блоков "ОСНОВЫ", "НАПРАВЛЕНИЯ" и "ЭТАПЫ" по принципу каждый с каждым.
Напомним, что матрица в виде двухмерной таблицы появляется не сама по себе, а формируется в каждом конкретном случае, исходя из конкретных задач по созданию конкретной СЗИ для конкретной ИС.


Представление элементов матрицы

Элементы матрицы имеют соответствующую нумерацию. Следует обратить внимание на обозначения каждого из элементов матрицы, где:
первое знакоместо (Х00) соответствует номерам составляющих блока "ЭТАПЫ",
второе знакоместо (0Х0) соответствует номерам составляющих блока "НАПРАВЛЕНИЯ",
третье знакоместо (00Х) соответствует номерам составляющих блока "ОСНОВЫ".

На Рис.7 представлен пример, элемента матрицы 321, который формируется с учетом следующих составляющих:
300 - Проведение оценки уязвимости и рисков (составляющая № 3 блока "ЭТАПЫ");
020 - Защита процессов и программ (составляющая № 2 блока "НАПРАВЛЕНИЯ")
001 - Нормативная база (составляющая № 1 блока "ОСНОВЫ")

Рис. 7. Пример нумерации элемента матрицы №321

Приведем пример содержания информации для элементов матрицы № 321, 322, 323, 324, которые объединяют следующие составляющие:
№ 3 (300 проведение оценки уязвимости и рисков) блока "ЭТАПЫ",
№ 2 (020 защита процессов и программ) блока "НАПРАВЛЕНИЯ"
№ 1, 2, 3, 4 (001 нормативная база, 002 структура органов, 003 мероприятия, 004 используемые средства) блока "ОСНОВЫ".
Вот что получилось:
Элемент № 321 содержит информацию о том насколько полно отражены в законодательных, нормативных и методических документах вопросы, определяющие порядок проведения оценки уязвимости и рисков для информации используемой в процессах и программах конкретной ИС?
Элемент № 322 содержит информацию о том имеется ли структура органов (сотрудники), ответственная за проведение оценки уязвимости и рисков для процессов и программ ИС?
Элемент № 323 содержит информацию о том определены ли режимные меры, обеспечивающие своевременное и качественное проведение оценки уязвимости и рисков для информации используемой в процессах и программах ИС?
Элемент № 324 содержит информацию о том применяются ли технические, программные или другие средства, для обеспечения оперативности и качества проведения оценки уязвимости и рисков в процессах и программах ИС?

Это содержание только четырех вопросов из ста сорока, но ответы на них уже позволяют сформировать некое представление о состоянии дел по защите информации в конкретной ИС.
В общем случае рассматриваются все 140 вопросов (по числу элементов матрицы). Полное содержание 140 элементов матрицы можно посмотреть здесь. Описание этих вопросов позволяют составить полное представление о СЗИ и оценить достигнутый уровень защиты.
Сложно? Да! Однако именно такой подход дает возможность держать правильное направление в процессе создания сложных систем защиты. ":Верной дорогой идете, товарищи:". А поскольку при этом постоянно учитываются взаимные логические связи между многочисленными элементами СЗИ, то есть шанс построить именно СИСТЕМУ, а не набор решений. Напомним, что матрица не сществует сама по себе, а формируется исходя из описания конкретной ИС и конкретных задач по защите информации в этой системе, см. рисунок:


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

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

Рисунок 8. Свойства матрицы информационной безопасности

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

Интерфейсы программы с некоторыми комментариями представлены на рисунках 9, 10, 11, 12.
При внимательном рассмотрении можно узнать уже знакомую нам "матрицу знаний СЗИ" в несколько другом представлении.
На Рис. 9. показан интерфейс ввода данных. Заказчик определяет необходимые требования к системе защиты и устанавливает заданный уровень безопасности в соответствующие элементы матрицы. Экесперты в процессе проведения оценки качества созданной системы защиты определяют реализован ли заданный уровень безопасности и свои оценки выставляют в тех же элементах матрицы, только в режиме "достигнутый"

Рис. 9. Интерфейс ввода данных

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


Рис. 10. Сравнение заданного и достигнутого уровеней безопасности.

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

Рис. 11. Графичекое представление оценки эффетивности СЗИ.

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

Рис. 12. Интерфес для ввода коэффициентов важности.


Вместо заключения (Read me):
Хочется напомнить золотое правило: если после долгих попыток ничего не получается, ознакомьтесь, наконец, с инструкцией для пользователя! Прежде чем приступить к использованию программы "Оценка СЗИ", желательно разобраться с особенностями похода к рассмотрению вопросов информационной безопасности, предложенного автором.

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

Программа предназначена для свободного использования.

Источник: http://bezpeka.com/


Исследование эффективности средств защиты от шпионских программ

Обновлено: 16.01.2025

contacts@bezpeka.com

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

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

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

Согласно отчету компании Webroot "State of Spyware" за третий квартал 2005 года (http://www.webroot.com/land/sosreport-2005-q3.php), количество шпионских программ продолжает стремительно расти; возрастает и риск, которому подвергаются пользователи в Интернете. Исследование Consumer Reports за третий квартал 2005 показывает, что 86% пользователей так или иначе изменили свое поведение с Сети, боясь утечки данных о своей личности. 30% пользователей уменьшили общее время работы в Интернет; 53% пользователей перестали сообщать свою персональную информацию в Интернет; 25% отказались от покупок онлайн; 29% из тех, кто совершает покупки онлайн, стали реже покупать в Интернет.

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

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

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

  • Хотя в сети Интернет постоянно публикуются различные сравнительные тесты антишпионских, антивирусных и т.п. программных продуктов, эти исследования основаны на совершенно различных методиках тестирования, расчета рейтингов и т.д. Поэтому тесты не всегда отражают реальное положение вещей. Например, одним из основных критериев при сравнении антишпионских продуктов является количество сигнатур в базе. Но даже самые лучшие продукты, побеждающие в таких рейтингах, не в состоянии бороться с угрозами, описанными ниже.
  • Даже если в тесте одна программа заблокировала, к примеру, 10 из 10 вредоносных программ, а вторая только 7 из 10, это вовсе не означает, что первая программа лучше защитит конфиденциальную информацию пользователей. Как правило, к шпионским программам причисляются все программы, отсылающие третьей стороне любую информацию о пользователе, независимо от ценности этой информации. Таким образом, в одной группе оказываются и вполне безобидные программы, собирающие информацию о посещенных сайтах и сделанных в Интернете покупках - и чрезвычайно опасные программы и модули, специально разработанные для кражи банковских паролей и другой критической информации.
  • Критерии оценки программ определяют результаты тестирования - во многих исследованиях среди критериев оказывается не столько эффективность против наиболее опасных шпионских программ, сколько способность закрывать всплывающие окна (pop-ups), борьба с adware и красота интерфейса.
  • Маркетологи отлично знают, что тот товар, что лучше, не обязательно более распространен в мире. Как правило, лучше всех распространяется товар, торговая марка которого хорошо известна, и в продвижение которого на рынок вложены большие финансовые средства.
Цели тестирования
  • Оценить программные продукты и составить рейтинг с точки зрения их эффективности против самых опасных шпионских программ - тех, которые опубликованы в сети Интернет в открытых исходных кодах со свободным доступом для всех желающих. Поскольку скомпилировать такой код можно по-разному, как правило, традиционный сигнатурный анализ с ним не справляется.
  • Проверить качество работы "эвристических анализаторов", наличие которых в своих программных продуктах декларируют практически все всемирно известные производители антивирусных и антишпионских продуктов.
Предпосылки для разработки методики

В последнее время резко возросло количество публикаций о такой стремительно растущей разновидности киберпреступлений, как кража конфиденциальной информации с помощью программ-шпионов, и мерах по защите от них. В докладе "Превентивный подход к защите информации от современных шпионских программ" (http://bezpeka.com/en/lib/antispy/anot2868.html) подчеркивалась особая опасность угроз класса System Monitors (согласно классификации SpyAudit). К ним относятся кейлоггеры и их усовершенствованные модификации, позволяющие перехватывать нажатия клавиатуры (в пользовательском режиме и в режиме ядра системы), текст из окон приложений и буфера обмена, графические снимки экрана и др. Именно такие угрозы и являются предметом нашего рассмотрения, мы не включаем в понятие "шпионская программа" (spyware) угрозы класса adware, cookie и т.п. Последствия целенаправленной атаки с помощью кейлоггера несоизмеримы с вредом от внедрения adware на ПК пользователя. Со временем, System Monitors становятся все более опасными и вытесняют все остальные угрозы, которые ранее традиционно включались в понятие spyware. Это подтверждается многочисленными сообщениями в прессе, документами Anti-Spyware Coalition (http://www.antispywarecoalition.org), отчетами Webroot, Earthlink SpyAudit и другими ведущими компаниями и организациями в данной сфере. Подробно о нашей классификации шпионских программ см. статью "Шпионские программы и новейшие методы защиты от них" (http://bezpeka.com/ru/lib/sec/gen/art382.html).

Свое описание модели риска выпустила Anti-Spyware Coalition (http://www.antispywarecoalition.org/documents/RiskModelDescription.htm). К высокому риску Коалиция относит программы, самовоспроизводящиеся через массовые почтовые рассылки, червей и вирусы, а также программы, которые устанавливаются без разрешения или ведома пользователя посредством секьюрити-эксплойта, и программы, которые без согласия пользователя перехватывают сообщения email или интернет-пейджера, передают персональные данные или изменяют параметры защиты. Коалиция надеется, что ее рекомендации приведут к созданию более качественных антишпионских продуктов.

Что же может противопоставить пользователь персонального компьютера программам-шпионам?

Решение данной проблемы возможно только в использовании комплекса программных продуктов:

  • Программный продукт N1 - это продукт, который использует эвристические механизмы защиты против программ-шпионов. Он оказывает защиту непрерывно и не использует никакие сигнатурные базы.
  • Программный продукт N2 - это Антивирусный программный продукт, использующий постоянно обновляемые сигнатурные базы.
  • Программный продукт N3 - это персональный Firewall, контролирующий выход в сеть Интернет с персонального компьютера на основании конфигурации, которую определяет сам пользователь.

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

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

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

Но все ли пользователи устанавливают хотя бы те защитные программы, что имеются на рынке? К сожалению, далеко не все. По результатам недавнего исследования, проведенного совместно компанией AOL и организацией National Cyber Security Alliance (NCSA), на 81% ПК не установлен, по крайней мере, один из трех рекомендуемых компонентов интернет-защиты - межсетевой экран, обновляемый антивирус или приложение для защиты от шпионского ПО. Антивирусная программа вообще не инсталлирована или не обновлялась неделю и более на 56% домашних компьютеров. Межсетевые экраны с неправильными настройками обнаружены на 44% ПК. А антишпионская утилита отсутствует на 44% машин (http://bezpeka.com/ru/news/2005/12/08/5221.html).

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

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

Методика тестирования

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

Тестирование проводилось следующим образом.

Из сети Интернет были скачаны 9 шпионских программ с открытым исходным кодом:

  1. Key Logger by Jerome Scott II (K1)
    http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId
    =1645&lngWId=7
  2. KeyLoggerMore_Sample (K2)
    http://www.codeguru.com/code/legacy/system/KeyLoggerMore_Sample.zip
  3. try_wnd1 (K3)
    http://www.ladia.ru/cpp/appli/files/log.zip
  4. KEYLOGGER (K4)
    http://www.delphifr.com/gma/Keyloggers
  5. KEY LOGGER, ENREGISTREMENT CRYPTÉ + DÉCODEUR (K5)
    http://www.delphifr.com/code.aspx?id=12616
  6. SIMPLE PETIT KEYLOGGER (K6)
    http://www.delphifr.com/code.aspx?id=12279
  7. TOUCHES DE CLAVIER EN SIMULTANNÉ (HOOK) (K7)
    http://www.delphifr.com/code.aspx?id=12276
  8. Best Free Keylogger (BFK) (K8)
    http://sourceforge.net/projects/bfk
  9. Simple Python Keylogger for Windows (K9)
    http://sourceforge.net/projects/pykeylogger

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

Испытания проводились на операционных системах Windows XP Professional SP2 и Windows 2000 SP4 с последними обновлениями, на 32-битной архитектуре Intel.

Для тестирования были выбраны 22 всемирно известные антишпионские программы, включаемые в большинство Интернет-рейтингов:


Продукт Версия URL Разработчик
Ad-aware SE Pro Build 1.06r1 http://www.lavasoft.de/ Lavasoft
AntiSpy 2.13 http://www.softvers.com/antispy/ Softvers
BPS Spyware Remover 9.2.0.9 http://www.bulletproofsoft.com/ Bullet Proof Soft, Inc.
CounterSpy 1.5.82 http://www.sunbelt-software.com/ Sunbelt Software
Maxion Spy Killer 5 http://www.maxionsoftware.com/ Maxion Software
McAfee Anti-Spyware 2.0.0.167 http://www.mcafeestore.com/ McAfee, Inc.
Microsoft AntiSpyware 1.0.701 http://www.microsoft.com/ Microsoft Corporation.
PestPatrol 5.0.2.3 http://pestpatrol.com/ Computer Associates International, Inc.
PrivacyKeyboard 7.1 http://www.bezpeka.biz/ Information Security Center Ltd
Spy Cleaner Gold 3.6 http://www.spycleaner-gold.com/ Topdownloads Networks
Spy Sweeper 4.5.7.756 http://www.webroot.com/ Webroot Software, Inc.
Spybot Search & Destroy 1.4 http://www.spybot.info/ Patrick M. Kolla / Safer Networking Limited.
SpyHunter 2.0.1086 http://www.enigmasoftwaregroup.com/ Enigma Software Group, Inc.
SpyRemover 2.46 http://www.itcompany.com/ InfoWorks Technology Company.
SpySubtrac 3.11 http://www.trendmicro.com/ Trend Micro Incorporated.
Spyware Be Gone 7 http://www.spywarebegone.com/ MicroSmarts LLC
Spyware Blaster 3.4 http://www.javacoolsoftware.info/ Javacool Software LLC.
Spyware Crusher 1.0.9 http://www.spywarecrusher.com/ Spyware Crusher
Spyware Doctor 3.2 http://www.pctools.com/spyware-doctor/ PC Tools.
Spyware Stormer 1.4.7 http://www.spywarestormer.com/ Spyware Stormer, Inc.
TrueWatch 1.2.0.0 http://www.truesuite.com/ Esaya, Inc.
XoftSpy 4.19 http://www.paretologic.com/products.aspx ParetoLogic Inc.

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

Для тестирования были выбраны 22 всемирно известные антивирусные программы, включаемые в большинство Интернет-рейтингов (для нашего тестирования использовался специализированный интернет-ресурс http://www.virustotal.com):


Продукт URL Разработчик Версия Обновление
AntiVir http://www.hbedv.com/en/ H+BEDV (AntiVir) 6.33.0.70 12.23.2005
Avast http://www.avast.com/ ALWIL (Avast! Antivirus) 4.6.695.0 12.22.2005
AVG http://www.grisoft.com/ Grisoft (AVG) 718 12.23.2005
Avira http://www.avira.com/ AVIRA (AVIRA Desktop) 6.33.0.70 12.23.2005
BitDefender http://www.bitdefender.com/ Softwin (BitDefender) 7.2 12.23.2005
CAT-QuickHeal http://www.quickheal.co.in/ Cat Computer Services (Quick Heal) 8 12.21.2005
ClamAV http://www.clamwin.com/ ClamAV (ClamWin) devel-20051108 12.19.2005
DrWeb http://www.drweb.com/ Doctor Web, Ltd. (DrWeb) 4.33 12.23.2005
eTrust-Iris http://www.ca.com/ Computer Associates (Iris, Vet) 7.1.194.0 12.23.2005
eTrust-Vet http://www.ca.com/ Computer Associates (Iris, Vet) 12.4.1.0 12.23.2005
Fortinet http://www.fortinet.com/ Fortinet (Fortinet) 2.54.0.0 12.23.2005
F-Prot http://www.f-prot.com/ FRISK Software (F-Prot) 3.16c 12.22.2005
Ikarus http://www.ikarus.at/ Ikarus Software (Ikarus) 0.2.59.0 12.23.2005
Kaspersky http://www.kaspersky.com/ Kaspersky Lab (AVP) 4.0.2.24 12.23.2005
McAfee http://www.mcafee.com/ McAfee (VirusScan) 4657 12.23.2005
NOD32v2 http://www.nod32.com/ Eset Software (NOD32) 1.1335 12.22.2005
Norman http://www.norman.com/ Norman (Norman Antivirus) 5.70.10 12.23.2005
Panda http://www.pandasoftware.com/ Panda Software (Panda Platinum) 8.02.00 12.22.2005
Sophos http://www.sophos.com/ Sophos (SAV) 4.01.0 12.23.2005
Symantec http://www.symantec.com/ Symantec (Norton Antivirus) 8 12.23.2005
TheHacker http://www.hacksoft.com.pe/ Hacksoft (The Hacker) 5.9.1.060 12.21.2005
VBA32 http://www.anti-virus.by/ VirusBlokAda (VBA32) 3.10.5 12.22.2005

Результаты тестирования

Результаты тестирования антишпионских продуктов:


AntiSpy Product Test Spy K1 K2 K3 K4 K5 K6 K7 K8 K9
Ad-aware SE Pro - - - - - - - - -
AntiSpy - - - - - - - - -
BPS Spyware Remover - - - - - - - - +
CounterSpy - - - - - - - - -
Maxion Spy Killer - - - - - - - - -
McAfee Anti-Spyware - - - - - - - + -
Microsoft AntiSpyware - - - - - - - - -
PestPatrol - - - - - - - - -
PrivacyKeyboard + + + + + + + + +
Spy Cleaner Gold - - - - - - - - -
Spy Sweeper - - - - - - - + -
Spybot Search & Destroy - - - - - - - - -
SpyHunter - - - - - - - - -
SpyRemover - - - - - - - - -
SpySubtrac - - - - - - - + -
Spyware Be Gone - - - - - - - - -
Spyware Blaster - - - - - - - - -
Spyware Crusher - - - - - - - - -
Spyware Doctor - - - - - - - - -
Spyware Stormer - - - - - - - - -
TrueWatch - - - - - - - + +
XoftSpy - - - - - - - - -

Результаты тестирования антивирусных продуктов:


AntiVirus Product Test Spy K1 K2 K3 K4 K5 K6 K7 K8 K9
AntiVir no no no Heuristic
/ Trojan.
Keylogger
no Heuristic
/Trojan.
Keylogger
no no no
Avast no no no no no no no no no
AVG no no no no no no no no no
Avira no no no Heuristic
/Trojan.
Keylogger
no Heuristic
/Trojan.
Keylogger
no no no
BitDefender no no no no no no no Generic
.Malware.
SLM.
10535C5E
no
CAT-QuickHeal no no no Monitor.
KeyLogger.
i (Not a Virus)
no no no Monitor.
BFK.
11 (Not a Virus)
no
ClamAV no no no no no no no no no
DrWeb Trojan
.KeyLogger.
342
no no no no no no no no
eTrust-Iris no no no no no no no no no
eTrust-Vet no no no no no no no no no
Fortinet no no no no no no no Keylog!tr no
F-Prot no no no no no no no no no
Ikarus no no no no no no no no no
Kaspersky no no no not-a-virus:
Monitor.
Win32.
KeyLogger.i
no no no not-a-virus:
Monitor.
Win32.
BFK.11
no
McAfee no no no no no no no Keylog.gen no
NOD32v2 no no no no no no no probably
unknown
NewHeur_PE
virus
no
Norman no no no no no no no no no
Panda no no no no no no no no no
Sophos no no no no no no no no no
Symantec no no no no no no no no no
TheHacker no no no no no no no no no
VBA32 Trojan.
KeyLogger.
342
no no no no no no no no

Итоговая таблица

Рейтинг продуктов, осуществляющих противодействие программам-шпионам:


NN Продукт Обнаруженные шпионские программы, %
1 PrivacyKeyboard 100,00
2 AntiVir
Avira
CAT-QuickHeal
Kaspersky
TrueWatch
22,22
3 BitDefender
BPS Spyware Remover
DrWeb
Fortinet
McAfee
McAfee Anti-Spyware
NOD32v2
Spy Sweeper
SpySubtrac
VBA32
11,11
4 Ad-aware SE Pro
AntiSpy
Avast
AVG
ClamAV
CounterSpy
eTrust-Iris
eTrust-Vet
F-Prot
Ikarus
Maxion Spy Killer
Microsoft AntiSpyware
Norman
Panda
PestPatrol
Sophos
Spy Cleaner Gold
Spybot Search & Destroy
SpyHunter
SpyRemover
Spyware Be Gone
Spyware Blaster
Spyware Crusher
Spyware Doctor
Spyware Stormer
Symantec
TheHacker
XoftSpy
0,00

Выводы

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

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

Программный продукт производства ООО "Центр информационной безопасности" PrivacyKeyboard занял первое место, что объясняется отсутствием сигнатурных баз в принципе. Реализованный в программе подход позволяет одинаково эффективно защищать как от известных угроз, связанных с перехватом информации пользователей ПК, так и от неизвестных.

На втором месте оказались 5 продуктов - TrueWatch компании Esaya, Inc., AntiVir компании H+BEDV, Avira компании AVIRA (AVIRA Desktop), CAT-QuickHeal компании Cat Computer Services, Kaspersky Anti-Virus Personal Pro компании Kaspersky Lab, которые справились с двумя из девяти шпионов.

Третье место разделили сразу 10 продуктов. Они смогли обнаружить лишь один (!) из девяти шпионов.

Все остальные 28 продуктов оказались бессильны и не смогли обнаружить ни одного (!) из тестовых шпионов.

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

Источник: http://bezpeka.com/

Безопасность компьютерной сети: Сканер в вопросах и ответах

Обновлено: 16.01.2025

Что такое сканер?

Сканер — это программа, предназначенная для автоматизации процесса поиска слабостей в защите компьютеров, подключенных к сети в соответствии с протоколом TCP/IP. Наиболее совершенные сканеры обращаются к портам TCP/IP удаленного компьютера и в деталях протоколируют отклик, который они получают от этого компьютера. Запустив сканер на своем компьютере, пользователь, скажем, из подмосковной Малаховки, лаже не выходя из дома, может найти бреши в защитных механизмах сервера, расположенного, например, в Лос-Анджелесе.

Каковы системные требования для работы со сканерами?

Большинство сканеров предназначено для работы в среде операционном системы UNIX, хотя к настоящему времени такие программы имеются практически для любой операционной системы. Возможность запустить сканер на конкретном компьютере зависит от операционной системы, под управлением которой работает этот компьютер, и от параметров подключения к Internet. Есть сканеры, которые функционируют только в среде UNIX, а с остальными операционными системами оказываются несовместимыми. Другие отказываются нормально работать на устаревших компьютерах с Windows 3.11 и с медленным (до 14 400 бит/с) доступом к Internet, осуществляемым по коммутируемым линиям. Такие компьютеры будут надоедать сообщениями о переполнении стека, нарушении прав доступа или станут просто зависать.

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

Трудно ли создать сканер?

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

Что не по силам даже самому совершенному сканеру?

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

Насколько легальны сканеры?

Обычно сканеры создаются и используются специалистами в области сетевой безопасности. Как правило, они распространяются через сеть Internet. чтобы с их помощью системные администраторы могли проверять компьютерные сети на предмет наличия в них изъянов. Поэтому обладание сканерами, равно как и их использование на практике, вполне законно. Однако рядовые пользователи, не являющиеся системными администраторами. должны быть готовы к тому, что, если они будут применять сканеры для обследования чужих сетей, то могут встретить яростное сопротивление со стороны администраторов этих сетей. Более того, некоторые сканеры в процессе поиска брешей в защите компьютерных сетей предпринимают такие действия, которые по закону могут квалифицироваться как несанкционированный доступ к компьютерной информации, или как создание, использование и распространение вредоносных программ, или как нарушение правил эксплуатации компьютеров, компьютерных систем и сетей. И если следствием этих деяний стало уничтожение, блокирование, модификация или копирование информации, хранящейся в электронном виде, то виновные в них лица в соответствии с российским законодательством подлежат уголовному преследованию. А значит, прежде чем начать пользоваться первым попавшимся под руку бесплатным сканером для UNIX-платформ, стоит убедиться, а не копирует ли случайно этот сканер заодно и какие-нибудь файлы с диска тестируемой им хост-машины (например, файл password из каталога /ETC).

В чем различие между сканерами и сетевыми утилитами?

Часто к сканерам ошибочно относят утилиты типа host, rusers, finger. Traceroute, Showmount. Связано это с тем, что, как и сканеры, данные утилиты позволяют собирать полезную статистическую информацию о сетевых службах на удаленном компьютере. Эту информацию можно затем проанализировать на предмет выявления ошибок в их конфигурации.

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

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

Для Windows 95/98 имеются программные пакеты NetScan Tools (http://www.eskimo.com/~nwps/index.html). Network Toolbox (http://www.jriver. com/netbox.html) и TCP/IP Surveyor (http://www.rocketdownload.com/details/inte/wssrv32nsrc.htm), которые реализуют выполнение сетевых утилит host, rusers, finger, Traceroute, ping, WHOIS. Последний из упомянутых пакетов не только осуществляет сбор информации о сети и подключенных к ней компьютерах, но и представляет собранную таким образом информацию в виде графа, вершинами которого служат найденные в сети маршрутизаторы, серверы и рабочие станции.

Пользователям персональных компьютеров типа Macintosh можно посоветовать обратить внимание на программные пакеты МасТСР Watcher (http://waldo.wi.mit.edu/WWW/tools/util/Mac/MacTCP_Watchei), Querylt! (http://tucows.online.ru/mac/adnload/dlqueryitinac.html) и What Route (http://homepages.ihug.co.nz/~bryanc).

Источник: http://www.computerbooks.ru/books/Security/Book-Protection-to-Information/4/Index2.htm

Сокрытие PHP

Обновлено: 16.01.2025

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

Несколько несложных методик могут помочь вам скрыть PHP, что усложняет работу потенциального взломщика, который пытается найти брешь в вашей системе. Установив опцию expose_php = off в конфигурационном файле php.ini, вы уменьшите количество доступной хакеру информации.

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

Пример 32-1. Маскировка PHP под другие языки программирования
# Теперь PHP-скрипты могут иметь те же расширения, что и другие языки программирования
AddType application/x-httpd-php .asp .py .pl

Или скрыть его совсем:

Пример 32-2. Использование неизвестных расширений для PHP-скриптов
# Теперь PHP-скрипты могут иметь неизвестные типы файлов
AddType application/x-httpd-php .bop .foo .133t

Также можно спрятать его под видом HTML-кода, что приведет к потере производительности, так как все HTML файлы будут обрабатываться как PHP-код:

Пример 32-3. Маскировка PHP-кода под html-файлы
# Теперь PHP-скртпы могут выглядеть как обыкновенный HTML
AddType application/x-httpd-php .htm .html

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

источник: http://php.ru/manual/security.hiding.html

Защита хранилища базы данных

Обновлено: 16.01.2025

SSL/SSH защищает данные, которыми обмениваются клиент и сервер, но не защищают сами данные, хранимые в базе данных. SSL - протокол шифрования на уровне сеанса передачи данных.

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

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

В случае работы со скрытыми служебными данными их нешифрованное представление не требуется (т.е. не отображается), и, как следствие, можно использовать хеширование. Хорошо известный пример хэширования - хранение MD5-хеша от пароля в БД, вместо хранения оригинального значения. Более детальная информация доступна в описании функций crypt() and md5().

Использование хешированных паролей
<?php
// сохранение хешированного пароля
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

// проверка введенного пользователем логина и пароля на корректность
$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

if (pg_numrows($result) > 0) {
    echo "Welcome, $username!";
}
else {
    echo "Authentication failed for $username.";
}
?>

источник: http://php.ru/manual/security.database.storage.html

Настройка Squid

Обновлено: 16.01.2025

Автор: erasha@bsdportal.ru

Данная статья описывает настройку прокси сервера SQUID версии 2.5.14 с использованием аудентификации по mac адресу с ограничением скорости закачки с помощью пулов задержки, анализа статистики лога с помощью sarg-2.2. А также в кратце описан процесс поднятия WWW сервера на основе apache-1.3.36 для удобства доступа до статистики полученной sarg. Для тех, кто торопиться, может помочь статья "Быстрая настройка Squid". А тех, кто считает, что все равно с быстрой настройки сюда же и вернуться, прошу читать дальше.

Настройка сервера FreeBSD с поддержкой NAT

Для начала надо пересобрать ядро с поддержкой DIVERT для NAT и ipfw.

Добавляем вот это в конфигурационный файл ядра:

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_FORWARD
options         IPFIREWALL_FORWARD_EXTENDED
options         IPDIVERT

пересобираем ядро и устанавливаем его. Затем в файл /etc/rc.conf добавляем

firewall_enable="YES"
firewall_script="/etc/rc.ipfw1"
natd_enable="YES"
natd_interface="fxp0"

первая строка включает firewall ipfw, вторая указывает какой скрипт указания правил использовать при загрузке, третья включает NAT, чертвертая определяет на каком внешнем сетевом интерфейсе будет работать NAT. В моем случае внешний интерфейс fxp0.

потом создаем файл rc.ipfw1 и ставим ему безопасные права

#cd /etc
#touch rc.ipfw1
#chmod 600 rc.ipfw1

с таким содержанием

#!/bin/sh
 fwcmd="/sbin/ipfw"
 ${fwcmd} -f flush 
# VAR
 if_inet="fxp0"              # внешний сетевой интерфейс
 ip_inet="aaa.aaa.aaa.aaa"   # ip внешнего сетового интерфейса
 net="bbb.bbb.b.b/24"        # ваша подсетка
# Local
 ${fwcmd} add allow all from any to any via lo0
 ${fwcmd} add deny all from any to 127.0.0.0/8
 ${fwcmd} add deny all from 127.0.0.0/8 to any
# тут разрешаю SSH чтоб безбоязненно можно было удаленно
# править правила которые идут дальше
 ${fwcmd} add allow tcp from any to any ssh
 ${fwcmd} add allow tcp from any ssh to any
# anti spoofing #1
 ${fwcmd} add deny all from any to 10.0.0.0/8 via ${if_inet}
 ${fwcmd} add deny all from any to 172.16.0.0/12 via ${if_inet}
 ${fwcmd} add deny all from any to 192.168.0.0/16 via ${if_inet}
 ${fwcmd} add deny all from any to 0.0.0.0/8 via ${if_inet}
 ${fwcmd} add deny all from any to 169.254.0.0/16 via ${if_inet}
 ${fwcmd} add deny all from any to 192.0.2.0/24 via ${if_inet}
 ${fwcmd} add deny all from any to 224.0.0.0/4 via ${if_inet}
 ${fwcmd} add deny all from any to 240.0.0.0/4 via ${if_inet}
# NAT
 ${fwcmd} add divert 8668 ip from ${net} to any out via ${if_inet}
 ${fwcmd} add divert 8668 ip from any to ${ip_inet} in via ${if_inet}
# anti spoofing #2
 ${fwcmd} add deny all from 10.0.0.0/8 to any via ${if_inet}
 ${fwcmd} add deny all from 172.16.0.0/12 to any via ${if_inet}
 ${fwcmd} add deny all from 192.168.0.0/16 to any via ${if_inet}
 ${fwcmd} add deny all from 0.0.0.0/8 to any via ${if_inet}
 ${fwcmd} add deny all from 169.254.0.0/16 to any via ${if_inet}
 ${fwcmd} add deny all from 192.0.2.0/24 to any via ${if_inet}
 ${fwcmd} add deny all from 224.0.0.0/4 to any via ${if_inet}
 ${fwcmd} add deny all from 240.0.0.0/4 to any via ${if_inet}
# все остальное разрешить (желательно только то что нужно =) )
 ${fwcmd} add allow all from any to any

сразу отмечу для создания правил безопастности более индивидуально посетите хороший сайт http://ipfw.ism.kiev.ua/ посвященный настройки firewall ipfw и эти правила для aaa.aaa.aaa.aaa реального IP

Изменения вносить лучше в /etc/rc.conf и создание /etc/rc.ipfw1 до перезагрузки после установки пересобранного ядра.

Собственно настройка Squid

Устанавливаем Squid командами:

#cd /usr/ports/www/squid
#make config

или так

cd /usr/ports/www/squid && make config

ставим галочки напротив

SQUID_DELAY_POOLS
SQUID_ARP_ACL
SQUID_RCNG

к уже установленным. Первая строка включает поддержку пулов задержки для ограничения скорости, вторая включает поддержку использования в ACL МАС адресов, третья указавает на создание загрузочного скрипта в rc.d . Нажимаем ОК. Потом делаем

#make install clean

Затем идем в /usr/local/etc/squid создаем файл squid.conf с безопасными правами

#touch squid.conf
#chmod 600 squid.conf

или можно, как вариант, скопировать еще не настроенный конфигурационный файл Squid по умолчанию и его редактировать.

#cp ./squid.conf.default ./squid.conf

У меня squid.conf примерно имеет такое содержание:

http_port 3128
icp_port 3130
hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY

cache_mem 32 MB

maximum_object_size 2000 KB
maximum_object_size_in_memory 1000 KB

cache_dir ufs /usr/local/squid/cache 2000 16 256

auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localnet src 192.168.0.0/24
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Icq_port port 5190          # icq
acl Irc_port port 6667          # irc
acl MSN_port port 1863          # msn messager
acl CONNECT method CONNECT

acl erasha arp XX:XX:XX:XX:XX:XX
acl user1 arp XX:XX:XX:XX:XX:XX
acl user2 arp XX:XX:XX:XX:XX:XX
acl user3 arp XX:XX:XX:XX:XX:XX

acl stop_files url_regex -i .mp3$ .vqf$ .rpm$ .avi$ .mpeg$ .rm$ 
.raw$ .wav$ .mov$ .ogg$ .exe$ .com$
acl StopWWW dstdomain "/usr/local/etc/squid/stopWWW.acl"

http_access allow erasha

http_access deny stop_files
http_access deny StopWWW

http_access allow user1
http_access allow user2
http_access allow user3

http_access allow CONNECT Icq_port
http_access allow localnet Icq_port
http_access allow CONNECT Irc_port
http_access allow localnet Irc_port
http_access allow CONNECT MSN_port
http_access allow localnet MSN_port
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all

http_reply_access allow all

icp_access allow all

visible_hostname proxy

icon_directory /usr/local/etc/squid/icons

error_directory /usr/local/etc/squid/errors/Russian-koi8-r

delay_pools 3

delay_class 1 2
delay_parameters 1 6000/2000 3000/2000
delay_access 1 allow user1
delay_access 1 deny all

delay_class 2 2
delay_parameters 2 15000/3000 15000/3000
delay_access 2 allow user2
delay_access 2 deny all

delay_class 3 2
delay_parameters 3 60000/3000 60000/3000
delay_access 3 allow user3
delay_access 3 deny all

coredump_dir /usr/local/squid/cache

Файл настроек Squid изнутри

http_port 3128

указываем порт для запросов клиентов, можно задать 8080.

icp_port 3130

указываем номер порта Internet Cache Protocol (ICP) для открытия возможности использования кешей соседних squid прокси.

hierarchy_stoplist cgi-bin ?

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

acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY

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

cache_mem 32 MB

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

maximum_object_size 2000 KB

максимальный размер объектов, которые будут сохранены на диск. По умолчанию стоит 4096 килобайт.

maximum_object_size_in_memory 1000 KB

максимальный размер объектов, которые будут сохранены в кэше. По умолчанию стоит 4096 килобайт.

cache_dir ufs /usr/local/squid/cache 2000 16 256

указывает сквиду, где сохранять кешируемые файлы. Указывает отдать под кеш 2000 мегабайт и создать 16 и 256 соответственно каталогов 1го и 2го уровня. Про каталоги сами все поймете, когда загляните в место, где у сквида кэш.

auth_param basic children 5

количество процессов авторизации запросов.

auth_param basic realm Squid proxy-caching web server

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

auth_param basic credentialsttl 2 hours

указываем время хранения авторизации, в данном случае 2 часа.

auth_param basic casesensitive off

указываем, что регистр введенных данных роли не играет.

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

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

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localnet src 192.168.0.0/24
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Icq_port port 5190          # icq
acl Irc_port port 6667          # irc
acl MSN_port port 1863          # msn messager
acl CONNECT method CONNECT

Здесь с помощью acl мы задаем localhost, локальную сеть, порты на которые мы разрешим выходить программам через наш прокси. Также указываем manager протокол cache_object, используемого для управления и мониторинга кеша.

acl CONNECT method CONNECT

включает поддержку проброски соединения с помощью команды протокола CONNECT.

acl erasha arp XX:XX:XX:XX:XX:XX      
acl user1 arp XX:XX:XX:XX:XX:XX
acl user2 arp XX:XX:XX:XX:XX:XX                
acl user3 arp XX:XX:XX:XX:XX:XX

с помощью acl...arp указываем МАС адреса сетевых карт пользователей, которым мы в дальнейшем разрешать/запрещать доступ к интернету. вместо XX:XX:XX:XX:XX:XX указываем МАС адрес сетевой карты компьютера пользователя. Скрипт для получения МАС адреса будет приведен в приложении.

acl stop_files url_regex -i .mp3$ .vqf$ .rpm$ .avi$ .mpeg$ .wav$ 
.mov$ .ogg$ .exe$ .com$

здесь мы указываем расширения файлов которые мы запретим для закачки.

acl StopWWW dstdomain "/usr/local/etc/squid/stopWWW.acl"

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

.zaycev.net
.rmp.ru
.berkova.net
.sexmovies.ru
.mp3real.ru
.erovideo.ru
.muzudar.ru

это как бы подборка сайтов sex содержания и с mp3, т.к. в stop_files мы не закрыли архивы, а на некоторых сайтах лежат mp3 с расширением например rar, и пользователи могут закачивать музыку потом меняя расширение у файлов, поэтому я решил запрещать сами сайты.

http_access allow erasha
http_access deny stop_files
http_access allow user1
http_access allow user2
http_access allow user3

Здесь мы разрешаем с помошь http_access allow доступ до интернета, а используя http_access deny запрещаем выкачивать stop_files с расширениями указанными выше. Обратите внимание что разрешение доступа до интернета для пользователя erasha стоит выше запрета на закачку stop_files. Это сделано для того чтобы на пользователя erasha не действовал запрет не закачку stop_files, а на остальных пользователей которым разрешен доступ до интернета указанным после запрета на stop_files этот запрет действует.

http_access allow CONNECT Icq_port
http_access allow localnet Icq_port
http_access allow CONNECT Irc_port
http_access allow localnet Irc_port
http_access allow CONNECT MSN_port
http_access allow localnet MSN_port
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all

В этих строках разрешаем использования метода CONNECT для локальной сети на Icq_port,Irc_port,MSN_port, разрешаем доступ maneger доступ до localhost. Запрещаем использование всех портов кроме Safe_ports, запрещаем метод CONNECT на все порты кроме SSL_ports, и в конце все запрещаем. Знак “!” используется как НЕ, т.е. если дословно http_access deny !Safe_ports запретить http доступ НЕ Safe_ports.

http_reply_access allow all

Разрешаем ответы на все запросы.

icp_access allow all

Разрешаем доступ до icp всем.

visible_hostname proxy

это имя будет упоминаться в сообщениях об ошибках.

icon_directory /usr/local/etc/squid/icons

Указываем католог с иконками

error_directory /usr/local/etc/squid/errors/Russian-koi8-r

Указываем католог с шаблонами страниц ошибок на нужном языке и в нужной кодировке, в нашем случае язык русский в Koi8-r кодировке

delay_pools 3

delay_class 1 2
delay_parameters 1 6000/2000 3000/2000
delay_access 1 allow user1
delay_access 1 deny all

delay_class 2 2
delay_parameters 2 15000/3000 15000/3000
delay_access 2 allow user2
delay_access 2 deny all

delay_class 3 2
delay_parameters 3 60000/3000 60000/3000
delay_access 3 allow user3
delay_access 3 deny all

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

delay_pools 3

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

delay_class 1 2

здесь указываем номер пула и его класс, т.е. пул номер один второго класса.

delay_parameters 1 6000/2000 3000/2000

здесь задаем параметры пула. Указаываем номер пула которому устанавливаем параметры, у нас №1, далее идет указание ограничения по скорости этого пула. 6000/2000 указывает что после закачки более 2000 байт установить скорость не выше 6000 байт/с, до 2000 байт закачка происходит без какого либо ограничения по скорости. исходя из того что у нас пул второго класса такое ограничение мы установили на общий поток, далее 3000/2000 указываем что каждому хосту после закачки более 2000 байт установить скорость 3000 байт.

вот как бы шаблон по которому думаю более нагладно разобраться

delay_parameters 3 total_rest/total_max  - 1 класс
delay_parameters 3 total_rest/total_max ind_rest/ind_max  - 2 класс
delay_parameters 3 total_rest/total_max net_rest/net_max ind_rest/ind_max  - 3 класс

где total - на всех net - на подсеть ind - на отдельный адрес rest - скорость (в байт/сек) max - размер трафика при превышении которого устанавливается ограничение по скорости (в байтах)

еще если указать так

delay_parameters А -1/-1

то -1/-1 это указывает на отсутствие каких либо ограничений для пула А.

delay_access 1 allow user1

Разрешаем user1 успользовать пул номер 1.

delay_access 1 deny all

Запрещаем все остальным использовать пул номер 1.

Следующие пулы аналогичны первому по структуре.

coredump_dir /usr/local/squid/cache

Указываем куда сбрасывать core.

И на последок создадим swap директорию для squid

# /usr/local/sbin/squid -z

Добавим SQUID в автозагрузку (в /etc/rc.conf)

squid_enable="YES"

Запустим squid

# /usr/local/sbin/squid -D

Так вроде все с squid разобрались.

Теперь приступим к установке анализатора логов squid-a sarg -2.2

#cd /usr/ports/www/sarg
#make install clean

или так

cd /usr/ports/www/sarg && make install clean

Затем идем в /usr/local/etc/sarg создаем файл sarg.conf с безопастными правилами

#touch sarg.conf
#chmod 600 sarg.conf

или можно как вариант скопировать конфигурационный файл squid по умолчанию и его редактировать

#cp ./sarg.conf.default ./sarg.conf

у меня sarg.conf примерно имеет такое содержание

language Russian_koi8
access_log /usr/local/squid/logs/access.log
graphs yes
graph_days_bytes_bar_color orange
title "МОЯ ОГРАНИЗАЦИЯ"
font_face Tahoma,Verdana,Arial
header_color darkblue
header_bgcolor blanchedalmond
font_size 10px
header_font_size 10px
title_font_size 11px
background_color white
text_color #000000
text_bgcolor blanchedalmond
title_color green
logo_image none
logo_text_color #000000
background_image none
output_dir /usr/local/sarg/squid-reports
resolve_ip yes
#lastlog 0
index yes
overwrite_report no
#output_email erasha@domain.ru
max_elapsed 28800000
charset Koi8-r
show_successful_message yes
show_read_statistics yes
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT 
USED_TIME MILISEC %TIME TOTAL AVERAGE
user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC 
%TIME TOTAL AVERAGE
#show_sarg_info yes
#show_sarg_logo yes

разберем опции.

language Russian_koi8

Указываем язык который будет использоваться в отчётах

access_log /usr/local/squid/logs/access.log

Указываем где будет находиться лог squid который sarg будет анализировать

graphs yes
graph_days_bytes_bar_color orange

Разрешаем формирование графиков

title "МОЯ ОГРАНИЗАЦИЯ"

Указываем загологок отчетов sarg

font_face Tahoma,Verdana,Arial
header_color darkblue
header_bgcolor blanchedalmond
font_size 10px
header_font_size 10px
title_font_size 11px
background_color white
text_color #000000
text_bgcolor blanchedalmond
title_color green
logo_image none
logo_text_color #000000
background_image none

Выше указываются размер,

output_dir /usr/local/sarg/squid-reports

Указываем где будут храниться отчёты

resolve_ip yes

разрешаем чтобы вместо ip компов sarg резолвил имена компов

#lastlog 0

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

index yes

создавать index-ный файл отчетов

overwrite_report no

Перезаписывать отчеты, здесь не перезаписываются а делаются еще один

#output_email erasha@domain.ru

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

max_elapsed 28800000
charset Koi8-r

Кодировка надписей графика

show_successful_message yes

Показывать сообщение о удачном завершении анализа

show_read_statistics yes

Показывать статистику чтения

topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT 
USED_TIME MILISEC %TIME TOTAL AVERAGE
user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC 
%TIME TOTAL AVERAGE

Здесь указываются поля для статистики

#show_sarg_info yes
#show_sarg_logo yes

Показать инфо по sarg и его лого, я пока отключил.

Так с настройкой анализатора логоф squid закончили.

Настройка веб-сервера для просмотра отчетов

Ставим www сервер для удобного просмотра отчетов sarg. Я выбрал Apache 1.3

#cd /usr/ports/www/apache13
#make install clean

или так

cd /usr/ports/www/apache13 && make install clean

потом делаем символьный линк

# ln - s /usr/local/sarg/squid-reports /usr/local/www

Единственное, в каталоге /usr/local/sarg/squid-reports пока не было сделано ни одного отчета. Я, используя Squid, открыл одну любую страницу, чтобы был хоть какой-то лог, потом запустил Sarg, он, анализируя лог, создавал отчет вместе с каталогами, а потом делал символьный линк и запускал Apache. Можно, конечно, каталоги сделать руками вот так:

#mkdir /usr/local/sarg/squid-reports
#chmod 755 /usr/local/sarg/squid-reports

и надо создать пустой index.html для Apacha

#touch /usr/local/sarg/squid-reports/index.html
#chmod 644 /usr/local/sarg/squid-reports/index.html

Далее идем в /usr/local/etc/apache

открываем на редактирование httpd.conf, идем на 330 строку правим

ServerAdmin you@your.address

например на

ServerAdmin erasha@domain.ru

т.е. указываем адрес куда apache будет отправлять письма со своими проблемами =)

далее на 355 строке указываем где лежат наши отчеты

DocumentRoot "/usr/local/www/squid-reports"

Для запуска при загрузки системы добавляем в /etc/rc.conf

apache_enable="YES"

и запускаем

/usr/local/etc/rc.d/apache.sh start

Так теперь можно проверить работают squid и apache у нас

#sockstat

смотрим на предмет наличия строк

www   httpd  XXX  16  tcp4  *:80    *:*
squid squid  XXX  12  tcp4  *:3128  *:*

Первая показывает что запущен apache, вторая что squid работает.

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

#!/bin/sh
name=$1
ip=`ping -c1 $name | grep PING | awk '{print $3}' | sed 's/..$//' | sed 's/^(//'`
ot=`arp -an|grep "($ip)"|awk '{print $4}'`
echo $ot

я скриптик назвал mac.sh и пользую так

%mac.sh СетовоеИмяМашины_Или_IP
ХХ:ХХ:ХХ:ХХ:ХХ:ХХ   <-полученный МАС

если кто может предложить другой скрипт, поделитесь со мной, положу его в эту статью.

используя Cron собираю статистику с нарастающим итогом ежедневно и обнуляю итоги в начале каждого месяца

для этого добивил в /etc/crontab следующие строки

0       0       *       *       *       erasha  /usr/local/bin/sudo /usr/local/bin/sarg
15       0       1       *       *       root    /usr/local/sbin/squid -k rotate

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

0       0       *       *       *       root  /usr/local/bin/sarg

Ну вроде все. Выражаю благодарность s1lv3r за внесенные исправления и подсказки =). Также Grayich за указание на мои недочеты и ошибки. =).

Да, еще, natd поднимаю для того что бы из вне нельзя было поднимать соединения с внутренней сеткой. Пробуйте, тестируйте, критикуйте и пишите мне на мыло erasha@bsdportal.ru или стучитесь в аську 144897928.

Автор: erasha@bsdportal.ru





Последние комментарии