KR20220097623A - 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법 - Google Patents

소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법 Download PDF

Info

Publication number
KR20220097623A
KR20220097623A KR1020200187572A KR20200187572A KR20220097623A KR 20220097623 A KR20220097623 A KR 20220097623A KR 1020200187572 A KR1020200187572 A KR 1020200187572A KR 20200187572 A KR20200187572 A KR 20200187572A KR 20220097623 A KR20220097623 A KR 20220097623A
Authority
KR
South Korea
Prior art keywords
providing
editing
defect detection
source code
user
Prior art date
Application number
KR1020200187572A
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 KR1020200187572A priority Critical patent/KR20220097623A/ko
Publication of KR20220097623A publication Critical patent/KR20220097623A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명에서는, 프론트엔드 프레임 워크의 일종인 리액트(React)에 기반하여, 테인트(Taint) 규칙 편집을 용이하게 수행할 수 있는 그래픽 사용자 인터페이스(Graphic User Interface, GUI)를 구현하여 제공함으로써, 프로그램의 개발자 또는 사용자가 소스 코드에 대한 결함 탐지를 위한 테인트 분석 툴(Tool)의 편집을 용이하게 수행할 수 있도록 지원하는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스를 제공한다.

Description

소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법{Method of providing user interface for editting taint rules for detcting errors in source codes}
본 발명은 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법에 관한 것으로서, 더욱 상세하게는 프론트엔드 프레임 워크의 일종인 리액트(React)에 기반하여, 테인트(Taint) 규칙 편집을 용이하게 수행할 수 있는 그래픽 사용자 인터페이스(Graphic User Interface, GUI)를 구현하여 제공함으로써, 프로그램의 개발자 또는 사용자가 소스 코드에 대한 결함 탐지를 위한 테인트 분석 툴(Tool)의 편집을 용이하게 수행할 수 있도록 지원하는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법에 관한 것이다.
테인트 분석은 시스템 보안 연구에 자주 사용되는 분석 기술로서, 인젝션 공격(Injection Attack)에 취약한 코드를 탐지하거나, 또는 소스 코드로부터의 데이터 유출 가능성 등을 탐지하는 데 유용하게 사용되는 분석 방법이다.
테인트 분석은 데이터의 흐름을 추적하는 기술로서, 테인트 소스(Taint Source)로 지정된 변수에 꼬리표를 붙인 뒤, 프로그램의 실행 경로를 따라 그 값이 전파될 때마다 꼬리표도 함께 전파되는 방식으로 이루어져, 꼬리표가 붙은 값이 최종적으로 테인트 싱크(Taint Sink)로 지정된 코드에 도달할 경우, 테인트 소스로부터 테인트 싱크 사이에 존재하는 데이터 흐름을 파악할 수 있으며, 이를 통해 악성 소스의 인젝션 공격(Injection Attack)에 취약한 코드를 탐지하거나 또는 소스 코드에서 민감한 정보가 유출될 수 있는 가능성 등과 같은 소스 코드의 결함을 효과적으로 탐지할 수 있는 방법이다.
그런데, 이와 같은 테인트 분석을 수행하기 위해서는, 대한민국 공개특허공보 제10-2016-0030425호에서와 같이, 분석 엔진에서 요구하는 다양한 테인트 규칙을 설정하여야 하는데, 이와 같은 테인트 규칙의 설정 및 입력 과정은 상당히 복잡하고 까다로운 과정이 이어지므로, 이제까지는 주로 숙련도가 높은 중급 이상의 코드 개발자들만이 편집하여 사용해오고 있는 실정이다.
1. 대한민국 공개특허공보 제10-2016-0030425호(공개일: 2016.03.18.) "제어 의존성에 기초한 테인트 설정 장치 및 방법"
본 발명은 상술한 종래기술의 문제점을 효과적으로 해결하기 위한 것으로서, 본 발명에서는 프론트엔드 프레임 워크의 일종인 리액트(React)에 기반하여, 테인트(Taint) 규칙 편집을 용이하게 수행할 수 있는 그래픽 사용자 인터페이스(Graphic User Interface, GUI)를 구현하여 제공함으로써, 프로그램의 개발자 또는 사용자가 소스 코드에 대한 결함 탐지를 위한 테인트 분석 툴(Tool)의 편집을 보다 용이하게 수행할 수 있도록 지원하는데 그 목적이 있다.
이를 위해 본 발명에서는, 소스 코드의 결함 탐지 규칙 편집을 위한 사용자 인터페이스를 제공하는 방법에 있어서, 결함 탐지를 위한 소스 파일을 업로드 하기 위한 노드 생성 버튼을 사용자에게 제공하는 단계; 소스 파일이 업로드된 노드와 업로드된 소스 파일에 대한 소스 코드 결함 탐지 규칙 편집을 마친 파일이 저장되는 노드를 간선으로 연결하는 단계; 사용자에게 자신이 검사하고자 하는 Event를 설정하기 위한 Alias 선택 화면을 제공하는 단계; 사용자에게 상기 소스 파일이 업로드된 노드와 업로드된 소스 파일에 대한 소스 코드 결함 탐지 규칙 편집을 마친 파일이 저장되는 노드를 연결한 간선에 별도 속성으로 지정되는 전파 규칙을 편집하기 위한 전파 규칙 편집 화면을 제공하는 단계; 및 상기 간선에 적용되는 필터의 편집을 위한 필터 편집 화면을 제공하는 단계;를 포함하여 구성되는 것을 특징으로 하는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법을 제시한다.
본 발명에서는, 최근 널리 보급되어 사용되고 있는 프론트엔드 프레임 워크의 일종인 리액트(React)에 기반하여, 테인트(Taint) 규칙 편집을 용이하게 수행할 수 있는 그래픽 사용자 인터페이스(Graphic User Interface, GUI)를 구현하여 제공함으로써, 전문 프로그램 개발자는 물론 상대적으로 숙련도가 떨어지는 사용자들도 소스 코드에 대한 결함 탐지를 위한 테인트 분석 툴(Tool)의 편집을 보다 용이하게 수행할 수 있도록 지원하는 효과가 있다.
도 1은 본 발명에서 구현되는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법을 단계별로 정리한 순서도이다.
도 2는 본 발명에 따른 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 과정에서 사용자에게 제공되는 Event 템플릿의 예를 보여주는 도면이다.
도 3은 본 발명에 따른 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 과정에서 전파 규칙 편집을 위해 사용자에게 제공되는 그래픽 인터페이스의 예를 보여주는 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 이하에서는 본 발명의 바람직한 실시예를 첨부 도면과 함께 상세하게 설명하기로 한다.
이미 앞에서 설명한 바와 같이, 본 발명에서는 최근 널리 보급되어 사용되고 있는 프론트엔드 프레임 워크의 일종인 리액트(React)에 기반하여, 테인트(Taint) 규칙 편집을 용이하게 수행할 수 있는 그래픽 사용자 인터페이스(Graphic User Interface, GUI)를 구현한다.
리액트는 자바 스크립트(Java Script)와 HTML 및 JSX코드를 결합하여 페이스북이 개발한 프레임워크로서, 컴포넌트 기반 아키텍처를 사용하여 유지 관리가 용이하고, 개발 시간을 단축시켜 개발자가 응용 프로그램을 조정하고 확장하기 쉽도록 개별 컴포넌트 요소를 만들어 개발할 수 있도록 지원한다.
또한, 리액트는 가상 DOM(Document Object Model)을 사용하는데, 이는 HTML, XHTML 또는 XML 문서에 대한 프로그래밍 인터페이스로, 스크립트가 웹 문서의 내용 및 구조와 동적으로 상호 작용하고 이를 업데이트 할 수 있는 트리 형태로 구성되어, 웹 문서의 변경 사항을 추적하여 전체 트리의 다른 부분에 영향을 주지 않고 특정 요소 만 업데이트할 수 있도록 지원하고 있으며, 단방향(One-way) 데이터 바인딩을 통해, 하위 컴포넌트가 업데이트될 때 상위 컴포넌트에 영향을 미치도록 허용하지 않으며, 승인된 컴포넌트만 변경되도록 허용한다.
본 발명에서는, 상술한 리액트의 특성에 기반하여 일반 사용자들도 테인트 규칙의 편집을 용이하게 수행할 수 있도록, 사용자에게 테인트 규칙 편집을 위한 그래픽 사용자 인터페이스(GUI)를 제공하는데, 이하에서는, 첨부된 도면과 함께 본 발명에 따른 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법을 각 단계별로 구체적으로 살펴보기로 한다.
도 1은 본 발명에서 구현되는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법을 단계별로 정리한 순서도이다.
도 1에 도시된 바와 같이, 본 발명에서는, 초기 화면을 통해 사용자에게 노드 생성 버튼을 제공(S100)하여, 생성된 노드에 결함 탐지를 위한 소스 파일을 업로드 할 수 있도록 제공한다.
이후, 소스 파일이 업로드되면, 소스 파일이 업로드된 노드와 업로드된 소스 파일에 대한 소스 코드 결함 탐지 규칙 편집을 마친 파일이 저장되는 노드를 간선으로 연결한다(S200).
이때, 상기 연결되는 간선은 방향성을 가지고 연결되며, 각 노드 사이에는 적어도 하나 이상의 추적 변수가 공유되고, 연결되는 간선에는 필터 및 전파 규칙이 설정될 수 있다.
소스 파일이 업로드된 노드와 업로드된 소스 파일에 대한 소스 코드 결함 탐지 규칙 편집을 마친 파일이 저장되는 노드를 간선으로 연결한 이후에는, 사용자에게 Alias 선택 화면을 제공(S300)하여, 사용자가 Alias를 지정하고, 검사하고자 하는 Event를 설정(set)할 수 있도록 지원한다.
이때, 본 발명에서는 사용자의 Event 설정을 용이하게 보조하기 위해, 다양한 개별 Event 및 다수의 Event가 혼합된 여러 종류의 집합 Event들에 대해 사전에 작성된 템플릿을 사용자에게 제공하여, 사용자가 상기 제공된 템플릿에서 자신이 원하는 부분만을 간단히 수정하여 자신이 원하는 Event를 손쉽게 편집할 수 있도록 지원한다.
도 2는, 상술한 과정에서 사용자에게 제공되는 Event 템플릿의 한 예로써, 사용자는 본 발명에 따른 사용자 인터페이스에서 제공되는 다양한 Event 템플릿 중 자신이 원하는 템츨릿을 선택하여, 간단한 수정을 거쳐 자신이 원하는 Event를 설정할 수 있다.
이때, 본 발명에서는 설정된 Event 내용에 따라, 수정된 정보에 의해 영향을 받는 체커(checker) 목록을 작성하여 사용자에게 제공한다.
Event 설정이 완료되면, 사용자에게 앞서 연결된 간선에 별도 속성으로 지정되는 전파 규칙을 편집하기 위해, 도 3에 예시된 바와 같이, 전파 규칙 편집을 위한 그래픽 인터페이스를 제공한다(S400).
마찬가지로, 상기 간선에 적용되는 필터(filter)의 편집을 위한 필터 편집 화면 역시 그래픽 인터페이스를 통해 사용자에게 제공되며(S500), 사용자는 제공되는 그래픽 인터페이스를 통해 전파 규칙 및 필터 구성 등을 편집하여 자신이 의도하는 소스 코드의 결함 탐지 규칙을 용이하게 수정, 편집하여 저장할 수 있게 된다.
이상에서 살펴본 바와 같이, 본 발명에서는 리액트에 기반하여, 소스 코드의 결함 탐지를 위한 테인트 분석에 요구되는 테인트 규칙의 편집을 용이하게 수행할 수 있는 그래픽 사용자 인터페이스를 구현하여 제공함으로써, 전문 프로그램 개발자는 물론 상대적으로 숙련도가 떨어지는 사용자들도 소스 코드에 대한 결함 탐지를 위한 테인트 분석 툴의 편집을 보다 용이하게 수행할 수 있도록 지원하고 있으며, 그에 따라 사용자가 직접 간단한 규칙 편집을 통해 문제 해결을 도모할 수 있어, 새로운 탐지 규칙의 도입이 용이한 동시에, 끊임없이 발견되고 점점 복잡해지는 소프트웨어의 결함 및 취약점에 보다 신속하게 대응하여 탐지 규칙을 보완할 수 있도록 지원한다.
또한, 이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것은 아니며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러가지 치환, 변형 및 변경이 가능하다는 것은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백하다 할 것이다.

Claims (6)

  1. 소스 코드의 결함 탐지 규칙 편집을 위한 사용자 인터페이스를 제공하는 방법에 있어서,
    결함 탐지를 위한 소스 파일을 업로드 하기 위한 노드 생성 버튼을 사용자에게 제공하는 단계;
    소스 파일이 업로드된 노드와 업로드된 소스 파일에 대한 소스 코드 결함 탐지 규칙 편집을 마친 파일이 저장되는 노드를 간선으로 연결하는 단계;
    사용자에게 자신이 검사하고자 하는 Event를 설정하기 위한 Alias 선택 화면을 제공하는 단계;
    사용자에게 상기 소스 파일이 업로드된 노드와 업로드된 소스 파일에 대한 소스 코드 결함 탐지 규칙 편집을 마친 파일이 저장되는 노드를 연결한 간선에 별도 속성으로 지정되는 전파 규칙을 편집하기 위한 전파 규칙 편집 화면을 제공하는 단계; 및
    상기 간선에 적용되는 필터의 편집을 위한 필터 편집 화면을 제공하는 단계;를 포함하여 구성되는 것을 특징으로 하는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법.
  2. 제 1항에 있어서,
    상기 사용자에게 Event 설정을 위한 Alias 선택 화면을 제공하는 단계에서는,
    다수의 개별 Event 및 다수의 개별 Event가 혼합된 다수의 집합 Event들에 대해 사전에 작성된 템플릿을 사용자에게 제공하여, 사용자가 상기 제공된 템플릿에서 자신이 원하는 부분만을 수정하여 Event를 편집할 수 있도록 지원하는 것을 특징으로 하는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법.
  3. 제 2항에 있어서,
    설정된 Event 내용에 따라 수정된 정보에 의해 영향을 받는 체커(checker) 목록을 작성하여 사용자에게 제공하는 단계를 추가로 수행하는 것을 특징으로 하는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법.
  4. 제 1항에 있어서,
    상기 소스 파일이 업로드된 노드와 업로드된 소스 파일에 대한 소스 코드 결함 탐지 규칙 편집을 마친 파일이 저장되는 노드를 연결하는 간선은 방향성을 가지고 연결되며, 각 노드 사이에는 적어도 하나 이상의 추적 변수가 공유되는 것을 특징으로 하는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법.
  5. 제 1항에 있어서,
    상기 소스 코드의 결함 탐지 규칙은,
    소스 코드의 결함 탐지를 위한 테인트 분석에 요구되는 테인트 규칙인 것을 특징으로 하는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법.
  6. 제 1항에 있어서,
    상기 소스 코드의 결함 탐지 규칙 편집을 위해 제공되는 사용자 인터페이스는,
    프론트엔드 프레임 워크인 리액트(React)에 기반을 두고 구현되는 것을 특징으로 하는 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법.
KR1020200187572A 2020-12-30 2020-12-30 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법 KR20220097623A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200187572A KR20220097623A (ko) 2020-12-30 2020-12-30 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200187572A KR20220097623A (ko) 2020-12-30 2020-12-30 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법

Publications (1)

Publication Number Publication Date
KR20220097623A true KR20220097623A (ko) 2022-07-08

Family

ID=82407472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200187572A KR20220097623A (ko) 2020-12-30 2020-12-30 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법

Country Status (1)

Country Link
KR (1) KR20220097623A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160030425A (ko) 2014-09-10 2016-03-18 한양대학교 산학협력단 제어 의존성에 기초한 테인트 설정 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160030425A (ko) 2014-09-10 2016-03-18 한양대학교 산학협력단 제어 의존성에 기초한 테인트 설정 장치 및 방법

Similar Documents

Publication Publication Date Title
US8392886B2 (en) System, program product, and methods to enable visual recording and editing of test automation scenarios for web application
US8001468B2 (en) Method and system for accelerating test automation of software applications
US7581206B2 (en) Systems and methods for creating and providing templates in a single file
US7552418B2 (en) Systems and methods for creating and providing templates in a single file
US10437574B2 (en) System and method for providing code completion features for code modules
US20090254880A1 (en) Techniques for offering and applying code modifications
US20080015911A1 (en) Methods and apparatuses for developing business solutions
US7603624B2 (en) System and method for styling content in a graphical user interface control
Dabit React Native in action
US20100077325A1 (en) In Situ Editing of GUI Features
US20240078097A1 (en) Graphical user interface and system for defining and maintaining code-based policies
US20030233614A1 (en) System and method for in-context editing of components
Snell et al. Microsoft Visual Studio 2012 Unleashed: Micro Visua Studi 2012 Unl_p2
KR20080043345A (ko) 선언적으로 정의되는 컨트롤 액션
CN116304442A (zh) 页面代码生成方法、装置、电子设备以及存储介质
Freeman Pro react 16
KR20220097623A (ko) 소스 코드 결함 탐지 규칙 편집을 위한 사용자 인터페이스 제공 방법
JP4814801B2 (ja) 表示画面構成装置
JP5476709B2 (ja) Webページ編集プログラム及びWebページ編集装置
JP2007233630A (ja) ブラウザ画面の表示装置およびそのためのプログラム
Elrom et al. React Components
Sterca et al. Check for updates Primary Building Blocks for Web Automation
Verma Tips and Tricks
Pucciani Elements Location Approach
Lerner At the forge: Firebug

Legal Events

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