본문 바로가기

Testing Tools

(19)
Python Fuzzer - Manul 소개 및 사용법 참고자료 Manul Homepage Manul vs AFL Manul 이란? Manul은 Python으로 작성된 Windows / Linux / macOS에서 사용가능한 병렬 처리를 지원하는 Coverage Guided Fuzzer 이다. AFL과의 성능 비교는 이 곳의 자료를 참고한다. 준비하기 Python으로 작성되어 있어 설치도 매우 쉽다. pip3 install psutil git clone https://github.com/mxmssh/manul 필요하다면, clone 받은 위치를 path 환경 변수에 추가하여 사용한다. Fuzzing 수행 하부 폴더에 이미 저정되어 있는 afl-gcc로 빌드된 바이너리 test_afl을 사용한다. (linux/test/test_afl) 해당 소스코드는 아래와 ..
AFL(American Fuzzy Lop) Fuzzer 사용기 - binutils 대상 참고 자료 FUZZING WITH AFL-FUZZ, A PRACTICAL EXAMPLE (AFL vs BINUTILS) AFL Github AFL Training Github American Fuzzy Lop Homepage AFL이란? SW 버그를 찾기위해 다양한 상황을 고려한 테스트 케이스를 만들어야 하는데 많은 노력이 든다. 이에 테스트 케이스의 입력값을 자동으로 생성하는 다양한 기법들이 있는데, 이 중 유전알고리즘 기반 Fuzzing 기법을 활용한 테스트 케이스 입력값을 자동 생성하는 AFL의 간단한 사용법을 알아보고자 한다. AFL 홈페이지를 찾으면, AFL의 소개를 아래와 같이 하고 있다. (다른 기법인 Concolic Testing 활용은 Link1, Link2를 참고한다.) American..
Mutation testing tool for general language(C/C++ 포함) - mull 설치 1. 개요 C/C++ 대상으로 Mutation Testing 엔진을 찾고 있었는데, 그 중 하나가 Mull 이다. LLVM의 IR을 대상으로 하여 C/C++은 물론 다른 언어도 목표로 두고 있다. 관련 논문(Link)은 다음을 참고한다. Mull : https://github.com/mull-project/mull mull-project/mull LLVM-based mutation testing for C and C++. Contribute to mull-project/mull development by creating an account on GitHub. github.com 2. 사전조건 2.1. docker ubuntu18.04 이미지 설치 굳이 docker를 사용하지 않아도 된다. Ubuntu 1..
MISRA C:2012 를 위한 공개SW(CppCheck) 사용 공개 SW 정적분석 자동화 도구인 CppCheck(http://cppcheck.sourceforge.net/)에서 1.83 버전부터 misra 플러그인을 제공하고 있고, 홈페이지를 확인해보니까 MISRA로부터 정식 라이선스를 구매하여 서비스를 제공하고 있단다. 이 정도 도구를 무료로 사용할 수 있다니 공개SW 만세! https://sourceforge.net/p/cppcheck/discussion/general/thread/ccbe9e89/ cppcheck / Discussion / General Discussion: Use MISRA rules from the GUI? Use MISRA rules from the GUI? Log in to post a comment. © 2019 Slashdot Med..
Concolic testing 과 AddressSanitizer를 사용한 메모리 에러 검출 개요 테스트 케이스 자동생성을 위해 사용하는 기법 중 Concolic Testing이란 기법이 있다.(자세한 내용은 이분야의 대가이신 KAIST 김문주 교수님 홈페이지(Link)에서 알아보기로 하자.) Concolic Testing을 사용하면 소스코드가 가질 수 있는 다양한 패쓰 조합에 대한 테스트 케이스를 생성해주며, 실제 구동함에 따른 결과를 확인할 수 있다. 이에 최근에 메모리 에러 검출에 도움이 되는 AddressSanitizer에 대해 알아보니 두 개 기법을 조합하면 좋을 것 같아 시도해보았다. Concolic Testing : 테스트 케이스 자동 생성 + SW실행 AddressSanitizer : SW실행에 따른 각종 Memory 관련 에러 검출 준비물 CROWN : Concolic Testi..
NVD / CVE / CWE NIST(National Institute of Standards and Technology) : 미국국립표준기술연구소MITRE (마이터) What is NVD?NVD is the U.S. government repository of standards based vulnerability management data. This data enables automation of vulnerability management, security measurement, and compliance What is CVE?CVE is a list of information security vulnerabilities and exposures that aims to provide common names for publicl..
klee 사용해보기 Concolic Testing(Concrete + Symbolic : https://en.wikipedia.org/wiki/Concolic_testing)를 지원하는 오픈소스 프로젝트를 찾다 klee란 프로그램을 찾았다. (CREST란 것도 있다.) LLVM(http://llvm.org/)을 사용하여, 좀 더 정확한 분석을 수행하며, 홈페이지에서 제공하는 튜토리얼(https://klee.github.io/)을 진행해보았다. 1. klee 설치 리눅스 머신에 klee를 직접 설치하는 방법도 있지만, 얼마 전에 docker(https://www.docker.com/)를 설치하였기에 해당 이미지가 있는지 검색해 보았다. Linux가 아니라, Mac 또는 Windows를 사용하고 있다면, Docker Toolb..
Data Anomaly Sample Code1 int t, x, y, z; // Dead Code(t)23 x = 1; // DD Anomaly(x)4 if(y>0) // UR Anomaly(y)5 x=2;6 z=x+1; // DU Anomaly(z) UR Anomaly : A variable not written but read - This is a bug and leads to an error DD Anomaly : A value written twice to a variable - This is ominous but don't have to be a bug DU Anomaly : A variable written but not read - It can be removed to improve the architecture ..