전체 글 182

[5장] Fuzzing: Art, Science, and Engineering 번역

5 INPUT GENERATION Since the content of a test case directly controls whether or not a bug is triggered, the technique used for input generation is naturally one of the most influential design decisions in a fuzzer. Test Case 의 내용에 따라 버그가 트리거 되는지 여부가 직접적으로 결정되기 때문에, input generation은 퍼저에서 가장 중요한 design decision이다. Traditionally, fuzzers are categorized into either generation- or mutation-based f..

[4장] Fuzzing: Art, Science, and Engineering 번역

4 SCHEDULING In fuzzing, scheduling means selecting a fuzz configuration for the next fuzz iteration. As we have explained in §2.1, the content of each configuration depends on the type of the fuzzer. 퍼징에서 스케줄링은 다음 퍼징 반복을 위한 fuzz configuration을 선택하는 것을 의미한다. § 2.1에서 설명한 바와 같이, 각 fuzz configuration의 내용은 퍼저의 유형에 따라 달라진다. For simple fuzzers, scheduling can be straightforward—for example, zzuf [103]..

[3장] Fuzzing: Art, Science, and Engineering 번역

3. PREPROCESS Some fuzzers modify the initial set of fuzz configurations before the first fuzz iteration. 일부 퍼저는 첫 번째 fuzz iteration이 반복되기 전에 fuzz configuration의 초기 세팅을 변경한다. Such preprocessing is commonly used to instrument the PUT, to weed out potentially redundant configurations (i.e., “seed selection” [177]), to trim seeds, and to generate driver applications. 이러한 전처리는 일반적으로 PUT을 계측(instrume..

머신러닝 기반 비트코인 네트워크 불법거래 계정/트랜잭션 탐지 시스템 리뷰

블록체인을 이용한 악성 활동들을 사전에 차단하고, 악성 사용자들을 찾아내기 위하여 블록체인 네트워크의 모니터링, 더 나아가 트랜잭션 및 계정에 대한 탐지 작업은 매우 중요한 문제로 부각되고 있다. 악성 계정과 트랜잭션은 블록체인의 특성상 조기에 발견하거나 탐지하기가 쉽지않다. 이런 문제점을 해결하기 위하여 악성 상용자 및 트랜잭션을 탐지하기 위한 연구가 진행중이나 아직 정확한 검증을 거친 방법론은 미비하다. 따라서 본 논문은 머신러닝을 기반으로 한 비트코인 네트워크의 불법거래 트랜잭션, 계정을 탐지하는 시스템을 제안한다. 비트코인 계정 구조 비트코인의 거래는 계정의 주소를 기반으로 이루어 지는데 각각의 계정은 자신의 공개키, 개인키를 소유하고 있다. 또한 계정 정보에는 계정이 발생시킨 트랜잭션 정보, 잔..

설명 가능한 정기예금 가입 여부 예측을 위한 앙상블 학습 기반 분류 모델들의 비교 분석 리뷰

https://www.kci.go.kr/kciportal/ci/sereArticleSearch/ciSereArtiView.kci?sereArticleSearchBean.artiId=ART002750157 설명 가능한 정기예금 가입 여부 예측을 위한 앙상블 학습 기반 분류 모델들의 비교 분석 정기예금 가입 여부 예측은 은행의 대표적인 금융 마케팅 중 하나로, 은행은 다양한 고객 정보를 활용하여 예측 모델을 구성할 수 있다. 정기예금 가입 여부의 분류 정확도를 향상하기 위해, 많 www.kci.go.kr 본 논문은 정기예금 가입 여부를 예측하기 위해 머신러닝을 사용하고 이때 가장 적합한 머신러닝 모델을 찾아가는 내용이다. 특히 핵심적인 내용은 정기예금 가입 여부 예측을 위해 분류모델 (가입한다 / 안한다)을..

[2장] Fuzzing: Art, Science, and Engineering 번역

The term “fuzz” was originally coined by Miller et al. in 1990 to refer to a program that “generates a stream of random characters to be consumed by a target program” [152,p. 4]. “fuzz”라는 용어는 본래 “타겟 프로그램이 소비(consumed) 할 랜덤 문자열 스트림을 생성하는” 프로그램을 나타내기위해 만들어졌다. 즉, 취약점 탐지와는 무관하게 프로그램에 넣을 인풋들을 랜덤으로 생성하는 프로그램을 나타내는 단어가 "fuzz"였다. Since then, the concept of fuzz as well as its action—“fuzzing”—has appear..

[요약 & 1장] Fuzzing: Art, Science, and Engineering 번역

https://arxiv.org/pdf/1812.00140.pdf Abstract Among the many software vulnerability discovery techniques available today, fuzzing has remained highly popular due to its conceptual simplicity, its low barrier to deployment, and its vast amount of empirical evidence in discovering real-world software vulnerabilities. 다양한 취약점 탐지 기술중에, 퍼징은 큰 인기를 끌고있다. 왜냐하면 개념적인 단순함, 개발의 낮은 진입장벽, 엄청난 양의 real-world 소프..

PLT와 GOT 그리고 동적 라이브러리

PLT와 GOT가 무엇이고 어떤 점이 다른지 동적 라이브러리를 이용한 함수 호출 방법은 어떻게 되는지 알아보자. 라이브러리 : 함수를 모아놓은 파일 정적 라이브러리 : 내가 만든 프로그램에 라이브러리 함수를 직접 삽입 동적 라이브러리 : 메모리에 별도로 라이브러리 파일을 적재한 뒤 함수 주소를 찾아 사용 PLT : 동적 라이브러리를 이용할때 함수 주소를 찾아 실행시켜주는 테이블 GOT : 함수의 실제 주소를 기록해둔 테이블 하나씩 살펴보면 라이브러리 라이브러리란 여러개의 함수가 담겨있는 파일이다. 어렵게 생각하지말자. 그냥 우리가 쓰는 printf, malloc과 같은 함수가 정의되어있는 파일이다. 링크 내가 만든 프로그램에서 사용하는 라이브러리 함수를 실제 연결해주는 행위. 이때 심볼과 함수정의의 차이..

공부/JUN STUDY 2022.05.18

[Dreamhack] Mitigation: Stack Canary

dreamhack.io의 시스템 해킹 로드맵 Mitigation: Stack Canary 를 공부하며 요약해봤다. 핵심 스택 카나리는 스택의 Return Address 변조 방지를 위한 보호기법이다. 카나리 값은 프로그램이 시작하는 시점에 랜덤으로 결정되기때문에, 공격자는 이를 미리 알고 공격을 수행하기 어렵다는 점을 이용한 보호기법이다. 프로그램이 시작하는 시점에 결정되는 값 (스택의 시작주소, 특정 지역 변수 위치, 스택 카나리 값 등등..)은 디버깅이 없으면 알아낼 수 없는 값이기 때문에, 정상적으로 작동되는 프로그램이라면 사용자에게 노출될 일이 없는 값이다. ⇒ 이런 값들이 노출되면 취약점이다. 서론🐤 Exploit Tech: Return Address Overwrite 코스에서는 스택의 반환 주..

728x90