728x90

버퍼 오버플로우 또는 버퍼 오버런은 메모리를 다루는 데 오류가 발생하여 잘못된 동작을 수행하는 프로그램 취약점이다.

프로그램은 함수를 호출하는 등 로직이 분기할 때 지역변수나 파라미터를 힙메모리 등의 특정 공간에 저장해두고 다시 필요할 때 불러서 사용하는데 이 시점에 저장된 공간의 영역을 초과(Overflow)해서 기존에 저장된 값을 변조하거나 되돌아갈 주소를 변경하는 방식으로 악성 코드에 활용되기도 한다.

버퍼메모리를 overflow해서 데이터를 덮어씌우면서 임의의 무단으로 작성된 악성코드(exploit code)를 삽입하거나 실행할 수 있늨 위험성이 있다.

그리고 애플리케이션에서 사용하는 중요한 코드를 덮어 씌울 수 있고 상위 권한 탈취로 연결되어 의도치 않게 민감한 정보를 노출할 수도 있다.

프로그램에서 메모리를 제어하는 소스코드를 작성할 때 변수의 길이를 제어할 수 없는 취약점이 내재된 함수를 사용하지 않는 것이 좋으며 이를 시큐어 코딩의 영역으로 다룰 수 있다. C언어에서 strcpy보다 strncpy를 사용권장.

+ Recent posts