• 제목/요약/키워드: 소스 코드 분석

검색결과 336건 처리시간 0.029초

소스 코드 난독화 기법에 의한 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 정적 분석 도구의 성능 영향을 분석한다.

다양한 알고리즘 개발 툴 기반의 소스 코드를 적용한 생체신호 분석 시스템 개발 (Development of bio-signal analysis system applying source code based on various algorithm development tools)

  • 주문일;김원일;김희철
    • 한국정보통신학회:학술대회논문집
    • /
    • 한국정보통신학회 2018년도 추계학술대회
    • /
    • pp.238-240
    • /
    • 2018
  • 최근에는 다양한 생체신호 분석 툴을 활용하여 건강관리서비스가 개발 및 연구되고 있다. 대부분의 생체신호 분석 연구는 Matlab 및 R Programming을 활용한다. 그러나, Matlab과 R Programming으로 개발한 알고리즘을 시스템에 적용하기 위해서는 소스 코드의 변환 작업이 필요하다. 본 논문은 소스 코드의 변환 작업을 생략할 수 있는 스마트 인터페이스를 제공하고자 한다.

  • PDF

진화알고리즘을 이용한 악성코드 자동생성 시스템 설계 (Automatic malware generation system design using EA)

  • 권세훈;권재영;이승훈;이현우;이종락;원일용
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2017년도 추계학술발표대회
    • /
    • pp.193-196
    • /
    • 2017
  • 본 연구는 기존의 변종 악성코드와는 달리 진화알고리즘을 기반으로 한 악성코드 자동 생성 프레임워크에 대한 것이다. 우리가 제안하는 시스템은 소스가 알려지지 않는 바이너리 상태의 악성코드를 역공학적 기법을 이용하여 소스 상태로 복원하고 복원된 소스를 이용하여 다양한 변종 악성코드를 생성하는 것이다. 진화 연산을 적용하기 위해 평가함수의 설계가 중요한데, 우리는 행동 기반 분석 기반의 평가 함수를 포함하는 프레임워크를 제안하였다.

악성코드의 효율적인 분석을 위한 안전한 오픈소스 함수에 대한 시그니처 기반 식별 도구 (A Tool for Signature-Based Identification of Safe Open-Source Functions Toward Efficient Malware Analysis)

  • 이석수;양종환;정우식;김영철;조은선
    • 정보보호학회논문지
    • /
    • 제27권4호
    • /
    • pp.721-729
    • /
    • 2017
  • 악성코드에 대한 빠른 대응을 위해서는 악성코드에 대한 효율적인 분석이 필요하다. 그 중 하나로, 오픈 소스 함수들과 같이 안전한 것으로 확인된 부분을 분석 대상에서 제외하여 방대한 분석 대상을 줄이는 방법이 도움이 될 수 있다. 본 논문은 여러 오픈소스의 동적 링크 라이브러리 파일을 윈도우 환경에서 생성하여 오픈소스의 함수 정보들을 버전별, 컴파일러별로 시그니처 정보를 추출하고 비교하여 변경이 의심스러운 함수를 찾을 수 있는 자동화 도구를 제시한다. 또한 해당 도구는 비교에 사용된 정보들을 DB에 저장, 추후에 사용할 수 있어 분석 시간 오버헤드를 줄일 수 있다.

데이터 구조를 고려한 소스코드 표절 검사 기법 (A Plagiarism Detection Technique for Source Codes Considering Data Structures)

  • 이기화;김연어;우균
    • 정보처리학회논문지:컴퓨터 및 통신 시스템
    • /
    • 제3권6호
    • /
    • pp.189-196
    • /
    • 2014
  • 표절은 불법이고 피해야 하지만 여전히 빈번하게 발생하고 있다. 특히, 소스코드 표절은 그 특성상 복사가 용이해 다른 저작물보다 더 빈번히 발생한다. 코드 표절을 방지하기 위한 다양한 연구가 있었다. 하지만 앞서 연구된 소스코드 표절 검사 기법을 살펴보면 프로그램이 알고리즘과 데이터 구조로 구성됨에도 불구하고 데이터 구조는 전혀 고려하지 않고 있다. 이 논문에서는 데이터 구조를 고려한 소스코드 표절 검사 기법을 제안한다. 구체적으로 말해서 두 소스코드의 데이터 구조를 트리 집합으로 나타내고, 헝가리안 메소드를 사용해 비교한다. 제안하는 기법의 효용성을 보이기 위해 객체지향 교과목에서 과제 답안으로 제출한 126개의 소스코드를 대상으로 실험하였다. 실험 결과 데이터 구조와 알고리즘을 모두 고려했을 때, 알고리즘만 고려한 경우보다 정확률과 F-measure가 각각 22.6%, 19.3% 향상됨을 보였다.

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 Model 연구 (A Study on Deep Learning model for classifying programs by functionalities)

  • 윤주성;이은헌;안진현;김현철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2016년도 추계학술발표대회
    • /
    • pp.615-616
    • /
    • 2016
  • 최근 4차 산업으로 패러다임이 변화함에 따라 SW산업이 더욱 중요하게 되었다. 이에 따라 전 세계적으로 코딩 교육에 대한 수요도 증가하게 되었고 기업에서도 SW를 잘 만들기 위한 코드 관리 중요성도 증가하게 되었다. 많은 양의 프로그래밍 소스코드를 사람이 일일이 채점하고 관리하는 것은 사실상 불가능하기 때문에 이러한 문제를 해결할 수 있는 코드 평가 시스템이 요구되고 있다. 하지만 어떤 코드가 좋은 코드인지 코드를 어떻게 평가해야하는지에 대한 명확한 기준은 없으며 이에 대한 연구도 부족한 상황이다. 최근에 주목 받고 있는 Deep Learning 기술은 이미지 처리, 자연어 처리등 기존의 Machine Learning 알고리즘이 냈던 성과보다 훨씬 뛰어난 성과를 내고 있다. 하지만 Programming language 영역에서는 아직 깊이 연구된 바가 없다. 따라서 본 연구에서는 Deep Learning 기술로 알려진 Convolutional Neural Network의 변형된 형태엔 Tree-based Convolutional Neural Network를 사용하여 프로그래밍 소스코드를 분석, 분류하는 알고리즘 및 코드의 Representation Learning에 대한 연구를 진행함으로써 이러한 문제를 해결하고자 한다.

기존 자바 파서 확장 기반의 코드 정적 분석기 구현 (Implementing A Code Static Anaylsis based on the Java Parser)

  • 박지훈;박보경;이근상;김영철
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2017년도 춘계학술발표대회
    • /
    • pp.641-644
    • /
    • 2017
  • 현재 많은 테스팅 기법으로도 생산되는 결과물들의 잠재적 오류 발생을 예측하기 힘들다. 기존 오픈 소스 정적 분석 도구들(Source Navigator)은 불충분한 정보를 제공하여 원하는 내부 정보를 축출하기 어렵다. 이를 해결하기 위해, 기존 오픈 소스의 자바 파서의 개선을 통해, 코드 내부 품질 측정을 고려하고자 한다. 즉 기존 자바 파서 개선 기반의 "추상구문트리로 변환된 코드"에서 "직접 코드 정보 추출" 방안의 구현이다. 이를 통해, 기존의 SNDB보다 더 많은 코드 정보 추출로 코드 내부 품질 측정이 더 수월할 것을 기대한다.

LLVM 기반의 임베디드 시스템 성능 분석기의 연구 (A Study of LLVM-based Embedded System Performance Analyzer)

  • 조두산
    • 문화기술의 융합
    • /
    • 제8권1호
    • /
    • pp.577-582
    • /
    • 2022
  • 새로운 임베디드 시스템을 개발할 때 응용 프로그램과 에뮬레이터, 그리고 컴파일러를 동시에 개발한다. 모든 시스템 구성요소의 성능을 최적으로 개발하기 위해서는 응용 프로그램 개발시 부분 최적화를 동시에 진행하여야 한다. 이를 위하여 소스 레벨 성능 분석기를 개발하면 응용 프로그램 소스 코드를 모듈별로 성능 평가하여 최적화하는 것이 가능하다. 일반적으로 응용 프로그램의 성능은 반복문에서 결정된다. 소스코드를 중간표현 (Intermediate Representation) 코드 생성기를 이용하여 변환하고, 변환된 중간 표현 단계의 명령어들로 실행시간을 분석 할 수 있다. 실행시간 성능 평가 결과를 바탕으로 응용 프로그램 코드를 개선하면 최종적으로 개발된 통합 플랫폼에서 더 나은 결과물을 얻을 수 있다. 본 연구에서는 새로운 임베디드 시스템의 개발중에 응용 프로그램을 동시 개발하는 과정에서 사용 가능한 소스 레벨 성능 분석기에 대하여 기술하고 있다. 성능 분석기를 사용하면 최종 임베디드 시스템의 성능을 보다 빠르게 최적화하는 것이 가능하게 된다.

오픈소스 소프트웨어 취약점 분석 기술을 통한 취약점 침해여부 판정 모듈 설계 (A Design of Exploit Infringement Decision Module through Open-Source Software Vulnerability Analysis)

  • 박상현;정하규;전문석
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2016년도 추계학술발표대회
    • /
    • pp.286-287
    • /
    • 2016
  • 오픈소스 소프트웨어는 소스코드를 공개해 누구나 제약 없이 소스코드를 보고 사용할 수 있는 오픈소스 라이선스를 만족하는 소프트웨어다. 오픈소스 소프트웨어의 장점은 라이선스 비용절감, 특정 소프트웨어 및 하드웨어의 종속성 탈피, 유연한 연동성, 수 많은 개발자의 참여로 인한 빠른 발전 속도와 신뢰성에 있다. 단점으로는 체계적이지 못하고, 유지보수가 어렵다는 문제가 있다. 본 논문에서 제안한 취약점 침해여부 모델을 이용하게 된다면 오픈소스의 단점을 보완할 수 있다.