- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 19 века
- Недвижимость
- Музыка, музыканты
- Готические новеллы
- Истории из жизни
- Культура и искусство
- Спецслужбы
- Зарубежная прикладная литература
- Музыка, танцы
- Подростковая литература
- Прочее
- Военная техника, оружие
- Газеты и журналы
- Периодические издания
- Домоводство, Дом и семья
- Любовные романы
- Экономическая литература
- Научные и научно-популярные книги
- О животных
- Биохимия
- Культурология
- Юриспруденция
- Политика
- Психотерапия
- Языкознание
- Научпоп
- Медицина
- Психология, личное
- Радиотехника
- Филология
- Педагогика
- Образовательная литература
- Деловая литература
- Физика
- Науки: разное
- Химия
- Воспитание детей, педагогика
- Детская психология
- Зарубежная публицистика
- Биология
- Архитектура
- Зарубежная психология
- Науки о космосе
- Социология
- Математика
- География
- Беременность, ожидание детей
- Литературоведение
- Транспорт, военная техника
- Обществознание
- Зоология
- География
- Альтернативная медицина
- Иностранные языки
- Ветеринария
- Рефераты
- Астрология
- Биофизика
- Экология
- История Европы
- Учебники
- Шпаргалки
- Государство и право
- Ботаника
- Религиоведение
- История
- Техническая литература
- Прочая научная литература
- Психология
- Детективы и Триллеры
- Справочная литература
- Проза
- Новелла
- Юмор
- Проза
- Историческая проза
- Русская современная проза
- Советская классическая проза
- Повести
- Очерки
- Эссе
- Рассказы
- Зарубежная современная проза
- Сентиментальная проза
- Зарубежная классика
- Афоризмы
- Эпистолярная проза
- Феерия
- Семейный роман/Семейная сага
- Разное
- Антисоветская литература
- Магический реализм
- Русская классическая проза
- Современная проза
- О войне
- Контркультура
- Классическая проза
- Поэзия, Драматургия
- Детская литература
- Детская фантастика
- Детские остросюжетные
- Детские стихи
- Детские приключения
- Внеклассное чтение
- Учебная литература
- Зарубежные детские книги
- Бизнес
- Загадки
- Книги для подростков
- Школьные учебники
- Детский фольклор
- Книги для дошкольников
- Детские детективы
- Детская познавательная и развивающая литература
- Буквари
- Прочая детская литература
- Сказка
- Детская проза
- Детская образовательная литература
- Юмор
- Документальные книги
- Бизнес
- Внешнеэкономическая деятельность
- Тайм-менеджмент
- Кадровый менеджмент
- О бизнесе популярно
- Управление, подбор персонала
- Бизнес
- Менеджмент и кадры
- Продажи
- Экономика
- Ценные бумаги и инвестиции
- Малый бизнес
- Делопроизводство, офис
- Корпоративная культура, бизнес
- Банковское дело
- Финансы
- Зарубежная деловая литература
- Ораторское искусство / риторика
- Личные финансы
- Интернет-бизнес
- Поиск работы
- Государственное и муниципальное управление
- Бухучет и аудит
- Работа с клиентами
- Менеджмент
- Краткое содержание
- Личная эффективность
- Переговоры
- Приключения
- Старинная литература
- Религия и духовность
- Компьютеры и Интернет
- Блог
Читаем без скачивания Защита от хакеров корпоративных сетей - Коллектив авторов
Шрифт:
Интервал:
Закладка:
Вопрос: Почему оказалось легко взломать CSS, технологию шифрования, используемую для защиты DVD-дисков от неавторизованного корирования? Ответ: Защита от копирования DVD-дисков была легко взломана в основном из-за того, что Xing Technologies хранило свой ключ в открытом виде. Ранее уже говорилось о недопустимости этого. Данные, записываемые на DVD-Video-диск, шифровались алгоритмом CSS (Content Scrambling System – система скремблирования содержания) с использованием 40-битного ключа. Зная 40-битный ключ Xing Technologies, одни хакеры смогли атакой «грубой силы» быстро взломать ключи еще на 170 лицензий. Таким способом джинн был выпущен из бутылки, если можно так выразиться, потому что шифр внутреннего формата многих производителей оказался раскрытым. Располагая таким большим количеством ключей, другие хакеры смогли написать программу DeCSS, которая позволяла копировать с DVD-диска зашифрованные данные на другой носитель в расшифрованном виде. В конечном счете схема CSS была обречена на провал. Нельзя полагать, что никто не сможет прочитать ключ, если он размещен в миллионах DVD-проигрывателей.
Глава 7 Непредвиденные входные данные
В этой главе обсуждаются следующие темы:
• Опасность непредвиденных входных данных
• Поиск обусловненных непредвиденными входными данными уязвимостей
• Методы поиска и устранения уязвимостей, обусловленных непредвиденными входными данными
• Использование средств безопасности языков программирования для обработки непредвиденных данных
• Инструментарий обработки непредвиденных данных
· Резюме
· Конспект
· Часто задаваемые вопросы
Введение
Интернет состоит из приложений, каждое из которых является операционной системой или программой ввода, обработки и передачи информации. Каждый день появляются новые приложения. Полезное пользователю приложение должно взаимодействовать с ним, реагируя на введенные пользователем данные. Работа всех приложений, будь это клиент интерактивной переписки в сети, Web-сайт электронной коммерции, системная утилита с интерфейсом командной строки или компьютерная игра, выполняющаяся в оперативном режиме, зависит от входных данных приложения. Программа расчета бесполезна, если она не воспринимает входные данные. Не принимающая заказы система электронной коммерции противоречит своему назначению.
Все Интернет-приложения должны быть доступны удаленным пользователям сети. Недостатки в программировании приложения из-за отсутствия опыта, ошибок или какой-либо неучтенной аномалии могут сделать его небезопасным. Сложные приложения часто разрабатываются поэтапно, небольшими модулями. При объединении модулей в единый проект возможные несогласованности в алгоритмах их работы влияют на уязвимость приложения в целом.
...Служба компьютерной безопасности предупреждает!
Противостояние между разработчиками прикладных программ и администраторами сети всегда было, есть и будет. Очень трудно заставить разработчиков, не отвечающих за вопросы безопасности, внести изменения в их программы без документально оформленной политики безопасности, имеющей статус первоочередного требования. Большинство разработчиков не осознают, что их программы – такая же составная часть системы безопасности компании, как и средства межсетевой защиты.
Уязвимость приложения сильно увеличивается, если в нем не предусмотрена защита от неверных входных данных. Список уязвимостей можно найти в описании любого сканера CGI (cgichk, whisker и т. д.). (CGI (Common Gateway Interface) – общий шлюзовой интерфейс. Разработанный NCSA сетевой стандарт, предназначенный для создания серверных приложений HTTP.) Большинство известных сканеров CGI уязвимы к атакам, основанным на вводе входных данных в непредусмотренном формате.
Опасность непредвиденных входных данных
Для взаимодействия с пользователем приложение должно обрабатывать входные данные. Входные данные могут быть представлены в простой форме, например щелчком мышки в заданной позиции монитора, или одним введенным символом, или в форме сложно отформатированного потока данных большого размера. В любом случае пользователь, осознанно или нет, может ввести данные в непредвиденном для приложения формате. Иногда это никак не скажется на работе приложения, а иногда может изменить результаты его работы. Например, может привести к предоставлению пользователю информации, к которой он не был бы допущен в обычной ситуации, или повлиять на работу других приложений.
Три класса атак основаны на непредвиденных входных данных.
1. Переполнение буфера. Когда злоумышленник вводит больше данных, чем предусмотрено разработчиком, то приложение может неправильно обработать избыточные данные. Языки С и С++ являются примером языков программирования, написанные на которых программы никак не отреагируют на избыточные данные, если программист не предусмотрел их обработку. Языки программирования Perl и PHP автоматически справляются с избыточностью данных, увеличивая размер области для хранения переменных. (Дополнительные сведения по переполнению буфера приведены в главе 8.)
2. Вызов системных функций. Введенные в приложение данные могут использоваться для вызова системных функций взаимодействия с ресурсом, который явным образом в приложении не описан, или изменить логику их работы. Системные функции позволяют запустить другое приложение, получить доступ к файлу и т. п.
3. Изменение логики работы приложения. Иногда входные данные представляются в формате, способно изменить логику работы приложения. Например, в результате представления данных в особом формате может быть нарушена работа алгоритмов аутентификации, изменены запросы языка структурированных запросов SQL (Structured Query Language – международный стандартный язык для определения реляционных баз данных и доступа к ним), а также получен доступ туда, куда обычно злоумышленник получить доступ не может.
Следует отметить, что четкой границы между этими классами атак нет. Поэтому некоторые атаки могут одновременно принадлежать нескольким классам одновременно.
На практике встречается большое количество случаев вариантов представления входных данных, обработка которых в программе разработчиком не предусмотрена. Основанная на непредвиденных входных данных атака может быть очень простой. Например, она может заключаться во вводе в программу неприметного значения, изменяющего логику ее выполнения, например ввод имени дополнительного входного файла. Для организации подобной атаки особых знаний не требуется.
Известны более изощренные атаки, которые основаны на включении во входные данные специальных метасимволов, имеющих особый смысл для приложения или операционной системы. В ядре базы данных Microsoft Jet была выявлена уязвимость: включение в SQL-запрос вертикальных линий (I) позволяло злоумышленнику выполнить в коде VBA (Visual BasicforApplications) системные команды. Этот же механизм лежит в основе популярной службы удаленных данных RDS (Remote Data Services), которая, как доказано практикой, является широко распространенной проблемой информационного сервера Интернет IIS (Internet Information Server) Windows NT.
Поиск обусловленных непредвиденными входными данными уязвимостей
Обычно приложения обрабатывают данные все время – как никак, именно для этого компьютеры и предназначены. Когда же непредвиденные входные данные приводят к уязвимости? Вообще, это может произойти в любой момент при взаимодействии приложения с пользователем или другим (непроверенным) приложением. Но известны наиболее общие ситуации, которые рассмотрим подробнее.
Локальные приложения и утилиты
Под управлением операционной системы на компьютере выполняются различные приложения, по мере необходимости запущенные пользователем или самой системой. Многие из этих приложений взаимодействуют с пользователем, предоставляя злоумышленнику шанс ввести в программу непредусмотренные разработчиком данные. Например, злоумышленник может нажать необычную последовательность клавиш, введя тем самым большой массив данных или определив неверные величины.
Обычно такие шалости не доставляют больших хлопот. Если пользователь сделал что-то не так, то приложение аварийно завершается, и всё. Но в мире систем UNIX, включая очень похожую на UNIX BSD операционную систему Macintosh OS X, у некоторых из приложений установлены специальные разрешения suid (set user ID – установленный идентификатор пользователя) и sgid (set group ID – установленный идентификатор группы), позволяющие им выполняться с повышенными привилегиями относительно привилегий обычного пользователя. Если манипуляции с обычным приложением не принесут злоумышленнику выгоды, то взятие под свой контроль приложения с установленными suid или sgid может предоставить злоумышленнику привилегии администратора. Далее будут рассмотрены некоторые типичные способы похищения прав приложений.