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

검색결과 343건 처리시간 0.022초

Design and Implementation of Software Vulnerability Analysis Algorithm through Static Data Access Analysis

  • Lim, Hyun-il
    • 한국컴퓨터정보학회논문지
    • /
    • 제20권8호
    • /
    • pp.69-75
    • /
    • 2015
  • Nowadays, software plays various roles in applications in wide areas. However, the security problems caused by software vulnerabilities increase. So, it is necessary to improve software security and safety in software execution. In this paper, we propose an approach to improve the safety of software execution by managing information used in software through static data access analysis. The approach can detect the exposures of secure data in software execution by analyzing information property and flows through static data access analysis. In this paper, we implemented and experimented the proposed approach with a base language, and verify that the proposed approach can effectively detect the exposures of secure information. The proposed approach can be applied in several areas for improving software safety by analysing vulnerabilities from information flows in software execution.

WALA와 Boa를 활용하여 대규모 소프트웨어 저장소를 정적으로 분석하는 도구 개발 (Static Analysis of Large Scale Software Repositories Using WALA and Boa)

  • 박경희;류석영
    • 정보과학회 논문지
    • /
    • 제44권10호
    • /
    • pp.1081-1086
    • /
    • 2017
  • 대규모 공개 소스 소프트웨어 저장소를 대상으로 프로그램 분석을 수행하면, 각 저장소의 소프트웨어의 변화 과정을 살펴볼 수 있고, 방대한 양의 프로그램을 분석함으로써 신뢰도가 높은 분석 결과를 얻을 수 있다는 점에서 의의가 있다. 본 논문에서는 대규모 소프트웨어 저장소를 대상으로 확장 가능하게 정적 프로그램 분석을 수행할 수 있는 프레임워크인 WALABOA를 소개한다. 나아가, 정적 분석 결과인 정적 함수 호출 그래프와 동적 분석 결과인 동적 함수 호출 그래프를 비교하는 모듈을 WALABOA에 추가하여, 자바스크립트 분석기 WALA에서 제공하는 분석 기법 중 하나인 필드 기반 분석(field-based analysis) 결과를 평가하는 데 활용하였다.

사회연결망 분석과 자료포락분석 기법을 이용한 소프트웨어 함수 우선순위 분석 연구 (Priority Analysis for Software Functions Using Social Network Analysis and DEA(Data Envelopment Analysis))

  • 허상무;김우제
    • 한국IT서비스학회지
    • /
    • 제17권3호
    • /
    • pp.171-189
    • /
    • 2018
  • To remove software defects and improve performance of software, many developers perform code inspections and use static analysis tools. A code inspection is an activity that is performed manually to detect software defects in the developed source. However, there is no clear criterion which source codes are inspected. A static analysis tool can automatically detect software defects by analyzing the source codes without running the source codes. However, it has disadvantage that analyzes only the codes in the functions without analyzing the relations among source functions. The functions in the source codes are interconnected and formed a social network. Functions that occupy critical locations in a network can be important enough to affect the overall quality. Whereas, a static analysis tool merely suggests which functions were called several times. In this study, the core functions will be elicited by using social network analysis and DEA (Data Envelopment Analysis) for CUBRID open database sources. In addition, we will suggest clear criteria for selecting the target sources for code inspection and will suggest ways to find core functions to minimize defects and improve performance.

ISO 26262의 소프트웨어 설계원리 적용에 대한 검증 도구의 비교 연구 (Study on Comparison of Industrial Static Analysis Tools to Verify the Design Principles for Software Unit Design and Implementation of ISO 26262)

  • 허제호;이홍석;고병각
    • 산업공학
    • /
    • 제25권4호
    • /
    • pp.416-421
    • /
    • 2012
  • One of the activities to improve software quality in ISO 26262 is to apply the design principles for software unit design and implementation mentioned in ISO 26262-6, including the evaluation activity. Before evaluation activity, the tool is compared and selected for evaluation. Because the results of the tool a company selected might have an effect on product quality. In this paper, we suggest the method to compare industrial static analysis tools with some of "MISRA C : 2004 Exemplar Suite" and all lessons learned from comparing tools are described. The result on comparison shows that we just couldn't rely on a result of Static Analysis Tool and need to have another appropriate processes and guidelines to evaluate a software.

IEC 62279 규격의 소프트웨어 정적분석에 관한 연구 (A Study on Software Static Analysis Method on IEC 62279)

  • 김철환;이창룡;이재호;김재식;이기서
    • 한국전자통신학회논문지
    • /
    • 제10권4호
    • /
    • pp.513-519
    • /
    • 2015
  • 정적분석방식은 소프트웨어 코드분석방식중의 하나이다. 국제철도신호시스템 소프트웨어 관련규격 IEC 62279에서는 소프트웨어 안전성 레벨에 따라 총 9가지 분석방법을 조합하여 사용할 것을 권고하고 있다. 본 논문에서는 도시철도 차 지상간 열차운행 정보 통신장치 연구개발에서 소프트웨어 품질을 향상하기 위하여 세 가지 정적분석방식에 대하여 연구하고, LDRA 툴을 이용하여 사례 연구를 진행하였다. 따라서 철도신호시스템 소프트웨어개발주기에 필요한 시간을 단축하여 안전성 관련 소프트웨어의 효율적인 개발에 도움을 주고자 한다.

소스 코드 난독화 기법에 의한 Clang 정적 분석 도구의 성능 영향 분석 (Analysis of Detection Ability Impact of Clang Static Analysis Tool by Source Code Obfuscation Technique)

  • 진홍주;박문찬;이동훈
    • 정보보호학회논문지
    • /
    • 제28권3호
    • /
    • pp.605-615
    • /
    • 2018
  • 사물 인터넷 시장 규모의 급격한 성장에 따라 임베디드 시스템에서 가장 많이 쓰이는 언어인 C/C++ 언어의 사용도 증가하고 있다. C/C++ 언어의 코드 품질을 향상시키고 개발 비용을 절감시키기 위해 소프트웨어 개발 전반부에서 수행 가능한 소프트웨어 검증기법인 정적 분석을 사용하는 것이 좋다. 많은 프로그램들이 정적 분석을 사용하여 소프트웨어의 안전성을 검증하고 있으며 많은 정적 분석 도구들이 사용 및 연구되고 있다. 본 논문에서는 Clang 정적 분석도구를 사용하여 검증된 시험 코드에 대한 보안 약점 검출 성능을 확인한다. 또한 소스 코드 난독화 기법인 구획 난독화, 데이터 난독화, 제어 흐름 난독화 기법이 각각 적용된 시험 코드에 대한 정적 분석 결과와 원본 시험 코드에 대한 정적 분석 결과를 비교하여 소스 코드 난독화 기법에 따른 Clang 정적 분석 도구의 성능 영향을 분석한다.

안전한 소프트웨어 개발을 위한 정적분석 도구 시험코드 개발 (Validation Test Codes Development of Static Analysis Tool for Secure Software)

  • 방지호;하란
    • 한국통신학회논문지
    • /
    • 제38C권5호
    • /
    • pp.420-427
    • /
    • 2013
  • 최근 안전한 소프트웨어 개발을 위해 소프트웨어의 소스코드를 분석하여 보안취약점의 원인이 되는 소프트웨어 보안약점을 식별해 주는 정적분석 도구가 많이 활용되고 있다. 최적의 정적분석 도구를 선택하기 위해서는 도구가 보유한 보안약점 규칙 및 분석기능이 중요한 요소가 된다. 따라서, 본 논문은 정적분석 도구가 보유한 규칙 및 분석 성능을 평가하기 위해 개발한 시험코드를 제시하고자 한다. 시험코드는 SQL 삽입 등 43개 보안약점이 존재하는 소스코드로 정적분석 도구가 보유한 보안약점 규칙과 이를 기반으로 한 도구의 분석기능의 적절성을 평가하기 위해 사용될 수 있다.

무인비행체 비행제어 Open Source 소프트웨어에 대한 정적분석 및 개선방안 (Static Analysis and Improvement Opportunities for Open Source of UAV Flight Control Software)

  • 장정훈;강유선;이지현
    • 한국항공우주학회지
    • /
    • 제49권6호
    • /
    • pp.473-480
    • /
    • 2021
  • 소형 무인비행체 드론의 비행제어기(Flight Controller) 소프트웨어로 널리 사용되고 있는 오픈소스(Open Source)에 대한 정적분석(Static Analysis)을 통해 소프트웨어 품질의 문제점을 분석하고 개선 방안을 제시한다. 소프트웨어 품질 기준으로는 국제적으로 널리 적용되고 있는 MISRA 코딩 규칙을 선정하였으며, 정적분석 도구는 국제 도구인증(Tool Certification)을 받아 항공분야 뿐만 아니라 안전성(Safety)이 요구되는 자동차, 철도, 원자력, 의료 등 모든 산업에서 활용되고 있는 LDRA Tool을 사용하였다. 오픈소스 모듈의 구조, 사용 데이터 분석, 코딩 규칙 준수, 품질 지표(복잡도 및 시험성) 등 소프트웨어의 품질 전반에서 안전성을 위협하는 문제점들을 발견하였으며, 이에 대한 개선 방안을 제시하였다.

무기체계 소프트웨어의 자료경합을 탐지하기 위한 프레임워크 (A Framework for Detecting Data Races in Weapon Software)

  • 오진우;최으뜸;전용기
    • 대한임베디드공학회논문지
    • /
    • 제13권6호
    • /
    • pp.305-312
    • /
    • 2018
  • Software has been used to develop many functions of the modern weapon systems which has a high mission criticality. Weapon system software must consider multi-threaded processing to satisfy growing performance requirement. However, developing multi-threaded programs are difficult because of concurrency faults, such as unintended data races. Especially, it is important to prepare analysis for debugging the data races, because the weapon system software may cause personal injury. In this paper, we present an efficient framework of analysis, called ConDeWS, which is designed to determine the scope of dynamic analysis through using the result of static analysis and fault analysis. As a result of applying the implemented framework to the target software, we have detected unintended data races that were not detected in the static analysis.

소프트웨어 감시 기법을 활용한 정적 실행시간 분석의 신뢰성 향상 (Improvement of Reliability of Static Execution Time Analysis Using Software Monitoring Technique)

  • 김윤관;김태완;장천현
    • 한국컴퓨터정보학회논문지
    • /
    • 제15권4호
    • /
    • pp.37-45
    • /
    • 2010
  • 시간적 정확성을 필요로 하는 시스템은 신뢰성을 위하여 실행시간에 관한 정확한 설계와 검증이 필요하다. 따라서 실행시간의 분석을 위한 개발 지원 도구가 필요하고 이를 위한 많은 연구가 진행되고 있다. 이러한 개발 지원 도구의 분석 방법은 정적 분석 방법과 측정 기반 분석 방법의 두 가지로 구분된다. 먼저 정적 분석은 짧은 시간에 분석이 가능하지만, 다양한 하드웨어의 존재로 인해 I/O 정보 예측이 어려워 분석 결과의 신뢰성이 떨어진다. 두 번째로 측정 기반 분석은 실제 결과에 근접한 분석이 가능하지만, 사용하기 어렵고 분석에 걸리는 시간이 길다. 이러한 분석 방법의 문제를 해결하기 위하여 본 논문에서는 정적 분석 과정에 소프트웨어 감시 방안을 적용한 방법을 제안한다. 제안하는 분석 방안은 정적 분석을 통해 감시가 필요한 대상을 자동으로 결정하고 감시 결과를 통해 과대 예측을 줄일 수 있다. 따라서 감시에 대한 어려움과 시간의 부하를 줄이고 정적 분석의 가장 큰 문제점인 신뢰성을 향상시킬 수 있다.