Kubernetes系列(十三)阻止 ingress SQL 注入、 XSS 等攻击

Kubernetes系列(十三)阻止 ingress SQL 注入、 XSS 等攻击

经验文章nimo972025-06-18 19:08:384A+A-

Kubernetes系列(十三)阻止 ingress SQL 注入、 XSS 等攻击

通常情况下,web 应用程序会响应来自机器人的请求、健康检查和各种绕过安全性并获得未经授权访问的尝试。

那么,如何才能过滤掉那些针对 Kubernetes 的恶意尝试呢?

Step 1

在深入研究 Kubernetes 之前,让我们回顾一下如何利用一个易受攻击的应用程序。

下面的应用程序是一个简单的电子商务网站,提供了您可以购买的商品列表。

到目前为止一切顺利,让我们点击第一项。

Step 2

应用程序导航到路径 /product/1

“1”是用户输入,也许我们可以输入一些其他的值?

如果我们不使用数字会发生什么?

Step 3

输出表明程序并没有对输入进行转义。

我们可以假设对数据库的查询类似于:

SELECT * FROM some_table WHERE id = "1"

当我们编写恶意查询时会发生什么?

Step 4

通过一些尝试,你可以针对用户查询做出如下操作:

  • o 忽略当前查询
  • o 选择用户表代替原来表
  • o 实现提取任意用户的用户名和密码

Step 5

下面是当我忽略现有查询并注入我自己的查询时发生的情况。

我暴露了admin用户的名称和密码。

Step 6

既然你知道了这种攻击,那么如何预防它呢?

在Kubernetes,我们至少有两个可靠的选择:

  1. 1. 我们可以在流量到达容器之前过滤它
  2. 2. 我们可以过滤 ingress 的流量

让我们来看看具体做法:

Step 7

您可以使用一个sidecar代理,在所有流量到达容器之前对其进行过滤。

这是 Kubernetes 中常见的部署模式

Step 8

在这种情况下,sidecar NGINX 代理会阻止任何包含SQL操作符的URL到达应用程序。

Step 9

另一个选择是阻止那些针对 ingress 的恶意企图。

因为Ingress routes 会把信息传送到 Pods,我们可以在那里添加逻辑。

Step 10

在这种情况下,我使用 NGINX Ingress 控制器片段来阻止SQL注入。

Step 11

它能正常工作吗?

当然!


欢迎关注我的公众号“云原生拓展”,原创技术文章第一时间推送。

点击这里复制本文地址 以上内容由nimo97整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

尼墨宝库 © All Rights Reserved.  蜀ICP备2024111239号-7