KR101015402B1 - Security method and apparatus for web-applications using security tag - Google Patents

Security method and apparatus for web-applications using security tag Download PDF

Info

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
Application number
KR1020100028094A
Other languages
Korean (ko)
Other versions
KR20100059745A (en
Inventor
김태형
김종
임정욱
Original Assignee
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포항공과대학교 산학협력단 filed Critical 포항공과대학교 산학협력단
Priority to KR1020100028094A priority Critical patent/KR101015402B1/en
Publication of KR20100059745A publication Critical patent/KR20100059745A/en
Application granted granted Critical
Publication of KR101015402B1 publication Critical patent/KR101015402B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/22Arrangements for preventing the taking of data from a data transmission channel without authorisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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

보안 태그를 이용한 웹 어플리케이션 보안 방법 및 장치{Security method and apparatus for web-applications using security tag}Security method and apparatus for web-applications using security tag

본 발명은 웹 어플리케이션 공격에 효과적으로 대응하는 보안 방법 및 장치에 관한 것으로, 특히 본 발명은 웹 어플리케이션 공격 중에서 가장 대표적인 크로스 사이트 스크립팅, 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.

1. KR 2007-0061017 A (김환국, 김명은, 서동일, 2007. 6. 13)KR 2007-0061017 A (Kim, Hwan-kuk, Kim Myung-eun, Seo Dong-il, June 13, 2007) 2. KR 2005-0048558 A (안병규, 2005, 5, 24)2.KR 2005-0048558 A (Byung-kyu Ahn, 2005, 5, 24)

[1] C. Kruegel, G. Vigna, W. Robertson. "A multi-model approach to the detection of web-based attacks" (Computer Networks: The International Journal of Computer and Telecommunications Networking, vol.48, no.5, August 2005) [1] C. Kruegel, G. Vigna, W. Robertson. "A multi-model approach to the detection of web-based attacks" (Computer Networks: The International Journal of Computer and Telecommunications Networking, vol. 48, no. 5, August 2005) [2] 박채금, 노봉남, “웹 어플리케이션 보안을 위한 프로파일 기반 탐지시스템 설계”(한국정보처리학회 2005 추계학술발표대회 및 정기총회, 2005년 11월) [2] Chae-Kum Park, Bong-Nam Noh, “Design of Profile-based Detection System for Web Application Security” (Korea Information Processing Society 2005 Fall Conference and Regular Conference, November 2005)

본 발명이 해결하고자 하는 과제는 시그니처 기반의 방화벽이 가지는 새로운 공격에 대비하기 어렵다는 단점과 긍정 모델 기반의 기술이 가지는 부정확한 긍정모델 정의, 동작상의 과부하 등 기존의 웹 어플리케이션 보안 기술들이 가지는 단점들을 극복하는 새로운 형태의 웹 어플리케이션 보안 기법에 대한 발명을 제공하는 것을 그 목적으로 한다. 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 application security apparatus 200 as an input value verification and attack blocking apparatus is mounted as a module in the web server 100 to connect the Internet network 50 from the client (attack) terminal 10. After receiving the request transmitted to the web server 100 from the web server, the result of the verification thereof is transmitted to the web server 100 again.

도 2는 본 발명의 실시예인 웹 어플리케이션 보안 장치(200)의 구성을 나타내는 블록도로 크게 검증 모듈 관리부(210), 사용자 정의 태그 검증부(220), 기본형 태그 검증부(230), 및 사용자 정의 태그 생성부(240)를 포함한다. 2 is a block diagram showing a configuration of a web application security apparatus 200 according to an embodiment of the present invention. The verification module management unit 210, the user-defined tag verification unit 220, the basic tag verification unit 230, and the user-defined tag are large. Generation unit 240 is included.

검증 모듈 관리부(210)는 웹서버(100)로부터 웹 페이지 요청을 받아와서 요청을 분석하여 파라미터와 입력값을 구분 한 뒤, 파라미터에 삽입된 보안 태그에 따라서 검증 모듈에 검증을 요청하고 이에 따라서 공격을 필터링하여 그 결과를 웹 서버(100)에 전달하는 역할을 한다. 좀더 상세하게는, 검증 모듈 관리부(210)는 요청 분석 모듈(211)에서 클라이언트(10)로부터의 요청을 웹 서버(100)에서 가져온 뒤, 분석을 통해 파라미터와 입력값 부분을 추려내고 검증 요청 모듈(213)에 파라미터에 대한 입력값의 검증을 수행하도록 요청한다. 검증 요청 모듈(213)은 파라미터에 삽입된 보안 태그에 따라서 그에 맞게 사용자 정의 태그 검증부(220) 또는 기본형 태그 검증부(230)의 검증 모듈을 호출하여 검증을 수행한다. The verification module manager 210 receives the web page request from the web server 100, analyzes the request, classifies the parameter and the input value, and requests the verification module to verify the verification according to the security tag inserted in the parameter. Filtering and transmitting the result to the web server (100). More specifically, the verification module management unit 210 retrieves the request from the client 10 from the web server 100 in the request analysis module 211, and extracts the parameter and the input value part through the analysis and verifies the verification request module. Request 213 to perform verification of the input value for the parameter. The verification request module 213 performs verification by calling the verification module of the user-defined tag verification unit 220 or the basic tag verification unit 230 according to the security tag inserted in the parameter.

사용자 정의 태그 검증부(220)는 시그니처 혹은 사용자의 정의된 검증 규칙을 기반으로 입력값 검증을 수행하는 역할을 한다. 좀더 상세하게는, 사용자 정의 태그 검증부(220)는 사용자 정의 보안 태그와 연결되며, 각 태그에 맞게 해당 검증 모듈이 수행된다. 파라미터에 X 태그가 삽입된 경우 크로스 사이트 스크립팅 검증 모듈(221)이 호출되고, I 태그가 삽입된 경우 명령어 삽입 검증 모듈(222)이 호출되고, R 태그가 삽입된 경우 파일 삽입 검증 모듈(223)이 호출되어 각각 검증을 수행한다. The user-defined tag validator 220 performs an input value verification based on a signature or a user defined verification rule. More specifically, the user-defined tag verification unit 220 is connected to the user-defined security tag, the corresponding verification module is performed for each tag. The cross-site scripting verification module 221 is called when the X tag is inserted in the parameter, the instruction insertion verification module 222 is called when the I tag is inserted, and the file insertion verification module 223 when the R tag is inserted. Is called to perform each validation.

기본형 태그 검증부(230)는 입력값 허용 도메인과 길이를 검증한다. 좀더 상세하게는, 기본형 태그 검증부(230)는 기본형 보안 태그와 연결되며, 해당 보안 태그로는 L, A, N, B, S, K이 있다. 파라미터에 L 태그와 최대 길이가 삽입된 경우 입력값 길이 검증 모듈(232)이 호출되고, 그 밖의 태그는 입력값 허용 도메인 검증 모듈(231)이 호출되어 입력값 검증을 수행한다. The basic tag verification unit 230 verifies the input value allowable domain and length. In more detail, the basic tag verification unit 230 is connected to the basic security tag, and the corresponding security tags include L, A, N, B, S, and K. When the L tag and the maximum length are inserted in the parameter, the input value length verification module 232 is called, and other tags are called by the input value allowable domain verification module 231 to perform input value verification.

기본적으로 사용자 정의형 태그와 기본형 태그를 혼합하여 사용하지 않는다. 만약 사용자 정의형 태그와 기본형 태그를 혼합하여 사용할 필요가 있는 경우, 사용자 정의 태그 생성부(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 tag generation unit 240. New user-defined tag generation is automatically generated when the user inputs the content to be verified through the new tag in the generator and is used for the verification process without any additional configuration change.

본 발명은 클라이언트의 웹 어플리케이션 공격 중에서 파라미터의 입력 값을 악의적으로 조작하여 이루어지는 공격에 효과적으로 대응하는 웹 어플리케이션 보안 방법에 적용되는 것으로, 일단 보안 태그를 파라미터 명에 삽입하고, 상기 보안 태그를 이용하여, 상기 클라이언트의 웹 서비스 요청 시, 요청 데이터에 포함된 파라미터 입력값의 범위를 제한하거나 입력값에서 특정 공격에 대한 검증을 요청하는 과정을 통하여 웹 어플리케이션 보안 방법을 수행한다. 상술한 바와 같이, 본 발명에 적용되는 보안 태그는 악의적인 입력값을 이용한 웹 어플리케이션 공격을 막기 위해서 사용되어, 허용되는 입력값의 범위를 정의하기 위한 기본형 보안 태그; 및 특정 공격에 대한 검증을 요청하기 위한 사용자 정의형 보안 태그를 포함한다. 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.
제1항에 있어서, 상기 (a) 단계는 POST 방식의 전달에 대해서 파라미터와 입력값 전달 부분을 추출, 또는 GET 방식의 전달에 대해서 파라미터와 입력값 전달 부분을 추출하여 파라미터와 입력값을 추출하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 보안 방법. The method of claim 1, wherein the step (a) extracts the parameter and the input value transfer part for POST delivery or extracts the parameter and the input value transfer for GET delivery. Web application security method comprising the step of. 제1항에 있어서, 상기 (b) 단계는 상기 파라미터와 입력값에서 파라미터 명을 확인하여 보안 태그가 삽입되었는지를 확인하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 보안 방법. The method of claim 1, wherein the step (b) includes checking whether a security tag is inserted by checking a parameter name in the parameter and an input value. 제1항에 있어서, 상기 (c) 단계는 상기 파라미터에 사용자 정의형 보안 태그가 삽입된 경우, 사용자 정의 태그 검증부의 크로스사이트 스크립팅 검증 모듈, 명령어 삽입 검증 모듈, 파일 삽입 검증 모듈을 호출하여 상기 파라미터에 대한 입력값의 검증을 수행하고 그 결과를 전달받는 단계;
상기 파라미터에 기본형 보안 태그가 삽입된 경우, 기본형 태그 검증부의 입력값 허용 도메인 검증 모듈, 입력값 길이 검증 모듈을 호출하여 상기 파라미터에 대한 입력값의 검증을 수행하고 그 결과를 전달받는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 보안 방법.
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.
제1항에 있어서, 상기 (d) 단계는 검증 요청 모듈로부터 전달 받은 검증 결과에 따라서, 그 검증 결과 공격으로 판단되면, 웹 서버 로그에 에러메시지를 남기고 웹 서버를 통해서 클라이언트에게 에러 페이지를 보내서 요청을 거부하는 단계;
그 검증 결과 정상으로 판단되면, 요청을 정상처리 하는 단계를 포함하는 것을 특징으로 하는 웹 어플리케이션 보안 방법.
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.
제1항 내지 제5항 중 어느 한 항에 기재된 방법을 수행하는 프로그램을 수록한 컴퓨터 판독가능 기록매체. A computer-readable recording medium containing a program for performing the method according to any one of claims 1 to 5.
KR1020100028094A 2010-03-29 2010-03-29 Security method and apparatus for web-applications using security tag KR101015402B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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