KR102512132B1 - 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법 - Google Patents

웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법 Download PDF

Info

Publication number
KR102512132B1
KR102512132B1 KR1020200168155A KR20200168155A KR102512132B1 KR 102512132 B1 KR102512132 B1 KR 102512132B1 KR 1020200168155 A KR1020200168155 A KR 1020200168155A KR 20200168155 A KR20200168155 A KR 20200168155A KR 102512132 B1 KR102512132 B1 KR 102512132B1
Authority
KR
South Korea
Prior art keywords
security
secure coding
user terminal
training
development environment
Prior art date
Application number
KR1020200168155A
Other languages
English (en)
Other versions
KR20220078899A (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 KR1020200168155A priority Critical patent/KR102512132B1/ko
Publication of KR20220078899A publication Critical patent/KR20220078899A/ko
Application granted granted Critical
Publication of KR102512132B1 publication Critical patent/KR102512132B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B19/00Teaching not covered by other main groups of this subclass
    • G09B19/0053Computers, e.g. programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/20Education

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Tourism & Hospitality (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Business, Economics & Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Economics (AREA)
  • Computer Hardware Design (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

본 발명은 시큐어 코딩 훈련 기술에 관한 것으로, 보다 상세하게는 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법에 관한 것이다. 본 발명의 일 실시 예에 따르면, 비대면 환경에서의 시큐어 코딩 교육 및 훈련 환경을 제공할 수 있어 언제 어디서든 인터넷을 통하여 훈련 시스템에 접속할 수 있으며, 보안 약점이 내재된 예제 소스코드를 통해 시큐어 코딩 훈련을 제공받을 수 있다.

Description

웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법 {DEVICE AND METHOD FOR SECURE CODING TRAINING BASED ON WEB INTEGRATED DEVELOPMENT ENVIRONMENT}
본 발명은 시큐어 코딩 훈련 기술에 관한 것으로, 보다 상세하게는 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법에 관한 것이다.
정부는 소프트웨어에 대한 보안성을 강화하기 위하여 개발보안 관련 법제를 강화하고 의무화 정책을 시행하고 있다. 이에 따라, 공공기관 및 기업 내에서 소프트웨어 개발보안 전문 인력에 대한 수요가 급증하고 있다. 그러므로 개발자는 개발보안을 위한 시큐어 코딩(Secure Coding)을 숙지하고 관련 지식을 습득하여야 한다.
시큐어 코딩은 소프트웨어 개발보안을 위한 관련 기술로써, 소프트웨어의 보안 약점(Weakness)과 보안 취약점(Vulnerability)을 예방 및 제거하는 기술이다. 하지만 현재 국내에서는 시큐어 코딩이 고려되지 않은 단순 알고리즘 위주의 교육시스템이 주로 서비스되고 있으므로, 시큐어 코딩의 교육 및 역량을 강화하기에는 적합하지 않다.
따라서 시간과 공간의 제약 없이 비대면 환경인 웹 통합 개발 환경(IDE: Integrated Development Environment)을 이용하여 오프라인 교육과 동등한 수준의 시큐어 코딩 교육과 훈련을 진행할 수 있는 시스템이 필요하다.
본 발명의 배경기술은 대한민국 등록특허 제10-1725301호에 게시되어 있다.
본 발명은 시간과 공간의 제약이 없이 온라인 환경에서 오프라인 교육과 동등한 수준의 시큐어 코딩 교육과 훈련을 위하여 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법을 제공한다.
본 발명의 목적은 이상에서 언급한 것으로 제한되지 않으며, 확장 및 범용성이 존재하는 다른 목적들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 충분한 활용 가능성이 있을 것으로 판단된다.
본 발명의 일 측면에 따르면, 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치를 제공한다.
본 발명의 일 실시예에 따른 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치는 미리 선정된 보안 약점 리스트를 통하여 유저 단말로 보안 약점과 관련된 정보를 제공하고, 예제 소스코드를 통해 시큐어 코딩을 학습시키는 보안 약점 훈련부 및 도커 컨테이너를 이용하여 제공된 웹 통합 개발 환경에 접속된 상기 유저 단말에서 생성한 소프트웨어 내의 보안 약점 및 보안 취약점을 진단하여 시큐어 코딩 위반 사항을 확인하고 확인 정보를 상기 유저 단말로 제공하는 시큐어 코딩 훈련부를 포함할 수 있다.
본 발명의 다른 일 측면에 따르면, 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 방법 및 이를 실행하는 컴퓨터 프로그램이 기록된 컴퓨터가 판독 가능한 기록매체를 제공한다.
본 발명의 일 실시 예에 따른 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 방법 및 이를 실행하는 컴퓨터 프로그램이 저장된 기록매체는 보안 약점 리스트를 생성하는 단계, 보안 약점 별 소스 코드를 생성하는 단계 및 선택된 보안 약점 별 소스 코드를 통하여 보안 약점 학습을 제공하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따르면, 비대면 환경에서의 시큐어 코딩 교육 및 훈련 환경을 제공할 수 있어 언제 어디서든 인터넷을 통하여 훈련 시스템에 접속할 수 있으며, 보안 약점이 내재된 예제 소스코드를 통해 시큐어 코딩 훈련을 제공받을 수 있다.
본 발명의 일 실시 예에 따르면, 도커 기반의 컴파일 서버를 운용함으로써 사용자의 PC 성능에 관계없이 컴파일 및 실행이 가능한 환경을 통하여 서비스를 제공받을 수 있다.
본 발명의 일 실시 예에 따르면, 사용자의 수준에 따라 맞춤형 소프트웨어 개발보안 교육을 제공하여 체계적으로 시큐어 코딩 관련 능력을 향상시킬 수 있고, 웹 통합 개발 환경을 이용함으로써 기존의 단순 객관식 문제를 해결하는 방식에서 예제 소스코드와 사용자가 직접 프로그래밍을 진행할 수 있는 주제를 제공하여 소프트웨어 개발보안 능력을 효과적으로 향상시킬 수 있다.
본 발명의 일 실시 예에 따르면, 관련 기술 및 교육분야에 활용할 경우, 본 발명의 우수한 확장성 및 범용성을 통하여 대학 내 소프트웨어 보안 분야 학생을 대상으로 교육 프레임워크로 활용할 수 있으며, 공공기관 및 기업에서 요구하는 기대 수준에 적합한 인재 양성과 역량 증진 효과를 기대할 수 있다.
도 1 내지 도 3은 본 발명의 일 실시 예에 따른 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치를 설명하기 위한 도면들.
도4 내지 도6은 본 발명의 일 실시 예에 따른 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 방법을 설명한 도면들.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
이하, 본 발명의 바람직한 실시 예를 첨부도면을 참조하여 상세히 설명하기로 하며, 첨부 도면을 참조하여 설명함에 있어, 동일하거나 대응하는 구성 요소는 동일한 도면번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
도 1 내지 도 3은 본 발명의 일 실시 예에 따른 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치를 설명하기 위한 도면들이다.
도 1을 참조하면, 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 시스템은 유저 단말(10) 및 시큐어 코딩 훈련 장치(100)를 포함한다.
유저 단말(10)은 시큐어 코딩을 교육받는 단말이다.
시큐어 코딩 훈련 장치(100)는 관련 문서 또는 영상을 통해 단계별 난이도의 보안 약점이 내재된 소스코드 예제를 유저 단말(10)에 제공하여 수행된다.
시큐어 코딩 훈련 장치(100)는 시큐어 코딩 교육 내용을 기반으로 유저 단말(10)이 소프트웨어를 직접적으로 개발할 수 있는 웹 통합 개발 환경을 제공한다. 시큐어 코딩 훈련 장치(100)는 웹 통합 개발 환경 과정에서 보안 약점 및 보안 취약점을 탐지하여 유저 단말(10)에서 작성한 소스코드의 보안 약점 및 보안 취약점 정보를 유저 단말(10)로 제공한다. 시큐어 코딩 훈련 장치(100)는 이를 통하여 유저 단말(10)에서 수행되는 소스코드 개발 과정에 시큐어 코딩을 적용할 수 있다.
도 2를 참조하면, 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치(100)는 보안 약점 훈련부(200) 및 시큐어 코딩 훈련부(300)를 포함한다.
보안 약점 훈련부(200)는 소프트웨어의 보안 약점을 항목별로 제공하는 CWE(Common Weakness Enumeration)를 기반으로 선정한 보안 약점 리스트를 통하여 유저 단말(10)로 보안 약점과 관련된 정보를 제공하고, 예제 소스코드를 통해 시큐어 코딩을 학습할 수 있다. 보안 약점 훈련부(200)는 유저 단말(10)에서 보안 약점을 선택 및 학습하여 시큐어 코딩에 대한 전반적인 부분을 이해하고 예제 소스코드를 수정하는 교육 과정을 진행할 수 있다.
보안 약점 훈련부(200)는 보안 약점 리스트 생성부(220), 보안 약점 별 소스 코드 생성부(240) 및 보안 약점 별 소스 코드 훈련부(260)를 포함한다.
보안 약점 리스트 생성부(220)는 보안 위협이 되는 보안 취약점을 예방하기 위하여 보안 약점 리스트 정보를 생성한다. 여기서, 보안 취약점은 공격자가 사이버 공격을 수행할 때 실제 침해로 악용되는 허점이다. 이와 같은 보안 취약점은 침해 사례와 같이 구체적으로 제시되고 있으며, 예를 들면, CVE(Common Vulnerabilities and Exposures)와 같이 목록으로 구성되어 데이터베이스로 제공될 수 있고, 보안 취약점의 진단 기준과 위험도, 순위 등의 표준을 수립하여 보안취약점의 위험도를 평가하는 OWASP(The Open Web Application Security Project) Top 10 및 도구를 포함할 수 있다. 보안 약점은 소프트웨어 내에서 보안취약점으로 발전할 가능성이 있는 요소를 의미한다. 보안 약점 또한 CVE와 같이 CWE(Common Weakness Enumeration) 목록으로 구성되어 고유의 위험도, 침해 가능성 등의 정보를 제공할 수 있다.
보안 약점 별 소스 코드 생성부(240)는 생성된 보안 약점 리스트에 포함된 보안 약점 별 소스 코드를 생성한다.
보안 약점 별 소스 코드 훈련부(260)는 생성된 보안 약점 별 소스 코드가 출력되며, 해당 보안 약점에 대한 학습 영상 및 문서 자료 중 적어도 하나를 유저 단말(10)로 제공된다. 보안 약점 별 소스 코드 훈련부(260)는 유저 단말(10)로부터 수신한 소스코드에서 보안 약점을 가진 코드라인을 클릭하여 체크한 답안 정보를 수신할 수 있다. 보안 약점 별 소스 코드 훈련부(260)는 수신한 답안 정보와 데이터베이스에 저장된 정답 정보를 매칭하여 정오답 여부를 판별하고 판별 정보를 유저 단말(10)로 제공할 수 있다. 보안 약점 별 소스 코드 훈련부(260)는 수신한 답안 정보가 정답 정보와 일치하는 경우, 소스코드를 직접 수정할 수 있도록 에디터가 주어지며, 직접적인 코딩 작업을 통하여 효율적으로 시큐어 코딩 역량을 강화할 수 있다. 보안 약점 별 소스 코드 훈련부(260)는 수신한 답안 정보가 정답 정보가 일치하지 않는 오답 정보인 경우 보안 약점 교육 자료의 재학습을 유도할 수 있다.
시큐어 코딩 훈련부(300)는 도커 컨테이너를 이용하여 제공된 웹 통합 개발 환경에 접속된 유저 단말(10)에서 생성한 소프트웨어 내의 보안 약점 및 보안 취약점을 진단하여 시큐어 코딩 위반 사항을 확인하고 확인 정보를 유저 단말(10)로 제공한다.
시큐어 코딩 훈련부(300)는 유저 컨테이너 생성부(320), 시큐어 코딩 프로젝트 생성 및 로드부(340), 시큐어 코딩 프로젝트 수행부(360), 시큐어 코딩 훈련 리포트부(380) 및 시큐어 코딩 훈련 분석부(400)를 포함한다.
유저 컨테이너 생성부(320)는 유저 단말(10)에 독립적인 웹 통합 개발 환경을 제공하는 도커 컨테이너를 생성한다. 유저 컨테이너 생성부(320)는 웹 통합 개발 환경을 포함하고 있는 도커 이미지 파일을 활용하여 유저 단말 별 도커 컨테이너를 생성할 수 있다. 유저 컨테이너 생성부(320)는 생성한 각 컨테이너의 포트 번호를 API화 하여 유저 단말(10)이 자신의 웹 통합 개발 환경에 접속할 수 있도록 해당 API 정보를 유저 단말(10)로 제공한다.
시큐어 코딩 프로젝트 생성 및 로드부(340)는 유저 단말(10)로부터 요청된 시큐어 코딩 프로젝트를 생성하고 로드한다. 여기서, 시큐어 코딩 프로젝트는 예를 들면, 메뉴를 통하여 생성된 메뉴를 통하여 Java Spring, node.js 또는 Python Django 프로젝트일 수 있다.
시큐어 코딩 프로젝트 수행부(360)는 유저 단말(10)로부터 독립적인 환경에서 시큐어 코딩 프로젝트를 수행하여 자유롭게 작성된 소스 코드를 수신한다.
시큐어 코딩 훈련 분석부(400)는 유저 단말(10)로부터 수신한 소스 코드를 분석하여 보안 약점을 분석한다. 시큐어 코딩 훈련 분석부(400)는 유저 단말(10)에서 작성한 소스코드를 빌드한 웹페이지에서 정적/ 동적으로 분석하기 위해 예를 들면, OWASP ZAP 2.9.0을 분석 엔진으로 활용할 수 있다. 이에 대해서는 도 3에서 더욱 상세히 설명하기로 한다.
시큐어 코딩 훈련 리포트부(380)는 분석된 소스 코드에서 발생한 보안 약점 리스트를 생성하여 리포트 한다. 시큐어 코딩 훈련 리포트부(380)는 생성한 보안 약점 리스트에 검출된 보안 약점의 이름, 위험 정도, URL 등의 정보를 포함할 수 있다.
도 3을 참조하면, 시큐어 코딩 훈련 분석부(400)는 타겟 URL 입력부(420), 연결 URL 크롤링부(440), 룰 셋 스크립트 실행부(460) 및 분석결과 출력부(480)를 포함한다.
타겟 URL 입력부(420)는 유저 단말(10)에서 빌드한 웹 페이지의 URL을 진단 대상인 타겟 URL로 입력한다.
연결 URL 크롤링부(440)는 입력된 타겟 URL을 기반으로 연결된 URL 정보를 수집한다. 연결 URL 크롤링부(440)는 예를 들면, 스파이더 크롤러를 활용하여 연결된 URL 정보를 수집할 수 있다.
룰 셋 스크립트 실행부(460)는 수집된 URL 정보를 미리 설정된 룰 셋 스크립트에 기반하여 정적 및 동적 분석을 실행한다. 여기서, 룰 셋 스크립트는 예를 들면, Java로 작성되어 Gradle 빌드 도구를 통해 .zap 확장자 파일로 생성될 수 있으며, CWE와 연관된 113개, 미분류된 28개, 총 141개의 룰 셋 스크립트로 구성될 수 있다. 또한, 룰 셋 스크립트는 OWASP Top 10 보안 취약점과 연관된 보안 약점을 진단할 수 있으며, 이와 같은 분석 결과를 기반으로 개발자가 룰 셋 스크립트의 수정 혹은 추가를 통해 기능 외의 보안 약점 또한 진단할 수 있다.
분석결과 출력부(480)는 룰 셋 스크립트를 기반으로 분석된 분석 결과를 출력한다. 분석 결과 출력부(480)는 예를 들면, HTML(Hyper Text Markup Language), XML(Extensible Markup Language), JSON(JavaScript Object Notation) 형식으로 유저 단말(10)에 반환될 수 있으며, 진단된 보안 약점의 디스크립션, 리스크 레벨, CWE ID, URL 및 Solution 정보 중 적어도 하나를 포함하여 리포트 형식으로 제공할 수 있다.
유저 단말(10)은 이를 통하여 개발한 웹 애플리케이션에 내재된 보안 약점 및 보안 취약점 정보를 전달받아 수정함으로써 시큐어 코딩 역량을 향상시킬 수 있다.
도4 내지 도6은 본 발명의 일 실시 예에 따른 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 방법을 설명한 도면들이다. 이하 설명하는 각 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치(100)를 구성하는 각 기능부가 수행하는 과정이나, 본 발명의 간결하고 명확한 설명을 위해 각 단계의 주체를 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치(100)로 통칭하도록 한다.
도 4를 참조하면, 단계 S410에서 시큐어 코딩 훈련 장치(100)는 보안 약점 리스트를 생성한다.
단계 S420에서 시큐어 코딩 훈련 장치(100)는 보안 약점 별 소스 코드를 생성한다.
단계 S430에서 시큐어 코딩 훈련 장치(100)는 선택된 보안 약점 별 소스 코드를 통하여 보안 약점 학습을 제공한다. 시큐어 코딩 훈련 장치(100)는 유저 단말(10)로부터 소스코드에서 보안 약점을 가진 코드라인을 클릭하여 체크한 답안 정보를 수신할 수 있다. 시큐어 코딩 훈련 장치(100)는 수신한 답안 정보와 데이터베이스에 저장된 정답 정보를 매칭하여 정오답 여부를 판별하고 판별 정보를 유저 단말(10)로 제공할 수 있다. 시큐어 코딩 훈련 장치(100)는 수신한 답안 정보가 오답 정보인 경우 보안 약점 교육 자료의 재학습을 유도할 수 있다. 시큐어 코딩 훈련 장치(100)는 수신한 답안 정보가 정답 정보인 경우 소스 코드를 직접 수정할 수 있도록 에디터가 주어질 수 있으며, 직접적인 코딩 작업을 통하여 효율적으로 시큐어 코딩 역량을 강화할 수 있다.
도 5를 참조하면, 단계 S510에서 시큐어 코딩 훈련 장치(100)는 유저 단말(10) 별 웹 통합 개발 환경을 포함한 도커 이미지 파일을 이용하여 유저 단말 별 도커 컨테이너를 생성한다.
단계 S520에서 시큐어 코딩 훈련 장치(100)는 생성된 도커 컨테이너의 포트번호에 상응하는 API 정보를 통하여 유저 단말(10)로부터 웹 통합 개발 환경에 접속 받는다. 시큐어 코딩 훈련 장치(100)는 유저 단말(10)로부터 요청된 시큐어 코딩 프로젝트를 생성하고 로드하고 작성된 소스 코드를 수신한다. 여기서, 시큐어 코딩 프로젝트는 예를 들면, 메뉴를 통하여 생성된 메뉴를 통하여 Java Spring, node.js 또는 Python Django 프로젝트일 수 있다.
단계 S530에서 시큐어 코딩 훈련 장치(100)는 수신한 소스 코드 내의 보안 약점 및 보안 취약점을 진단하고 유저 단말(10)에서 직접 소스 코드를 수정할 수 있는 진단 결과를 반환한다.
단계 S540에서 시큐어 코딩 훈련 장치(100)는 개발 중인 웹 애플리케이션 내의 시큐어 코딩 위반 사항을 확인하고 수정하여 시큐어 코딩 훈련을 진행한다.
도 6를 참조하면, 단계 S610에서 시큐어 코딩 훈련 장치(100)는 보안 약점 및 보안 취약점 검사를 위한 웹 사이트 주소를 타겟 URL로 입력 받는다.
단계 S620에서 시큐어 코딩 훈련 장치(100)는 타겟 URL과 연결된 모든 URL의 크롤링을 진행한다.
단계 S630에서 시큐어 코딩 훈련 장치(100)는 수집된 URL은 사전에 정의된 룰 셋에 의해 보안 약점과 보안 취약점을 진단할 수 있는 스크립트를 실행하여 분석한다. 여기서, 룰 셋 스크립트는 예를 들면, Java로 작성되어 Gradle 빌드 도구를 통해 .zap 확장자 파일로 생성될 수 있으며, CWE와 연관된 113개, 미분류된 28개, 총 141개의 룰 셋 스크립트로 구성될 수 있다. 또한, 룰 셋 스크립트는 OWASP Top 10 보안 취약점과 연관된 보안 약점을 진단할 수 있다.
단계 S640에서 시큐어 코딩 훈련 장치(100)는 진단 결과를 유저 단말(10)로 출력한다. 시큐어 코딩 훈련 장치(100)는 예를 들면, HTML(Hyper Text Markup Language), XML(Extensible Markup Language), JSON(JavaScript Object Notation) 형식으로 유저 단말(10)에 반환될 수 있으며, 진단된 보안 약점의 디스크립션, 리스크 레벨, CWE ID, URL 및 Solution 정보 중 적어도 하나를 포함하여 리포트 형식으로 제공할 수 있다.
상술한 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 방법은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시 예 들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10: 유저 단말
100: 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치
200: 보안 약점 훈련부
300: 시큐어 코딩 훈련부
400: 시큐어 코딩 훈련 분석부

Claims (10)

  1. 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치에 있어서,
    미리 선정된 보안 약점 리스트를 통하여 유저 단말로 보안 약점과 관련된 정보를 제공하고, 예제 소스코드를 통해 시큐어 코딩을 학습시키는 보안 약점 훈련부; 및
    도커 컨테이너를 이용하여 제공된 웹 통합 개발 환경에 접속된 상기 유저 단말에서 생성한 소프트웨어 내의 보안 약점 및 보안 취약점을 진단하여 시큐어 코딩 위반 사항을 확인하고 확인 정보를 상기 유저 단말로 제공하는 시큐어 코딩 훈련부를 포함하되,
    상기 시큐어 코딩 훈련부는
    상기 유저 단말에 독립적인 웹 통합 개발 환경을 제공하는 도커 컨테이너를 생성하는 유저 컨테이너 생성부;
    상기 유저 단말로부터 요청된 시큐어 코딩 프로젝트를 생성하고 로드하는 시큐어 코딩 프로젝트 생성 및 로드부; 및
    상기 유저 단말로부터 상기 시큐어 코딩 프로젝트를 수행하여 작성된 소스 코드를 수신하는 시큐어 코딩 훈련 분석부를 포함하는 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치.
  2. 제1 항에 있어서,
    상기 보안 약점 훈련부는
    보안 위협이 되는 보안 취약점을 예방하기 위하여 보안 약점 리스트 정보를 생성하는 보안 약점 리스트 생성부;
    생성된 보안 약점 리스트에 포함된 보안 약점 별 소스 코드를 생성하는 보안 약점 별 소스 코드 생성부;
    생성된 보안 약점 별 소스 코드가 출력되며, 해당 보안 약점에 대한 학습 영상 및 문서 자료 중 적어도 하나를 상기 유저 단말로 제공하는 보안 약점 별 소스 코드 훈련부를 포함하는 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치.
  3. 제2 항에 있어서,
    상기 보안 약점 별 소스 코드 훈련부는
    상기 유저 단말로부터 수신한 소스코드에서 보안 약점을 가진 코드라인을 클릭하여 체크한 답안 정보를 수신하고, 수신한 답안 정보와 데이터베이스에 저장된 정답 정보를 매칭하여 정오답 여부를 판별하고 판별 정보를 유저 단말로 제공하는 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치.
  4. 삭제
  5. 제1 항에 있어서,
    상기 시큐어 코딩 훈련부는
    분석된 소스 코드에서 발생한 보안 약점 리스트를 생성하여 리포트하는 시큐어 코딩 훈련 리포트부를 더 포함하는 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치.
  6. 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 방법에 있어서,
    보안 약점 리스트를 생성하는 단계;
    보안 약점 별 소스 코드를 생성하는 단계; 및
    선택된 보안 약점 별 소스 코드를 통하여 보안 약점 학습을 제공하는 단계를 포함하되,
    상기 선택된 보안 약점 별 소스 코드를 통하여 보안 약점 학습을 제공하는 단계는
    유저 단말로부터 소스코드에서 보안 약점을 가진 코드라인을 클릭하여 체크한 답안 정보를 수신하는 단계; 및
    수신한 답안 정보와 데이터베이스에 저장된 정답 정보를 매칭하여 정오답 여부를 판별하고 판별 정보를 유저 단말로 제공하는 단계를 포함하고,
    상기 수신한 답안 정보와 데이터베이스에 저장된 정답 정보를 매칭하여 정오답 여부를 판별하고 판별 정보를 유저 단말로 제공하는 단계는
    상기 수신한 답안 정보가 오답 정보인 경우 보안 약점 교육 자료의 재학습을 유도하는 단계; 및
    상기 수신한 답안 정보가 정답 정보인 경우 소스 코드를 직접 수정할 수 있도록 에디터가 주어지는 단계를 포함하는 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 방법.
  7. 삭제
  8. 삭제
  9. 제6항에 있어서,
    유저 단말 별 웹 통합 개발 환경을 포함한 도커 이미지 파일을 이용하여 유저 단말 별 도커 컨테이너를 생성하는 단계;
    생성된 도커 컨테이너의 포트번호에 상응하는 API 정보를 통하여 상기 유저 단말로부터 웹 통합 개발 환경에 접속 받는 단계;
    상기 유저 단말로부터 요청된 시큐어 코딩 프로젝트를 생성하고 로드하고 작성된 소스 코드를 수신하는 단계; 및
    수신한 소스 코드 내의 보안 약점 및 보안 취약점을 진단하고 상기 유저 단말에서 직접 소스 코드를 수정할 수 있는 진단 결과를 반환하는 단계를 포함하는 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 방법.
  10. 제6 항의 시큐어 코딩 훈련 방법을 실행하는 컴퓨터가 판독 가능한 기록매체에 기록된 컴퓨터 프로그램.
KR1020200168155A 2020-12-04 2020-12-04 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법 KR102512132B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200168155A KR102512132B1 (ko) 2020-12-04 2020-12-04 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200168155A KR102512132B1 (ko) 2020-12-04 2020-12-04 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220078899A KR20220078899A (ko) 2022-06-13
KR102512132B1 true KR102512132B1 (ko) 2023-03-22

Family

ID=81983889

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200168155A KR102512132B1 (ko) 2020-12-04 2020-12-04 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102512132B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101725301B1 (ko) * 2016-08-01 2017-04-11 주식회사 그로비스인포텍 보안 취약점 훈련 시스템
JP2020060698A (ja) 2018-10-10 2020-04-16 日本電信電話株式会社 問題提示装置、問題提示システム、問題提示方法、及び問題提示プログラム
US20200267183A1 (en) 2019-02-15 2020-08-20 Avant Research Group, LLC Systems and methods for vulnerability analysis of phishing attacks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170059376A (ko) * 2015-11-20 2017-05-30 (주)엘리스 프로그래밍 교육 장치 및 방법
KR20200068159A (ko) * 2018-12-04 2020-06-15 순천향대학교 산학협력단 프로그래밍 실습 시스템 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101725301B1 (ko) * 2016-08-01 2017-04-11 주식회사 그로비스인포텍 보안 취약점 훈련 시스템
JP2020060698A (ja) 2018-10-10 2020-04-16 日本電信電話株式会社 問題提示装置、問題提示システム、問題提示方法、及び問題提示プログラム
US20200267183A1 (en) 2019-02-15 2020-08-20 Avant Research Group, LLC Systems and methods for vulnerability analysis of phishing attacks

Also Published As

Publication number Publication date
KR20220078899A (ko) 2022-06-13

Similar Documents

Publication Publication Date Title
Halin et al. Test them all, is it worth it? Assessing configuration sampling on the JHipster Web development stack
Galster et al. Variability in software systems—a systematic literature review
Devroey et al. Statistical prioritization for software product line testing: an experience report
Zaidman et al. Understanding Ajax applications by connecting client and server-side execution traces
WO2017165399A1 (en) Automated assessement and granding of computerized algorithms
Thomas et al. What questions remain? an examination of how developers understand an interactive static analysis tool
Rabelo et al. SmartLAK: A big data architecture for supporting learning analytics services
WO2014132145A1 (en) Web service black box testing
Jaatun Software security activities that support incident management in secure DevOps
Imran et al. Aggregated provenance and its implications in clouds
Enişer et al. Testing service oriented architectures using stateful service visualization via machine learning
WO2013054248A1 (en) Generating a predictive data structure
de Souza Neto et al. Semantic web services testing: a systematic mapping study
KR102512132B1 (ko) 웹 통합 개발 환경을 이용한 시큐어 코딩 훈련 장치 및 방법
Kratzke Smart Like a Fox: How Clever Students Trick Dumb Automated Programming Assignment Assessment Systems.
James et al. Standing together for reproducibility in large-scale computing: Report on reproducibility@ XSEDE
Zogaan et al. Automated training-set creation for software architecture traceability problem
Kalaki et al. Anomaly detection on OpenStack logs based on an improved robust principal component analysis model and its projection onto column space
Genarri Considerations for Evaluating Large Language Models for Cybersecurity Tasks
Minhas et al. Lessons learned from replicating a study on information-retrieval-based test case prioritization
Luburić et al. Examining Repudiation Threats Using a Framework for Teaching Security Design Analysis
Tøndel et al. Learning from software security testing
Marenkov et al. A tool for design-time usability evaluation of web user interfaces
Antonella et al. A Prototype for the Automatic Assessment of Critical Thinking
Ribeiro An IDE Plug-in to detect security vulnerabilities in Infrastructure-as-Code Scripts

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right