• 제목/요약/키워드: source code vulnerability

검색결과 40건 처리시간 0.023초

소스코드의 보안성 메트릭 설계에 관한 연구 (A Study on the Design of Security Metrics for Source Code)

  • 서동수
    • 정보보호학회논문지
    • /
    • 제20권6호
    • /
    • pp.147-155
    • /
    • 2010
  • 소스코드의 정적분석 기술은 소스코드 자체에 내재된 취약성을 찾는데 활용되는 중요한 기술로 인식되고 있다. 본 논문은 정보시스템의 소스코드 보안성 수준을 평가하는 방법으로 정적분석 결과인 소스코드의 취약성 정보와 프로그램이 처리하는 정보의 중요도를 활용하는 평가 메트릭의 설계 및 활용을 소개한다. 소스코드 보안성 메트릭은 소스코드의 취약점 수준을 개발 과정에서 미리 파악할 수 있도록 도움을 준다는 측면에서 평가자와 개발자 모두가 활용할 수 있다. 특히 평가자는 보안 메트릭을 통해 소스코드의 성격과 요구되는 정보의 보안수준에 따라 소스코드의 보안 수준을 점검하며, 코드 검수에 활용할 수 있다.

A Source Code Cross-site Scripting Vulnerability Detection Method

  • Mu Chen;Lu Chen;Zhipeng Shao;Zaojian Dai;Nige Li;Xingjie Huang;Qian Dang;Xinjian Zhao
    • KSII Transactions on Internet and Information Systems (TIIS)
    • /
    • 제17권6호
    • /
    • pp.1689-1705
    • /
    • 2023
  • To deal with the potential XSS vulnerabilities in the source code of the power communication network, an XSS vulnerability detection method combining the static analysis method with the dynamic testing method is proposed. The static analysis method aims to analyze the structure and content of the source code. We construct a set of feature expressions to match malignant content and set a "variable conversion" method to analyze the data flow of the code that implements interactive functions. The static analysis method explores the vulnerabilities existing in the source code structure and code content. Dynamic testing aims to simulate network attacks to reflect whether there are vulnerabilities in web pages. We construct many attack vectors and implemented the test in the Selenium tool. Due to the combination of the two analysis methods, XSS vulnerability discovery research could be conducted from two aspects: "white-box testing" and "black-box testing". Tests show that this method can effectively detect XSS vulnerabilities in the source code of the power communication network.

code2vec 모델을 활용한 소스 코드 보안 취약점 탐지 (Detection of Source Code Security Vulnerabilities Using code2vec Model)

  • 양준혁;모지환;홍성문;도경구
    • 한국소프트웨어감정평가학회 논문지
    • /
    • 제16권2호
    • /
    • pp.45-52
    • /
    • 2020
  • 소스 코드의 보안 취약점을 탐지하는 전통적인 방법은 많은 시간과 노력을 필요로 한다. 만약 보안 취약점 유형들에 대한 좋은 품질의 데이터가 있다면, 이와 머신러닝 기술을 활용해 효과적으로 문제를 해결할 수 있을 것이다. 이에 본 논문은 정적 프로그램 분석에 머신러닝 기술을 활용하여 소스 코드에서 보안 취약점을 탐지하는 방법을 제시하고, 실험을 통하여 가능성을 보인다. 메소드 단위의 코드 조각의 의미를 해석하여 메소드의 이름을 예측하는 code2vec 모델을 사용하고, 모델을 생성하고 검증 및 평가를 하기 위한 데이터로 흔히 발생할 수 있는 보안 취약점을 모아놓은 Juliet Test Suite를 사용하였다. 모델 평가 결과 약 97.3%의 정밀도와 약 98.6%의 재현율로 매우 희망적인 결과를 확인하였고 오픈 소스 프로젝트의 취약점을 탐지함으로써 가능성을 보였다. 향후 연구를 통해 다른 취약점 유형과 다양한 언어로 작성된 소스 코드에 대해서 대응함으로써 기존의 분석 도구들을 대체할 수 있을 것이다.

A study on Dirty Pipe Linux vulnerability

  • Tanwar, Saurav;Kim, Hee Wan
    • International Journal of Internet, Broadcasting and Communication
    • /
    • 제14권3호
    • /
    • pp.17-21
    • /
    • 2022
  • In this study, we wanted to examine the new vulnerability 'Dirty Pipe' that is founded in Linux kernel. how it's exploited and what is the limitation, where it's existed, and overcome techniques and analysis of the Linux kernel package. The study of the method used the hmark[1] program to check the vulnerabilities. Hmark is a whitebox testing tool that helps to analyze the vulnerability based on static whitebox testing and automated verification. For this purpose of our study, we analyzed Linux kernel code that is downloaded from an open-source website. Then by analyzing the hmark tool results, we identified in which file of the kernel it exists, cvss level, statistically depicted vulnerabilities on graph which is easy to understand. Furthermore, we will talk about some software we can use to analyze a vulnerability and how hmark software works. In the case of the Dirty Pipe vulnerability in Linux allows non-privileged users to execute malicious code capable of a host of destructive actions including installing backdoors into the system, injecting code into scripts, altering binaries used by elevated programs, and creating unauthorized user profiles. This bug is being tracked as CVE-2022-0847 and has been termed "Dirty Pipe"[2] since it bears a close resemblance to Dirty Cow[3], and easily exploitable Linux vulnerability from 2016 which granted a bad actor an identical level of privileges and powers.

차분 퍼징을 이용한 국내 공개 암호소스코드 안전성 검증 (Security Verification of Korean Open Crypto Source Codes with Differential Fuzzing Analysis Method)

  • 윤형준;서석충
    • 정보보호학회논문지
    • /
    • 제30권6호
    • /
    • pp.1225-1236
    • /
    • 2020
  • 퍼징은 예상되는 범위를 벗어난 입력값을 무작위로 생성해 소프트웨어를 동적으로 테스팅 하는 방법으로, 취약점 분석을 자동화하기 위해 주로 쓰인다. 현재 한국인터넷진흥원에서는 국내 표준 암호 알고리즘들에 대한 소스코드를 공개하고 있으며, 많은 암호모듈 개발업체들이 이 소스코드를 이용하여 암호모듈을 개발하고 있다. 만약 이러한 공개 소스코드에 취약점이 존재할 경우, 이를 참고한 암호 라이브러리는 잠재적 취약점을 가지게 되어 향후 막대한 손실을 초래하는 보안 사고로 이어질 수 있다. 이에 본 연구에서는 SEED, HIGHT, ARIA와 같은 블록암호 소스코드의 안전성을 검증하기 위한 적절한 보안 정책을 수립하였고, 차분 퍼징을 이용해 안전성을 검증하였다. 최종적으로 스택 버퍼 오버플로우와 널 포인터 역참조를 포함하는 메모리 버그 항목과 오류 처리 항목에서 총 45개의 취약점을 발견하였으며, 이를 해결할 수 있는 취약점 개선 방안을 제시한다.

바이너리 정적 분석 기반 Out-of-Bounds Read 취약점 유형 탐지 연구 (A Out-of-Bounds Read Vulnerability Detection Method Based on Binary Static Analysis)

  • 유동민;김문회;오희국
    • 정보보호학회논문지
    • /
    • 제31권4호
    • /
    • pp.687-699
    • /
    • 2021
  • 프로그램에서 취약점이 발생하면 그에 대한 정보가 문서화되어 공개된다. 그러나 일부 취약점의 경우 발생한 원인과 그 소스코드를 공개하지 않는다. 이러한 정보가 없는 상황에서 취약점을 찾기 위해서는 바이너리 수준에서 코드를 분석해야 한다. 본 논문에서는 Out-of-bounds Read 취약점 유형을 바이너리 수준에서 찾는 것을 목표로 한다. 바이너리에서 취약점을 탐지하는 기존의 연구는 주로 동적 분석을 이용한 도구로 발표되었다. 동적 분석의 경우 프로그램 실행 정보를 바탕으로 취약점을 정확하게 탐지할 수 있지만, 모든 실행 경로를 탐지하지 못할 가능성이 있다. 모든 프로그램 경로를 분석하기 위해서는 정적 분석을 사용해야 한다. 기존의 정적 도구의 경우 소스코드 기반의 도구들이며, 바이너리에 수준의 정적 도구는 찾기 어렵다. 본 논문에서는 바이너리 정적 분석을 통해 취약점을 탐지하며, 메모리 구조를 모델링하는 방법으로 Heap, Stack, Global 영역의 취약점을 탐지한다. 실험 결과 기존의 탐지도구인 BAP_toolkit과 비교하였을 때 탐지 정확도 및 분석 시간에서 의미 있는 결과를 얻었다.

BERT를 이용한 딥러닝 기반 소스코드 취약점 탐지 방법 연구 (A BERT-Based Deep Learning Approach for Vulnerability Detection)

  • 김문회;오희국
    • 정보보호학회논문지
    • /
    • 제32권6호
    • /
    • pp.1139-1150
    • /
    • 2022
  • SW 산업의 급속한 발전과 함께 새롭게 개발되는 코드와 비례해서 취약한 코드 또한 급증하고 있다. 기존에는 전문가가 수동으로 코드를 분석하여 취약점을 탐지하였지만 최근에는 증가하는 코드에 비해서 분석하는 인력이 부족하다. 이 때문에 기존 Vuldeepecker와 같은 많은 연구에서는 RNN 기반 모델을 이용하여 취약점을 탐지하였다. 그러나 RNN 모델은 코드의 양이 방대할수록 새롭게 입력되는 코드만 학습되고 초기에 입력된 코드는 최종 예측 결과에 영향을 주지 못하는 한계점이 있다. 또한 RNN 기반 방법은 입력에 Word2vec 모델을 사용하여 단어의 의미를 상징하는 embedding을 먼저 학습하여 고정 값으로 RNN 모델에 입력된다. 이는 서로 다른 문맥에서 다른 의미를 표현하지 못하는 한계점이 있다. BERT는 Transformer 모델을 기본 레이어로 사용하여 각 단어가 전체 문맥에서 모든 단어 간의 관계를 계산한다. 또한 MLM과 NST 방법으로 문장 간의 앞뒤 관계를 학습하기 때문에 취약점 탐지와 같은 코드 간 관계를 분석해야 할 필요가 있는 문제에서 적절한 방법이다. 본 논문에서는 BERT 모델과 결합하여 취약점 탐지하는 연구를 수행하였고 실험 결과 취약점 탐지의 정확성이 97.5%로 Vuldeepecker보다 정확성 1.5%. 효율성이 69%를 증가하였다.

서로 다른 버전의 동일 오픈소스 함수 간 효율적인 유사도 분석 기법 (Efficient Similarity Analysis Methods for Same Open Source Functions in Different Versions)

  • 김영철;조은선
    • 정보과학회 논문지
    • /
    • 제44권10호
    • /
    • pp.1019-1025
    • /
    • 2017
  • 바이너리 유사도 분석은 취약점 분석, 악성코드 분석, 표절 탐지 등에서 사용되고 있는데, 분석대상 함수가 알려진 안전한 함수와 동일하다는 것을 증명해주면 바이너리 코드의 악성행위 분석, 취약점 분석 등의 효율성을 높이는 데에 도움이 될 수 있다. 하지만 기존에는 동일 함수의 서로 다른 버전에 대한 유사도 분석에 대해서 별도로 이루어진 연구가 거의 없었다. 본 논문에서는 바이너리로부터 추출 가능한 함수 정보들을 바탕으로 다양한 방법을 통해 함수 단위의 유사도를 분석하고 적은 시간으로 효율적으로 분석할 수 있는 방안을 모색한다. 특히 OpenSSL 라이브러리의 서로 다른 버전을 대상으로 분석을 수행하여 버전이 다른 경우에도 유사한 함수를 탐지하는 것을 확인한다.

행정안전부 소프트웨어 보안 취약점 진단기준과 Java 웹 어플리케이션 대상 오픈소스 보안 결함 검출기 검출대상의 총체적 비교 (Systematic and Comprehensive Comparisons of the MOIS Security Vulnerability Inspection Criteria and Open-Source Security Bug Detectors for Java Web Applications)

  • 이재훈;최한솔;홍신
    • 소프트웨어공학소사이어티 논문지
    • /
    • 제28권1호
    • /
    • pp.13-22
    • /
    • 2019
  • 경쟁적이며 급진적으로 오늘날 소프트웨어 개발 산업 현장에 시큐어 코딩 방법론을 효과적으로 적용하기 위해서는 보안 취약점 결함을 자동으로 검출하는 결함 검출기의 효과적이고 효율적인 적용이 필수적이다. 본 논문은 Java 웹 어플리케이션을 대상으로 하여 우리 행정안전부가 정의한 42개의 보안 취약점 진단 기준과 총 323개의 오픈소스 보안 취약점 결함 검출기의 검출 대상 결함 패턴을 비교하여, 동일한 결함 패턴을 대상으로 하는 것이 무엇인지를 명시화한 결과를 소개한다. 조사 결과를 바탕으로, 본 논문에서는 현재 행정안전부 보안 취약점 진단 기준 방법론의 한계점, 오픈소스 보안 결함 검출 프레임워크 간의 결함검출 범위의 비교, 그리고 시큐어 코딩 가이드라인에 기반 한 개발 보안 방법론의 발전 과제를 논의한다.

바이너리 분석을 통한 UNIX 커널 기반 File System의 TOCTOU Race Condition 탐지 (Detecting TOCTOU Race Condition on UNIX Kernel Based File System through Binary Analysis)

  • 이석원;김문회;오희국
    • 정보보호학회논문지
    • /
    • 제31권4호
    • /
    • pp.701-713
    • /
    • 2021
  • Race Condition은 둘 이상의 프로세스가 하나의 공통 자원에 대해 입력이나 조작이 동시에 일어나 의도치 않은 결과를 가져오는 취약점이다. 해당 취약점은 서비스 거부 또는 권한 상승과 같은 문제를 초래할 수 있다. 소프트웨어에서 취약점이 발생하면 관련된 정보를 문서화하지만 종종 취약점의 발생 원인을 밝히지 않거나 소스코드를 공개하지 않는 경우가 있다. 이런 경우, 취약점을 탐지하기 위해서는 바이너리 레벨에서의 분석이 필요하다. 본 논문은 UNIX 커널기반 File System의 Time-Of-Check Time-Of-Use (TOCTOU) Race Condition 취약점을 바이너리 레벨에서 탐지하는 것을 목표로 한다. 지금까지 해당 취약점에 대해 정적/동적 분석 기법의 다양한 탐지 기법이 연구되었다. 기존의 정적 분석을 이용한 취약점 탐지 도구는 소스코드의 분석을 통해 탐지하며, 바이너리 레벨에서 수행한 연구는 현재 거의 전무하다. 본 논문은 바이너리 정적 분석 도구인 Binary Analysis Platform (BAP)를 통해 Control Flow Graph, Call Graph 기반의 File System의 TOCTOU Race Condition 탐지 방법을 제안한다.