KR20100078738A - 웹 애플리케이션 서버에서의 보안 시스템 및 보안 방법 - Google Patents

웹 애플리케이션 서버에서의 보안 시스템 및 보안 방법 Download PDF

Info

Publication number
KR20100078738A
KR20100078738A KR1020080137081A KR20080137081A KR20100078738A KR 20100078738 A KR20100078738 A KR 20100078738A KR 1020080137081 A KR1020080137081 A KR 1020080137081A KR 20080137081 A KR20080137081 A KR 20080137081A KR 20100078738 A KR20100078738 A KR 20100078738A
Authority
KR
South Korea
Prior art keywords
security
user request
web application
file
analysis module
Prior art date
Application number
KR1020080137081A
Other languages
English (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 KR1020080137081A priority Critical patent/KR20100078738A/ko
Publication of KR20100078738A publication Critical patent/KR20100078738A/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6236Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 웹 애플리케이션의 보안에 있어서 관점지향 프로그래밍(AOP) 기법을 통해 소프트웨어적인 방법을 사용하여 고성능, 저비용으로 웹 서버의 보안을 구현할 수 있는 웹 보안 에이전트를 제공하는 것을 목적으로 하며, 네트워크를 통해 다수의 클라이언트와 연결되고 보안 에이전트를 포함하고 있는 웹 애플리케이션 서버에서의 보안 시스템으로서, 상기 보안 에이전트가 관점지향 프로그래밍(AOP)으로 구현된 사용자 요청 분석 모듈을 포함하고, 보안이 적용되어야 할 핵심관심(core concern)의 적어도 하나 이상의 조인트 포인트에 상기 사용자 요청 분석 모듈을 어드바이스로서 위빙(weaving)하고, 이에 따라 웹 애플리케이션의 소스코드를 변경하지 않고도 상기 웹 애플리케이션에 상기 사용자 요청 분석 모듈을 적용할 수 있는 보안 시스템 및 이를 이용한 보안 방법을 특징으로 한다.
보안 에이전트, 웹 애플리케이션, 웹 서버, 관점 지향 프로그래밍, AOP.

Description

웹 애플리케이션 서버에서의 보안 시스템 및 보안 방법{Security System and Security Method at Web Application Server}
본 발명은 웹 애플리케이션 서버 내에 탑재되어 동작하는 웹 보안 에이전트에 관한 것으로, 보다 상세하게는, 관점지향 프로그래밍(Aspect Oriented Programming:AOP) 기법을 도입하여 프로그램된 보안 에이전트 및 이를 사용한 보안 방법에 관한 것이다.
인터넷과 같은 네트워크를 통해 다수의 클라이언트와 서버가 상호 연결되어 통신하는 웹 시스템에서, 네트워크 통신기술의 발전에 따라 웹 서버를 다양한 패턴의 해킹 공격으로부터 방어하기 위한 보안기술도 발전되어 왔다.
웹 서버를 보호하기 위한 보안 방법으로서 지금까지는 하드웨어 방화벽과 IPS(Intrusion Prevention System), 및 VPN(Virtual Private Network)을 혼용하여 사용하는 하드웨어 의존적인 시스템을 주로 사용하고 있다.
그러나 하드웨어 방화벽은 사용자를 한 개 내지 수 개의 입구로만 출입 시키는 일종의 병목 통제 기술이라고 할 수 있고, 이는 관리 포인트를 줄이는 이점이 있지만 결과적으로 웹 애플리케이션의 성능을 저하시키는 결과를 가져왔다. 또한 방화벽은 90년대 초에 설계된, 인터넷이 보급되기 이전에 설계된 기술이기 때문에 웹 애플리케이션에 집중해서 들어오는 악성 요청(Request)에 대해 제대로 대처를 하지 못하는 문제가 있었다.
한편 IPS 시스템은 인터넷 웜 등의 악성코드 및 해킹 등에 기인한 유해 트래픽을 차단해 주는 솔루션이다. 하지만 IPS 시스템은 트래픽을 검사하긴 하지만 주로 웜 바이러스 차단에 집중하여 웹 애플리케이션 단의 세밀한 탐지 컨트롤이 어렵고, 해킹 패턴 룰을 업데이트하는 방법 또한 소프트웨어 기반의 에이전트 보다 까다로울 뿐더러, 알려지지 않은 해킹방법에 대한 처리나 이미 저질러진 해킹에 대한 후 처리는 할 수 없는 문제가 있었다.
또한 기존에도 사용자 요청을 가로채어 정상 요청인지 판정하는 방법이 존재하긴 하지만, 모든 자바 페이지마다, 즉 예컨대 서블릿이나 스트럿츠의 액션과 같은 자바 컨트롤러 단에 무수히 많은 중복되는 보안 코드를 삽입해야 했었고, 이러한 기존 방법은 웹 애플리케이션이 대형화 되고 복잡해질수록 관리 포인트가 늘어나게 되어 보안관심사가 누락된 페이지가 발생하곤 하였다. 기존에 전적으로 개발자의 양심에 맡김으로 인해 종종 보안관련 코드가 누락되고 사고가 발생할 수밖에 있었던 개발 프로젝트 상의 보안 문제를 해결하여 원 포인트 관리로 무결하게 할 수 있는 보안 관리가 필요한 것이다.
결과적으로 이러한 방법으로는 일반적으로 웹 애플리케이션에 직접적으로 접근하는 익명의 사용자의 악의적인 접근에 대해서는 속수무책으로 당할 수 밖에 없었고, 이에 따라 웹 애플리케이션에 대한 직접적 공격에 대해 보다 적극적으로 대 처하면서도 고성능, 저비용으로 웹 서버의 보안을 구축할 수 있는 기술이 요구되고 있다.
본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, 웹 애플리케이션의 보안에 있어서 관점지향 프로그래밍(AOP) 기법을 통해 소프트웨어적인 방법을 사용하여 고성능, 저비용으로 웹 서버의 보안을 구현할 수 있는 웹 보안 에이전트를 제공하는 것을 목적으로 한다.
상기 과제를 해결하기 위해 본 발명은, 네트워크를 통해 다수의 클라이언트와 연결되고 보안 에이전트를 포함하고 있는 웹 애플리케이션 서버에서의 보안 시스템에 있어서, 상기 보안 에이전트가 관점지향 프로그래밍(AOP)으로 구현된 사용자 요청 분석 모듈을 포함하고, 보안이 적용되어야 할 핵심관심에 관한 사용자 요청이 클라이언트로부터 상기 웹 애플리케이션 서버로 전송되면, 상기 사용자 요청이 파싱될 때 상기 사용자 요청의 하나 이상의 조인트 포인트에 상기 사용자 요청 분석 모듈을 어드바이스로서 위빙(weaving)하여 함께 파싱함으로써 상기 사용자 요청이 정상 요청인지 여부를 판단하고, 이에 따라 웹 애플리케이션의 소스코드를 변경하지 않고도 상기 웹 애플리케이션에 상기 사용자 요청 분석 모듈을 적용할 수 있는 보안 시스템을 특징으로 한다.
또한, 본 발명은 네트워크를 통해 다수의 클라이언트와 연결되고 보안 에이전트를 포함하고 있는 웹 애플리케이션 서버에서의 보안 방법으로서, 상기 보안 에이전트가 관점지향 프로그래밍(AOP)으로 구현된 사용자 요청 분석 모듈을 포함하고 있는 보안 방법에 있어서, 보안이 적용되어야 할 핵심관심에 관한 사용자 요청을 클라이언트로부터 수신하는 단계; 상기 사용자 요청이 파싱될 때 상기 사용자 요청의 하나 이상의 조인트 포인트에 상기 사용자 요청 분석 모듈을 어드바이스로서 위빙하여 함께 파싱하는 단계; 상기 사용자 요청 분석 모듈이 상기 사용자 요청이 정상 요청인지 여부를 판단하는 단계; 및 상기 판단 결과 사용자 요청이 정상 요청이 아닐 경우 해당 사용자의 세션을 차단하고 로그 기록을 남기는 단계를 포함하고, 이에 따라 웹 애플리케이션의 소스코드를 변경하지 않고도 상기 웹 애플리케이션에 상기 사용자 요청 분석 모듈을 적용할 수 있는 보안 방법을 특징으로 한다.
상기 해결수단을 갖는 본 발명의 웹 보안 에이전트에 의해, 웹 서버상의 상시적인 프로세스 감시가 가능할 뿐 아니라, URL, 파라미터, 컨텐츠 조작으로 일어나는 XSS 스크립트, SQL 인젝션 공격등 주요 보안사고에 종합적으로 대응할 수 있는 효과가 있다.
즉 본 발명의 보안 에이전트에 포함되는 파일시스템 감시모듈의 기능으로 방화벽 시스템의 기능을 수행할 수 있으므로, DOS(Denial Of Service attack), XSS, 인젝션 공격 등에 대한 효과적인 방어를 수행함에 있어서 하드웨어 기반으로 구축되는 방화벽 시스템을 별도로 구매할 필요가 없고, 따라서 서버 및 소프트웨어를 구매하고 운용하는데 드는 추가 비용과 인력이 필요 없고 추가의 보안 필터링을 통해 예상되는 웹 애플리케이션의 성능저하도 막을 수 있으므로 비용절감의 효과 및 성능 향상의 이점을 수반하게 된다.
더욱이 본 발명의 보안 에이전트는 자바 기반의 AOP 기법을 적용하여 구성한 것으로, 기존에 웹 애플리케이션의 컨트롤러 단에 무수히 많게 중복되고 산재되어 때로는 누락되기도 했던 보안코드를 본 발명에서는 횡단관심사로 절단 관리하기 때문에 웹 애플리케이션의 소스 코드가 줄고 전반적으로 웹 애플리케이션이 경량화되는 효과가 있고 개발자의 양심에 맡겨 검증되지 않은 채로 고객에게 노출되기도 했던 보안의 허점을 중앙에서 획일적으로 통제하고 관리할 수 있다.
종래의 방화벽과 같은 하드웨어 의존 침입방지 시스템은 비용이 고가일 뿐만 아니라 웹 애플리케이션 성능의 저하를 가져온다. 그리고 웹 애플리케이션에 대해 직접적으로 액세스하는 공격에 대해서는 제대로 대처를 할 수 없었다. 따라서 본 발명자는 하드웨어 의존적인 방화벽 시스템만으로 막기 불가능한 공격에 대응할 수 있고 또한 가격경쟁 및 처리속도 면에서도 우위를 갖는 소프트웨어 기반의 보안 에이전트에 관해 연구를 한 결과, 자바 언어에 관점지향 프로그래밍(AOP) 기법을 도입하여 웹 애플리케이션의 보안 기능을 강화하고 기존 웹 애플리케이션의 수정 없이도 보안의 이슈를 삽입할 수 있게 되어, 보안 개념이 결합된 안전한 애플리케이션을 구축하였다.
즉 보안 이슈에 따라 AOP 기법을 보안 소프트웨어에 도입함에 있어서, 특정 웹 애플리케이션을 구축할 때에 보안의 이슈가 있는 모든 조인트 포인트(관리 포인트)마다 소스를 수정할 필요가 없이 AOP 기법에 따른 위빙 기술을 사용하여 보안 이슈의 조인트 포인트를 그룹화해서 찾아내어 본 발명의 사용자 요청 분석 모듈을 삽입한다.
이에 따라 본 발명의 보안 에이전트는 XSS, 인젝션 공격, 악성파일 실행 등 국제 웹 보안 협회(OWASP)에 등록된 10대 보안 취약점에 대응하여, 특정한 패턴의 공격이나 파일시스템의 변경이 감지된 경우, 관리자에 설정된 레벨에 따라 파일삭제, IP차단, 시스템 차단 등 선 조치 후 공격자를 추적하여 공격자의 정보를 저장 후 관리자에게 E-mail, SMS 등 다양한 방법으로 통보하여 항시 웹 애플리케이션 서버의 보안 상태를 안전하게 유지하고 취약한 부분을 분석하고 관리할 수 있다.
이하 첨부된 도면을 참조하여 본 발명에 따른 일 실시예를 상세히 설명한다.
도1은 본 발명의 일 실시예에 따른 웹 보안 에이전트를 구성하는 모듈을 나타낸 도면이고, 도2는 상기 보안 에이전트의 각 모듈의 동작을 도식적으로 설명하는 도면이다.
도1 및 도2에 도시된 바와 같이 본 발명의 웹 보안 에이전트(100)는 웹 애플리케이션 서버(210)에 설치되어 있고 사용자 요청 분석 모듈(101), 파일시스템 감시 모듈(102), 및 패턴 룰 업데이트 모듈(103)을 포함하고 있다. 여기서, 웹 애플리케이션 서버(210)는 예를 들어 네트워크 상에서 특정 애플리케이션을 다수의 일반사용자에게 제공하여 서비스하는 운영자의 웹 애플리케이션 서버가 될 수 있고, 웹 패치 서버(220)는 예를 들어 본 발명의 웹 보안 에이전트(100)를 상기 운영자를 비롯한 다수의 운영자에게 제공하고 이를 통합 관리하는 관리자의 서버가 될 수 있다.
사용자 분석 모듈(101)은 사용자 요청(Request)을 분석하고 로그를 남기고 해킹시도 여부에 따라 차단하는 기능을 수행하는 것으로, 예컨대 클라이언트 PC에서 사용자가 로그 인을 시도하거나 게시판에 글을 올려놓는 것과 같은 사용자 요청이 있을 때 이 사용자 요청이 웹 애플리케이션에 도달하여 응답(response)을 주기 전에 이를 필터링하는 역할을 한다.
파일시스템 감시 모듈(102)은 일정한 시간주기에 따라 동작하는 배치 형태의 감시 모듈로서, 미리 설정된 특정 시간이나 특정 이벤트가 발생했을 때 웹 애플리케이션 서버 내의 파일시스템을 검사하여 파일이 변경되었거나 새로운 파일이 생성되었는지 등을 검사하고, 검사 결과 새로 생성되었거나 변경된 파일이 있을 경우 예컨대 백도어 파일, 바이러스 등 악성코드를 가진 파일이 아닌지 여부를 판단하여 그에 대응하여 적절한 조치를 취하게 한다.
패턴 룰 업데이트 모듈(103)은 보안 에이전트(100)가 최신 패턴 룰을 업데이트할 수 있도록 하는 것으로, 웹 패치 서버(220)의 패턴 룰 관리 모듈(203)로부터 최신 패턴 룰 및 보안 패치에 관한 각종 최신 정보를 수신하여 웹 애플리케이션 서버(210) 내의 데이터베이스(211)에 올리는 역할을 한다.
패턴 룰 관리 모듈(203)은 도시된 웹 애플리케이션 서버(210) 뿐 아니라 해당 웹 패치 서버(220)에 연결된 다수의 웹 애플리케이션 서버들로부터 수시로 새로운 해킹 유형을 통지받아 해킹 룰 패턴으로 등록하고, 각각의 웹 애플리케이션 서버(210)와 정해진 주기로 통신하여 보안 에이전트(100)가 보안 패치를 받고 최신의 패턴 룰을 업데이트 하도록 한다.
일반적으로 보안 패치라 하면 클라이언트 PC와 패치 서버간에 이루어지지만, 본 발명의 서버 패치 기술은 운용중인 웹 애플리케이션 서버와 패치 서버간 통신으로 비 일과시간에 서버-투-서버 패치 전송으로도 신속하게 이루어질 수 있다. 이 때 웹 서버 패치(220) 내의 데이터베이스(221)에 저장되어 있던 최신 해킹 패턴 룰이 웹 애플리케이션 서버(210)의 데이터베이스(211)로 전송되어 업데이트 되며 OS 벤더 별 최신 보안패치 버전 등도 업데이트될 수 있다.
상기 사용자 분석모듈(101), 파일시스템 감시 모듈(102), 및 패턴 룰 업데이트 모듈(103)에 대한 보다 구체적인 실행과정은 후술하기로 한다.
도3은 관점지향 프로그래밍(AOP) 기법에 의해 핵심관심(core concern)에 횡단 보안 관심사(cross-cutting concern)를 위빙하여 삽입함으로써 본 발명의 보안 에이전트를 구현하는 방법을 개념적으로 나타내는 도면이다. 이 구현법은 특히 본 발명의 사용자 요청 분석 모듈(101)을 구현할 때 적용된다.
AOP가 어떠한 방식으로 어플리케이션에 보안 관심사를 접목시키는지에 대해 개념적으로 보면, AspectJ, JBossAOP, SpringAOP 등과 같은 AOP 툴을 사용하여, 횡단 관심사(cross-cutting concern)가 일어나는 길목에 자바 바이트 코드를 절단한 뒤에 본 발명의 보안 에이전트를 어드바이스(Advise)로서 삽입하는 형태로 위빙을 함으로써, 모든 자바 클래스가 중복되는 코드를 넣지 않고서도 원하는 보안 관심사를 구현하는 것이다.
이를 본 발명에 적용해보면, 본 발명에서는 보안 문제가 횡단 관심사가 되므로 보안 모듈, 즉 사용자 분석 모듈이 조인트 포인트에 삽입되어야 할 어드바이스에 해당한다. 이 때 보안이 필요한 핵심 관심은 도3에 301로 나타낸 것처럼 예컨대 계정, 데이터베이스, 로그인 모듈이 해당될 수 있고, 이러한 각 모듈이 보안의 진입점이 되는 길목이 된다. 이에 따라, 예컨대 도3에서 303으로 나타낸 것처럼 로그인 모듈에 보안 모듈을 삽입할 경우, AOP 툴을 사용하여 자바 바이트 코드를 절단한 뒤 어드바이스로서 보안 모듈을 삽입함으로써 보안 관심사를 핵심 관심사 내에 구현하는 것이다.
한편 본 명세서에서 언급되는 AOP 관련 용어들, 즉 핵심 관심, 횡단 관심, 위빙, 어드바이스, 조인트 포인트 등의 용어는 본 발명이 속하는 기술분야에서 사용되는 것과 동일한 의미로 사용되므로 각 용어에 대한 설명은 생략한다.
도4는 본 발명의 일 실시예에 따라 AOP기법으로 사용자 요청의 바이트 코드에 보안 모듈을 삽입함으로써 웹 애플리케이션의 소스코드를 수정하지 않고 보안 이슈를 적용하는 개념을 도식적으로 나타낸 도면이다.
도4에 도시된 코드열은 예컨대 사용자 요청이 바이트 코드화 되어 있는 모습을 나타낸 것이다. 이러한 사용자 요청에 전 처리기 역할을 수행할 부분을 끼워 넣을 조인트 포인트(402)가 있다. 이 지점에 AspectJ 등의 AOP 툴을 사용하여 보안 모듈을 삽입한다. 예를 들어 이 부분이 LoginServlet의 doGet 메소드의 실행 전 위치라 가정하면 doGet이 실행되기 이전에 XSS, 인젝션 공격 등에 대응할 파라미터 필터링을 적용한다. 경우에 따라 후 처리가 필요한 경우에는 후 처리기가 위치해야 할 지점(404)을 조인트 포인트로 하여 어드바이스가 삽입될 수도 있다. 또한 조인트 포인트의 전과 후에 위빙으로 어드바이스를 줄 수도 있지만, 조인트 포인트를 둘러싸는 대체 어드바이스(around advise)로도 구현할 수 있다.
도5는 도4의 보안 모듈의 AOP 코딩이 어떻게 이뤄지는지를 예시적으로 보여주는 보안 모듈의 자바 소소 코드로서, 로그인과 관련된 사용자 요청의 자바 바이트 코드에 삽입되어질 사용자 요청 분석 모듈(101)에 대한 소스 코드이다. 도면에서 501로 나타낸 부분이 보안 전 처리기 역할을 해주는 보안 매니저(502)의 호출이다. 여기서 특정 사용자 요청이 데이터베이스(211)에 등록된 패턴 룰에 해당하지 않는 정상적 사용자 요청이라면 통상의 로그인 과정을 거쳐 웹 애플리케이션에 접근할 수 있게 하고, 등록된 패턴 룰에 해당하는 요청이어서 악의적이라 판단이 될 경우 around 메소드(501) 내의 proceed 메소드(503)를 실행시키지 않고 대신 악의적 요청자에 대한 로그(504)를 남기도록 한다.
이상과 같이 본 발명은 기존의 고가의 하드웨어 장비 의존적인 네트워크 보안이 유독 웹 애플리케이션 보안에는 취약한 상황을 고려하여, 기존의 보안 시스템과 차별화를 두고 새로운 개발 패러다임인 AOP를 이용하여 웹 애플리케이션 서버 내에 탑재되는 소프트웨어로 보안을 구현함으로써, 웹 어플리케이션에 직접 접근하는 익명의 사용자에 대해 악의적인 접근을 파악하여 차단, 기록, 통보를 행할 수 있다.
AOP 패러다임을 이용한 본 발명의 보안 에이전트 구성의 또 다른 장점은 기존에 구축된 웹 애플리케이션의 소스를 수정하지 않고도 보안 시스템을 구축할 수 있다는 데 있다. 위빙 툴을 이용하여 보안의 이슈가 있는 조인트 포인트를 찾아가기 때문에 기존 방식처럼 보안이 필요한 모든 곳에 중복된 코드를 넣지 않아도 되므로 보안 이슈가 있는 조인트 포인트를 그룹으로 묶어 포인트 컷(pointcut)하여 보안 모듈을 삽입할 수 있다. 결과적으로 웹 애플리케이션의 보안 관리 포인트가 적어지면서 프로그램이 경량화 되고 이에 따라 유지관리에 필요한 시간과 비용이 절약되는 효과가 있다.
또한, 본 발명의 또 다른 실시예로서 본 발명은 AOP를 이용하여 자바 바이트 코드에 끼워 넣는 방식으로 웹 애플리케이션 서버에서 HTTP 프로토콜을 통해 넘어온 사용자의 요청 헤더와 쿼리 스트링(query_string)을 파싱할 때 상기와 같은 방법으로 모듈을 끼워넣음으로써 파싱을 2번 하지 않아도 되기 때문에 실행속도가 빨라지게 되는 이점이 있다.
도6은 이상과 같이 AOP 기법으로 삽입된 사용자 요청 분석 모듈(101)의 네트워크 상의 동작을 도식적으로 보여주는 도면이다. 해커(601)가 사용자 요청 헤더 변조 등의 보안 취약점을 이용하여 웹 어플리케이션 서버(606)에 접근할 때, 사용자 요청 분석 모듈은 도4및 도5에서 설명한 것과 같이 위빙에 의해 이 사용자 요청에 삽입되어, 사용자 요청이 웹 애플리케이션에 도달하여 응답을 주기 전에 미리 파라미터, 컨텐츠 검증을 수행하고 데이터베이스(211)에 등록된 패턴 룰과 일치하는지 여부를 검사한다. 등록된 패턴 룰과 일치할 경우 해커의 접속을 차단하고 웹 애플리케이션 서버(606)의 데이터베이스에 해킹 패턴 룰을 저장하고, 그와 동시에 또는 그 후에 보안 에이전트 관리자가 운영하는 보안 패치 서버(605)로 전송된다. 보안 에이전트 관리자는 각기 다른 다수의 웹 애플리케이션 서버에서 전송된 이와 같은 해킹 패턴 룰에 대한 침입탐지 및 패턴 분석을 함으로써 최신 패턴 룰을 업데이트하고 다양한 해킹 시도에 대해 분석관리 자료를 생성하여 패치 서버(605)를 거 쳐 다수의 웹 애플리케이션 서버(606)로 전송하고, 이에 따라 웹 애플리케이션 서버는 항시 최신의 패턴 룰을 업데이트 할 수 있다.
도7은 도6에 설명된 사용자 요청 분석모듈(101)의 동작을 순서도로 나타낸 흐름도이다. 도7에 도시된 동작 흐름은 일 실시예로서 본 발명의 보안 에이전트가 수행하는 동작의 일부을 예시하는 것에 불과하고, 실제로는 많은 다양한 변경이 가해질 수 있다.
도7에서, 네트워크 상에서 불특정 사용자가 클라이언트 PC 등을 통해 웹 애플리케이션 서버에 액세스하기 위해 사용자 요청(Request)을 하면, 단계 701에서 이 사용자 요청을 가로채어 도4를 참조하여 설명한 것과 같이 AOP기법으로 사용자 요청의 바이트 코드에 사용자 요청 분석 모듈을 삽입하여 사용자 요청을 파싱하고, 이 때 웹 애플리케이션 서버 내의 데이터베이스(도2의 211)에 저장된 패턴 룰과 사용자 요청을 비교한다(단계 702).
일반적으로 기존에는 이러한 사용자 요청을 가로채어 정상 요청인지 판정하는 방법이 존재하긴 했지만, 생성된 모든 자바 컨트롤러 클래스의 상단에 선언해 주거나 하는 방식이었다. 이런 기존의 방법은 웹 애플리케이션이 대형화 되고 거대, 복잡해질수록 관리 포인트가 늘어나게 되어 보안관심사가 누락된 페이지가 발생하곤 하였다. 하지만 본 발명에서는 AOP기법을 통해 보안 모듈을 핵심 관심에만 삽입하는 방법을 사용하기 때문에, 모든 자바 페이지, 즉 예컨대 서블릿이나 스트럿츠의 액션과 같은 자바 컨트롤러 단에 무수히 많은 중복되는 보안 코드를 삽입할 필요가 없이, 도5에 나타낸 부분과 같이, AOP 위빙으로 어드바이스를 부여하는 에 이전트 내의 한 페이지에서만 일괄 관리하면 된다. 기존에 전적으로 개발자의 양심에 맡김으로 인해 종종 보안관련 코드가 누락되고 사고가 발생할 수밖에 있었던 개발 프로젝트 상의 보안 문제를 이러한 원 포인트 관리로 무결하게 해주어 많은 개발자 각기 양심에 맡기던 보안 관리를 관리자 1인의 중앙 관리화로 해결할 수 있게 된 것이다.
단계 702에서 해킹시도가 있는지 판정한 결과 등록된 패턴과 일치하지 않아서 정상으로 판정되면 해당 사용자 요청에 대한 응답정보를 전송한다(단계 707). 그러나 사용자 요청의 판정결과 등록된 패턴과 일치하여 해킹이 있었다고 판단될 경우 단계 703으로 넘어가서, 예컨대 사용자의 세션으로부터 해당 사용자의 IP 어드레스를 획득함으로써 사용자 정보를 추적한다. 그 후 해당 사용자의 세션을 차단하고(단계 704) 사용자에 대한 로그를 기록하고(단계 705), SMS 또는 이메일 등으로 관리자에게 통보한다(단계 706).
도8은 본 발명의 일 실시예에 따른 파일시스템 감시모듈(102)의 동작을 설명하는 순서도이다. 파일시스템 감시 모듈(102)은, 특정 이벤트가 발생했을 때 사용자 요청 분석 모듈(101)과 마찬가지로 도3 내지 도5에서 설명한 AOP 기법을 통해 자바 바이트 코드에 삽입되어 실행될 수도 있고, 통상의 기존 보안 프로그램처럼 웹 애플리케이션 서버 내에 미리 설치되어 있다가 특정 시간이나 특정 이벤트의 발생시 동작할 수도 있다.
도8에 도시된 순서도는 특정 시간마다 파일시스템을 검사하는 검사 동작의 일부분으로서, 보안 에이전트(801)의 파일시스템 감시 모듈(102)이 관리자에 의해 설정된 시간이 되었는지를 판단하고(단계 802), 해당 시간이 되면 이전 스캔에서 분석하었던 파일시스템과 현재 파일시스템을 비교하여 새로 생성되거나 변경된 파일이 있는지를 검사한다. 이 결과 새로 생성되었거나 변경된 파일만을 추출하여 문자열 검색을 통해 백도어 파일로서 사용되는지 판단을 하고(단계 803), 백도어 파일로서 판단되었을 경우 이 파일을 실행불가 상태로 만든다(단계804). 그 후 해당 파일을 웹 애플리케이션 서버(210)의 백업 저장소(213)에 백업하고(단계 805) 해당 파일을 삭제하며(단계 807), 웹 패치 서버(220)의 백업 저장소(223)에도 전송하여 증거자료로 남기도록 한다(단계 806).
이후, 도7에 도시된 사용자 요청 분석 모듈(101)의 동작에서와 마찬가지로, 사용자 IP 어드레스로부터 사용자 정보를 추적하고(단계 808) 이 사용자에 대한 로그를 기록하고(단계 809) 이를 SMS 또는 이메일 등으로 관리자에게 통보할 수 있다(단계 810). 이와 관련하여, 백도어 파일로 판정된 이후의 단계들(단계 804 내지 810)은 도8에 도시된 것과는 다른 순서로 실행될 수도 있고, 본 발명의 발명의 목적을 달성하는 범위내에서 일부 단계가 추가 되거나 생략될 수도 있다. 또한 도8에서는 백도어 파일인지 여부만을 검사하는 것으로 설명하였지만, 실제로는 백도어 파일 뿐만 아니라 해당 검사대상의 파일이 바이러스 등의 악성코드를 가진 파일인지 여부 등도 함께 검사할 수 있다.
이상에서 본 발명의 특정의 바람직한 실시예에 대하여 설명하였으나, 본 발명은 상술한 특정 실시예에 한정되지 않는다. 예컨대 본 실시예에서는 웹 애플리케이션이나 보안 에이전트가 자바 언어로 프로그래밍 된다고 가정하였으나 본 발명은 이에 한정되지 않고 다양한 프로그래밍 언어에 적용 가능하다. 이와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능하며, 그와 같은 변형은 하기에 기재된 특허청구범위 내에 있게 된다.
도1은 본 발명의 일 실시예에 따른 웹 보안 에이전트를 구성하는 모듈을 도식적으로 나타낸 도면,
도2는 도 1에 따른 웹 보안 에이전트의 각 모듈의 동작을 도식적으로 설명하는 도면,
도3은 AOP 기법에 의해 핵심관심(core concern)에 횡단 보안 관심사(cross-cutting concern)를 위빙(weaving)하여 삽입함으로써 본 발명을 구현하는 방법을 개념적으로 나타내는 도면,
도4는 본 발명의 일 실시예에 따라 사용자 요청의 바이트 코드에 보안 모듈을 삽입하는 것을 개념적으로 나타내는 도면,
도5는 도4의 보안 모듈의 AOP 코딩이 어떻게 이뤄지는지를 예시적으로 보여주는 보안 모듈의 자바 소소코드,
도6은 네트워크 상에서 본 발명의 일 실시예에 따른 웹 보안 에이전트의 동작을 도식적으로 보여주는 도면,
도7은 본 발명의 일 실시예에 따른 사용자 요청 분석모듈의 동작을 설명하는 순서도,
도8은 본 발명의 일 실시예에 따른 파일시스템 감시모듈의 동작을 설명하는 순서도.

Claims (9)

  1. 네트워크를 통해 다수의 클라이언트와 연결되고 보안 에이전트를 포함하고 있는 웹 애플리케이션 서버에서의 보안 시스템에 있어서,
    상기 보안 에이전트가 관점지향 프로그래밍(AOP)으로 구현된 사용자 요청 분석 모듈을 포함하고, 보안이 적용되어야 할 핵심관심(core concern)의 적어도 하나 이상의 조인트 포인트에 상기 사용자 요청 분석 모듈을 어드바이스로서 위빙(weaving)하고, 이에 따라 웹 애플리케이션의 소스코드를 변경하지 않고도 상기 웹 애플리케이션에 상기 사용자 요청 분석 모듈을 적용할 수 있는 것을 특징으로 하는 보안 시스템.
  2. 네트워크를 통해 다수의 클라이언트와 연결되고 보안 에이전트를 포함하고 있는 웹 애플리케이션 서버에서의 보안 시스템에 있어서,
    상기 보안 에이전트가 관점지향 프로그래밍(AOP)으로 구현된 사용자 요청 분석 모듈을 포함하고,
    보안이 적용되어야 할 핵심관심에 관한 사용자 요청이 클라이언트로부터 상기 웹 애플리케이션 서버로 전송되면, 상기 사용자 요청이 파싱될 때 상기 사용자 요청의 하나 이상의 조인트 포인트에 상기 사용자 요청 분석 모듈을 어드바이스로서 위빙하여 함께 파싱함으로써 상기 사용자 요청이 정상 요청인지 여부를 판단하고,
    이에 따라 웹 애플리케이션의 소스 코드를 변경하지 않고도 상기 웹 애플리케이션에 상기 사용자 요청 분석 모듈을 적용할 수 있는 것을 특징으로 하는 보안 시스템.
  3. 제 2 항에 있어서, 사용자 요청이 정상 요청인지 여부의 판단은, 상기 사용자 요청을 상기 웹 애플리케이션 서버 내의 데이터베이스에 미리 등록된 패턴 룰과 비교함으로써 수행되는 것을 특징으로 하는 보안 시스템.
  4. 제 3 항에 있어서, 상기 보안 에이전트가 상기 패턴 룰 및/또는 보안패치 정보를 업데이트하는 것을 특징으로 하는 보안 시스템.
  5. 제 1 항 내지 제 4항 중 어느 한 항에 있어서, 상기 보안 에이전트가 파일시스템 감시 모듈을 더 포함하고, 상기 파일시스템 감시 모듈은, 미리 설정된 소정 시간이나 소정 이벤트가 발생했을 때 상기 웹 애플리케이션 서버 내의 파일시스템을 검사하여 파일의 변경 또는 생성 여부를 판단하고 이 판단 결과 변경 또는 생성된 파일이 존재할 경우 해당 파일이 악성코드를 가진 파일인지 여부를 판단하는 것을 특징으로 하는 보안 시스템.
  6. 네트워크를 통해 다수의 클라이언트와 연결되고 보안 에이전트를 포함하고 있는 웹 애플리케이션 서버에서의 보안 방법으로서, 상기 보안 에이전트가 관점지 향 프로그래밍(AOP)으로 구현된 사용자 요청 분석 모듈을 포함하고 있는 보안 방법에 있어서,
    보안이 적용되어야 할 핵심관심에 관한 사용자 요청을 클라이언트로부터 수신하는 단계;
    상기 사용자 요청이 파싱될 때 상기 사용자 요청의 하나 이상의 조인트 포인트에 상기 사용자 요청 분석 모듈을 어드바이스로서 위빙하여 함께 파싱하는 단계;
    상기 사용자 요청 분석 모듈이 상기 사용자 요청이 정상 요청인지 여부를 판단하는 단계; 및
    상기 판단 결과, 사용자 요청이 정상 요청이 아닐 경우 해당 사용자의 세션을 차단하고 로그 기록을 남기는 단계를 포함하고,
    이에 따라 웹 애플리케이션의 소스 코드를 변경하지 않고도 상기 웹 애플리케이션에 상기 사용자 요청 분석 모듈을 적용할 수 있는 것을 특징으로 하는 보안 방법.
  7. 제 6 항에 있어서, 사용자 요청이 정상 요청인지 여부를 판단하는 단계는, 상기 사용자 요청을 상기 웹 애플리케이션 서버 내의 데이터베이스에 미리 등록된 패턴 룰과 비교하는 단계를 포함하는 것을 특징으로 하는 보안 방법.
  8. 제 7 항에 있어서, 상기 보안 에이전트가 상기 패턴 룰 및/또는 보안패치 정보를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 보안 방법.
  9. 제 6 항 내지 제 8항 중 어느 한 항에 있어서, 상기 보안 에이전트가 파일시스템 감시 모듈을 더 포함하고, 상기 파일시스템 감시 모듈은,
    소정 시간이나 소정 이벤트가 발생했을 때 상기 웹 애플리케이션 서버 내의 파일시스템을 검사하여 파일의 변경 또는 생성 여부를 판단하는 단계;
    판단 결과 변경 또는 생성된 파일이 존재할 경우 해당 파일이 악성코드를 가진 파일인지 여부를 판단하는 단계; 및
    상기 파일이 악성코드를 가진 파일일 경우 해당 파일을 실행 불가능한 상태로 만들고 백업하는 단계를 포함하는 것을 특징으로 하는 보안 방법.
KR1020080137081A 2008-12-30 2008-12-30 웹 애플리케이션 서버에서의 보안 시스템 및 보안 방법 KR20100078738A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080137081A KR20100078738A (ko) 2008-12-30 2008-12-30 웹 애플리케이션 서버에서의 보안 시스템 및 보안 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080137081A KR20100078738A (ko) 2008-12-30 2008-12-30 웹 애플리케이션 서버에서의 보안 시스템 및 보안 방법

Publications (1)

Publication Number Publication Date
KR20100078738A true KR20100078738A (ko) 2010-07-08

Family

ID=42639925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080137081A KR20100078738A (ko) 2008-12-30 2008-12-30 웹 애플리케이션 서버에서의 보안 시스템 및 보안 방법

Country Status (1)

Country Link
KR (1) KR20100078738A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101272028B1 (ko) * 2011-08-18 2013-06-07 정지혜 해킹 여부 정보를 제공하는 통신 단말기 및 그 제어방법과, 그 통신 단말기를 포함하는 해킹 방지 시스템 및 그 제어방법
KR101436494B1 (ko) * 2013-03-07 2014-09-01 주식회사 안랩 악성코드 검사 시스템 및 악성코드 검사 방법
CN113179266A (zh) * 2021-04-26 2021-07-27 口碑(上海)信息技术有限公司 业务请求处理方法及装置、电子设备、存储介质
KR102521784B1 (ko) 2021-10-26 2023-04-17 주식회사 신시웨이 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치 및 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101272028B1 (ko) * 2011-08-18 2013-06-07 정지혜 해킹 여부 정보를 제공하는 통신 단말기 및 그 제어방법과, 그 통신 단말기를 포함하는 해킹 방지 시스템 및 그 제어방법
KR101436494B1 (ko) * 2013-03-07 2014-09-01 주식회사 안랩 악성코드 검사 시스템 및 악성코드 검사 방법
WO2014137188A1 (ko) * 2013-03-07 2014-09-12 주식회사 안랩 악성코드 검사 시스템 및 악성코드 검사 방법
CN113179266A (zh) * 2021-04-26 2021-07-27 口碑(上海)信息技术有限公司 业务请求处理方法及装置、电子设备、存储介质
KR102521784B1 (ko) 2021-10-26 2023-04-17 주식회사 신시웨이 웹 어플리케이션 서버 기반 데이터베이스 접근을 관리하기 위한 접근 관리 장치 및 방법

Similar Documents

Publication Publication Date Title
US11463458B2 (en) Protecting against and learning attack vectors on web artifacts
US10447730B2 (en) Detection of SQL injection attacks
CN114978584A (zh) 基于单位单元的网络安全防护安全方法及系统
US9344457B2 (en) Automated feedback for proposed security rules
Shar et al. Automated removal of cross site scripting vulnerabilities in web applications
Yuan et al. Architecture-based self-protecting software systems
Wurzinger et al. SWAP: Mitigating XSS attacks using a reverse proxy
JP2015511338A (ja) サービスプロバイダによって提供されたipデータの信頼性を保証するための方法およびシステム
KR101080953B1 (ko) 실시간 웹쉘 탐지 및 방어 시스템 및 방법
KR20060117693A (ko) 웹 보안방법 및 그 장치
CN113407949A (zh) 一种信息安全监控系统、方法、设备及存储介质
Deng et al. Lexical analysis for the webshell attacks
Naderi-Afooshteh et al. Joza: Hybrid taint inference for defeating web application sql injection attacks
KR20100078738A (ko) 웹 애플리케이션 서버에서의 보안 시스템 및 보안 방법
KR100954758B1 (ko) 웹 애플리케이션 보안 시스템 및 이를 이용한 웹 애플리케이션의 보안 방법
KR101226693B1 (ko) 접근 제어 시스템으로 가상 패치하여 공개된 보안 취약점을 제거하는 데이터베이스 보안 관리 방법
Supriya et al. Malware detection techniques: a survey
Sundareswaran et al. XSS-Dec: A hybrid solution to mitigate cross-site scripting attacks
Agarwal et al. First, Do No Harm: Studying the manipulation of security headers in browser extensions
Duraisamy et al. A server side solution for protection of web applications from cross-site scripting attacks
Arulsuju Hunting malicious attacks in social networks
KR20100067383A (ko) 서버 보안 시스템 및 서버 보안 방법
Kumar et al. Constructing secure web applications with proper data validations
Gonçalves et al. A catalogue of reusable security concerns: Focus on privacy threats
KR101577404B1 (ko) 자바 스크립트 오브젝트 모니터링을 이용한 악성코드 접근 차단 시스템, 방법 및 상기 방법을 실행시키기 위한 컴퓨터프로그램

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application