• 제목/요약/키워드: software vulnerability analysis

검색결과 135건 처리시간 0.024초

FunRank: 함수 호출 관계 및 데이터 흐름 분석을 통한 공개된 취약점 식별 (FunRank: Finding 1-Day Vulnerability with Call-Site and Data-Flow Analysis)

  • 이재휴;백지훈;문현곤
    • 정보보호학회논문지
    • /
    • 제33권2호
    • /
    • pp.305-318
    • /
    • 2023
  • 최근 소프트웨어 제품의 복잡성 증가로 오픈소스 소프트웨어를 적극 활용하는 경우가 많아지고 있다. 이는 개발 기간 단축에 도움을 주지만, 동시에 사용된 오픈소스 소프트웨어간의 서로 다른 개발 생명 주기(SDLC)가 전체 제품의 버전 최신화를 어렵게 하기도 한다. 이로 인해 사용된 오픈소스 소프트웨어의 알려진 취약점에 대한 패치가 공개되었음에도 불구하고, 패치를 신속히 적용하지 못해 공개 취약점의 위협에 노출되는 경우가 많다. 특정 장치가 이런 위협에 노출되어있는지를 신속히 판별하기 위한 공개 취약점 식별 기법에 관한 여러 연구 들이수행되어 왔는데, 기존 기법들은 취약점이 발생하는 함수의 크기가 작거나 인라인되는 경우 취약점 발견에 어려움을 겪는 경우가 많다. 본 연구는 이런 문제를 해결하기 위해 함수 호출 관계 및 데이터 흐름 분석을 통한 바이너리 코드 유사성 비교 도구인 FunRank를 개발하였다. 개발된 도구는 기존 연구들과 달리, 컴파일러에 의해 인라인 될 수 있는 크기가 작은 함수의 코드를 식별해야만 발견할 수 있는 공개취약점 또한 찾아낼 수 있도록 설계되어 있다. 본 연구에서 인위적으로 만들어진 벤치마크 및 실제 펌웨어로부터 추출된 바이너리를 이용해 실험한 결과, FunRank가 바이너리 코드 내에서 인라인 된 함수를 잘 찾아내고, 이를 통해 공개된 취약점의 존재성을 빠르게 확인하는 데에 도움을 줌을 보일 수 있었다.

시큐어 코딩 중심으로 본 원자력 관련 소프트웨어 (Nuclear-related Software analysis based on secure coding)

  • 정다혜;최진영;이송희
    • 정보보호학회논문지
    • /
    • 제23권2호
    • /
    • pp.243-250
    • /
    • 2013
  • 스마트 시대로 진입하면서, 다양한 임베디드 소프트웨어, 특히 SCADA 소프트웨어와 자동차 소프트웨어 등은 신뢰도와 고 안전성뿐만이 아니라 높은 보안성도 중요하게 되었다. 따라서 해커가 공격하는 데 사용하는 소프트웨어 취약점(vulnerability)의 근본 원인인 소프트웨어 보안 약점(weakness)을 개발 단계에서 제거하는 것이 매우 중요하게 되었다. 기능성 중심의 MISRA-C와 같은 코딩 룰은 보안성 중심의 시큐어 코딩규칙으로 확대가 될 필요가 있다. 본 논문에서는 고 안전성 소프트웨어의 데모용으로 개발 중인 원자력 관련 소프트웨어를 CERT-C 시큐어 코딩 규칙으로 조사하여 얼마나 많은 보안약점을 내재하고 있는 지를 분석하여, 이러한 보안약점을 소프트웨어 개발 시에 제거하는 방법에 대하여 제안한다.

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

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

소프트웨어 개발 보안성 강화를 위한 주요 보안약점 진단규칙 연구 (Research on Major Weakness Rules for Secure Software Development)

  • 방지호;하란
    • 한국통신학회논문지
    • /
    • 제38C권10호
    • /
    • pp.831-840
    • /
    • 2013
  • 최근 소프트웨어 보안성 강화를 위해 소프트웨어 개발단계에서 보안취약점의 원인인 보안약점을 제거하기 위한 정적분석 기반의 도구를 많이 활용하고 있다. 따라서, 보안약점 진단도구는 다양한 보안약점을 진단할 수 있는 진단규칙을 보유하는 것이 필요하다. 2011년부터 2012년까지 국내 주요 정보화사업으로 개발된 소프트웨어에서 발견된 상위 5개의 보안약점은 연도별 상위 10개 보안약점의 76%에 해당된다. 소프트웨어 개발시 상위 5개의 보안약점만 적절히 조치하여도 소프트웨어 보안성이 많이 개선될 수 있다. 본 논문은 많이 활용되고 있는 공개용 진단도구인 PMD를 대상으로 주요 보안약점에 대한 진단규칙과 이에 대한 성능시험 결과를 제시한다.

Application Consideration of Machine Learning Techniques in Satellite Systems

  • Jin-keun Hong
    • International journal of advanced smart convergence
    • /
    • 제13권2호
    • /
    • pp.48-60
    • /
    • 2024
  • With the exponential growth of satellite data utilization, machine learning has become pivotal in enhancing innovation and cybersecurity in satellite systems. This paper investigates the role of machine learning techniques in identifying and mitigating vulnerabilities and code smells within satellite software. We explore satellite system architecture and survey applications like vulnerability analysis, source code refactoring, and security flaw detection, emphasizing feature extraction methodologies such as Abstract Syntax Trees (AST) and Control Flow Graphs (CFG). We present practical examples of feature extraction and training models using machine learning techniques like Random Forests, Support Vector Machines, and Gradient Boosting. Additionally, we review open-access satellite datasets and address prevalent code smells through systematic refactoring solutions. By integrating continuous code review and refactoring into satellite software development, this research aims to improve maintainability, scalability, and cybersecurity, providing novel insights for the advancement of satellite software development and security. The value of this paper lies in its focus on addressing the identification of vulnerabilities and resolution of code smells in satellite software. In terms of the authors' contributions, we detail methods for applying machine learning to identify potential vulnerabilities and code smells in satellite software. Furthermore, the study presents techniques for feature extraction and model training, utilizing Abstract Syntax Trees (AST) and Control Flow Graphs (CFG) to extract relevant features for machine learning training. Regarding the results, we discuss the analysis of vulnerabilities, the identification of code smells, maintenance, and security enhancement through practical examples. This underscores the significant improvement in the maintainability and scalability of satellite software through continuous code review and refactoring.

Fault injection and failure analysis on Xilinx 16 nm FinFET Ultrascale+ MPSoC

  • Yang, Weitao;Li, Yonghong;He, Chaohui
    • Nuclear Engineering and Technology
    • /
    • 제54권6호
    • /
    • pp.2031-2036
    • /
    • 2022
  • Energetic particle strikes the device and induces data corruption in the configuration memory (CRAM), causing errors and even malfunctions in a system on chip (SoC). Software-based fault injection is a convenient way to assess device performance. In this paper, dynamic partial reconfiguration (DPR) is adopted to make fault injection on a Xilinx 16 nm FinFET Ultrascale+ MPSoC. And the reconfiguration module implements the Sobel and Gaussian image filtering, respectively. Fault injections are executed on the static and reconfiguration modules' bitstreams, respectively. Another contribution is that the failure modes and effects analysis (FMEA) method is applied to evaluate the system reliability, according to the obtained injection results. This paper proposes a software-based solution to estimate programmable device vulnerability.

융복합 전자정부 서비스를 위한 전자정부 표준프레임워크 기반 시큐어코딩 점검 시스템 설계 및 개발 (A Design and Development of Secure-Coding Check System Based on E-Government Standard Framework for Convergence E-Government Service)

  • 김형주;강정호;김경훈;이재승;전문석
    • 디지털융복합연구
    • /
    • 제13권3호
    • /
    • pp.201-208
    • /
    • 2015
  • 최근 IT 제품의 활용 분야가 다양화 되면서 소프트웨어의 활용 분야가 컴퓨터, 스마트폰, 의료기기 등 다양한 환경에서 이용되고 있다. 이처럼 소프트웨어의 활용분야가 다양해짐에 따라 소프트웨어 보안 취약점을 악용하는 공격사례가 증가하고 있으며 이에 따라 다양한 시큐어코딩 프로그램이 출시되었지만 이력관리, 업데이트, API 모듈 등의 취약점이 존재하고 있다. 본 논문에서는 안전한 소프트웨어 개발을 위해 송신모듈에 형상관리를 연동하는 시스템과, 콘텐츠 단위로 소스코드의 취약점을 점검할 수 있는 CMS 연동 시스템을 구현하고, 프로그램의 기능을 세분화하여 국내외 시큐어코딩 관련 표준을 분석 및 적용함으로서 효율적인 시큐어코딩 시스템 방법을 구현하였다.

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

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

바이너리 코드 취약점 탐지를 위한 딥러닝 기반 동적 오염 탐지 기술 (Deep Learning based Dynamic Taint Detection Technique for Binary Code Vulnerability Detection)

  • 고광만
    • 한국정보전자통신기술학회논문지
    • /
    • 제16권3호
    • /
    • pp.161-166
    • /
    • 2023
  • 최근 바이너리 코드에 대한 신종·변종 해킹이 증가되고 있으며 소스 프로그램에서 악성코드를 탐지하고 공격에 대한 방어 기술의 한계점이 자주 노출되는 상황이다. 바이너리 코드에 대해 머신러닝, 딥러닝 기술을 활용하여 고도화된 소프트웨어 보안 취약점 탐지 기술과 공격에 대한 방어와 대처 능력이 필요하다. 본 논문에서는 바이너리 코드의 실행 경로를 추적(execution trace)하여 동적 오염 정보를 입력한 후 오염 정보를 따른 특징을 기반으로 멀웨어를 그룹핑하는 멀웨어 클러스터링 방법을 제안한다. 멀웨어 취약점 탐지는 3-계층으로 구성한 Few-shot 학습 모델에 적용하여 각 계층의 CPU, GPU에 대해 F1-score를 산출하였다. 학습 과정에서 97~98%의 성능과 테스트 과정에서 80~81% 정도의 탐지 성능을 얻었다.

안드로이드 기반 모바일 메신저 취약점 분석 및 시큐어 코딩 적용방안 (Android-based mobile messenger application vulnerability analysis and secure coding method)

  • 백찬호;선종민;류기동;문병종;김태완;김우제
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2014년도 제49차 동계학술대회논문집 22권1호
    • /
    • pp.83-87
    • /
    • 2014
  • 본 논문에서는 안드로이드 스마트폰 환경에서 높은 점유율을 가진 카카오톡 모바일 메신저 앱에 대하여 행정안전부가 고시한 Android-JAVA 시큐어 코딩가이드의 입력 데이터 검증 및 표현, API악용, 보안특성, 시간 및 상태, 에러처리, 코드 품질, 캡슐화 등 18가지 보안 취약점을 분석하고, 해당 취약점에 대한 시큐어 코딩 기법을 적용한다. 먼저 현재 상용화되고 있는 카카오톡 모바일 메신저 코드를 역공학(리버스엔지니어링)방법을 이용하여 코드단에서 소스를 분석한다. 실제 코드에서 시큐어 코딩이 안드로이드 스마트폰 환경에서 행정안전부가 고시한 Android-JAVA 시큐어 코딩가이드를 기준으로 취약한 부분을 찾고, 적용이 안 되어 있는 부분에 안드로이드 환경에 맞는 시큐어 코딩 기법을 적용한다.

  • PDF