跳转到正文
报告库
用途分类 / 数据分析

Azure Kusto Skill 安全审计

作者说它能做什么(原文)

Query and analyze data in Azure Data Explorer (Kusto/ADX) using KQL for log analytics, telemetry, and time series analysis. WHEN: KQL queries, Kusto database queries, Azure Data Explorer, ADX clusters, log analytics, time series data, IoT telemetry, anomaly detection.

第三方安全检查结论

先别安装或运行

已检查文件
1
发现的风险
3
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 1 项风险
高风险

Azure CLI 示例把查询文本直接放入双引号 shell 参数,可能触发本机命令执行

原文依据:2 处
发现了什么

回退命令要求把 `<kql-query>` 替换到双引号包围的 `--body` 中。若查询、数据库名、集群名或区域值含有双引号、反引号或 `$()` 等 shell 语法,直接文本替换可能突破原参数并让 shell 执行本机命令。

为什么需要注意

恶意或未经审查的查询文本可能以运行代理的用户身份读取或修改文件、访问本机凭据,或执行其他命令。

该 Skill 在 MCP 不可用时明确要求改用 CLI,并把数据库名和 KQL 作为双引号 shell 参数中的文本占位符。若代理通过直接字符串替换执行命令,查询中的 `"`、反引号或 `$()` 可能被 shell 解释,导致本机命令执行或请求被篡改。这里没有可见脚本,因此只证明危险的命令模板,不证明已执行。用户可要求作者使用参数数组和可靠的 JSON 编码,或禁止 CLI 回退。

SKILL.md:187来自说明文档打开原文件
If Azure MCP Kusto tools fail, timeout, or are unavailable, use Azure CLI commands as fallback.
查看另外 1 个位置
SKILL.md:200来自说明文档打开原文件
For queries, use the Kusto REST API or direct cluster URL:```bashaz rest --method post \  --url "https://<cluster>.<region>.kusto.windows.net/v1/rest/query" \  --body "{ \"db\": \"<database>\", \"csl\": \"<kql-query>\" }"```
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
中风险

宽泛触发规则与默认资源发现可能枚举超出具体请求范围的 Azure 数据资产

原文依据:6 处
发现了什么

Skill 要求在用户提及 Kusto、日志分析、SIEM 等宽泛主题时“立即”启用,并把列出订阅中可用集群和数据库设为工作流第一步。这可能发生在用户仅询问 KQL 写法或只授权查询一个已知数据库时。

为什么需要注意

集群名、数据库名和表结构可能暴露组织架构、系统名称或安全数据布局;后续查询也可能扩大到用户没有指定的数据范围。

触发范围包含仅仅提到 Kusto/KQL、一般日志分析或安全分析,而核心工作流首先要求发现订阅中的可用集群和数据库。对于只想询问 KQL 语法或只授权访问已知数据库的用户,这可能造成不必要的资产枚举。文本也提供“列出所有集群”的工具。用户可要求跳过发现步骤,并将访问限定到明确指定的订阅、集群和数据库。

SKILL.md:16来自说明文档打开原文件
**Use this skill immediately when the user asks to:**- "Query my Kusto database for [data pattern]"- "Show me events in the last hour from Azure Data Explorer"- "Analyze logs in my ADX cluster"- "Run a KQL query on [database]"- "What tables are in my Kusto database?"- "Show me the schema for [table]"- "List my Azure Data Explorer clusters"- "Aggregate telemetry data by [dimension]"- "Create a time series chart from my logs"
查看另外 5 个位置
SKILL.md:27来自说明文档打开原文件
**Key Indicators:**- Mentions "Kusto", "Azure Data Explorer", "ADX", or "KQL"- Log analytics or telemetry analysis requests- Time series data exploration- IoT data analysis queries- SIEM or security analytics tasks- Requests for data aggregation on large datasets- Performance monitoring or APM queries
SKILL.md:48来自说明文档打开原文件
1. **Discover Resources**: List available clusters and databases in subscription2. **Explore Schema**: Retrieve table structures to understand data model3. **Query Data**: Execute KQL queries for analysis, filtering, aggregation4. **Analyze Results**: Process query output for insights and reporting
SKILL.md:169来自说明文档打开原文件
|------|---------|| `kusto_cluster_list` | List all Azure Data Explorer clusters in a subscription || `kusto_database_list` | List all databases in a specific Kusto cluster || `kusto_query` | Execute KQL queries against a Kusto database || `kusto_table_schema_get` | Retrieve schema information for a specific table |
SKILL.md:46来自说明文档打开原文件
## Core Workflow1. **Discover Resources**: List available clusters and databases in subscription2. **Explore Schema**: Retrieve table structures to understand data model3. **Query Data**: Execute KQL queries for analysis, filtering, aggregation4. **Analyze Results**: Process query output for insights and reporting
SKILL.md:165来自说明文档打开原文件
## MCP Tools Used| Tool | Purpose ||------|---------|| `kusto_cluster_list` | List all Azure Data Explorer clusters in a subscription || `kusto_database_list` | List all databases in a specific Kusto cluster || `kusto_query` | Execute KQL queries against a Kusto database || `kusto_table_schema_get` | Retrieve schema information for a specific table |
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
中风险

认证失败时自动改用 Azure CLI,可能绕过用户预期的 MCP 身份和控制边界

原文依据:4 处
发现了什么

该 Skill 明确把 MCP 认证失败作为切换到 Azure CLI 的条件。CLI 可能使用本机已有但不同、且权限更高的 Azure 登录身份;空查询结果也被列为切换条件,而空结果本身不证明工具故障。

为什么需要注意

查询可能在用户未预期的订阅、租户或身份下运行,绕开 MCP 路径的权限范围、审计或审批控制,并访问原 MCP 身份无权读取的数据。

回退条件明确包括 MCP 认证失败和空响应,并指示切换到 Azure CLI。可见说明没有要求确认 CLI 当前登录的租户、订阅和身份与 MCP 相同,也没有要求用户重新授权;因此可能用本机另一 Azure 身份访问资源。空响应也可能是合法查询结果,而非连接故障。用户可限制为认证失败时停止,并要求显示和确认 CLI 身份、租户及订阅后再继续。

SKILL.md:187来自说明文档打开原文件
If Azure MCP Kusto tools fail, timeout, or are unavailable, use Azure CLI commands as fallback.
查看另外 3 个位置
SKILL.md:209来自说明文档打开原文件
Switch to Azure CLI when:- MCP tool returns timeout error (queries > 60 seconds)- MCP tool returns "service unavailable" or connection errors- Authentication failures with MCP tools- Empty response when database is known to have data
SKILL.md:202来自说明文档打开原文件
```bashaz rest --method post \  --url "https://<cluster>.<region>.kusto.windows.net/v1/rest/query" \  --body "{ \"db\": \"<database>\", \"csl\": \"<kql-query>\" }"```
SKILL.md:207来自说明文档打开原文件
### When to FallbackSwitch to Azure CLI when:- MCP tool returns timeout error (queries > 60 seconds)- MCP tool returns "service unavailable" or connection errors- Authentication failures with MCP tools- Empty response when database is known to have data
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

8 个说明模块

该 Skill 指示代理先枚举 Azure Data Explorer 集群和数据库、查看表结构,然后执行 KQL 查询并处理结果。查询可能涉及日志、遥测、安全事件和用户行为数据。

查看原文
SKILL.md:48来自说明文档打开原文件
1. **Discover Resources**: List available clusters and databases in subscription2. **Explore Schema**: Retrieve table structures to understand data model
SKILL.md:49来自说明文档打开原文件
1. **Discover Resources**: List available clusters and databases in subscription2. **Explore Schema**: Retrieve table structures to understand data model3. **Query Data**: Execute KQL queries for analysis, filtering, aggregation
SKILL.md:50来自说明文档打开原文件
2. **Explore Schema**: Retrieve table structures to understand data model3. **Query Data**: Execute KQL queries for analysis, filtering, aggregation4. **Analyze Results**: Process query output for insights and reporting
SKILL.md:227来自说明文档打开原文件
- **Log Analytics**: Application logs, system logs, audit logs- **IoT Analytics**: Sensor data, device telemetry, real-time monitoring- **Security Analytics**: SIEM data, threat detection, security event correlation- **APM**: Application performance metrics, user behavior, error tracking- **Business Intelligence**: Clickstream analysis, user analytics, operational KPIs

正常路径使用四个 MCP 工具来列出资源、执行查询及读取表结构,需要订阅、集群、数据库、查询或表名等参数。

查看原文
SKILL.md:169来自说明文档打开原文件
|------|---------|| `kusto_cluster_list` | List all Azure Data Explorer clusters in a subscription || `kusto_database_list` | List all databases in a specific Kusto cluster || `kusto_query` | Execute KQL queries against a Kusto database || `kusto_table_schema_get` | Retrieve schema information for a specific table |
SKILL.md:174来自说明文档打开原文件
**Required Parameters**:- `subscription`: Azure subscription ID or display name- `cluster`: Kusto cluster name (e.g., "mycluster")- `database`: Database name- `query`: KQL query string (for query operations)- `table`: Table name (for schema operations)

MCP 工具超时、连接失败、认证失败或意外返回空结果时,该 Skill 指示改用本机 Azure CLI,并通过 Kusto REST 接口提交查询。

查看原文
SKILL.md:187来自说明文档打开原文件
If Azure MCP Kusto tools fail, timeout, or are unavailable, use Azure CLI commands as fallback.
SKILL.md:209来自说明文档打开原文件
Switch to Azure CLI when:- MCP tool returns timeout error (queries > 60 seconds)- MCP tool returns "service unavailable" or connection errors- Authentication failures with MCP tools- Empty response when database is known to have data
从这里开始 · 工作说明SKILL.md
azure-kusto
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 4 个章节,可在原文件中查看。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明

代码和说明中提到的操作

运行命令
SKILL.md:201来自说明文档打开原文件
For queries, use the Kusto REST API or direct cluster URL:```bashaz rest --method post \
连接外部网站
SKILL.md:203来自说明文档打开原文件
az rest --method post \  --url "https://<cluster>.<region>.kusto.windows.net/v1/rest/query" \  --body "{ \"db\": \"<database>\", \"csl\": \"<kql-query>\" }"
读取了多少行
231
文件校验值(用于核对版本)
36e85c64c5b02585ae2ec3d9abe642212e0a27ecf72977ce626e8a342e988b7c