KR20190101119A - 자바스크립트 자기보호 장치 및 그 방법 - Google Patents

자바스크립트 자기보호 장치 및 그 방법 Download PDF

Info

Publication number
KR20190101119A
KR20190101119A KR1020180021077A KR20180021077A KR20190101119A KR 20190101119 A KR20190101119 A KR 20190101119A KR 1020180021077 A KR1020180021077 A KR 1020180021077A KR 20180021077 A KR20180021077 A KR 20180021077A KR 20190101119 A KR20190101119 A KR 20190101119A
Authority
KR
South Korea
Prior art keywords
function
memory address
javascript
self
protection
Prior art date
Application number
KR1020180021077A
Other languages
English (en)
Other versions
KR102040080B1 (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 KR1020180021077A priority Critical patent/KR102040080B1/ko
Publication of KR20190101119A publication Critical patent/KR20190101119A/ko
Application granted granted Critical
Publication of KR102040080B1 publication Critical patent/KR102040080B1/ko

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/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
    • 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)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 자바스크립트 자기 보호 장치 및 그 방법에 관한 것으로, 자바스크립트 자기보호 장치는 웹서버로부터 새로운 웹 페이지를 수신하면, 상기 웹 페이지를 구성하는 자바스크립트 함수의 오버라이드(override) 기능을 비활성화하는 함수 설정부, 상기 자바스크립트 함수의 실제 메모리 주소를 저장하는 메모리 주소 저장부, 미리 설정된 시간 간격마다 자바스크립트 함수의 메모리 주소를 확인하여 상기 실제 메모리 주소와 동일여부를 판단하는 메모리 주소 판단부, 그리고 상기 메모리 주소가 상기 실제 메모리 주소와 상이한 경우, 상기 메모리 주소를 실제 메모리 주소로 변경하는 메모리 주소 제어부를 포함한다.

Description

자바스크립트 자기보호 장치 및 그 방법{APPARATUS FOR SELF-PROTECTION ON JAVASCRIPT AND METHOD THEREOF}
자바스크립트 자기 보호 장치 및 그 방법이 제공된다.
자바스크립트(JavaScript)는 별도의 컴파일 과정이 없기 때문에 다른 프로그래밍 언어에 비해 빠른 시간 안에 스크립트 코드를 작성할 수 있으며, 웹에 특화된 기술로 운영체제나 플랫폼에 상관없이 구동하고 확장성이 높다.
그리고 자바스크립트는 기존의 C나 자바 언어와는 달리 단순한 구조와 원칙을 가지고 있기 때문에 초보개발자들이 쉽게 배우고 이해할 수 있다.
이와 같은 장점으로 자바스크립트는 현재 가장 많이 사용되는 프로그래밍 언어이며, 지속적으로 개발 및 성장하고 있다.
하지만 자바스크립트는 사람이 이해할 수 있는 고급 프로그래밍 언어로써, 작성된 코드를 한 단계씩 해석하여 실행시키는 언어이기 때문에, 누구나 쉽게 해석하고 접근할 수 있다는 점에서 보안 취약점이 발생하기 쉽다.
가장 흔히 악용되는 자바스크립트 관련 보안취약점은 크로스 사이트 스크립팅(Cross-Site Scripting, XSS)이다. 크로스 사이트 스크립팅은 공격자가 일반 유저의 브라우저에 스크립트를 실행할 수 있게 허용함으로써 사용자의 세션을 가로채거나 웹 사이트 변조, 악의적인 콘텐츠 삽입, 피싱 공격 행위를 할 수 있다.
이러한 크로스 사이트 스크립팅을 방지하기 위해 웹 방화벽(Web Application Firewall, WAF)을 이용하거나 특정 문자열을 탐지하는 기술, 웹 개발자들이 위험한 문자를 중성화하는 기술들이 개발되어 적용되고 있다.
그러나 대부분의 웹 방화벽은 시그니처 기반의 XSS 공격만을 탐지하고, 특정 문자열을 탐지하는 기술은 쉽게 우회가 가능하여 효과적이지 못하다. 그리고 웹 개발자들이 위험한 문자를 중성화하여 XSS 취약점을 예방하는 경우, 웹 개발자들이 일일이 수동적으로 위험한 문자를 필터링 및 인코딩하는 것은 현실적으로 불가능하기 때문에 취약점이 잔존한다.
따라서, 부가적인 프로그램의 설치없이도 효과적으로 크로스 사이트 스크립팅을 예방할 수 있는 웹 보안 모델이 요구된다.
본 발명의 하나의 실시예는 자바스크립트 자체에 보호 기능을 설정하여 크로스 사이트 스크립팅과 같은 악성 공격을 무력화시키기 위한 것이다.
상기 과제 이외에도 구체적으로 언급되지 않은 다른 과제를 달성하는 데 사용될 수 있다.
본 발명의 하나의 실시예에 따른 자바스크립트 자기보호 장치는 웹서버로부터 새로운 웹 페이지를 수신하면, 웹 페이지를 구성하는 자바스크립트 함수의 오버라이드(override) 기능을 비활성화하는 함수 설정부, 자바스크립트 함수의 실제 메모리 주소를 저장하는 메모리 주소 저장부, 미리 설정된 시간 간격마다 자바스크립트 함수의 메모리 주소를 확인하여 실제 메모리 주소와 동일여부를 판단하는 메모리 주소 판단부, 그리고 메모리 주소가 실제 메모리 주소와 상이한 경우, 메모리 주소를 실제 메모리 주소로 변경하는 메모리 주소 제어부를 포함한다.
함수 설정부는, 자바스크립트 함수에 람다 함수(익명 함수)를 삽입하고, 람다 함수에 클로저(closer) 함수를 실행시킬 수 있다.
함수 설정부는, 자바스크립트 함수에 새로운 속성이 추가되지 않도록 개체의 확장을 방지하고, 기존 개체의 속성 특성을 변경 또는 삭제되지 않도록 설정하며, 개체의 모든 데이터 속성 값을 변경할 수 없도록 객체 함수를 설정할 수 있다.
웹에 상기 오버라이드 기능이 비활성화된 새로운 웹 페이지를 게재하기 위해 배포 패키지 생성 시, 자바스크립트 함수를 압축, 전치 그리고 치환을 수행하여 난독화하는 난독화부를 더 포함할 수 있다.
난독화부는, 구글 클로저 컴파일러를 통해 난독화가 수행될 수 있다.
본 발명의 하나의 실시예에 따른 자바스크립트 자기보호 장치의 자기 보호 방법은 웹서버로부터 새로운 웹 페이지를 수신하면, 웹 페이지를 구성하는 자바스크립트 함수의 오버라이드(override) 기능을 비활성화하는 단계, 자바스크립트 함수의 실제 메모리 주소를 저장하는 단계, 미리 설정된 시간 간격마다 자바스크립트 함수의 메모리 주소를 확인하여 실제 메모리 주소와 동일여부를 판단하는 단계, 그리고 메모리 주소가 실제 메모리 주소와 상이한 경우, 메모리 주소를 실제 메모리 주소로 변경하는 단계를 포함한다.
본 발명의 하나의 실시예는 별도의 부가적인 프로그램 설치 없이도 자바스크립트 자체에 설정된 구성을 통해 자기 보호를 수행하여 사용자들에게 편리하고 안전한 웹 환경을 제공할 수 있다.
또한, 본 발명의 하나의 실시예는 외부로 노출된 인터페이스가 없는 함수를 이용함으로써, 크로스 사이트 스크립팅과 같은 악성 공격을 무력화시킬 수 있다.
도 1은 본 발명의 하나의 실시예에 따른 자바스크립트 자기보호 장치를 포함하는 통신 네트워크를 나타내는 구성도이다.
도 2는 본 발명의 하나의 실시예에 따른 자바스크립트 자기보호 장치를 나타내는 구성도이다.
도 3은 본 발명의 하나의 실시예에 따른 자바스크립트 자기보호 장치의 자기 보호 과정을 나타내는 순서도이다.
도 4는 본 발명의 하나의 실시예에 따른 자바스크립트의 함수의 난독화 과정을 나타낸 예시적으로 도면이다.
첨부한 도면을 참고로 하여 본 발명의 실시예에 대해 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 도면부호가 사용되었다. 또한 널리 알려져 있는 공지기술의 경우 그 구체적인 설명은 생략한다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
명세서 전체에서, "~모듈" 또는 "~부"는 컴퓨터의 메모리에 저장되고, 컴퓨터의 프로세서에 의하여 연산, 처리 등이 되는 것으로, 컴퓨터에서 특정한 기능을 수행하는 프로그램의 논리적인 일부분을 뜻하며, 소프트웨어로 구현될 수 있다.
이하에서는 도 1 및 도 2를 이용하여 본 발명의 하나의 실시예에 따른 자바스크립트 자기보호 장치 및 이를 포함하는 네트워크에 대해서 상세하게 설명한다.
도 1은 본 발명의 하나의 실시예에 따른 자바스크립트 자기보호 장치를 포함하는 통신 네트워크를 나타내는 구성도이고 도 2는 본 발명의 하나의 실시예에 따른 자바스크립트 자기보호 장치를 나타내는 구성도이다.
도 1에 도시한 바와 같이, 웹서버(100)는 자바스크립트 자기보호 장치(200)와 연동되어 네트워크를 통해 사용자 단말(300)에 웹 페이지를 제공한다.
여기서, 네트워크는 유선 통신 네트워크, 근거리 또는 원거리 무선 통신 네트워크, 이들이 혼합된 네트워크 등 데이터를 전달하는 모든 형태의 통신 네트워크를 포함할 수 있다.
웹서버(100)는 웹 페이지를 생성하여 네트워크를 통해 관련 이미지 및 데이터를 웹 상에 게시한다. 그러면 사용자 단말(300)은 네트워크를 통해 웹서버(100)에 접속하고 사용자 단말(300)의 웹 브라우저가 접속한 웹서버(100)의 도메인 주소에 해당하는 웹 페이지를 화면상에 표시한다.
이때, 악성 서버(미도시함)가 웹서버(100)의 데이터 접근하여 자바스크립트를 통해 검증되지 않은 입력 값을 삽입하여 사용자 단말(300)을 공격할 수 있다. 이와 같은 크로스 사이트 스크립팅을 방지하기 위해 본 발명의 실시예에서는 자바스크립트 자기보호 장치(200)를 통해 자기 보호 과정을 거친 후 웹에 웹사이트를 게시한다.
도 2에 도시한 바와 같이, 자바스크립트 자기보호 장치(200)는 함수 설정부(210), 메모리 주소 저장부(220), 메모리 주소 판단부(230), 메모리 주소 제어부(240) 그리고 난독화부(250)를 포함한다.
먼저, 함수 설정부(210)는 웹 페이지를 구성하는 자바스크립트 함수의 오버라이드(override) 기능을 비활성화한다.
여기서, 오버라이드란 자식 객체(하위 객체)에서 부모 객체의 기능을 재 정의하는 것을 나타낸다. 더 상세하게는 부모 클래스의 기능을 사용하지 않고 자식 클래스에서 구현한 기능을 사용하고 싶은 경우 또는 부모 클래스의 기능을 자식 클래스에서 확장하고 싶은 경우 사용된다.
함수 설정부(210)는 오버라이드 기능을 비활성화하여 웹 페이지의 자바스크립트 함수가 부모 클래스의 기능을 확장하거나 재정의하지 못하도록 설정한다.
다음으로, 메모리 주소 저장부(220)는 자바스크립트 함수의 실제 메모리 주소를 저장한다. 메모리 주소 저장부(220)는 웹 페이지에 게재되기 전에 각각의 자바스크립트 함수가 저장되어 있는 웹서버(100) 내의 실제 메모리 주소를 저장할 수 있다.
그리고 메모리 주소 판단부(230)는 미리 설정된 시간 간격마다 현재 시점의 웹서버(100) 내의 자바스크립트 함수의 메모리 주소를 확인한다. 그리고 메모리 주소 판단부(230)는 현재 시점의 자바스크립트 함수의 메모리 주소와 웹 페이지에 게재되기 전에 저장된 실제 메모리 주소의 동일 여부를 판단한다.
메모리 주소 제어부(240)는 자바스크립트 함수의 현재 시점의 메모리 주소가 저장된 실제 메모리 주소와 상이한 경우, 메모리 주소를 현재 시점의 메모리 주소로부터 실제 메모리 주소로 변경한다.
이때, 메모리 주소 제어부(240)는 해당 자바스크립트 함수의 메모리 주소를 현재 시점의 메모리 주소로부터 실제 메모리 주소로 변경하고, 변경 전 현재 시점의 자바스크립트 함수의 메모리 주소를 별도의 데이터베이스에 기록할 수 있다.
그리고 난독화부(250)는 웹에 오버라이드 기능이 비활성화된 새로운 웹 페이지를 게재하기 위해 배포 패키지 생성 시, 자바스크립트 함수를 압축, 전치 그리고 치환을 수행하여 난독화한다.
난독화부(250)는 자바스크립트 함수의 가독성을 낮추도록 자바스크립트 함수의 불필요한 부분을 삭제하고, 자바스크립트 함수를 추가하거나 자바스크립트 함수를 재작성할 수 있다.
그리고 자바스크립트 자기보호 장치(200)는 웹서버(100)와는 독립된 장치로, 서버, 단말, 또는 이들이 결합된 형태일 수 있다. 이외에도, 자바스크립트 자기보호 장치(200)는 웹서버(100)의 일부로 웹서버(100) 내에 탑재된 장치일 수 있다.
단말은 각각 메모리(memory), 프로세서(processor)를 구비함으로써 연산 처리 능력을 갖춘 장치를 통칭하는 것이다. 예를 들어, 퍼스널 컴퓨터(personal computer), 핸드헬드 컴퓨터(handheld computer), PDA(personal digital assistant), 휴대폰, 스마트 기기, 태블릿(tablet) 등이 있다.
웹서버(100) 또는 전술한 서버는 복수개의 모듈(module)이 저장되어 있는 메모리, 그리고 메모리에 연결되어 있고 복수개의 모듈에 반응하며, 단말에 제공하는 서비스 정보 또는 서비스 정보를 제어하는 액션(action) 정보를 처리하는 프로세서, 통신 수단, 그리고 UI(user interface) 표시 수단을 포함할 수 있다.
메모리는 정보를 저장하는 장치로, 고속 랜덤 액세스 메모리(high-speed random access memory, 자기 디스크 저장 장치, 플래시 메모리 장치, 기타 비휘발성 고체 상태 메모리 장치(non-volatile solid-state memory device) 등의 비휘발성 메모리 등 다양한 종류의 메모리를 포함할 수 있다.
통신 수단은 단말과 서비스 정보 또는 액션 정보를 실시간으로 송수신한다.
UI 표시 수단은 시스템의 서비스 정보 또는 액션 정보를 실시간으로 출력한다. UI 표시 수단은 UI를 직접적 또는 간접적으로 출력하거나 표시하는 독립된 장치일 수도 있으며, 또는 장치의 일부분일 수도 있다.
이하에서는 도 3을 이용하여 자바스크립트 자기 보호 장치의 자기 보호 방법에 대해서 상세하게 설명한다.
도 3은 본 발명의 하나의 실시예에 따른 자바스크립트 자기보호 장치의 자기 보호 과정을 나타내는 순서도이고,
도 3에 도시한 바와 같이, 자바스크립트 자기보호 장치(200)는 웹 페이지를 구성하는 자바스크립트 함수의 오버라이드 기능을 비활성화한다(S310).
자바스크립트 자기보호 장치(200)는 웹 상에 게재되기 전에 웹서버로부터 웹 페이지를 수신한다. 그러면 자바스크립트 자기보호 장치(200)는 웹 페이지의 자바스크립트 함수에 람다 함수(익명 함수)를 삽입한다.
여기서, 람다 함수는 익명 함수로 일반적으로 다른 객체들에 적용 가능한 연산을 모두 지원하는 객체이다. 람다 함수는 고차함수로 사용할 수 있으며, 클로저(closer) 함수와 함께 작성되는 경우, 자바스크립트 함수가 생성될 때 당시의 구성환경을 기억할 수 있다. 또한, 람다 함수는 외부로 노출된 인터페이스가 없으며, 클로저는 이러한 람다 함수를 닫힌 람다 함수로 변환할 수 있다.
그러므로 자바스크립트 자기보호 장치(200)는 람다 함수에 클로저를 함수를 실행함으로써, 은닉화하여 외부에서 특별한 인터페이스를 제공하지 않는 이상 변수에 직접 접근을 어렵게 할 수 있다.
그리고 자바스크립트 자기보호 장치(200)는 자바스크립트 함수에 새로운 속성이 추가되지 않도록 개체의 확장을 방지하고, 기존 개체의 속성 특성을 변경 또는 삭제되지 않도록 설정하며, 개체의 모든 데이터 속성 값을 변경할 수 없도록 객체 함수를 설정할 수 있다.
예를 들어, 자바스크립트 자기보호 장치(200)는 object.freeze()와 같은 함수의 writable 속성 값을 false로 설정할 수 있다.
이처럼, 자바스크립트 자기보호 장치(200)는 오버라이드 기능을 비활성화하여 객체에 새로운 속성을 추가할 수 없고, 객체에 원래 존재하던 속성을 제거하거나 객체의 속성, 열거가능성, 설정가능성, 값 쓰기 가능성을 변경할 수 없게 할 수 있다.
다음으로 자바스크립트 자기보호 장치(200)는 자바스크립트 함수의 실제 메모리 주소를 저장한다(S320). 자바스크립트 자기보호 장치(200)는 웹 상에 게재되기 전에 자바스크립트 함수의 실제 메모리 주소를 저장하여 관리할 수 있다.
다음으로 자바스크립트 자기보호 장치(200)는 자바스크립트 함수 메모리 주소를 확인한다(S330). 이때, 자바스크립트 자기보호 장치(200)는 미리 설정된 시간 간격마다 현재 시점의 자바스크립트 함수의 메모리 주소를 확인할 수 있다.
그리고 자바스크립트 자기보호 장치(200)는 웹 페이지가 게재되기 전에 저장된 실제 메모리 주소와 미리 설정된 시간 간격마다 확인된 현재 시점의 메모리 주소의 동일 여부를 판단한다(S340).
자바스크립트 자기보호 장치(200)는 실제 메모리 주소와 현재 시점의 메모리 주소가 다른 경우, 현재 시점의 메모리 주소로부터 실제 메모리 주소로 메모리 주소를 변경한다(S350).
자바스크립트 자기보호 장치(200)는 자바스크립트 함수의 현재 시점의 메모리 주소가 저장된 메모리 주소와 다른 경우, 외부의 침입으로 자바스크립트의 함수의 메모리가 변경된 것으로 추정할 수 있다. 그러므로 자바스크립트 자기보호 장치(200)는 외부 침입을 무력화시키고자 이에 대응하여 자바스크립트 함수의 메모리 주소를 현재 시점의 메모리 주소로부터 실제 메모리 주소로 변경할 수 있다.
그리고 자바스크립트 자기보호 장치(200)는 변경 전 자바스크립트 함수의 메모리 주소, 변경된 시점 등을 별도의 데이터베이스에 기록할 수 있다.
한편, 자바스크립트 자기보호 장치(200)는 새로운 웹 페이지를 게재하기 위해 배포 패키지 생성 시, 자바스크립트 함수를 난독화할 수 있다. 자바스크립트 자기보호 장치(200)는 오버라이드 기능이 비활성화된 자바스크립트 함수를 압축, 전치 그리고 치환을 수행하여 난독화 할 수 있다.
이때, 자바스크립트 자기보호 장치(200)는 구글 클로저 컴파일러를 통해 난독화를 수행할 수 있으나, 이에 한정하는 것은 아니다.
도 4는 본 발명의 하나의 실시예에 따른 자바스크립트의 함수의 난독화 과정을 나타낸 예시적으로 도면이다. 도 4에 도시한 바와 같이, 자바스크립트 자기보호 장치(200)는 자바 스크립트 함수를 필요없는 값들을 삭제하여 압축시키고, 재작성하여 압축한다.
이와 같이, 자바스크립트 자기보호 장치(200)는 난독화 과정을 수행한 후, 웹 상에 게재함으로써 해당 자바스크립트 함수의 가독성을 낮춰 불법으로 침입하려는 악성 코드를 방지할 수 있다.
본 발명의 하나의 실시예에 따른 방법을 실행시키기 위한 프로그램은 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다.
컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 여기서 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드가 포함된다.
이상에서 본 발명의 바람직한 하나의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100: 웹서버 200: 자바스크립트 자기보호 장치
210: 함수 설정부 220: 메모리 주소 저장부
230: 메모리 주소 판단부 240: 메모리 주소 제어부
250: 난독화부 300: 사용자 단말

Claims (10)

  1. 웹서버로부터 새로운 웹 페이지를 수신하면, 상기 웹 페이지를 구성하는 자바스크립트 함수의 오버라이드(override) 기능을 비활성화하는 함수 설정부,
    상기 자바스크립트 함수의 실제 메모리 주소를 저장하는 메모리 주소 저장부,
    미리 설정된 시간 간격마다 자바스크립트 함수의 메모리 주소를 확인하여 상기 실제 메모리 주소와 동일여부를 판단하는 메모리 주소 판단부, 그리고
    상기 메모리 주소가 상기 실제 메모리 주소와 상이한 경우, 상기 메모리 주소를 실제 메모리 주소로 변경하는 메모리 주소 제어부
    를 포함하는 자바스크립트 자기보호 장치.
  2. 제1항에 있어서,
    상기 함수 설정부는,
    상기 자바스크립트 함수에 람다 함수(익명 함수)를 삽입하고, 상기 람다 함수에 클로저(closer) 함수를 실행시키는 자바스크립트 자기보호 장치.
  3. 제2항에 있어서,
    상기 함수 설정부는,
    상기 자바스크립트 함수에 새로운 속성이 추가되지 않도록 개체의 확장을 방지하고, 기존 개체의 속성 특성을 변경 또는 삭제되지 않도록 설정하며, 개체의 모든 데이터 속성 값을 변경할 수 없도록 객체 함수를 설정하는 자바스크립트 자기보호 장치.
  4. 제3항에 있어서,
    웹에 상기 오버라이드 기능이 비활성화된 새로운 웹 페이지를 게재하기 위해 배포 패키지 생성 시, 상기 자바스크립트 함수를 압축, 전치 그리고 치환을 수행하여 난독화하는 난독화부를 더 포함하는 자바스크립트 자기보호 장치.
  5. 제4항에 있어서,
    상기 난독화부는,
    구글 클로저 컴파일러를 통해 난독화가 수행되는 자바스크립트 자기보호 장치.
  6. 웹서버로부터 새로운 웹 페이지를 수신하면, 상기 웹 페이지를 구성하는 자바스크립트 함수의 오버라이드(override) 기능을 비활성화하는 단계,
    상기 자바스크립트 함수의 실제 메모리 주소를 저장하는 단계,
    미리 설정된 시간 간격마다 자바스크립트 함수의 메모리 주소를 확인하여 상기 실제 메모리 주소와 동일여부를 판단하는 단계, 그리고
    상기 메모리 주소가 상기 실제 메모리 주소와 상이한 경우, 상기 메모리 주소를 실제 메모리 주소로 변경하는 단계
    를 포함하는 자바스크립트 자기보호 장치의 자기 보호 방법.
  7. 제6항에 있어서,
    상기 비활성화하는 단계는,
    상기 자바스크립트 함수에 람다 함수(익명 함수)를 삽입하고, 상기 람다 함수에 클로저(closer) 함수를 실행시키는 자바스크립트 자기보호 장치의 자기 보호 방법.
  8. 제7항에 있어서,
    상기 비활성화하는 단계는,
    상기 자바스크립트 함수에 새로운 속성이 추가되지 않도록 개체의 확장을 방지하고, 기존 개체의 속성 특성을 변경 또는 삭제되지 않도록 설정하며, 개체의 모든 데이터 속성 값을 변경할 수 없도록 객체 함수를 설정하는 자바스크립트 자기보호 장치의 자기 보호 방법.
  9. 제8항에 있어서,
    웹에 상기 오버라이드 기능이 비활성화된 새로운 웹 페이지를 게재하기 위해 배포 패키지 생성 시, 상기 자바스크립트 함수를 압축, 전치 그리고 치환을 수행하여 난독화하는 단계를 더 포함하는 자바스크립트 자기보호 장치의 자기 보호 방법.
  10. 제9항에 있어서,
    상기 난독화하는 단계는,
    구글 클로저 컴파일러를 통해 난독화가 수행되는 자바스크립트 자기보호 장치의 자기 보호 방법.
KR1020180021077A 2018-02-22 2018-02-22 자바스크립트 자기보호 장치 및 그 방법 KR102040080B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180021077A KR102040080B1 (ko) 2018-02-22 2018-02-22 자바스크립트 자기보호 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180021077A KR102040080B1 (ko) 2018-02-22 2018-02-22 자바스크립트 자기보호 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20190101119A true KR20190101119A (ko) 2019-08-30
KR102040080B1 KR102040080B1 (ko) 2019-11-04

Family

ID=67776245

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180021077A KR102040080B1 (ko) 2018-02-22 2018-02-22 자바스크립트 자기보호 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR102040080B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101212553B1 (ko) * 2012-05-11 2012-12-14 주식회사 안랩 악성 파일 검사 장치 및 방법
KR20150144009A (ko) * 2014-06-16 2015-12-24 주식회사 예티소프트 단말, 및 이를 이용한 웹 페이지 위변조 검증 시스템 및 방법
KR101646096B1 (ko) * 2016-01-21 2016-08-05 시큐레터 주식회사 메모리 분석을 통한 비실행 파일의 악성 여부 검사 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101212553B1 (ko) * 2012-05-11 2012-12-14 주식회사 안랩 악성 파일 검사 장치 및 방법
KR20150144009A (ko) * 2014-06-16 2015-12-24 주식회사 예티소프트 단말, 및 이를 이용한 웹 페이지 위변조 검증 시스템 및 방법
KR101646096B1 (ko) * 2016-01-21 2016-08-05 시큐레터 주식회사 메모리 분석을 통한 비실행 파일의 악성 여부 검사 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
이강수, '자바 환경에서의 보안 위협과 메커니즘', 한국정보과학회 논문지, 1997.07. *

Also Published As

Publication number Publication date
KR102040080B1 (ko) 2019-11-04

Similar Documents

Publication Publication Date Title
Lekies et al. 25 million flows later: large-scale detection of DOM-based XSS
US9432383B2 (en) Web page integrity validation
CN101356535B (zh) 一种检测和防止java脚本程序中不安全行为的方法和装置
US10397243B2 (en) Condition checking for page integration of third party services
US10599842B2 (en) Deceiving attackers in endpoint systems
US11882134B2 (en) Stateful rule generation for behavior based threat detection
US20100037317A1 (en) Mehtod and system for security monitoring of the interface between a browser and an external browser module
US20090070663A1 (en) Proxy engine for custom handling of web content
US9779250B1 (en) Intelligent application wrapper
US11586726B2 (en) Secure web framework
Bao et al. Cross-site scripting attacks on android hybrid applications
WO2018068366A1 (zh) 预防xss攻击的方法
Xu et al. JSCSP: a novel policy-based XSS defense mechanism for browsers
US10275596B1 (en) Activating malicious actions within electronic documents
CN107103243B (zh) 漏洞的检测方法及装置
KR102040080B1 (ko) 자바스크립트 자기보호 장치 및 그 방법
Saini et al. The darker side of firefox extension
Barhoom et al. A new server-side solution for detecting cross site scripting attack
US10467423B1 (en) Static analysis-based tracking of data in access-controlled systems
Johns et al. Tamper-resistant likejacking protection
CN112287349A (zh) 安全漏洞检测方法及服务端
Singh et al. Detection of web-based attacks by analyzing web server log files
Rana et al. A security analysis of browser extensions
CN109218284B (zh) Xss漏洞检测方法及装置、计算机设备及可读介质
KR102047547B1 (ko) 자기보호 자바스크립트에서 암호화 모드를 이용한 보안 시스템 및 그 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant