我们如何从客户端设置文件大小限制,并确保客户端上传日志文件的频率受到限制,使其无法拒绝服务 WL 分析服务器上的服务器?
我们对我们的应用程序进行了安全检查,得到了以下结果:
当攻击者能够将恶意代码作为日志条目的一部分注入,并在日志查看器中观察到执行该代码时,就会发生日志注入。需要维护发送到应用程序日志文件的所有数据,以显示系统中发生的所有事件。然后,最终用户可以通过从终端到功能齐全的 Web 应用程序的多种方式查看这些日志文件。如果潜在的恶意字符或控制字符在显示在这些查看器之一中之前没有经过清理,它们可能会影响查看日志的最终用户。
实例:
- “https://company.com/Applicaion-Name/apps/services/loguploader”
重现步骤:
- 通过 burp 之类的 http 代理代理应用程序。
- 登录应用程序
- 应用程序将向 /loguploader 发送请求。
请注意,压缩后的内容来自文件 /var/mobile/Applications//Documents/wl.analytics.log
注意:要测试应用程序是否真的易受此攻击,wl.analytics.log
应在调用 loguploader 服务后修改文件、增加文件大小并在本地检查文件以查看修改后的文件是否被接受。
我们浏览了以下网址:
以下是来自上述链接的一些信息。
该wl.analytics.queues
参数确定 Worklight Server 在内存中保存的最大队列数。如果所有队列在发布到分析平台之前都已填满,Worklight Server 会丢弃从客户端接收到的数据,直到队列清空。
该wl.analytics.queue.size
参数是每个队列可以容纳的单个元素的数量。这些参数的调整会影响
服务器一次持有的单个分析事件的数量是wl.analytics.queues * wl.analytics.queue.size
。在定义这两个参数时要考虑到这一事实。如果将它们设置得太低,如果服务器异常繁忙,可能会丢弃大量分析数据。如果将它们设置得太高,Worklight Server 上可能会使用太多内存
从上面的细节看来,如果我们正确设置了值,那么高价值文件上传将由于溢出而被丢弃。
但我不确定需要设置什么正确的值来解决安全问题。这会解决它吗?
WL 服务器版本 6.2.0.1
自由版本 8.5.5.1