년 - 년
버퍼 오버플로우 취약점 탐지를 위한 퍼징 에이전트 구현 KCI 등재
한국융합학회 한국융합학회논문지 제12권 제1호 2021.01 pp.11-17
※ 기관로그인 시 무료 이용이 가능합니다.
4,000원
네트워크에 연결되는 소프트웨어에서 사용자의 권한을 획득할 수 있는 취약점이 존재한다면, 컴퓨터의 사용 권한을 원격지의 공격자가 획득할 수 있게 된다. 또한 특정 계열에 대한 운영체제의 점유율이 높은 사용자 환경에서는 해당 운영체제에서 문제가 발생하면 보다 큰 피해가 발생될 수 있다. 특히, 보안상 취약점을 가지는 오류가 발견된다면 상당히 큰 문제가 될 수 있다. 이러한 환경 속에서 취약점을 발견하고 대응하기 위한 다양한 연구들이 진행되어왔으며, 퍼징 기법은 소프트웨어에 있는 오류를 찾아내는 가장 효과적인 기술 중 하나이다. 본 논문에서는 다양한 어플리케이션 에서 발생할 수 있는 버퍼 오버플로우 취약점을 탐지할 수 있는 퍼징 에이전트를 설계하고 구현하고자 한다. 이러한 퍼징 에이전트를 통해 어플리케이션 개발자들이 스스로 어플리케이션의 취약점을 발견하고 수정할 수 있는 보다 안전한 컴퓨팅 환경을 실현할 수 있을 것이다.
If a vulnerability in the software connected to the network to obtain the user's privilege, a remote attacker could gain the privilege to use the computer. In addition, in a user environment in which an operating system for a specific series is used a lot, if a problem occurs in the operating system, considerable damage can occur. In particular, If an error is a security vulnerability, it can be a very big problem. Various studies have been conducted to find and respond to vulnerabilities in such a situation. Among various security technologies, the fuzzing technology is one of the most effective technologies to find errors in software. In this paper, I designed and implemented a fuzzing agent that can detect buffer overflow vulnerabilities that can occur in various applications. Through this fuzzing agent, application developers will be able to realize a more secure computing environment in which they can discover and fix vulnerabilities in their own applications.
Non-Random CAN Fuzzing을 통한 효율적인 ECU 분석 기술
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.30 No.6 2020 pp.1115-1130
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
최근 출시된 차량에는 다수의 ECU(Electronic Control Unit)가 탑재되어 있고, 각 ECU들은 CAN(Controller Area Network)을 통해 통신함으로써 차량을 효율적으로 제어할 수 있다. 하지만 CAN 통신에는 암호화 및 인증 기술이 적용되어 있지 않고, 접근 제어가 없는 Broadcast 방식으로 통신이 이루어지므로 보안에 취약하다는 문제점이 존재한다. 이러한 취약점을 이용하여 차량 제어 등의 수많은 차량 해킹 공격이 이루어지고 있으며 그에 대응하기 위한 연구 또한 진행되고 있다. 차량 해킹 대응 기술들 중에는 완성차에 탑재된 ECU의 취약점을 분석할 수 있는 CAN Fuzzing 기술이 존재한다. 하지만 기존의 CAN Fuzzing 기술들은 ECU들이 전송하는 CAN 메시지 구조를 고려하지 않고 Random한 방식으로 Fuzzing을 진행하기 때문에 많은 시간이 소요된다. 또한, 기존 CAN Fuzzing 기술은 Fuzzing 결과를 모니터링하는 방법에도 한계점이 존재한다. 이러한 CAN Fuzzing 기술의 한계를 해결하고자 본 논문에서는 CAN 메시지의 구조를 분석하고, 이를 바탕으로 ECU의 이상 작동 현상을 유발시킬 수 있는 Fuzzing 입력값을 생성하는 Non-Random CAN Fuzzing 기법을 제안한다. Non-Random CAN Fuzzing은 기존 Random CAN Fuzzing에 비해 소요되는 시간을 절약할 수 있고, 이를 통해 SW 구현 오류 혹은 CAN DBC(Database CAN) 설계 오류 등으로 인해 존재할 수 있는 ECU의 이상 작동 현상과 연관된 CAN 메시지들을 빠르게 발견할 수 있다. 제안하는 Non-Random CAN Fuzzing의 성능을 평가하기 위해 제안 기법을 실제 차량에 적용하였으며 ECU에 이상 작동 현상을 일으킬 수 있는 CAN 메시지를 확인하였다.
Modern vehicles are equipped with a number of ECUs(Electronic Control Units), and ECUs can control vehicles efficiently by communicating each other through CAN(Controller Area Network). However, CAN bus is known to be vulnerable to cyber attacks because of the lack of message authentication and message encryption, and access control. To find these security issues related to vehicle hacking, CAN Fuzzing methods, that analyze the vulnerabilities of ECUs, have been studied. In the existing CAN Fuzzing methods, fuzzing inputs are randomly generated without considering the structure of CAN messages transmitted by ECUs, which results in the non-negligible fuzzing time. In addition, the existing fuzzing solutions have limitations in how to monitor fuzzing results. To deal with the limitations of CAN Fuzzing, in this paper, we propose a Non-Random CAN Fuzzing, which consider the structure of CAN messages and systematically generates fuzzing input values that can cause malfunctions to ECUs. The proposed Non-Random CAN Fuzzing takes less time than the existing CAN Fuzzing solutions, so it can quickly find CAN messages related to malfunctions of ECUs that could be originated from SW implementation errors or CAN DBC(Database CAN) design errors. We evaluated the performance of Non-Random CAN Fuzzing by conducting an experiment in a real vehicle, and proved that the proposed method can find CAN messages related to malfunctions faster than the existing fuzzing solutions.
macOS XPC 메시지 구조 추출 기반 퍼징 기법 연구
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.36 No.2 2026 pp.443-452
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
마이크로커널은 드론, IoT 기기, 위성 등 다양한 시스템에서 널리 사용된다. 이러한 시스템은 주로 메시지를 기반으로 프로세스 간 통신(IPC)을 수행하므로, 특정 프로세스의 취약점을 탐지하기 위해서는 변이된 메시지를 입력으로 사용하는 퍼징 기법이 활용될 수 있다. 특히, 퍼징의 성능을 향상시키기 위해서는 메시지 형식을 보존하면서 내용에 변이를 가하는 것이 중요하다. 소스코드가 제공되는 환경에서는 메시지 구조를 분석하고 이에 기반한 퍼징이 상대적으로 용이하다. 그러나 바이너리를 기반으로 퍼징을 수행하는 경우, 메시지 형식을 추정하기 위해 정적 및 동적 분석 등 상당한 노력이 요구된다. 본 논문에서는 비공개 마이크로커널 기반 운영체제인 macOS를 대상으로 메시지 기반 퍼징을 수행하기 위한 방법을 설계하고, 그 효용성을 실험을 통해 검증하였다. 실험을 위해 CVMServer 데몬을 대상으로 48시간 동안 퍼징을 수행하였으며, 그 결과 널 포인터 역참조(null pointer dereference) 취약점을 발견하였다.
Microkernels are widely used in various systems such as drones, IoT devices, and satellites. These systems primarily perform inter-process communication (IPC) based on message exchange. Therefore, to identify vulnerabilities in specific processes, fuzzing techniques that use mutated messages as input can be employed. To improve the effectiveness of fuzzing, it is important to preserve the structure of the message while introducing mutations to its content. In environments where source code is available, it is relatively easy to analyze the message structure and perform structure-aware fuzzing. However, when performing fuzzing based on binary code, significant effort is required to infer the message format through static and dynamic analysis. In this paper, we propose a method for performing message-based fuzzing in a microkernel environment-macOS-whose source code is not available, and we verify its effectiveness through experiments using the CVMServer daemon. By applying the proposed method, we performed 48 hours of fuzzing on the daemon and discovered a null pointer dereference vulnerability
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.32 No.2 2022 pp.417-437
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
Fuzzing에서 seed corpus의 품질은 취약점을 보다 빠르게 찾기 위해서 중요한 요소 중 하나라고 할 수 있다. 이에 dynamic taint analysis와 symbolic execution 기법 등을 활용하여 효율적인 seed corpus를 생성하는 연구들이 진행되어왔으나, 높은 전문 지식이 요구되고, 낮은 coverage로 인해 광범위한 활용에 제약이 있었다. 이에 본 논문에서는 자연어 처리 모델인 Sequence-to-Sequence 모델을 기반으로 seed corpus를 생성하는 DDRFuzz 시스템을 제안한다. 본 논문에서 제안하는 시스템은 멀티미디어 파일을 입력값으로 하는 5개의 오픈소스 프로젝트를 대상으로 관련 연구들과 비교하여 효과를 검증하였다. 실험 결과, DDRFuzz가 coverage와 crash count 측면에서 가장 뛰어난 성능을 나타냄을 확인할 수 있었고, 또한 신규 취약점을 포함하여 총 3개의 취약점을 탐지하였다.
The quality of the fuzzing seed file is one of the important factors to discover vulnerabilities faster. Although the prior seed generation paradigm, using dynamic taint analysis and symbolic execution techniques, enhanced fuzzing efficiency, the yare not extensively applied owing to their high complexity and need for expertise. This study proposed the DDRFuzz system, which creates seed files based on sequence-to-sequence models. We evaluated DDRFuzz on five open-source applications that used multimedia input files. Following experimental results, DDRFuzz showed the best performance compared with the state-of-the-art studies in terms of fuzzing efficiency.
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.32 No.6 2022 pp.1121-1125
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
펌웨어 취약점을 찾기 위한 퍼징 기법인 HAL-Fuzz는 MCU 벤더에서 제공하는 하드웨어 추상 계층의 HAL 함수를 이용하는 효율적인 기법이다. 하지만 정확한 HAL 함수를 사용하지 않는 대부분의 펌웨어는 다룰 수가 없다. 본 논문에서는 유사 HAL 함수 탐색이라는 새로운 방식을 제안하고 HAL-Fuzz의 퍼징 가용성을 높이고자 한다. 실험을 통해 HAL 함수뿐만 아니라 개발자 구현 유사 HAL 함수도 탐색하였으며 퍼징이 가능함을 확인하였다.
HAL-Fuzz, a fuzzing technique to find firmware vulnerabilities, is efficient by using the HAL function of the hardware abstraction layer provided by MCU vendors. However, it cannot handle most firmware that unused the exact HAL function. In this paper, we propose a new method for identifying pseudo-HAL functions to increase the fuzzing availability of HAL-Fuzz. In experiments, we identified not only the HAL but also the pseudo-HAL functions, implemented by the developer, and that fuzzing is possible.
테스트 프레임워크를 활용한 라이브러리 퍼징 환경 구축 자동화
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.31 No.4 2021 pp.587-604
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
라이브러리는 독립적으로 실행되지 않고 많은 응용 프로그램에서 사용되므로, 라이브러리의 취약점을 사전에 탐지하는 것은 중요하다. 라이브러리 취약점을 탐지하기 위해 동적 분석 방법인 퍼징이 사용되고 있다. 퍼징 기술은 코드 커버리지 및 크래시 발생 횟수 측면에서 개선된 결과를 보여주지만, 그 효과를 라이브러리 퍼징에 적용하기는 쉽지 않다. 특히, 라이브러리의 다양한 상태를 재현하려면 특정 함수 시퀀스를 호출하고 퍼저의 입력을 전달하여 라이브러리 코드를 실행하는 퍼징 대상 파일과 시드 코퍼스가 필요하다. 그러나 퍼징 환경(시드 코퍼스, 퍼징 대상 파일)을 준비하는 것은 라이브러리에 대한 이해와 퍼징에 대한 이해가 동시에 필요한 어려운 일이다. 이에, 본 논문에서는 테스트 프레임워크를 활용하여 라이브러리 퍼징의 용이성을 확보하고, 코드 커버리지와 크래시 탐지 성능을 향상하기 위한 개선 방법을 제안한다. 본 논문에서 제안한 시스템은 9개의 오픈 소스 라이브러리에 적용하여 기존 연구들과 비교를 통한 개선 효과를 검증하였다. 실험 결과 코드 커버리지 31.2%, 크래시 탐지 기준 58.7%의 개선효과를 확인하였고, 3개의 알려지지 않는 취약점을 탐지하였다.
Because the library cannot be run independently and used by many applications, it is important to detect vulnerabilities in the library. Fuzzing, which is a dynamic analysis, is used to discover vulnerabilities for the library. Although this fuzzing technique shows excellent results in terms of code coverage and unique crash counts, it is difficult to apply its effects to library fuzzing. In particular, a fuzzing executable and a seed corpus are needed that execute the library code by calling a specific function sequence and passing the input of the fuzzer to reproduce the various states of the library. Generating the fuzzing environment such as fuzzing executable and a seed corpus is challenging because it requires both understanding about the library and fuzzing knowledge. We propose a novel method to improve the ease of library fuzzing and enhance code coverage and crash detection performance by using a test framework. The systems's performance in this paper was applied to nine open-source libraries and was verified through comparison with previous studies.
임베디드 디바이스 펌웨어의 웹 인터페이스 취약점 식별을 위한 에뮬레이션 기반 퍼징 기법
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.29 No.6 2019 pp.1225-1234
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
임베디드 디바이스의 대중화로 인해 펌웨어의 보안은 더욱 중요해지고 있다. 유무선 공유기와 같은 네트워크 장비는 내재된 펌웨어의 웹 인터페이스 취약점을 통해 외부의 공격자로부터 피해를 받을 수 있기 때문에 빠르게 찾아내어 제거해야 한다. 이전 연구인 Firmadyne 프레임워크는 펌웨어를 에뮬레이션 한 뒤 취약점을 찾아내기 위한 동적 분석 방법을 제안한다. 그러나 이는 도구에서 정의된 분석 방법대로만 취약점 점검을 수행하므로 찾을 수 있는 취약점의 범위가 한정되어 있다. 본 논문에서는 소프트웨어 보안 테스트 기술 중 하나인 퍼징을 통해 에뮬레이션 기반 환경에서의 퍼징 테스트를 수행한다. 또한 효율적인 에뮬레이션 기반 퍼징을 위해 Fabfuzz 도구를 제안한다. 실험을 통해 확인한 결과 기존 도구에서 식별했던 취약점뿐만 아니라 다른 유형의 취약점도 발견할 수 있다.
The security of the firmware is more important because embedded devices have become popular. Network devices such as routers can be attacked by attackers through web application vulnerabilities in embedded firmware. Therefore, they must be found and removed quickly. The Firmadyne framework proposes a dynamic analysis method to find vulnerabilities after emulating firmware. However, it only performs vulnerability checks according to the analysis methods defined in the tool, thus limiting the scope of vulnerabilities that can be found. In this paper, fuzzing is performed in emulation-based environment through fuzzing, one of the software security test techniques. We also propose a Fabfuzz tool for efficient emulation based fuzzing. Experiments have shown that in addition to the vulnerabilities identified in existing tools, other types of vulnerabilities have been found.
DRLIM: 동적 관계 학습을 통한 하이브리드 펌웨어 퍼징
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.35 No.6 2025 pp.1415-1430
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
임베디드 장치의 보편화와 함께 펌웨어 보안의 중요성이 급증하고 있으나. 하드웨어 의존성이 높은 펌웨어의 특성은 기존 소프트웨어 테스팅 기법의 직접적인 적용을 어렵게 만든다. 최근 에뮬레이션 기반의 펌웨어 퍼징 기술이 유망한 대안으로 부상했지만, 최신 퍼지들 조차 입력 데이터 내에 존재하는 체크섬, CRC와 같은 알고리즘적 제약 조건 앞에서 커버리지가 정체되는 심각한 한계를 보인다. 이로 인해 제약 조건 뒤에 숨겨진 핵심 로직과 잠재적 취약점들은 미탐지 영역으로 남게 된다. 본 논문에서는 이러한 문제를 해결하기 위해 DRLIM(Dynamic Relation Learning for Intelligent Mutation) 을 제안한다. DRLIM은 고속의 커버리지 기반 퍼짐과 정밀한 동적 분석을 결합한 하이브리드 프레임워크로, 커버리지 정체를 감지하면 학습 루프를 활성화한다. 이 루프는 동적 테인트 분석과 제한적 기호 실행을 통해 입력 데이터 간의 관계를 자동으로 학습하고, 이를 구조 인식 변이 전략에 통합하여 제약조건을 만족하는 유효한 입력을 지능적으로 생성한다. 10개의 실제 오픈소스 펌웨어에 대한 평가 결과 . DRLIM은 알고리즘적 제약 조건이 존재하는 펌웨어에서 기존 최신 기술 대비 코드 커버리지를 평균 1.23배 향상시켰으며, 제약 조건 뒤에 숨겨진 코드 경로에 도달함으로써 기존에 알려지지 않았던 새로운 취약점을 발견하였다. 이는 DRLIM이 커버리지 정체 문제를 효과적으로 해결하고, 실질적인 보안 취약점 발견 능력을 크게 향상시키는 실용적인 프레임워크임을 실험적으로 입증한다.
With the proliferation of embedded devices, the importance of firmware security has surged. However, the hardware-dependent nature of firmware complicates the direct application of conventional software testing techniques. While emulation-based firmware fuzzing has emerged as a promising alternative, even state-of-the-art fuzzers face a critical limitation: coverage stagnation when encountering algorithmic constraints such as checksums and CRCs within input data. Consequently, the core logic and potential vulnerabilities protected by these constraints remain undiscovered. To address this challenge, this paper introduces DRLIM (Dynamic Relation Learning for Intelligent Mutation), a hybrid framework that combines high-speed, coverage-guided fuzzing with precise dynamic analysis. Upon detecting coverage stagnation, DRLIM activates a learning loop, composed of dynamic taint analysis and targeted symbolic execution, to automatically learn the implicit relationships between input data fields. This learned knowledge is then integrated into a structure-aware mutation strategy to intelligently generate valid inputs that satisfy the constraints. Our evaluation on 10 real-world open-source firmware targets demonstrates that DRLIM increases code coverage by an average of 1.23x over the state-of-the-art on firmware with algorithmic constraints. Furthermore, by reaching code paths hidden behind these constraints, DRLIM discovered a previously unknown vulnerability. These results experimentally validate that DRLIM is a practical framework that effectively solves the coverage stagnation problem and significantly enhances the capability to discover real-world security vulnerabilities.
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.35 No.2 2025 pp.323-334
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
최근 대규모 언어 모델(LLM)의 발전은 코드 수준의 맥락 이해와 생성 능력을 바탕으로 보안 분야에서도 새로운 가능성을 제시하고 있다. 본 연구에서는 이러한 LLM을 활용하여 웹 애플리케이션 환경에서 발생하는 SQL 인젝션 취약점을 효율적으로 탐지하기 위한 변이 엔진과 탐지 엔진으로서의 가능성을 실험한다. 구체적으로, LLM을 변이 엔진으로 활용하여 단순 문자열 변이를 넘어 실제 SQL 맥락에 부합하는 정교한 공격 페이로드를 자동 생성하고, 탐지 엔진으로서 LLM을 활용하여 SQL 맥락 변화를 인식하고 즉각적으로 취약점을 판별하는지 검증한다. 실험 결과, 본 접근법은 공격 페이로드를 상황에 맞게 작성하는 것을 확인하였으며, SQL 맥락을 이해하여 다양한 인젝션 패턴을 포착함으로써 더욱 효과적인 보안 기술로 사용할 수 있음을 확인하였다.
The recent advancement of large language models (LLM) is also presenting new possibilities in the security field based on code-level contextual understanding and generation capabilities. In this study, we use these LLMs to test the potential as a mutation engine and detection engine to efficiently detect SQL injection vulnerabilities in web application environments. Specifically, LLM is used as a mutation engine to automatically generate sophisticated attack payloads that fit the actual SQL context beyond simple string variation, and LLM is used as a detection engine to verify that changes in SQL context are recognized and vulnerabilities are immediately identified. As a result of the experiment, it was confirmed that this approach can be used as a more effective security technology by understanding the SQL context and capturing various injection patterns.
FuzzGPT: 테스트 케이스 최적화를 위한 LLM 기반 프롬프트 엔지니어링 퍼징 기법
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.34 No.6 2024 pp.1517-1525
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
소프트웨어 정의 서비스 (Software Defined Service) 환경이 전 산업으로 확대됨에 따라 소프트웨어의 취약점을 효율적으로 탐지할 수 있는 기술에 대한 수요가 증가하고 있다. 종래의 범용 무작위 퍼징 기법들은 탐지 성능과 커버리지가 우수하지만, 퍼징 대상 프로그램이 복잡할수록 의미 있는 테스트 케이스를 생성하기 어렵고 오버헤드가 증가하는 한계점이 있다. 따라서 본 논문에서는 LLM 모델을 대상으로 한 프롬프트 엔지니어링 기법을 활용하여 퍼징 대상 프로그램의 문맥과 구조를 파악하여 최적의 테스트 케이스를 생성하는 LLM 기반 프롬프트 엔지니어링 퍼징 기법을 제안한다. 실험 결과에 따르면 제안한 방법은 종래의 무작위 데이터를 사용한 무작위 퍼저 대비 크래시 탐지율을 48% 개선할 수 있었다.
As the Software Defined Service(SDS) environment expands to all industries, the demand for technologies that can efficiently detect software vulnerabilities is increasing. Conventional general-purpose random fuzzing techniques have excellent detection performance and coverage, but they share a common limitation in that it is difficult to generate meaningful test cases, and the overhead increases as the complexity of the target program for fuzzing grows. Therefore, in this paper, we propose an LLM prompt engineering-based fuzzing technique that uses the LLM model to identify the context and structure of the target program for fuzzing and generates optimal test cases. Experimental results demonstrate that the proposed method enhances the crash detection rate by 48% compared to traditional random fuzzers utilizing random data.
고효율 고신뢰 펌웨어의 최적화된 퍼징을 위한 이벤트 데이터 레코딩 기법
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.35 No.1 2025 pp.79-85
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
IoT(Internet of Things)가 일상생활과 산업에 널리 사용되면서 대규모 IoT 네트워크 환경에서 데이터를 효율적으로 처리하고 보호하는 것이 중요해졌다. 그리고 무선 네트워크 장치의 펌웨어 취약점이 IoT의 보안 문제와 직결됨에 따라 취약점을 적시에 발견하고 패치하는 것이 중요해졌다. 그러나 종래의 IoT 보안 매커니즘은 무작위 퍼징 방식으로 취약점을 탐지하여 발견한 취약점을 패치하기 위해 무선 펌웨어 업데이트를 수행하므로 취약점을 신속하고 효율적으로 탐지 및 제거하지 못한다. 본 논문에서는 무선 커넥티비티 장치의 펌웨어 패치 여부를 효율적으로 검증하기 위한 EDR(Event Data Recording) 기반의 퍼징 기법을 제안한다. 실험 결과에 따르면, 종래모델 대비 취약점 탐지율은 평균 90% 증가하였으며, 취약점 탐지 속도는 89.15% 개선되었다.
As the Internet of Things (IoT) continues to be widely used in daily life and industry, efficiently processing and protecting data in large-scale IoT networks has become increasingly important. Furthermore, vulnerabilities in the firmware of wireless network devices are directly linked to IoT security issues, making it critical to promptly identify and patch these vulnerabilities. However, conventional IoT security mechanisms rely on random fuzzing techniques to detect vulnerabilities and perform wireless firmware updates to patch them. This prevents the swift and efficient detection and resolution of vulnerabilities. This paper proposes an event data recording (EDR)-based fuzzing technique to efficiently verify firmware patch status in wireless connectivity devices. Experimental results show that, compared to conventional models, vulnerability detection rates increased by an average of 90%, and vulnerability detection speed improved by 89.15%.
암호 라이브러리 퍼징을 위한 LLM 기반 하네스 자동 생성 연구
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.35 No.4 2025 pp.773-782
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
암호 라이브러리는 다양한 분야에서 보안의 핵심 요소로 활용되며, 이로 인해 발생하는 취약점은 심각한 보안 위협으로 이어질 수 있다. 이러한 취약점을 식별하기 위한 대표적인 기법으로 퍼징이 있으며, 복잡하고 구조화된 암호 라이브러리를 효과적으로 퍼징하기 위해서 하네스(harness)가 일반적으로 사용된다. 하네스의 다양성은 퍼징 탐색성능에 큰 영향을 미치므로, 이를 확보하는 것은 매우 중요한 과제이다. 하지만 하네스를 생성하는 것은 전문적인 도메인 지식을 요구하며, 반복적이고 시간 소모적인 작업이다. 본 논문에서는 LLM을 활용하여 하네스 생성 과정의 두 가지 주요 단계를 자동화하는 프레임워크를 제안한다. 첫째, LLM에 기존 하네스 코드와 라이브러리 문서 가이드를 제공하여, 추가적인 하네스 구현이 필요한 API를 식별한다. 둘째, 파인튜닝된 LLM 모델을 이용하여 필요한 하네스 코드를 자동으로 구현한다. 제안된 프레임워크에 대해 실험을 진행하여 해당 연구가 일정 수준 이상의 품질을 가진 하네스를 반복적으로 생성할 수 있으며, 이렇게 생성한 하네스가 실질적인 코드 커버리지 증가에 기여함을 입증하였다.
Cryptographic libraries serve as critical components in ensuring security across various domains, and vulnerabilities within these libraries can lead to severe security threats. Among the approaches used to uncover such vulnerabilities, fuzzing is recognized as one of the most prominent techniques. To effectively fuzz complex and structured cryptographic libraries, harnesses are commonly employed. The diversity of harnesses significantly influences the efficiency of fuzzing exploration, making their generation a crucial task. However, creating harnesses typically requires domain-specific expertise and involves repetitive, time-consuming effort. In this paper, we propose a framework that automates two major steps in the harness generation process by leveraging large language models. The proposed framework first identifies APIs requiring additional harnesses by analyzing existing harness code and library documentation. Then, a fine-tuned LLM automatically generates the corresponding harness code. Experimental results confirm the framework's ability to generate harnesses of acceptable quality and improve code coverage, demonstrating its effectiveness.
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.34 No.5 2024 pp.973-980
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
퍼징은 프로그램을 테스트하기 위해 많은 테스트케이스를 생성하고 예외 상황을 모니터링하는 자동화된 테스팅 기술이다. 최근 퍼징 과정에서 발생하는 다양한 문제를 해결하기 위해 기계학습을 적용한 퍼징 연구가 활발히 제안되고 있지만, 기계학습을 적용한 퍼징 연구에 대한 종합적인 평가는 부족하다. 본 논문에서는 퍼징의 스케줄링 기법에 기계학습을 적용한 최신 연구들을 강화학습 기반과 지도학습 기반 퍼저로 분류하여 분석하였다. 분석된 기계학습 기반 퍼저들을 서로 다른 네 가지의 파일 포맷을 사용하는 리얼월드 프로그램에 적용하여 커버리지 확보 성능을, LAVA-M 데이터셋을 사용하여 버그 탐지 성능을 확인하였다. 실험 결과, 시드 클러스터링 기법과 강화학습을 통한 시드 스케줄링 기법을 적용한 AFL-HIER가 커버리지 확보와 버그 탐지 성능에서 우수한 성과를 보였다. 지도학습의 경우, 코드 복잡도가 높은 tcpdump를 대상으로 높은 커버리지 확보를 보였으며, 하이브리드 퍼징에 적용하였을 때 버그 탐지 성능이 뛰어났다. 본 연구는 기계학습과 퍼징 과정을 최적화하는 추가적인 기법을 함께 적용하였을 때 커버리지 확보와 버그 탐지 성능이 우수하다는 점을 보여주었다. 향후 다양한 입력 포맷을 다루는 프로그램에 효과적으로 적용할 수 있는 실용적이고 강력한 기계학습 기반 퍼징 기법에 대한 연구가 필요하다.
Fuzzing is an automated testing technique that generates a lot of testcases and monitors for exceptions to test a program. Recently, fuzzing research using machine learning has been actively proposed to solve various problems in the fuzzing process, but a comprehensive evaluation of fuzzing research using machine learning is lacking. In this paper, we analyze recent research that applies machine learning to scheduling techniques for fuzzing, categorizing them into reinforcement learning-based and supervised learning-based fuzzers. We evaluated the coverage performance of the analyzed machine learning-based fuzzers against real-world programs with four different file formats and bug detection performance against the LAVA-M dataset. The results showed that AFL-HIER, which applied seed clustering and seed scheduling with reinforcement learning outperformed in coverage and bug detection. In the case of supervised learning, it showed high coverage on tcpdumps with high code complexity, and its superior bug detection performance when applied to hybrid fuzzing. This research shows that performance of machine learning-based fuzzer is better when both machine learning and additional fuzzing techniques are used to optimize the fuzzing process. Future research is needed on practical and robust machine learning-based fuzzing techniques that can be effectively applied to programs that handle various input formats.
AI 기반 퍼징 하니스 자동 생성을 위한 MCP 활용 기법
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.36 No.4 2026 pp.1331-1349
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
대규모 소프트웨어 시스템에서 퍼징은 보안 취약점을 자동으로 탐지하기 위한 핵심 기법으로 활용되고 있으나 퍼징 하니스 작성은 여전히 높은 수작업 비용과 전문성을 요구하는 대표적인 병목으로 남아 있다. 최근 대규모 언어 모델(LLM)을 활용하여 퍼징 하니스를 자동 생성하려는 연구들이 제안되고 있으나 다수의 접근법은 실제 퍼징 환경에서 요구되는 빌드 및 실행 안정성을 충분히 확보하지 못하는 한계를 가진다. 본 논문에서는 이러한 한계를 극복하기 위해 Model Context Protocol(MCP)을 기반으로 LLM이 퍼징 하니스 생성 단계에 국한되지 않고 빌드 및 실행 검증 그리고 실행 결과를 반영한 반복적 개선 과정에 지속적으로 참여하는 실행 중심 퍼징 하니스 생성 워크플로우를 제안한다. 본 연구는 LLM 기반 퍼징 하니스 자동 생성이 단발성 코드 생성 단계를 넘어 실제 대규모 퍼징 환경에서 활용 가능한 실행 중심 자동화 체계로 확장될 수 있음을 보이며, 제안하는 MCP 기반 접근은 퍼징 자동화뿐만 아니라 향후 다양한 보안 분석 워크플로우에 적용 가능한 일반적인 실행 기반 LLM 활용 모델로 확장될 수 있을 것으로 기대된다.
Fuzzing is a core technique for automatically discovering security vulnerabilities in large scale software systems; however, writing fuzzing harnesses remains a major bottleneck due to the high manual effort and expertise required. Although recent studies have proposed using large language models (LLM) to automatically generate fuzzing harnesses, many existing approaches fail to sufficiently ensure buildability and runtime stability in real-world fuzzing environments. To address these limitations, this paper proposes an execution-centric fuzzing harness generation workflow based on the Model Context Protocol (MCP), in which the LLM continuously participates not only in the harness generation stage but also in build and execution validation, as well as iterative refinement driven by execution results. This work demonstrates that LLM-based fuzzing harness generation can move beyond one-shot code synthesis toward a practical, execution-driven automation framework applicable to large scale fuzzing environments. Furthermore, the proposed MCP-based approach is expected to be extensible not only to fuzzing automation but also to a broad range of security analysis workflows as a general execution-oriented LLM utilization model.
LockPickFuzzer: ADB 기반 퍼징 기법을 활용한 안드로이드 잠금 화면 메커니즘의 취약점 탐색
[Kisti 연계] 한국정보보호학회 정보보호학회논문지 Vol.34 No.4 2024 pp.651-666
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
안드로이드 디바이스는 다양한 인증 방식을 제공하는 잠금 화면으로 사용자 데이터를 보호한다. 그러나 잠금 화면이 활성화된 상태에서도 Android Debug Bridge(ADB)를 통해 디바이스에 접근할 수 있다. 본 연구에서는 ADB의 특성을 활용하여 잠금 화면 보안 메커니즘을 우회할 수 있는 방법을 탐색하고자 한다. 이를 위해 ADB 명령어를 분석하고, 잠금 화면 보안을 무력화할 수 있는 명령어 조합을 자동으로 탐색하는 퍼징 테스트 도구인 LockPickFuzzer를 제안한다. LockPickFuzzer의 성능을 평가하기 위해 안드로이드 14를 탑재한 갤럭시 S23과 픽셀 8을 대상으로 실험을 진행하였다. 실험 결과, 잠금 화면의 인증 정보를 탈취하거나 우회할 수 있는 두 가지 ADB 명령 조합을 발견하였다. 이 발견된 취약점에 대해 삼성 보안팀에 리포트를 제출하였고, 한 가지 ADB 명령어 조합에 대해 삼성전자에서 공식적으로 인정받았다 (SVE-2023-1344). LockPickFuzzer는 자동으로 작동하며, 안드로이드 디바이스에서 ADB 명령어 조합으로 인한 보안 취약점을 효과적으로 탐지하는 데 기여할 것으로 기대된다.
Android devices employ lock screens with various authentication methods to protect user data. However, even with the lock screen active, the device can be accessed via the Android Debug Bridge(ADB), a powerful development tool that controls devices connected through USB. In this paper, we explore methods to bypass the lock screen security mechanism by leveraging the characteristics of ADB. To achieve this, we analyze ADB commands to categorize those that can severely impact the Android system and propose LockPickFuzzer, a fuzzing test tool that automatically explores ways to combine these commands to disable lock screen security. To demonstrate LockPickFuzzer's ability to detect security vulnerabilities using ADB, we conducted experiments on the Galaxy S23 and Pixel 8, both running Android 14. The results revealed two ADB command combinations that could either steal authentication information or bypass the lock screen. We submitted a report on these discovered vulnerabilities to the Samsung security team and received official acknowledgment (SVE-2023-1344) from Samsung Electronics for one ADB command combination that can be reproduced on user devices. LockPickFuzzer is a practical tool that operates automatically without user intervention and is expected to contribute to the effective detection of security vulnerabilities caused by ADB command combinations on Android devices.
하이브리드 분석 기반의 스마트 퍼징 시스템 설계 KCI 등재
한국디지털정책학회 디지털융복합연구 제15권 제3호 2017.03 pp.175-180
※ 기관로그인 시 무료 이용이 가능합니다.
4,000원
전 세계적으로 IT 산업이 발전함에 따라 소프트웨어 산업 또한 크게 성장하였으며, 사회전반에 걸쳐 일상생 활에서부터 금융과 공공 기관까지 영향력을 미치고 있다. 특히 ICT 기술의 활성화로 인해 소프트웨어 산업은 더욱 고도화 되고, 다양한 기능과 기술을 공유하게 되었다. 그러나 이렇게 성장하는 소프트웨어 산업과 비례하여 제공되는 서비스에 치명적인 위협을 가할 수 있는 다양한 보안 위협 또한 크게 증가 하였다. 이미 OpenSSL 하트블리딩 취약 점으로 전 세계적으로 큰 이슈를 일으켰으며, 그밖에도 이란의 원자력 발전시설, 미국의 에너지 기업들이 소프트웨어 취약점으로 인해 많은 피해를 입었다. 본 논문에서는 응용프로그램 보안 사고의 큰 비중을 차지하고 있는 소프트웨 어 취약점을 효과적으로 탐지·식별 할 수 있는 블랙박스, 화이트박스 테스트를 연계한 하이브리드 퍼징 시스템을 제안한다.
In accordance with the development of IT industry worldwide, software industry has also grown tremendously, and it is exerting influence on the general society starting from daily life to financial organizations and public institutions. However, various security threats that can inflict serious threat to provided services in proportion to the growing software industry, have also greatly increased. In this thesis, we suggest a smart fuzzing system combined with black box and white box testing that can effectively detectdistinguish software vulnerability which take up a large portion of the security incidents in application programs.
실행코드 취약점 분석 프로세스 방법론 KCI 등재
국제인공지능학회(구 한국인터넷방송통신학회) 한국인터넷방송통신학회 논문지 제12권 제5호 2012.10 pp.237-242
※ 원문제공기관과의 협약기간이 종료되어 열람이 제한될 수 있습니다.
공격 대상 소프트웨어의 취약점을 악용한 사이버 공격이 급속히 증가하여 왔다. 그러나, 이러한 취약점을 탐 지하고 대처하는 것은 매우 어렵고 시간이 많이 걸리는 작업이다. 이 문제를 효과적으로 대응하기 위하여, 본 논문에 서는 실행코드 상에서의 체계적인 보안 취약점 분석 프로세스 방법론을 제시한다. 구체적으로, 본 연구진은 기존 취 약점을 웹 환경 유무, 대상 소프트웨어 특성 등을 고려하여 분류하고 취약점 리스트 및 범위를 결정하는 접근법을 택 하였다. 향후 연구 방향으로는 현재 도출된 방법론을 좀 더 구체화하고 검증하는 과정이 필요하다.
Cyber attacks have rapidly increased by exploiting the underlying vulnerabilities in the target software. However, identifying and correcting these vulnerabilities are extremely difficult and time consuming tasks. To address these problems efficiently, we propose a systematic methodology for security vulnerability assessment process on binary code in the paper. Specifically, we first classified the existing vulnerabilities based on whether the target software run in a Web environment and features of the software. Based on the classification, we determined the list and scope of the vulnerabilities. As our future research direction, we need to further refine and validate our methodology.
File Fuzzing System using Field Information and Fault-Injection Rule
보안공학연구지원센터(JSE) 보안공학연구논문지 Vol.5 No.6 2008.12 pp.497-508
※ 원문제공기관과의 협약기간이 종료되어 열람이 제한될 수 있습니다.
File fuzzing(or file fuzz testing) is a software testing technique that checks the response of a target program against abnormal file inputs. It is simply random testing but powerful. Especially, it is worth as security testing. However, file fuzzing is inefficient in the sense that it takes too much time, nearly endless, and so on. For even one input file, it takes several seconds to execute. Besides, most input files that are generated randomly are invalid. We propose the advanced file fuzzing system applying field information and fault-injection rule. For a file, field information represents the starting position, size, unique name, and valid data type of each field. And fault-injection rule is the formalized expression to describe generating and injecting a fault. These enable us to make effective input files and to distribute fuzzing works to several machines. In addition, our system provides the independent random fuzzing.
File Fuzzing System using Field Information and Fault-Injection Rule
보안공학연구지원센터(JSE) 보안공학연구논문지 Vol.5 No.4 2008.08 pp.87-98
※ 원문제공기관과의 협약기간이 종료되어 열람이 제한될 수 있습니다.
파일 퍼징(File fuzzing 또는 File fuzz testing)은 소프트웨어 테스트 기법으로 비정상적인 파일 입력에 대한 타겟 프로그램의 응답을 점검하는 기법이다. 이 기법은 간단한 임의의 테스트이지만 강력하다. 특히 그 중에서도 보안 테스트는 매우 유용하다. 하지만 파일 퍼징은 무한 반복에 가까운 정도의 많은 시간이 필요하다는 점에 비효율적이다. 하나의 입력 파일을 실행하는 데에도 수초가 소요된다. 게다가 대부분의 임의로 생성된 입력 파일에 대해서는 유효하지 않다고 볼 수 있다. 우리는 필드 정보와 결함 주입(fault-injection) 규칙을 적용한 진보된 파일 퍼징 시스템을 제안한다. 하나의 파일에 대해서 필드 정보는 시작위치, 크기, 명칭, 유효한 필드 데이터 타입 등을 표현하게 된다. 그리고 결함 주입 규칙은 결함을 만들어서 삽입하는 것을 기술하는 정형화된 표현방법이다. 이것들은 효율적인 입력파일들을 만들 수 있도록 해주며 다수의 시스템으로 퍼징 작업을 분산시킬 수 있도록 해준다. 또한 제안된 시스템은 독립적인 랜덤 퍼징을 제공한다.
File fuzzing(or file fuzz testing) is a software testing technique that checks the response of a target program against abnormal file inputs. It is simply random testing but powerful. Especially, it is worth as security testing. However, file fuzzing is inefficient in the sense that it takes too much time, nearly endless, and so on. For even one input file, it takes several seconds to execute. Besides, most input files that are generated randomly are invalid. We propose the advanced file fuzzing system applying field information and fault-injection rule. For a file, field information represents the starting position, size, unique name, and valid data type of each field. And fault-injection rule is the formalized expression to describe generating and injecting a fault. These enable us to make effective input files and to distribute fuzzing works to several machines. In addition, our system provides the independent random fuzzing.
단방향 프로토콜 소프트웨어 퍼징을 제공하기 위한 퍼징 상태 판단 기능 설계
[Kisti 연계] 한국정보처리학회 한국정보처리학회 학술대회논문집 2020 pp.374-375
※ 협약을 통해 무료로 제공되는 자료로, 원문이용 방식은 연계기관의 정책을 따르고 있습니다.
소프트웨어 보안 취약점을 찾는 기술로서 퍼징(Fuzzing)이 있다. 기존 퍼징 기술은 요구-응답형 프로토콜을 사용하는 소프트웨어를 대상으로 하기 때문에 응답 메시기가 없는 단방향 프로토콜에서는 퍼징을 수행할 수 없는 문제가 있다. 본 논문에서는 단방향 프로토콜 소프트웨어에서 퍼징을 수행하는데 필요한 퍼징 상태 판다 기능을 정의하고 설계한다.
0개의 논문이 장바구니에 담겼습니다.
선택하신 파일을 압축중입니다.
잠시만 기다려 주십시오.