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