推荐语
本书为开发者构建了从原理到实战的完整技术体系,书中系统拆解Windows内核安全机制,深度解析入侵检测防御模块设计、恶意行为特征捕获、内核级漏洞防御开发等核心技术,结合恶意脚本分析、日志监控分析、远程漏洞利用等实战场景,通过大量可复用代码示例与攻防案例,帮助读者掌握内存监控、进程保护、驱动级防护等关键编程技巧。周钰淇同志长期从事网络安全方面研究,入职公安系统后,参与多起重大涉网案件侦破,具有丰富的实战分析经验。
无论是网络安全从业者构建企业级防护系统,还是开发者探索Windows安全开发边界,本书都能以工程化思维打通“漏洞检测—防御实现—应急响应”全链路,成为掌握Windows平台安全编程的硬核指南。
仲海啸 连云港市公安局网络安全保卫支队
电子数据检验鉴定实验室教导员
《万径寻踪:Windows入侵检测与防御编程(卷一)》沿袭了谭文老师《天书夜读:从汇编语言到Windows内核编程》和《寒江独钓:Windows内核安全编程》的一贯风格,该书深入浅出地介绍了主流操作系统的底层知识,介绍了Windows系统的微过滤驱动框架、反恶意软件扫描接口、ETW事件日志框架、RPC等技术,一步一步地教读者如何设计和构建Windows下的EDR软件。
谭文老师近20年来一直专注于Windows底层软件的设计和开发,长期与恶意软件、rootkit、游戏外挂进行一线技术对抗,是国内真正精通Windows底层内核设计理念的专家。与世面上同类书籍相比,本书更具备实用性,是从事主机入侵防御、EDR软件设计和开发人员的必读书,也可以作为操作系统底层软件设计和开发工作者的参考书。
陈良 华为可信领域科学家,终端网络安全首席专家,
终端奇点安全实验室主任,三届Pwn2Own世界冠军
网络安全的本质是对抗,对抗的本质是攻防两端能力的较量。端点安全作为网络安全的重要组成部分,端点上的对抗已经成为攻防双方角逐的焦点,端点安全日趋重要,而且很多时候是防御威胁攻击的最重要的一道防线,也是最后一道防线。本书作者是终端安全领域的资深专家,他们以扎实的技术功底和丰富的实践经验,将端点入侵检测和防御的复杂体系讲解得清晰易懂,从攻击思路到防御机制再到源码实现,层层递进,干货满满。对有志深入Windows安全开发的读者来说,这不仅是一本实用指南,更是深入理解终端攻防的必读之作。
姚纪卫 安芯网盾CTO,PCHunter作者
关于Windows安全类的书已经有很多了,但是真正做到深入浅出、无论是小白还是大牛都能从中获益匪浅的书却不多见,本书就是其中之一。安全这东西,入门容易,但要做好很难,本人从事安全行业20多年,从奇虎360到火绒,从事了不少这方面的工作,经验也积累了不少,但读此书,还是能从中领悟到不少,实在是不可多得的佳作,值得推荐。
邵坚磊 前奇虎360安全技术委员会专家,
现火绒高级终端安全研究员
在如今安全对抗高度复杂的时代,真正扎根底层、理解机制、掌握代码的安全从业者愈发稀缺。本书以严谨细致的风格,系统地剖析了Windows主机防御的各个技术环节,从内核驱动到脚本拦截,从微过滤器到AMSI实践,循序渐进,代码可运行,真正做到了将理论与实战紧密结合。对希望跨越知识孤岛、构建系统安全认知体系的读者而言,这是一本难得的实践指南,也是一道通往深层安全世界的入口。
段钢 看雪学苑创始人
在网络安全威胁日益复杂的今天,主机防御已成为企业安全的最后一道防线。企业安全行业日新月异,但相关书籍和资料相当贫乏和陈旧。非常感谢作者提前让我感受了本书的魅力。主机防御虽然是一个古老的主题,但我第一次看到一本书将现代企业安全软件的进展、企业安全面临的威胁、安全软件与恶意代码之间的激烈对抗,如此清晰明白地用代码的方式写出来。很明显其中蕴含着多位资深从业人员的宝贵经验。
无论是对安全技术有兴趣的爱好者、学生,还是有志于为国家的信息安全做出贡献的从业者,我都强烈推荐这本兼具深度与广度的佳作,它将助你在企业主机安全领域占据技术制高点!
钱林松 武汉科锐逆向科技创始人,
《C++反汇编逆向分析技术揭秘》作者
本书深入解析了企业安全的痛点与现实的解决方案,遵循了零信任和纵深防御的基本原则,并提供了可落地的实现代码。其强调的层层防御的理念与翔实的源码分析,为企业安全软件与恶意代码的斗争提供了重要参考。尤其值得关注的是,本书对Windows系统中的恶意模块、脚本、RPC调用等均提供了针对性的防御手段。若你希望提升Windows系统安全技术技能,此书是一份不可多得的指南。
刘忠鑫 赛虎学院
序言
作为一名专门从事网络安全工作的人民警察,在我过去多年涉及网络安全防御与黑灰产分析的工作中,亲眼见证了对抗技术的迅速演化,也深切体会到防御方所面临的巨大挑战。入侵者们不再是单打独斗的技术极客,而往往是组织化、商业化运作的攻击团队,他们具备丰富的系统底层开发经验,有强大的资源支持,以及持续演进的攻击策略。而作为安全研究人员和防御者,我们唯有以同样深度的系统理解与对抗意识,方能立于不败之地。
撰写本套书(分为卷一和卷二)的初衷,正是为了系统地梳理和分享笔者们在Windows平台入侵检测与防御编程方面长期积累的实战经验。内容不仅涵盖从微过滤驱动、AMSI反恶意代码扫描、注册表过滤驱动、NDIS网络包过滤器、WFP网络过滤平台、各种内核回调到VT技术的多层次防御策略,还涉及了诸如持久化手段、系统劫持、注入、WMI、BITS、COM挂钩、Rootkit、恶意硬件等黑产常用隐匿技术的对抗方法。
这里以臭名昭著的“银狐”木马为例。银狐团伙的黑色产业链广泛渗透至金融、教育、政府机构及多个行业领域,通过木马窃取用户敏感信息将信息贩卖给诈骗集团,实施精准诈骗。以“银狐”木马为代表的新型攻击手段,揭示了现代恶意软件的复杂性与隐蔽性。该木马家族通过钓鱼邮件、即时通信工具(如微信、QQ)传播,伪装成“税务文件”“财务通知”等诱导用户点击,利用白程序的DLL侧加载技术绕过安全检测,通过多层内存加载、计划任务持久化、云服务器动态分发载荷等手段长期驻留系统,并最终窃取财务数据、监控用户操作,甚至实施二次诈骗。其技术链条涵盖网络渗透、进程注入、内核级隐蔽通信等多个层面,对传统安全防御体系提出了严峻挑战。
在传播阶段,“银狐”木马利用高仿官网的钓鱼页面和虚假软件安装包,通过搜索引擎流量购买扩大攻击面;在持久化阶段,“银狐”木马通过注册表修改、计划任务伪装、全局原子表消息传递实现隐蔽驻留;在网络通信层,该木马采用动态C2地址更新和加密流量规避检测。此类攻击不仅依赖技术对抗,更利用社会工程学突破心理防线,凸显了防御需从单一技术点扩展至全链条覆盖的必要性。
这些案例都清晰地展示了:现代恶意代码往往是多层次、模块化、混合型的存在,单一维度的防御已难以奏效。唯有深入系统底层,结合驱动编程与行为分析能力,才能有效构建出可落地、可维护的防御编程框架。而这,正是本书最希望为广大安全开发者与研究者提供的核心价值。
本书适用于对Windows系统底层安全机制有兴趣的安全工程师、逆向分析师、驱动开发者以及相关专业的学生。无论你是从事攻防对抗的红队成员,还是构建防护体系的蓝队专家,亦或是研究恶意代码的威胁分析师,都能在本书中找到可用于实战的技术灵感与工具思路。
网络安全是一场永无止境的攻防博弈。攻击者不断寻找系统弱点,防御者则需以更快的速度、更深的洞察构建防线。希望本书能为读者提供一把打开Windows系统安全之门的钥匙,助你在攻防对抗中占据先机。无论你是初入安全领域的新人,还是经验丰富的从业者,愿本书能成为你技术探索路上的可靠伙伴。
周钰淇
2025年4月18日于连云港
前 言
自从接触安全行业以来,我就发现这个行业中很多从业者的专业知识并非浑然一体, 而是割裂和孤立的:
● 一个从业者可以通过考试获得行业知名的证书,了解许多安全知识和标准,但他可能完全不懂编程,更不知道病毒具体是如何攻击网络,而安全产品又是如何抵御它们的。
● 数十年兢兢业业开发安全产品的资深工程师,可能精通某一方面的技术,但论起对黑客技术的了解,很容易遭到对编程一窍不通的“脚本小子”的嘲笑。
● 渗透高手们津津乐道他们如何绕过一个又一个防御点,同时对任何安全技术和理论知识都不屑一顾。
● 操作系统和安全系统厂商在不断地强调他们的防御系统拥有多少强大的功能,但对能否真的抵挡攻击避而不谈。
● 安全总监们忙于购买和配置各种产品,清理投诉和误报,应付黑产的攻击和勒索。
● 黑灰产业在金钱的滋润下流传着粗犷和无序的技术,正义和秩序的力量则在不懈地发现、清理和追捕它们。
安全行业内大家操着各自的深奥语言,互不相通,这就给试图进入安全行业的入门者带来极大的困惑:我想做安全,我想成为一名计算机安全专家,那么—
● 应该去考证吗?为什么考完证之后还是什么都不会?
● 应该去学编程吗?为什么学了这么久的编程还是完全不懂渗透?
● 应该去研究黑客技术吗?但为什么黑客好像根本不学编程?
● 看了这么多威胁情报、恶意代码的分析,但完全不知道恶意代码为什么要这么做而不那么做,怎么办?
● 应该去学习安全产品的开发吗?安全产品厂商宣传的那些神奇的功能是怎么实现的?
至少绝不要去接触黑产,那绝对是一条不归之路。我考过证,也学过编程,后来多年从事各种不同安全产品的开发;我阅读过一些黑产从业者的代码,不止一次看到或者听到过他们锒铛入狱。
现在我依然无法告诉读者应该去学习什么,或许每个人需求都不一样吧。但对我来说,既然要了解安全,那么就应该知道安全问题从哪里来、漏洞如何产生、攻击手段是怎样的、如何防御才合理,以及因此诞生了哪些技术。
一旦涉及技术,我就觉得应该弄清每一行代码。使用工具或者库是很好的方法,但更好的是弄清工具或者库的原理,并且无论什么工具或者库,读者都可以自己去修改或者实现它。
安全的知识不应是割裂的,而应是融会贯通、浑然一体的。安全的技术是因为安全的需求才诞生的,无论在哪个平台上,无论什么技术,都是和需求因果相关联的。攻击的技术和防御的技术,以及从防御衍生而来的各种策略、安全的标准、管理的准则,都是由同一因果贯穿始终的。
这本书聚焦于内网安全,讲述 Windows 上基于主机的入侵检测与防御,因此它不是服务器安全相关的,也不是 Linux 安全相关的。这就是为什么它不包括安全上非常重要的Web 安全、SQL 注入、RASP、Linux eBPF 等内容。但它也并不仅仅涉及 Windows 上主机防御的实现。
本书试图从问题的源头出发,讲述安全问题是如何产生的,攻击者是如何一步步实现攻击目的的;作为安全系统又应如何构筑起阵地,节节防御。书中每一步示例都提供完全可以实现其功能的代码,同时指出这些代码的不足,在实际中又会遇到什么问题。全书的代码可扫描下面二维码下载:
希望读者参考这本书,既能了解问题的由来,了解自己需要做什么,又能动手编写每一步的代码,了解每一行代码的目的,每一步都知道自己在做什么。同时,对于编写这些代码之后,安全系统应该采取何种策略,管理员应该实行怎样的管理,书中也会一并分析,并试图和行业内其他知识联系到一起。
本书大部分示例使用 C 语言,很少用到 C++ 特性。阅读这本书的读者不需要具备太多安全方面的知识,只需要熟悉 C 语言语法,了解 Windows 操作系统的基本知识即可。
期待这本书能真正引领读者进入安全行业,消除迷惑,对安全行业的各类知识有初步但全面的了解,并对 Windows 的主机入侵检测和防御尤其熟悉,精通相关的底层技术。
受作者精力和技术水平所限,书中错漏在所难免,欢迎业内同仁和广大读者批评指正。
谭文
2025 年 5 月 14 日于上海