• Title/Summary/Keyword: 소스코드 생성

Search Result 173, Processing Time 0.025 seconds

퍼징 기반의 상용 및 공개 소프트웨어에 대한 보안약점 진단 방법 연구

  • Lim, Ki-young;Kang, Seong-hoon;Kim, Seung-joo
    • Review of KIISC
    • /
    • v.26 no.1
    • /
    • pp.27-33
    • /
    • 2016
  • 보안 약점은 소스코드의 공개 여부와는 관계없이 존재하며, 소프트웨어의 취약점으로 이어질 수 있다. 소스코드가 공개된 소프트웨어의 경우 소스 코드 분석을 통해 보안 약점을 제거하지만, 소스코드가 공개되지 않고 바이너리 형태의 실행파일만 제공되는 소프트웨어의 경우에는 보안 약점을 찾기가 어렵다. 비정상 데이터를 임의로 생성하여 파일 또는 표준입력 형태로 입력하는 퍼징 기법은 위와 같은 소스코드가 공개되지 않은 소프트웨어의 취약점을 찾기 위한 기술이다. 본 논문에서는 소스코드가 없는 상용 및 공개 소프트웨어의 보안 약점을 진단하기 위해 퍼징 기법을 활용하는 방법을 제시하고, 공개된 퍼징 도구 및 프레임워크를 이용하여 설치부터 소프트웨어의 진단 및 발견된 보안 약점을 분석, 제거 등의 퍼징 프로세스를 소개하여 상용 및 공개 소프트웨어 취약점 발견에 도움을 줄 것으로 기대한다.

The Code Repository for Consistency between Code and Model (코드와 모델의 일치성을 위한 코드 저장소)

  • Oh, Dong-Eun;Kim, Kyung-Min;Kim, Tae-Woong;Kim, Tae-Gong
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2007.06b
    • /
    • pp.143-147
    • /
    • 2007
  • 소프트웨어 개발 과정에서 산출된 설계 모델은 향후 시스템의 유지보수를 위해 꼭 필요한 산출물 중의 하나이며 시스템을 이해하는데 필수적인 요소이다. 그러나 다양한 요구사항의 변경에 따라 유지보수 단계를 거치면서 소스 코드에만 수정이 가해져 모델 정보와의 연계성이 없어지게 된다. 이에 본 논문에서는 소스 코드와 모델간의 일관성을 위한 코드 저장소를 제안한다. 모델 정보와 소스 코드와의 일관성을 지키기 위해서는 소스 코드에 있는 시스템의 행위적인 정보를 유지하는 것이 중요하다. 본 연구에서는 모델을 표현 할 수 있는 XMI를 이용하여 메타모델 기반의 코드 저장소를 구축함으로써 해결하고자 한다. 코드 저장소에는 소스 코드의 모든 정보를 추출하여 XMI 형태의 코드 모델로 저장되며 이 정보로부터 다시 실행 가능한 소스 코드를 생성할 수 있도록 한다.

  • PDF

Method-level Mutation Operators for Java Byte-Code (자바 바이트코드를 대상으로 하는 메소드 수준 뮤테이션 연산자)

  • Shin Jong-Min;Ma Yu-Seung;Kwon Yong-Rae
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2005.07b
    • /
    • pp.307-309
    • /
    • 2005
  • 컴퓨터 성능의 향상으로 고비용의 수행을 요하는 뮤테이션 분석 기법의 적용 가능성이 커지면서, 객체지향 프로그램을 대상으로, 특히 자바 프로그램에 대하여, 뮤테이션 분석 기법에 관한 연구가 수행되었다. 자바의 경우, 바이트 코드를 이용한다면 소스코드 없이 오류 프로그램인 뮤턴트들을 생성할 수 있을 뿐만 아니라, 소스코드를 이용할 때보다 뮤테이션 분석을 빨리 수행할 수 있는 장점이 있다. 하지만 현재 이러한 장점을 효율적으로 활용할 수 있는 바이트 코드 수준의 연산자는 나와있지 않다. 본 논문에서는 자바 바이트 코드를 대상으로 하는 메소드 수준의 뮤테이션 연산자를 정의한다. 개발한 뮤테이션 연산자는 소스코드 수준에서 사용자가 범할 수 있는 오류만을 대상으로 한다. 따라서 소스 코드를 대상으로 하는 뮤테이션 분석의 기능을 모두 보여주면서, 성능향상을 가져다 준다.

  • PDF

A Plagiarism Detection Technique for Java Program Using Bytecode Analysis (바이트코드 분석을 이용한 자바 프로그램 표절검사기법)

  • Ji, Jeong-Hoon;Woo, Gyun;Cho, Hwan-Gue
    • Journal of KIISE:Software and Applications
    • /
    • v.35 no.7
    • /
    • pp.442-451
    • /
    • 2008
  • Most plagiarism detection systems evaluate the similarity of source codes and detect plagiarized program pairs. If we use the source codes in plagiarism detection, the source code security can be a significant problem. Plagiarism detection based on target code can be used for protecting the security of source codes. In this paper, we propose a new plagiarism detection technique for Java programs using bytecodes without referring their source codes. The plagiarism detection procedure using bytecode consists of two major steps. First, we generate the token sequences from the Java class file by analyzing the code area of methods. Then, we evaluate the similarity between token sequences using the adaptive local alignment. According to the experimental results, we can find the distributions of similarities of the source codes and that of bytecodes are very similar. Also, the correlation between the similarities of source code pairs and those of bytecode pairs is high enough for typical test data. The plagiarism detection system using bytecode can be used as a preliminary verifying tool before detecting the plagiarism by source code comparison.

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

  • Hong Jang-Eui
    • The KIPS Transactions:PartA
    • /
    • v.12A no.7 s.97
    • /
    • pp.589-596
    • /
    • 2005
  • Source code quality is very Important that software embedded into product is difficult to change. In order to improve source code quality, it should be considered the quality of analysis and design models as well as the quality of source code. In this paper, we suggest 'Practice Pattern' as one of practical techniques to improve embedded software source code quality. Practice pattern is a procedural pattern to guide modeling and coding activities in software development phases. We believe that applying our pattern provides the improvement of optimum performance, modularization, and portability for embedded software source code.

A Encryption Scheme for Source Code Protection of Android Applications (안드로이드 애플리케이션 소스코드 보호를 위한 암호화 기법)

  • Moon, Yong-ho
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2016.04a
    • /
    • pp.212-214
    • /
    • 2016
  • 안드로이드 마켓이 커지면서 불법복제와 변조를 통한 재배포로 인하여 손해가 증가하고 있다. 앱을 보호하기 위하여 여러 기법이 나왔지만, 역공학으로 우회가 가능하다. 본 논문에서는 사용자의 기기고유정보로 비밀키를 생성하여 소스코드를 암호화하고, 앱이 실행될 때 복호화 및 동적로딩을 수행한다. 본 제안 방식은 소스코드 암호화를 통한 불법복제 및 역공학을 방지할 수 있다.

Implementation of an Obfuscation Tool for Visual C++ Source Code (Visual C++ 소스코드를 위한 Obfuscation 도구 구현)

  • Cho, Byoung-Min;Chang, Hye-Young;Noh, Jin-Uk;Oh, Hyun-Soo;Jung, Min-Gyu;Lee, Seung-Won;Park, Yong-Soo;Woo, Je-Hak;Cho, Seong-Je
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2006.10c
    • /
    • pp.521-525
    • /
    • 2006
  • 최근 소프트웨어의 주요 알고리즘 및 자료구조 등의 지적재산권을 역공학 분석과 같이 악의적인 공격들로부터 보호하기 위한 연구가 이루어지고 있다. 본 논문에서는 산업 현장에서 많이 사용되는 Visual C++ 또는 MFC로 작성된 프로그램의 소스 코드를 역공학 공격으로부터 보호하기 위한 Obfuscation 도구를 구현하고 그 성능을 평가한다. 구현된 도구는 3가지 Obfuscation 알고리즘을 적용하여 소스 코드를 생성하며 생성된 소스 코드들은 가독성이 떨어지고 역공학 분석이 어렵도록 변환되지만, 프로그램의 본래 기능은 그대로 유지하며 성능상의 변화가 크지 않음을 실험을 통해 확인할 수 있었다.

  • PDF

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

  • Kwon, Se-Hoon;Kown, Jae-Yeong;Lee, Seung-Hun;Lee, Hyun-Woo;Lee, Jong-Rak;Won, Il-Yong
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2017.11a
    • /
    • pp.193-196
    • /
    • 2017
  • 본 연구는 기존의 변종 악성코드와는 달리 진화알고리즘을 기반으로 한 악성코드 자동 생성 프레임워크에 대한 것이다. 우리가 제안하는 시스템은 소스가 알려지지 않는 바이너리 상태의 악성코드를 역공학적 기법을 이용하여 소스 상태로 복원하고 복원된 소스를 이용하여 다양한 변종 악성코드를 생성하는 것이다. 진화 연산을 적용하기 위해 평가함수의 설계가 중요한데, 우리는 행동 기반 분석 기반의 평가 함수를 포함하는 프레임워크를 제안하였다.

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

  • Seo, Yongjin;Kim, Hyeon Soo
    • Journal of Internet Computing and Services
    • /
    • v.17 no.4
    • /
    • pp.51-60
    • /
    • 2016
  • Embedded software has requirements such as real-time and environment independency. The real-time requirement is affected from worst-case execution time of loaded tasks. Therefore, to guarantee real-time requirement, we need to determine a program's worst-case execution time using static analysis approach. However, the existing methods for worst-case execution time analysis do not consider the environment independency. Thus, in this paper, in order to provide environment independency, we propose a method for measuring task's execution time from the source codes. The proposed method measures the execution time through the control flow graph created from the source codes instead of the executable codes. However, the control flow graph created from the source code does not have information about execution time. Therefore, in order to provide this information, the proposed method identifies the relationships between statements in the source code and instructions in the executable code. By parameterizing those parts that are dependent on processors based on the relationships, it is possible to enhance the flexibility of the tool that measures the worst-case execution time.

Visualization Techniques for Massive Source Code (대용량 소스코드 시각화기법 연구)

  • Seo, Dong-Su
    • The Journal of Korean Association of Computer Education
    • /
    • v.18 no.4
    • /
    • pp.63-70
    • /
    • 2015
  • Program source code is a set of complex syntactic information which are expressed in text forms, and contains complex logical structures. Structural and logical complexity inside source code become barriers in applying visualization techniques shown in traditional big-data approaches when the volume of source code become over ten-thousand lines of code. This paper suggests a procedure for making visualization of structural characteristics in source code. For this purpose, this paper defines internal data structures as well as inter-procedural relationships among functions. The paper also suggests a means of outlining the structural characteristics of source code by visualizing the source codes with network forms The result of the research work can be used as a means of controling and understanding the massive volume of source code.