Comments 21
В случае своей активности, CET будет реагировать на следующие инструкции микропроцессора, которые изменяют поток выполнения кода: CALL, INT n/INTO/INT3, JMP, RET, SYSCALL, SYSENTER, SYSEXIT, SYSRET, IRET/IRETD.
А при чём тут JMP? Он же не изменяет стек.
0
В статье только половина информации, нет ничего про Endbranch. Лучше почитать оригинальный документ.
Вот ещё интересное мнение.
Вот ещё интересное мнение.
+2
Через всего каких-то 20 лет после того, как я сказал «если мы хотим безопасности, стек данных и стек адресов возврата должны стать двумя отдельными стеками», до ведущих производителей наконец-то дошло…
0
Они видимо ждали, пока их поисковики не проиндексируют Вашу мысль. Мои поисковики её до сих пор не проиндексировали.
+1
>> до ведущих производителей наконец-то дошло
Merced был анонсирован в 1997
https://blogs.msdn.microsoft.com/oldnewthing/20050421-28/?p=35833
Last year I alluded to the fact that the Itanium processor has two stacks.
…
As already noted, one consequence of this dual-stack model is that a stack buffer overflow will not corrupt the return address, because the return address is not kept on «the stack»;
Merced был анонсирован в 1997
https://blogs.msdn.microsoft.com/oldnewthing/20050421-28/?p=35833
Last year I alluded to the fact that the Itanium processor has two stacks.
…
As already noted, one consequence of this dual-stack model is that a stack buffer overflow will not corrupt the return address, because the return address is not kept on «the stack»;
0
ну так, это вообще то накладные расходы, это раз. обратная совместимость это два.
0
В Форт (Forth) языке и процессорах (MISC архитектура) этому принципу уже много больше 40лет…
0
Рис. Элементы таблиц страниц Extended Page Table (EPT), в которых страница теневого стека помечена 59-м битом SSS. Используется для идентификации страниц теневого стека на уровне таблиц страниц.
Мне кажется, или на рисунке таки выделен 60-й бит?
0
А как будут обстоять дела с программами, в которых ROP зашит в логику? Я понимаю, что это крайне редкое явление, но такое вполне может использоваться в ручных оптимизациях «горячих» участков кода.
0
Я думаю, как и DEP. В заголовке исполняемого файла Windows (Portable Executable) есть флаг — включить DEP. У старых бинарников он выключен, а новые бинарники будут компилироваться со включенным флагом. При желании, разработчик модуля сможеть опцией линкера выключить флаг. Но обычно так делать не будут, а защита начнёт постепенно работать.
0
А что насчет Return-oriented Programming without Returns cseweb.ucsd.edu/~hovav/dist/noret.pdf? И как насчет setjmp/longjmp, будет ли это вообще работать при таком подходе? Придется вручную по-честному раскручивать стек вызовов вместо того, чтобы мгновенно перепрыгнуть?
0
Есть шанс, что эта концепция сделает нерабочей большинство программ с защитой от взлома и реверс-инжиниринга.
+3
Ох, чувствую, с этой новой защитой в процессоре у кого-то с треском костыли отвалятся.
+1
Sign up to leave a comment.
Intel собирается бороться с эксплойтами на уровне микропроцессора