article
README
🚀 CISA BOD 25-01 CSA MCP 实施指南
本项目是一个基于红队的CISA BOD 25-01最小可行产品(MCP)实现。旨在助力组织满足网络安全审计、渗透测试和修复要求,以达到CISA BOD 25-01标准。
🚀 快速开始
本项目能帮助组织达成CISA BOD 25-01标准,以下为你介绍如何快速开启使用。
📦 安装指南
- 克隆仓库:
git clone https://github.com/DynamicEndpoints/BOD-25-01-CSA-MCP.git
cd cisa-m365
- 安装依赖项:
npm install
- 构建服务:
npm run build
📚 详细文档
配置指南
1. 创建Azure AD应用程序
- 登录Azure Portal
- 进入Azure Active Directory
- 注册新应用
- 添加所需API权限
- 创建客户端密钥
2. 配置环境变量
cp .env.example .env
编辑.env文件:
TENANT_ID=your-tenant-id
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret
3. 配置MCP设置
{
"mcpServers": {
"cisa-m365": {
"command": "node",
"args": ["path/to/cisa-m365/build/index.js"],
"env": {
"TENANT_ID": "your-tenant-id",
"CLIENT_ID": "your-client-id",
"CLIENT_SECRET": "your-client-secret"
}
}
}
}
使用指南
可用工具
- block_legacy_auth:阻止使用传统身份验证方法。
{}
- block_high_risk_users:阻止被识别为高风险的用户。
{}
- enforce_phishing_resistant_mfa:强制所有用户使用防钓鱼MFA。
{}
- configure_global_admins:配置全局管理员角色分配。
{
"userIds": ["user1-id", "user2-id"]
}
- get_policy_status:获取所有安全策略的当前状态。
{}
示例用法
// 阻止传统身份验证
const result = await client.callTool('block_legacy_auth', {});
// 获取策略状态
const status = await client.callTool('get_policy_status', {});
API参考
策略设置接口
interface PolicySettings {
legacyAuthentication: {
blocked: boolean;
compliant: boolean;
};
highRiskUsers: {
blocked: boolean;
compliant: boolean;
};
mfa: {
phishingResistant: boolean;
alternativeEnabled: boolean;
compliant: boolean;
};
applications: {
registrationRestricted: boolean;
consentRestricted: boolean;
compliant: boolean;
};
passwords: {
expirationDisabled: boolean;
compliant: boolean;
};
roles: {
globalAdminCount: number;
granularRolesEnforced: boolean;
pamEnforced: boolean;
compliant: boolean;
};
}
错误处理
该服务器实现全面错误处理:
-
认证错误
- 令牌获取失败
- 权限问题
- 租户配置问题
-
授权错误
- 缺乏必要的权限
- 请求格式错误
- 超出速率限制
-
策略执行错误
- 策略解析失败
- 执行失败
- 无法应用修复
-
通用错误
- 输入数据无效
- 内部服务器错误
- 不支持的操作
测试方法
- 单元测试:
npm test
- 集成测试:
npm run integration-test
- 性能测试:
npm run benchmark
安全注意事项
- 所有敏感操作均需加密
- 定期进行安全审计
- 实施最小权限原则
贡献指南
欢迎贡献!请参考贡献者指南了解如何参与。
许可协议
本项目采用MIT License许可。
附录
环境变量参考
TENANT_ID=your-tenant-id
CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret
工具使用示例
- 使用
block_legacy_auth工具:
npx cisa-mcp block_legacy_auth --tenantId yourTenantId
- 使用
enforce_phishing_resistant_mfa工具:
npx cisa-mcp enforce_phishing_resistant_mfa --tenantId yourTenantId
- 查看策略状态:
npx cisa-mcp get_policy_status --tenantId yourTenantId
常见问题解答
-
如何处理认证错误? 检查租户ID、客户端ID和客户端密钥是否正确配置。
-
为何无法连接到Azure AD? 确保网络连通性,并检查应用程序的API权限设置。
-
如何提高性能? 优化查询参数,实施分页和过滤功能。
扫码联系在线客服