Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Но верификация не на 100% надежна. Более того, предполагаю, что она гораздо меньше надежна, чем защита в процессоре.
Трудно сказать. Вряд ли можно это измерить.
PD>Там все же из 0 кольца к ядру добраться нельзя.
В теории нельзя, но кто сказал, что в процессоре нет дырок? Современные процы — штука очень сложная.
PD>Кто-то находит способ обойти эту верификацию. Обойти не потому, что ее алгоритм содержит ошибки, а потому что он нашел ситуацию, когда верификация не работает. Какими-то хитрыми упражнениями , сводящими с ума статический верификатор.
PD>Такое может быть ?
Вполне может, думаю. На практике, ИМХО, вероятность не слишком велика. Но, конечно, что-то в этом плане утверждать я не могу.
PD>Все же программа исполняется в динамике — ты уверен, что статическими средствами можно все случаи предусмотреть ?
Теоретически можно предусмотреть всё, на практике можно какую-то дырку и пропустить.
PD>В итоге он хозяин машины. Другой-то защиты больше нет. У него полный доступ к ядру ОС.
PD>А если он — автор вируса, то есть делает это сознательно — и что теперь делать ?
Так и сейчас примерно то же самое. Баги в процессоре, баги в ядре, эскалация привилегий — и у тебя полный доступ к ядру ОС, ты хозяин машины.
Attacking the Windows Kernel
Ring 0 to Ring -1 Attacks
Сейчас, конечно, можно сказать, что "эшелонированная оборона" состоит из двух бастионов — сперва дыры в софте, а потом дыры в железе. Но что мешает сделать несколько эшелонов в софте? Не вижу принципиальной разницы.
UPD. Кстати, вот нашел еще про серьезные дырки в штеуде, допускающие взлом структур ядра:
https://www.theregister.co.uk/2015/08/11/memory_hole_roots_intel_processors/