bitdefender/napoca

GitHub: bitdefender/napoca

Bitdefender 提供的轻量级 Type-1 裸机 Hypervisor,为构建基于虚拟化的高级安全功能(如内存自省)提供底层基础设施。

Stars: 284 | Forks: 45

**本仓库已归档且不再维护。** # Bitdefender Napoca Hypervisor Bitdefender Napoca 项目是一个轻量级的 Type-1 Hypervisor,通过提供对虚拟化 Guest 操作系统资源的控制,为构建高级安全功能奠定了坚实的基础。 一个最初基于 Napoca 构建的此类项目示例是 [基于 Hypervisor 的内存自省](https://github.com/hvmi/)。 # 技术亮点 - 作为一个 Type-1(裸机)Hypervisor,Napoca 从引导序列开始就提供对主操作系统的控制,并可以增强其安全性。 - 硬件辅助虚拟化将 CPU、内存和所有其他硬件设备提供给 Guest 操作系统,保证顶级的系统性能。 - 允许基于具有可自定义行为的指令模拟,拦截内存、MSR、IO 和控制寄存器资源。 - 丰富的内部 API,包括内存管理、Guest 内存管理、CPU 和虚拟 CPU 管理、Guest 到 Host 通信、处理器间通信和高级调试。 - 可以通过提供的 UEFI 加载程序或 GRUB 引导加载程序部署在 UEFI 和 Legacy 平台上。 - 提供了用户态 DLL 和一个方便的示例控制台应用程序,以简化与底层 Hypervisor 的交互。 # 主要项目组件 1. **Napoca** - 实际的 Hypervisor 实现 2. **Winguest** - 用于安装、配置 Hypervisor 并与之交互的 Windows 用户模式(**winguestdll**)和内核模式(**winguest**)组件 3. **Winguest_sample** - 基于 Winguest 代码构建的用户模式示例应用程序,用作开发新工具的起点,并展示如何集成 API 4. **EfiPreloader** - 一个最小且健壮的 EFI 加载程序应用程序,通过充当第一阶段加载程序来简化 UEFI Secure Boot 的采用,从而为 Hypervisor(和操作系统)引导流程启用自定义信任链 5. **EfiLoader** - 用于 UEFI 系统的 Napoca 引导加载程序应用程序 # 构建和运行 该项目仅在 Windows 下支持 Microsoft Visual Studio 构建工具链。 ## 先决条件 * Visual Studio 2019 * 工作负载 * 使用 C++ 的桌面开发 * 单个组件 [建议保留已勾选的选项] * MSVC v142 - VS 2019 C++ x64/x86 Spectre-mitigated libs (version) [_version_ 必须与选定的等效未缓解库的版本匹配] * C++ ATL for latest v142 build tools with Spectre Mitigations (x86 & x64) * Windows 10 SDK (10.0.18362) [1903] * Windows 10 WDK 10.0.18362 [1903] * Git * NASM * 确保已将其添加到系统 `PATH` 变量中 * PowerShell 5.0 或更高版本 [如果使用 Windows 10 或更高版本,应该已经安装] * 启用 PowerShell 脚本:以管理员身份打开 PowerShell -> `Set-ExecutionPolicy Unrestricted` -> [A] Yes to All * Python 3 * py -3 -m pip install PyYAML * Doxygen [可选,仅在生成 html/latex 文档时需要] ## 构建 * 使用所需的平台和配置选项(例如 x64 - Release)完整构建 `dacia.sln` ## 创建部署包 * `./deploy_binaries.ps1 -Platform x64 -Configuration Release -Destination .\install` [根据需要自定义] ## 安装 * 在目标机器上禁用 _Secure Boot_ * 禁用驱动程序签名强制执行(运行 `bcdedit -set testsigning on`) * 将之前获得的 `install` 文件夹复制到目标机器(以下命令假设文件夹已复制到 `c:\dacia`) * 以管理员身份运行 `winguest_sample.exe` * `drvinstall C:\dacia\install\driver\winguest.inf {8a5531a8-2c02-482e-9b2e-99f8cacecc9d}\BdWinguest` * `drvconnect` * `setpath 1 C:\dacia\install\hv\` * `setpath 2 C:\dacia\install\hv\updates_intro\` * `setpath 3 C:\dacia\feedback\` * `config enable` * 重启 ## 验证 * 以管理员身份运行 `winguest_sample.exe` * `drvconnect` * `queryhv` * `help` 查看更多可用命令 ## 调试 * 日志由 Guest 组件(`winguest` 和 `winguestdll`)通过 _WPP Software Tracing_ 生成。请检查它们各自的 `trace.h` 文件以获取其关联的 GUID 和标志。 * 您可以通过在 `winguest_sample` 中使用 `config enable serial` 并在板载 COM 端口上连接串口线来使用基于串口的调试控制台。键入 `help` 查看可用命令。请注意,您可能需要卸载 Windows 的串口驱动程序,以免它也尝试使用该 COM 端口。 * 我们有一个故障保护机制,如果在没有加载用户模式组件的情况下尝试启动 3 次,将禁用 Hypervisor。有关更多详细信息,请参阅 `winguest_sample` 命令 `setfailcnt` 和 `resetfailcnt`。 ## 限制 * 目前仅支持 Intel 平台(具有 _Intel Virtualization Technology_)。 * 由于 Napoca 需要访问原生平台虚拟化支持,它可能无法在其他虚拟化解决方案之上运行。我们建议将其部署在非虚拟化的 Windows 安装上。 ## 致谢 整个 Bitdefender Napoca 团队。
标签:AI合规, Bitdefender, C/C++, CPU虚拟化, DAST, DNS解析, Hashcat, HVMI, Napoca, Type-1 Hypervisor, UEFI 安全启动, UML, Web报告查看器, Windows 内部组件, 事务性I/O, 内存虚拟化, 内存隔离, 内核级安全, 内省技术, 子域名枚举, 客户端加密, 底层开发, 开源项目, 引导加载程序, 恶意软件分析, 沙箱, 硬件辅助虚拟化, 系统安全, 系统底层防护, 虚拟化安全, 裸金属虚拟机, 逆向工具