· Вы можете обмениваться общими секретными ключами (shared private keys) или использовать протокол безопасных соединений SSL при работе с браузером.
· Обмен ключами уязвим к атаке типа MITM (злоумышленник посередине (MITM).
Закон 3. От кода злоумышленника нельзя защититься на 100 %
· Программное обеспечение несовершенно.
· Программное обеспечение обнаружения вирусов и Троянских коней основано на исследовании сигнатуры файлов.
· Незначительные изменения в коде сигнатуры приводят к необнаружению измененного кода до момента выпуска следующего файла сигнатуры.
Закон 4. Всегда может быть создана новая сигнатура кода, которая не будет восприниматься как угроза
· Злоумышленники могут быстро изменить характерные признаки или сигнатуру файла.
· Злоумышленники могут использовать сжатие, шифрование и пароли для изменения сигнатуры кода.
· Нельзя защититься от каждой возможной модификации.
Закон 5. Межсетевые экраны не защищают на 100 % от атаки злоумышленника
· Межсетевые экраны – это программные или аппаратные, или программно-аппаратные средства ЭВМ.
· Главная функция межсетевых экранов состоит в фильтрации входных и выходных пакетов.
· Успешные атаки возможны в результате ошибочных правил, несовершенной политики безопасности и проблем с обслуживанием межсетевых экранов.
Закон 6. От любой системы обнаружения атак можно уклониться
· Системы обнаружения вторжения – часто пассивные системы.
· Для злоумышленника трудно обнаружить присутствие системы обнаружения вторжения.
· Эффективность системы обнаружения вторжения снижается в результате неверной конфигурации и недостатков обслуживания.
Закон 7. Тайна криптографических алгоритмов не гарантируется
· Хорошие криптографические алгоритмы обеспечивают высокую степень защиты.
· Большинство криптографических средств не подвергаются достаточному исследованию и тестированию до начала использования.
· Единые алгоритмы используются в различных областях. Взломать их трудно, хотя и возможно.
Закон 8. Без ключа у вас не шифрование, а кодирование
· Этот закон универсален, не существует никаких исключений.
· Шифрование используется, чтобы защитить результат кодирования. Если ключ не используется, то нельзя ничего зашифровать.
· Ключи должны храниться в тайне, иначе ни о какой безопасности не может быть и речи.
Закон 9. Пароли не могут надежно храниться у клиента, если только они не зашифрованы другим паролем
· Пароли, сохраненные на компьютере клиента, легко обнаружить.
· Если пароль хранится в открытом виде (незашифрованным), то это небезопасно.
· Безопасное хранение паролей на компьютере клиента предполагает вторичный механизм обеспечения безопасности.
Закон 10. Для того чтобы система начала претендовать на статус защищенной, она должна проити независимый аудит безопасности
· Аудит – начало хорошего анализа систем безопасности.
· Системы безопасности часто не анализируются должным образом, что ведет к их дефектам.
· Внешняя проверка имеет решающее значение для защиты; ее отсутствие – дополнительное условие для атаки злоумышленником.
Закон 11. Безопасность нельзя обеспечить покровом тайны
· Скрыть что-либо – не значит обеспечить безопасность этого.
· Необходима упреждающая защита.
· Использование только скрытия информации способствует компрометации.
Вопрос: Сколько усилий я должен приложить для применения рассмотренных законов безопасности к интересующей меня специфической системе?
Ответ: Если вы исследуете систему для определения степени ее безопасности, то вполне можете использовать законы непосредственно, предварительно оценив время, которое вы можете потратить на исследование. Если анализируемая система общедоступна, то в Интернете вы наверняка найдете примеры использования вашей системы. Вероятно, вам придется потратить достаточно времени на проверку законов безопасности. Если законы безопасности будут применяться для анализа уникальных систем, то время исследования может увеличиться.
Вопрос: В какой степени я буду защищен после самостоятельного исследования системы? Ответ: Частично это зависит от приложенных вами усилий. Если вы потратили разумное количество времени, то, вероятно, вы выявили очевидные изъяны в системе защите. Это уже гарантия вашей защищенности, поскольку начинающие хакеры именно их и будут искать. Даже если вы стали целью талантливого злоумышленника, он все равно может начать с них, и первые неудачи могут отпугнуть его. Поскольку вы, вероятно, найдете еще что-то за время своего исследования и обнародуете свои результаты, то каждый будет знать о найденных изъянах в системе защиты. Имейте в виду, что вы защищены против того, о чем вы знаете, но не против того, чего не знаете. Поэтому лучше поднять тревогу по поводу обнаруженных изъянов. Тем более что их устранение может оказаться непосильной задачей для систем с недоступными исходными текстами программ.
Вопрос: Когда я нахожу брешь в системе защиты, что я должен сделать? Ответ: Ваши действия подробно описаны в главе 18. У вас есть выбор: или обнародовать все сведения о найденной бреши, привлекая максимально возможное внимание производителя системы, или самому написать код по ее устранению, если это возможно.
Вопрос: Как я смогу пройти путь от констатации проблемы до ее решения? Ответ: Многие из глав этой книги посвящены описанию «дыр» в системе защиты. Некоторые «дыры» очевидны, например кодирование пароля в приложении. Другие могут потребовать применения дизассемблирования и методов криптографического анализа. Даже если вы очень хороший специалист, всегда найдутся методы, алгоритмы или аппаратура вне вашей компетенции. Поэтому вам предстоит решить, хотите ли вы развить свои профессиональные навыки дальше или обратиться за помощью к эксперту.
В этой главе обсуждаются следующие темы:
• Обзор классов атак
• Методы тестирования уязвимостей
· Резюме
· Конспект
· Часто задаваемые вопросы
Об опасности атаки судят по ущербу, который может быть нанесен скомпрометированной системе в результате нападения. Для домашнего пользователя худшее, что может произойти, – это стать жертвой атаки, приводящей к запуску программы злоумышленника на его компьютере. В то же время для компаний электронной коммерции опаснее атака, приводящая к отказу в обслуживании (DoS-атака, DoS – denial of service) или утечке информации, потому что она чревата более тяжкими последствиями. Любая уязвимость системы, которая может привести к компрометации, оценивается применительно к одному из известных классов атак. Зная сильные и слабые стороны класса атаки, можно предварительно оценить как его опасность, так и сложность защиты от него.
В этой главе рассматриваются классы атак, извлекаемая злоумышленником выгода из их осуществления и возможный ущерб, наносимый ими.
Каждая атака принадлежит к определенному классу атак. Последствия атаки могут быть самыми различными: атакованная система может быть выведена из строя или удаленный злоумышленник сможет полностью контролировать ее. О последствиях атак речь пойдет в специальном разделе этой главы. Сначала рассмотрим классификацию атак, в основу которой положен наносимый ими ущерб.
Можно выделить семь классов атак, последствия которых отражают общие критерии оценки проблем безопасности:
• отказ в обслуживании (Denial of service);
• утечка информации;
• нарушения прав доступа к файлу;
• дезинформация;
• доступ к специальным файлам / базам данных;
• удаленное выполнение программ (Remote arbitrary code execution);
• расширение прав (Elevation of privileges).
Отказ в обслуживании
Что собой представляет атака, приводящая к отказу в обслуживании (DoS-атака)? О DoS-атаке говорят в том случае, когда в результате действий злоумышленника ресурс заблокирован или его функциональные возможности существенно ограничены. Другими словами, атака препятствует доступности ресурса его постоянным авторизованным пользователям. Атаки этого класса могут осуществляться как локально на автономной системе, так и удаленно через сеть. Они направлены на ограничение функциональных возможностей процессов, уменьшение объема запоминаемой информации, разрушение файлов. Подобные атаки преследуют цель сделать ресурс непригодным для работы или добиться завершения работы системы или процессов. Рассмотрим DoS-атаки подробнее.
Локальная DoS-атака
Локальная DoS-атака встречается часто, и ее во многих случаях можно предотвратить. Несмотря на большой ущерб от атак этого класса, все же предпочтительнее иметь дело именно с ними. При грамотно реализованной системе безопасности этот класс атак легко отследить, а злоумышленника – идентифицировать.