词:“天下没有免费的午餐”:首先,这并不能减轻开发团队必须准确了解堆栈中的哪个点需要实现或配置哪些功能的负担。您本质上是用有关所用框架的知识来交换有关安全编程的知识。初步评估认为这不会减少必要的安全知识,这当然不是完全错误的。
其次,许多库和组件的委托和使用带来了复杂性的大量增加,这并不总是意味着安全性的增加。那么进行有针对性的分析就成为一个重大挑战。即使您在安全方面只想拥有必要的、结构清晰且清晰的代码,也无助于抵御这一总体趋势。
在迁移安全功能时,安全专业人员面临着与开发人员类 爱沙尼亚 whatsapp 数据 似的要求,开发人员通常“只”编写所谓的粘合代码来有意义地连接框架、服务和库。现在,图书馆知识对于安全专家来说也至关重要。这可能是您自己代码中更少的安全漏洞和更好地理解框架之间的权衡。关键是能够评估能力并回答在何处以及如何最好地实施安全性的问题。
高度分布式系统中的安全性
在按定义分布的微服务架构中(通过网络协议访问),攻击面可能会增加。以前作为内部功能实现的功能突然(最初只是理论上)容易受到其他应用程序的攻击。安全信任区域缩小到您自己的服务。在这种背景下,关于服务之间的身份验证以及跨服务的授权控制的问题越来越多。
软件开发并不是面临着未解决的问题,但整体复杂性当然在增加。最终,原则上,每个服务都必须做出自己的安全决策。一个简单的例子是用户通过用户界面调用微服务“A”。 “A”依次需要不同的服务 - 例如“B”、“C”和“D” - 来完成原始任务。然而,服务“B”、“C”和“D”应该能够自行决定原始用户有权查看或更改某些数据的程度。当然,给予服务“A”对服务“B”、“C”和“D”的所有权利并不是一个特别好的主意。例如,如果使用安全令牌,则需要更改令牌以确保服务“A”使用最终用户的权限调用服务“B”。这几乎在逻辑上会导致复杂性增加,或者可能对性能或整体响应时间行为产生不良副作用。
如果您为微服务使用适当的基础设施,这个循环会稍微闭合。反过来,他们应该提供措施来使各个服务可访问或可用 - 例如仅在集群(例如 Kubernetes)内。然而,这也需要对基础设施及其可能性有充分的了解。