Workflow
静态分析
icon
Search documents
让大模型合成检查器:UIUC团队挖出Linux内核90余个长期潜伏漏洞
机器之心· 2025-09-28 00:32
Core Insights - The paper introduces KNighter, a system that transforms static analysis by synthesizing checkers using large language models (LLMs), successfully identifying 92 long-standing vulnerabilities in the Linux kernel [3][11][16] - KNighter utilizes historical patch data to distill defect patterns and repair intentions, allowing the model to generate structured, maintainable, and compilable static analysis checkers [11][21] Background and Pain Points - Traditional static analysis tools require manual rule creation, which is time-consuming and difficult to maintain, often covering only limited predefined patterns [7] - Directly scanning large codebases with LLMs poses challenges due to context limitations and high computational costs [7] Methodology - KNighter's approach involves breaking down the task of creating a static analysis checker into manageable steps, allowing the model to analyze defect patterns and program states before generating the checker framework [11] - The synthesized checkers can be integrated into continuous integration (CI) pipelines for long-term use and iterative upgrades as new patches are introduced [12][20] Experimental Results - The research team validated KNighter's effectiveness on the Linux kernel, where the synthesized checkers identified 92 vulnerabilities, with 77 confirmed by maintainers and 57 fixed, including 30 that received CVE identifiers [16] - This method is more cost-effective and stable compared to direct LLM code scanning, as the generated checkers can be reused and provide precise alerts with clear state transitions [16] Practical Recommendations - The synthesized checkers can be integrated into version control systems and CI processes, facilitating code review and evolution [19] - Organizations can trigger KNighter's pattern mining and checker generation automatically with each patch merge, gradually building a comprehensive rule library [20] - Starting with high-risk scenarios, such as resource management and error propagation, can help in generating initial seed checkers before expanding to other subsystems [20]