关闭代理 API 访问
Posted
技术标签:
【中文标题】关闭代理 API 访问【英文标题】:Close proxy API access 【发布时间】:2022-01-02 00:55:59 【问题描述】:大家好,
Grafana 8.2.5
我们有一个 Grafana 系统 8.2.5。他进行了安全审计,其中 API 访问受到批评。 我们为未登录的用户启用了匿名访问。
[auth.anonymous]
enabled =true
org_name = IT.NRW
org_role = Viewer
当我尝试访问 Grafana 时:
curl http://<fqdn>:3000/api/datasources -> "message":"Permission denied"
curl http://admin:<password>@<fqdn>:3000/api/datasources -> a valid json object with the datasource etc....
但是安全审计也发现了对数据源代理的访问? API。
curl http://<fqdn>:3000/api/datasources/proxy/3/query?db=<db>\&q=SELECT+*+FROM+<ts>\&epoch=ms
所以我可以使用或不使用凭据始终使用 API 进行查询。
安全审计:拒绝服务 (DoS) 是可能的,可能是一些 SQL 注入。 我不想在这里讨论这个话题。
我必须通过 API 关闭访问。至少来自其他网段。
有什么提示吗?
提前致谢。
【问题讨论】:
我不明白。您已启用匿名访问,并且您抱怨可以使用/不使用凭据访问 Grafana? Grafana 中的 SQL 注入永无止境的故事community.grafana.com/t/how-to-avoid-sql-injection-in-grafana/… 尝试购买昂贵的 Web 应用程序防火墙以避免 SQL 注入/DoS,您将永远享受白名单的乐趣。 【参考方案1】:我是 grafana 初学者!
我不抱怨,安全审计列出了两个主题(DoS/SQL 注入)。 我没有发现任何关于关闭代理 API 接口(仅 data_source_whitelist-ing)的配置可能性(grafana.ini)。
所以,我在 grafana 服务器前面的 NGIX 配置中添加了一些规则来 禁止代理 API 访问 -> 抛出 40x 错误。 现在,Web UI 无法再在 UI 中获取和呈现数据。
我的结论:
grafana 架构定义:代理 API 将由 Web UI 使用。 有或没有凭据:用户可以使用代理 API 触发查询 (DoS) 有或没有凭据:查询通过代理 API 传递到数据源,可能存在潜在的 sql 注入【讨论】:
以上是关于关闭代理 API 访问的主要内容,如果未能解决你的问题,请参考以下文章