构建安全应用程序架构必须考虑的十二问

  • 时间:
  • 浏览:0
  • 来源:欢乐生肖APP下载_欢乐生肖APP官方

企业应避免不健全的配置。在配置文件中存储的任何敏感信息也有意味 被攻击者获得。

绕过验证:.我 儿要检查用户输入是怎样被验证的。是是否是有意味 绕过验证?要确认输入验证是是否是依赖应用程序运行运行的框架。要检查框架中是是否是有用户都时需绕过验证的任何漏洞。

在所有层中进行验证:作为有三种最佳实践,.我 儿应当在所有层上实施验证,也也不在业务层、数据层等层面上实施验证。

在进行架构检查时,.我 儿重点关注以下方面:应用程序运行运行架构的文档、部署和基础架构难题报告 、输入验证、认证、授权、配置管理、会话管理、加密、参数操纵、类似管理、审计和记录、应用程序运行运行框架和库。

加密cookies:cookies蕴含着由服务器授权给用户的数据。.我 儿时需保护类似于数据以避免非授权的操纵攻击。

记录敏感数据:应用程序运行运行不应当蕴含日志的敏感数据,如用户凭据、口令哈希、信用卡细节等。

.我 儿应关注的第另2个多多难题报告 也不应用程序运行运行架构文档的实用性。每另2个多多应用程序运行运行都应当有大慨的可备查的架构图,其中要有对上述要点的深入解释,以及也能显示不同组件怎样安装和保障安全的网络连接图。

避免SQL注入难题报告 :输入验证不不利于在一定程度上减少SQL注入难题报告 。.我 儿应在后端利用参数化查询来检查应用程序运行运行是是否是都时需应对SQL注入漏洞。

认证cookie:要检查SSL是是否是在整个应用程序运行运行中实施,也不 要检查任何页面的认证cookie是是否是通过明文传送。

检查登录页是是否是都时需通过HTTP协议传送。要检查在如此 实施SSL证书的清况 下,应用程序运行运行是是否是都时需通过任何其它的端口访问。

记录事件:.我 儿时需检查是是否是所有安全等级的重要事件都也能生成日志,如成功和失败的认证、数据访问、修改、网络访问等。日志应当蕴含事件的时间、用户身份、机器名和位置等。要确认记录什么事件。

服务账户:服务账户是有三种服务应用程序运行运行赖以运行的账户。应用程序运行运行所要求的服务账户在与数据库通信时,应当有一套受限制的特权集。

支持和启用日志:时需检查是是否是支持应用程序运行运行和平台的日志功能。

授权决定了什么资源都时需被经认证的用户访问。不健全的授权控制意味 意味 特权提升攻击。企业应当考虑的要点如下:

保障加密密钥的安全:加密密钥用于作为有三种加密或解密数据的输入。意味 加密密钥遭到泄露,加密的数据就会遭到解密。

未必依赖HTTP头:应用程序运行运行中的安全决策不应当是基于HTTP头的。意味 应用程序运行运行仅通过检查“referrer”头来为网页服务,攻击者就都时需通过改变代理服务器工具中的头部来绕过此控制。

8.加密

10.例外管理

本文可作为架构师的安全设计指南,也都时需为渗透测试人员执行应用程序运行运行架构检查提供参考,二者都都时需将文中提及的法律法律法律依据和法律法律法律依据作为全局安全评估的一要素。

加密密钥管理:要检查是是否是发生加密密钥的管理策略,也却搞笑的话,是是否是有关于密钥的生成、分派、删除、消亡的策略。

3.输入验证

服务器端的认证控制:要确保在服务器端验证凭据而也有在客户端。客户端的认证很容易被绕过去。

应用程序运行运行的架构检查是指检查应用程序运行运行架构中当前的安全控制。某些检查不不利于用户在早期确认潜在的安全漏洞,并在结束英文开发也不就极大地减少漏洞。糟糕的分派有意味 暴露出应用程序运行运行的某些安全漏洞。最好的法律法律法律依据是在设计阶段就执行架构检查,意味 在部署后再实施安全控制将花费高昂的成本和代价。

不健全的输入验证是意味 应用程序运行运行安全难题报告 的主要意味 之一。适当的输入验证不不利于避免跨站脚本攻击、SQL注入攻击等某些攻击。应对所有页面的每另2个多多输入字段(包括隐藏的表单字段)实施验证。最佳实践是利用有三种集中化的法律法律法律依据。

12.应用程序运行运行框架和库

会话是对用户活动的跟踪。强健的会话管理在应用程序运行运行的总体安全中扮演着另2个多多重要角色。会话中的漏洞意味 意味 严重的攻击。

9.参数操纵

1.应用程序运行运行架构的文档

借助参数操纵攻击,攻击者都时需篡改从应用程序运行运行传输到Web服务器的数据。这会意味 对服务的非授权访问。

为有效地实施认证,.我 儿时需考虑如下要点:

端口和服务要求:应用程序运行运行有意味 时需与其它应用通信。要确认时需为该应用程序运行运行打开什么端口和服务。

长期cookie:.我 儿应避免将敏感数据以明文形式长期存倒入cookie中。用户都时需看后和修改明文数据。要检查应用程序运行运行是是否是将明文数据长期存倒入cookie中。

验证用户输入的机制:要检查该应用是是否是也能验证用户输入意味 也能避免所要求的输入。

确保会话管理遵循如下最佳法律法律法律依据:会话ID应是随机的、长度足够长且保证唯一性;会话在登出后就失效;成功认证的会话ID和再次认证的会话ID应不同;会话 ID不应冒出 在URL中;在一段非活动时间也不,会话应超时;会话ID时需在安全通道中传送;要检查cookie的属性(HttpOnly、 Secure、path、domain等)的安全性;

要检查应用程序运行运行赖以部署的基础架构,其中意味 包括检查网络、系统、基础架构的性能监视等。

防火墙实施的限制:要检查防火墙为应用程序运行运行定义的策略,要检查防火墙允许哪类通信,阻止哪类通信。

因而,在构建应用程序运行运行的架构时时需重视如下要点:

结语

认证是确认用户身份的活动。在应用程序运行运行中,验证是通过提供用户名和口令来实施的。不健全的认证机制意味 意味 绕过登录过程进而访问应用程序运行运行。这意味 会带来重大损害。在设计应用程序运行运行时,应当实施强健的认证。

关于会话管理,如下要点应引起重视:

7.会话管理

4.认证

强健的口令策略:企业的应用程序运行运行应当配置为只接受强口令。弱口令很容易遭受蛮力攻击。

框架的默认口令:某些应用程序运行运行框架也有另2个多多默认的口令。要确保将口令改成有三种不易猜测的强口令。

日志文件蕴含着事件的记录。什么事件意味 是一次成功的或失败的登录尝试,或是数据的恢复、修改、删除等,或是网络通信等的任何企图。.我 儿时需也能实时地监视日志。

6.配置管理

使用架构的默认会话管理:定制的会话管理意味 发生多种漏洞。要确保不使用定制的会话管理器,也不 使用应用程序运行运行框架的默认会话管理。

为保障存储数据的安全,或为保护在不安全的通道中数据传输的安全性,应用程序运行运行往往使用加密技术。

验证来自客户端的所有输入:在客户端实施验证都时需减少服务器的负担,但仅依赖客户端的认证是有三种不安全的实践。攻击者都时需利用代理工具绕过客户端的认证。因而,.我 儿应检查是是否是也在服务器上实施了认证。

认证的安全通道:程序运行运行在设计时,要确保通过加密通道来发送登录凭据。通过明文通道传送的凭据很容易被攻击者嗅探。



作者:赵长林

来源:51CTO

使用GET协议传递敏感数据:GET协议在查询串中发送数据。通过GET发送的敏感信息都都时需通过浏览器历史或记录进行访问。

特权提升和欺诈:在用户访问超过了其被允许访问的更多资源时,意味 在用户也能执行超过其被允许的更多活动时,就发生了特权提升。要检查一下,意味 用户要通过操纵请求意味 通过直接访问未经授权的页面或资源,从而试图提升其特权,企业是是否是都时需提供控制机制。

上述要点基本代表了设计安全的应用程序运行运行应关注的难题报告 。在设计阶段实施什么要点都时需减少为保障应用程序运行运行安全而花费的总成本。意味 企业意味 部署了应用程序运行运行,如此 ,应用程序运行运行架构的安全检查就成为全面安全评估的另2个多多重要要素,并不不利于修复已有的漏洞和改善未来的应用程序运行运行设计。

组件隔离:应用程序运行运行的不同组件应当相互隔离。类似,应用程序运行运行服务器和数据库服务器绝不应发生同一台机器中。

如下要点时需引起重视:

密钥的生命周期策略:在一段时间后,密钥应当重新生成。长期使用同样的密钥是不安全的安全实践。

禁用不安全的法律法律法律依据:.我 儿要验证应用程序运行运行也都都可以 接受GET和POST法律法律法律依据。TRACE、PUT、DELETE等其它法律法律法律依据都应当被禁用。

安全强化:要确保应用程序运行运行所要求的所有组件也有最新的,也不 要安装最新的补丁。意味 意味 搞笑的话,要改变默认配置。

.我 儿时需考虑如下要点:

集中化的法律法律法律依据:意味 企业使用定制法律法律法律依据来验证用户输入,就要检查是是否是采用集中化的法律法律法律依据。

敏感数据:数据库连接字符串、加密密钥、管理员凭据或任何其它机密也有应当以明文形式存储。要检查配置文件是是否是都时需防御非授权的访问。

禁用明文协议:运行明文服务的端口应当关闭,也不 不应该用于应用程序运行运行的任何要素。

.我 儿要考虑如下要点:

2.对部署和基础架构的考虑

通过HTTP协议传输数据:在组件之间的通信,如在应用程序运行运行服务器和数据库服务器之间的通信都应当实施加密。

也不 ,.我 儿需考虑如下要点:

直接对象引用:要检查应用程序运行运行是是否是会根据用户提供的输入而提供了对于对象的直接访问。意味 都时需搞笑的话,攻击者就都时需通过绕过授权而访问属于其它用户的资源。类似,下载某些用户的发票。

11.审计和日志

5.授权

存储、安全、分析:日志文件应当存倒入另2个多多不同于应用程序运行运行正在运行的地方。日志文件应当基因重组并移动到另2个多多永久性的存储器进行保留;时需保护日志文件,避免未经授权的访问、修改、删除等;时需定期地对日志文件进行分析。

不安全的例外避免机制意味 暴露有价值的信息,攻击者都时需利用某些不足来调整其攻击。意味 如此 例外管理,堆栈跟踪、框架细节、服务器细节、SQL查询、实物路径等敏感信息也有意味 遭到泄露。.我 儿时需检查是是否是部署了集中化的例外管理,要确保例外管理机制显示尽意味 少的信息。

定制加密不靠谱:设计有三种专用的加密机制有意味 意味 更脆弱的保护。企业应使用由平台提供的安全加密服务。企业应检查应用程序运行运行中所使用的加密类型。

ViewState中的敏感数据:类似,ASP.NET应用程序运行运行中的viewstate意味 蕴含某些敏感数据,后者是用于在服务器上进行授权的根据。意味 不启用消息认证码搞笑的话,viewstate中的数据就容易被篡改。因而,.我 儿应检查是是否是使用了消息认证码来保护viewstate中的数据。

应用所要求的组件:支持此应用程序运行运行的操作系统是什么?硬件需求是什么?

下面分别看一下什么方面:

要确保应用程序运行运行框架和库的最新,并保证对其部署了相关的补丁。要确认在框架中如此 使用默认的口令。时需检查是是否是使用了老的或易受攻击的框架。

下图展示的是在设计阶段时需避免的某些主要难题报告 。

关于加密,.我 儿应考虑如下要点: