힙 스프레이 란?
힙 스프레이는 컴퓨터 소프트웨어의 취약점을 악용하는 데 사용되는 해킹 기술입니다. 메모리의 일부를 활용하여 프로그램을 제어하는 역할을합니다. 해킹 코드에 의해 메모리의 일부가 제어되면 해커는 메모리의 힙 영역에 버퍼 오버플로를 구현하여 코드 실행을 제어 할 수 있습니다. 힙 스프레이의 가장 일반적인 응용 프로그램은 Internet Explorer®와 같은 웹 브라우저를 해킹하는 것입니다.
"힙"은 컴퓨터가 특정 프로그램에 할당하는 동적 메모리 블록으로, 컴퓨터가 가상 메모리 더미를 프로그램에 전용으로 지정하므로 이름이 지정됩니다. 이것은 옷장이나 책상에 보관 공간과 같은 것으로 생각할 수 있습니다. 이 메모리 힙은 운영 체제의 소프트웨어 또는 콜렉션 코드가 릴리스 할 때까지 프로그램에 속합니다. 수집 코드는 단순히 프로그램이 충돌하거나 사용이 종료 된 후 소프트웨어 자체가 메모리를 해제하지 못하는 경우 메모리를 회수하는 안전 장치입니다.
힙 스프레이에서 해커는 특정 코드 부분으로 메모리 힙을 "스프레이"하려고합니다. 목표는 프로그램의 메모리 힙 내에서 특정 위치에 코드를 배치하는 것입니다. 열 분무를 통해 정보가 메모리 힙에 쐐기 된 후 해커는 힙 또는 전체 메모리 버퍼를 오버플로하여 시스템 내에서 오류를 생성 할 수 있습니다. 오류가 발생하면 해커는이 오류를 이용하여 시스템에서 자신의 코드를 실행할 수 있습니다.
힙 스프레이는 시스템에서 메모리의 동적 할당으로 인해 작동합니다. 컴퓨터 프로그램은 본질적으로 한동안 전체 메모리 청크를 "소유"하므로 해커는 이미 컴퓨터가 프로그램에 할당 한 메모리 내의 상대 위치를 알고 있습니다. 따라서 해커는 자신의 코드를 크랙에 쐐기 화하는 데 거의 특이성이 필요하지 않습니다. 그는 프로그램이 계속 실행되는 한 메모리 블록이 항상 존재한다는 것을 알고 코드를 맹목적으로 뿌릴 수 있습니다. 이것은 눈가리개를하면서 자물쇠를 고르는 것과 비교할 수 있습니다. 잠금 장치가 움직이면 작업이 거의 불가능 해지지 만 시스템의 메모리 힙처럼 고정 된 한 위치에 머무르면 작업이 가능해집니다.