KR100653122B1 - Real-time detection system and method based rule for safety software development - Google Patents
Real-time detection system and method based rule for safety software development Download PDFInfo
- Publication number
- KR100653122B1 KR100653122B1 KR1020050080571A KR20050080571A KR100653122B1 KR 100653122 B1 KR100653122 B1 KR 100653122B1 KR 1020050080571 A KR1020050080571 A KR 1020050080571A KR 20050080571 A KR20050080571 A KR 20050080571A KR 100653122 B1 KR100653122 B1 KR 100653122B1
- Authority
- KR
- South Korea
- Prior art keywords
- vulnerability
- rule
- module
- repository
- buffer overflow
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 12
- 238000011897 real-time detection Methods 0.000 title claims description 7
- 239000000872 buffer Substances 0.000 claims abstract description 37
- 238000004458 analytical method Methods 0.000 claims description 6
- 241000287219 Serinus canaria Species 0.000 description 18
- 230000007123 defense Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000002265 prevention Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
Description
도 1은 종래의 ITS4를 실행했을 때의 화면1 is a screen when the conventional ITS4 is executed
도 2는 종래의 StackGuard 방어 기법을 나타낸 도면Figure 2 illustrates a conventional StackGuard defense technique
도 3은 본 발명에 따른 실시간으로 프로그램의 취약성을 탐지하기 위한 시스템의 개략적인 구성도.3 is a schematic structural diagram of a system for detecting a vulnerability of a program in real time according to the present invention;
도 4는 본 발명에 의한 룰(rule) 기반의 실시간 탐지 시스템의 처리에 대한 흐름도.4 is a flow chart for processing of a rule-based real-time detection system according to the present invention.
** 도면의 주요 부분에 대한 부호의 설명 **** Description of symbols for the main parts of the drawing **
100...분석 모듈 200...Checker 모듈100 ...
300...rule Loader 모듈 400...Highlighter 모듈300 ... rule Loader Module 400 ... Highlighter Module
500...Alerter 모듈 600...Resolution Loader 모듈500 ... Alerter
700...취약성 데이터베이스 800...해결책 데이터베이스700
본 발명은 소프트웨어의 개발 단계에서 프로그래머가 소스 코드를 작성 시 취약점이 될 수 있는 취약성들을 룰(rule)로 정의하고 이를 실시간으로 탐지하여 해결방안을 제공하는 시스템에 관한 것이다.The present invention relates to a system that defines a vulnerability that can be a vulnerability when a programmer writes source code at the development stage of the software as a rule, and detects it in real time to provide a solution.
최근에 발생하고 있는 보안 취약점을 이용한 보안 문제들의 대부분은 소프트웨어 취약성(software vulnerability) 때문이다. 이러한 소프트웨어에 존재하는 보안 취약성은 개발자의 실수에 의해 발생한다.Most of the recent security problems using security vulnerabilities are due to software vulnerabilities. Security vulnerabilities in these software are caused by developer mistakes.
보안 취약성은 소프트웨어 분야의 근본적인 문제점으로부터 파생되어 보안 사고를 발생시킬 수 있는 여지가 있는 성질로서, 해커가 보안 취약성을 악용하면, 그것이 보안 취약점으로 구체화되어 보안 사고의 원인이 된다.Security vulnerabilities are derived from fundamental problems in the software field and can cause security incidents. When a hacker exploits a security vulnerability, it is embodied as a security vulnerability and causes security incidents.
예를 들어, 잘 알려진 버퍼 오버플로우(Buffer Overflow)는 보안 취약성이며, 대부분의 소프트웨어에서 공통적으로 발생할 수 있는 하나의 프로퍼티(property)이다. 이러한 버퍼 오버플로우가 하나의 특정 소프트웨어에서 발견되어 보안 문제의 소지가 되면, 이를 보안취약점이라 부른다.For example, well-known buffer overflows are security vulnerabilities and a property that can occur in most software. When such a buffer overflow is found in one particular piece of software and poses a security issue, it is called a security vulnerability.
다른 측면에서의 보안 취약점은 그 배경에 소프트웨어의 근본적인 문제점 등이 있는 것은 아니고, 소프트웨어 개발자의 실수 등에 의해 발생하는 개개의 소프트웨어 상의 보안 문제점이다. Security vulnerabilities on the other side are not fundamental problems of software in the background, but are security problems on individual software caused by mistakes of software developers.
따라서 이러한 보안 문제들을 해결하기 위한 가장 근본적인 해결책은 소프트웨어 취약성이 존재하지 않는 '안전한 소프트웨어'를 만드는 것이다. 하지만, 100% 안전한 소프트웨어를 만든다는 것은 현실적으로 불가능한 가깝고 이러한 태생적 한계로 소프트웨어 취약성 문제는 항상 존재할 수 있기 때문에 이를 해결하기 위한 많은 연구들이 진행되었고 현재도 진행 중에 있다.Thus, the most fundamental solution to these security problems is to make 'safe software' without software vulnerabilities. However, making 100% secure software is a near practical impossibility, and due to this inherent limitation, software vulnerability problems can always exist, and much research has been done to solve this problem.
그 중에서도 소프트웨어 취약성에 있어 가장 일반적이고 대부분을 차지하는 것은 버퍼 오버플로우(Buffer Overflow) 취약성 이며, 버퍼 오버플로우 취약성을 해결하기 위한 다양한 연구들이 진행되었다. 버퍼 오버플로우 탐지 및 예방 기법에 대한 연구들은 완성된 소스 코드를 스캔하여 취약성을 탐지하는 ITS4, 컴파일러를 수정하여 버퍼 오버플로우가 발생했는지를 탐지하는 StackGuard, PointGuard와 명령어 실행이 불가능한 버퍼(non-executable buffer), 배열 범위 검사(array bound checking), 안전한 라이브러리(Lipsafe) 등과 같은 기법들이 있다. 하지만 아직까지 완벽한 버퍼 오버플로우 탐지 및 예방 기법은 없는 실정이다. 완성된 소스 코드를 대상으로 하는 ITS4는 소스 코드의 라인 수가 많은 경우 취약성을 수정하기 위해 많은 시간과 노력이 필요하다. 또한 Stack Guard와 Point Guard는 단지 버퍼 오버플로우가 발생되었는지 만을 탐지할 뿐 어떤 부분이 취약성을 가지고 있는지에 대해서는 알 수 없다. 미국 Cigital사의 ITS4는 C 언어와 C++ 언어로 작성된 소스 코드에 대해 정적 스캐닝을 통해 "suspects" 데이터베이스와 비교하여 취약한 함수 호출을 탐지하고 각 함수에 대한 위험의 정도를 나타내주는 툴이다. ITS4가 탐지 할 수 있는 취약성은 버퍼 오버플로우가 주류를 이루고 있으며 이외에도 경쟁 조건(race condition)과 몇몇 다른 취약성들을 탐지할 수 있다.Among them, the most common and occupied software vulnerabilities are buffer overflow vulnerabilities, and various studies have been conducted to solve the buffer overflow vulnerabilities. Research on buffer overflow detection and prevention techniques includes ITS4, which scans the source code to detect vulnerabilities, StackGuard that modifies the compiler to detect whether a buffer overflow has occurred, and PointGuard, and non-executable buffers. There are techniques such as buffer, array bound checking, and Lipsafe. However, there is no perfect buffer overflow detection and prevention technique yet. Targeting complete source code, ITS4 requires a lot of time and effort to fix vulnerabilities if there are many lines of source code. In addition, Stack Guard and Point Guard only detect whether a buffer overflow has occurred, and do not know what part is vulnerable. US Cigital's ITS4 is a tool that detects vulnerable function calls and indicates the degree of risk for each function compared to a "suspects" database through static scanning of source code written in C and C ++ languages. Vulnerabilities that ITS4 can detect include buffer overflows, as well as race conditions and several other vulnerabilities.
ITS4의 동작 과정은 다음과 같다.The operation process of ITS4 is as follows.
- 입력으로써 하나 이상의 C 언어나 C++ 언어 소스 파일을 받아들인다.Accepts more than one C or C ++ language source file as input.
- 각 소스 파일을 토큰 스트림으로 자른다.-Cut each source file into a token stream.
- 스캐닝 통해 토큰 스트림을 검사하고, "suspects" 데이터베이스의 식별자와 비교한다.Scan the token stream via scanning and compare it to the identifier in the "suspects" database.
- 각 위험 등급에 맞는 결과를 경고해준다.-Warn you of the consequences for each risk class.
ITS4는 취약한 함수 호출에 대해 미리 정의된 위험 등급에 따라 경고해 주는데, 그 경고 내용에는 다음과 같은 것들이 포함된다.ITS4 warns against vulnerable function calls according to a predefined risk level, which includes the following:
첫째 문제점에 대한 간단한 설명, 둘째 문제점에 대해 어떻게 코딩해야하는지에 대한 설명, 셋째 취약성의 위험 등급 등을 경고한다.It alerts you to a brief description of the first problem, how to code it for the second, and the risk rating of the third vulnerability.
도 1은 실제로 ITS4를 실행했을 때의 화면이다.1 is a screen when ITS4 is actually executed.
ITS4는 정확성은 다소 떨어지나 비교적 속도가 빠르다는 장점이 있다. 또한 "suspects" 데이터베이스의 업그레이드 문제와 취약성에 대한 분석 문제, 마이크로소프트의 비쥬얼 스튜디오와 같은 프로그래밍 환경으로의 통합등도 해결해야 할 문제점으로 지적되고 있다.ITS4 has the advantage of being relatively slow but relatively fast. In addition, upgrade issues in the "suspects" database, analysis of vulnerabilities, and integration into programming environments such as Microsoft's Visual Studio have been addressed.
StackGuard는 버퍼 오버플로우를 방지하기 위한 컴파일러 방어 전략이라고 할 수 있다. StackGuard는 리턴 주소와 스택 사이에 'canary'라고 불리는 임의의 값을 삽입하고 리턴 주소가 가르키고 있는 주소로 점프하기 전에 'canary' 워드를 검사함으로써 버퍼 오버플로우에 의해 리턴 주소가 변경되었는지 여부를 확인한다. StackGuard에서는 'canary' 값이 리턴 주소 앞에 위치하게 된다. 따라서 버퍼 오버플로우에 의해 리턴 주소를 변경하기 위해서는 'canary' 값 또한 바뀌기 때문에 리턴 주소가 가르키고 있는 주소로 점프하기 전에 이 'canary' 값의 변경 유무를 검사함으로써 리턴 주소가 변경되었는지 여부에 대해 확인할 수 있다. 'canary' 값은 'Terminator canary'와 'Random canary'의 두 종류가 있으며, 각각은 다음의 값을 가진다.StackGuard is a compiler defense strategy to prevent buffer overflows. StackGuard checks whether the return address was changed by a buffer overflow by inserting a random value called 'canary' between the return address and the stack and examining the 'canary' word before jumping to the address pointed to by the return address. . In StackGuard, the 'canary' value is placed before the return address. Therefore, in order to change the return address due to the buffer overflow, the 'canary' value is also changed, so it is possible to check whether the return address has changed by checking whether the 'canary' value has changed before jumping to the address pointed to by the return address. have. There are two kinds of 'canary' values, 'Terminator canary' and 'Random canary', each having the following values.
Terminator canary: C 언어에서 문자열의 끝을 나타내는 문자를 'canary' 값으로 가짐.Terminator canary: In C language, the character indicating the end of a string has the value 'canary'.
Random canary: 프로그램이 시작될 때마다 선택되는 32 bit의 난수 값을 'canary' 값으로 가짐Random canary: has a 32 bit random number selected as a 'canary' value each time the program starts
도 2는 StackGuard 방어 기법을 나타낸 도면이다.2 illustrates a StackGuard defense technique.
Random canary 값은 공격자가 미리 예측하지 못하도록 프로그램 시작 시에 32 bit의 난수로 결정되는데, 버퍼 오버플로우 공격이 일어난 경우 정상적인 복귀를 하기 위해 리턴 주소 값과 canary 값을 XOR 한 값도 canary 값과 더불어 저장하게 된다. Terminator canary 값은 C 언어에서 문자열의 끝을 나타내는 0(null), CR, LF, 그리고 -1(EOF)와 같은 문자를 canary 값으로 하여 만일 공격자가 canary 값을 알아내어 이를 반영한 버퍼 오버플로우 공격을 시도한 경우에도, string 계열 함수의 문자열 연산 수행 시 입력 값 중간에 문자열 끝을 만나게 하여 연산을 중단시킨다. 즉, 공격자 의도대로 긴 문자열의 복사 등이 일어나지 않게 되므로 결국 버퍼 오버플로우 공격을 막을 수 있다.The random canary value is determined by the 32-bit random number at the start of the program to prevent the attacker from predicting it in advance.In the event of a buffer overflow attack, the return address value and the canary value are also XORed together with the canary value for a normal return. Done. The terminator canary value is a canary value of characters such as 0 (null), CR, LF, and -1 (EOF) that indicate the end of a string in C. If an attacker finds a canary value and reflects the buffer overflow attack, Even if it tries, it stops the operation by encountering the end of string in the middle of input value when performing string operation of string series function. In other words, copying long strings does not occur as the attacker intended, and thus, buffer overflow attacks can be prevented.
하지만 StackGuard는 버퍼 오버플로우를 완전하게 방지하는 것이 아니라 공격을 어렵게 하는 정도의 수준을 제공하고 있기 때문에 완전한 버퍼 오버플로우의 방어는 아니다. However, StackGuard is not a defense against full buffer overflows, because it does not completely prevent buffer overflows, but rather provides a level of difficulty to attack.
본 발명은 상기의 프로그램 제작시 안전하지 못한 프로그램을 개발하여 취약성으로 인한 보안 사고가 발생하던 문제점을 해결하고 소스 코드 레벨에서 안전한 소프트웨어를 개발하기 위해 안출된 것으로, 프로그램 제작 시에 발생되는 소프트웨어의 취약성을 룰(rule)로 생성한 뒤 상기 룰(rule)을 이용하여 실시간으로 소프트웨어의 취약성을 탐지하는 소프트웨어 개발을 위한 룰 기반의 실시간 탐지 시스템을 제공하는 데 그 목적이 있다.The present invention has been made to solve the problem that a security incident caused by the vulnerability by developing an insecure program during the production of the program and to develop a secure software at the source code level, the vulnerability of the software generated during the program production It is an object of the present invention to provide a rule-based real-time detection system for software development that detects the vulnerability of software in real time using the rule after generating the rule as a rule.
본 발명은 소프트웨어의 보안 취약성을 검증하는 시스템에 있어서, 소프트웨어의 개발 단계에서 소스 코드를 작성 시 취약점이 될 수 있는 취약성들을 룰(rule)로 정의하고 입력되는 소스를 분석하여 상기 정의된 룰과 소스를 비교/검증하여 보안상의 취약성을 발견되면 상기 보안상의 취약점을 실시간으로 탐지하여 해결방안을 제공하는 시스템에 관한 것이다.The present invention is a system for verifying security vulnerabilities of software, in the development stage of the software to define the vulnerabilities that can be vulnerabilities when creating source code as a rule (rule) and analyzes the input source and the rules defined above If a security vulnerability is found by comparing / verifying the present invention, the present invention relates to a system that provides a solution by detecting the security vulnerability in real time.
이하 첨부된 도면에 의해 본 발명을 설명한다.Hereinafter, the present invention will be described with reference to the accompanying drawings.
도 3은 본 발명에 따른 실시간으로 프로그램의 취약성을 탐지하기 위한 시스템의 개략적인 구성도를 나타낸 것으로, 그 구성은,Figure 3 shows a schematic configuration diagram of a system for detecting a vulnerability of a program in real time according to the present invention, the configuration is,
시스템을 통해 프로그래머가 입력하는 값을 분석하여 현재까지 입력된 소스코드의 내용을 분석하는 분석 모듈(100);An
상기 분석 모듈로부터 분석된 내용이 버퍼 오버플로우 취약성을 가진 소스 코드인지 여부를 검사하기 위해 해당 소스를 룰 로더(rule Loader)로부터 입력되는 rule과 비교하는 Checker 모듈(200);A Checker module (200) for comparing a source inputted from a rule loader to check whether the content analyzed from the analysis module is source code having a buffer overflow vulnerability;
상기 Checker 모듈에 의해 버퍼 오버플로우 취약성을 가진 소스 코드의 일부분을 표시하는 Highlighter 모듈(400);A
상기 Checker 모듈에 의해 버퍼 오버플로우 취약성을 가진 소스로 판명될 경우 그 취약성의 내용과 해당 취약성에 대한 해결책을 Resolution Loader 모듈로부터 가져와 그 내용을 message box로 화면상에 출력해 주는 Alerter 모듈(500);An alerter module (500) which, when determined by the Checker module as a source having a buffer overflow vulnerability, obtains the content of the vulnerability and a solution for the vulnerability from the Resolution Loader module and outputs the content on the screen in a message box;
버퍼 오버플로우 취약성을 가진 부분에 대하여 룰(rule)을 정의하고 상기 룰이 저장된 취약성 데이터베이스(Vulnerability rule repository, 700)와 시스템의 실행 시 상기 취약성 데이터베이스(Vulnerability rule repository, 700)를 오픈하고 룰(rule)을 loading하는 rule Loader 모듈(300);Define a rule for the part with the buffer overflow vulnerability, open the vulnerability database (Vulnerability rule repository) 700 where the rule is stored, and open the vulnerability database (Vulnerability rule repository) 700 when the system is running. A rule loader module (300) for loading);
상기 취약성 데이터베이스(Vulnerability repository, 700)에 있는 버퍼 오버플로우 취약성이 어떠한 형태인지와 해당 취약성을 해결할 수 있는 방법에 대한 내용이 저장된 해결책 데이터베이스(Resolution repository, 800)와 시스템의 실행 시 상기 해결책 데이터베이스(Resolution repository, 800)를 오픈하고 데이터를 loading하는 Resolution Loader 모듈(600); 로 이루어진다.A solution repository (800) that stores information about the types of buffer overflow vulnerabilities in the vulnerability database (Vulnerability repository, 700) and how to resolve them. a
상기에서 버퍼 오버플로우 취약성을 가진 부분에 대하여 룰(rule)을 정의하고 상기 룰이 저장된 취약성 데이터베이스(Vulnerability rule repository, 700)와 상기 취약성 데이터베이스(Vulnerability repository, 700)에 있는 버퍼 오버플로우 취약성이 어떠한 형태인지와 해당 취약성을 해결할 수 있는 방법에 대한 내용이 저장된 해결책 데이터베이스(Resolution repository, 800)는 공지된 내용을 정의한 데이터베이스이다.In the above, a rule is defined for a part having a buffer overflow vulnerability, and the buffer overflow vulnerability in the vulnerability database (Vulnerability rule repository) 700 and the vulnerability database (Vulnerability repository) 700 is stored. The Solution Repository (800), which stores information about awareness and how to resolve the vulnerability, is a database that defines known content.
즉, 시스템이 시작되면서 rule Loader 모듈(300)과 Resolution Loader 모듈(600)은 각각 상기 취약성 데이터베이스(Vulnerability rule repository, 700)와 해결책 데이터베이스(Resolution repository, 800)를 오픈하고 룰(rule)을 로딩(loading)하여 보안상 취약성이 탐지되면 상기 보안상 취약성에 대한 해결책을 Alerter 모듈에 실시간으로 전송한다.That is, as the system starts, the
도 4는 본 발명에 의한 룰(rule) 기반의 실시간 탐지 시스템의 처리에 대한 흐름도이다.4 is a flowchart of the processing of a rule-based real-time detection system according to the present invention.
첨부된 흐름도에 대해서 설명하면 When explaining the attached flowchart
취약성 데이터베이스(Vulnerability rule repository, 700)와 해결책 데이터베이스(Resolution repository, 800)를 오픈하고 데이터를 loading하는 단계(S_10);Opening a vulnerability database (Vulnerability rule repository) 700 and a solution database (Resolution repository 800) and loading data (S_10);
입력된 소트프웨어의 소스코드를 로딩하는 단계(S_20);Loading source code of the input software (S_20);
상기 입력된 소스코드를 parser를 통해 문서를 해석하여 분석하는 단계(S_30);Analyzing the input source code by analyzing a document through a parser (S_30);
상기의 분석한 데이터를 checker 모듈에 전달하는 단계(S_40);Delivering the analyzed data to a checker module (S_40);
상기의 분석한 내용이 버퍼 오버플로우 취약성을 가진 소스인지 취약성 데이터베이스(Vulnerability rule repository)의 룰(rule)과 비교/검증하는 단계(S_50);Comparing / verifying the analyzed content with a rule of a Vulnerability rule repository whether the source has a buffer overflow vulnerability (S_50);
상기 checker 모듈에서 취약성이 발견되면 상기 취약성의 정보를 highlighter 모듈과 alerter 모듈로 전송하는 단계(S_60);If a vulnerability is found in the checker module, transmitting information about the vulnerability to a highlighter module and an alerter module (S_60);
상기 alerter 모듈에 전송된 취약성에 대하여 해결책 데이터베이스(Resolution repository)에서 저장된 해결책을 검색하는 단계(S_70);Retrieving a stored solution from a solution repository for a vulnerability transmitted to the alerter module (S_70);
상기 발견된 취약성을 해결하기 위한 해결책을 디스플레이하는 단계(S_80);Displaying a solution for solving the found vulnerability (S_80);
상기 highlighter 모듈에 전송된 정보에 대하여 소스코드를 변경하는 단계(S_71);Changing a source code with respect to the information transmitted to the highlighter module (S_71);
상기 변경된 소스코드를 사용자의 모니터에 디스플레이하는 단계(S_81);Displaying the changed source code on a user's monitor (S_81);
상기 비교/검증하는 단계(S_50)에서 취약성이 없을 경우 종료한다.If there is no vulnerability in the comparing / verifying step (S_50), it ends.
상기의 highlighter 모듈에 전송된 정보에 대하여 소스코드를 변경하는 단계(S_71)에서 소스 코드의 변경이라 함은 상기 소스코드의 글자색을 변경하거나 또는 상기 소스코드에 밑줄을 표시하는 것을 의미한다.Changing the source code in the step of changing the source code with respect to the information transmitted to the highlighter module (S_71) means changing the text color of the source code or underlining the source code.
상기의 취약성 데이터베이스(Vulnerability rule repository)와 해결책 데이터베이스(Resolution repository)는 별도로 저장되는 데이터베이스로 보안상이 취약성이 발견되는 소스가 발견되면 상기 취약성을 하나의 룰로 생성하여 취약성 데이터베이스에 저장하고, 상기의 취약성에 대한 해결책을 해결책 데이터베이스에 저장하여 업데이트 및 관리가 용이하다.The Vulnerability Rule Repository and the Solution Repository are separate databases. When a source where security vulnerabilities are found is found, the vulnerability is generated as a rule and stored in the vulnerability database. The solution is stored in the solution database for easy updating and management.
본 발명은 프로그램의 보안 취약성에 대하여 검증하는 것으로 프로그램 개발 이후에 소스코드의 수정은 복잡하고 어려운 문제가 될 수 있으나, 본 발명의 시스템은 프로그램 개발 단계에서 하나의 라인이 입력되면 상기 입력된 소스에 대하여 실시간으로 보안상의 취약성을 표시한다.The present invention verifies the security vulnerabilities of the program, the modification of the source code after the program development can be a complex and difficult problem, but the system of the present invention, if one line is input at the program development stage, the input source Security vulnerability is displayed in real time.
본 발명에 따르면 프로그램의 개발은 단순한 형태가 아닌 복잡한 알고리즘을 이용하는 경우가 대부분이기 때문에 프로그램 개발 단계에서 프로그램의 보안 취약성을 검증하고 시스템 보안상의 취약한 부분을 표시하여 안정적인 프로그램을 개발할 수 있는 시스템을 제공할 수 있다.According to the present invention, since the development of a program is mostly using a complex algorithm rather than a simple form, it is possible to provide a system capable of developing a stable program by verifying a security vulnerability of the program at the program development stage and displaying a weak part of the system security. Can be.
따라서 프로그램 개발 단계에서 보안상의 취약한 문제를 사전에 방지함으로써 프로그램 실행 이후에 발생하는 보안 사고를 감소시켜 보안 방지에 소요되는 시간 및 비용을 절감할 수 있다.Therefore, it is possible to reduce the security incidents occurring after the program execution by reducing the security vulnerabilities at the program development stage in advance, thereby reducing the time and cost of security prevention.
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050080571A KR100653122B1 (en) | 2005-08-31 | 2005-08-31 | Real-time detection system and method based rule for safety software development |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050080571A KR100653122B1 (en) | 2005-08-31 | 2005-08-31 | Real-time detection system and method based rule for safety software development |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100653122B1 true KR100653122B1 (en) | 2006-12-01 |
Family
ID=37731839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050080571A KR100653122B1 (en) | 2005-08-31 | 2005-08-31 | Real-time detection system and method based rule for safety software development |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100653122B1 (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009116748A2 (en) * | 2008-03-19 | 2009-09-24 | 주식회사케투씨소프트 | Reserved component container-based software development method and apparatus |
KR101640479B1 (en) | 2015-08-28 | 2016-07-18 | (주)엔키소프트 | Software vulnerability attack behavior analysis system based on the source code |
KR20160112744A (en) * | 2015-03-20 | 2016-09-28 | 소프트캠프(주) | document security system and security method |
KR20180103475A (en) * | 2017-03-10 | 2018-09-19 | 아주대학교산학협력단 | Method and apparatus for detecting vulnerability of software |
KR20190125251A (en) | 2012-06-25 | 2019-11-06 | (주)트리니티소프트 | Method of interworking web-firewall and weak point analyzer |
CN112534400A (en) * | 2018-08-03 | 2021-03-19 | 大陆-特韦斯贸易合伙股份公司及两合公司 | Method for analyzing source code |
-
2005
- 2005-08-31 KR KR1020050080571A patent/KR100653122B1/en not_active IP Right Cessation
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009116748A2 (en) * | 2008-03-19 | 2009-09-24 | 주식회사케투씨소프트 | Reserved component container-based software development method and apparatus |
WO2009116748A3 (en) * | 2008-03-19 | 2009-12-17 | 주식회사케투씨소프트 | Reserved component container-based software development method and apparatus |
KR20190125251A (en) | 2012-06-25 | 2019-11-06 | (주)트리니티소프트 | Method of interworking web-firewall and weak point analyzer |
KR20160112744A (en) * | 2015-03-20 | 2016-09-28 | 소프트캠프(주) | document security system and security method |
KR101670456B1 (en) | 2015-03-20 | 2016-10-28 | 소프트캠프(주) | document security system and security method |
KR101640479B1 (en) | 2015-08-28 | 2016-07-18 | (주)엔키소프트 | Software vulnerability attack behavior analysis system based on the source code |
KR20180103475A (en) * | 2017-03-10 | 2018-09-19 | 아주대학교산학협력단 | Method and apparatus for detecting vulnerability of software |
KR101968544B1 (en) | 2017-03-10 | 2019-04-12 | 아주대학교산학협력단 | Method and apparatus for detecting vulnerability of software |
CN112534400A (en) * | 2018-08-03 | 2021-03-19 | 大陆-特韦斯贸易合伙股份公司及两合公司 | Method for analyzing source code |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8266700B2 (en) | Secure web application development environment | |
US10120997B2 (en) | Code instrumentation for runtime application self-protection | |
US8615804B2 (en) | Complementary character encoding for preventing input injection in web applications | |
CN101356535B (en) | A method and apparatus for detecting and preventing unsafe behavior of javascript programs | |
US8646088B2 (en) | Runtime enforcement of security checks | |
US8850405B2 (en) | Generating sound and minimal security reports based on static analysis of a program | |
US8635602B2 (en) | Verification of information-flow downgraders | |
US20070271617A1 (en) | Vulnerability check program, vulnerability check apparatus, and vulnerability check method | |
US8701186B2 (en) | Formal analysis of the quality and conformance of information flow downgraders | |
Weber et al. | A toolkit for detecting and analyzing malicious software | |
CN101751530B (en) | Method for detecting loophole aggressive behavior and device | |
Piet et al. | Jatmo: Prompt injection defense by task-specific finetuning | |
Endignoux et al. | Caradoc: A pragmatic approach to pdf parsing and validation | |
JP2014532222A (en) | Methods, computer program products, and equipment for evaluating downgrader code in application code (automatic detection of defects and incompatibility issues in information flow downgraders) | |
CN115269427A (en) | Intermediate language representation method and system for WEB injection vulnerability | |
Leithner et al. | Hydra: Feedback-driven black-box exploitation of injection vulnerabilities | |
Peguero et al. | An empirical study of the framework impact on the security of javascript web applications | |
KR100653122B1 (en) | Real-time detection system and method based rule for safety software development | |
Dubin | Content disarm and reconstruction of RTF files a zero file trust methodology | |
Zhu et al. | Detecting privilege escalation attacks through instrumenting web application source code | |
JP5077455B2 (en) | Vulnerability audit program, vulnerability audit device, vulnerability audit method | |
Klein et al. | Parse Me, Baby, One More Time: Bypassing HTML Sanitizer via Parsing Differentials | |
Wheeler | Initial analysis of underhanded source code | |
Yu et al. | Security Defect Detection via Code Review: A Study of the OpenStack and Qt Communities | |
Ghazaly | Learning the idea behind SAST (static application security testing) and how it functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120913 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20131030 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |