网络应用服务安全(1)

发表于:2007-06-10来源:作者:点击数: 标签:
第一部分:概述 网络应用服务,指的是在网络上所开放的一些服务,通常能见到如WEB、MAIL、FTP、DNS、TELNET等,当然,也有一些非通用,在某些领域、行业中自主 开发 的网络应用服务。我们通常所说的 服务器 ,既是具有网络服务的主机。 网络应用服务安全,指

第一部分:概述

    网络应用服务,指的是在网络上所开放的一些服务,通常能见到如WEB、MAIL、FTP、DNS、TELNET等,当然,也有一些非通用,在某些领域、行业中自主开发的网络应用服务。我们通常所说的服务器,既是具有网络服务的主机。

    网络应用服务安全,指的是主机上运行的网络应用服务是否能够稳定、持续运行,不会受到非法的数据破坏及运行影响。

    网络安全的威胁来自多个方面,主要包括:操作系统安全、应用服务安全、网络设备安全、网络传输安全等等,以下我们就网络应用服务与其它安全问题做一比较与其他安全问题的比较

操作系统安全问题

    操作系统安全指的是一个操作系统在其系统管理机制实施中的完整性、强制性、计划性、可预期性不受干扰、破坏。如操作系统的用户等级管理机制、文件读取权限管理机制、程序执行权限管理机制、系统资源分配管理机制等。操作系统安全问题的来源主要表现在系统管理程序编写失误、系统配置失误等方面。其安全问题主要体现在抵御和防范本地攻击。攻击行为通常表现为攻击者突破以上的一些系统管理机制,对系统的越权访问和控制。网络设备安全问题网络设备的安全指的是网络设备是否能长期、持续、稳定地完成其特定的功能和任务。由于网络设备提供的功能相对操作系统而言大大简化,因此管理程序编写失误方面的系数大大降低,其安全问题主要来自于系统配置方面的失误。攻击行为主要表现为突破系统控制权身份验证机制,恶意地修改系统配置。

网络应用服务安全问题的特点

    每一个网络应用服务都是由一个或多个程序构成,在讨论安全性问题时,不仅要考虑到服务端程序,也需要考虑客户端程序。服务端的安全问题主要表现在非法的远程访问,客户端的安全问题主要表现在本地越权使用客户程序。由于大多数服务的进程由超级用户守护,许多重大的安全漏洞往往出现在一些以超级用户守护的应用服务程序上。

    由于网络应用服务种类繁多、涉及广泛,我们不可能逐一细述,以下我们以网络上是为常用的三项服务:WEB、FTP、MAIL为例进行分析,以期达到抛砖引玉的效果。

第二部分 WEB安全分析

Web访问身份验证机制

序言

    现在很多网站对用户的访问权限进行了严格的限制,用户在访问某些资源时需要给出“用户名/口令”来确认自己的身份。目前,使用最多的身份认证方法是将用户名、口令存放在一个数据库中,当用户要访问某些受限制的资源时,要在某一个页面中输入用户名和口令,程序将用户输入的用户名和口令与数据库存放的“用户名/口令"相比较,如果输入正确,则正常使用资源,否则,资源访问被拒绝。但是,这种身份认证方式有两个很大的问题,一方面只要用户有一次身份认证成功,就可以记录下受限资源的链接地址,在下一次访问时只需输入该地址,而无需通过身份认证过程就可访问受限资源;另一方面用户可以在受限制的资源的超级链接处点右键,选择“属性",就可以查看到受限制资源的链接地址,直接访问该地址,使身份认证不能达到预期的效果。

    Apache可以很好地解决上述问题。Apache是建立WWW网站的软件,可运行于LinuxUnixWindows操作系统下。下面就以Apache为例介绍用户身份认证功能。

基本原理

    Apache实现身份认证的基本原理是:当系统管理员启动身份认证功能后,可以在要限制的目录中添加一个默认名“.htaccess"的文件。当用户访问该路径下的资源时,系统就会弹出一个对话框,要求用户输入“用户名/口令"。也就是说,它的身份认证功能不是人为由程序控制,而是由系统直接控制的。这样就避免了用户记录需要认证的资源的超级链接,不会下次直接访问资源。

    身份认证的限制有多种,可以限定某个目录的读取权,针对IP地址进行的限制,以及一个目

    录下各子目录的不同限制。以下我们具体进行说明。

具体实现

    基本的Apache用户认证方法:

    若对某一目录下的文件如/home/ftp/pub需要做到用户认证,则在httpd.conf 中加入下面的行

<Directory /home/ftp/pub>
options indexes followsymlinks 
allowoverride authconfig 
order allow,deny 
allow from all 
</Directory >

在目录/home/ftp/pub下放文件.htaccess,内容如下:

authname "shared files" 
authtype basic 
authuserfile /etc/.passwd 
require valid-user

    用随Apache来的程序htpasswd 生成文件/etc/.passwd,每行一个用户名:密码

    只要能提供正确的用户名和密码对,就允许登录访问,这是针对任何地址来的请求都要求提供用户名和密码认证。

针对部分网段或地址要求认证:

    若公司LAN所在网段为192.168.0.0/24,且有一防火墙专线接入Inte.net, 内部网卡的地址为192.168.0.1/32,则现在希望所有通过拨本地163通过防火墙上的apache反向代理向LAN上的另一WWW服务器访问时需要认证,而本地LAN上的用户不需认证。可以在httpd.conf中放入

<Directory /home/ftp/pub> 
Options Indexes FollowSymLinks 
AllowOverride AuthConfig 
order deny,allow 
deny from 192.168.0.1 
</Directory>

    在/home/ftp/pub/.htaccess中放入:

AuthName "shared files" 
AuthType Basic 
AuthUserFile /etc/.passwd 
require valid-user 
satisfy any

    对同一目录及其下的子目录有不同的权限,仅某些人可以存取一目录下的子目录如有一目录/home/ftp/pub/sales,有三个用户user1,user2,user3都需要用户名和密码进入/home/ftp/pub,仅user1,user2能进入/home/ftp/pub/sales.则 放下面的行到httpd.conf

<Directory /home/ftp/pub> 
Options Indexes 
AllowOverride AuthConfig 
order allow,deny 
allow from all 
</Directory> 

<Directory /home/ftp/pub/sales> 
Options Indexes 
AllowOverride AuthConfig 
order allow,deny 
allow from all 
</Directory>

    设置/home/ftp/pub/.htaccess为:

AuthName "shared files" 
AuthType Basic 
AuthUserFile /etc/.passwd 
require valid-user

    设置/home/ftp/pub/sales/.htaccess

AuthName "shared files" 
AuthType Basic 
AuthUserFile /etc/.passwd 
AuthGroupFile /etc/.salesgroup 
require group manager

    设置文件/etc/.passwd内容为:

user1:passwd1 
user2:passwd2 
user3:passwd3

    设置文件/etc/.salesgroup内容为:

manager: user1 user2

(责任编辑:宋红伟)


原文转自:http://www.ltesting.net