실행 불능 비트란 무엇입니까?

실행 불능 비트란 무엇입니까?

에 관한 기사를 읽었습니다.실행 비활성화 비트(EDB)x86 CPU에서. 이는 다음과 같이 더 널리 알려져 있습니다.NX 비트;인텔에서는 XD라고도 부릅니다.

따라서 Windows XP는 이 하드웨어 기능을 지원합니다. 응! 하지만 내가 선택한 Linux 배포판이 이를 지원하는지 어떻게 알 수 있나요?

이 BIOS 옵션을 활성화하면 어떤 문제가 발생할 수 있습니까?

Linux가 이 기능을 처리하는 방법에 대한 자세한 내용은 어디에서 읽을 수 있습니까?

답변1

이 기능은 종종 호출됩니다.NX 비트. 메모리 페이지의 플래그입니다메모리 관리 유닛페이지를 실행할 수 없는 것으로 표시: 일부 코드가 페이지로 이동하면 분할 오류(Unix 용어로)가 발생합니다.

일반적으로 코드를 수정할 수 없으므로 쓰기 가능한 페이지를 읽기 전용으로 표시하는 것이 지원되는 일반적인 위생 조치입니다. 모든 경우에 이 작업을 수행할 수는 없습니다. 예를 들어적시 컴파일. 이것의 이점은 특정 오류로 인해 프로그램이 데이터가 포함된 메모리 영역으로 점프하는 것을 방지하는 것입니다. 이는 사용자가 코드를 삽입하고 프로그램을 악용할 수 있기 때문에 사용자가 데이터를 제공할 때 특히 나쁩니다. 결과적으로 NX 비트로 인해 보안 취약점에 대한 일부 공격이 중단될 수 있습니다. 그러나 보안 조치로서 이는 만병통치약이 아닙니다. 이를 해결할 수 있는 기술이 있습니다.복귀 지향 프로그래밍. NX의 주요 목적은 오류를 보다 쉽게 ​​감지하는 것입니다.

인용하신 기사는 다소 오해의 소지가 있음을 알려드립니다. NX는 기존의 많은 공격을 차단하지만 공격과 바이러스는 시대에 맞춰 적응해 왔습니다. 기사의 또 다른 오류는 NX가 BIOS 기능이 아니라 CPU의 기능이라는 것입니다(일부 BIOS는 이를 비활성화할 수 있습니다. 비활성화하면 어떤 이점이 있는지 모르겠습니다).

이것위키피디아 페이지NX에 대한 일부 지원을 제공하는 UNIX 변형에 대해 자세히 설명합니다. 애플리케이션은 다음을 호출하여 페이지가 실행 가능한지 여부를 제어할 수 있습니다.mmap시스템 호출.

답변2

내가 선택한 배포판이 이를 지원하는지 어떻게 알 수 있나요?

이미 커널에 있음2004년부터, 그래서 그들은 모두 어떤 방식으로든 그렇게 합니다. 주위를 둘러보실 때 RedHat의 이전 기사를 보지 마십시오. 분명히 1년 전에 이에 대한 패치가 있었던 것 같습니다.

관련 정보