Есть ли способ обойти SSP (StackSmashing Protection) / Propolice? - PullRequest
6 голосов
/ 13 мая 2009

После некоторых исследований я не нашел ни одного документа, описывающего метод, чтобы сделать это (даже ненадежный). Похоже, что SSP (StackSmashing Protection) / Propolice

Ответы [ 3 ]

3 голосов
/ 19 января 2010

Canary's - очень хорошая мера безопасности для защиты от некоторых переполнений буфера. За эти годы различные реализации Canary были сломаны, а затем стали более безопасными. Важно то, что даже несмотря на расширенную защиту памяти, переполнения буфера все еще используются в Vista, Windows 7 и Fedora 11 ...

Одна очень важная вещь, которую стоит упомянуть, - это то, что Canary защищает только фрейм вызова функции (который включает в себя мощный EIP!). Переполнение буфера может произойти в другом сегменте памяти, таком как куча, и канарейка не будет иметь никакого влияния. Более того, приложение может быть взломано с использованием переполнения буфера без необходимости перезаписывать EIP. Управление EIP - это очень простой и простой способ превратить переполнение буфера в убийственный эксплойт, и поэтому он является наиболее распространенным методом эксплуатации.

Эти методы эксплуатации, как и другие, подробно описаны в Эксплуатация программного обеспечения: как взломать код .

1 голос
/ 13 мая 2009

Я больше знаком с защитой стека GS от Microsoft, но два подхода кажутся похожими .

В следующем сообщении от Microsoft показан один пример, в котором злоумышленник все еще может получить контроль даже при использовании стековых файлов cookie (первый пример должен быть применим к системам, отличным от Windows):


В этом блоге рассказывается о некоторых улучшениях защиты стека:

0 голосов
/ 31 июля 2009

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

...