KR101015402B1 - Security method and apparatus for web-applications using security tag - Google Patents
Security method and apparatus for web-applications using security tag Download PDFInfo
- Publication number
- KR101015402B1 KR101015402B1 KR1020100028094A KR20100028094A KR101015402B1 KR 101015402 B1 KR101015402 B1 KR 101015402B1 KR 1020100028094 A KR1020100028094 A KR 1020100028094A KR 20100028094 A KR20100028094 A KR 20100028094A KR 101015402 B1 KR101015402 B1 KR 101015402B1
- Authority
- KR
- South Korea
- Prior art keywords
- verification
- parameter
- input value
- security
- tag
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012795 verification Methods 0.000 claims abstract description 100
- 238000003780 insertion Methods 0.000 claims description 13
- 230000037431 insertion Effects 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims description 6
- 238000012546 transfer Methods 0.000 claims description 5
- 238000010200 validation analysis Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 claims 1
- 238000002347 injection Methods 0.000 abstract description 2
- 239000007924 injection Substances 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012038 vulnerability analysis Methods 0.000 description 2
- 102220554706 Holliday junction recognition protein_S30T_mutation Human genes 0.000 description 1
- 102220555037 Holliday junction recognition protein_S32A_mutation Human genes 0.000 description 1
- 102220588435 Keratin, type I cytoskeletal 18_S34A_mutation Human genes 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/22—Arrangements for preventing the taking of data from a data transmission channel without authorisation
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Abstract
본 발명은 웹 어플리케이션 공격 중에서 가장 대표적인 크로스 사이트 스크립팅, SQL 삽입 공격, 악의적인 파일 실행 등과 같은 파라미터의 입력 값을 악의적으로 조작하여 이루어지는 공격에 효과적으로 대응할 수 있는 보안 방법 및 장치에 관한 것이다. 본 발명은 검증 모듈이 웹 서버에 모듈 형태로 탑재하고, 웹 어플리케이션의 파라미터에 보안 태그를 삽입하여 사용한다. 클라이언트가 웹 페이지를 요청하면, 파라미터에 삽입된 보안 태그에 따라서 검증 모듈이 동작하여 입력값을 검증하고 공격을 필터링함으로써 본 발명의 웹 어플리케이션 보안 방법을 수행한다.The present invention relates to a security method and apparatus that can effectively respond to an attack made by malicious manipulation of parameter input values such as cross-site scripting, SQL injection attack, malicious file execution, and the like among web application attacks. According to the present invention, a verification module is mounted in a web server as a module, and a security tag is inserted into a parameter of a web application. When the client requests a web page, the verification module operates according to the security tag inserted in the parameter to verify the input value and filter the attack to perform the web application security method of the present invention.
Description
본 발명은 웹 어플리케이션 공격에 효과적으로 대응하는 보안 방법 및 장치에 관한 것으로, 특히 본 발명은 웹 어플리케이션 공격 중에서 가장 대표적인 크로스 사이트 스크립팅, SQL 삽입 공격, 악의적인 파일 실행 등과 같은 파라미터의 입력 값을 악의적으로 조작하여 이루어지는 공격에 효과적으로 대응할 수 있는 보안 방법 및 장치에 관한 것이다. The present invention relates to a security method and apparatus that effectively responds to a web application attack, and in particular, the present invention relates to a malicious manipulation of parameter input values such as cross-site scripting, SQL injection attack, malicious file execution, etc. It relates to a security method and apparatus that can effectively respond to the attack made by the.
웹 환경은 그 특성상 서비스 제공을 위해 80번 포트(HTTP)나 443번 포트(HTTPS)를 열어놓아야 하는 근본적인 취약점을 안고 있다. 이에 따라서 이를 통해 웹 프로그램의 설정 및 개발 오류로 인한 웹 애플리케이션 자체의 취약점을 이용하여 홈페이지 해킹과 웹 서버 해킹이 시도될 수 있다. 이러한 공격들은 기존에 사용되던 공격 패턴을 사용하기도 하지만, 새로운 해킹 방법이 시도되기도 한다. 따라서 기존의 공격 유형을 탐지하는 것뿐 아니라 새로운 공격에 대한 실시간 대처도 필요한 실정이다. Due to its nature, the web environment has a fundamental vulnerability that requires opening port 80 (HTTP) or port 443 (HTTPS) to provide services. Therefore, through this, the homepage hacking and web server hacking can be attempted by using the vulnerability of the web application itself due to a web program setting and development error. These attacks use existing attack patterns, but new hacking methods can be tried. Therefore, in addition to detecting existing attack types, it is also necessary to deal with new attacks in real time.
이를 해결하기 위해서, 웹 취약점 스캐너, 시그니처 기반의 보안 방법, 긍정 모델 기반의 보안 방법 들이 제시되었다. 그 중에서 웹 취약점 스캐너는 웹 취약점 스캐너 기술은 웹 서버 및 애플리케이션에 대해서 주기적으로 취약점 분석을 수행함으로써 추후 일어날 수 있는 공격에 대비할 수 있게 해주는 기술이다. 보통 취약점 스캐너들은 취약점에 따른 자동적인 정책 수립을 통해 빠른 정책 적용을 가능하게 해준다. 또한, 발견된 취약점들에 대한 우수한 리포팅 기능을 제공해주는 장점들을 가지고 있다. 하지만 zero-day 공격과 같은 최신 공격들에 대해 잘 대응하지 못하며 주기적인 스캐닝이 서버 측의 트래픽 증가를 유발한다는 단점을 가지고 있다. 시그니처 기반의 웹 애플리케이션 방화벽은 공격의 패턴이나 신호를 사전에 데이터베이스에 저장하여 악의적 공격 발생 시 패턴 매칭을 통해 접근 제어를 수행하는 방식을 사용한다. 이 기술은 새로운 취약점이 발생했을 때 간편하게 시그니처 업데이트를 통해 공격에 대비할 수 있게 해주는 장점을 가지고 있지만, 시그니처가 없거나 zero-day 공격의 경우에는 대응할 수 없으며, 공격에 대한 시그니처를 주기적으로 업데이트 해주어야 하는 단점들을 가지고 있다. To solve this problem, web vulnerability scanners, signature-based security methods, and affirmative model-based security methods have been proposed. Among them, Web vulnerability scanner technology is a technology that prepares for future attacks by periodically performing vulnerability analysis on web servers and applications. Vulnerability scanners usually allow fast policy application through automatic policy establishment based on the vulnerability. It also has the advantage of providing excellent reporting on discovered vulnerabilities. However, it does not respond well to modern attacks such as zero-day attacks and has the disadvantage that periodic scanning causes increased traffic on the server side. Signature-based web application firewall uses the method of access control through pattern matching in case of malicious attack by storing pattern or signal of attack in database in advance. This technology has the advantage of being able to prepare for an attack by easily updating signatures when a new vulnerability occurs, but it cannot respond in case of no signature or zero-day attack, and it is necessary to update the signature on the attack periodically. Have
긍정 모델 (positive model) 기반의 보안 기법은 기존의 패턴이나 시그니처 매칭의 부정적 방식의 접근 제어가 아닌 접근이 허용되는 형식에 대해서만 접근을 허가하는 방식의 기술이다. 여기서 긍정 모델은 접근이 허용되는 형식들을 정의해 놓은 것을 이야기한다. 이 방식의 기술은 시그니처 방식과는 달리 주기적인 업데이트를 요구하지 않고 zero-day 공격과 같은 최신 공격들에 대해서도 대응할 수 있다는 장점들을 가지고 있다. A positive model-based security technique is a technique of granting access only to the forms that are allowed access, rather than the negative access control of the existing pattern or signature matching. The affirmative model here is a definition of the forms that are allowed access. Unlike the signature method, this technology has the advantage that it can cope with the latest attacks such as zero-day attack without requiring periodic updates.
최근에 발명된 웹 어플리케이션 보안 방법에서는, 공격을 차단하기 위해서 정상적인 데이터를 수집하는 방안으로 주로 프로파일링 기법을 사용한다. 이 방법은 정상적인 요청에 대한 프로파일 데이터베이스를 생성 및 갱신하고, 이를 사용하여 비정상적인 요청 즉, 공격을 탐지하고 차단하는 방식이다. In the recently invented web application security method, a profiling technique is mainly used to collect normal data to block an attack. This method creates and updates the profile database for normal requests and uses it to detect and block abnormal requests, that is, attacks.
다음과 같은 종래의 웹 어플리케이션 보안 방법에 대한 문헌들이 알려져 있다. The following documents are known about conventional web application security methods.
본 발명이 해결하고자 하는 과제는 시그니처 기반의 방화벽이 가지는 새로운 공격에 대비하기 어렵다는 단점과 긍정 모델 기반의 기술이 가지는 부정확한 긍정모델 정의, 동작상의 과부하 등 기존의 웹 어플리케이션 보안 기술들이 가지는 단점들을 극복하는 새로운 형태의 웹 어플리케이션 보안 기법에 대한 발명을 제공하는 것을 그 목적으로 한다. The problem to be solved by the present invention is that it is difficult to prepare for a new attack of signature-based firewall, and overcomes the disadvantages of existing web application security technologies such as incorrect model definition and operation overload. Its purpose is to provide an invention for a new type of web application security technique.
이를 위해 본 발명에서는 보안 태그라는 개념을 도입하여 채용하며, 이 보안 태그를 기반으로 하여 웹 어플리케이션 입력값 검증 및 필터 기술을 사용한 새로운 방식의 웹 어플리케이션 방화벽 기술을 제시한다.To this end, the present invention introduces and employs the concept of a security tag, and proposes a new web application firewall technology using a web application input validation and filter technique based on the security tag.
본 발명은 상기 과제를 달성하기 위하여, 제1 태양에 의하면, 클라이언트의 웹 어플리케이션 공격 중에서 파라미터의 입력 값을 악의적으로 조작하여 이루어지는 공격에 효과적으로 대응하는 웹 어플리케이션 보안 방법에 있어서, 보안 태그를 파라미터 명에 삽입하는 단계; 및 상기 보안 태그를 이용하여, 상기 클라이언트의 웹 서비스 요청 시, 요청 데이터에 포함된 파라미터 입력값의 범위를 제한하거나 입력값에서 특정 공격에 대한 검증을 요청하는 단계를 포함하는 웹 어플리케이션 보안 방법을 제공한다. In accordance with a first aspect, the present invention provides a web application security method that effectively responds to an attack made by maliciously manipulating a parameter input value in a web application attack of a client, wherein the security tag is assigned to the parameter name. Inserting; And using the security tag, when requesting a web service of the client, limiting a range of parameter input values included in request data or requesting verification of a specific attack in the input data. do.
바람직하기로는 상기 보안 태그는 악의적인 입력값을 이용한 웹 어플리케이션 공격을 막기 위해서 사용되어, 허용되는 입력값의 범위를 정의하기 위한 기본형 보안 태그; 및 특정 공격에 대한 검증을 요청하기 위한 사용자 정의형 보안 태그를 포함한다. Preferably, the security tag is used to prevent web application attacks using malicious input values, and includes a basic security tag for defining a range of allowed input values; And a user-defined security tag for requesting verification for a particular attack.
본 발명은 상기 과제를 달성하기 위하여, 제2 태양에 의하면, 클라이언트의 웹 어플리케이션 공격 중에서 파라미터의 입력 값을 악의적으로 조작하여 이루어지는 공격에 효과적으로 대응하는 웹 어플리케이션 보안 장치에 있어서, 상기 클라이언트의 웹 서비스 요청 시, 상기 요청 데이터에 보안 태그가 삽입된 파라미터가 사용되었는지를 판단하고 상기 보안 태그에 따라서 검증 모듈을 호출하는 검증 모듈 관리부; 상기 보안 태그에 구비된 사용자 정의형 보안 태그에 따라서 입력값 검증을 수행하는 사용자 정의 태그 검증부; 상기 보안 태그에 구비된 허용되는 입력값의 범위를 정의하기 위한 기본형 보안 태그에 따라서 입력값 검증을 수행하는 기본형 태그 검증부; 및 상기 사용자 정의 태그 검증부와 상기 기본형 태그 검증부의 입력값 검증 결과에 따라서 공격으로 판단된 요청을 웹 서버가 거부하게 하거나 정상으로 판단된 요청을 웹 서버가 받아드리게 하는 공격 필터링 모듈을 포함하는 것을 특징으로 하는 웹 어플리케이션 보안 장치를 제공한다. According to a second aspect of the present invention, there is provided a web application security apparatus that effectively responds to an attack made by maliciously manipulating a parameter input value in a web application attack of a client, wherein the client requests a web service. A verification module manager which determines whether a parameter having a security tag inserted in the request data is used and calls a verification module according to the security tag; A user-defined tag verification unit which performs input value verification according to a user-defined security tag included in the security tag; A basic tag verification unit configured to perform input value verification according to a basic security tag for defining a range of an input value allowed in the security tag; And an attack filtering module for causing the web server to reject the request determined to be an attack according to the input value verification result of the user-defined tag verifier and the basic tag verifier, or to allow the web server to accept the request determined to be normal. A web application security device is provided.
바람직하기로는 상기 검증 모듈 관리부는 상기 웹 서비스 요청을 분석하여 파라미터 명과 입력값을 가져오는 요청 분석 모듈; 및 상기 보안 태그에 따라서 그에 맞는 검증 모듈을 호출하는 검증 요청 모듈을 포함한다. Preferably, the verification module manager comprises: a request analysis module configured to analyze the web service request to obtain a parameter name and an input value; And a verification request module for calling the verification module according to the security tag.
바람직하기로는 상기 사용자 정의 태그 검증부는 사용자 정의형 보안 태그에 대해서 크로스 사이트 스크립팅을 검증하는 모듈; 명령어 삽입을 검증하는 모듈; 및 파일 삽입을 검증하는 모듈을 포함하는 것을 특징으로 한다. Preferably, the user-defined tag verification unit comprises a module for verifying cross-site scripting for the user-defined security tag; A module for verifying instruction insertion; And a module for verifying file insertion.
바람직하기로는 상기 기본형 태그 검증부는 기본형 보안 태그에 대해서 입력값 허용 도메인을 검증하는 모듈; 및 입력값 길이를 검증하는 모듈을 포함하는 것을 특징으로 한다. Preferably, the basic tag verifier comprises: a module for verifying an input value allowed domain with respect to the basic security tag; And a module for verifying an input value length.
본 발명은 상기 과제를 달성하기 위하여, 제3 태양에 의하면, 클라이언트의 웹 서비스 요청시 웹 어플리케이션 공격 중에서 파라미터의 입력 값을 조작하여 이루어지는 공격에 대응하는 웹 어플리케이션 보안 방법에 있어서, (a) 상기 웹 서비스 요청시 요청 데이터에 포함된 파라미터와 입력값을 추출하는 단계; (b) 상기 추출된 파라미터와 입력값에서 보안 태그가 삽입되었는지를 확인하는 단계; (c) 상기 삽입된 보안 태그에 따라서 검증 모듈을 호출하여 검증을 수행하는 단계; 및 (d) 상기 검증 결과를 웹서버에 전달하는 단계를 포함하는 웹 어플리케이션 보안 방법을 제공한다. According to a third aspect of the present invention, there is provided a web application security method corresponding to an attack made by manipulating a parameter input value in a web application attack when a client requests a web service. Extracting parameters and input values included in the request data when the service is requested; (b) checking whether a security tag is inserted in the extracted parameters and input values; (c) calling a verification module according to the inserted security tag to perform verification; And (d) delivering the verification result to a web server.
바람직하기로는 상기 (a) 단계는 POST 방식의 전달에 대해서 파라미터와 입력값 전달 부분을 추출, 또는 GET 방식의 전달에 대해서 파라미터와 입력값 전달 부분을 추출하여 파라미터와 입력값을 추출하는 단계를 포함한다. Preferably, the step (a) includes extracting the parameter and the input value transfer part for POST delivery, or extracting the parameter and the input value for GET delivery. do.
바람직하기로는 상기 (b) 단계는 상기 파라미터와 입력값에서 파라미터 명을 확인하여 보안 태그가 삽입되었는지를 확인하는 단계를 포함하는 것을 특징으로 한다. Preferably, the step (b) includes checking whether a security tag is inserted by checking a parameter name in the parameter and an input value.
바람직하기로는 상기 (c) 단계는 상기 파라미터에 사용자 정의형 보안 태그가 삽입된 경우, 사용자 정의 태그 검증부의 크로스사이트 스크립팅 검증 모듈, 명령어 삽입 검증 모듈, 파일 삽입 검증 모듈을 호출하여 상기 파라미터에 대한 입력값의 검증을 수행하고 그 결과를 전달받는 단계; 상기 파라미터에 기본형 보안 태그가 삽입된 경우, 기본형 태그 검증부의 입력값 허용 도메인 검증 모듈, 입력값 길이 검증 모듈을 호출하여 상기 파라미터에 대한 입력값의 검증을 수행하고 그 결과를 전달받는 단계를 포함하는 것을 특징으로 한다. Preferably, in the step (c), when the user-defined security tag is inserted into the parameter, the user inputs the parameter by calling a cross-site scripting verification module, an instruction insertion verification module, and a file insertion verification module. Performing a verification of the value and receiving the result; If the basic security tag is inserted in the parameter, calling the input value domain validation module, input value length verification module of the basic type tag verification unit, and performing the verification of the input value for the parameter and receiving the result; It is characterized by.
바람직하기로는 상기 (d) 단계는 검증 요청 모듈로부터 전달 받은 검증 결과에 따라서, 그 검증 결과 공격으로 판단되면, 웹 서버 로그에 에러메시지를 남기고 웹 서버를 통해서 클라이언트에게 에러 페이지를 보내서 요청을 거부하는 단계; 그 검증 결과 정상으로 판단되면, 요청을 정상처리 하는 단계를 포함하는 것을 특징으로 한다. Preferably, the step (d) is to reject the request by sending an error page to the client through the web server, leaving an error message in the web server log according to the verification result received from the verification request module. step; If it is determined that the verification result is normal, it is characterized in that it comprises the step of normalizing the request.
본 발명은 상기 과제를 달성하기 위하여, 제4 태양에 의하면, 상술한 웹 어플리케이션 보안 방법을 수행하는 프로그램을 수록한 컴퓨터 판독가능 기록매체를 제공한다. In accordance with a fourth aspect, the present invention provides a computer-readable recording medium containing a program for performing the above-described web application security method.
본 발명의 보안 태그를 이용한 웹 어플리케이션 보안 방법 및 보안 장치에 따르면, 보안 태그를 이용한 파라미터 입력값 검증 및 필터링 방식을 통해서 웹 어플리케이션 공격에 실시간으로 대응할 수 있다. 이와 같은 방식이 현재 주로 사용되고 있는 아파치나 IIS와 같은 웹 서버에서 적용되어 배포되는 경우 웹 문서 작성 시 문서 내의 파라미터에 태그를 추가하여 사용하는 것만으로 웹 서버의 보안성을 크게 강화시킬 수 있다. According to the web application security method and security device using the security tag of the present invention, it is possible to respond to web application attacks in real time through the parameter input value verification and filtering method using the security tag. If this method is applied and deployed on a web server such as Apache or IIS that is currently used, the security of the web server can be greatly enhanced by simply adding a tag to a parameter in the document when creating the web document.
도 1은 본 발명에 의한 웹 어플리케이션 보안 장치의 이용예를 도시한 도면이다.
도 2는 본 발명에 의한 웹 어플리케이션 보안 장치의 개략적인 구성을 나타내는 블록도이다.
도 3은 본 발명에 의한 웹 어플리케이션 보안 방법의 동작을 설명하기 위한 흐름도이다.
도 4는 도 3의 파라미터와 입력값 추출 단계의 상세 흐름도이다.
도 5는 도 3의 보안 태그 사용 확인 단계의 상세 흐름도이다.
도 6은 도 3의 검증 수행 단계의 상세 흐름도이다.
도 7은 도 3의 검증 결과 전달 단계의 상세 흐름도이다. 1 is a diagram showing an example of using a web application security device according to the present invention.
2 is a block diagram showing a schematic configuration of a web application security apparatus according to the present invention.
3 is a flowchart illustrating an operation of a web application security method according to the present invention.
4 is a detailed flowchart of the parameter and input value extraction step of FIG. 3.
FIG. 5 is a detailed flowchart of a security tag usage checking step of FIG. 3.
6 is a detailed flowchart of a verification performing step of FIG. 3.
7 is a detailed flowchart of the verification result transferring step of FIG. 3.
이하, 첨부된 도면을 참조하여 본 발명의 보안 태그를 이용한 웹 어플리케이션 보안 방법 및 보안 장치의 바람직한 실시예들을 설명하기로 한다. Hereinafter, exemplary embodiments of a web application security method and a security device using a security tag according to the present invention will be described with reference to the accompanying drawings.
본 발명에서는 악의적인 파라미터 입력 값을 이용한 웹 어플리케이션 공격을 차단하기 위해서 보안 태그를 사용한다. 보안 태그는 웹 어플리케이션의 파라미터에 삽입되어 각 파라미터가 가질 수 있는 값의 유형을 나타내는 표시자로서, 해당 파라미터가 가질 수 있는 값의 영역, 범위를 명시한 표시자이다. 보안 태그의 종류의 하나의 예로는 표 1에 도시되어 있으며, 일반적인 입력 값을 표현하기 위해서 사용되는 기본형 보안 태그와, 복잡한 입력 값이나 특정 패턴을 가진 웹 어플리케이션 공격에 대한 검증을 요청하는 사용자 정의 보안 태그가 사용된다. In the present invention, a security tag is used to block a web application attack using a malicious parameter input value. The security tag is an indicator that indicates the type of the value that each parameter can have when inserted in the parameter of the web application. It is an indicator that specifies the range and range of the value that the parameter can have. One example of a type of security tag is shown in Table 1, which is a basic security tag used to represent common input values, and a custom security request that validates web application attacks with complex input values or specific patterns. Tag is used.
타입
type
보안 태그
Security tag
의미
meaning
기본형
보안 태그
Basic type
Security tag
Lxx
L xx
입력값을 최대 xx까지 허용
Allow input value up to xx
A
A
영문 알파벳 허용
English alphabet allowed
N
N
정수형 숫자 허용
Integer Numbers Allowed
B
B
화이트 스페이스의 사용 허용
Allow use of white space
S
S
특수 문자 사용 허용
Allow use of special characters
K
K
한글 허용
Hangul Allow
사용자정의
보안 태그
Custom
Security tag
X
X
크로스 사이트 스크립팅(XSS) 검증 필요
Require Cross Site Scripting (XSS) Validation
F
F
소수형 숫자
Decimal number
R
R
원격 파일 포함(RFI) 검증 필요
Remote file include (RFI) verification required
I
I
명령어 삽입 검증 필요
Instruction insertion verification required
상기 보안 태그의 삽입 과정은 수동으로도 이루어질 수 있지만, 이 경우 편의성이 크게 떨어진다는 단점이 있으며, 또한 복잡하게 구성된 웹 페이지의 경우에는 이를 분석하기가 쉽지 않으므로 보안 태그 삽입은 지동화된 방식으로 이루어지는 것이 바람직하다. 보안 태그의 자동 삽입은, 우선 구문을 읽고 구문내에 태그와 연계된 취약점을 가지는 소스코드, 즉 패턴이 존재하는가를 판단하여, 취약점 패턴이 존재하는 경우 해당 구문안에 있는 변수들과 취약점에 맺는 태그를 맵핑하여 저장해 둔 뒤, 취약점 분석 단계가 끝나면 일괄적으로 변수에 태그를 생성하는 방식으로 이루어진다.The process of inserting the security tag may be performed manually, but in this case, there is a disadvantage in that the convenience is greatly reduced. In addition, in the case of a complicated web page, the security tag insertion is made in an automated manner. It is preferable. Automatic insertion of security tags first reads the syntax and determines whether the source code, or pattern, that contains the vulnerability associated with the tag exists in the syntax. After mapping and saving, after the vulnerability analysis step is completed, tags are created in a batch.
도 1은 본 발명에 의한 웹 어플리케이션 보안 장치, 즉 웹 어플리케이션 공격을 차단하는 장치의 이용예를 도시한 도면이다. 1 is a diagram showing an example of using a web application security device, that is, a device for blocking a web application attack according to the present invention.
도 1에 도시한 바와 같이, 입력값 검증 및 공격 차단 장치로서의 웹 어플리케이션 보안 장치(200)는 웹 서버(100)에 모듈로 탑재되어, 클라이언트(공격자)단말기(10)로부터 인터넷망(50)을 거쳐 웹서버(100)에 전달된 요청을 웹 서버로부터 전달받고 이에 대한 검증을 수행한 결과를 다시 웹 서버(100)에 전달한다. As shown in FIG. 1, the web
도 2는 본 발명의 실시예인 웹 어플리케이션 보안 장치(200)의 구성을 나타내는 블록도로 크게 검증 모듈 관리부(210), 사용자 정의 태그 검증부(220), 기본형 태그 검증부(230), 및 사용자 정의 태그 생성부(240)를 포함한다. 2 is a block diagram showing a configuration of a web
검증 모듈 관리부(210)는 웹서버(100)로부터 웹 페이지 요청을 받아와서 요청을 분석하여 파라미터와 입력값을 구분 한 뒤, 파라미터에 삽입된 보안 태그에 따라서 검증 모듈에 검증을 요청하고 이에 따라서 공격을 필터링하여 그 결과를 웹 서버(100)에 전달하는 역할을 한다. 좀더 상세하게는, 검증 모듈 관리부(210)는 요청 분석 모듈(211)에서 클라이언트(10)로부터의 요청을 웹 서버(100)에서 가져온 뒤, 분석을 통해 파라미터와 입력값 부분을 추려내고 검증 요청 모듈(213)에 파라미터에 대한 입력값의 검증을 수행하도록 요청한다. 검증 요청 모듈(213)은 파라미터에 삽입된 보안 태그에 따라서 그에 맞게 사용자 정의 태그 검증부(220) 또는 기본형 태그 검증부(230)의 검증 모듈을 호출하여 검증을 수행한다. The
사용자 정의 태그 검증부(220)는 시그니처 혹은 사용자의 정의된 검증 규칙을 기반으로 입력값 검증을 수행하는 역할을 한다. 좀더 상세하게는, 사용자 정의 태그 검증부(220)는 사용자 정의 보안 태그와 연결되며, 각 태그에 맞게 해당 검증 모듈이 수행된다. 파라미터에 X 태그가 삽입된 경우 크로스 사이트 스크립팅 검증 모듈(221)이 호출되고, I 태그가 삽입된 경우 명령어 삽입 검증 모듈(222)이 호출되고, R 태그가 삽입된 경우 파일 삽입 검증 모듈(223)이 호출되어 각각 검증을 수행한다. The user-defined
기본형 태그 검증부(230)는 입력값 허용 도메인과 길이를 검증한다. 좀더 상세하게는, 기본형 태그 검증부(230)는 기본형 보안 태그와 연결되며, 해당 보안 태그로는 L, A, N, B, S, K이 있다. 파라미터에 L 태그와 최대 길이가 삽입된 경우 입력값 길이 검증 모듈(232)이 호출되고, 그 밖의 태그는 입력값 허용 도메인 검증 모듈(231)이 호출되어 입력값 검증을 수행한다. The basic
기본적으로 사용자 정의형 태그와 기본형 태그를 혼합하여 사용하지 않는다. 만약 사용자 정의형 태그와 기본형 태그를 혼합하여 사용할 필요가 있는 경우, 사용자 정의 태그 생성부(240)를 통해 새로운 사용자 정의 태그로 재정의하여 사용한다. 새로운 사용자 정의 태그 생성은 사용자가 새로운 태그를 통해 검증할 내용을 생성기에 입력하면 자동으로 생성되어 별도의 설정 변경 없이 바로 검증 과정에 사용된다. By default, user-defined tags and basic tags are not mixed. If it is necessary to use a mixture of the user-defined tag and the basic tag, it is used by redefining the new user-defined tag through the user-defined
본 발명은 클라이언트의 웹 어플리케이션 공격 중에서 파라미터의 입력 값을 악의적으로 조작하여 이루어지는 공격에 효과적으로 대응하는 웹 어플리케이션 보안 방법에 적용되는 것으로, 일단 보안 태그를 파라미터 명에 삽입하고, 상기 보안 태그를 이용하여, 상기 클라이언트의 웹 서비스 요청 시, 요청 데이터에 포함된 파라미터 입력값의 범위를 제한하거나 입력값에서 특정 공격에 대한 검증을 요청하는 과정을 통하여 웹 어플리케이션 보안 방법을 수행한다. 상술한 바와 같이, 본 발명에 적용되는 보안 태그는 악의적인 입력값을 이용한 웹 어플리케이션 공격을 막기 위해서 사용되어, 허용되는 입력값의 범위를 정의하기 위한 기본형 보안 태그; 및 특정 공격에 대한 검증을 요청하기 위한 사용자 정의형 보안 태그를 포함한다. The present invention is applied to a web application security method that effectively responds to an attack made by malicious manipulation of a parameter input value in a web application attack of a client. The security tag is inserted into a parameter name and the security tag is used. When the client requests a web service, the web application security method is performed by restricting a range of parameter input values included in the request data or requesting verification of a specific attack from the input values. As described above, the security tag applied to the present invention is used to prevent web application attack using malicious input values, and includes a basic security tag for defining a range of allowed input values; And a user-defined security tag for requesting verification for a particular attack.
도 3은 본 발명에 의한 웹 어플리케이션 보안 방법의 동작을 설명하기 위한 흐름도이다. 도 3에 의하면, 클라이언트의 웹 서비스 요청시 웹 어플리케이션 공격 중에서 파라미터의 입력 값을 악의적으로 조작하여 이루어지는 공격에 효과적으로 대응하는 웹 어플리케이션 보안 방법은 웹서비스 요청 데이터를 수신한 후(S10), 상기 웹 서비스 요청 데이터에 포함된 파라미터와 입력값을 추출하고(S30), 상기 추출된 파라미터와 입력값에서 보안 태그가 사용되었는지를 확인하고(S32), 상기 삽입된 보안 태그에 따라서 검증 모듈을 호출하여 검증을 수행하고(S34) 및 상기 검증 결과를 웹서버에 전달한다(S36). 3 is a flowchart illustrating an operation of a web application security method according to the present invention. Referring to FIG. 3, when a client requests a web service, the web application security method that effectively responds to an attack by malicious manipulation of a parameter input value among web application attacks receives the web service request data (S10). Extract the parameter and the input value included in the request data (S30), check whether the security tag is used in the extracted parameter and the input value (S32), call the verification module according to the inserted security tag to verify the verification It performs (S34) and delivers the verification result to the web server (S36).
도 4는 도 3의 파라미터와 입력값 추출 단계의 상세 흐름도이다.4 is a detailed flowchart of the parameter and input value extraction step of FIG. 3.
도 4에 의하면, 상기 웹 서비스 요청 데이터에 포함된 파라미터와 입력값을 추출하는 단계(S30)는 POST 방식의 전달에 대해서 파라미터와 입력값 전달 부분을 추출하거나(S30A), 또는 GET 방식의 전달에 대해서 파라미터와 입력값 전달 부분을 추출하여 파라미터와 입력값을 추출한다(S30B). Referring to FIG. 4, the step of extracting the parameter and the input value included in the web service request data (S30) may extract the parameter and the input value transfer part for the POST method delivery (S30A) or the GET method delivery. Extracting the parameter and the input value transfer unit extracts the parameter and the input value (S30B).
도 5는 도 3의 보안 태그 사용 확인 단계의 상세 흐름도이다. FIG. 5 is a detailed flowchart of a security tag usage checking step of FIG. 3.
도 5에 의하면, 상기 추출된 파라미터와 입력값에서 보안 태그가 사용되었는지를 확인하는 단계(S32)는 상기 파라미터와 입력값에서 파라미터 명의 앞부분을 확인하여 보안 태그가 사용되었는지를 확인하는 단계(S32A)를 포함한다. Referring to FIG. 5, in the checking of whether the security tag is used in the extracted parameter and the input value (S32), the step of checking whether the security tag is used by checking the front part of the parameter name in the parameter and the input value (S32A) It includes.
도 6은 도 3의 검증 수행 단계의 상세 흐름도이다. 6 is a detailed flowchart of a verification performing step of FIG. 3.
도 6에 의하면, 상기 삽입된 보안 태그에 따라서 검증 모듈을 호출하여 검증을 수행하는 단계(S34)는 상기 파라미터에 사용자 정의형 보안 태그가 삽입된 경우, 사용자 정의 태그 검증부의 크로스사이트 스크립팅 검증 모듈, 명령어 삽입 검증 모듈, 파일 삽입 검증 모듈을 호출하여 검증을 수행하고 그 결과를 전달받는 단계(S34A); 상기 파라미터에 기본형 보안 태그가 삽입된 경우, 기본형 태그 검증부의 입력값 허용 도메인 검증 모듈, 입력값 길이 검증 모듈을 호출하여 검증을 수행하고 그 결과를 전달받는 단계(S34B)를 포함한다. According to Figure 6, the step of performing the verification by calling the verification module according to the inserted security tag (S34) when the user-defined security tag is inserted into the parameter, the cross-site scripting verification module of the user-defined tag verification unit, Calling the command insertion verification module and the file insertion verification module to perform verification and receiving a result (S34A); When the basic security tag is inserted into the parameter, calling the input value allowable domain verification module and the input value length verification module of the basic tag verification unit to perform verification and receive the result (S34B).
도 7은 도 3의 검증 결과 전달 단계의 상세 흐름도이다. 7 is a detailed flowchart of the verification result transferring step of FIG. 3.
도 7에 의하면, 상기 검증 결과를 웹서버에 전달하는 단계(S36)는 검증 요청 모듈로부터 전달 받은 검증 결과에 따라서, 그 검증 결과 공격으로 판단되면, 웹 서버 로그에 에러메시지를 남기고 웹 서버를 통해서 클라이언트에게 에러 페이지를 보내서 요청을 거부하는 단계(S36A); 및 그 검증 결과 정상으로 판단되면, 요청을 정상처리 하는 단계(S36B)를 포함한다. According to FIG. 7, in operation S36, when the verification result is determined to be an attack according to the verification result received from the verification request module, an error message is left in the web server log and the web server is sent through the web server. Rejecting the request by sending an error page to the client (S36A); And if it is determined that the verification result is normal, normalizing the request (S36B).
본 발명에 의한 클라이언트의 웹 어플리케이션 공격 중에서 파라미터의 입력 값을 악의적으로 조작하여 이루어지는 공격에 효과적으로 대응하는 웹 어플리케이션 보안 방법을 수행하는 프로그램을 수록한 컴퓨터 판독가능 기록매체에 저장되어 컴퓨터에서 실행된다. In the web application attack of the client according to the present invention, a program for executing a web application security method that effectively responds to an attack caused by malicious manipulation of a parameter input value is stored in a computer-readable recording medium and executed on a computer.
상술한 바와 같이, 본 발명은 검증 모듈이 웹 서버에 모듈 형태로 탑재하고, 웹 어플리케이션의 파라미터에 보안 태그를 삽입하여 사용한다. 클라이언트가 웹 페이지를 요청하면, 파라미터에 삽입된 보안 태그에 따라서 검증 모듈이 동작하여 입력값을 검증하고 공격을 필터링함으로써 본 발명의 웹 어플리케이션 보안 방법을 수행한다.As described above, in the present invention, the verification module is mounted in the form of a module in a web server, and a security tag is inserted into a parameter of a web application. When the client requests a web page, the verification module operates according to the security tag inserted in the parameter to verify the input value and filter the attack to perform the web application security method of the present invention.
10...클라이언트
50...인터넷망
100...웹서버
200...웹 어플리케이션 보안장치10 ... Client
50.Internet
100 ... Web Server
200 ... Web Application Security
Claims (6)
(a) 상기 웹 서비스 요청시 요청 데이터에 포함된 파라미터와 입력값을 추출하는 단계;
(b) 상기 추출된 파라미터와 입력값에서 보안 태그가 삽입되었는지를 확인하는 단계;
(c) 상기 삽입된 보안 태그에 따라서 검증 모듈을 호출하여 상기 파라미터에 대한 입력값의 검증을 수행하는 단계; 및
(d) 상기 검증 결과를 웹서버에 전달하는 단계를 포함하는 웹 어플리케이션 보안 방법. In the web application security method corresponding to the attack made by manipulating the input value of the parameter among the web application attack when the client requests a web service,
(a) extracting a parameter and an input value included in the request data when the web service request is made;
(b) checking whether a security tag is inserted in the extracted parameters and input values;
(c) calling a verification module according to the inserted security tag to perform verification of input values for the parameters; And
(d) transmitting the verification result to a web server.
상기 파라미터에 기본형 보안 태그가 삽입된 경우, 기본형 태그 검증부의 입력값 허용 도메인 검증 모듈, 입력값 길이 검증 모듈을 호출하여 상기 파라미터에 대한 입력값의 검증을 수행하고 그 결과를 전달받는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 보안 방법. The method of claim 1, wherein the step (c) includes calling a cross-site scripting verification module, an instruction insertion verification module, and a file insertion verification module when the user-defined security tag is inserted into the parameter. Performing verification of an input value for and receiving the result;
If the basic security tag is inserted in the parameter, calling the input value domain validation module, input value length verification module of the basic type tag verification unit, and performing the verification of the input value for the parameter and receiving the result; Web application security method, characterized in that.
그 검증 결과 정상으로 판단되면, 요청을 정상처리 하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 보안 방법. The method of claim 1, wherein the step (d) is based on the verification result received from the verification request module, and if the verification result is determined to be an attack, leaves an error message in the web server log and sends an error page to the client through the web server. Rejecting;
And if it is determined that the verification result is normal, processing the request normally.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100028094A KR101015402B1 (en) | 2010-03-29 | 2010-03-29 | Security method and apparatus for web-applications using security tag |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100028094A KR101015402B1 (en) | 2010-03-29 | 2010-03-29 | Security method and apparatus for web-applications using security tag |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080020081A Division KR100964505B1 (en) | 2008-03-04 | 2008-03-04 | Security method and apparatus for web-applications using security tag |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100059745A KR20100059745A (en) | 2010-06-04 |
KR101015402B1 true KR101015402B1 (en) | 2011-02-22 |
Family
ID=42360953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100028094A KR101015402B1 (en) | 2010-03-29 | 2010-03-29 | Security method and apparatus for web-applications using security tag |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101015402B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101721534B1 (en) * | 2010-08-25 | 2017-03-30 | 에스케이텔레콤 주식회사 | System and method for certification in collecting information environment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100670209B1 (en) * | 2004-12-23 | 2007-01-16 | 한국전자통신연구원 | Device of analyzing web application source code based on parameter status tracing and method thereof |
-
2010
- 2010-03-29 KR KR1020100028094A patent/KR101015402B1/en not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100670209B1 (en) * | 2004-12-23 | 2007-01-16 | 한국전자통신연구원 | Device of analyzing web application source code based on parameter status tracing and method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20100059745A (en) | 2010-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10848505B2 (en) | Cyberattack behavior detection method and apparatus | |
US7950056B1 (en) | Behavior based processing of a new version or variant of a previously characterized program | |
RU2446459C1 (en) | System and method for checking web resources for presence of malicious components | |
US20070136809A1 (en) | Apparatus and method for blocking attack against Web application | |
KR101672791B1 (en) | Method and system for detection of vulnerability on html5 mobile web application | |
US10693901B1 (en) | Techniques for application security | |
CN109167754A (en) | A kind of network application layer security protection system | |
US20090100518A1 (en) | System and method for detecting security defects in applications | |
US20130263263A1 (en) | Web element spoofing prevention system and method | |
US11108803B2 (en) | Determining security vulnerabilities in application programming interfaces | |
JP2015511338A (en) | Method and system for ensuring the reliability of IP data provided by a service provider | |
CN104348789A (en) | Web server and method for preventing cross-site scripting attack | |
CN109933980A (en) | A kind of vulnerability scanning method, apparatus and electronic equipment | |
US8104078B2 (en) | System and method for preventing service oriented denial of service attacks | |
US20120102541A1 (en) | Method and System for Generating an Enforceable Security Policy Based on Application Sitemap | |
CN111181924A (en) | Web application firewall method and system based on application gateway | |
CN109684878B (en) | Privacy information tamper-proofing method and system based on block chain technology | |
CN106209907B (en) | Method and device for detecting malicious attack | |
CN107580002B (en) | Double-factor authentication security manager login system and method | |
CN110636038A (en) | Account number analysis method, account number analysis device, security gateway and system | |
KR100964505B1 (en) | Security method and apparatus for web-applications using security tag | |
KR101015402B1 (en) | Security method and apparatus for web-applications using security tag | |
CN110177113B (en) | Internet protection system and access request processing method | |
Duraisamy et al. | A server side solution for protection of web applications from cross-site scripting attacks | |
CN114257445B (en) | Information control method for preventing user from instant multi-dialing authentication access |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20131231 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |