当前位置:主页>科 研>学术交流>

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


 

应用程序的架构检查是指检查应用程序架构中当前的安全控制。这种检查有助于用户在早期确认潜在的安全漏洞,并在开始开发之前就极大地减少漏洞。糟糕的架构设计有可能暴露出应用程序的许多安全漏洞。最好的办法是在设计阶段就执行架构检查,因为在部署后再实施安全控制将花费高昂的成本和代价。

本文可作为架构师的安全设计指南,也可以为渗透测试人员执行应用程序架构检查提供参考,二者都可以将文中提及的方法和措施作为全局安全评估的一部分。

下图展示的是在设计阶段必须解决的一些主要问题。



 

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

下面分别看一下这些方面:

  1、应用程序架构的文档

我们应关注的第一个问题就是应用程序架构文档的实用性。每一个应用程序都应当有合适的可备查的架构图,其中要有对上述要点的深入解释,以及能够显示不同组件如何安装和保障安全的网络连接图。

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

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

我们要考虑如下要点:

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

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

端口和服务要求:应用程序有可能还要与其它应用通信。要确认需要为该应用程序打开哪些端口和服务。

组件隔离:应用程序的不同组件应当相互隔离。例如,应用程序服务器和数据库服务器绝不应位于同一台机器中。

禁用明文协议:运行明文服务的端口应当关闭,并且不应该用于应用程序的任何部分。

  3、输入验证

不健全的输入验证是导致应用程序安全问题的主要原因之一。适当的输入验证有助于防止跨站脚本攻击、SQL注入攻击等许多攻击。应对所有页面的每一个输入字段(包括隐藏的表单字段)实施验证。最佳实践是利用一种集中化的方法。

我们必须考虑如下要点:

验证用户输入的机制:要检查该应用是否能够验证用户输入或者能够处理所要求的输入。

绕过验证:我们要检查用户输入是如何被验证的。是否有可能绕过验证?要确认输入验证是否依赖应用程序的框架。要检查框架中是否有用户可以绕过验证的任何漏洞。

集中化的方法:如果企业使用定制方法来验证用户输入,就要检查是否采用集中化的方法。

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

解决SQL注入问题:输入验证有助于在一定程度上减少SQL注入问题。我们应在后端利用参数化查询来检查应用程序是否可以应对SQL注入漏洞。

  4、认证

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

为有效地实施认证,我们必须考虑如下要点:

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

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

检查登录页是否可以通过HTTP协议传送。要检查在没有实施SSL证书的情况下,应用程序是否可以通过任何其它的端口访问。

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

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

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

框架的默认口令:许多应用程序框架都有一个默认的口令。要确保将口令改成一种不易猜测的强口令。

(责任编辑:安博涛)

分享到:

更多
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
  • 微笑/wx
  • 撇嘴/pz
  • 抓狂/zk
  • 流汗/lh
  • 大兵/db
  • 奋斗/fd
  • 疑问/yw
  • 晕/y
  • 偷笑/wx
  • 可爱/ka
  • 傲慢/am
  • 惊恐/jk
用户名: 验证码:点击我更换图片
资料下载专区
图文资讯

我要用1T带宽DDoS你:这句话竟然拿到了10万

我要用1T带宽DDoS你:这句话竟然拿到了10万美

利用DDoS攻击威胁企业以勒索金钱,是一件太有利可图的事情,以致于一个网络犯罪团伙在...[详细]

这种密钥真得破不了:量子密码学研究新突破

这种密钥真得破不了:量子密码学研究新突破

通过同一个光子分流器输出端口的光子无法继续分离 剑桥大学和东芝欧洲研究分会的研究...[详细]

什么是SS7?黑客是如何滥用SS7的?

什么是SS7?黑客是如何滥用SS7的?

一谈及到网络安全问题,用户们总是觉得很头疼。除去要记住你的每一个账号以及对应的密...[详细]

针对物联网设备的攻击过程概述

针对物联网设备的攻击过程概述

分享到:据了解,Avast公司的安全研究人员入侵了一台Vizio智能电视,并成功获取到了目...[详细]

漏洞与补丁不是一回事 打上补丁也会有漏洞

漏洞与补丁不是一回事 打上补丁也会有漏洞

漏洞和补丁之间存在相互作用关系,它在任何大型机构的信息安全活动中都是必不可少的部...[详细]

返回首页 返回顶部