2016-10-13 2 views
0

코드 삽입 공격을 피하기 위해 프로세서가 명령어 세트를 무작위로 추출하는 현대 프로세서에서 약 instruction set randomization을 읽었습니다. 실제로, Wikipedia 설명은 나에게 명확하지 않다. 친절하게도 누군가가 그 과정을 명확한 방법으로 설명 할 수 있습니까? 관련된 열쇠가 있습니까?명령어 세트 임의 화의 작동 방식 대략

+0

"현대 프로세서에서"- 내 지식으로는 실제 제품 CPU가 실제로 ISR을 지원하지 않습니다.이 시점에서 연구 노력으로 "현대 프로세서"라고 오인됩니다. 제안 된 구현은 상당히 제한적이며 사전 컴파일 된 바이너리에는 적합하지 않습니다 (예 : 실행 파일의 코드 섹션은 반복 키를 XOR하여 "암호화"되어 있으므로 사전 컴파일 된 코드는 모두 설치하지 않는 한 동일한 키를 공유합니다. 사후 처리로 바뀌 었습니다. 그렇다면 해시가 키를 특별하게 고려하지 않고 달라지기 때문에 파일 서명이 깨집니다. – ShadowRanger

답변

0

명령어 무작위 화는 코드 삽입 공격을 피하는 것입니다. 예를 들어 공격자가 실행하기를 원하는 취약한 코드가 있고 프로그램 컨트롤을 해당 코드 블록의 시작 부분으로 전송하는 것입니다. 비보호 환경에서 컨트롤이 전송되면 CPU는 적절한 코드와 취약한 코드를 구분할 수 없으므로 코드 실행을 시작합니다. 그러한 공격을 막기 위해 할 수있는 "간단한"일은 침입자가 모르는 올바른 기계 코드에 대한 암호화를 사용하는 것입니다. 따라서 디코드 단계에서 적절한 코드가 먼저 해독 된 다음 디코딩됩니다. 공격자는 적절한 코드를 암호화하는 데 사용되는 키를 알지 못하므로 암호 해독 단계가 성공하지 못하므로 실행되지 않습니다.