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

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

예약어 시퀀스 탐색을 통한 소스코드 표절검사 (Source Codes Plagiarism Detection By Using Reserved Word Sequence Matching)

  • 이영주;김승;강석호
    • 한국경영과학회:학술대회논문집
    • /
    • 대한산업공학회/한국경영과학회 2006년도 춘계공동학술대회 논문집
    • /
    • pp.1198-1206
    • /
    • 2006
  • 프로그램 소스코드 표절 검사에 대한 기존 방법은 크게 지문(finger-print)법과 구조기반 검사법으로 나뉘며, 주로 단어의 유사성이나 발생빈도를 사용하거나 소스코드 구조상의 특징으로 두 소스간의 유사성을 비교한다. 본 연구에서는 프로그래밍 언어의 예약어 시퀀스를 사용하여 소스코드들 간의 유사성을 비교하고, 이 결과를 FCA(Formal Concept Analysis)를 통해 해석하고 시각화 하는 방법을 제시한다. 일반적인 VSM(Vector Space Model)과 같은 단일 단어 분석으로는 단어의 인접성을 구분할 수 없으므로 단어의 시퀀스 분석이 가능하도록 알고리즘을 구성하였으며 이러한 방식은 지문법의 단점인 소스코드의 부분적인 표절 탐지의 난점을 해결할 수 있고 함수의 호출 순서나 수행 순서에 상관없이 표절을 탐지할 수 있는 장점을 가진다. 마지막으로 유사도 측정결과는 FCA를 이용하여 격자(lattice)로 시각화됨으로써 이용자의 이해도를 높일 수 있다.

  • PDF

악성코드 Argument Detection 방법 연구 (A Study of Malware Argument Detection)

  • 황신운;윤종희
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2021년도 춘계학술발표대회
    • /
    • pp.181-182
    • /
    • 2021
  • 악성코드 분석방법의 발전에 따라 악성코드의 분석우회기법도 나날이 발전하여 대량의 악성코드분석이 다양한 이유로 수행되지 않고 있다. 대부분의 악성코드는 소스코드가 없는 바이너리로 동적 분석이 동작하지 않는 원인을 파악하기 어렵다. 동적 분석이 실행되지 않는 악성코드들은 입력 값에 따라 악성코드가 동작하거나, 특정 시간대를 일치하는 등 다양한 트리거가 존재한다. 본 논문에서는 트리거가 필요한 악성코드에 대해 바이너리 리프팅(lifting) 기술을 활용한 새로운 동적 분석방법을 제안한다. 바이너리 리프팅 기술은 소스코드가 없는 바이너리를 LLVM IR 로 변환시키는 기술로서 이를 활용해 입력 값 유무에 따른 악성코드를 판별하고자 한다. 전달인자를 사용하는 코드와 사용하지 않는 코드간 LLVM IR 을 비교분석하여 전달인자에 따른 악성코드 동작 여부를 판별해 대량의 악성코드 동적 분석시스템의 분석률을 높이는 방안을 제안하고자 한다.

회귀 분석을 사용한 소스 코드 가독성 메트릭 분석 (Metric Analysis of Source Code Readability using Regression Analysis)

  • 최상철;김순태;이정휴;유희경
    • 한국인터넷방송통신학회논문지
    • /
    • 제17권6호
    • /
    • pp.145-150
    • /
    • 2017
  • 소프트웨어 유지보수는 소프트웨어 생명주기에서 전체 비용의 많은 부분을 차지하고 있다. 소프트웨어를 유지보수하기 위해서는 코드를 읽는 것이 필수적이고, 이는 유지보수 활동에서 가장 많은 시간이 소요되는 활동이다. 코드의 가독성은 사람이 소스코드를 이해하는데 드는 어려움의 정도를 측정하는 메트릭이다. 코드의 가독성이 좋을수록 사람이 소스코드를 이해하기 쉬워진다. 본 논문에서는 소스코드의 가독성을 이분법적으로 판단하는 기존의 연구보다 향상된 기법을 사용하여, 개발 중인 소스코드의 가독성 정도를 정량적으로 측정할 수 있는 새로운 소스코드 가독성 메트릭을 제안한다. 이를 평가하기 위해, 우리는 설문조사를 수행하고 가독성을 가장 잘 설명하는 척도를 찾을 수 있도록 회귀 분석 기법을 사용해 그 결과를 분석할 것이다.

실행코드 비교 감정에서 주변장치 분석의 유효성 (Study on the comparison result of Machine code Program)

  • 김도현;이규대
    • 한국소프트웨어감정평가학회 논문지
    • /
    • 제16권1호
    • /
    • pp.37-44
    • /
    • 2020
  • 소프트웨어의 유사성 비교는 소스코드를 대상으로 한다. 소스코드는 프로그램 언어로 표현된 개발자의 지적 저작권으로 보호된다. 문서형식으로 작성된 프로그램 소스코드는 개발자의 전문지식과 아이디어가 포함된 내용을 포함하고 있다. 소프트웨어 저작권의 불법도용을 판단하기 위한 감정 작업은 원본과 비교본의 소스 코드를 대상으로 파일의 구성과 내용을 검증하는 방법으로 수행된다. 그러나 실제적으로 피고소인 측의 불성실한 목적물 제공으로 소스코드의 일대일 비교감정이 어려운 상황이 증가하고 있다. 이 경우 실행코드에 대한 비교감정이 수행되어야 하며, 역어셈블 방법, 역공학기법, 기능실행의 시퀀스 분석 등의 간접적인 방법이 적용된다. 본 논문에서는 소스코드제공이 어려운 상황에서 시스템과 실행코드 파일을 대상하는 하는 감정 사례를 통해 간접적인 비교결과의 유효성에 대해 분석하고, 감정결과에 활용하는 방안을 제시한다.

오픈소스기반 악성코드 솔루션 분석 (The Analysis for Malicious Code Solution Based on an Open Source)

  • 한동진;정소정;김동건;최일영;최상용;이종락
    • 한국컴퓨터정보학회:학술대회논문집
    • /
    • 한국컴퓨터정보학회 2020년도 제62차 하계학술대회논문집 28권2호
    • /
    • pp.85-88
    • /
    • 2020
  • 최근 악성코드의 발전은 사이버 위협의 전방면에 걸쳐 영향을 주고 있다. DDoS, APT를 포함한 스팸 발송 등과 같은 사이버 공격은 악성코드를 기반으로 한다. 또한 이에 대응하기 위해 다양한 형태의 악성코드 솔루션이 존재하고 있다. 악성코드 솔루션은 오픈소스와 상업용 프로그램으로 나눌 수 있는데 상업용 프로그램은 악성코드뿐만 아니라 PC관리의 전반적인 부분을 담당하고 있다. 악성코드를 탐지하는 방법은 시그니처 방식과 해시DB를 이용한 방식 등 다양한 방식이 있다. 본 논문에서는 오픈소스기반 악성코드 솔루션을 비교하여 어떠한 방식이 더 효과적인가를 분석하였다. 이를 통해 악성코드 방지 프로그램을 개발하려는 개발자가 비용효과적인 악성코드 탐지 방법을 잘 선택할 수 있는 가이드라인을 제공한다.

  • PDF

임베디드 시스템의 보안성 향상을 위한 LLVM 기반의 소스코드 난독화 도구 설계 (Design of Source Code Obfuscation Tool based LLVM to improve security in Embedded System)

  • 하재현;곽동규
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2022년도 추계학술발표대회
    • /
    • pp.201-203
    • /
    • 2022
  • 임베디드 시스템이 일상생활 및 각종 산업에 밀접하게 연관되어 개인 정보 및 국가 기술 등 지적 자산에 대한 보안의 필요성이 나타나고 있다. 이러한 문제점은 임베디드 시스템에 들어가는 소프트웨어의 역공학으로부터 초래된다. 따라서 본 논문은 소스 코드에 대해 제어 흐름 평탄화라는 난독화 알고리즘을 설계하는 방법을 제안한다. 이는 독자적으로 작성된 난독화 알고리즘이기 때문에 오픈 소스로 공개되어져 있는 다른 난독화 도구들에 비해 안전한 특징을 가진다. 제어 흐름 평탄화는 프로그램의 기능을 유지하면서 소스 코드의 정적 분석을 어렵게 하는 기법으로, 데이터를 탈취하려는 악의적인 행위를 사전에 예방할 수 있다. 본 논문에서 제안하는 제어 흐름 평탄화 알고리즘은 하나의 기본 블록으로 이루어진 단순한 소스 코드를 여러 개의 기본 블록으로 분할하고, 조건문을 통해 연결하는 방법을 사용하여 알고리즘의 복잡도를 높였다. 이처럼 새롭게 작성된 Pass를 통해 소스코드 난독화를 적용시켜 임베디드 시스템의 보안성을 향상시킬 수 있다.

소스코드와 실행코드의 상관관계 분석을 통한 최악실행시간 측정 방법 (Measuring Method of Worst-case Execution Time by Analyzing Relation between Source Code and Executable Code)

  • 서용진;김현수
    • 인터넷정보학회논문지
    • /
    • 제17권4호
    • /
    • pp.51-60
    • /
    • 2016
  • 내장 소프트웨어는 실시간성 및 실행 환경으로부터의 독립성을 요구사항으로 갖는다. 실시간성 요구사항은 탑재된 태스크의 최악 실행 시간으로부터 영향을 받는다. 따라서 실시간성을 보장하기 위해서는 정적 분석 기반의 최악 실행 시간 분석 방법을 사용하여 프로그램의 최악 실행 시간을 파악하여야 한다. 그러나 기존의 최악 실행 시간 분석은 실행 환경으로부터 독립성을 고려하지 않는다. 이에 우리는 실행 환경으로부터 독립성을 제공하기 위해 소스코드로부터 실행 시간을 측정하는 방법을 제시한다. 이를 위해 실행 코드가 아닌 소스코드로부터 생성된 제어 흐름 그래프를 통해 실행 시간을 측정한다. 또한 소스코드로부터 생성된 제어 흐름 그래프에는 실행 시간 정보가 존재하지 않기 때문에, 이를 제공하기 위해 소스코드의 문장과 실행코드의 명령어와의 관계를 분석한다. 결과적으로 실행 시간 측정이 가능한 제어 흐름 그래프를 생성할 수 있다. 이를 통해 프로세서로부터 종속적인 부분을 매개변수화할 수 있기 때문에, 최악 실행 시간 분석 도구의 유연성을 향상시킬 수 있다.

바이너리 파일에서 Word2Vec 딥러닝 기법을 이용한 복합 자료형 추론 연구 (A Study on Composite Data Type Inference using Word2vec Deep Learning Scheme on Binary File)

  • 민예슬;정현오;이혜린;이승연;우드아커벙 오퐁;정준호;손윤식
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2017년도 추계학술발표대회
    • /
    • pp.306-309
    • /
    • 2017
  • 소프트웨어의 보안에 대한 중요성이 점차 높아짐에 따라, 소스코드 기반의 소프트웨어의 보안약점 분석 기법에서 더 나아가 소스 코드가 존재하지 않는 바이너리 파일을 대상으로 분석을 수행하는 연구가 진행되고 있다. 왜냐하면 소프트웨어 개발의 복잡성 증가에 따른 서드파티 라이브러리 활용과 레거시 코드의 관리 부재, 임베디드 소프트웨어의 특성 등으로 인해 소스 코드가 존재하지 않는 바이너리 코드의 사용이 늘어나고 있기 때문이다. 따라서 최근 바이너리 코드에 내제된 보안약점을 분석하기 위해서 중간코드를 이용하여 정적분석을 수행하는 다양한 연구가 진행되고 있다. 중간언어를 사용함으로 실행환경에 따라 달라지는 바이너리 코드가 중간언어로만 변환이 된다면 동일한 형태의 보안약점 분석기술을 통해 효과적인 수행이 가능하다. 본 논문에서는 이러한 바이너리 코드로부터 중간언어로 변환시 컴파일 과정에서 상실된 복합 자료형을 재구성하기 위해 Word2vec 딥러닝 기법을 이용한 추론기법을 제안한다.

오픈 소스 프로젝트 도큐멘테이션 가이드라인 연구 (A Documentation Guide to Open Source Software Project)

  • 박치남;류성열
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2006년도 추계학술발표대회
    • /
    • pp.531-534
    • /
    • 2006
  • 오픈소스 소프트웨어를 효율적으로 활용하기 위한 다양한 연구와 정책이 이루어지고 있으나 OGC에서 제기한 가이드에서 볼 수 있듯이 많은 단점을 가지고 있다. 특히 오픈 소스를 이용하여 새로운 제품을 개발하고자 하는 사람들이 제품의 선정과 구체적인 소스 코드를 분석하기 위한 문서화의 표준이 없다. 본 연구에서는 이러한 문제점을 극복하기 위한 기본적인 방안을 작성하기 위하여 오픈소스의 개발모형을 조사 분석하고, 분석된 모형에 근거한 오픈소스의 선정과 소스코드를 효율적으로 분석하기 위한 문서화 표준의 가이드라인을 작성하고자 한다. 또 이를 기반으로 오픈소스 커뮤니티 관리적 차원에서의 해결방안으로 관리항목의 기능을 분류하고 특성분류에 따른 문서화 작성지침을 제안 한다

  • PDF

소프트웨어 품질향상을 위한 소스코드 기반의 테스트 케이스 자동 생성에 관한 연구 (A Study on the Automatic Generation of Test Case Based on Source Code for Quality Improvement)

  • 손웅진;이승호
    • 전기전자학회논문지
    • /
    • 제19권2호
    • /
    • pp.186-192
    • /
    • 2015
  • 본 논문에서는 소프트웨어 개발 과정에서 소프트웨어의 품질향상에 필요한 소스코드의 API를 기반으로 테스트 케이스를 자동으로 생성할 수 있는 기법을 제안한다. 제안된 기법은 Doxygen 오픈소스 툴을 이용한 소스코드 분석 과정, 분석된 결과를 이용한 API 사양 정의 과정, 테스트 디자인 생성 과정, Pairwise Test 기법을 적용한 테스트 케이스 생성 과정 등의 4가지 과정으로 구성된다. Doxygen 오픈소스 툴을 이용한 소스코드 분석 과정은 소스코드의 API 정보인 API 명, 입력 파라미터, 리턴 파라미터 정보 등을 추출하는 단계이다. 분석된 결과를 이용한 API 사양 정의 과정은 추출한 API 정보를 바탕으로 SQLite 데이터베이스를 이용하여 테스트 케이스 생성에 필요한 API 정보들을 데이터베이스화하여 정의하는 단계이다. 테스트 디자인 생성 과정은 정의된 API를 기반으로 입력 파라미터, 리턴 파라미터의 임계치 설정, 제약사항 설정 등을 통해 시나리오를 디자인하여 데이터베이스로 구성하는 단계이다. Pairwise Test 기법을 적용한 테스트 케이스 생성 과정은 테스트 디자인 정보를 바탕으로 Pairwise 조합 기법을 적용하여 실제 테스트 케이스를 생성하여 데이터베이스로 구성하는 단계이다. 제안된 기법의 효율성을 평가하기 위하여 기존의 명세서 기반의 테스트 케이스 생성 방법과 비교한 결과 비슷한 시간 내에 훨씬 더 많은 테스트 케이스가 생성되며, 명세 기반 기법으로는 불가능한 소스코드에 대한 기능 검증도 가능하여 소스코드내 결함 위치도 확인할 수 있다. 따라서 사람의 인력을 통한 수작업에 의존적으로 진행하였던 소프트웨어 개발 품질 향상 과정을 소스코드의 API를 기반으로 자동으로 테스트 케이스를 생성함으로써, 노동력 절감 및 제품 개발 시간 등을 단축 할 수 있으리라 기대된다.