Defender响应工具VS Code扩展

一款VS Code扩展,提供Microsoft Defender XDR响应动作工具,通过自然语言在GitHub Copilot中执行事件响应操作。

  • by markolauren
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 markolauren/ResponseMCP-VSCodePlugin

使用说明

防御者响应MCP-VS代码扩展

一个VS Code扩展,为GitHub Copilot提供Microsoft Defender XDR响应操作工具。使用自然语言直接从Copilot聊天中执行事件响应操作。

概述

此扩展将Microsoft Defender XDR功能作为GitHub Copilot的语言模型工具公开。安全分析师使用自然语言来管理事件、隔离受感染的设备、运行防病毒扫描、收集取证包和执行身份响应操作。

交互示例:

  • “检查设备WORKSTATION-01的状态”
  • “立即隔离受损的笔记本电脑”
  • “在服务器上运行完整的防病毒扫描”
  • “显示高严重性事件”
  • “禁用受感染的用户帐户”

建筑

┌─────────────────┐     VS Code LM Tools API     ┌──────────────────────┐
│   VS Code +     │◀────────────────────────────▶│  Extension           │
│  GitHub Copilot │                              │  (This Extension)    │
└─────────────────┘                              └──────────────────────┘
                                                          │
                                                          │ Client Credentials
                                                          │ (Service Principal)
                                                          │
                          ┌───────────────────────────────┴───────────────────┐
                          ▼                                                   ▼
           ┌─────────────────────────────┐         ┌─────────────────────────────┐
           │  Microsoft Defender         │         │  Microsoft Graph API        │
           │  for Endpoint               │         │  - Incident management      │
           │  - Device response actions  │         │  - Identity actions (MDI)   │
           │  - Investigation packages   │         │  - Entra ID risk management │
           └─────────────────────────────┘         └─────────────────────────────┘

与响应MCP服务器的主要区别: 此扩展在VS Code中本地运行,并直接与Microsoft API通信。无需云服务器-凭据安全地存储在VS Code的秘密存储中。

可用工具

设备响应操作(端点防御器)

工具 说明
defender_echo 测试服务器连接
defender_get_machine_by_name 按主机名查找设备
defender_get_machine_actions 列出响应操作历史记录
defender_isolate_device 将设备与网络隔离
defender_isolate_multiple 批量隔离多个设备
defender_release_device 释放隔离装置
defender_run_antivirus_scan 启动快速或完整AV扫描
defender_stop_and_quarantine 停止进程和隔离文件
defender_restrict_code_execution 阻止未签名的应用程序
defender_remove_code_restriction 删除代码限制
defender_collect_investigation_package 收集法医数据
defender_get_investigation_package_uri 获取调查包的下载URL

身份响应行动(身份和入境者ID的防御者)

工具 描述 提供者
defender_disable_ad_account 禁用Active Directory帐户 Active Directory
defender_enable_ad_account 重新启用Active Directory帐户 Active Directory
defender_force_ad_password_reset 强制用户在下次登录时更改密码 Active Directory
defender_revoke_entra_sessions 撤销所有Entra ID会话并刷新令牌 Entra ID
defender_confirm_user_compromised 将用户标记为身份保护已受损 Entra ID
defender_confirm_user_safe 在身份保护中消除用户风险(标记为安全) Entra ID

事件管理

工具 说明
defender_update_incident_status 将事件标记为活动/已解决
defender_assign_incident 将事件分配给分析师
defender_classify_incident 设置分类(TP/FP)和确定
defender_add_incident_tags 添加自定义标签进行分类
defender_add_incident_comment 添加调查意见

注: 要列出和检索事件详细信息,请使用Microsoft的 哨兵MCP分类 服务器,提供更丰富的过滤、搜索和分页功能。

先决条件

Entra ID应用程序注册

步骤:

  1. 导航到 Azure门户 > Entra ID > 应用程序注册 > 新注册
    • 姓名: Defender Response VS Code (或您喜欢的名字)
    • 支持的帐户类型: 仅此组织目录中的帐户
    • 点击 注册
  2. 保存这些值 (需要配置):
    • 应用程序(客户端)ID
    • 目录(租户)ID
  3. 创建 客户端密钥:
    • 首选 证书和秘密 > 新客户机密
    • 说明: VS Code Extension Secret
    • 过期:选择过期时间
    • 点击 添加
    • 立即复制机密值 (仅显示一次)
  4. 添加 API权限:
    • 首选 API权限 > 添加权限
    • 添加下面列出的权限
    • 授予管理员同意 对于所有权限

必需的权限

WindowsDefenderATP(端点防御器)

权限 类型 描述
Machine.ReadWrite.All 应用程序 读取机器操作并获取调查包URI
Machine.Isolate 应用 隔离/释放机器
Machine.Scan 应用程序 运行防病毒扫描
Machine.StopAndQuarantine 应用程序 停止和隔离文件
Machine.RestrictExecution 应用程序 限制/取消限制代码执行
Machine.CollectForensics 申请 收集调查包

Microsoft Graph API

权限 类型 描述
SecurityAlert.ReadWrite.All 应用程序 读取和更新安全警报
SecurityIdentitiesAccount.Read.All 应用程序 从MDI读取身份帐户
SecurityIdentitiesActions.ReadWrite.All 应用程序 对身份帐户调用操作
SecurityIncident.ReadWrite.All 应用程序 读取和更新安全事件
User.Read.All 应用程序 将UPN解析为用户ID
User.RevokeSessions.All 应用程序 撤消用户会话
IdentityRiskyUser.ReadWrite.All 应用程序 在身份保护中将用户标记为已泄露

安装

来自VSIX

code --install-extension defender-response-mcp-0.1.0.vsix

来源

# Clone and install
git clone <this-repo>
npm install

# Compile
npm run compile

# Package as VSIX
npm run package

# Install
code --install-extension defender-response-mcp-0.1.0.vsix

发展

按 F5 在VS Code中启动扩展开发主机。

配置

  1. 安装后,运行命令: 防御者MCP:登录 (Ctrl+Shift+P)
  2. 输入您的 租户ID, 客户端ID,以及 客户端密钥 当被提示时
  3. 凭证安全地存储在VS Code的加密秘密存储器中

用法

打开 副驾驶聊天 (Ctrl+Alt+I)并要求副驾驶执行Defender操作:

Find the machine named DESKTOP-ABC123
Isolate device my-server with comment "Incident 12345 - malware detected"
Run a quick antivirus scan on workstation-01
Conduct response for incidents 321
Disable AD account for compromised.user@contoso.com
Release device my-server from isolation

命令

命令 描述
Defender MCP: Sign In 配置凭据
Defender MCP: Sign Out 清除已保存的凭据
Defender MCP: Show Logs 查看扩展日志

项目结构

src/
├── extension.ts              # Extension entry point
├── auth/
│   └── clientCredentials.ts  # OAuth 2.0 client credentials flow
├── defender/
│   └── client.ts             # Defender & Graph API clients
└── tools/
    └── handlers.ts           # LM Tool implementations

安全说明

  • 凭证存储在VS Code的加密秘密存储器(操作系统密钥链)中
  • 使用客户端凭据流(应用程序权限,无用户登录)
  • 所有操作都记录在Defender门户中
  • 扩展在本地运行-不需要云基础设施
  • 切勿分享您的客户端机密或将其提交给源代码管理

故障排除

“未登录”错误:

  • 跑 防御者MCP:登录 并输入凭据
  • 验证凭据是否正确(租户ID、客户端ID、机密)

权限被拒绝错误:

  • 验证应用程序注册是否具有所需权限
  • 确保已授予管理员同意
  • 检查客户端密码是否未过期

未找到设备:

  • 验证设备名称是否正确(不区分大小写)
  • 确保设备已登录到Defender for Endpoint

身份操作失败:

  • 验证是否授予Graph API权限
  • 对于MDI操作,确保部署了Defender For Identity

许可证

麻省理工学院