Windows 보안에서 가장 이상한 점 중 하나는 운영 체제를 실행하는 방법을 약간만 변경해도 맬웨어와 관련하여 세상이 달라질 수 있다는 사실입니다. 예를 들어, 64비트 Windows를 실행하면 컴퓨터가 더 안전하게 보호된다는 것을 누가 알았겠습니까? 이것을 소위 컴퓨터 마법사에게 말하면 그들은 웃을 것입니다. 그러나 Windows에 대해 이해해야 하는 몇 가지 사항은 아마도 다시는 32비트 버전으로 정착하는 것에 대해 두 번 생각하게 만들 것입니다.
1:드라이버가 통과하기 더 어렵습니다.
때때로 맬웨어는 운영 체제의 커널에 액세스해야 합니다. 이를 위해 시스템에 드라이버를 삽입하려고 합니다. 왜 이런 일이 발생해야 하는지 잘 모르겠다면 드라이버가 어떻게 작동하는지 읽어보십시오. 64비트 버전의 Windows에는 드라이버 서명이 필요합니다. 즉, 드라이버에 있는 모든 코드는 Microsoft의 인증을 받아야 합니다.
32비트 버전에는 왜 그러한 서명이 필요하지 않은지 물을 수 있습니다. 이것은 주로 오래된 드라이버가 서명되지 않았기 때문입니다. 64비트 드라이버 개발자는 요구 사항을 인식하고 자신의 항목에 디지털 서명을 했는지 확인합니다. 물론 90년대 후반에 작성된 드라이버는 마술처럼 스스로 서명하지 않을 것입니다. 따라서 64비트 버전의 Windows를 사용하는 경우 실제로 맬웨어가 사용자 모르게 운영 체제의 커널에 액세스하는 것을 방지할 수 있습니다. 하지만 64비트 Windows가 더 안전한 다른 이유도 있습니다!
2:ASLR은 맬웨어가 다른 프로그램에 내용을 주입하는 것을 불가능하게 합니다.
ASLR(Address Space Layout Randomization)은 메모리 내의 프로그램 주소를 예측할 수 없도록 유지하는 방법입니다. 32비트 Windows에서 일부 프로그램은 동일한 메모리 주소를 따라 시작되어 맬웨어가 감지되지 않은 상태에서 일부 코드를 쉽게 삽입할 수 있습니다. 어떤 사람들은 Windows의 새 버전(Vista, 7, 8)이 32비트 버전에서 ASLR을 실행한다고 주장할 수 있지만 64비트 주소 지정 시스템이 있는 경우 ASLR이 얼마나 효과적인지 알지 못합니다. 공간이 클수록 프로그램을 더 효과적으로 보호할 수 있습니다.
3:데이터 실행 방지
물론 32비트 및 64비트 버전의 Windows에는 모두 DEP(데이터 실행 방지)를 사용할 수 있는 기능이 있습니다. 그러나 64비트 운영 체제에서는 프로그램이 옵트아웃할 수 없습니다. 이에 비해 DEP는 일반적으로 32비트 시스템에서 비활성화되어 있으므로 메모리 공간 내에서 데이터를 실행하는 프로그램이 중단되지 않습니다. 많은 맬웨어 개발자는 DEP를 활용하여 실행할 프로그램의 메모리 공간 끝에 일부 코드를 추가합니다. 이로 인해 시스템이 "닌자 스타일"에 감염됩니다. 옵트아웃 가능성이 없는 경우(64비트 Windows의 경우) 이 문제가 발생하지 않습니다.
4:"WoW64" 레이어
"Windows" 폴더에 "SysWOW64"라는 새 "System" 하위 폴더가 있다는 것을 눈치채셨을 것입니다. 이것은 64비트 커널 내에서 실행하는 데 필요한 새로운 프로그램 실행 계층을 나타냅니다. 사용자를 보호하도록 설계되지는 않았지만 커널 모드에서 실행되는 32비트 응용 프로그램으로부터 실수로 사용자를 보호합니다. 따라서 64비트 커널에서 실행하려는 32비트 맬웨어는 실패합니다. 이것은 또한 64비트 버전의 Windows에서 몇 가지 32비트 응용 프로그램이 호환되지 않는 이유이기도 합니다. WOW64는 "Windows on Windows 64"의 약자입니다. 64비트 커널 모드에서 작동하도록 다시 작성된 모든 맬웨어는 여전히 사용자를 감염시킬 수 있습니다!
마지막 한마디
64비트 Windows는 맬웨어에 대한 방어구에 약간의 추가 패딩을 추가할 수 있지만 투과되지는 않습니다. 적절한 추가 보호 기능이 없으면 맬웨어가 계속 감염됩니다. 이들은 바이러스, 웜 및 트로이 목마의 일부 최악의 형태를 방지하는 사소한 보안 기능입니다. 맬웨어가 32비트 모드를 사용하지만 커널에 액세스하지 않거나 프로그램의 메모리 공간 끝에서 코드를 실행하거나 프로그램에 코드를 삽입하는 경우에도 여전히 감염됩니다. 이에 대해 더 자세히 알고 싶으시면 아래에 댓글을 남겨주세요!