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

内容分享13小时前发布
0 0 0

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

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

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

Step 1

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

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

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

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

Step 2

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

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

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

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

Step 3

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

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

SELECT * FROM some_table WHERE id = “1”

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

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

Step 4

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

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

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

Step 5

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

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

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

Step 6

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

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

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

让我们来看看具体做法:

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

Step 7

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

这是 Kubernetes 中常见的部署模式

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

Step 8

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

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

Step 9

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

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

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

Step 10

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

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

Step 11

它能正常工作吗?

当然!

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

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

© 版权声明

相关文章

暂无评论

none
暂无评论...