Как обычно обнаруживаются уязвимости безопасности на стороне клиента? - PullRequest
3 голосов
/ 14 июня 2010

Я имею ввиду в операционных системах или их приложениях. Единственный способ, которым я могу придумать, это проверить двоичные файлы на использование опасных функций, таких как strcpy (), а затем попытаться их использовать. Хотя с улучшениями компилятора, такими как переключатель Visual Studio / GS, эта возможность в основном осталась в прошлом. Или я ошибаюсь?

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

Может ли кто-нибудь порекомендовать хорошие книги или веб-сайты на эту тему?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 14 июня 2010

С "Client Side Security" связаны две основные проблемы.

Самым распространенным клиентом, используемым сегодня, является браузер в форме " Drive By Downloads ".Чаще всего виноваты уязвимости повреждения памяти.Объекты ActiveX com часто используются в системах Windows, и AxMan является хорошим фаззером ActiveX.

С точки зрения систем защиты памяти / GS - это канарейка, и это не так.все конец все для остановки переполнения буфера.Он предназначен только для защиты переполнений на основе стека, которые пытаются перезаписать адрес возврата и управлять EIP.Зоны и канарейки NX - это хорошо, но ASLR может быть намного лучше в предотвращении эксплойтов, связанных с повреждением памяти, и не все реализации ASLR одинаково безопасны.Даже со всеми этими тремя системами вы все равно будете взломаны.IE 8, работающий в Windows 7, имел все это, и он был одним из первых, кто был взломан на pwn2own, и вот как они это сделали .Она включала в себя объединение уязвимости переполнения кучи и Dangling Pointer.

Проблема с «безопасностью на стороне клиента» заключается в CWE-602: обеспечение защиты на стороне клиента создается на стороне клиента, когдасерверная сторона доверяет клиенту секретные ресурсы (например, пароли) или отправляет отчет о конфиденциальной информации, такой как Счет игроков , во флэш-игре.

Лучший способ выяснить проблемы на стороне клиента - это посмотреть на трафик.WireShark лучше всего подходит для не браузерных клиент-серверных протоколов.Однако TamperData - безусловно, лучший инструмент, который вы можете использовать для платформ на основе браузера, таких как Flash и JavaScript.Каждый случай будет отличаться, в отличие от переполнения буфера, когда легко увидеть сбой процесса, проблемы доверия на стороне клиента связаны с контекстом, и требуется квалифицированный специалист, чтобы посмотреть на сетевой трафик, чтобы выяснить проблему.

Иногда глупые программисты жестко вводят пароль в свое приложение.Это тривиально декомпилировать приложение для получения данных.Flash-декомпиляция очень чистая, и вы даже получите полные имена переменных и комментарии к коду.Другой вариант - использовать отладчик, такой как OllyDBG, чтобы попытаться найти данные в памяти.IDA-Pro - лучший декомпилятор для приложений C / C ++.

0 голосов
/ 14 июня 2010

Написание безопасного кода, 2-е издание , включает немного информации о моделировании и тестировании угроз и многое другое.

...