Web应用程序比客户端应用程序更难保证安全性,因为它不像web服务器有四五个主要供应商的web服务器,它有大量的web应用程序和自定义脚本数量,而且每个都可能包含潜在的漏洞。对于开发人员来说,确保应用程序安全的最佳方法是使用建议的安全措施和可以扫描代码的软件,并提醒用户潜在的安全问题。管理员需要定期扫描其Web站点中的漏洞。

应用程序的安全性主要是由应用程序的开发者控制的。管理员可以紧固一些应用程序的安全性,但是如果应用程序本身不安全,便不可能确保其安全。

编写安全的应用程序是困难的,因为应用程序的各个方面,如图形用户界面,网络连接,操作系统交互,和敏感数据的管理,需要大量的安全知识以确保其安全。大多数程序员不具备这方面的知识或不考虑用应用程序安全的重要性来衡量额外工作。

但从管理者的角度来看,有一些安全问题要谨记在心:

◆运行权限权限

◆应用程序管理

◆应用程序更新

◆与操作系统集成的安全性

◆远程管理安全

◆会话安全

要素一:运行权限管理

管理员应该尽可能设置应用程序的低权限性。这样做可以防止多种电脑威胁:

◆如果应用程序被攻击者利用,他们将拥有应用程序的特权。如果该权限是足够低的,攻击者将不能进一步的攻击。

◆低权限保护计算机免受嵌入式木马(在应用程序中),因为处理木马时拥有较少的权限。

◆当应用程序具有较低的权限,用户将无法保存敏感据区域的数据(如操作系统领域),甚至不能进入核心资源。

在开发应用程序时,为了节省开发时间,程序员往往做出臆断。其中的一些假设,需要管理权限才能访问。这虽然削减了编程时间,但它降低了管理员保护系统安全的能力。当普通用户被授予管理权限,可以删除或访问周围的配置,威胁安全。

当安装程序时,因为安装程序可能需要访问敏感的操作系统目录,它通常需要有更高的权限,甚至管理权限。最好是先在一个相似配置的测试计算机上安装应用程序。这样,安装在正式计算机之前,你可以看到是否有问题。如果应用程序并无明显原因需要管理员权限,或者你不信任该应用程序,可以在沙盒中运行它。沙盒是一个安全应用程序,它可以拦截正在运行的应用程序的系统调用,确保应用程序将只能访问管理员允许的资源。沙盒可以限制访问注册表,操作系统数据的目录和网络。将应用程序与敏感OS区域以及其它用户定义的敏感数据域隔离开来。

要素二:应用程序管理

大多数应用程序提供了一些接口进行管理(主要用于应用程序配置),且每次施用方法会产生须解决的安全风险,如这些:

◆INI/ conf文件

◆GUI

◆基于Web的控制

管理的一个应用程序的最基本的方法是通过基于文本的文件来控制它。为了保护这样的应用程序,管理员需要限制访问权限。如果文件存储在本地,可以通过内置的OS权限管理系统;如果文件存储在其他地方,可以通过使用身份验证登录到远程存储位置(确保认证方法受保护)。

大多数应用程序有一个图形用户界面用于管理它们。除了在提供GUI级别的安全性,管理员应该对图形用户界面和应用程序之间的通信提供安全保障。

当GUI和应用程序的物理位置在同一台计算机时,管理员应该给GUI尽可能少的权限(如有必要,应用程序可以具有较高的权限)。