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

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

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

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

임베디드 소프트웨어의 소스 코드 품질 향상을 위한 Practice Patterns의 적용 (Applying Practice Patterns to Improve Source Code Quality of Embedded Software)

  • 홍장의
    • 정보처리학회논문지A
    • /
    • 제12A권7호
    • /
    • pp.589-596
    • /
    • 2005
  • 임베디드 소프트웨어는 하드웨어 플랫폼에 탑재하기 전, 소스 코드에 대한 품질을 검증하는 작업이 매우 중요하다. 임베디드 소프트웨어의 코드 품질을 향상시키기 위해서는 분석 및 설계 단계의 모델에 대한 품질과 생성된 코드에 대한 품질이 관리되어야 한다. 본 연구에서는 임베디드 소프트웨어의 소스 코드 품질을 향상시키기 위한 방법으로 Practice Pattern을 제안한다. 이는 모델링 과정이나 코딩 과정에서 개발자를 가이드 하는 절차 패턴으로써, 모델의 품질과 소스 코드 품질을 향상시키는 방법으로 사용될 수 있다. 제시하는 패턴의 적용은 기능의 정확성뿐만 아니라 성능, 모듈화, 재사용성 및 이식성 등과 같은 품질 요소들을 향상시킬 수 있을 것으로 보인다.

온라인 저지 시스템 지원을 위한 Feature-Wise Linear Modulation 기반 소스코드 문맥 학습 모델 설계 (Learning Source Code Context with Feature-Wise Linear Modulation to Support Online Judge System)

  • 현경석;최우성;정재화
    • 정보처리학회논문지:소프트웨어 및 데이터공학
    • /
    • 제11권11호
    • /
    • pp.473-478
    • /
    • 2022
  • 온라인 저지 시스템 지원하기 위한 표절 검사, 소스코드 분석 및 자동화된 튜터링 기법이 연구되고 있다. 최근 딥러닝 기술 기반의 소스코드 유사도 분석을 통한 표절 감지 기술들이 제안되었으나, 자동화된 튜터링을 지원하기 위한 딥러닝 기반의 연구는 미흡한 실정이다. 따라서 본 논문에서는 자바 바이트코드와 문제정보를 결합하여 학습하고, 학습자가 온라인 저지 시스템에 코드를 제출하기 전에 pass/fail 여부를 예측할 수 있는 GRU 기반의 Input / Output side FiLM 모델을 제안한다. 또한 온라인 저지에 수집되는 데이터의 특성상 비대칭이 발생하기 때문에 밸런스 샘플링 기법을 적용하여 데이터를 균등하게 분포시켜 두 상황을 제안한 모델로 학습하였다. 실험 결과 Input side FiLM 모델이 가장 높은 73.63%의 성능을 보였다. 이를 기반으로 학습자들이 온라인 저지의 평가를 받기 전에 pass/faill 여부를 확인하여 소스코드 개선에 대한 피드백 기능에 적용 가능할 것으로 예상된다.

정보시스템 소스코드 보안성 강화를 위한 PMD Rule-set 의 확장과 분석: 생명보험 시스템의 사례 중심으로 (Analysis and extension of the PMD rule-set for the source code security strengthening of IT systems)

  • 남진오;최진영
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 춘계학술발표대회
    • /
    • pp.518-521
    • /
    • 2014
  • 최근 개인정보 유출 등으로 인해 정보시스템의 보안약점 및 소스코드 품질에 대한 관심이 높으며, 특히 개인자산과도 관련된 금융 정보 시스템의 경우에는 더욱 높다. 해당 시스템의 보안성 강화를 위해서는 개발단계에서부터 보안취약점과 코드의 품질을 높일 수 있는 정적분석 기반의 진단도구 활용이 중요하다. 많은 분야에서 진단도구의 활용이 이루어지고 있지만 금융 정보시스템의 경우 다른 SW 와 특성이 다르기 때문에 추가적인 진단규칙이 반영된 진단도구의 활용이 필요하다. 본 논문은 여러 진단도구 중 전자정부개발에 사용하고, 비교적 진단규칙 추가가 용이한 PMD 에 추가 진단규칙을 반영한 후 생명보험 정보시스템에 적용하고 이에 대한 PMD 검출 계수를 분석한다.

소프트웨어 설계 툴의 코드자동생성능력 비교 연구 (A Comparison Study of Code Generation Capability of Software Design Tools)

  • 조수란;강성원
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 가을 학술발표논문집 Vol.33 No.2 (C)
    • /
    • pp.325-330
    • /
    • 2006
  • 소프트웨어 설계 툴은 소프트웨어 개발을 위하여 실무에 도입되어 많이 이용되고 있다. 그러나 대부분의 소프트웨어 설계 툴이 코드를 자동으로 생성할 수 있는 기능을 제공하고 있어서 이를 잘 활용하면 개발시간을 단축하고 및 개발생산성을 향상 크게 향상 시킬 수 있음에도 불구하고, 많은 사용자들은 설계 툴을 단순한 모델링 툴로서만 이용하고 있다. 본 연구에서는 사용자들이 소프트웨어 설계 툴의 코드생성 능력을 잘 활용할 수 있도록, 몇 개의 선정된 설계 툴의 코드자동생성능력의 비교를 통해 설계 툴의 코드 생성능력을 비교 일 분석하였다. 자동 생성된 코드는 Java 소스코드이며, 언어지원능력, 난이도, 생성된 소스 코드의 레벨을 비교기준으로 평가를 수행하였다.

  • PDF

Sentry: Kernel Extension을 위한 바이너리 수준의 인터포지션 기법 (Sentry: a Binary-Level Interposition Mechanism for Kernel Extension)

  • 김세원;황재현;유혁
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2006년도 한국컴퓨터종합학술대회 논문집 Vol.33 No.1 (A)
    • /
    • pp.325-327
    • /
    • 2006
  • 현재 사용되고 있는 운영체제들은 그들의 기능을 확장하거나 교체하기 위해서 kernel extension을 사용해 왔다. 일반적으로 이러한 kernel extension들은 커널과 같은 주소공간에서 실행하기 때문에, 그것에서 발생하는 오류(fault)로 인해 전체 시스템이 망가지는 결과를 초래할 위험이 있다. 그래서 kernel extension의 안전한 실행에 관한 연구들은 kernel extension에서 발생한 오류를 전체 시스템으로부터 고립시키는 것이 주목적이었다. 하지만 이러한 방법들은 kernel extension의 어셈블리어로 된 코드를 분석하거나 사용하고 있는 커널의 소스 코드를 수정을 필요로 한다. 본 논문은 Sentry라는 kernel extension을 감시하기 위한 인터포지션 서비스를 제안한다. Sentry를 사용하기 위해서 별도의 커널 코드를 수정할 필요도 없으며, 이미 사용하고 있는 리눅스와 호환될 수 있는 특징을 지니고 있다. 그리고 kernel extension의 소스코드 및 어셈블리 코드에 대한 분석 없이 바이너리 파일을 직접 수정하여 kernel extension을 모니터링 할 수 있도록 한다. 게다가 Sentry는 재구성이 가능하기 때문에 얼마든지 kernel extension에 대한 보호정책을 동적으로 바꿀 수 있다.

  • PDF

신뢰성 시험 프로세스 개선을 통한 무기체계 내장형 소프트웨어 소스코드 품질확보에 관한 연구 (A Study on Quality Assurance of Embedded Software Source Codes for Weapon Systems by Improving the Reliability Test Process)

  • 권경용;주준석;김태식;오진우;백지현
    • 정보과학회 논문지
    • /
    • 제42권7호
    • /
    • pp.860-867
    • /
    • 2015
  • 국방 분야에서 무기체계가 첨단화 되면서 무기체계 내장형 소프트웨어의 중요성이 증대되고 있으며, 현대의 전장상황이 네트워크 중심전(NCW)으로 전개됨에 따라 무기체계 내장형 소프트웨어의 신뢰성 및 품질 확보가 중요시 되고 있다. 또한 내장형 소프트웨어의 문제점이 개발단계에서 양산단계로 이관되어 막대한 손실이 발생되고 있으며, 개발업체에서는 소프트웨어 신뢰성 시험에 대한 체계적인 활동이 이루어지지 않고 있다. 본 연구에서는 다양한 소스코드 신뢰성 검증사례 분석을 바탕으로 소프트웨어 소스코드 품질검증체계 확립에 대한 접근방안을 제시한다. 방위사업청의 "무기체계 소프트웨어 개발 및 관리 매뉴얼"의 동적분석 평가항목 및 코드실행률 목표값 기준을 제시하고, 개발업체의 소프트웨어 개발능력 향상을 유도하기 위한 방안을 제안한다.

안드로이드 앱 도용 탐지를 위한 API 유사도 비교 도구 구현 (API Similarity Comparison Tool Development for Detecting Theft of Android Application)

  • 최성하;이현영;조승민;박희완
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2012년도 춘계학술발표대회
    • /
    • pp.792-795
    • /
    • 2012
  • 최근 오픈 소스 커뮤니티가 활성화되고 수많은 오픈 소스들이 공개되고 있어서 많은 개발자들이 오픈 소스를 활용하고 있다. 그러나 오픈 소스도 정해진 라이선스 기반으로 공개되므로 오픈 소스를 사용할 때는 반드시 라이선스를 확인해야 한다. 본 논문에서는 안드로이드 앱의 라이선스 위반이나 코드 도용을 확인할 수 있는 방법으로서 안드로이드 앱 사이의 API 메소드 호출 유사도를 측정하는 방법을 제안한다. 원본 프로그램과 도용된 프로그램은 유사한 API 메소드를 사용할 것임을 예상할 수 있기 때문에 API 메소드 호출이 유사한 것을 확인하면 간접적으로 코드 도용을 확인할 수 있다. 본 논문에서 개발한 API 유사도 측정 도구는 안드로이드 앱의 소스 코드를 필요로 하지 않고, 안드로이드 달빅(Dalvik) 바이트 코드로부터 직접 API 호출 명령어를 분석하여 유사도를 측정한다는 특징이 있다. 본 논문에서 구현한 도구의 평가를 위해서 API 호출 유사도 비교 실험을 수행하였다. 그 결과, 실제로 API 호출 유사도가 높았던 두 앱이 서로 공통된 모듈을 포함하고 있음을 밝혀내었다. 그리고 선행 연구에서 제안했었던 안드로이드 달빅 코드 전체에 대한 유사도 비교 도구보다 비교 속도가 35% 정도 향상된 것을 확인하였다.

프로그램 소스코드 취약성 분석 및 분석도구의 개발 (A Development of Analysis Tool and the Analysis of Vulnerabilities on the Program Source Code)

  • 하경휘;최진우;우종우;김홍철;박상서
    • 융합보안논문지
    • /
    • 제4권2호
    • /
    • pp.27-34
    • /
    • 2004
  • 최근 인터넷 사용의 급격한 증가와 정보통신기술의 급속한 발전은 컴퓨터 보안상의 문제점을 노출하고 있고 이로 인한 피해가 심각한 수준으로 다가오고 있다. 안전한 시스템 접속에 관한 많은 연구가 보고 되고 있지만, 일반적으로 공격자들은 순수 공격 기술이나 네트워크 구성의 결함을 이용하기 보다는 시스템 상에서 구동 중인 프로그램들, 특히 서비스를 위한 프로세스들이 개발 당시에 가지는 근본적인 취약성을 이용한다. 따라서 보안 관리자들은 공격에 이용되는 취약성을 보완하기 위해 보안 패치 작업등 많은 노력과 시간을 투자해야만 하며, 동시에 개발자들 또한 노출된 프로그램의 취약성에 대한 계속된 프로그램 수정 작업으로 부담이 커지고 있는 실정이다. 본 논문에서는 이러한 문제점을 해결하고 안전한 소스코드의 작성을 위하여 프로그램 개발 시 침해의 가능성을 가지는 취약성 함수들을 조사 및 분석을 연구 목표로 하였다. 이를 위하여 소스코드 수준에서 잠재할 수 있는 표준 C 함수에 관련된 취약성과 Win32 API 함수의 취약성에 대하여 분석하고, 그 결과를 기반으로 소스 코드의 취약성을 검사하기 위한 자동화 도구를 개발하였다.

  • PDF

공통평가기준 인증을 위한 SW의 내부 구조 및 복잡도 분석 사례에 관한 연구 (Case Study on Analysis for Well-Structured Internals and Complexity of Software for Common Criteria)

  • 최정란;서동수;배창환
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 추계학술발표대회
    • /
    • pp.642-645
    • /
    • 2014
  • 본 논문은 EAL6 수준의 공통평가기준 인증을 위해 ADV(개발) 클래스에서 ADV_INT에 대해 기술하였다. 특히, 테스트용 스마트 운영체제 소스코드 분석을 통해 구현된 내부 구조가 잘 구조화되었는지, 지나치게 복잡하지 않았는지 입증하기 위해 시도를 하였다. 다양한 소스코드 분석 도구를 통해 사이클로매틱복잡도(CyC), 정보흐름복잡도(IFC), Weighted IFC, fan-in, fan-out 등의 정보를 추출하였고, 추출된 정보를 기반으로 적용하여 수행하였다. 구조화된 정보 분석을 위해 객체지향 분석 도구를 사용한 재구조화 기법을 적용하여 수행하였다. 객체간 결합도, 팬아웃 등의 정보 등을 추출하였다. 추출된 정보를 기반으로 SW의 복잡도 및 구조적 정보를 분석한 결과 응집도 분석에 한계, TOE의 형상관리 정보 등의 부재에 따른 추출된 정보 분석의 한계, 활용된 도구의 분석 정보의 재반영 부재 및 구조적 분석 등의 한계점이 드러났다.