产品安全架构是构筑其自身安全特征的核心组件和它们之间的相互关系。
对任何具体产品而言,安全性作为产品质量的一部分,并非独立存在,而是与性能、可扩展性、可维护性等其他质量属性并行,并可通过逻辑模块来表述。
本文将围绕安全架构的5A方法论展开讨论,确保交付产品的保密性、完整性与可用性得到保障。
我们将强调从设计源头提升产品的安全质量,防患于未然的重要性。
而关于产品的外部安全防御机制,如抗DDoS、入侵检测系统、WAF(Web应用防火墙)、RASP(运行时应用自我保护)等,将在稍后的部分探讨。
安全体系由各个安全领域的产品构成,这些产品是安全体系的最小单位。
如果这些基本单元的安全性无法得到保证,那么整个安全体系的稳定性也就无从建立。
在服务器生产环境和日常的安全评估中,经常会接触到一些专业术语,如三层架构、B/S架构、C/S架构、框架、MVC等。
安全架构师熟悉这些术语对于方案评估等工作至关重要,这有助于避免与业务团队之间因缺乏共同语言而产生的沟通障碍。
从安全角度看,三层架构是一种推荐的逻辑架构。
包括用户接口层(UI),也称作表示层;业务逻辑层,承载主要功能和业务逻辑;以及数据访问层(DAL),封装数据操作并为业务逻辑提供服务。
B/S架构,即Browser/Server(浏览器/服务器)架构,在三层架构概念提出前,开发通常将UI、业务逻辑和数据访问混合开发。
C/S架构,即Client/Server(客户端/服务器)架构,这里基于三层架构理念,为C/S产品提供了推荐的架构模式。
SOA(Service-Oriented Architecture)架构曾非常流行,用于复杂的企业网络环境,采用XML进行通信并通过ESB(企业服务总线)集中管理服务。
微服务代表了一种新的应用程序结构,作为SOA的轻量级演化方向,摒弃了集中式服务管理,通过轻量级HTTP Restful API或Thrift API进行通信,实现去中心化的服务架构。
在微服务架构下,可以引入API网关以实现服务管理和统一接入,使得服务间的调用均经过API网关。
API网关承担非业务领域的功能,如身份认证、路由、负载均衡、缓存等。
此外,框架作为架构中可重用部分的实现,能极大节省人力资源,使开发者更专注于业务本身。
典型的框架有.Net Framework、Spring和Django等。
MVC(Model View Controller)模型-视图-控制器,作为一种框架设计模式,要求分离应用程序的输入、处理和输出环节。
在分层架构的实现中,数据访问层的实现尤为关键。
无论是采用MVC框架,还是Angular、Vue、React等前端框架构建的单页面应用,或是业务逻辑与数据访问层的分离,数据访问层与数据库的隔离都是重要环节。
马老师:13521730416/13391509126,数据安全评估师CCRC-DSA ,数据安全官CCRC-DSO 数据合规官CCRC-DCO,首席数据官CCRC-CDO,CCAI-CDO,工信部电子标准化研究院CDO,ITSS IT服务项目经理,服务项目工程师, CISAW应急服务方向, CISAW渗透测试方向,软考,CCSC网络安全能力,ISO27001 网络安全相关专业认证.
实现数据访问层时,可以采取多种方法,如自定义编码、使用ORM(对象关系映射)框架、DB Proxy或统一的数据传输服务简化DAL等,但都必须确保数据库口令加密存储且只在单一位置出现。