预警和检测策略开发
随着我们对可用事件日志、它们的上下文和限制的新理解,我们的CIRT工程师现在可以在构建警报和检测策略时使用这些信息。以下是一些假设的样本,这些假设被开发用来作为潜在的警报/威胁搜索查询的基础,这些查询被漏洞利用防御缓解机制分解。
非微软官方的二进制加载
此 WDEG 缓解记录由微软签名的进程加载非微软签名模块的任何尝试。这可以作为一个潜在的有价值的数据源,而不是将应用程序作为白名单的审计或实施。
范围
系统级别。与某些文档相反,这种缓解措施可以应用于所有进程。可以在全系统范围内应用的审计日志非常理想,可以用来识别误报,并将其列入白名单。当然,系统范围的审计日志以事件量为代价,在非微软官方模块加载的情况下,事件量会很大。
潜在的异常观测
·不能从或进程可执行文件中的子目录加载的模块。
·基本原理:通常期望dll从所期望的位置加载。
·从%windir%内的任何子目录加载的未签名的模块(: 1)=
·理由:期望签署合法的第三方代码。当然也会有例外,但是事件量应该相对较低。
·一个用非标准扩展加载的模块,而不是 .dll。
·基本原理:加载到进程中的大多数模块都是dll。
·一个加载时间远远大于主机进程启动时间的模块。
·原理:这是一个潜在的注入指示器。尽管如此,还是要做好假阳性的准备。、
·加载到受保护或受保护的进程光(PPL)进程中的模块,由 字段的非零值表示。
·基本原理:这表示受保护进程所保证的安全性失败。这个事件的容量应该是非常低的。
已知的误报
·从全局程序集缓存(GAC)加载的任何二进制文件(例如,以“\Windows\”开头的)。这些是 NGEN'd (为性能目的而构建的本地编译的的.Net 程序集)二进制文件,虽然没有签名,但l来自于已签名 .Net 程序集(假设 GAC 没有被篡改——需要管理员权限)。任何 .Net 进程都将加载这些二进制文件。
减少误报的策略
·将未签名的 DLL (: 1)和已签名的 DLL(: 4)分开。虽然恶意软件肯定可以被签名,但它更有可能是未签名的。
·将宿主进程为 windows 签名的事件(: 9及以上)与 微软签名的事件分开(: 8)
缺失的事件上下文
·记录的 DLL 的哈希。
·如果模块已签名(即 : 4) ,则不会显示签名者信息。
远程镜像加载
每当从远程共享(SMB/WebDAV)加载镜像时,远程镜像会加载缓解日志。建议在系统范围内记录这种缓解。
范围
系统级和进程级。当处于审计模式时,理想情况下应该启用系统范围的设置,因为事件量应该相对较低。
减少误报的策略
·识别从非 远程资源加载的镜像的事件量。
缺失的事件上下文
·镜像哈希
字体审核/阻塞
字体已经被频繁地用作获得直接的、任意的内核代码执行的手段。由于它们的复杂性、渲染程序(Win32K 子系统)的复杂性,以及它们历来都是在内核中加载的,因此它们一直是被广泛滥用的攻击目标。作为一个漏洞利用原语,字体最常被加载到内存中,为此,字体加载事件可以捕获特定的上下文。任何非标准字体加载都应该仔细检查,并且应该是低容量事件。
范围
系统级
潜在的异常观测
·最初,所有字体加载事件都应该在审计模式下检查,以验证事件量。
·如果为1(加载在内存中)或2(远程加载),则特别可疑。
·是一个可能没有加载字体的进程。
·一个来自%windir%\Fonts 以外任何地方的
缺失的事件上下文
·字体哈希
·进程命令行值
设置 WSL 开发环境
本文内容
设置 WSL 开发环境的最佳做法分步指南。 了解如何运行命令以安装默认的 Bash Shell,它使用 Ubuntu,或者可以设置为安装其他 Linux 发行版、使用基本 WSL 命令、设置 Visual Studio Code 或 Visual Studio、Git、Windows 凭据管理器、MongoDB、 或 MySQL 等数据库、设置 GPU 加速、运行 GUI 应用等。
开始使用
适用于 Linux 的 Windows 子系统随 Windows 操作系统一起提供,但必须先启用它并安装 Linux 发行版,然后才能开始使用它。
若要使用简化的 --install 命令,必须运行最新版本的 Windows(内部版本 20262+)。 若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。 可以使用“设置”菜单或 Windows 更新助手进行更新。
如果希望安装除 Ubuntu 以外的 Linux 发行版,或者希望手动完成这些步骤,请参阅 WSL 安装页了解更多详细信息。
打开 (或 Windows 命令提示符)并输入:
wsl --install
--install 命令执行以下操作:
在此安装过程中,你将需要重启计算机。
如果遇到任何问题,请查看排查安装问题一文。
设置 Linux 用户名和密码
使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。
注意
随 WSL 一起安装的 Linux 发行版是按用户安装,不可与其他 Windows 用户帐户共享。 遇到用户名错误? :在 Linux 上的用户名中,应使用或不使用哪些字符?
若要更改或重置密码,请打开 Linux 发行版并输入命令:passwd。 系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。
如果忘记了 Linux 分发版的密码:
请打开 ,并使用以下命令进入默认 WSL 分发版的根目录:wsl -u root
如果需要在非默认分发版中更新忘记的密码,请使用命令:wsl -d Debian -u root,并将 Debian 替换为目标分发版的名称。
在 内的根级别打开 WSL 发行版后,可使用此命令更新密码:passwd ,其中 是发行版中帐户的用户名,而你忘记了它的密码。
系统将提示你输入新的 UNIX 密码,然后确认该密码。 在被告知密码已成功更新后,请使用以下命令在 内关闭 WSL:exit。
更新和升级包
建议使用发行版的首选包管理器定期更新和升级包。 对于 Ubuntu 或 Debian,请使用以下命令:
sudo apt update && sudo apt upgrade
Windows 不会自动更新或升级 Linux 分发版。 大多数 Linux 用户往往倾向于自行控制此任务。
添加其他发行版
若要添加其他 Linux 发行版,可以通过 Store、通过 --import 命令或通过旁加载你自己的自定义发行版进行安装。 你可能还想要设置自定义 WSL 映像,以便在企业中分发。
设置 Windows
Windows 可以使用命令行接口运行任何应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式。
每当安装新的 WSL Linux 发行版时,都会在 Windows 中为其创建一个新实例,该实例可根据你的偏好进行自定义。
建议将 WSL 与 Windows 配合使用,尤其是在计划使用多个命令行时。 请参阅 Windows 文档,了解如何对其进行设置以及如何自定义首选项,包括:
文件存储
例如,在存储 WSL 项目文件时:
设置你最喜欢的代码编辑器
建议使用 Visual Studio Code 或 Visual Studio,因为它们直接支持使用 WSL 进行远程开发和调试。 Visual Studio Code 使你能够将 WSL 用作功能完备的开发环境。 Visual Studio 提供了对 C++ 跨平台开发的本机 WSL 支持。
使用 Visual Studio Code
按照此分步指南开始将 Visual Studio Code 与 WSL 配合使用,其中包括安装远程开发扩展包。 使用此扩展,能够运行 WSL、SSH 或开发容器,以使用整套 Visual Studio Code 功能进行编辑和调试。 在不同的独立开发环境之间快速切换并进行更新,而无需担心会影响本地计算机。
安装并设置 VS Code 后,可以通过输入以下内容使用 VS Code 远程服务器打开 WSL 项目:code .
请确保在命令的末尾添加句点以打开当前目录。
使用 Visual Studio
按照此分步指南开始将 Visual Studio 与 WSL 一起用于 C++ 跨平台开发。 Visual Studio 2022 使你能够从 Visual Studio 的同一实例在 Windows、WSL 发行版和 SSH 连接上生成和调试 CMake 项目。
使用 Git 设置版本管理
按照此分步指南开始在 WSL 上使用 Git,并将项目连接到 Git 版本控制系统,同时使用凭据管理器进行身份验证,使用 Git Ignore 文件,了解 Git 行尾,以及使用内置到 VS Code 的 Git 命令。
使用 Docker 设置远程开发容器
按照此分步指南开始使用 WSL 2 上的 Docker 远程容器,并使用 Docker Desktop for Windows 将项目连接到远程开发容器。
设置数据库
按照此分步指南开始使用 WSL 上的数据库,并将项目连接到 WSL 环境中的数据库。 开始使用 MySQL、、MongoDB、Redis、 SQL Server 或 SQLite。
设置 GPU 加速以提高性能
按照此分步指南在 WSL 中设置 GPU 加速的机器学习训练,并利用计算机的 GPU(图形处理单元)来加速性能繁重的工作负载。
基本 WSL 命令
通过 WSL 安装的 Linux 发行版最好使用 或 Windows 命令提示符 (CMD) 进行管理。 有关使用 WSL 时需要熟悉的基本命令的列表,请参阅 WSL 命令参考指南。
此外,许多命令在 Windows 和 Linux 之间都具有互操作性。 下面是几个示例:
装载外部驱动器或 USB
按照此分步指南开始在 WSL 2 中装载 Linux 磁盘。
运行 Linux GUI 应用
按照本教程了解如何设置和运行 WSL 上的 Linux GUI 应用。
其他资源
*请认真填写需求信息,我们会在24小时内与您取得联系。