Skip to main content

스택 버퍼 오버플로 란 무엇입니까?

stack 스택 버퍼 오버플로는 프로그램이 할당 된 공간보다 긴 컴퓨터 메모리에 입력 할 때 발생합니다.어떤 상황에서는 메모리의 다른 데이터를 손상시켜 컴퓨터 실행에 문제가 발생할 수 있습니다.다른 경우에는 컴퓨터의 다른 부분을 제어하기 위해 악의적 인 애플리케이션으로 스택 버퍼 오버 플로우를 이용할 수 있습니다.

스택 버퍼 오버플로의 이름은 스택에서 먼저 파생되며, 이는 데이터가 구성된 활성 목록입니다.: 용어는 물리적 아이템을 쌓는 비유에서 비롯됩니다.이 버전의 한 버전 인 Call Stack은 컴퓨터 프로그램이 특정 순간에 작동하는 프로그램의 다양한 부분 인 서브 루틴을 추적하는 데 사용하는 목록입니다.콜 스택이 일시적으로 작동하고 빠르게 액세스해야하므로 하드 드라이브와 같은 영구 저장 장치가 아닌 컴퓨터 메모리에 있습니다.

최신 운영 체제는 여러 프로그램을 한 번에 실행할 수 있기 때문에 거기에 있습니다.전화 스택을 포함하여 메모리가 할당되는 방식을 구성해야합니다.이것은 특정 버퍼에 필요한 최대 공간에 대처하기에 충분히 큰 메모리의 공간 인 버퍼를 할당하여 효율적으로 수행됩니다.대부분의 경우 일부 공간은 사용되지 않으므로 다른 응용 프로그램의 데이터 사이의 버퍼 역할을하므로 갑자기 여분의 공간이 필요한 경우 대처할 수 있습니다.시각화하는 한 가지 방법은 각 주제 영역에 일정량의 공간을 할당 한 라이브러리를 생각하는 것입니다. 예를 들어, 한 주제의 모든 책이동시에, 그들 중 누구도 체크 아웃하는 대신 스택 버퍼 오버플로가 프로그램이 할당 된 공간을 초과하는 방식으로 호출 스택 데이터를 버퍼에 쓸 때 발생합니다.이것은 일반적으로 프로그램의 버그를 통해 실수로 발생할 수 있습니다.예를 들어, 응용 프로그램이 전화 번호를 입력 할 수 있도록 설계되었지만 입력 할 수있는 문자 수에 제한이없는 경우 해커는 무한 필드를 사용하여 의도적으로 스택 버퍼 오버플로를 유발할 수 있습니다..운영 체제가 작동하는 방식에 따라 해커가 다른 응용 프로그램 또는 운영 체제 자체에 간접적으로 액세스 할 수 있습니다.

스택 버퍼 오버플로의 영향에 대해 완화하는 데 몇 가지 접근 방식이 있습니다.하나는 주소 공간 레이아웃 무작위 배정으로 알려져 있습니다.이것은 컴퓨터의 가장 중요한 데이터 영역을 임의의 방식으로 배열합니다.아이디어는 해커가 스택 버퍼 오버플로를 유발하거나 이용하더라도 믿을만한 방식으로 위반을 악용 할 수 없다는 것입니다.