스택 버퍼 오버플로 란 무엇입니까?
스택 버퍼 오버플로는 프로그램이 할당 된 공간보다 긴 컴퓨터의 메모리에 입력 할 때 발생합니다. 어떤 상황에서는 메모리의 다른 데이터를 손상시켜 컴퓨터 실행에 문제가 발생할 수 있습니다. 다른 경우에는 컴퓨터의 다른 부분을 제어하기 위해 악의적 인 애플리케이션으로 스택 버퍼 오버플로를 이용할 수 있습니다.
스택 버퍼 오버플로의 이름은 스택에서 먼저 유래되는데, 이는 데이터가 구성되는 활성 목록입니다. 이것의 한 버전 인 콜 스택, 는 컴퓨터 프로그램이 특정 순간에 작동하는 프로그램의 다양한 부분 인 서브 루틴을 추적하는 데 사용하는 목록입니다. 콜 스택이 일시적으로 작동하고 빠르게 액세스해야하므로 하드 드라이브와 같은 영구 저장소가 아닌 컴퓨터 메모리에 있습니다.
.현대 운영 체제를 사용하면 여러 프로그램이 한 번에 실행되기 때문에 전화 스택을 포함하여 메모리가 할당되는 방식을 구성해야합니다. 이것은 특정 버퍼에 필요한 최대 공간에 대처하기에 충분히 큰 메모리의 공간 인 버퍼를 할당하여 효율적으로 수행됩니다. 대부분의 경우 일부 공간은 사용되지 않으므로 다른 응용 프로그램의 데이터 사이의 버퍼 역할을하므로 갑자기 여분의 공간이 필요한 경우 대처할 수 있습니다. 시각화하는 한 가지 방법은 각 주제 영역에 일정 공간을 할당 한 라이브러리를 생각하는 것입니다. 예를 들어, 한 주제의 모든 책이 동시에 도서관에 있었는지 (예를 들어, 체크 아웃하는 것이 아니라 도서관에있는 경우에 추가 공간을 남겨 두어야합니다.
).스택 버퍼 오버플로는 프로그램이 할당 된 공간을 초과하는 방식으로 호출 스택 데이터를 버퍼에 쓸 때 발생합니다. 이것은 실수로 일어날 수 있습니다프로그램의 버그를 통해. 예를 들어, 응용 프로그램이 전화 번호를 입력 할 수 있도록 설계되었지만 입력 할 수있는 문자 수에 제한이없는 경우 해커는 무한 필드를 사용하여 의도적으로 스택 버퍼 오버플로를 유발할 수 있습니다. 운영 체제의 작동 방식에 따라 해커가 다른 응용 프로그램 또는 운영 체제 자체에 간접적으로 액세스 할 수 있습니다.
스택 버퍼 오버 플로우의 효과에 대해 완화하기위한 몇 가지 접근법이 있습니다. 하나는 주소 공간 레이아웃 무작위 배정으로 알려져 있습니다. 이것은 컴퓨터의 가장 중요한 데이터 영역을 임의의 방식으로 배열합니다. 아이디어는 해커가 스택 버퍼 오버플로를 유발하거나 이용하더라도 안정적인 방식으로 위반을 악용 할 수 없다는 것입니다.
.