최근 인터넷 사용의 급격한 증가와 정보통신기술의 급속한 발전은 컴퓨터 보안상의 문제점을 노출하고 있고 이로 인한 피해가 심각한 수준으로 다가오고 있다. 안전한 시스템 접속에 관한 많은 연구가 보고 되고 있지만, 일반적으로 공격자들은 순수 공격 기술이나 네트워크 구성의 결함을 이용하기 보다는 시스템 상에서 구동 중인 프로그램들, 특히 서비스를 위한 프로세스들이 개발 당시에 가지는 근본적인 취약성을 이용한다. 따라서 보안 관리자들은 공격에 이용되는 취약성을 보완하기 위해 보안 패치 작업등 많은 노력과 시간을 투자해야만 하며, 동시에 개발자들 또한 노출된 프로그램의 취약성에 대한 계속된 프로그램 수정 작업으로 부담이 커지고 있는 실정이다. 본 논문에서는 이러한 문제점을 해결하고 안전한 소스코드의 작성을 위하여 프로그램 개발 시 침해의 가능성을 가지는 취약성 함수들을 조사 및 분석을 연구 목표로 하였다. 이를 위하여 소스코드 수준에서 잠재할 수 있는 표준 C 함수에 관련된 취약성과 Win32 API 함수의 취약성에 대하여 분석하고, 그 결과를 기반으로 소스 코드의 취약성을 검사하기 위한 자동화 도구를 개발하였다.
최근 인터넷 사용의 급격한 증가와 정보통신기술의 급속한 발전은 컴퓨터 보안상의 문제점을 노출하고 있고 이로 인한 피해가 심각한 수준으로 다가오고 있다. 안전한 시스템 접속에 관한 많은 연구가 보고 되고 있지만, 일반적으로 공격자들은 순수 공격 기술이나 네트워크 구성의 결함을 이용하기 보다는 시스템 상에서 구동 중인 프로그램들, 특히 서비스를 위한 프로세스들이 개발 당시에 가지는 근본적인 취약성을 이용한다. 따라서 보안 관리자들은 공격에 이용되는 취약성을 보완하기 위해 보안 패치 작업등 많은 노력과 시간을 투자해야만 하며, 동시에 개발자들 또한 노출된 프로그램의 취약성에 대한 계속된 프로그램 수정 작업으로 부담이 커지고 있는 실정이다. 본 논문에서는 이러한 문제점을 해결하고 안전한 소스코드의 작성을 위하여 프로그램 개발 시 침해의 가능성을 가지는 취약성 함수들을 조사 및 분석을 연구 목표로 하였다. 이를 위하여 소스코드 수준에서 잠재할 수 있는 표준 C 함수에 관련된 취약성과 Win32 API 함수의 취약성에 대하여 분석하고, 그 결과를 기반으로 소스 코드의 취약성을 검사하기 위한 자동화 도구를 개발하였다.
The recent explosive use of the Internet and the development of computer communication technologies reveal serious computer security problem. Inspite of many studies on secure access to the system, generally, the attackers do not use the previous intrusion techniques or network flaw, rather they ten...
The recent explosive use of the Internet and the development of computer communication technologies reveal serious computer security problem. Inspite of many studies on secure access to the system, generally, the attackers do not use the previous intrusion techniques or network flaw, rather they tend to use the vulnerabilities residing inside the program, which are the running programs on the system or the processes for the service. Therefore, the security managers must focus on updating the programs with lots of time and efforts. Developers also need to patch continuously to update the Program, which is a lot of burden for them. In order to solve the problem, we need to understand the vulnerabilities in the program, which has been studied for some time. And also we need to analyze the functions that contains some vulnerabilities inside. In this paper, we first analyzed the vulnerabilities of the standard C library, and Win32 API functions used in various programs. And then we described the design and implementation of the automated scanning tool for writing secure source code based on the analysis.
The recent explosive use of the Internet and the development of computer communication technologies reveal serious computer security problem. Inspite of many studies on secure access to the system, generally, the attackers do not use the previous intrusion techniques or network flaw, rather they tend to use the vulnerabilities residing inside the program, which are the running programs on the system or the processes for the service. Therefore, the security managers must focus on updating the programs with lots of time and efforts. Developers also need to patch continuously to update the Program, which is a lot of burden for them. In order to solve the problem, we need to understand the vulnerabilities in the program, which has been studied for some time. And also we need to analyze the functions that contains some vulnerabilities inside. In this paper, we first analyzed the vulnerabilities of the standard C library, and Win32 API functions used in various programs. And then we described the design and implementation of the automated scanning tool for writing secure source code based on the analysis.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 소스코드 분석을 통하여 취약성을 가진 표준 C 함수들과 Win32 API 함수들을 발견해 내고, 발견된 이들 함수들이 가지는 취약성을 제거하기 위한 해결방안을 제시하는 자동화 분석도구를 제안한다. 본 장에서는 소스 코드의 분석을 위한 자동화 도구의 전체적인 구조와 개별적인 모듈에 대해 설명하고 이들의 상호 연관성에 대해서 상세하게 설명한다.
본 논문에서는 이러한 문제들을 원천적으로 해결하기 위하여 프로그램 개발 시 공격의 개연성을 가지는 취약성들에 대한 실질적인 코드들을 조사 및 분석하고 이를 위하여 소스 코드 수준에서 잠재할 수 있는 취약성을 자동으로 분석하고 이에 따른 지침서를 제공하는 자동화 도구의 개발을 제안한다[1-3].
본 논문에서는 취약성과 관련된 문제점들과 관련된 표준 C 함수와 Win32 API 함수의 취약성에 관한 대표적인 부류들을 정의하고, 각 부류들에서 발생 가능한 잠재적인 취약성과 그 원인과 과정에 대하여 기술하고 안전한 프로그래밍을 위해 고려해야 할 점들에 대하여 기술하였다.
제안 방법
마지막으로 개발 단계에서 공격자들의 목표가 될 수 있는 취약성들, 예를 들어 잠재적인 취약성을 가지는 함수들을 분석하여 이에 대한 데이터베이스를 구축하였으며, .자동화된 소스코드 분석 도구를 설계 및 개발하였다.
본 장에서는 소스 코드의 분석을 위한 자동화 도구의 전체적인 구조와 개별적인 모듈에 대해 설명하고 이들의 상호 연관성에 대해서 상세하게 설명한다. 본 자동화 도구는 Windows계열의 OS에서 동작하며 표준 C 함수와 Win32 API 함수들의 취약성을 발견하고 이에 대한 적절한 해결 방안을 제시하는 기능을 수행한다.
이를 위해서 함수취약성의 대표적인 부류들에 대한 정의 및 각 부류들의 잠재적인 취약성과 그 원인에 대하여 심도 있는 이해가 수반되어야 함은 명백한 사실이다. 본 장에서는 이를 위하여 잠재적인 취약성이 내재되어 있는 다양한 부류의 함수들에 대하여기술하고[4-6], 이들 취약성들을 검사하는 대표적인 몇몇 도구들에 대하여 기술한다.
과정을 보여준다. 소스 코드를 읽어 들여 파싱 모듈을 통하여 코드의 각 부분들을 토큰 형태로 분석하여 분석된 토큰들 가운데 미리 정의된 함수에 대한 토큰만을 추출하여 구조화한다.
구축하였으며, .자동화된 소스코드 분석 도구를 설계 및 개발하였다.
이론/모형
소스 코드 내의 모든 토큰들을 분류해서 보여주는 역할을 수행하기 위해 파싱 속성(Parsing Attribute)을 사용한다. 파싱 모듈을 통해 분류된 토큰들에 대한 구체적인 정보는<표 1>의 토큰정보를 통해 알 수 있다.
성능/효과
함수들을 분석하는 기능을 수행한다. 소스 코드에서의 취약성을 가진 함수를 찾아내는 분석 모듈을 중심으로 취약성을 가진 함수들의 정보를 보여 주는 취약성 함수 리스트, 분석된 취약성에 대한 결과들을 보고하는 분석 결과 리포트, 발견된 취약성에 대한 문제점과 해결 방안들을 제시하는 취약성 함수 사전 기능을 가지고 있다. 분석부에 의해 제시된 결과는 사용자에게 취약성을 가진 함수에 대한 원인과 결과를 명확히 파악하여 안전한 프로그램을 작성하기 위한 도구로써 사용될 수 있다.
후속연구
소스 코드에서의 취약성을 가진 함수를 찾아내는 분석 모듈을 중심으로 취약성을 가진 함수들의 정보를 보여 주는 취약성 함수 리스트, 분석된 취약성에 대한 결과들을 보고하는 분석 결과 리포트, 발견된 취약성에 대한 문제점과 해결 방안들을 제시하는 취약성 함수 사전 기능을 가지고 있다. 분석부에 의해 제시된 결과는 사용자에게 취약성을 가진 함수에 대한 원인과 결과를 명확히 파악하여 안전한 프로그램을 작성하기 위한 도구로써 사용될 수 있다.
향후 연구 과제로는 위에서 언급한 정적 도구로는 분석할 수 없는 취약성을 분석하기 위해응용 실행 시 그 취약성들을 분석하는 실행 시간 분석 도구의 개발이 요구된다.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.