초록
C 언어가 가지고 있는 특징 중의 하나는 포인터형 변수를 제공하여, 프로그램 작성자가 임의의 주소영역에 쉽게 접근할 수 있다는 점이다. 따라서 운영체제에 의해서 세부적으로 통제되지 못한 메모리 영역은 C 언어를 통해서 읽기·쓰기·수행이 가능해 진다. C 언어의 포맷스트링은 이러한 C 언어의 특성에 따라 임의의 메모리를 접근할 수 있는 통로 역할을 할 수 있고, 따라서 프로그램 보안침해 수단으로 악용될 수 있다. 본 논문에서는 이러한 C 언어의 포맷스트링이 프로그램 보안침해에 적용되는 과정을 심층적으로 규명한 후, 지금까지 알려진 보편적인 수법보다 더욱 위협적인 단계적 지속적 바이러스 형태의 새로운 침해수법 가능성을 실증적 시나리오와 함께 증명함으로써 포맷스트링의 위험성에 대한 경각성을 높이고 대응방안 모색에 기여하고자 한다.
One of the major characteristics of C language is that it allows us to use pointer type variables to access any area of virtual address space. So, we can read/write/execute from/to virtual memory area not controlled delicately by operating system. We can access such memory area by using format string and it can be a vulnerability of C language from the point of secure programming. In this paper, we analyze in detail the process of security attack based on format string and then exploit a new virus style attack which is stepwise and durable with some actual scenarios to warn the severity of it, and grope for some preliminary responding actions.