• 제목/요약/키워드: Static Analyzer

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

요약해석을 이용한 버퍼오버런 분석에서 루프 분석결과의 정교화 (Refinement for Loops in Buffer-Overrun Abstract Interpretation)

  • 오학주;이광근
    • 한국정보과학회논문지:컴퓨팅의 실제 및 레터
    • /
    • 제14권1호
    • /
    • pp.111-115
    • /
    • 2008
  • 버퍼오버런 분석기가 루프안에서 발생시키는 허위경보를 간편하고도 효율적으로 줄이는 방법과 경험을 소개한다. 버퍼오버런 분석기는 루프와 배열을 많이 사용하는 프로그램을 분석할 때 많은 허위경보를 발생시킨다. 우리는 먼저 루프를 많이 사용하는 프로그램인 임베디드 프로그램과 암호화 관련 프로그램들에서 발생하는 허위경보를 조사하여 허위경보를 일으키는 루프의 패턴을 조사했다. 그 다음에 그 루프에 특화된 간단하고 효율적인 재분석기를 고안하였다. 우리가 제안하는 재분석기는 분석기가 분석을 끝낸 후 내 놓는 분석결과를 보고 재분석할 목표가 되는 루프만을 찾아서 초벌분석보다 더 정교한 분석을 하여 허위경보를 안전하게 제거한다. 버퍼오버런 분석기인 아이락에 구현하여 실험해본 결과 전체 루프 관련 허위경보 중 32% 가량이 제거되었다.

C 프로그램의 버퍼 오버런(buffer overrun) 오류를 찾아 주는 정적 분석기의 설계와 구현 (Design and Implementation of Static Program Analyzer Finding All Buffer Overrun Errors in C Programs)

  • 이광근;김재황;정영범
    • 한국정보과학회논문지:소프트웨어및응용
    • /
    • 제33권5호
    • /
    • pp.508-524
    • /
    • 2006
  • 이 논문에서는 정적 프로그램 분석(static program analysis)과 통계적 분석(statistical analysis)의 조합을 가지고 실제적인 C 프로그램을 검증한 경험을 보고한다. 정적 분석과 통계적 분석의 조합은 입력 프로그램에 제한을 두지 않는 정적 분석기에서 발생하는 불가피한 허위 경보를 줄이기 위한 것이다. 우리는 ANSI C 프로그램이 실행 중에 겪을 수 있는 모든 배열 참조 오류(buffer overrun)를 찾아주는 정적 프로그램 분석기 아이락(Airac, Array Index Range Analyzer for C)을 고안하고 구현하였다. 분석의 안전성(soundness)을 유지하면서 프로그램 분석 분야에서 오랫동안 축적된 기술들을 활용하여 분석 비용 절감 및 정확도 향상을 달성했다. 대상 프로그램에 제한을 두지 않는 안전한 분석은 정확도에 한계가 있으므로 불가피한 허위 경보가 존재할 수 있다. 이러한 허위 경보(예를 들어 530만 줄짜리 상용 C 프로그램에 대한 분석 결과 아이락은 970개의 배열 참조 오류 경보를 발생시켰으나 그 중 737개는 허위 경보였다.)에 대처하기 위해 우리는 통계적 사후 분석을 시도하였다. 통계적 사후 분석은 주어진 경보가 실제 오류를 가리킬 확률을 계산한다. 이렇게 계산된 확률은 두 가지 방법으로 사용된다. 1) 경보를 걸러내거나, 2) 실제 오류에 대한 경보일 가능성이 높은 것들을 우선적으로 사용자에게 보여준다. 우리는 리눅스 커널 프로그램과 알고리즘 교과서의 프로그램들을 대상으로 실험을 수행했다. 우리 실험에서 실제 오류를 놓칠 위험이 허위 경보의 위험의 3배라고 설정한 경우 74.83%의 허위 경보를 걸러낼 수 있었고, 참일 확률이 높은 경보부터 검증하는 경우 15.17%의 허위 경보만이 실제 오류 50%와 섞여 있었다.

PHP 파일 삽입 취약성 검사를 위한 정적 분석기의 구현 (Implementation of a Static Analyzer for Detecting the PHP File Inclusion Vulnerabilities)

  • 안준선;임성채
    • 정보처리학회논문지A
    • /
    • 제18A권5호
    • /
    • pp.193-204
    • /
    • 2011
  • 인터넷 상의 웹 응용 프로그램은 불특정 다수의 사용자가 접근할 수 있기 때문에 보안상의 위험이 가중된다. 특히, 응용 프로그램의 소스코드에 보안 취약성이 있을 경우에는 침입 탐지 시스템과 같은 시스템 수준의 방어가 어렵기 때문에 이를 미리 제거하는 것이 중요하다. 본 논문에서는 웹 응용 프로그램의 대표적인 소스 코드 취약성인 PHP 파일 삽입 취약성을 자동으로 검출할 수 있는 정적 분석기의 구현에 대해 다룬다. 본 연구에서는 의미 기반의 정적 분석을 사용하여 소스 코드의 취약성을 미리 자동으로 검출하고 수정하도록 함으로써, 기존의 침입 테스트 기법이나 응용 프로그램 방화벽 사용과 다르게 보안 취약성을 안전하게 제거하면서 추가적인 실행 시간 부하를 피하고자 하였다. 이를 위하여 의미 기반 분석 방법인 요약 해석 방법론을 적용했으며, PHP 삽입 취약성에 최적화된 요약 분석 공간을 설계하여 사용함으로써 PHP의 특성인 복잡한 문자열 기반 자료 흐름을 효과적으로 처리하면서 목적으로 하는 취약성을 효과적으로 검출할 수 있었다. 프로그램의 취약성 분석 결과는 Java GUI 도구를 통해 확인할 수 있으며, 분석된 취약성 지점에서의 메모리 상태 및 계산 정보도 같은 도구를 사용해 확인할 수 있다. 구현된 분석기의 취약성 검출의 정확성과 실행 속도를 검증하기 위하여 공개된 PHP 프로그램을 사용하여 성능 실험을 수행하였으며, 이를 통해 구현된 분석기의 실용성을 확인하였다.

웹 응용 프로그램의 문자열 삽입 보안 취약성 분석기 개발 (Development of a String Injection Vulnerability Analyzer for Web Application Programs)

  • 안준선;김영민;조장우
    • 정보처리학회논문지A
    • /
    • 제15A권3호
    • /
    • pp.181-188
    • /
    • 2008
  • 오늘날 대부분의 웹사이트는 웹 응용 프로그램이 적절한 웹 페이지를 생성하여 전송하는 형태인 동적 웹페이지를 사용하고 있다. 이에 대하여, 취약한 웹 응용 프로그램에 악의적인 문자열을 전달하는 공격의 형태가 증가하고 있다. 본 논문에서는 대표적인 문자열 삽입 공격인 SQL 삽입(SQL Injection) 공격과 크로스 사이트 스크립팅(Cross Site Scripting, XSS) 공격에 대하여 웹 응용 프로그램내의 보안 취약성을 자동으로 찾아 주는 프로그램 정적 분석기를 개발하였다. 요약 해석을 사용한 프로그램 분석을 위하여 가능한 문자열 값을 제외 문자열들과 함께 표현하는 요약 자료 공간과 PHP 언어의 요약된 의미 규칙을 설계하였으며, 이를 기반으로 분석기를 구현하였다. 또한 개발된 분석기가 기존의 연구 결과와 비교하여 경쟁력 있는 분석 속도와 정밀도를 가짐을 실험을 통하여 보였다.

Micro-stereolithography 기술을 이용한 용액분석 소자 제작 (Fabrication of the Liquid Analyzer us ing Micro-stereolithography Technology)

  • 이영태
    • 한국전기전자재료학회논문지
    • /
    • 제14권12호
    • /
    • pp.994-1000
    • /
    • 2001
  • In this paper, using micro-stereolithography technology, I fabricated a liquid analyzer to measure ion concentration of a solution. Micro-stereolithography is a technology to fabricate 3-dimensional structure by applying laser beam on liquid photo-polymer. This technology makes it possible to do preassemble fabrication without any extra assembling step after the process. So, the liquid analyzer could be fabricated at very low cost with very simple process by micro-stereolithography technology. The liquid analyzer consists of a chamber for containing the solution, a pump using piezoelectric effect of PZT disk, a static mixer and a sensor for measuring ion concentration using Pt electrodes.

  • PDF

Acoustic Emission(AE)을 이용한 복합재료 구조물의 비파괴 특성 연구 (A study on the non-destructive characteristics of the composite structures using the Acoustic Emission)

  • 이창훈;최진호;권진회;변준형;유연호
    • 한국복합재료학회:학술대회논문집
    • /
    • 한국복합재료학회 2004년도 춘계학술발표대회 논문집
    • /
    • pp.139-142
    • /
    • 2004
  • As fiber reinforced composite materials are widely used in aircraft, space structures and robot arms, the study on the non-destructive testing methods of the composite materials has become an important research area for improving their reliability and safety. In this paper, the AE signal analyzer with the resonance circuit to extract the specified frequency of the acoustic emission signal were designed and fabricated. The noise levels of the fabricated AE signal analyzer by the disturbance such as impact or mechanical vibration had a very small value comparable to those of the conventional AE signal analyzer. Also, the crack detection capabilities of the fabricated AE signal analyzer under the static and dynamic tensile test were evaluated and compared with the conventional AE signal analyzer.

  • PDF

아이락: C 프로그램의 메모리 오류 정적 분석기 (Airac: Static Analyzer for Automatic Verification of Array Index Ranges in C Programs)

  • 정영범;김재황;신재호;이광근
    • 한국정보과학회:학술대회논문집
    • /
    • 한국정보과학회 2005년도 가을 학술발표논문집 Vol.32 No.2 (2)
    • /
    • pp.964-966
    • /
    • 2005
  • 아이락(Airac)은 C 프로그램의 버퍼오버런(buffer overrun)오류를 찾아주는 정적 프로그램 분석기(static program analyzer)이다. 아이락은 요약해석(abstract interpretation)의 틀 속에서 디자인되었다. 설계 및 구현 과정에서 프로그램 분석 분야에서 축적되어온 다양한 기술들을 적용하여 분석의 성능 및 정확도 향상을 이룩하였다. 아이락은 리눅스 커널(linux kernel), GNU 소프트웨어, 상용 소프트웨어등에 적용되어 오류를 찾아냈다.

  • PDF

Evaluation of Static Analyzers for Weakness in C/C++ Programs using Juliet and STONESOUP Test Suites

  • Seo, Hyunji;Park, Young-gwan;Kim, Taehwan;Han, Kyungsook;Pyo, Changwoo
    • 한국컴퓨터정보학회논문지
    • /
    • 제22권3호
    • /
    • pp.17-25
    • /
    • 2017
  • In this paper, we compared four analyzers Clang, CppCheck, Compass, and a commercial one from a domestic startup using the NIST's Juliet test suit and STONESOUP that is introduced recently. Tools showed detection efficacy in the order of Clang, CppCheck, the domestic one, and Compass under Juliet tests; and Clang, the domestic one, Compass, and CppCheck under STONESOUP tests. We expect it would be desirable to utilize symbolic execution for vulnerability analysis in the future. On the other hand, the results of tool evaluation also testifies that Juliet and STONESOUP as a benchmark for static analysis tools can reveal differences among tools. Finally, each analyzer has different CWEs that it can detect all given test programs. This result can be used for selection of proper tools with respect to specific CWEs.