ASLR이란 무엇이며, 귀하의 컴퓨터를 안전하게 유지하는 방법은 무엇입니까?
주소 공간 레이아웃 무작위 화 (ASLR)는 2001 년에 처음 실행 된 운영 체제에서 사용되는 보안 기술입니다. 모든 주요 운영 체제 (iOS, Android, Windows, macOS 및 Linux)의 최신 버전은 ASLR 보호 기능을 갖추고 있습니다. 그러나 지난 주에 ASLR을 우회하는 새로운 방법이 발견되었습니다. 그래서 걱정해야 할까??
저급 프로그래밍 배경이없는 사람들에게는 ASLR이 혼란 스러울 수 있습니다. 이를 이해하려면 먼저 가상 메모리를 이해해야합니다..
가상 메모리 란 무엇입니까??
가상 메모리는 많은 이점을 가진 메모리 관리 기술이지만 프로그래밍을 쉽게하기 위해 주로 만들어졌습니다. 4GB의 RAM이 장착 된 컴퓨터에서 Google 크롬, Microsoft Word 및 기타 여러 프로그램을 열어 놓았다고 가정 해보십시오. 전체적으로이 컴퓨터의 프로그램은 4GB 이상의 RAM을 사용합니다. 그러나 모든 프로그램이 항상 활성화되어 있거나 RAM에 동시에 액세스해야하는 것은 아닙니다..
운영 체제는 메모리 덩어리를 페이지들. 모든 페이지를 한 번에 저장할 수있는 충분한 RAM이 없으면 가장 필요하지 않은 페이지는 더 느린 (그러나 더 넓은) 하드 드라이브에 저장됩니다. 저장된 페이지가 필요할 때 현재 RAM에있는 필요한 페이지 수가 적어 공간을 전환합니다. 이 프로세스를 페이징이라고하며 Windows의 pagefile.sys 파일에 이름을 부여합니다..
가상 메모리는 프로그램이 자신의 메모리를보다 쉽게 관리 할 수있게 해주 며 보안을 강화합니다. 프로그램은 다른 프로그램이 데이터를 저장하는 위치 나 남은 RAM에 대해 걱정할 필요가 없습니다. 필요에 따라 운영 체제에 추가 메모리를 요청하거나 사용하지 않은 메모리를 반환 할 수 있습니다. 모든 프로그램은 가상 주소라고하는 단독 사용을위한 메모리 주소의 단일 연속 청크입니다. 프로그램이 다른 프로그램의 메모리를 볼 수 없습니다..
프로그램이 메모리에 액세스해야 할 때 운영 체제에 가상 주소를 제공합니다. 운영 체제는 CPU의 메모리 관리 장치 (MMU)에 연결합니다. MMU는 가상 주소와 실제 주소를 변환하여 해당 정보를 운영 체제로 반환합니다. 프로그램이 RAM과 직접 상호 작용하지 않습니다..
ASLR이란 무엇인가??
주소 공간 레이아웃 무작위 화 (ASLR)는 주로 버퍼 오버플로 공격으로부터 보호합니다. 버퍼 오버플로에서 공격자는 처리 할 수있는 정크 데이터만큼의 기능을 제공 한 다음 악의적 인 페이로드를 제공합니다. 페이로드는 프로그램이 액세스하려는 데이터를 덮어 씁니다. 코드의 다른 지점으로 이동하라는 지시 사항은 일반적인 페이로드입니다. 예를 들어, iOS 4를 jailbreaking하는 유명한 JailbreakMe 메서드는 버퍼 오버플로 공격을 사용하여 Apple에 ASLR을 iOS 4.3에 추가하도록했습니다.
버퍼 오버 플로우는 공격자가 프로그램의 각 부분이 어디에 있는지를 알 필요가 있습니다. 이것을 알아내는 것은 일반적으로 시행 착오의 과정이 어렵습니다. 그것을 결정한 후에는 페이로드를 제작하고 주사 할 적절한 장소를 찾아야합니다. 공격자가 대상 코드의 위치를 모르는 경우 악용 할 수 없거나 불가능할 수 있습니다.
ASLR은 가상 메모리 관리와 함께 프로그램의 다른 부분을 메모리에 랜덤 화합니다. 프로그램이 실행될 때마다 구성 요소 (스택, 힙 및 라이브러리 포함)가 가상 메모리의 다른 주소로 이동됩니다. 공격자는 주소가 매번 다를 수 있기 때문에 더 이상 시행 착오를 통해 목표가 무엇인지 알 수 없습니다. 일반적으로 애플리케이션은 ASLR 지원으로 컴파일해야하지만 기본값이되어 Android 5.0 이상에서도 필요합니다..
그럼 ASLR은 당신을 여전히 보호합니까??
지난 화요일, SUNY Binghamton과 University of California, Riverside의 연구원은 ASLR을 뛰어 넘는 점프 예측기 (Jump Over ASLR)라는 논문을 발표했습니다. 이 백서는 BTB (Branch Target Buffer)를 공격하는 방법에 대해 자세히 설명합니다. BTB는 결과를 예측하여 if 문을 빠르게 처리하는 프로세서의 일부입니다. 저자의 방법을 사용하면 실행중인 프로그램에서 알려진 분기 명령어의 위치를 결정할 수 있습니다. 문제의 공격은 Intel Haswell 프로세서 (2013 년에 처음 출시 된)가 탑재 된 Linux 컴퓨터에서 수행되었지만 최신 운영 체제 및 프로세서에 적용될 수 있습니다.
즉, 반드시 절망하지 말아야한다는 것입니다. 이 백서는 하드웨어 및 운영 체제 개발자가이 위협을 완화 할 수있는 몇 가지 방법을 제시했습니다. 더 새롭고 섬세한 ASLR 기술은 공격자의 노력이 더 필요하며 엔트로피 (무작위성)의 양을 늘리면 점프 오버 공격을 실행 불가능하게 만들 수 있습니다. 대부분의 경우, 최신 운영 체제 및 프로세서는이 공격으로부터 영향을받지 않습니다.
그래서 남은 것은 무엇입니까? 당신 할 것? 점프 오버 바이 패스는 새롭지 만 아직 야생에서 발견되지 않았습니다. 공격자가 악용하면 악의적 인 공격으로 인해 공격자가 장치에서 발생할 수있는 피해가 증가합니다. 이 수준의 액세스는 전례가 없습니다. Microsoft와 Apple은 2007 년 이후에 출시 된 운영 체제에서만 ASLR을 구현했습니다. 이 공격 방식이 평범한 경우라도 Windows XP 시대에 비해 더 나 빠지지는 않을 것입니다.
공격자는 장치에 코드를 가져와 해를 입히지 않으면 안됩니다. 이 결함으로 인해 감염 될 수있는 추가 방법이 제공되지 않습니다. 항상 그렇듯이 보안 모범 사례를 따라야합니다. 바이러스 백신 사용, 스케치 웹 사이트 및 프로그램에서 벗어나 소프트웨어를 최신 상태로 유지하십시오. 이 단계를 수행하고 악의적 인 배우를 컴퓨터에서 지키면 지금까지 없었던만큼 안전하게 될 수 있습니다..
이미지 크레디트 : Steve / Flickr