应用层安全的解决目前往往依赖于网络层、操作系统等……由于应用系统多样复杂,没有特定的安全技术能够完全解决一些特殊应用系统的安全问题。
但是对于一些通用的应用程序,如Web Server程序等,通过漏洞扫描,可以帮助检查这些应用程序自身的安全漏洞和由于配置不当造成的安全漏洞。
#####
应用层介绍
应用层是最难保护的一层,因为TCP/IP程序几乎可以无限制地执行,实际上没有办法保护所有的应用层上的程序。但是,所有的应用层上的程序都有一些共性,需要知道TCP/IP主要是用于客户/服务器模式上的,应用层是这种使用的最好例子。
保护网络上的每个程序不太现实,但是只允许一些特定的程序通过网络进行通信,还是一个不错的办法。
简单邮件传输协议(SMTP)
SMTP本身有很小的风险。黑客可能利用的是:
拒绝服务;
伪造E-Mail信息进行社会工程学欺骗;
发送特洛伊木马和病毒。
文件传输协议(FTP)
连接匿名FTP也必须提供用户名和密码,通用的用户名是anonymous,密码可以是任意字符,但是习惯上使用自己的e-mail地址。
超文本传输协议(HTTP)
超文本传输协议是Internet上应用最为广泛的通信协议之一。它采用可靠的TCP连接,且不维护用户连接状态,是一种无状态协议。通常的过程是:
1.浏览器与服务器建立连接;
2.浏览器向服务器请求文档;
3.服务器响应浏览器的请求;
4.断开连接。
远程连接服务标准协议(Telnet)
Telnet用于远程终端访问。Telnet是首先考虑有关安全的,因为它要求远程用户登录。但是,telnet使用明文发送所有的用户名和密码,因此可以被会话劫持。所以,Telnet使用前应考虑网络环境,不应该被用于公网。
可以使用SecureShell(SSH)来代替Telnet和UNIX下的r系列程序。SSH加密所有传输的数据,还允许通过公钥加密机制来进行认证。
简单网络管理协议(SNMP)
SNMP允许管理员检查状态,并修改SNMP节点的配置。它有2个组件,管理者负责收集所有SNMP节点发出的trap,并且直接从这些节点查询信息。SNMP通过UDP 161和162端口通信。
SNMP所提供的唯一认证就是community name(团体名称)。如果管理者和节点有着相同的community name,那么将允许所有SNMP查询。另一个安全问题是,所有的信息都是明文传输的。SNMP不应用在公网上。
域名系统(DNS)
DNS在解析DNS请求时使用UDP 53端口。一次区域传输是以下两种情况完成的,在进行区域传输时使用TCP。
1.一个客户端利用nslookup命令向DNS服务器请求进行区域传输;
2.一个从属于明服务器向主服务器请求得到一个区域文件。
黑客可以通过攻击DNS服务器得到它的区域文件,从而得到这个区域中所有系统的IP地址和名字。