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

검색결과 3,191건 처리시간 0.031초

코드 분석을 위한 JDT 기반 정적 분석기 개발 (Development of JDT Based Static Analyzer for Code Analysis)

  • 박민규;변은영;한정화;김영철;문소영
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2015년도 추계학술발표대회
    • /
    • pp.969-972
    • /
    • 2015
  • 오늘날 소프트웨어의 크기는 계속 증가하고 있는데 반해 IT 벤처/중소 업체의 경우 요구사항 및 설계 문서가 없는 경우가 빈번하다. 이러한 시스템의 경우 코드를 이해하여 수정이나 유지보수를 하는데 많은 시간과 비용이 투자된다. 또한 벤처/중소 업체에서 역공학 도구, 테스트 프로세스 등을 도입하여 소프트웨어 품질 향상을 시키기는 현실적으로 비용 면에서 어려움이 있다. 본 연구는 내재된 코드의 오류를 찾기 위해 JDT 기반 정적 분석기를 제안한다. 제안한 분석기의 설계 구조 및 구현으로 개발자 주도 코드 분석을 통해 코드 품질을 향상 시킬 것이다. 또한 요구사항과 코드의 불일치에 대한 가시화를 통해 소프트웨어의 유지보수성을 향상 시킬 것이다.

악성 자바 스크립트를 탐지하는 분석 엔진 (The Analysis Engine for Detecting The Malicious JavaScript)

  • 추현록;정종훈;임채태
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2014년도 추계학술발표대회
    • /
    • pp.388-391
    • /
    • 2014
  • JavaScript는 AJAX와 같은 기술을 통해 정적인 HTML에 동적인 기능을 제공하며 그 쓰임새는 HTML5 등장 이후 더욱 주목받고 있는 기술이다. 그와 비례하여 JavaScript를 이용한 공격( DoS 공격, 기밀정보 누출 등 ) 또한 큰 위험으로 다가오고 있다. 이들 공격은 실제적인 흔적을 남기지 않기 때문에 JavaScript 코드 상에서 악성 행위를 판단해야 하며, 웹브라우저가 JavaScript 코드를 실행해야 실제적인 행위가 일어나기 때문에 이를 방지하기 위해선 실시간으로 악성 스크립트를 분별하고 파악할 수 있는 분석 기술이 필요하다. 본 논문은 이런 악성 스크립트를 탐지하는 분석엔진 기술을 제안한다. 이 분석 엔진은 시그니쳐 기반 탐지 기술을 이용한 정적 분석과 행위 기반 탐지 기술을 사용하는 동적 분석으로 이루어진다. 정적 분석은 JavaScript 코드에서 악성 스크립트 코드를 탐지하고 동적 분석은 JavaScript 코드의 실제 행위를 분석하여 악성 스크립트를 판별한다.

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

  • 지정훈;우균;조환규
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제35권7호
    • /
    • pp.442-451
    • /
    • 2008
  • 대부분의 표절검사 시스템들은 소스코드를 이용해 유사도를 계산하고 표절 프로그램을 찾아낸다. 소스코드를 이용하여 표절검사를 수행할 경우, 소스코드 보안문제가 발생할 수 있다. 목적 코드를 이용한 표절검사는 소스코드 보안문제에 대한 좋은 대안이 될 수 있다. 본 논문에서는 자바 프로그램의 표절검사에 대하여 소스코드 없이 바이트코드를 이용해 표절검사를 수행하는 방법을 제시한다. 바이트코드를 이용한 표절검사는 크게 두 단계로 진행된다 먼저, 자바 클래스 파일로부터 메소드의 코드영역을 분석해 토큰 시퀀스를 생성한 다음 적응적 지역정렬을 이용해 유사도를 계산한다. 실험 결과, 소스코드와 바이트코드의 유사도는 비슷한 분포를 보였다. 또한, 소스코드 쌍과 바이트코드 쌍의 유사도 상관관계가 충분히 높게 측정되었다. 본 논문에서 제안한 바이트코드 표절검사 시스템은 소스코드를 이용해 직접 표절을 검사하기 전 단계에서 1차적인 검증도구로 활용할 수 있다.

악성코드 변종 탐지를 위한 코드 재사용 분석 기법

  • 김태근;임을규
    • 정보보호학회지
    • /
    • 제24권1호
    • /
    • pp.32-38
    • /
    • 2014
  • 본 논문은 수년간 급격하게 증가되어 많은 피해를 초래하고 있는 악성코드를 탐지하기 위한 기법을 제안한다. 악성코드 제작자로부터 생산되고 인터넷에 유포되는 대부분의 악성코드는 처음 개발된 제로-데이 악성코드의 코드 일부를 그래도 재사용하는 경우가 많다. 이러한 특징에 의해 악성코드 변종들 사이에는 악의적 행위를 위해 사용되는 함수들 중 공통으로 포함되는 코드들이 존재하게 된다. 논문에 저자는 이점에 착안하여 코드 재사용 검사 여부를 통한 악성코드 변종 탐지 기법을 제안하고 있다. 그리고 변종 샘플을 이용한 변종 탐지의 가능성을 증명하는 실험과 실제 공통으로 존재하는 재사용 코드 일부(함수) 추출 정확성을 알아보는 실험을 수행하여 주장을 뒷받침한다.

금융정보를 탈취하는 파밍 악성코드 분석 및 대응방안

  • 이세빈;이지오;염흥열
    • 정보보호학회지
    • /
    • 제27권3호
    • /
    • pp.48-53
    • /
    • 2017
  • 최근 많은 사용자가 인터넷을 통해 수많은 웹페이지에 접속하고 정보를 수집하면서 인터넷의 사용량이 증가한 만큼 악성코드에 감염될 확률은 증가하고 있다. 공격자들은 웹을 통해 사용자들의 정보탈취를 목적으로 악성코드를 유포하는데 그 중 파밍 (pharming) 악성코드를 통해 금융정보 탈취를 하고 있다. 파밍 악성코드에 감염된 사용자들은 웹페이지에 접속시 원래 페이지가 아닌 공격자가 만든 파밍 페이지로 유도되어 금융정보 및 공인인증서가 유출된다. 유출된 금융정보를 통해 사용자들은 심각한 금전적인 피해가 발생할 수 있다. 본 논문에서는 최근 파밍 악성코드를 통해 금융정보를 유출하는 방법에 대해 분석하고 대응방안을 제시한다.

N-gram Opcode를 활용한 머신러닝 기반의 분석 방지 보호 기법 탐지 방안 연구 (A Study on Machine Learning Based Anti-Analysis Technique Detection Using N-gram Opcode)

  • 김희연;이동훈
    • 정보보호학회논문지
    • /
    • 제32권2호
    • /
    • pp.181-192
    • /
    • 2022
  • 신종 악성코드의 등장은 기존 시그니처 기반의 악성코드 탐지 기법들을 무력화시키며 여러 분석 방지 보호 기법들을 활용하여 분석가들의 분석을 어렵게 하고 있다. 시그니처 기반의 기존 연구는 악성코드 제작자가 쉽게 우회할 수 있는 한계점을 지닌다. 따라서 본 연구에서는 악성코드 자체의 특성이 아닌, 악성코드에 적용될 수 있는 패커의 특성을 활용하여, 단시간 내에 악성코드에 적용된 패커의 분석 방지 보호 기법을 탐지하고 분류해낼 수 있는 머신러닝 모델을 구축하고자 한다. 본 연구에서는 패커의 분석 방지 보호 기법을 적용한 악성코드 바이너리를 대상으로 n-gram opcode를 추출하여 TF-IDF를 활용함으로써 피처(feature)를 추출하고 이를 통해 각 분석 방지 보호 기법을 탐지하고 분류해내는 머신러닝 모델 구축 방법을 제안한다. 본 연구에서는 실제 악성코드를 대상으로 악성코드 패킹에 많이 사용되는 상용 패커인 Themida와 VMProtect로 각각 분석 방지 보호 기법을 적용시켜 데이터셋을 구축한 뒤, 6개의 머신러닝 모델로 실험을 진행하였고, Themida에 대해서는 81.25%의 정확도를, VMProtect에 대해서는 95.65%의 정확도를 보여주는 최적의 모델을 구축하였다.

코드은닉을 이용한 역공학 방지 악성코드 분석방법 연구 (A New Analysis Method for Packed Malicious Codes)

  • 이경률;임강빈
    • 한국항행학회논문지
    • /
    • 제16권3호
    • /
    • pp.488-494
    • /
    • 2012
  • 본 논문은 악성코드가 사용하는 자기방어기법을 방식에 따라 분류하고, 악의적인 코드를 보호하는 방법의 일종인 패킹에 대해 소개하였으며, 패킹을 이용하는 악성코드를 보다 빠르게 분석할 수 있는 방안을 제시하였다. 패킹기법은 악의적인 코드를 은닉하고 실행 시에 복원하는 기술로서 패킹된 악성코드를 분석하기 위해서는 복원 후의 진입점을 찾는 것이 필요하다. 기존에는 진입점 수집을 위하여 악성코드의 패킹 관련 코드를 자세히 분석하여야만 했다. 그러나 본 논문에서는 이를 대신하여 악성코드를 생성한 표준 라이브러리 코드 일부를 탐색하는 방법을 제시하였다. 제시한 방안을 실제로 구현하여 보다 신속히 분석할 수 있음을 증명하였다.

DEX와 ELF 바이너리 역공학 기반 안드로이드 어플리케이션 호출 관계 분석에 대한 연구 (Android Application Call Relationship Analysis Based on DEX and ELF Binary Reverse Engineering)

  • 안진웅;박정수;응웬부렁;정수환
    • 정보보호학회논문지
    • /
    • 제29권1호
    • /
    • pp.45-55
    • /
    • 2019
  • DEX 파일과, SO 파일로 알려진 공유 라이브러리 파일은 안드로이드 어플리케이션의 행위를 결정짓는 중요한 구성요소이다. DEX 파일은 Java 코드로 구현된 실행파일이며, SO 파일은 ELF 파일 형식을 따르며 C/C++와 같은 네이티브 코드로 구현된다. Java 영역과 네이티브 코드 영역은 런타임에 상호작용할 수 있다. 오늘날 안드로이드 악성코드는 지속적으로 증가하고 있으며, 악성코드로 탐지되는 것을 회피하기 위한 다양한 우회 기법을 적용한다. 악성코드 분석을 회피하기 위하여 분석이 어려운 네이티브 코드에서 악성 행위를 수행하는 어플리케이션 또한 존재한다. 기존 연구는 Java 코드와 네이티브 코드를 모두 포함하는 함수 호출 관계를 표시하지 못하거나, 여러 개의 DEX을 포함하는 어플리케이션을 분석하지 못하는 문제점을 지닌다. 본 논문에서는 안드로이드 어플리케이션의 DEX 파일과 SO 파일을 분석하여 Java 코드 및 네이티브 코드에서 호출 관계를 추출하는 시스템을 설계 및 구현한다.

중간언어 생성을 위한 바이너리 코드 자료형 및 변수 추론 기술 조사 분석 (A Survey of the Scheme of Data Type and Variables Inference for Intermediate Language Generation from Binary Code)

  • 민예슬;정현오;손윤식;정준호;고광만;오세만
    • 한국정보처리학회:학술대회논문집
    • /
    • 한국정보처리학회 2017년도 춘계학술발표대회
    • /
    • pp.283-286
    • /
    • 2017
  • 소프트웨어 내제되어 있는 보안약점과 보안취약점으로 인해 사회적으로 많이 비용이 발생함에 따라 안전한 소프트웨어를 개발하고자하는 요구가 증가하고 있다. 최근 바이너리 코드에 내제된 보안약점을 분석하기 위해서 중간코드를 이용하여 정적분석을 수행하는 다양한 연구가 진행되고 있다. 중간 언어를 사용함으로 실행환경에 따라 달라지는 바이너리 코드가 중간언어로만 변환이 된다면 동일한 형태의 보안약점 분석기술을 통해 효과적인 수행이 가능하다. 이 기술의 핵심은 바이너리 코드로부터 얼마나 코드내의 자료형 및 변수를 재구성하여 중간언어로 변환하는 것이다. 본 논문에서는 이와 같은 바이너리 코드로부터 보안약점 분석을 위한 중간언어 변환시 효과적으로 자료형 및 변수 등에 관한 정보를 재구성하는 기법들에 대해서 조사 분석하였다.

ChatGPT를 활용한 수자원시스템분야 문제해결사례 소개 및 고찰 (Research cases and considerations in the field of hydrosystems using ChatGPT)

  • 유도근;이찬욱
    • 한국수자원학회:학술대회논문집
    • /
    • 한국수자원학회 2023년도 학술발표회
    • /
    • pp.98-98
    • /
    • 2023
  • ChatGPT(Chat과 Generative Pre-trained Transformer의 합성어)는 사용자와 주고받는 대화의 과정을 통해 질문에 답하도록 설계된 대형언어모델로, 지도학습과 강화학습을 모두 사용하여 세밀하게 조정된 인공지능 챗봇이다. ChatGPT는 주고받은 대화와 대화의 문맥을 기억할 수 있으며, 보고서나 실제로 작동하는 파이썬 코드를 비롯한 인간과 유사하게 상세하고 논리적인 글을 만들어 낼 수 있다고 알려져있다. 본 연구에서는 수자원시스템분야의 문제해결에 있어 ChatGPT의 적용가능성을 사례기반으로 확인하고, ChatGPT의 올바른 활용을 위해 필요한 사항에 대해 고찰하였다. 수자원시스템분야의 대표적인 연구주제인 상수관망시스템의 누수인지와 수리해석을 통한 문제해결에 ChatGPT를 활용하였다. 즉, 딥러닝 기반의 데이터분석을 활용한 누수인지와 오픈소스기반의 수리해석 모델을 활용한 관망시스템 적정 분석을 목표로 ChatGPT와 대화를 진행하고, ChatGPT에 의해 제안된 코드를 구동하여 결과를 분석하였다. ChatGPT가 제시한 코드의 구동결과를 사전에 연구자가 직접 구현한 코드구동 결과와 비교분석하였다. 분석결과 ChatGPT가 제시한 코드가 보다 더 간결할 수 있으며, 상대적으로 경쟁력 있는 결과를 도출하는 것을 확인하였다. 다만, 상대적으로 간결한 코드와 우수한 구동결과를 획득하기 위해서는 해당 도메인의 전문적 지식을 바탕으로 적절한 다수의 질문을 해야 하며, ChatGPT에 의해 작성된 코드의 의미를 명확히 해석하거나 비판적 분석을 하기 위해서는 전문가지식이 반드시 필요함을 알 수 있었다.

  • PDF