KR102258638B1 - Systems and methods to block JavaScript-based web automation attacks and sniffing - Google Patents

Systems and methods to block JavaScript-based web automation attacks and sniffing Download PDF

Info

Publication number
KR102258638B1
KR102258638B1 KR1020200098588A KR20200098588A KR102258638B1 KR 102258638 B1 KR102258638 B1 KR 102258638B1 KR 1020200098588 A KR1020200098588 A KR 1020200098588A KR 20200098588 A KR20200098588 A KR 20200098588A KR 102258638 B1 KR102258638 B1 KR 102258638B1
Authority
KR
South Korea
Prior art keywords
web page
file
web
client terminal
obfuscated
Prior art date
Application number
KR1020200098588A
Other languages
Korean (ko)
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 KR1020200098588A priority Critical patent/KR102258638B1/en
Application granted granted Critical
Publication of KR102258638B1 publication Critical patent/KR102258638B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2125Just-in-time application of countermeasures, e.g., on-the-fly decryption, just-in-time obfuscation or de-obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

According to one embodiment of the present invention, a JAVA script-based web automation attack and sniffing blocking method includes: a step in which a client terminal requests a web server for a webpage; a step in which the web server determines whether there is a connection history of the client terminal; a step in which, if the connection of the client terminal is the first connection, the web server creates an encrypted key value, mixes the key value with an HTML code (file) of the webpage to obfuscate the same, and then provide the webpage including the obfuscated HTML code (file), and, if the connection of the client terminal is not the first connection, the web server encrypts the HTML code (file) of the webpage with a previously provided encrypted key value, and obfuscates the same, and then provides the webpage including the obfuscated and encrypted HTML code (file); and a step in which the client terminal parses the provided obfuscated webpage, executes the HTML code (file), or decrypts the obfuscated webpage after parsing the same, and then renders the decrypted HTML code (file). Therefore, the present invention is capable of blocking a hacking attempt to a web server.

Description

자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템 및 방법{Systems and methods to block JavaScript-based web automation attacks and sniffing}{Systems and methods to block JavaScript-based web automation attacks and sniffing}

본 발명은 웹 서버와 클라이언트 간의 기본적인 HTTP 통신에서 자바스크립트를 활용한 난독화 기능 및 암/복호화를 활용하고 HTML5에서 추가된 웹 스토리지 기술에 암호화 키를 적용하여 웹 서버에 대한 해킹 시도를 차단할 수 있으며, 도/감청을 통한 패킷 스니핑에 대해서도 안전하게 보호할 수 있는 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단방법 및 시스템에 관한 것이다.The present invention utilizes the obfuscation function and encryption/decryption using JavaScript in basic HTTP communication between the web server and the client, and applies an encryption key to the web storage technology added in HTML5 to block hacking attempts on the web server. It relates to a JavaScript-based web automation attack and sniffing blocking method and system that can safely protect against packet sniffing through eavesdropping and eavesdropping.

자바 스크립트(Java Script)는 미국의 넷스케이프 커뮤니케이션스사가 개발한 스크립트 언어이며, 다양한 환경에서 사용되고 있는데, 그 중 가장 대표적인 예로서 마이크로소프트사의 인터넷 익스플로러와 같은 웹브라우저에서 실행되는 스크립트 언어로 사용되고 있다. 이 경우 표준 HTML 문서에 삽입되어 인터랙티브(interactive)한 웹페이지를 제공할 수 있으며 특히 최근들어 클라이언트 컴퓨터의 성능이 좋아지면서 애니메이션이나 간단한 계산 등은 서버에 별도 요청을 하지 않아도 클라이언트 컴퓨터에서 자바 스크립트에 의한 프로그램 작동이 가능하기 때문에 서버와의 트래픽을 감소시키기 위해 최근 활용 범위가 넓어지고 있다. 하지만, 자바 스크립트는 스크립트 언어의 특성 상 소스 코드가 그대로 노출될 수 있어 보안상 취약할 수 있다. Java Script is a script language developed by Netscape Communications Inc. of the United States, and is used in various environments. Among them, as the most representative example, it is used as a script language executed in a web browser such as Microsoft's Internet Explorer. In this case, an interactive web page can be provided by being inserted into a standard HTML document. In particular, as the performance of the client computer has improved recently, animations and simple calculations can be performed by JavaScript on the client computer without making a separate request to the server. Because it is programmable, the range of its application is expanding recently to reduce traffic to and from the server. However, Javascript may be vulnerable to security because the source code may be exposed as it is due to the nature of the script language.

그 예로서, 도 1a과 같이 소정 웹페이지는 자바 스크립트를 사용할 수 있으며, 도 1a의 웹페이지의 소스코드는 도 1b에 도시되어 있다. 도 1b의 점선 부분에서 알 수 있는 바와 같이 도 1a의 웹페이지는 파일 포맷(format)이 일반적으로 JS인 자바 스크립트 파일을 포함(include)하는 방식으로 사용하고 있으며 자바 스크립트 파일의 경로 및 파일명도 확인할 수 있다. 이와 같이, 웹페이지에 자바 스크립트가 사용되는 경우 누구라도 소스 보기 등을 통해서 자바 스크립트 소스 코드, 또는 자바 스크립트 파일이 저장된 경로 및 그 파일명을 확인할 수 있기 때문에 제3자는 소스 코드 분석을 통한 악용에 사용할 수 있는 것이다.For example, as shown in FIG. 1A , a predetermined web page may use JavaScript, and the source code of the web page of FIG. 1A is shown in FIG. 1B . As can be seen from the dotted line in FIG. 1B, the web page of FIG. 1A is used in a manner that includes a JavaScript file whose file format is generally JS, and the path and file name of the JavaScript file can also be checked. can In this way, when JavaScript is used on a web page, anyone can check the JavaScript source code or the path where the JavaScript file is stored and the file name by viewing the source, so a third party can use it for abuse through source code analysis. it can be

따라서, 소스 코드가 쉽게 노출될 수 있는 자바 스크립트를 난독화하여 동일한 기능을 하면서도 제3자가 분석하기 쉽지 않도록 난독화하기 위한 기술이 요청되나 YUICompressor 또는 JSMin 같은 종래의 자바 스크립트 관련 기술들은 자바 스크립트 내의 파일의 크기를 최대한으로 줄이는 것이 목적일 뿐 난독화를 통해 소스 분석을 어렵게 하는 것을 목적으로 소스 코드를 변경하기 위한 방법은 제공하고 있지 않다.Therefore, a technology is requested to obfuscate JavaScript that can be easily exposed to source code and perform the same function while obfuscating it so that it is not easy for a third party to analyze it. However, conventional JavaScript-related technologies such as YUICompressor or JSMin are The goal is to reduce the size of the source code as much as possible, but it does not provide a method for changing the source code for the purpose of making source analysis difficult through obfuscation.

공개특허공보 제10-2016-0061141호Laid-Open Patent Publication No. 10-2016-0061141

본 발명이 해결하고자 하는 과제는 종래의 문제점을 해결할 수 있는 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템 및 방법을 제공하는 데 그 목적 있다.An object of the present invention is to provide a JavaScript-based web automation attack and sniffing blocking system and method that can solve the conventional problems.

삭제delete

삭제delete

상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템은 웹 브라우저에서 실행할 웹 페이지를 요청하는 클라이언트 단말; 및 상기 클라이언트 단말의 접속이력을 기초로 난독화된 HTML 코드(파일)을 포함하는 웹 페이지 또는 난독화 및 암호화된 HTML 코드(파일)을 포함하는 웹 페이지를 상기 클라이언트 단말로 제공하는 웹 서버를 포함하고, 상기 웹 서버는 상기 클라이언트 단말이 웹 페이지에 접속한 이력을 판단하는 클라이언트 접속이력 판단부; 상기 클라이언트 단말에서 요청하는 웹 페이지를 제공하는 웹 페이지 제공부; 암호화 키값을 제공하는 Key 값 생성부; 상기 클라이언트 접속이력 판단부에서 상기 클라이언트 단말의 접속이 최초라고 판단될 경우, 상기 웹 서버에서 암호화 키값을 생성한 후, 생성된 암호화 키값을 상기 웹 페이지의 HTML 코드(파일)에 믹싱하여 난독화한 후 난독화된 HTML 코드(파일)이 포함된 웹 페이지를 제공하고, 상기 클라이언트 단말의 접속이 최초가 아니라고 판단되면, 이전에 제공된 암호화 키 값을 이용하여 상기 웹 페이지의 HTML 코드(파일)을 암호화한 후, 난독화하고, 난독화 및 암호화된 HTML 코드(파일)이 포함된 웹 페이지를 클라이언트 단말로 제공하는 HTML 난독화 및 암호화부를 포함하고, 상기 클라이언트 단말은 상기 난독화된 HTML 코드(파일)이 포함된 웹 페이지를 제공받을 경우, 상기 웹 브라우저에서 난독화된 웹 페이지 파싱 후, 상기 암호화 키 값을 상기 웹 브라우저의 웹 스토리지에 저장하고, 상기 난독화 및 암호화된 HTML 코드(파일)이 포함된 웹 페이지를 제공받을 경우, 난독화된 웹 페이지 파싱 후, 상기 웹 스토리지에 저장된 암호화 키 값으로 암호화된 HTML 코드(파일)을 복호화 및 렌더링하는 것을 특징으로 한다.A JavaScript-based web automation attack and sniffing blocking system according to an embodiment of the present invention for solving the above problems includes: a client terminal requesting a web page to be executed in a web browser; and a web server that provides a web page including an obfuscated HTML code (file) or a web page including an obfuscated and encrypted HTML code (file) to the client terminal based on the access history of the client terminal and a client access history determination unit for determining a history of the client terminal accessing a web page; a web page providing unit that provides a web page requested by the client terminal; a key value generator providing an encryption key value; When the client connection history determination unit determines that the connection of the client terminal is the first, the web server generates an encryption key value, and then mixes the generated encryption key value with the HTML code (file) of the web page to obfuscate. After providing a web page including the obfuscated HTML code (file), and if it is determined that the client terminal is not the first to connect, the HTML code (file) of the web page is encrypted using the previously provided encryption key value and an HTML obfuscation and encryption unit for obfuscating and providing a web page including the obfuscated and encrypted HTML code (file) to a client terminal, wherein the client terminal includes the obfuscated HTML code (file) When provided with a web page including In the case of receiving an encrypted web page, after parsing the obfuscated web page, the encrypted HTML code (file) is decrypted and rendered with the encryption key value stored in the web storage.

따라서, 본 발명의 일 실시예에 따른 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단방법을 사용하면, 웹서버와 클라이언트 간의 기본적인 HTTP 통신에서 자바스크립트를 활용한 난독화 기능 및 암/복호화를 활용하고 HTML5에서 추가된 웹 스토리지 기술을 접목하여 암호화 키를 관리하여 웹서버에 대한 해킹 시도를 차단할 수 있고, 도/감청을 통한 패킷 스니핑에 대해서도 안전하게 보호할 수 있다는 이점이 있다.Therefore, if the JavaScript-based web automation attack and sniffing blocking method according to an embodiment of the present invention is used, the obfuscation function and encryption/decryption using JavaScript are utilized in basic HTTP communication between the web server and the client, and HTML5 It has the advantage of being able to block hacking attempts on the web server by managing the encryption key by grafting the web storage technology added to the web storage technology, and to be able to safely protect against packet sniffing through wiretapping/eavesdropping.

기존에 ActiveX를 이용하여 만들어진 보안 솔루션들이 존재하지만 이는 웹 서버에서의 솔로션 적용 및 클라이언트에 추가적인 프로그램 설치를 필요로 한다. There are existing security solutions made using ActiveX, but this requires the application of a solution in the web server and the installation of additional programs in the client.

하지만 본 발명과 같이, 웹 브라우저에 내장된 기술을 활용하고 웹 서버 측에서 되돌려지는 HTML 코드(파일)만을 암호화하기에 웹 서버에서 나가는 외부 데이터에 적용하는 것만으로 간단히 구현할 수 있다.However, as in the present invention, it can be implemented simply by applying the technology built into the web browser and encrypting only the HTML code (file) returned from the web server side by applying it to external data leaving the web server.

도 1a는 자바스크립트를 사용하는 웹 페이지의 일 예시도이다.
도 1b는 도 1a의 웹 페이지의 소스 코드를 나타낸 예시도이다.
도 2는 본 발명의 일 실시예에 따른 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템의 네트워크 구성도이다.
도 3은 도 1에 도시된 웹 서버의 세부 구성도이다.
도 4는 본 발명의 일 실시예에 따른 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단방법을 설명한 흐름도이다.
도 5는 도 2에 도시된 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템에 적용한 HTML 원본 코드의 일 예시도이다.
도 6a는 도 5의 HTML 원본코드를 난독화 및 암호화한 일 예시도이다.
도 6a는 도 5의 HTML 원본코드를 난독화 및 암호화한 다른 일 예시도이다.
도 6a는 도 5의 HTML 원본코드를 난독화 및 암호화한 또 다른 일 예시도이다.
도 7a는 도 6a를 클라이언트 단말에서 랜더링한 예시도이다.
도 7b는 도 6b를 클라이언트 단말에서 랜더링한 예시도이다.
도 7c는 도 6c를 클라이언트 단말에서 랜더링한 예시도이다.
1A is an exemplary diagram of a web page using JavaScript.
1B is an exemplary diagram illustrating the source code of the web page of FIG. 1A.
2 is a network configuration diagram of a JavaScript-based web automation attack and sniffing blocking system according to an embodiment of the present invention.
FIG. 3 is a detailed configuration diagram of the web server shown in FIG. 1 .
4 is a flowchart illustrating a JavaScript-based web automation attack and sniffing blocking method according to an embodiment of the present invention.
FIG. 5 is an exemplary view of an HTML source code applied to the JavaScript-based web automation attack and sniffing blocking system shown in FIG. 2 .
FIG. 6A is an exemplary diagram of obfuscating and encrypting the HTML original code of FIG. 5 .
FIG. 6A is another exemplary diagram of obfuscating and encrypting the HTML original code of FIG. 5 .
FIG. 6A is another exemplary diagram of obfuscating and encrypting the HTML original code of FIG. 5 .
7A is an exemplary diagram of FIG. 6A rendered by a client terminal.
FIG. 7B is an exemplary diagram of FIG. 6B rendered by the client terminal.
FIG. 7C is an exemplary diagram of FIG. 6C rendered by the client terminal.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art can easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Throughout the specification, when a part is said to be "connected" with another part, this includes not only "directly connected" but also "electrically connected" with another element interposed therebetween. . In addition, when a part "includes" a certain component, it means that other components may be further included, and one or more other features, not excluding other components, unless specifically stated to the contrary. It is to be understood that it does not preclude the presence or addition of any number, step, action, component, part, or combination thereof.

명세서 전체에서 사용되는 정도의 용어 "약", "실질적으로" 등은 언급된 의미에 고유한 제조 및 물질 허용오차가 제시될 때 그 수치에서 또는 그 수치에 근접한 의미로 사용되고, 본 발명의 이해를 돕기 위해 정확하거나 절대적인 수치가 언급된 개시 내용을 비양심적인 침해자가 부당하게 이용하는 것을 방지하기 위해 사용된다. 본 발명의 명세서 전체에서 사용되는 정도의 용어 "~(하는) 단계" 또는 "~의 단계"는 "~ 를 위한 단계"를 의미하지 않는다. The terms "about", "substantially", and the like, as used throughout the specification, are used in or close to the numerical value when manufacturing and material tolerances specific to the stated meaning are presented, and are used to provide an understanding of the present invention. To assist, accurate or absolute numerical values are used to prevent unreasonable use of the stated disclosure by unscrupulous infringers. As used throughout the specification of the present invention, the term "step (to)" or "step of" does not mean "step for".

본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체 지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.In the present specification, the term "unit" includes a unit realized by hardware, a unit realized by software, and a unit realized using both. Further, one unit may be realized by using two or more hardware, or two or more units may be realized by one piece of hardware. Meanwhile,'~ unit' is not meant to be limited to software or hardware, and'~ unit' may be configured to be in an addressable storage medium or configured to reproduce one or more processors. Thus, as an example, '~' indicates components such as software components, object-oriented software components, class components and task components, and processes, functions, properties, and procedures , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. Components and functions provided in the'~ units' may be combined into a smaller number of elements and'~ units', or may be further separated into additional elements and'~ units'. In addition, components and'~ units' may be implemented to play one or more CPUs in a device or a security multimedia card.

본 명세서에 있어서 단말, 장치 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말, 장치 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말, 장치 또는 디바이스에서 수행될 수도 있다. In the present specification, some of the operations or functions described as being performed by a terminal, device, or device may be performed instead in a server connected to the terminal, device, or device. Likewise, some of the operations or functions described as being performed by the server may also be performed by a terminal, device, or device connected to the server.

본 명세서에서 있어서, 단말과 매핑(Mapping) 또는 매칭(Matching)으로 기술된 동작이나 기능 중 일부는, 단말의 식별 정보(Identifying Data)인 단말기의 고유번호나 개인의 식별정보를 매핑 또는 매칭한다는 의미로 해석될 수 있다.In this specification, some of the operations or functions described as mapping or matching with the terminal means mapping or matching the unique number of the terminal or the identification information of the individual, which is the identification information of the terminal. Can be interpreted as.

이하, 첨부된 도면들에 기초하여 본 발명의 일 실시예에 따른 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단방법을 보다 상세하게 설명하도록 한다.Hereinafter, a JavaScript-based web automation attack and sniffing blocking method according to an embodiment of the present invention will be described in more detail based on the accompanying drawings.

먼저, 본 발명을 설명하기에 앞서, 본 발명에서 사용하는 용어들에 대한 정의를 간단하게 설명한다.First, before describing the present invention, definitions of terms used in the present invention will be briefly described.

난독화는 어떠한 데이터가 있을 때의 의미는 동일하나 쉽게 알아볼 수 없게 수정함으로 의미한다. 예를 들어, 출력해야 할 값이 1501일 때, (15*10)+1451-100과 같이 데이터를 수정한다는 것을 의미한다. Obfuscation means that some data has the same meaning but is modified so that it cannot be easily recognized. For example, when the value to be output is 1501, it means that the data is modified as (15*10)+1451-100.

자바스트립트는 크롬, 인터넷 익스플로러 등 기존의 웹 브라우저에서 사용되는 프로그래밍 언어로서, 이를 이용하면 암호화와 같은 행위도 가능하다. 또한, 웹 페이지의 내용이 ABC 일 때 자바스크립트를 이용하여 “A1B2C3”에서 숫자를 제외한 글자만 출력하라” 등 난독화를 활용할 때도 자바스크립트가 사용된다.Javascript is a programming language used in existing web browsers such as Chrome and Internet Explorer. Using it, actions such as encryption are also possible. Also, when the content of the web page is ABC, JavaScript is also used to use obfuscation, such as “Output only letters excluding numbers in “A1B2C3” using JavaScript.

스니핑은 네트워크 상에서 전송되는 데이터를 해커가 은닉한 상태에서 수집하여 내용을 훔쳐보는 행위를 뜻한다.Sniffing refers to the act of stealing data transmitted over the network by collecting data in a hidden state by hackers.

웹 자동화 공격은 웹 서버에 대해 해킹을 시도하는 행위로서, 보통 해커가 웹 서버에 대해 공격에 사용하는 몇가지 데이터를 입력해 보고, 그 데이터가 처리되어 돌아온 데이터를 확인하여 공격 여부를 판별한다.A web automation attack is an act of hacking a web server. Usually, a hacker enters some data used for an attack on a web server, and checks the returned data after processing the data to determine whether an attack occurs.

웹 스토리지는 웹 브라우저에 내장된 저장소로서, 평소에는 웹 페이지에서 동작하는 게임에서 데이터를 저장하거나 이미지 같은 파일들의 캐쉬로 사용된다.Web storage is a storage built into a web browser and is usually used as a cache for files such as images or to store data in games that run on web pages.

도 2는 본 발명의 일 실시예에 따른 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템의 네트워크 구성도이고, 도 3은 도 1에 도시된 웹 서버의 세부 구성도이고, 도 5는 도 2에 도시된 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템에 적용한 HTML 원본 코드의 일 예시도이고, 도 6a는 도 5의 HTML 원본코드를 난독화 및 암호화한 일 예시도이고, 도 6a는 도 5의 HTML 원본코드를 난독화 및 암호화한 다른 일 예시도이고, 도 6a는 도 5의 HTML 원본코드를 난독화 및 암호화한 또 다른 일 예시도이고, 도 7a는 도 6a를 클라이언트 단말에서 랜더링한 예시도이고, 도 7b는 도 6b를 클라이언트 단말에서 랜더링한 예시도이고, 도 7c는 도 6c를 클라이언트 단말에서 랜더링한 예시도이다.2 is a network configuration diagram of a JavaScript-based web automation attack and sniffing blocking system according to an embodiment of the present invention, FIG. 3 is a detailed configuration diagram of the web server shown in FIG. 1, and FIG. 5 is FIG. It is an exemplary view of the HTML source code applied to the illustrated JavaScript-based web automation attack and sniffing blocking system, FIG. 6A is an example diagram of obfuscating and encrypting the HTML source code of FIG. 5, and FIG. It is another exemplary view of obfuscating and encrypting the HTML source code, FIG. 6A is another exemplary view of obfuscating and encrypting the HTML source code of FIG. 5, and FIG. 7A is an exemplary rendering of FIG. 6A at the client terminal. 7B is an exemplary diagram of FIG. 6B rendered by the client terminal, and FIG. 7C is an exemplary diagram of FIG. 6C rendered by the client terminal.

먼저, 도 1에 도시된 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템(100)은 클라이언트 단말(200) 및 웹 서버(300)를 포함한다.First, the JavaScript-based web automation attack and sniffing blocking system 100 shown in FIG. 1 includes a client terminal 200 and a web server 300 .

상기 클라이언트 단말(200)은 웹 브라우저를 실행하는 단말로서, 웹 서버(300)로 원하는 HTML 파일이 포함된 웹 페이지를 요청하는 단말일 수 있다.The client terminal 200 is a terminal that executes a web browser, and may be a terminal that requests a web page including a desired HTML file from the web server 300 .

상기 클라이언트 단말(200)은 웹 서버에서 제공된 난독화된 HTML 코드(파일)이 포함된 웹 페이지를 제공받을 경우, 상기 웹 브라우저에서 난독화된 웹 페이지 파싱 후, 상기 암호화 키 값을 상기 웹 브라우저의 웹 스토리지에 저장한다.When the client terminal 200 receives a web page including an obfuscated HTML code (file) provided from a web server, after parsing the obfuscated web page in the web browser, the encryption key value is transmitted to the web browser. Save to web storage.

또한, 상기 클라이언트 단말(200)은 상기 난독화 및 암호화된 HTML 코드(파일)이 포함된 웹 페이지를 제공받을 경우, 난독화된 웹 페이지 파싱 후, 상기 웹 스토리지에 저장된 암호화 키 값으로 암호화된 HTML 코드(파일)을 복호화한 후, 복호화된 웹 페이지를 렌더링하는 단말일 수 있다(도 5 내지 도 7 참조)In addition, when the client terminal 200 receives a web page including the obfuscated and encrypted HTML code (file), after parsing the obfuscated web page, HTML encrypted with the encryption key value stored in the web storage After decrypting the code (file), it may be a terminal that renders a decrypted web page (refer to FIGS. 5 to 7)

상기 클라이언트 단말(200)은 스마트폰(Smart Phone), 휴대 단말기(Portable Terminal), 이동 단말기(Mobile Terminal), 폴더블 단말기(Foldable Terminal), 개인 정보 단말기(Personal Digital Assistant: PDA), PMP(Portable Multimedia Player) 단말기, 텔레매틱스(Telematics) 단말기, 내비게이션(Navigation) 단말기, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 슬레이트 PC(Slate PC), 태블릿 PC(Tablet PC), 울트라북(ultrabook), 웨어러블 디바이스(Wearable Device, 예를 들어, 워치형 단말기(Smartwatch), 글래스형 단말기(Smart Glass), HMD(Head Mounted Display) 등 포함), 와이브로(Wibro) 단말기, IPTV(Internet Protocol Television) 단말기, 스마트 TV, 디지털방송용 단말기, AVN(Audio Video Navigation) 단말기, A/V(Audio/Video) 시스템, 플렉시블 단말기(Flexible Terminal), 디지털 사이니지 장치 등과 같은 다양한 단말기에 적용될 수 있다.The client terminal 200 is a smart phone (Smart Phone), a portable terminal (Portable Terminal), a mobile terminal (Mobile Terminal), a foldable terminal (Foldable Terminal), Personal Digital Assistant (PDA), PMP (Portable) Multimedia Player) terminal, telematics terminal, navigation terminal, personal computer, notebook computer, slate PC, tablet PC, ultrabook, wearable device ( Wearable Device, for example, watch-type terminal (Smartwatch), glass-type terminal (Smart Glass), HMD (Head Mounted Display), etc.), Wibro (Wibro) terminal, IPTV (Internet Protocol Television) terminal, smart TV, digital It can be applied to various terminals such as a broadcasting terminal, an AVN (Audio Video Navigation) terminal, an A/V (Audio/Video) system, a flexible terminal, and a digital signage device.

다음으로, 상기 웹 서버(300)는 상기 클라이언트 단말에서 웹 페이지를 요청할 경우, 상기 클라이언트 단말의 접속이력 유무를 판단하고, 상기 클라이언트 단말의 접속이 최초인 경우, 웹 서버에서 암호화 키값을 생성한 후, 생성된 키값을 상기 웹 페이지의 HTML에 믹싱하여 난독화 및 암호화하고, 상기 클라이언트 단말의 접속이 최초가 아닌 경우, 이전에 제공된 암호화 키값을 이용하여 상기 웹 페이지의 HTML에 믹싱하여 난독화 및 암호화한 후, 믹싱된 HTML이 포함된 웹 페이지를 제공하는 구성일 수 있다.Next, when the web server requests a web page from the client terminal, the web server 300 determines whether the client terminal has a connection history, and when the client terminal accesses the first time, the web server generates an encryption key value. , the generated key value is mixed with the HTML of the web page to obfuscate and encrypt, and when the client terminal is not connected for the first time, it is mixed with the HTML of the web page using the previously provided encryption key value to obfuscate and encrypt After doing this, it may be a configuration that provides a web page including the mixed HTML.

상기 웹 서버(300)는 도 3을 참조, 클라이언트 접속이력 판단부(310), 웹 페이지 제공부(320), Key값 생성부(330), HTML 난독화 및 암호화부(340)를 포함한다.Referring to FIG. 3 , the web server 300 includes a client connection history determining unit 310 , a web page providing unit 320 , a key value generating unit 330 , and an HTML obfuscation and encryption unit 340 .

상기 클라이언트 접속이력 판단부(310)는 클라이언트 단말(200)이 웹 페이지에 접속한 이력을 판단하는 구성일 수 있다.The client connection history determining unit 310 may be configured to determine the history of accessing the web page by the client terminal 200 .

상기 웹 페이지 제공부(320)는 클라이언트가 요청한 웹 페이지를 제공하는 구성일 수 있다. 여기서, 웹 페이지는 HTML 코드(파일)로 구현된 정보일 수 있다.The web page providing unit 320 may be configured to provide a web page requested by a client. Here, the web page may be information implemented as an HTML code (file).

상기 Key 값 생성부(330)는 클라이언트 단말의 웹 페이지 접속요청 시점을 기초로 생성되는 암호화 키 값으로, 후술하는 HTML 난독화 및 암호화부(340)에서 암호화 키를 이용하여 HTML 코드 또는 파일을 암호화하는데 사용된다.The key value generator 330 encrypts an HTML code or file by using the encryption key in the HTML obfuscation and encryption unit 340 to be described later as an encryption key value generated based on the time of the web page access request of the client terminal. used to do

또한, 암호화 키는 HTML 난독화 및 암호화부(340)에서 웹 페이지를 난독화 및 암호화 시에 웹 페이지에 믹싱되어 제공된다.In addition, the encryption key is mixed and provided to the web page when the HTML obfuscation and encryption unit 340 obfuscates and encrypts the web page.

또한, 암호화 키는 웹 페이지에 믹싱되어 전송 후, 클라이언트 단말(200)의 웹 브라우저의 웹 스토리지에 저장되고, 렌더링(복호화) 과정시에 사용된다.In addition, the encryption key is mixed with the web page and transmitted, stored in the web storage of the web browser of the client terminal 200, and used during the rendering (decryption) process.

다음으로, 상기 HTML 난독화 및 암호화부(340)는 상기 클라이언트 단말(200)의 접속이 최초인 경우, 웹 서버(300)에서 암호화 키값을 생성한 후, 생성된 키값을 상기 웹 페이지의 HTML 코드(파일)에 믹싱하여 난독화한 후 난독화된 HTML 코드(파일)이 포함된 웹 페이지를 제공한다.Next, the HTML obfuscation and encryption unit 340 generates an encryption key value in the web server 300 when the client terminal 200 is connected for the first time, and then converts the generated key value to the HTML code of the web page. After obfuscation by mixing to (file), provide a web page containing the obfuscated HTML code (file).

또한, 상기 HTML 난독화 및 암호화부(340)는 상기 클라이언트 단말(200)의 접속이 최초가 아닌 경우, 이전에 제공된 암호화 키 값을 이용하여 상기 웹 페이지의 HTML 코드(파일)을 암호화한 후, 난독화하고, 난독화 및 암호화된 HTML 코드(파일)이 포함된 웹 페이지를 클라이언트 단말(200)로 제공한다.In addition, the HTML obfuscation and encryption unit 340 encrypts the HTML code (file) of the web page using the previously provided encryption key value when the connection of the client terminal 200 is not the first time, A web page including obfuscated and obfuscated and encrypted HTML code (file) is provided to the client terminal 200 .

여기서, 상기 HTML 난독화 및 암호화부(340)는 상기 HTML 코드(파일)을 암호화하는데 있어, 블록형, 스트림형 암호화 알고리즘을 적용하여 암호화할 수 있고, 또한, 미국의 DES, AES, 한국의 SEED, ARIA를 포함하는 모든 암호화 기술을 적용하여 암호화할 수 있는 구성일 수 있다. 따라서, 제한된 암호화 알고리즘만을 사용하지는 않는다. Here, the HTML obfuscation and encryption unit 340 can encrypt the HTML code (file) by applying a block-type or stream-type encryption algorithm, and also DES, AES in the United States, SEED in Korea , it may be a configuration that can be encrypted by applying any encryption technology including ARIA. Therefore, only limited encryption algorithms are not used.

도 4는 본 발명의 일 실시예에 따른 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 방법을 설명한 흐름도이다.4 is a flowchart illustrating a JavaScript-based web automation attack and sniffing blocking method according to an embodiment of the present invention.

도 4에 도시된 바와 같이, 본 발명의 일 실시예에 따른 난독화를 위한 웹 서비스 자동화 공격 차단방법(S700)은 먼저, 클라이언트 단말(200)에서 웹 서버(300)에 웹 페이지를 요청(S710)하면, 웹 서버(300)에서 상기 클라이언트 단말(200)의 접속이력 유무를 판단(S720)한다.As shown in FIG. 4 , in the method of blocking a web service automation attack for obfuscation according to an embodiment of the present invention ( S700 ), first, the client terminal 200 requests a web page from the web server 300 ( S710 ). ), the web server 300 determines whether there is a connection history of the client terminal 200 (S720).

이후, 상기 클라이언트 단말의 접속이 최초인 경우, 웹 서버에서 암호화 키값을 생성한 후, 생성된 키값을 상기 웹 페이지의 HTML 코드(파일)에 믹싱하여 난독화한 후 난독화된 HTML 코드(파일)이 포함된 웹 페이지를 제공하고, 상기 클라이언트 단말의 접속이 최초가 아닌 경우, 이전에 제공된 암호화 키값을 이용하여 상기 웹 페이지의 HTML 코드(파일)을 암호화한 후, 난독화하고, 난독화 및 암호화된 HTML 코드(파일)이 포함된 웹 페이지를 제공(S730)한다.Thereafter, when the client terminal accesses for the first time, the web server generates an encryption key value, mixes the generated key value with the HTML code (file) of the web page and obfuscates the obfuscated HTML code (file) provides a web page including this, and when the connection of the client terminal is not the first time, the HTML code (file) of the web page is encrypted using the previously provided encryption key value, and then obfuscated, obfuscated and encrypted A web page including the HTML code (file) is provided (S730).

참고로, 난독화 및/또는 암호화된 HTML 파일은 클라이언트의 웹 페이지 요청 시점에 따라 서로 상이한 결과를 갖는다.For reference, the obfuscated and/or encrypted HTML files have different results depending on when the client requests the web page.

이는 클라이언트의 동일한 정보를 서로 다른 시점에 입력할 경우, 출력은 B, C, D..와 같이 99% 이상의 차이가 존재하도록 출력하기 위함이다.This is to output such that, when the same information of the client is input at different times, there is a difference of 99% or more, such as B, C, D..

이후, 상기 클라이언트 단말(200)에서 제공된 난독화된 웹 페이지를 파싱한 후 HTML 코드(파일)을 실행하거나 또는 난독화된 웹 페이지를 파싱 후 랜더링하여 복호화한 후, 복호화된 HTML을 실행(S740)한다.Thereafter, after parsing the obfuscated web page provided by the client terminal 200, the HTML code (file) is executed, or the obfuscated web page is parsed and rendered and decrypted, and then the decrypted HTML is executed (S740) do.

따라서, 본 발명의 일 실시예에 따른 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단방법을 사용하면, 웹서버와 클라이언트 간의 기본적인 HTTP 통신에서 자바스크립트를 활용한 난독화 기능 및 암/복호화를 활용하고 HTML5에서 추가된 웹 스토리지 기술을 접목하여 암호화 키를 관리하여 웹서버에 대한 해킹 시도를 차단할 수 있고, 도/감청을 통한 패킷 스니핑에 대해서도 안전하게 보호할 수 있다는 이점이 있다.Therefore, if the JavaScript-based web automation attack and sniffing blocking method according to an embodiment of the present invention is used, the obfuscation function and encryption/decryption using JavaScript are utilized in basic HTTP communication between the web server and the client, and HTML5 It has the advantage of being able to block hacking attempts on the web server by managing the encryption key by grafting the web storage technology added to the web storage technology, and to be able to safely protect against packet sniffing through wiretapping/eavesdropping.

기존에 ActiveX를 이용하여 만들어진 보안 솔루션들이 존재하지만 이는 웹 서버에서의 솔로션 적용 및 클라이언트에 추가적인 프로그램 설치를 필요로 한다. 하지만 본 발명과 같이, 웹 브라우저에 내장된 기술을 활용하고 웹 서버 측에서 되돌려지는 HTML 코드(파일)만을 암호화하기에 웹 서버에서 나가는 외부 데이터에 적용하는 것만으로 간단히 구현할 수 있다.There are existing security solutions made using ActiveX, but this requires the application of a solution in the web server and the installation of additional programs in the client. However, as in the present invention, it can be implemented simply by applying the technology built into the web browser and encrypting only the HTML code (file) returned from the web server side by applying it to external data leaving the web server.

본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Combinations of each block in the block diagram attached to the present invention and each step in the flowchart may be performed by computer program instructions. These computer program instructions may be embodied in a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment, such that the instructions performed by the processor of the computer or other programmable data processing equipment may be configured in the respective blocks of the block diagram or of the flowchart. Each step creates a means for performing the described functions. These computer program instructions may also be stored in a computer-usable or computer-readable memory that may direct a computer or other programmable data processing equipment to implement a function in a particular manner, and thus the computer-usable or computer-readable memory. The instructions stored in the block diagram may also produce an item of manufacture containing instruction means for performing a function described in each block of the block diagram or each step of the flowchart. Since computer program instructions can also be mounted on a computer or other programmable data processing equipment, a series of operating steps are performed on a computer or other programmable data processing equipment to create a computer-executable process to create a computer or other programmable data processing equipment. It is also possible for the instructions to perform the processing equipment to provide steps for executing the functions described in each block of the block diagram and each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block or each step may represent a module, segment, or part of code that contains one or more executable instructions for executing the specified logical function(s). In addition, it should be noted that in some alternative embodiments, functions mentioned in blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially simultaneously, or the blocks or steps may sometimes be performed in the reverse order depending on the corresponding function.

이상의 설명은 본 발명의 기술적 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and those of ordinary skill in the art to which the present invention pertains will be able to make various modifications and variations without departing from the essential characteristics of the present invention. Accordingly, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention, but to explain the technical idea, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

100: 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템
200: 클라이언트 단말
300: 웹 서버
310: 클라이언트 접속 판단부
320: 웹 페이지 제공부
330: Key 값 생성부
340: HTML 난독화 및 암호화부
100: JavaScript-based web automation attack and sniffing blocking system
200: client terminal
300: web server
310: client access determination unit
320: web page providing unit
330: Key value generator
340: HTML obfuscation and encryption unit

Claims (2)

삭제delete 웹 브라우저에서 실행할 웹 페이지를 요청하는 클라이언트 단말; 및
상기 클라이언트 단말의 접속이력을 기초로 난독화된 HTML 코드(파일)을 포함하는 웹 페이지 또는 난독화 및 암호화된 HTML 코드(파일)을 포함하는 웹 페이지를 상기 클라이언트 단말로 제공하는 웹 서버를 포함하고,
상기 웹 서버는
상기 클라이언트 단말이 웹 페이지에 접속한 이력을 판단하는 클라이언트 접속이력 판단부;
상기 클라이언트 단말에서 요청하는 웹 페이지를 제공하는 웹 페이지 제공부;
암호화 키값을 제공하는 Key 값 생성부;
상기 클라이언트 접속이력 판단부에서 상기 클라이언트 단말의 접속이 최초라고 판단될 경우, 상기 웹 서버에서 암호화 키값을 생성한 후, 생성된 암호화 키값을 상기 웹 페이지의 HTML 코드(파일)에 믹싱하여 난독화한 후 난독화된 HTML 코드(파일)이 포함된 웹 페이지를 제공하고, 상기 클라이언트 단말의 접속이 최초가 아니라고 판단되면, 이전에 제공된 암호화 키 값을 이용하여 상기 웹 페이지의 HTML 코드(파일)을 암호화한 후, 난독화하고, 난독화 및 암호화된 HTML 코드(파일)이 포함된 웹 페이지를 클라이언트 단말로 제공하는 HTML 난독화 및 암호화부를 포함하고,
상기 클라이언트 단말은
상기 난독화된 HTML 코드(파일)이 포함된 웹 페이지를 제공받을 경우, 상기 웹 브라우저에서 난독화된 웹 페이지 파싱 후, 상기 암호화 키 값을 상기 웹 브라우저의 웹 스토리지에 저장하고,
상기 난독화 및 암호화된 HTML 코드(파일)이 포함된 웹 페이지를 제공받을 경우, 난독화된 웹 페이지 파싱 후, 상기 웹 스토리지에 저장된 암호화 키 값으로 암호화된 HTML 코드(파일)을 복호화 및 렌더링하는 것을 특징으로 하는 자바스크립트 기반의 웹 자동화 공격 및 스니핑 차단 시스템
a client terminal requesting a web page to be executed in a web browser; and
A web server that provides a web page including an obfuscated HTML code (file) or a web page including an obfuscated and encrypted HTML code (file) to the client terminal based on the access history of the client terminal, ,
The web server is
a client access history determination unit for determining a history of the client terminal accessing a web page;
a web page providing unit that provides a web page requested by the client terminal;
a key value generator providing an encryption key value;
When the client connection history determination unit determines that the connection of the client terminal is the first, the web server generates an encryption key value, and then mixes the generated encryption key value with the HTML code (file) of the web page to obfuscate After providing a web page including the obfuscated HTML code (file), and if it is determined that the client terminal is not the first to connect, the HTML code (file) of the web page is encrypted using the previously provided encryption key and then obfuscate and include an HTML obfuscation and encryption unit that provides a web page containing an obfuscated and encrypted HTML code (file) to a client terminal,
The client terminal
When receiving a web page including the obfuscated HTML code (file), after parsing the obfuscated web page in the web browser, the encryption key value is stored in the web storage of the web browser,
When receiving a web page containing the obfuscated and encrypted HTML code (file), after parsing the obfuscated web page, decrypting and rendering the encrypted HTML code (file) with the encryption key value stored in the web storage JavaScript-based web automation attack and sniffing blocking system, characterized in that
KR1020200098588A 2020-08-06 2020-08-06 Systems and methods to block JavaScript-based web automation attacks and sniffing KR102258638B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200098588A KR102258638B1 (en) 2020-08-06 2020-08-06 Systems and methods to block JavaScript-based web automation attacks and sniffing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200098588A KR102258638B1 (en) 2020-08-06 2020-08-06 Systems and methods to block JavaScript-based web automation attacks and sniffing

Publications (1)

Publication Number Publication Date
KR102258638B1 true KR102258638B1 (en) 2021-06-01

Family

ID=76375970

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200098588A KR102258638B1 (en) 2020-08-06 2020-08-06 Systems and methods to block JavaScript-based web automation attacks and sniffing

Country Status (1)

Country Link
KR (1) KR102258638B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115062317A (en) * 2022-03-19 2022-09-16 万达信息股份有限公司 Method for encrypting webpage content under heterogeneous CPU system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130140969A (en) * 2012-05-24 2013-12-26 주식회사 엘지유플러스 Method for providing encrypted web application, device, and recording medium thereof
KR20160061141A (en) 2014-11-21 2016-05-31 에스케이텔레콤 주식회사 Method and apparatus for blocking web page attack
US20170134347A1 (en) * 2015-11-10 2017-05-11 AO Kaspersky Lab System amd method for secure transmission of web pages using encryption of their content

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130140969A (en) * 2012-05-24 2013-12-26 주식회사 엘지유플러스 Method for providing encrypted web application, device, and recording medium thereof
KR20160061141A (en) 2014-11-21 2016-05-31 에스케이텔레콤 주식회사 Method and apparatus for blocking web page attack
US20170134347A1 (en) * 2015-11-10 2017-05-11 AO Kaspersky Lab System amd method for secure transmission of web pages using encryption of their content

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115062317A (en) * 2022-03-19 2022-09-16 万达信息股份有限公司 Method for encrypting webpage content under heterogeneous CPU system
CN115062317B (en) * 2022-03-19 2024-03-26 万达信息股份有限公司 Method for encrypting webpage content under heterogeneous CPU system

Similar Documents

Publication Publication Date Title
US10489561B2 (en) Web application protection
US10069809B2 (en) System and method for secure transmission of web pages using encryption of their content
US10313112B2 (en) Browser security module
KR100808434B1 (en) Method and system for monitoring user interaction with a computer
Patel Performance analysis of AES, DES and Blowfish cryptographic algorithms on small and large data files
US10904227B2 (en) Web form protection
CN109495426B (en) Data access method and device and electronic equipment
US20140351583A1 (en) Method of implementing a right over a content
CN111460503B (en) Data sharing method, device, equipment and storage medium
KR20080101333A (en) Secutiry method using virtual keyboard
CN110851800B (en) Code protection method, device, system and readable storage medium
KR20130093557A (en) System, devices and methods for collaborative execution of a software application comprising at least one encrypted instruction
JP2010072916A (en) Data protection system and data protection method
KR102258638B1 (en) Systems and methods to block JavaScript-based web automation attacks and sniffing
CN109343971B (en) Browser data transmission method and device based on cache technology
EP3005207B1 (en) Digital content execution control mechanism
CN115277225A (en) Data encryption method, data decryption method and related equipment
Jemel et al. Security assurance of local data stored by HTML5 web application
KR101511451B1 (en) Method of encryption to keyboard input information
CN115952518B (en) Data request method, device, electronic equipment and storage medium
CN114978620B (en) Encryption method and decryption method for identity identification number
CN114826729B (en) Data processing method, page updating method and related hardware
MacFadden et al. Performance Impacts of JavaScript-Based Encryption of HTML5 Web Storage for Enhanced Privacy
Damsika et al. A novel mechanism for secure e-tendering in an open electronic network
CN116708016A (en) Sensitive data transmission method, server and storage medium

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant