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

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

Доказательство возможности нападения

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

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

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

Написание программ, демонстрирующих проблему

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

Написание программ, демонстрирующих проблему, может быть отнесено к доказательству возможности нападения, поскольку в результате на практике демонстрируется существование уязвимости и детали атаки на нее. Программа может быть написана на разных языках: например, С, Perl или ассемблер.

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

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

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

Автоматизированный инструментарий безопасности

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

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

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

Различные производители выпускают различные средства автоматизированного тестирования. Среди них можно выделить CyberCop Security Scanner, выпущенный Network Associates, NetRecon компании Symantec и Internet Scanner - производитель Internet Security Systems. Свободно распространяется Nessus от Nessus Project. Более подробно с ними можно познакомиться в главе 17 книги.

Контроль версий

Контроль версий (versioning) - отказоустойчивый метод тестирования систем на наличие уязвимостей. По сравнению с ранее упомянутыми методами его не так часто используют, но он приводит к надежным результатам.

Контроль версий заключается в определении версии или редакции используемого программного обеспечения. Это может оказаться сложным, поэтому большинство программного обеспечения различается версиями, как, например, Windows 2000 Professional или Solaris 8, а многие из пакетов, помимо своей версии, характеризуются еще и версиями включаемых программ, например wget версии 1.7. На практике это часто приводит к необходимости решения сложных проблем, как, например, кошмар с дистрибутивом Linux, который является сборищем различных версий разного программного обеспечения.

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

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

Рис. 3.7. Определение редакции ядра Ыпих с помощью команды гтате-а Другой метод использует предоставляемые производителем средства определения на вашей машине последней редакции системы (см. рис. 3.8).

Проверка редакции Sun Solaris System при помощи команды showrev-p Для упрощения контроля версий предложены различные варианты

Рис. 3.8. Проверка редакции Sun Solaris System при помощи команды showrev-p Для упрощения контроля версий предложены различные варианты. Один из них заключается в использовании базы данных версий программ хоста, куда можно помещать дополнительную информацию о необходимых мерах предупреждения ее краха, нерационального использования ресурсов и потенциальных уязвимостях. Стандартные методы исследования Уже говорилось о том, что 97 % злоумышленников - это неопытные пользователи-недоумки. Действительно опасные - остальные 3 %. У этой группы есть чему поучиться, при условии что полученные знания не будут использованы для достижения зловредных целей. Ланс Спитзнер (Lance Spitzner), один из наиболее хорошо подготовленных специалистов по вопросам безопасности (и вообще всесторонне развитый человек), некоторое время назад написал несколько работ, в которых все расставил по своим местам. Заимствуя принцип Сан Цзу (Sun Tzu) из его книги «Искусство воины», работы Спицнера были озаглавлены «Узнай своего врага». Они доступны по адресу http://

proj ect. honey net. org.

В первую очередь следует обратить внимание на интеллектуальные нападения. Нападение - акт агрессии, а интеллектуальность предполагает твердые навыки познавательной деятельности. При подготовке интеллектуальной атаки осуществляется сбор информации либо с использованием утечки информации, либо при помощи доступных ресурсов Интернета. Рассмотрим некоторые методы, основанные на использовании базы данных Whois, службы имен доменов (DNS - Domain Name System), программы Nmap и индексирования Web.

База данных Whois Whois - это общедоступная база данных, содержащая информацию о владельцах сетевых ресурсов. База данных Whois подразделяется на базы данных Whois доменов, com, biz и базу данных Американского регистра Интернет-адресов (ARIN - American Registry of Internet Numbers), которые содержат сведения об именах служб и сетях.

База данных Whois имен служб В базе данных Whois имен служб хранится разнообразная информация о доменах: зарегистрировавшее домен лицо, его адрес и контактные номера телефонов и факса, а также другие сведения, позволяющие при необходимости легко и быстро связаться с владельцем домена. Это идеальный способ решения возникающих проблем, хотя в последнее время, как кажется автору, наблюдается тенденция увеличения числа необоснованных жалоб на провайдера по поводу той или иной проблемы и нарушения сетевого этикета. Проанализируйте следующую информацию: elliptic@ellipse:~$ whois cipherpunks.com Whois Server Version 1.3 Domain names in the .com, .net, and .org domains can now be

registered

with many different competing registrars. Go to http:// www.internic.net for detailed information.

Domain Name: CIPHERPUNKS.COM Registrar: ENOM, INC.

Whois Server: whois.enom.com Referral URL: http://www.enom.com Name Server: DNSl.ENOM.COM Name Server: DNS2.ENOM.COM Name Server: DNS3.ENOM.COM Name Server: DNS4.ENOM.COM Updated Date: 05-nov-2001 »> Last update of whois database: Mon, 10 Dec 2001 05:15:40

EST «<
The Registry database contains ONLY COM, NET, ORG, EDU domains and Registrars.
Found InterNIC referral to whois.enom.com.
Access to eNom’s Whois information is for informational purposes only. eNom makes this information available “ as is,” and does not guarantee its accuracy. The compilation, repackaging, dissemination or other use of eNom’s Whois information in its entirety, or a substantial portion thereof, is expressly prohibited without the prior written consent of eNom, Inc. By accessing and using our Whois information, you agree to these terms.
Domain name: cipherpunks.com Registrant:

Cipherpunks Elliptic Cipher (elliptic@cipherpunks.com)

678-464-0377 FAX: 770-393-1078 PO Box 211206 Montgomery, AL 36121 US
Administrative:

Cipherpunks Elliptic Cipher (elliptic@cipherpunks.com)

678-464-0377 FAX: 770-393-1078 PO Box 211206 Montgomery, AL 36121 US Billing:

Cipherpunks Elliptic Cipher (elliptic@cipherpunks.com)

678-464-0377 FAX: 770-393-1078 PO Box 211206 Montgomery, AL 36121 US Technical:

Cipherpunks Elliptic Cipher (elliptic@cipherpunks.com)

678-464-0377 FAX: 770-393-1078 PO Box 211206 Montgomery, AL 36121 US
DOMAIN CREATED : 2000-11-12 23:57:56 DOMAIN EXPIRES : 2002-11-12 23:57:56 NAMESERVERS:
DNSl.ENOM.COM
DNS2.ENOM.COM
DNS3.ENOM.COM
DNS4.ENOM.COM

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

В последнее время регулярно наблюдаются попытки злоумышленников использовать почтовые адреса лиц, зарегистрировавших домен. Для этого, в случае одновременного администрирования одного домена несколькими людьми, могут быть применены методы социотехники. Наиболее часто добытые таким способом сведения используются для распространения спама. Такие компании, как Network Solutions, даже продают подобную информацию фирмам «направленного маркетинга» (метод маркетинга, при котором компании рассылают образцы своей продукции потенциальным заказчикам), прославившимся распространением спама. Эти фирмы в буквальном смысле слова захламляют почтовый ящик жертвы различным мусором. То, как это происходит, описано в статье Newsbytes «ICANN То Gauge Privacy Concerns Over YWhoisY Database», доступной в Интернете по адресу www.newsbytes.com/news/01/166711.html.

База данных Whois сетевых сервисов В базе данных Whois сетевых сервисов содержится информация по управлению сетью. Она позволяет персоналу, занятому обслуживанием сети и обеспечением ее безопасности, решать возникающие проблемы. В базе данных Whois хранятся контактные номера телефонов и факсов, а в отдельных случаях названия компаний, арендующих сетевые ресурсы. Проанализируйте следующую информацию из базы Whois сетевых сервисов: elliptic@ellipse:~$ whois -h whois.arin.net 66.38.151.10 GT Group Telecom Services Corp.

(NETBLK-GROUPTELECOM-BLK-3) GROUPTELECOM-BLK-3
66.38.128.0-66.38.255.255
Security Focus (NETBLK-GT-66-3 8-151-0) GT-66-38-151-0
66.38.151.0-66.38.151.63
To single out one record, look it up with “!xxx”, where xxx is the handle, shown in parenthesis following the name, which comes first.
The ARIN Registration Services Host contains ONLY Internet
Network Information: Networks, ASN’s, and related POC’s.
Please use the whois server at rs.internic.net for DOMAIN related Information and whois.nic.mil for NIPRNET Information.

Как можно заметить, адреса Интернет от 66.38.151.0 до 66.38.151.63 закреплены за SecurityFocus. Кроме того, эти адреса принадлежат GT Group Telecom. Подобная информация позволяет злоумышленникам очертить границы будущего нападения. Если злоумышленник захочет скомпрометировать хост сети SecurityFocus, ему нужно только выбрать хост сетевого сегмента, поддерживаемый ARIN. А затем, используя скомпрометированный хост сети, выбрать другие хосты той же самой или другой сети.

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

Источник уязвимостей был обнаружен в широко распространенной программе разрешения имен в Интернете BIND. Служба доменных имен в сети Интернет или BIND (Berkley Internet Name Domain - программа для поддержки сервера имен доменов, первоначально написанная для UNIX, в настоящее время является наиболее популярной реализацией DNS и перенесена практически на все платформы. BIND задает структуру баз данных, функции DNS и конфигурационные файлы, требующиеся для установки и функционирования сервера имен) ранее имела ряд уязвимостей, которые позволяли злоумышленнику получать удаленный административный доступ. Также известна уязвимость в старших версиях программы, при помощи которой можно подменять содержимое кэш DNS, дурача клиентов. Подмена состояла в изменении занесенного в кэш соответствия между доменом и его адресом. В результате пользователь вместо желаемого сайта мог попасть куда угодно. Далее рассмотрим методы определения уязвимостей, возникающие при работе DNS.

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

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

Также утилита dig может использоваться для определения версии серверов DNS.

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

Проанализируйте следующий пример использования утилиты dig: elliptic@ellipse:~$ dig @pi.cipherpunks.com TXT CHAOS version.bind ; «» DiG 8.2 «» @pi.cipherpunks.com TXT CHAOS version.bind ; (1 server found)

;; res options: init recurs defnam dnsrch ;; got answer:
;; -»HEADER«- opcode: QUERY, status: NOERROR, id: 6 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0,
ADDITIONAL: 0 ;; QUERY SECTION:
;; version.bind, type = TXT, class = CHAOS ;; ANSWER SECTION:
VERSION.BIND. OS CHAOS TXT “8.2.1”
;; Total query time: 172 msec
;; FROM: ellipse to SERVER: pi.cipherpunks.com 192.168.1.252 ;; WHEN: Mon Dec 10 07:53:27 2001 ;; MSG SIZE sent: 30 rcvd: 60

Из отчета можно определить версию BIND, установленную на pi в домене cipherpunks.com. А также то, что на pi запущена версия BIND, уязвимая для многих атак, одна из которых - переполнение NXT-буфера, известная с 1999 года и позволяющая злоумышленнику получить удаленный доступ к системе с правами программы BIND (обычно выполняющейся с правами привилегированного пользователя root). Сервисы преобразования имен зачастую могут сообщать больше информации, чем ожидается. Утилиты типа dig могут выполнять и иные DNS-сервисы, например передачу зоны. DNS использует передачу зоны для распределения записей преобразования имен между остальными хостами. Инициировав вручную передачу зоны, злоумышленник может получить ценную информацию о системах и преобразовании адресов серверами DNS.

nslookup nslookup (Name Service Lookup - служба поиска имен) - полезная утилита, которая свободно распространяется консорциумом программного обеспечения Интернет.

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

Например, nslookup может использоваться для поиска почтовых доменов или записей типа MX (Mail Exchanger). В результате станут возможными различные атаки на почтовый сервер: посылка спама для достижения отказа в обслуживании, атаки на программное обеспечение с целью получения доступа к серверу или использование почтового сервера для рассылки спама другим хостам, если это разрешено. Посмотрите на следующий пример: elliptic@ellipse:~$ nslookup Default Server: cobalt.speakeasy.org Address: 216.231.41.22

> set type=MX
> cipherpunks.com.
Server: cobalt.speakeasy.org Address: 216.231.41.22
cipherpunks.com preference =10, mail exchanger = parabola. cipherpunks.com
cipherpunks.com nameserver = DNSl.ENOM.COM cipherpunks.com nameserver = DNS2.ENOM.COM cipherpunks.com nameserver = DNS3.ENOM.COM cipherpunks.com nameserver = DNS4.ENOM.COM cipherpunks.com nameserver = DNS5.ENOM.COM DNSl.ENOM.COM internet address = 66.150.5.62 DNS2.ENOM.COM internet address = 63.251.83.36 DNS3.ENOM.COM internet address = 66.150.5.63 DNS4.ENOM.COM internet address = 208.254.129.2 DNS5.ENOM.COM internet address = 210.146.53.77

Анализируя приведенный пример, можно найти обработчик почты для домена cipherpunks.com. Хост parabola.cipherpunks.com может быть использован для сбора информации. Например, если в системе используется версия программы sendmail, которая позволит злоумышленнику расширить учетные записи пользователя, то он сможет найти адреса электронной почты системного администратора. Из этого можно будет узнать тип транспортного агента, установленного в системе, как это показано в следующем примере: elliptic@ellipse:~$ telnet modulus.cipherpunks.com 25 Trying 192.168.1.253...

Connected to 192.168.1.253.

Escape character is “A]”.

220 modulus.cipherpunks.com ESMTP Server (Microsoft Exchange Internet
Mail Service 5.5.2448.0) ready

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

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

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

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

elliptic@ellipse:~$ nmap -sS -О derivative.cipherpunks.com Starting nmap V. 2.54BETA22 (www.insecure.org/nmap/)

Interesting ports on derivative.cipherpunks.com (192.168.1.237):
(The 1533 ports scanned but not shown below are in state: closed)
Port State Service 21/tcp open ftp 22/tcp open ssh 23/tcp filtered telnet 25/tcp open smtp 37/tcp open time 53/tcp open domain
80/tcp open http 110/tcp open pop-3 143/tcp open imap2
Remote operating system guess: Solaris 2.6 - 2.7 Uptime 11.096 days (since Thu Nov 29 08:03:12 2001)
Nmap run completed - 1 IP address (1 host up) scanned in 60 seconds

Давайте одновременно проанализируем эту небольшую часть отчета о сканировании. Во-первых, Nmap был запущен с флагами sS и О. Эти флаги указывают Nmap на необходимость сканирования символов синхронизации SYN на хосте и идентификации операционной системы на основе полученных IP-ответов. Во-вторых, в отчете видны три колонки данных. В крайней слева колонке расположен номер порта и протокол, используемый прослушиваемым сервисом. В средней - состояние порта: подвергнулся ли порт фильтрации, как у порта службы telnet, являющейся оболочкой TCP-трафика, или открыт для общедоступного использования, как остальные. Индексация Web Индексация Web (или, как ее еще обычно называют, спайдеринг (spidering) - движение паука по паутине)

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

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

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

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

elliptic@ellipse:~$ wget -m -х http://www.mrhal.com -11:27:35- http://www.mrhal.com:80/ => “www.mrhal.com/index.html”

Connecting to www.mrhal.com:80... connected!

HTTP request sent, awaiting response... 200 OK Length: 1,246 [text/html]
OK -> . [100%]

11:27:35 (243.36 KB/s) - “www.mrhal.com/index.html” saved [1246/1246]

Loading robots.txt; please ignore errors.

-11:27:35- http://www.mrhal.com:80/robots.txt => “www.mrhal.com/robots.txt”

Connecting to www.mrhal.com:80... connected!

HTTP request sent, awaiting response... 404 Not Found 11:27:35 ERROR 404: Not Found.

-11:27:35- http ://www. mrhal. com: 80/pics/hal .j pg => “www.mrhal.com/pics/hal.jpg”

Connecting to www.mrhal.com:80... connected!

HTTP request sent, awaiting response... 200 OK Length: 16,014 [image/jpeg]
OK ->...............[100%]

11:27:35 (1.91 MB/s) - “www.mrhal.com/pics/hal.jpg” saved [16014/16014]

[...]
FINISHED-11:27:42-Downloaded: 1,025,502 bytes in 44 files

В примере вывод команды wget завершен символами [... ] из-за большого количества файлов (44 файла), загружаемых с Web-сайта www.mrhal.com, которые были бы напечатаны в конце отчета. Команда wget была запущена с переключателями тих. Переключатель m (переключатель зеркального сохранения информации) включает режим загрузки копии всех файлов сайта www.mrhal.com в соответствии с их ссылками. Переключатель х используется для сохранения структуры директорий сайта при его загрузке на компьютер пользователя. Подобный инструментарий позволяет злоумышленнику проиндексировать сайт и создать его зеркальную копию. Впоследствии злоумышленник может воспользоваться стандартными системными утилитами для быстрого анализа скопированных данных. Например, программа grep позволяет быстро найти представляющие для него интерес строки. В первую очередь это относится к строкам «password», «root» и «passwd».

Резюме

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

Об атаках, приводящих к отказу в обслуживании (DOS-атаках), говорят в том случае, когда в результате действий злоумышленника ресурс преднамеренно заблокирован или деградирован. Локальные DOS-атаки нацелены на достижение локального отказа в обслуживании и приводят к деградации процесса, исчерпанию дисковой памяти или истощению индексных узлов. DOS-атаки из сети могут начинаться как с сервера, так и с клиентской части (как в одном из вариантов DOS-атаки из сети на Web-браузеры - бомбы JavaScript). DOS-атаки из сети на сервисы используют многочисленные подключения для предотвращения использования сервисов. DOS-атаки на систему похожи на локальные DOS-атаки и основаны на создании потока символов синхронизации SYN для переполнения очереди или использовании атак типа smurf для достижения отказа в обслуживании в результате перенасыщения сетевого трафика. Распределенные DOS-атаки (DDoS-атаки) относятся к классу сетевых атак, нацеленных на систему в целом. Распределенные программы перенасыщения трафика, как, например, tfn и shaft, могут быть использованы для достижения отказа в обслуживании.

Утечка информации - результат злоупотребления ресурсами. Обычно нападению на систему предшествует утечка информации. В главе рассмотрены пути утечки информации через баннеры оболочки безопасности SSH. Была показана принципиальная возможность «снятия отпечатков пальцев» у ряда служб, например у служб, обеспечивающих работу по протоколам HTTP или FTP. Протокол SNMP - пример протокола, в котором недопустимо мало внимания уделено вопросам безопасности, и поэтому сравнительно легко получить доступ к важной информации в системах, построенных на его основе. Web-сервер легко предоставляет сведения, интересующие злоумышленников, если на него совершено нападение атакой типа точка-точка - слэш (../). Уже упоминалось об инциденте, когда один Интернет-провайдер воспользовался файлами паролей другого провайдера, для того чтобы переманить к себе его клиентов. Тем самым были рассеяны любые мифы о допустимости утечки информации в хорошо сделанной системе, даже если она может маскировать или скрывать свои «отпечатки пальцев».

При помощи изменения прав доступа к файлу злоумышленник может получить доступ к важной информации, например к именам пользователей и их паролям. Поэтому непонятно, почему зачастую специалисты в области безопасности пренебрегают такой мерой предосторожности, как изменение разрешений доступа к файлу или владельцев файлов, в которых записаны эти разрешения. При рассмотрении подобных вопросов важно различать однопользовательские системы, в которых не предусмотрено управление доступом к файлу, и многопользовательские системы с одним или несколькими уровнями доступа, примерами которых служат списки контроля ACL системы Solaris и ролевой механизм управления доступом (Role-Based Access Control-RBAC). В главе также обсуждались атаки символических связей для перезаписи файлов других пользователей.

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

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

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

О расширении прав говорят в случае, когда неавторизованный пользователь получил доступ к ресурсу, хотя ранее он им не обладал. Были рассмотрены варианты удаленного получения доступа на правах как привилегированного, так и непривилегированного пользователя. В первом случае при помощи демонов HTTP на UNIX-системах, во втором -при помощи таких служб, как демоны SSH. В главе также обсуждались вопросы применения Троянских коней и методов социотехники для получения привилегированного пользовательского доступа к хосту. Отмечалось сходство методов удаленного и локального расширения прав.

Тестирование уязвимостей - необходимая и обязательная обязанность всякого, кто занимается администрированием систем или обеспечением их безопасности. Доказательство возможности нападения (proof of concept) - один из методов тестирования, который используется для доказательства существования уязвимостей. Другие методы заключаются в применении демонстрирующих проблему программ, автоматизированного инструментария безопасности и контроля версий (versioning) для обнаружения уязвимых версий программного обеспечения.

Опытный злоумышленник применяет различные методы подготовки атак. Базы данных Whois могут использоваться для сбора разносторонней информации о системе, доменах и сетях. Такие средства DNS, как утилита dig, могут использоваться для сбора информации о хостах и используемом ими программном обеспечении, a nslookup - для идентификации почтовых серверов доменов. В главе кратко освещены вопросы сканирования сети при помощи Nmap. Сканирование сети позволяет выудить сведения о сервисах операционных систем хостов. Наконец, обсуждался спайдеринг для сбора сведений о сайте: его расположении и наличии на нем потенциально важной информации.

Конспект

Обзор классов атак

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

• Отказ в обслуживании хоста может быть достигнут в результате локальной или DOS-атаки из сети.

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

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

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

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

• Большинство уязвимостей, используемых для удаленного выполнения программ, могут быть в значительной мере обезврежены при помощи ограничения прав доступа, замены корневой директории (change rooting) и недопущения помещения в стек программ (non-executable stack protection).

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

Методы тестирования уязвимостей

• Тестирование уязвимостей - необходимая часть обеспечения безопасности систем.

• Доказательство возможности нападения (proof of concept) - лучший метод определения любой уязвимости, поскольку он помогает определить суть уязвимости, место ее нахождения и способ защиты.

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

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

• Контроль версий позволяет перегруженному работой отделу безопасности оценить опасность со стороны известных уязвимостей и их влияние на работоспособность развернутых систем.

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

• Информация DNS раскрывает структуру сети.

• Индексация Web (спайдеринг - spidering) позволяет получать сведения о структуре директорий и важных файлах.

Часто задаваемые вопросы

Вопрос: Может ли атака относиться к нескольким классам атак?

Ответ: Да. Некоторые атаки могут быть отнесены к нескольким классам. Например, отказ в обслуживании, вызванный аварийным завершением сервиса в результате неверного ввода информации пользователем.

Вопрос: Где можно дополнительно прочитать о предупреждении DDoS-атак? Ответ: Дейв Диттрич (Dave Dittrich) - автор ряда статей на эту тему. Статьи можно найти по адресу www.washington.edu/People/dad.

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

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

Вопрос: Где можно достать программы, демонстрирующие уязвимости? Ответ: Их можно найти при помощи подробных адресных списков типа Bugtraq (www.securityfocus.com) или в архивах подобных программ PacketStorm (www.packetstormsecurity.org) либо Church of the Swimming Elephant (www.cotse.com).

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

Вопрос: Может ли быть получена дополнительная информация при помощи утилиты DNS dig? Ответ: Да. Ошибочно сконфигурированные сервера доменных имен могут разрешать передачу зоны в адрес произвольного хоста, создавая предпосылки раскрытия информации о структуре сети.

Доступ к специальным файлам / базам данных | Защита от хакеров корпоративных сетей | Методология


Защита от хакеров корпоративных сетей



Новости за месяц

  • Октябрь
    2019
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс