KR101860642B1 - 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법 - Google Patents

소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법 Download PDF

Info

Publication number
KR101860642B1
KR101860642B1 KR1020160133449A KR20160133449A KR101860642B1 KR 101860642 B1 KR101860642 B1 KR 101860642B1 KR 1020160133449 A KR1020160133449 A KR 1020160133449A KR 20160133449 A KR20160133449 A KR 20160133449A KR 101860642 B1 KR101860642 B1 KR 101860642B1
Authority
KR
South Korea
Prior art keywords
monitoring
source code
unit
change
source
Prior art date
Application number
KR1020160133449A
Other languages
English (en)
Other versions
KR20180041386A (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 KR1020160133449A priority Critical patent/KR101860642B1/ko
Priority to PCT/KR2016/013798 priority patent/WO2018070598A1/ko
Priority to DE112016007340.2T priority patent/DE112016007340T5/de
Publication of KR20180041386A publication Critical patent/KR20180041386A/ko
Application granted granted Critical
Publication of KR101860642B1 publication Critical patent/KR101860642B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • 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
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • 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
    • 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/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법에 관한 것으로, 본 발명의 일실시예에 따른 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치는, 프로세스에 있어서, 소스별 감시 대상과 관련된 관심 영역을 나타내는 감시영역 정보를 생성하기 위한 감시영역 정보 생성부; 및 상기 감시영역 정보를 이용하여 소스코드 또는 프로세스를 감시하는 감시부;를 포함한다.

Description

소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법{APPARATUS AND METHOD FOR WATCHING ILLEGALITY USING SOURCE CODE MODIFICATION EFFECT ASSESSMENT}
본 발명은 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법에 관한 것으로, 구체적으로는 소프트웨어 변경 영향 정도를 분석하여 소스코드를 감시하는 정적 감시의 일환으로 'SW 변경 영향도 분석'을 수행하고, 비즈니스 로직을 추적하여 프로세스를 감시하는 동적 감시의 일환으로 '비즈니스 로직 추적'을 수행함으로써, 소프트웨어의 변경(수정, 생성, 삭제 등) 권한을 가진 내부자를 대상으로 불법 행위를 탐지할 수 있는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법에 관한 것이다.
기업내 정보 보안은 정보를 여러가지 위협으로부터 보호하는 것을 의미한다. 즉, 정보 보안은 정보의 수집, 가공, 저장, 검색, 송신, 수신 도중에 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적, 기술적 방법을 의미한다. 정보 보안은 정보를 제공하는 공급자 측면과 사용자 측면에서 이해할 수 있다. 공급자 측면은 내외부의 위협요인들로부터 네트워크, 시스템 등의 하드웨어, 데이터베이스, 통신 및 전산시설 등 정보자산을 안전하게 보호 및 운영하기 위한 일련의 행위를 나타내며, 사용자 측면은 개인 정보 유출, 남용을 방지하기 위한 일련의 행위를 나타낸다.
최근에는 기업 외부에 있는 불특정 해커들에 의한 해킹범죄 뿐만 아니라, 기업 내부에 있는 내부자들(즉, 내부 프로그래머, 위탁/하청 업체 프로그래머 포함)에 대한 해킹범죄까지 정보보안을 위한 감시범위를 확대하고 있다. 특히, 일부 기업에서는 하청직원이 연루된 해킹범죄에 대한 재발을 방지하기 위해, 내부자 행동탐지기술 연구의 일환으로 이상거래탐지시스템(Fraud Detection System, FDS) 수준의 비즈니스 로직 감시기술을 연구중에 있다.
전술한 연구는 일반인이 아닌, 소프트웨어의 수정/삭제 권한을 가진 프로그래머를 대상으로 그동안 보안감시에서 제외되었던 내부자들까지 감시범위를 확대할 수 있다.
기업의 내부자들은 자신의 업무 특성상 손쉽게 시스템에 접근하여 임의변경(혹은 순간적 변경 후 원상 회복)이 가능하기 때문에, 언제든 중요한 로직을 변경할 수 있다는 위험 요인을 가지고 있다. 이로 인해, 내부자들에 의한 해킹범죄는 전문적인 지식없이 증거를 발견하기 어렵다.
한편, 소스코드를 검사하기 위한 다양한 보안툴이 상용화되었다. 이에 따라, 기업들은 시큐어 코딩(secure coding), 소프트웨어 복잡도, 메모리 누수, 커버리지/허용인자 등을 검사하는 다양한 보안툴들을 도입하고 있다.
하지만 이러한 보안툴들은 소스코드 자체의 품질 및 보안관리를 목적으로 하기 때문에, 내부자가 시도할 수 있는 해킹범죄에 대해 본래의 정보 보안 기능을 수행하기 곤란하다.
도 1은 내부자에 의한 해킹사고의 침해방식 예를 나타낸 도면이다. 도 1에 나타난 표는 보안상 문제가 없어 보이는 단 한줄의 조건절(1)을 추가하여 논리적인 구멍(예외)을 발생시키는 경우를 나타낸다. 특정조건 상황이 간헐적(1%)으로 발생된다면, 보안담당자가 상시 모니터링을 하더라도 프로세스 상에 논리적 문제가 있는지 확인하기 쉽지 않다. 결국, 논리적 불법침해는 정상동작(99%)에 대해 간헐적(1%)으로 발생하는 특정상황이 발생될 때 일어날 수 있다.
이와 같이, 종래에는 내부자에 의한 해킹범죄를 예방하고 감시하기 쉽지 않은 실정이다. 또한, 내부자에 의한 해킹범죄를 방지하기 위해서는 더욱더 강력한 강력한 접근권한 설정, 감독/절차 강화, 관리인원 확충 등과 같은 제도적/인적 방안이 필요하지만 근본적인 해결책이 될 수 없다. 왜냐하면, 제도적/인적 방안은 예기치 못한 상황(예를 들어, 긴급 유지보수요청, 시스템 점검 등)에서 허점이 발생할 수 있기 때문이다.
따라서, 종래에는 내부자에 의한 해킹범죄를 기술적으로 예방할 뿐만 아니라, 중요 프로세스를 우회하거나 알고리즘을 임의로 변경하는 불법시도를 감시할 수 있는 기술이 제안될 필요성이 있다.
본 발명의 목적은 소프트웨어 변경 영향 정도를 분석하여 소스코드를 감시하는 정적 감시의 일환으로 'SW 변경 영향도 분석'을 수행하고, 비즈니스 로직을 추적하여 프로세스를 감시하는 동적 감시의 일환으로 '비즈니스 로직 추적'을 수행함으로써, 소프트웨어의 변경(수정, 생성, 삭제 등) 권한을 가진 내부자를 대상으로 불법 행위를 탐지할 수 있는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법을 제공하는데 있다.
또한, 본 발명의 다른 목적은 내부자에 의한 불법 행위의 정적 감시 및 동적 감시를 통해 간단하게 알고리즘 임의 변경 및 프로세스 우회를 감지 및 예방하는데 있다.
또한, 본 발명의 다른 목적은 소스코드의 라인 비교, 입력 인자 확인 등 비교적 간단한 분석을 통해 내부자가 연루된 소스코드에 대한 불법 행위를 예방하는데 있다.
또한, 본 발명의 다른 목적은 비즈니스 로직을 구성하는 전체 프로세스 중에서 중요 프로세스의 우회 시도나 핵심 알고리즘의 임의 수정을 빠르게 감지하는데 있다.
또한, 본 발명의 다른 목적은 관심 프로세스와 관련된 파일, 그 중에서도 일부 영역에 대해서만 비교 및 분석을 수행할 뿐만 아니라, 감시 범위를 설정할 수 있기 때문에 성능 저하를 최소화하는데 있다.
본 발명의 일면에 따른 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치는, 프로세스에 있어서, 소스별 감시 대상과 관련된 관심 영역을 나타내는 감시영역 정보를 생성하기 위한 감시영역 정보 생성부; 및 상기 감시영역 정보를 이용하여 소스코드 또는 프로세스를 감시하는 감시부;를 포함하고, 상기 감시부는, 상기 감시영역 정보를 이용하여 어노테이션(annotation) 처리를 통해 감시용 소스코드를 생성하고, 상기 어노테이션의 삽입에 따라 누적된 프로세스 변이 데이터를 분석하는 프로세스 감시부;를 포함하며, 상기 프로세스 감시부는, 시스템이 운영됨에 따라 로그에 누적된 프로세스 변이 데이터를 이용하여 패턴 분석을 수행하여 프로세스 변이 모델을 도출하는 프로세스 변이 패턴 모델부; 상기 프로세스 변이 모델을 이용하여 프로세스 이상을 감지하는 프로세스 변이 이상 모니터링부; 및 상기 프로세스 변이 모델을 이용하여 프로세스 변이에 대한 시각적 정보로 표시하는 프로세스 변이 시각화부;를 포함할 수 있다.
상기 감시부는, 상기 소스코드의 변경시, 상기 감시영역 정보를 이용하여 상기 소스코드의 버전별 비교를 통해 변경분을 추출하고, 상기 소스코드의 변경에 따른 위험 가능성과 프로세스 우회 가능성을 산정하여 감시하기 위한 소스코드 감시부;를 포함한다.
삭제
상기 감시영역 정보 생성부는, 프로세스 영역을 스캔하여 감시영역 정보를 추출하기 위한 감시영역 정보 추출부; 및 상기 감시영역 정보를 기 설정된 데이터 구조에 따라 정리된 형태로 저장 및 관리하기 위한 감시영역 정보 관리부;를 포함한다.
상기 소스코드 감시부는, 상기 소스코드의 변경을 감지하는 소스코드 변경 감지부; 상기 감시영역 정보를 이용하여 상기 변경된 소스코드가 포함된 해당 소스파일을 버전별로 비교하여 상기 소스코드의 변경분을 추출하는 소스코드 변경분 추출부; 및 상기 추출된 소스코드의 변경분을 통해 상기 소스코드 변경에 따른 위험 가능성과 프로세스 우회 가능성을 분석하는 위험인지 및 영향도 분석부;를 포함할 수 있다.
상기 프로세스 감시부는, 상기 감시영역 정보를 통해 확인된 원본 소스코드에 보안용 어노테이션을 일괄적으로 삽입하여 감시용 소스코드로 자동으로 변환하는 어노테이션 처리부; 및 상기 감시용 소스코드에 삽입된 모든 어노테이션 코드의 위치(라인넘버)를 저장 및 관리하는 어노테이션 관리부;를 포함할 수 있다.
삭제
상기 프로세스는, 중요도에 따라 결정된 관심 프로세스인 것을 특징으로 한다.
상기 프로세스는, 알고리즘 구현 영역과 프로세스 호출 영역으로 분류하여 구성된 것을 특징으로 한다.
상기 알고리즘 구현 영역은, 컴파일 언어로 작성된 원본소스의 영역인 것을 특징으로 한다.
상기 프로세스 호출 영역은, 인터프리터 언어로 작성된 원본소스의 영역인 것을 특징으로 한다.
상기 감시영역 정보는, 원본 소스에 포함된 프로세스명, 소스명, 감시대상, 관심영역(라인넘버)을 포함한다.
상기 감시대상은, 알고리즘 조작 감시영역과 프로세스 우회 감시영역으로 구분되는 것을 특징으로 한다.
상기 소스코드 변경분은, 코드수정 부분, 코드생성 부분, 코드삭제 부분을 포함하는 소스코드 변경내용, 해당 소스코드 변경내용에 해당되는 코드라인이 추출된 것을 특징으로 한다.
상기 위험인지 및 영향도 분석부는, 이전 버전 소스와 변경 버전 소스 간의 영역정보에 대한 비교결과에 따라, 상기 소스코드 변경에 따른 위험 가능성을 확인하는 것을 특징으로 한다.
상기 위험인지 및 영향도 분석부는, 외부의 작업 지시 시스템과 연동하여 내부자에 의한 코드 조작이 허용된 행위인지를 판단하는 것을 특징으로 한다.
상기 위험인지 및 영향도 분석부는, 상기 비교 결과로 확인된 변경영역이 프로세스 우회 감시영역에 해당하면, 미리 정의된 위험등급에 따라 SW 변경 영향도를 산정하는 것을 특징으로 한다.
상기 변경영역은 상기 이전 버전 소스에 우회 가능 코드를 삽입하거나, 상기 이전 버전 소스에 새로운 호출문을 삽입하여 나타나는 영역인 것을 특징으로 한다.
상기 어노테이션 처리부는, 포워드(Foward)/백워드(Backward) 변수이용하여 감시 프로세스의 추적 범위를 설정하는 것을 특징으로 한다.
상기 어노테이션 관리부는, 상기 어노테이션 변경 시도를 감지하는 것을 특징으로 한다.
상기 프로세스 변이 이상 모니터링부는, 베이지언 알고리즘(bayesian algorithm) 및 흐름 분석 그래프(control flow graph)의 서브 그래프(subgraph) 감시 기법을 이용하여 프로세스 변이 이상을 감지하는 것을 특징으로 한다.
또한, 본 발명의 일실시예에 따른 소스코드 변경 영향 평가를 이용한 불법 행위 감시 방법은, 프로세스에 있어서, 소스별 감시 대상과 관련된 관심 영역을 나타내는 감시영역 정보를 생성하는 단계; 및 상기 감시영역 정보를 이용하여 소스코드 또는 프로세스를 감시하는 단계;를 포함하고, 상기 프로세스 감시 단계는, 시스템이 운영됨에 따라 로그에 누적된 프로세스 변이 데이터를 이용하여 패턴 분석을 수행하여 프로세스 변이 모델을 도출하는 단계; 상기 프로세스 변이 모델을 이용하여 프로세스 이상을 감지하는 단계; 및 상기 프로세스 변이 모델을 이용하여 프로세스 변이에 대한 시각적 정보로 표시하는 단계;를 포함한다.
상기 소스코드 감시 단계는, 상기 소스코드 감시 단계는, 상기 소스코드의 변경시, 상기 감시영역 정보를 이용하여 상기 변경된 소스코드가 포함된 해당 소스파일의 버전별 비교를 통해 변경분을 추출하는 단계; 및 상기 소스코드의 변경에 따른 위험 가능성과 프로세스 우회 가능성을 산정하여 감시하는 단계;를 포함한다.
상기 프로세스 감시 단계는, 상기 감시영역 정보를 통해 확인된 원본 소스코드에 보안용 어노테이션을 일괄적으로 삽입하여 감시용 소스코드로 자동으로 변환하는 단계; 및 상기 감시용 소스코드에 삽입된 모든 어노테이션 코드의 위치(라인넘버)를 저장 및 관리하는 단계;를 포함한다.
삭제
본 발명은 일반직원이 아닌 소프트웨어의 변경(수정, 생성, 삭제 등) 권한을 가진 내부자를 대상으로 불법 행위를 탐지하는 기술로, 보안 감시에서 제외되었던 영역까지 감시범위를 확대할 수 있다.
또한, 본 발명은 내부자에 의한 불법 행위의 정적 감시 및 동적 감시를 통해 간단하게 알고리즘 임의 변경 및 프로세스 우회를 감지 및 예방할 수 있다.
또한, 본 발명은 SW 변경 영향도 분석을 통해 소스파일별 접근 통제 방식이 아니라, 라인별 접근 통제 방식을 제공할 수 있기 때문에, 하나의 파일 내에 여러가지 함수 또는 기능 등이 구현된 저품질의 소스파일에 대해서도 간단히 내부자에 의한 불법 행위를 감시할 수 있다.
또한, 본 발명은 어노테이션 관리부를 통해 모든 어노테이션 코드의 위치를 저장 및 관리하고 있기 때문에, 내부자에 의한 불법행위를 방지하는 보안 요소를 충족할 수 있다. 즉, 내부자는 모든 어노테이션 코드의 위치가 저장 및 관리되고 있기 때문에, 어노테이션 코드를 임의로 삭제하거나 주석으로 처리할 수 없다. 그리고, 내부자는 어노테이션 코드가 어떠한 역할을 수행하는지, 어노테이션 코드가 감시용 소스코드의 어느 부분을 감시하는지, 컴파일할 때 어떠한 어노테이션 코드가 삽입되는지에 대해서는 알 수 없다.
또한, 본 발명은 소스코드의 라인 비교, 입력 인자 확인 등 비교적 간단한 분석을 통해 내부자가 연루된 소스코드에 대한 불법 행위를 예방할 수 있다.
또한, 본 발명은 비즈니스 로직을 구성하는 전체 프로세스 중에서 중요 프로세스의 우회 시도나 핵심 알고리즘의 임의 수정을 빠르게 감지할 수 있다. 특히, 본 발명은 정적 및 동적 감시를 모두 포함하므로 견고하게 감시할 수 있다.
또한, 본 발명은 관심 프로세스와 관련된 파일, 그 중에서도 일부 영역에 대해서만 비교 및 분석을 수행할 뿐만 아니라, 감시 범위를 설정할 수 있기 때문에 성능 저하를 최소화할 수 있다.
도 1은 내부자에 의한 해킹사고의 침해방식 예를 나타낸 도면,
도 2는 프로그램 내부에서 프로세스 동작 절차를 나타낸 도면,
도 3은 내부자에 의해 코드가 변경된 경우의 프로세스 동작 절차를 나타낸 도면,
도 4는 본 발명의 일실시예에 따른 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치에 대한 구성도,
도 5는 상기 도 4의 불법 행위 감시 장치에 대한 상세 구성도,
도 6은 프로세스 변이를 나타낸 예시도,
도 7은 감시영역 정보를 생성하기 위한 프로세스 구성에 대한 도면,
도 8은 감시영역 정보 생성부(110)의 상세 구성을 나타낸 도면,
도 9는 소스코드 감시부(110)의 상세 구성을 나타낸 도면,
도 10a 및 도 10b는 소스코드 변경분 추출부에 의한 소스코드의 버전별 비교를 나타내는 도면,
도 11은 위험인지 및 영향도 분석부에 의한 위험인지를 설명하는 도면,
도 12a 및 도 12b는 위험인지 및 영향도 분석부에 의한 영향도 분석을 설명하는 도면,
도 13은 간헐적 프로세스 우회를 나타낸 도면,
도 14는 프로세스 변이 추적부(140)의 상세 구성을 나타낸 도면,
도 15는 원본소스에 어노테이션을 삽입을 나타낸 도면,
도 16a 내지 도 16e는 감시 프로세스의 추적 범위(tracking area) 설정에 대한 설명을 나타낸 도면,
도 17은 프로세스 변이 패턴 모델부에 의한 프로세스 구성 및 확률 모델 도출 과정을 나타낸 도면,
도 18a 및 도 18b는 프로세스 이상 감지 기법을 나타낸 예시도,
도 19는 프로세스 변이 시각화를 나타낸 예시도이다.
본 발명을 충분히 이해하기 위해서 본 발명의 바람직한 실시예를 첨부 도면을 참조하여 설명한다. 본 발명의 실시예는 여러 가지 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상세히 설명하는 실시예로 한정되는 것으로 해석되어서는 안 된다. 본 실시예는 당업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공 되어지는 것이다. 따라서 도면에서의 요소의 형상 등은 보다 명확한 설명을 강조하기 위해서 과장되어 표현될 수 있다. 각 도면에서 동일한 부재는 동일한 참조부호로 도시한 경우가 있음을 유의하여야 한다. 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 공지 기능 및 구성에 대한 상세한 기술은 생략된다.
본 발명의 설명에 앞서 다음 용어를 정의한다.
'내부자(insider)'는 파일 시스템(file system)의 소스코드(source code)를 변경(즉, 수정, 생성, 삭제 등)하는 권한을 가진 프로그래머이며, 사내에 있는 내부 인력과 위탁/하청 업체 인력을 포함한다.
'프로세스(process)'는 비즈니스 로직(business logic)을 구성하는 이벤트 요소 단위이며, 예를 들어, 입찰 시스템에서의 프로세스는 입찰시작/종료, 투찰, 개찰, 예가산정, 낙찰자 선정 등으로 구성할 수 있다.
'메서드(method)'는 프로세스를 구성하는 함수 혹은 함수의 집합이다.
'불법 행위(illegality)'는 중요 프로세스를 우회 또는 임의로 조작하거나 알고리즘을 임의로 변경하려는 내부자에 의한 불법적인 시도 또는 행위의 결과를 통칭한다.
도 2는 프로그램 내부에서 프로세스 동작 절차를 나타낸 도면이고, 도 3은 내부자에 의해 코드가 변경된 경우의 프로세스 동작 절차를 나타낸 도면이다.
본 발명이 해결하고자 하는 바는 프로그램 내부에서 동작하는 중요 프로세스를 내부자가 임의로 조작하지 못하게 하는 것이다. 예를 들어, 도 2에서 '프로세스 3'(2)이 해당 프로그램에서 가장 중요한 프로세스일 경우에, 프로세스가 정상적으로 수행되었는지를 확인할 수 있어야 한다. 그런데, 도 3과 같이 내부자가 '프로세스 3'(2) 대신 '프로세스 3″'(3)을 호출하도록 코드를 변경하면, 해당 프로세스의 호출 코드 변경에 대한 내부자의 불법 행위는 전문기관으로부터 인증받은 수학/통계적 기법이 적용되더라도 쉽게 감지하기 어렵다. 결국, 해당 프로그램은 내부자에 의한 불법 행위에 의해 손쉽게 무력화될 수 있다.
아래와 같은 이유로 인해, 내부자에 의한 불법행위는 감지하기 어렵다.
먼저, 프로그램 감시자(즉, 담당자)는 내부자에 의한 잦은 유지보수 작업 내역을 일일이 확인하기 어렵고, 소스코드의 변경 내역을 확인하더라도 정상 또는 이상 유무를 판단하기 쉽지 않다.
더욱이, 소스코드에 대한 논리적 조작 또는 우회시도는 상용 보안툴에 의해서 검출되지 않는다.
또한, 인터프리터 언어의 하나인 JSP(Java Server Pages) 파일은 내부자에 의해 변경될 경우, 컴파일(compile)이나 재기동(restart) 같은 과정이 없기 때문에 이상 징후로 판단할 만한 증거가 적다. 특히, 도 3에서 내부자가 중요 프로세스인 '프로세스 3'(2)[컴파일 언어 자바(java)임]에 대해 불법행위를 시도할 때, '프로세스 3'(2)을 직접 수정하는 방식을 선택하기 보다 '프로세스 3'(2)을 호출하는 코드인 JSP 파일을 변경하는 방식을 선호한다.
그리고 코드 노후 단계에서는 오랜 기간 운영 및 유지보수를 거치며 여러 기능이 하나의 파일에 구현되는 강결합(tightly coupled) 현상이 발생하기 때문에 분석이 쉽지 않다. 예를 들어, 하나의 시스템 내에서는 2~4천 라인이 넘는 파일을 다수 포함하는 경우가 많다.
도 4는 본 발명의 일실시예에 따른 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치에 대한 구성도이고, 도 5는 상기 도 4의 불법 행위 감시 장치에 대한 상세 구성도이다.
본 발명의 일실시예에 따른 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치(이하 "불법 행위 감시 장치"라 함, 100)는, 프로그램 내부에서 동작하는 중요 프로세스를 우회하거나 알고리즘을 임의로 변경하는 불법 행위를 감시할 수 있다. 또한, 이와 같이 불법 행위를 감시하는 것은 내부자에 의한 불법 행위를 사전에 예방하는 효과를 얻을 수도 있다. 여기서, 감시 범위는 소스코드, 중요 프로세스의 정상 수행(완료) 여부일 수 있으며, 대상 소스코드는 JAVA, C#, C++ 등의 컴파일 언어(compile language)와 JSP, PYTHON 등의 인터프리터 언어(interpretive language)일 수 있다.
불법 행위 감시 장치(100)는 소프트웨어 변경 영향 정도를 분석하여 소스코드를 감시하는 정적 감시의 일환으로 'SW 변경 영향도 분석'을 수행하고, 비즈니스 로직을 추적하여 프로세스를 감시하는 동적 감시의 일환으로 '비즈니스 로직 추적'을 수행한다.
먼저, 'SW 변경 영향도 분석'은 내부자에 의해 소스코드가 변경될 때, 운영 체제(operating system, 20)에 반영하기에 앞서, 전체 서비스에 어떠한 영향을 주는지를 평가하는 기술을 나타낸다. 즉, 'SW 변경 영향도 분석'은 정적 감시 방식에 해당하는 것으로, 내부자에 의해 소스코드가 변경되면 이전 버전의 소스코드와 비교하여 변경 영역을 추출한 후, 이 부분을 통해 중요 프로세스가 조작 또는 우회될 수 있는지를 평가한다.
다음에, '비즈니스 로직 추적'은 동적 감시 방식에 해당하는 것으로, 프로세스 상태(즉, 시작→처리→종료)의 변이(transition)(도 6 참조)를 모니터링하여 이상점(outlier)을 찾는다. 도 6은 프로세스 변이를 나타낸 예시도이다.
이하, 도 4 및 도 5에 도시된 불법 행위 감시 장치(100)의 구성요소에 대해 상세히 설명한다. 불법 행위 감시 장치(100)의 구성요소에 대해 설명할 때, 설명의 이해를 돕기 위해 각 구성요소와 관련된 도면을 추가하여 설명하기로 한다.
불법 행위 감시 장치(100)는 감시영역 정보 생성부(110), 소스코드 감시부(120), 프로세스 감시부(130)를 포함하여 구성할 수 있다.
먼저, 감시영역 정보 생성부(110)는 '중요 프로세스(또는 관찰대상이 되는 관심 프로세스)에 있어서, 소스별 감시 대상과 관련된 관심 영역을 나타내는 정보'(이하 "감시영역 정보"라 함)를 생성한다. 여기서, 감시영역 정보는 'SW 변경 영향도 분석' 또는 '비즈니스 로직 추적'을 진행하기 위해 필요한 정보로서, 'SW 변경 영향도 분석' 또는 '비즈니스 로직 추적'의 진행 이전에 생성되어야 한다.
이하, 도 7을 참조하여 감시영역 정보를 생성하기 위한 프로세스의 구성에 대해 설명하기로 한다. 도 7은 감시영역 정보를 생성하기 위한 프로세스 구성에 대한 도면이다.
프로세스는 '로직(알고리즘) 구현 영역'과 '프로세스 호출 영역'으로 분류하여 구현영역(코드라인)을 추출할 수 있도록 구성된다. 상기와 같이 프로세스를 구성하는 이유는 중요 프로세스의 우회/조작 여부를 평가하기 위해, 중요 프로세스가 어느 소스파일에 있는지와 어느 영역에서 구현되는지를 우선적으로 파악하는 것이 중요하기 때문이다.
도 7의 해당 프로그램에서 가장 중요한 프로세스는 '프로세스 3(Process_3)'이다. 원본소스 'A.Java'는 컴파일 언어(Java)로 구성되고, 로직(알고리즘) 구현 영역(151)이 존재한다. 원본소스 'B.jsp'와 'C.jsp'는 인터프리터 언어(jsp)로 구성되고, 프로세스 호출 영역(152,153)이 존재한다.
이하, 도 8을 참조하여 감시영역 정보 생성부(110)의 상세 구성에 대해 설명하기로 한다. 도 8은 감시영역 정보 생성부(110)의 상세 구성을 나타낸 도면이다.
감시영역 정보 생성부(110)는 감시영역 정보 추출부(111)와 감시영역 정보 관리부(112)를 포함하여 구성할 수 있다.
감시영역 정보 추출부(111)는 중요 프로세스에 대해 로직(알고리즘) 구현 영역과 프로세스 호출 영역을 스캔하여 감시영역 정보(160)를 구성하는 정보들을 추출한다. 즉, 감시영역 정보 추출부(111)는 원본 소스로(A,B,C)부터 프로세스명(161), 소스명(162), 감시대상(163), 관심영역(라인넘버)(164) 등에 해당하는 정보들을 추출한다. 감시영역 정보 추출부(111)에 의해 추출된 정보들은 기 설정된 데이터 구조에 따라 정리되지 않은 형태의 정보들이다. 아울러, 감시영역 정보 추출부(111)는 소스코드 파일 전체를 전부 스캔하여 중요 프로세스를 구별할 수 있다.
감시영역 정보 관리부(112)는 감시영역 정보 추출부(111)로부터 추출된 정보들을 기 설정된 데이터 구조에 따라 정리된 형태의 감시영역 정보(160)로 저장 및 관리한다.
감시영역 정보(160)는 원본 소스(A,B,C)에서 내부자에 의한 불법행위가 발생할 가능성이 높은 감시영역(160a,160b,160c)을 특정하는 정보라 할 수 있다. 즉, 감시영역 정보(160)의 프로세스명(161), 소스명(162), 관심영역(164)은 감시영역(160a,160b,160c)이 특정된다. 감시영역 정보(160)의 감시대상(163)은 내부자에 의해 발생할 수 있는 불법 행위의 유형이 특정될 수 있다. 즉, 감시대상(163)은 '알고리즘 조작 감시영역'과 '프로세스 우회 감시영역'으로 구분된다.
프로세스는 소스명(162)을 통해 컴파일 언어 또는 인터프리터 언어 중 어느 하나를 사용하는지가 구별되며, 이들 언어 유형을 통해 로직 구현 영역 또는 프로세스 호출 영역 중 어느 하나에 속하는지가 구별될 수 있다. 따라서, 소스명(162)은 감시대상(163)의 유형을 특정하는데 관련성이 있다.
다음으로, 소스코드 감시부(120)는 감시영역 정보 생성부(110)에 의해 생성된 감시영역 정보를 이용하여 'SW 변경 영향도 분석'을 통한 정적 감시를 수행할 수 있다. 즉, 소스코드 감시부(120)는 소스코드의 변경시, 감시영역 정보를 이용하여 소스코드의 버전별 비교를 통해 변경분을 추출하고, 소스코드의 변경에 따른 위험 가능성과 프로세스 우회 가능성을 산정하여 감시한다.
이하, 도 9를 참조하여 소스코드 감시부(120)의 상세 구성에 대해 설명하기로 한다. 도 9는 소스코드 감시부(110)의 상세 구성을 나타낸 도면이다.
소스코드 감시부(120)는 소스코드 변경 감지부(121), 소스코드 변경분 추출부(122), 코드 수정 영향도 분석부(123), 위험인지부(124)를 포함하여 구성할 수 있다.
소스코드 변경 감지부(121)는 운영체제(20)의 로그(log)를 이용하여 소스코드의 변경을 감지한다. 예를 들어, 내부자가 'Revision 541'(이전 버전 소스)에서 'Revision 542'(변경 버전 소스)로 소스코드를 변경하면, 소스코드 변경 감지부(121)는 운영체제(20)의 로그를 통해 소스코드의 변경을 감지할 수 있다.
그리고, 소스코드 변경 감지부(121)는 변경된 소스코드가 포함된 소스파일이 감시영역 정보 리스트에 있는지에 대해 감시영역 정보 관리부(112)로 조회한다. 이때, 감시영역 정보 관리부(112)는 감시영역 정보 리스트 상에 해당 소스파일이 있는지를 확인한다. 여기서, 감시영역 정보 관리부(112)는 해당 소스파일의 소스명을 이용하여 감시영역 정보 리스트 상에 해당 소스파일이 있는지를 확인할 수 있다.
소스코드 변경 감지부(121)는 감시영역 정보 리스트 상에 해당 소스파일이 있는 것으로 확인되면, 소스코드 변경분 추출부(122)가 해당 소스파일의 소스코드 변경분(즉, 변경부분)을 추출하도록 한다. 여기서, 해당 소스파일의 소스코드 변경분은 소스코드 변경내용 및 영역(코드라인)을 포함한다.
이하, 도 10a 및 도 10b를 참조하여 소스코드 변경분 추출부(122)에 의한 소스코드의 버전별 비교에 대해 설명하기로 한다. 도 10a 및 도 10b는 소스코드 변경분 추출부에 의한 소스코드의 버전별 비교를 나타내는 도면이다.
소스코드 변경분 추출부(122)는 도 10a 및 도 10b와 같이 해당 소스파일을 버전별로 비교하여 소스코드 변경분을 추출할 수 있다. 즉, 소스코드 변경분 추출부(122)는 파일 비교 유틸리티인 "Diff"를 이용하여 이전 버전 소스(Revision 541)와 변경 버전 소스(Revision 542) 간의 차이에 대한 정보를 출력할 수 있다.
도 10a 및 도 10b를 참조하여 설명하면, 소스코드 변경분 추출부(122)는 이전 버전 소스(Revision 541)와 변경 버전 소스(Revision 542) 간의 소스코드 변경분으로서, 코드수정 부분(171a,171b), 코드생성 부분(172a,172b), 코드삭제 부분(173a,173b)과 같이 소스코드 변경내용 뿐만 아니라, 해당 소스코드 변경내용에 해당되는 코드라인(CL1 내지 CL9)까지 추출할 수 있다.
위험인지 및 영향도 분석부(123)는 1차로 영역정보의 비교를 통해 소스코드가 변경됨에 따른 위험 가능성에 대해 확인이 필요하다는 알람을 주는 '위험인지'를 수행하고, 2차로 위험인지 결과로 변경영역이 프로세스 우회 감시영역과 겹치는 경우, 프로세스 우회 가능성에 따른 SW 변경 영향도를 산정하여 알람을 주는 '영향도 분석'을 수행한다.
이하, 도 11, 도 12a 및 도 12b를 참조하여 위험인지 및 영향도 분석부(123)에 의한 위험인지 및 영향도 분석에 대해 설명하기로 한다. 도 11은 위험인지 및 영향도 분석부에 의한 위험인지를 설명하는 도면이고, 도 12a 및 도 12b는 위험인지 및 영향도 분석부에 의한 영향도 분석을 설명하는 도면이다.
구체적으로, 위험인지 및 영향도 분석부(123)는 소스코드 변경분 추출부(122)에 의해 추출된 소스코드 변경분의 변경영역과 감시영역 정보 관리부(112)에 의해 관리되는 감시영역 정보의 감시영역(즉, 알고리즘 조작 감시영역, 프로세스 우회 감시영역)이 일치하는지를 비교하여 위험인지를 수행한다.
도 11을 참고하여 설명하면, 이전 버전 소스(Revision 541)(181)에서 알고리즘 조작 감시영역(181a)은 라인넘버 1∼121에 해당하는 영역이다. 변경 버전 소스(Revision 542)(182)에서 내부자에 의해 변경된 변경영역(182a,182b)은 라인넘버 60∼78에 해당하는 영역과 라인넘버 978∼981에 해당하는 영역이다. 위험인지 및 영향도 분석부(123)는 이전 버전 소스(Revision 541)(181)와 변경 버전 소스(Revision 542)(182) 간의 영역정보를 비교하여 일부라도 겹치는 경우에, 알람부(30)를 통해 코드 조작 확인이 필요하다는 알람을 담당자에게 전송한다. 이 경우에, 위험인지 및 영향도 분석부(123)는 외부의 작업 지시 시스템(미도시)과 연동하는 경우, 내부자에 의한 코드 조작이 허용된 행위인지를 판단할 수 있다. 또한, 위험인지 및 영향도 분석부(123)는 내부자에 의한 코드 조작이 허용되지 않은 행위로 판단되는 경우, 알람부(30)를 통해 코드 조작 확인이 필요하다는 알람을 담당자에게 전송할 수 있다.
한편, 위험인지 및 영향도 분석부(123)는 이전 버전 소스(Revision 541)와 변경 버전 소스(Revision 542) 간의 영역정보를 비교하여 변경영역을 확인한 후, 확인된 변경영역이 프로세스 우회 감시영역과 겹치면 추가로 영향도 분석을 수행한다. 즉, 위험인지 및 영향도 분석부(123)는 프로세스 우회 가능성이 확인되면, 미리 정의된 위험등급에 따라 SW 변경 영향도(상/중/하)를 산정하여 알람부(30)를 통해 담당자에게 알려줄 수 있다.
도 12a 및 도 12b를 참고하여 설명하면, 원본소스 즉, 이전 버전 소스(Revision 541)(185)의 프로세스 우회 감시영역(185a)은 라인넘버 419∼423에 해당하는 영역이다. 여기서, 내부자는 이전 버전 소스(Revision 541)(185)에 우회 가능 코드(186a)를 삽입하거나, 이전 버전 소스(Revision 541)(185)에 새로운 호출문(187a)을 삽입할 수 있다. 즉, 변경 버전 소스(Revision 542)(186,187)는 이전 버전 소스(Revision 541)(185)에 우회 가능 코드(186a)가 삽입된 '우회 코드 삽입 버전'(186), 이전 버전 소스(Revision 541)(185)에 새로운 호출문(187a)이 삽입된 '호출문 삽입 버전'(187)과 같이 2가지 버전으로 존재할 수 있다.
위험인지 및 영향도 분석부(123)는 우회 코드 삽입 버전(186)의 경우, 'Process_3()' 앞단에 우회 가능 코드(186a)가 삽입되었는지를 확인하고, 이에 대한 SW 변경 영향도를 분석할 수 있다. 여기서, 우회 가능 코드(186a)는 if/else, for, while, switch/case, MACRO(#ifndef/endif) 등의 코드일 수 있다.
또한, 위험인지 및 영향도 분석부(123)는 호출문 삽입 버전(187)의 경우, 해당 메서드가 바로 뒤에 실행된 'Process_3()'에 미치는 영향을 분석한다. 예를 들어, 도 12b에서 'Process_3' 호출시 전달하는 입력인자(parameter) 'param2'(188a)가 'Process_new'의 입력인자에도 'param2'(189)로 동일하게 들어가는 경우에는, 'Process_new'의 수행 결과에 따라 'Process_3'의 수행 결과가 영향을 받을 수 있다. 즉, 변경 버전 소스(Revision 542)에서 'Process_3'의 호출시 전달하는 입력인자 'param2'(188b)는 'Process_new'의 수행 결과에 따라 재정의된 입력인자 즉, 'param2→param2′'에 영향을 받는다.
전술한 바와 같이, 'SW 변경 영향도 분석'에 따른 정적 감시는 소스파일별 접근 통제 방식이 아니라, 라인별 접근 통제 방식이기 때문에 하나의 파일 내에 여러가지 함수 또는 기능 등이 구현된 저품질의 소스파일에 대해서도 간단하게 내부자에 의한 불법 행위를 감시할 수 있다.
부가적으로, 알고리즘 조작 방지를 위해 실행파일과 소스코드 모두를 해쉬값으로 변환하고, 이를 감시하는 방법도 있다. 하지만, 이러한 방법은 빈번하게 유지보수되는 시스템의 경우에 바람직하지 않은 방법이며, 해쉬코드 이력 관리/변경 통제 등의 추가적 관리가 필요하다.
다음으로, 프로세스 감시부(130)는 감시영역 정보 생성부(110)에 의해 생성된 감시영역 정보를 이용하여 '비즈니스 로직 추적'을 통한 동적 감시를 수행할 수 있다.
비즈니스 로직 추적을 통한 동적 감시는 어노테이션(annotation) 또는 매크로(macro) 기법을 이용하여 프로세스 감시하는 것이다. 비즈니스 로직 추적을 통한 동적 감시는 실시간으로 프로세스 흐름 및 변이(transition) 추적을 목적으로 하기 때문에, 프로세스의 동적 감시용으로 사용된다. '어노테이션'은 프로그램이나 문서에 삽입 또는 추가되는 기술적, 설명적 참조, 주석 또는 표식 등을 의미한다. 여기서는 '어노테이션'이 프로세스 감시를 위해 코드라인 위치에 자동으로 삽입되는 보안용 코드 기법을 의미하며, JVM(Java Virtual Machine), C++, C# 등의 사용자 정의 어노테이션(User Define Annotation) 기법(즉, 매크로, macro)을 사용하면 구현할 수 있다.
SW 변경 영향도 분석을 통한 정적 감시는 수정된 소스코드에 대한 분석만으로 내부자에 의한 불법행위를 감지할 수 있는 반면에, 비즈니스 로직 추적을 통한 동적 감시는 시스템을 실제 운영하면서 특정 프로세스의 변이를 확률 및 통계학적으로 실시간 추적하고 시각화하여 내부자에 의한 불법행위를 감지할 수 있다.
도 13은 간헐적 프로세스 우회를 나타낸 도면이다.
'프로세스 3'(191)이 해당 프로그램에서 중요한 프로세스 일 경우에, 내부자는 '프로세스 3'(191) 대신에 '프로세스 3′'(192)을 호출하도록 코드를 변경함으로써 프로세스 우회를 발생시킬 수 있다.
프로세스 감시부(130)는 비즈니스 로직 추적을 통해 시스템을 실제로 운영하면서 특정 프로세스 변이를 확률/통계학적으로 실시간 추적하고 시각화할 수 있다. 따라서, 프로세스 감시부(130)는 도 13과 같은 간헐적 프로세스 우회를 실시간 추적하고 시각화할 수 있다.
프로세스 감시부(130)는 프로세스 변이 추적부(140)와 프로세스 변이 분석부(150)를 포함할 수 있다. 프로세스 변이 추적부(140)는 어노테이션 처리부(141), 어노테이션 관리부(142)를 포함하고, 프로세스 변이 분석부(150)는 프로세스 변이 이상 모니터링부(151), 프로세스 변이 패턴 모델부(153), 프로세스 변이 시각화부(152)를 포함한다.
이하, 도 14, 도 15, 도 16a 내지 도 16e를 참조하여 프로세스 변이 추적부(140)의 상세 구성 및 추적 범위 설정 기능에 대해 설명하기로 한다. 도 14는 프로세스 변이 추적부(140)의 상세 구성을 나타낸 도면이고, 도 15는 원본소스에 어노테이션을 삽입을 나타낸 도면이고, 도 16a 내지 도 16e는 감시 프로세스의 추적 범위(tracking area) 설정에 대한 설명을 나타낸 도면이다.
전술한 바와 같이, 프로세스 변이 추적부(140)는 어노테이션 처리부(141), 어노테이션 관리부(142)를 포함하여 구성할 수 있다.
도 14를 참조하여 설명하면, 어노테이션 처리부(141)는 감시영역 정보 관리부(112)에 의해 관리되는 감시영역 정보를 이용하여 원본 소스코드(141a)를 감시용 소스코드(141c)로 자동 변환시키는 어노테이션 처리(141b)를 수행한다. 여기서, 어노테이션 처리는 프로세스 감시를 위해 코드 라인 위치에 보안용 어노테이션(즉, 프로세스 추적에 필요한 감시용 또는 보안용 표식)을 원본 소스코드(141a)에 일괄적으로 삽입하여 감시용 소스코드(141c)로 변환시키는 것이다.
그리고 감시용 소스코드(141c)는 시스템(서비스) 운영용 코드로 사용될 수 있다. 이로 인해, 시스템 운영시에 로그에는 프로세스 변이, 날짜, 시간 및 횟수 등이 빠짐없이 기록될 수 있다. 따라서, 로그는 실시간 분석을 통해 프로세스 이상(outlier)의 추적을 위한 요소로 활용될 수 있다. 즉, 프로세스 변이 분석부(150)는 로그를 이용하여 실시간 이상 감지를 수행할 수 있다.
또한, 어노테이션 처리부(141)는 도 15와 같이 원본 소스코드에 어노테이션(201,202)을 삽입하여 감시용 소스코드로 생성하고, 도 16a 내지 도 16e와 같이 감시 프로세스의 추적 범위를 설정할 수 있다.
도 15에서, 삽입된 어노테이션(201,202)은 내부자가 유지보수할 때 눈으로 확인 가능한 상태이다. 즉, 삽입된 어노테이션(201,202)은 단순한 표시(즉, @핵심코드, @우회감시)로만 적혀 있기 때문에 내부적으로 어떤 기능을 수행하는지, 어떤부분을 감시하는지 내부자가 알 수 없다. 그리고 삽입된 어노테이션(201,202)은 삭제시 담당자에게 알람을 주기 때문에 임의 삭제가 불가능하다. 이로 인해, 삽입된 어노테이션(201,202)은 보안적으로 안전성을 줄 수 있다.
특히, 어노테이션 처리부(141)는 포워드(Foward)/백워드(Backward) 변수(즉, F/B 변수)이용하여 감시 프로세스의 추적 범위를 설정한다. 도 16a는 '프로세스 1'부터 '프로세스 8'까지의 프로세스에 있어서, 관심 프로세스인 '프로세스 3'을 기준으로 감시 프로세스의 추적 범위를 다양하게 설정하는 경우를 나타낸다. 즉, 어노테이션 처리부(141)는 관심 프로세스를 기준으로 앞(포워드)/뒤(백워드) 프로세스 혹은 전체 비즈니스 로직까지 감시 프로세스의 변이에 대한 추적 범위를 설정할 수 있다.
감시 프로세스의 추적 범위는 하기 [표 1]과 같은 F/B 변수를 이용하여 결정된다. 즉, F/B 변수는 감시 프로세스의 앞/뒤 프로세스의 진행 단계를 결정하는 변수이다. 따라서, 감시 프로세스의 추적 범위는 관심 프로세스를 기준으로 앞/뒤 프로세스의 진행 단계로 결정된다.
F/B 변수 감시 프로세스의 추적 범위
F=0 /B=0 관심 프로세스만 추적
F=n /B=0 n번째 앞 프로세스까지 추적
F=0 /B=m m번째 뒤 프로세스까지 추적
F=n /B=m n번째 앞, m번째 뒤 프로세스 추적
이하, 상기 [표 1]을 참조하여 도 16a 내지 도 16e에 도시된 예를 설명한다.
도 16a에서 감시 프로세스의 추적 범위(Tracking Area, TA)는 제1 추적범위(TA1), 제2 추적범위(TA2), 제3 추적범위(TA3) 및 제4 추적범위(TA4)와 같이 4개의 추적범위로 설정할 수 있다. 여기서, 관심 프로세스는 '프로세스 3'이다.
제1 추적범위(TA1)는 도 16b와 같이 관심 프로세스 '프로세스 3'만을 추적 범위로 하는 경우를 나타낸다. 이때, F/B 변수는 F=0/B=0이다. 즉, 제1 추적범위(TA1)에는 '프로세스 3'만 포함된다.
또한, 제2 추적범위(TA2)는 도 16c와 같이 관심 프로세스 '프로세스 3'을 기준으로 '1번째 앞 프로세스'까지를 추적 범위로 하는 경우를 나타낸다. 이때, F/B 변수는 F=1/B=0이다. 즉, 제2 추적범위(TA2)에는 '프로세스 3'을 기준으로 1번째 앞 프로세스에 해당하는 '프로세스 7' 및 '프로세스 8'이 포함된다.
또한, 제3 추적범위(TA3)는 도 16d와 같이 관심 프로세스 '프로세스 3'을 기준으로 '1번째 뒤 프로세스'까지를 추적 범위로 하는 경우를 나타낸다. 이때, F/B 변수는 F=0/B=1이다. 즉, 제3 추적범위(TA3)에는 '프로세스 3'을 기준으로 1번째 뒤 프로세스에 해당하는 '프로세스 2' 및 '프로세스 4'가 포함된다.
또한, 제4 추적범위(TA4)는 도 16e와 같이 관심 프로세스 '프로세스 3'을 기준으로 '1번째 앞, 1번째 뒤 프로세스'까지를 추적 범위로 하는 경우를 나타낸다. 이때, F/B 변수는 F=1/B=1이다. 즉, 제4 추적범위(TA4)에는 '프로세스 3'을 기준으로 1번째 앞 프로세스에 해당하는 '프로세스 7' 및 '프로세스 8'이 포함되고, 1번째 뒤 프로세스에 해당하는 '프로세스 2' 및 '프로세스 4'가 포함된다.
한편, 어노테이션 관리부(142)는 감시용 소스코드에 삽입된 모든 어노테이션 코드의 위치(즉, 라인넘버)를 저장 및 관리한다. 이와 같이 어노테이션 관리부(142)가 모든 어노테이션 코드의 위치를 저장 및 관리하고 있기 때문에, 내부자에 의한 불법행위를 방지하는 보안 요소가 충족될 수 있다. 즉, 어노테이션 관리부(142)는 감시용 소스코드에 삽입된 모든 어노테이션 코드에 대한 내부자의 악의적인 접근을 방지함으로써, 감시용 소스코드에 삽입된 모든 어노테이션 코드를 보호하는 기능을 담당한다. 즉, 어노테이션 관리부(142)는 내부자에 의한 소스코드 변경 시도(예를 들어, 어노테이션 삭제 또는 수정 등)를 소스코드 변경 감지부(121)에 알려줄 수 있다.
구체적으로, 내부자는 모든 어노테이션 코드의 위치가 저장 및 관리되고 있기 때문에, 어노테이션 코드를 임의로 삭제하거나 주석으로 처리할 수 없다. 그리고, 내부자는 어노테이션 코드가 어떠한 역할을 수행하는지, 어노테이션 코드가 감시용 소스코드의 어느 부분을 감시하는지, 컴파일할 때 어떠한 어노테이션 코드가 삽입되는지에 대해서는 알 수 없다. 다만, 내부자는 감시용 소스코드에 삽입된 어노테이션 코드를 볼 수는 있다.
이하, 도 17, 도 18a, 도 18b 및 도 19를 참조하여 프로세스 변이 분석부(150)에 의한 프로세스 이상 감지에 대해 설명하기로 한다. 도 17은 프로세스 변이 패턴 모델부에 의한 프로세스 구성 및 확률 모델 도출 과정을 나타낸 도면이고, 도 18a 및 도 18b는 프로세스 이상 감지 기법을 나타낸 예시도이고, 도 19는 프로세스 변이 시각화를 나타낸 예시도이다.
프로세스 변이 분석부(150)는 로그를 이용하여 프로세스 구성 및 확률 모델(즉, 프로세스 변이 모델)을 도출하여 실시간으로 프로세스 이상을 감지할 수 있다.
프로세스 변이 분석부(150)는 프로세스 변이 이상 모니터링부(151), 프로세스 변이 패턴 모델부(152), 프로세스 변이 시각화부(153)를 포함하여 구성할 수 있다.
프로세스 변이 이상 모니터링부(151)는 프로세스 변이 패턴 모델부(152), 프로세스 변이 시각화부(153)와 연동하여 실시간으로 프로세스 이상을 감지하고, 프로세스 이상 감지 결과를 시각적으로 표시하여 담당자에게 제공할 수 있다.
구체적으로, 프로세스 변이 패턴 모델부(152)는 시스템이 운영됨에 따라 로그에 누적된 프로세스 변이 이력데이터를 이용하여 패턴 분석을 수행한다. 여기서, 로그는 시스템이 수행될 때마다 출력된다. 즉, 프로세스 추적에 필요한 감시용 표적, 즉, 어노테이션이 원본 소스에 삽입되어 있기 때문에, 로그에는 시스템 운영시에 프로세스 변이, 날짜, 시간, 횟수 등이 빠짐없이 기록될 수 있다.
그리고 프로세스 변이 이상 모니터링부(151)는 프로세스 변이 패턴 모델부(153)에 의해 프로세스 변이 모델이 도출되면, 베이지언 알고리즘(bayesian algorithm)(도 18a 참조) 및 흐름 분석 그래프(control flow graph)(도 18b 참조)의 서브 그래프(subgraph) 감시 기법 등을 이용하여 실시간으로 프로세스 이상(outlier)을 감지 및 추적할 수 있다. 프로세스 변이 이상 모니터링부(151)는 프로세스 이상을 감지하면, 알람부(30)를 통해 담당자에게 알려준다.
프로세스 변이 시각화부(153)는 프로세스 변이 모델에 대해 프로세스 변이, 주기, 빈도수 등을 확인할 수 있는 시각적 정보로 표시(즉, 시각화)할 수 있다(도 19 참조). 프로세스 변이 시각화부(153)는 프로세스 변이 모델에 대한 시각적 정보를 담당자에게 제공할 수 있다.
한편, 불법 행위 감시 장치(100)는 파일 시스템(file system, 10)과 운영 체제(operating system, 20)와 연동함으로써, 정적 감시 방식인 SW 변경 영향도 분석을 수행하고, 동적 감시 방식인 비즈니스 로직 추적을 수행한다. 또한, 불법 행위 감시 장치(100)는 정적 또는 동적 감시를 통해 문제 가능성이 있을 경우에, 이를 알람부(30)를 통해 감시 담당자에게 알려준다.
다시 말해, 불법 행위 감시 장치(100)는 'SW 변경 영향도 분석' 및 '비즈시스 로직 추적'을 이용하여 내부자에 의한 소스코드 변경이 감지되면 프로세스 우회 및 로직 불법 변경 여부를 평가한다. 그리고, 불법 행위 감시 장치(100)는 평가 결과로 문제 가능성이 있는 경우, 알람을 발생하여 감시 담당자가 인지할 수 있도록 한다.
한편, 본 발명의 불법 행위 감시 방법은 보안 감시를 위해 필요한 로그 혹은 로그 문법을 표준화하는 용도로 사용할 수 있다. 특히, 본 발명의 불법 행위 감시 방법은 관심 대상을 모든 메서드/프로세스로 확장할 경우 소프트웨어 커버리지 검사 용도로 사용할 수 있다. 여기서, 커버리지 검사는 소프트웨어 품질을 검사하는 기법 중 하나로서, 코드 오류나 사용하지 않은 데드 코드(dead-code: 한번도 호출되지 않는 함수)를 발견하는 검사를 말한다.
이상에서 설명된 본 발명의 실시예는 예시적인 것에 불과하며, 본 발명이 속한 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 잘 알 수 있을 것이다. 그럼으로 본 발명은 상기의 상세한 설명에서 언급되는 형태로만 한정되는 것은 아님을 잘 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. 또한, 본 발명은 첨부된 청구범위에 의해 정의되는 본 발명의 정신과 그 범위 내에 있는 모든 변형물과 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.
10 : 파일 시스템 20 : 운영체제
30 : 알람부 100 : 불법 행위 감시 장치
110 : 감시영역 정보 생성부 111 : 감시영역 정보 추출부
112 : 감시영역 정보 관리부 120 : 소스코드 감시부
121 : 소스코드 변경 감지부 122 : 소스코드 변경분 추출부
123 : 위험인지 및 영향도 분석부 130 : 프로세스 감시부
140 : 프로세스 변이 추적부 141 : 어노테이션 처리부
142 : 어노테이션 관리부 150 : 프로세스 변이 분석부
151 : 프로세스 변이 이상 모니터링부 152 : 프로세스 변이 패턴 모델부
153 : 프로세스 변이 시각화부

Claims (25)

  1. 프로세스에 있어서, 소스별 감시 대상과 관련된 관심 영역을 나타내는 감시영역 정보를 생성하기 위한 감시영역 정보 생성부; 및
    상기 감시영역 정보를 이용하여 소스코드 또는 프로세스를 감시하는 감시부;를 포함하고,
    상기 감시부는,
    상기 감시영역 정보를 이용하여 어노테이션(annotation) 처리를 통해 감시용 소스코드를 생성하고, 상기 어노테이션의 삽입에 따라 누적된 프로세스 변이 데이터를 분석하는 프로세스 감시부;를 포함하며,
    상기 프로세스 감시부는,
    시스템이 운영됨에 따라 로그에 누적된 프로세스 변이 데이터를 이용하여 패턴 분석을 수행하여 프로세스 변이 모델을 도출하는 프로세스 변이 패턴 모델부;
    상기 프로세스 변이 모델을 이용하여 프로세스 이상을 감지하는 프로세스 변이 이상 모니터링부; 및
    상기 프로세스 변이 모델을 이용하여 프로세스 변이에 대한 시각적 정보로 표시하는 프로세스 변이 시각화부;
    를 포함하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  2. 제 1 항에 있어서,
    상기 감시부는, 상기 소스코드의 변경시, 상기 감시영역 정보를 이용하여 상기 소스코드의 버전별 비교를 통해 변경분을 추출하고, 상기 소스코드의 변경에 따른 위험 가능성과 프로세스 우회 가능성을 산정하여 감시하기 위한 소스코드 감시부;
    를 포함하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 감시영역 정보 생성부는,
    프로세스 영역을 스캔하여 감시영역 정보를 추출하기 위한 감시영역 정보 추출부; 및
    상기 감시영역 정보를 기 설정된 데이터 구조에 따라 정리된 형태로 저장 및 관리하기 위한 감시영역 정보 관리부;
    를 포함하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  5. 제 2 항에 있어서,
    상기 소스코드 감시부는,
    상기 소스코드의 변경을 감지하는 소스코드 변경 감지부;
    상기 감시영역 정보를 이용하여 상기 변경된 소스코드가 포함된 해당 소스파일을 버전별로 비교하여 상기 소스코드의 변경분을 추출하는 소스코드 변경분 추출부; 및
    상기 추출된 소스코드의 변경분을 통해 상기 소스코드 변경에 따른 위험 가능성과 프로세스 우회 가능성을 분석하는 위험인지 및 영향도 분석부;
    를 포함하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  6. 제 1 항에 있어서,
    상기 프로세스 감시부는,
    상기 감시영역 정보를 통해 확인된 원본 소스코드에 보안용 어노테이션을 일괄적으로 삽입하여 감시용 소스코드로 자동으로 변환하는 어노테이션 처리부; 및
    상기 감시용 소스코드에 삽입된 모든 어노테이션 코드의 위치(라인넘버)를 저장 및 관리하는 어노테이션 관리부;
    를 포함하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  7. 삭제
  8. 제 1 항에 있어서,
    상기 프로세스는, 중요도에 따라 결정된 관심 프로세스인 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  9. 제 1 항에 있어서,
    상기 프로세스는, 알고리즘 구현 영역과 프로세스 호출 영역으로 분류하여 구성된 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  10. 제 9 항에 있어서,
    상기 알고리즘 구현 영역은, 컴파일 언어로 작성된 원본소스의 영역인 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  11. 제 9 항에 있어서,
    상기 프로세스 호출 영역은, 인터프리터 언어로 작성된 원본소스의 영역인 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  12. 제 1 항에 있어서,
    상기 감시영역 정보는, 원본 소스에 포함된 프로세스명, 소스명, 감시대상, 관심영역(라인넘버)을 포함하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  13. 제 12 항에 있어서,
    상기 감시대상은, 알고리즘 조작 감시영역과 프로세스 우회 감시영역으로 구분되는 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  14. 제 5 항에 있어서,
    상기 소스코드 변경분은, 코드수정 부분, 코드생성 부분, 코드삭제 부분을 포함하는 소스코드 변경내용, 해당 소스코드 변경내용에 해당되는 코드라인이 추출된 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  15. 제 5 항에 있어서,
    상기 위험인지 및 영향도 분석부는,
    이전 버전 소스와 변경 버전 소스 간의 영역정보에 대한 비교결과에 따라, 상기 소스코드 변경에 따른 위험 가능성을 확인하는 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  16. 제 15 항에 있어서,
    상기 위험인지 및 영향도 분석부는,
    외부의 작업 지시 시스템과 연동하여 내부자에 의한 코드 조작이 허용된 행위인지를 판단하는 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  17. 제 15 항에 있어서,
    상기 위험인지 및 영향도 분석부는,
    상기 비교 결과로 확인된 변경영역이 프로세스 우회 감시영역에 해당하면, 미리 정의된 위험등급에 따라 SW 변경 영향도를 산정하는 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  18. 제 17 항에 있어서,
    상기 변경영역은 상기 이전 버전 소스에 우회 가능 코드를 삽입하거나, 상기 이전 버전 소스에 새로운 호출문을 삽입하여 나타나는 영역인 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  19. 제 6 항에 있어서,
    상기 어노테이션 처리부는, 포워드(Foward)/백워드(Backward) 변수이용하여 감시 프로세스의 추적 범위를 설정하는 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  20. 제 6 항에 있어서,
    상기 어노테이션 관리부는, 상기 어노테이션 변경 시도를 감지하는 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  21. 제 1 항에 있어서,
    상기 프로세스 변이 이상 모니터링부는, 베이지언 알고리즘(bayesian algorithm) 및 흐름 분석 그래프(control flow graph)의 서브 그래프(subgraph) 감시 기법을 이용하여 프로세스 변이 이상을 감지하는 것을 특징으로 하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치.
  22. 프로세스에 있어서, 소스별 감시 대상과 관련된 관심 영역을 나타내는 감시영역 정보를 생성하는 단계; 및
    상기 감시영역 정보를 이용하여 소스코드 또는 프로세스를 감시하는 단계;를 포함하고,
    상기 프로세스 감시 단계는,
    시스템이 운영됨에 따라 로그에 누적된 프로세스 변이 데이터를 이용하여 패턴 분석을 수행하여 프로세스 변이 모델을 도출하는 단계;
    상기 프로세스 변이 모델을 이용하여 프로세스 이상을 감지하는 단계; 및
    상기 프로세스 변이 모델을 이용하여 프로세스 변이에 대한 시각적 정보로 표시하는 단계;
    를 포함하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 방법.
  23. 제 22 항에 있어서,
    상기 소스코드 감시 단계는,
    상기 소스코드의 변경시, 상기 감시영역 정보를 이용하여 상기 변경된 소스코드가 포함된 해당 소스파일의 버전별 비교를 통해 변경분을 추출하는 단계; 및
    상기 소스코드의 변경에 따른 위험 가능성과 프로세스 우회 가능성을 산정하여 감시하는 단계;
    를 포함하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 방법.
  24. 제 22 항에 있어서,
    상기 프로세스 감시 단계는,
    상기 감시영역 정보를 통해 확인된 원본 소스코드에 보안용 어노테이션을 일괄적으로 삽입하여 감시용 소스코드로 자동으로 변환하는 단계; 및
    상기 감시용 소스코드에 삽입된 모든 어노테이션 코드의 위치(라인넘버)를 저장 및 관리하는 단계;
    를 포함하는 소스코드 변경 영향 평가를 이용한 불법 행위 감시 방법.
  25. 삭제
KR1020160133449A 2016-10-14 2016-10-14 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법 KR101860642B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160133449A KR101860642B1 (ko) 2016-10-14 2016-10-14 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법
PCT/KR2016/013798 WO2018070598A1 (ko) 2016-10-14 2016-11-28 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법
DE112016007340.2T DE112016007340T5 (de) 2016-10-14 2016-11-28 Vorrichtung zum überwachen von gesetzeswidriger aktivität durch verwendung einer beurteilung des einflusses einer veränderung eines quellcodes und verfahren hierfür

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160133449A KR101860642B1 (ko) 2016-10-14 2016-10-14 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20180041386A KR20180041386A (ko) 2018-04-24
KR101860642B1 true KR101860642B1 (ko) 2018-05-23

Family

ID=61905645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160133449A KR101860642B1 (ko) 2016-10-14 2016-10-14 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법

Country Status (3)

Country Link
KR (1) KR101860642B1 (ko)
DE (1) DE112016007340T5 (ko)
WO (1) WO2018070598A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024034720A1 (ko) * 2022-08-10 2024-02-15 쿠팡 주식회사 전자 장치 및 그의 정보 제공 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021244123A1 (en) * 2020-06-05 2021-12-09 Guangdong Oppo Mobile Telecommunications Corp., Ltd. A system and method of creating real-time intelligent media
KR102415833B1 (ko) * 2020-09-28 2022-07-05 네이버클라우드 주식회사 취약점 진단방법 및 이를 위한 진단장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670209B1 (ko) * 2004-12-23 2007-01-16 한국전자통신연구원 파라미터 상태 추적을 통한 웹 응용프로그램 취약점의소스코드 분석 장치 및 방법
KR101428915B1 (ko) * 2013-02-22 2014-08-11 한양대학교 산학협력단 안드로이드 보안을 위한 피드백 기반 어플리케이션 재가공 프레임워크 방법과 그 시스템
KR101568224B1 (ko) * 2014-12-26 2015-11-11 고려대학교 산학협력단 소프트웨어 취약점 분석방법 및 분석장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100926735B1 (ko) * 2009-04-24 2009-11-16 주식회사 이븐스타 웹 소스 보안 관리 시스템 및 방법
KR100954758B1 (ko) * 2009-07-29 2010-04-27 주식회사 코드원 웹 애플리케이션 보안 시스템 및 이를 이용한 웹 애플리케이션의 보안 방법
KR101264615B1 (ko) * 2011-06-17 2013-05-27 (주)네오위즈게임즈 게임 서버의 작업 파일 실행 장치 및 방법
KR101701902B1 (ko) * 2013-10-31 2017-02-06 주식회사 에스크레인 모바일접근성 검증 방법 및 시스템
KR101660181B1 (ko) * 2015-08-12 2016-09-26 한국전력공사 체인룰 기반 내부자 불법 행위 탐지 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670209B1 (ko) * 2004-12-23 2007-01-16 한국전자통신연구원 파라미터 상태 추적을 통한 웹 응용프로그램 취약점의소스코드 분석 장치 및 방법
KR101428915B1 (ko) * 2013-02-22 2014-08-11 한양대학교 산학협력단 안드로이드 보안을 위한 피드백 기반 어플리케이션 재가공 프레임워크 방법과 그 시스템
KR101568224B1 (ko) * 2014-12-26 2015-11-11 고려대학교 산학협력단 소프트웨어 취약점 분석방법 및 분석장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024034720A1 (ko) * 2022-08-10 2024-02-15 쿠팡 주식회사 전자 장치 및 그의 정보 제공 방법

Also Published As

Publication number Publication date
DE112016007340T5 (de) 2019-06-19
KR20180041386A (ko) 2018-04-24
WO2018070598A1 (ko) 2018-04-19

Similar Documents

Publication Publication Date Title
US11748095B2 (en) Automation of task identification in a software lifecycle
Martinez-Moyano et al. A behavioral theory of insider-threat risks: A system dynamics approach
US20150302198A1 (en) Detection of Malicious Code Insertion in Trusted Environments
Fontana et al. Impact of refactoring on quality code evaluation
KR101640479B1 (ko) 소스코드기반 소프트웨어 취약점 공격행위 분석시스템
US20180373880A1 (en) Machine Learning Statistical Methods Estimating Software System's Security Analysis Assessment or Audit Effort, Cost and Processing Decisions
Bugeja et al. IoTSM: an end-to-end security model for IoT ecosystems
KR101860642B1 (ko) 소스코드 변경 영향 평가를 이용한 불법 행위 감시 장치 및 그 방법
Baca et al. Countermeasure graphs for software security risk assessment: An action research
CN116842531B (zh) 基于代码疫苗的漏洞实时验证方法、装置、设备及介质
Sion et al. Risk-based design security analysis
CN113761519A (zh) 一种Web应用程序的检测方法、装置及存储介质
Zanutto et al. The Shadow Warriors: In the no man’s land between industrial control systems and enterprise IT systems
Guaman et al. A systematic mapping study on software quality control techniques for assessing privacy in information systems
CN110955897A (zh) 基于大数据的软件研发安全管控可视化方法及***
Murtaza et al. Total ADS: Automated software anomaly detection system
Fenz et al. FORISK: Formalizing information security risk and compliance management
Ganz et al. Detecting backdoors in collaboration graphs of software repositories
KR101464736B1 (ko) 정보보호 관리 시스템 및 이를 통한 홈페이지 위변조 탐지 방법
JP7235126B2 (ja) バックドア検査装置、バックドア検査方法、及びプログラム
Zulkernine et al. Software security engineering: toward unifying software engineering and security engineering
Liu Quantitative security analysis for service-oriented software architectures
CN111131248B (zh) 一种网站应用安全缺陷检测模型建模方法及缺陷检测方法
US20230394159A1 (en) A method and system for security risk identification and controlling release management of software application with vulnerable codes
Yin et al. On estimating the security risks of composite software services

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