常见高危端口有哪些,如何封禁高危端口
了解端口和开放端口的风险
常见高危端口
如何封禁高危端口
如何保护风险端口
了解端口和开放端口的风险
什么是端口?
大家都知道,IP地址用于标识网络中的计算机。TCP/IP协议把一个IP地址和另一个IP地址连接起来,形成了网络。一台计算机上通常运行着很多服务。例如,允许客户访问网页的Web服务,允许管理员配置服务器的SSH服务,或者用于传输文件的FTP服务等。那么,怎么区分同一台计算机上的不同服务呢?
为此,人们设计了端口的概念。端口由数字指定,即端口号。计算机上每种类型的服务都要提供一个端口,等待通信对端从动态端口发来的数据包。例如,Web服务常用的端口号是80(用于HTTP)或443(用于HTTPS)。当您浏览网页时,您的浏览器随机选择一个端口,向Web服务器的80端口或者443端口发送数据包。一台计算机通过端口发送数据包,另一台计算机通过端口接收数据包。通信双方的端口是数据包发送和接收的终点。
快递员投递包裹时,首先根据街道地址找到小区,然后在这个小区中根据门牌号找到收件人,把包裹送达。街道地址和门牌号构成了完整的投递地址。在计算机的世界,如果我们把IP地址类比为街道地址,把服务类比为快递员,那么端口就是门牌号。IP地址和端口构成了完整的通信地址,用于识别数据包的目的地。
什么是开放端口?
开放端口(Open ports)是指主动接收数据包的端口。相应地,拒绝所有数据包的端口是关闭的端口(Closed ports)。如前所述,当计算机需要对外提供服务时,需要开放特定的端口。毕竟,你要接收包裹,就得给快递员开门。
在特定端口上启用了某个服务以后,该端口将仅供此服务使用,不能再用于其他目的(服务)。端口号分为三类。
知名端口(Well-known Ports):也叫系统端口(System Ports),端口号范围0-1023。知名端口由 ICANN(The Internet Corporation for Assigned Names and Numbers,互联网名称与数字地址分配机构)分配给常用的服务。知名端口与服务具有紧密的联系。通常说采用某知名端口通信,即表明采用该端口对应的服务。例如,22表示SSH,23表示Telnet。
注册端口(Registered Ports):也叫用户端口(User Ports),端口号范围1024-49151。注册端口由IANA(Internet Assigned Numbers Authority,互联网数字分配机构)管理,组织可以向IANA申请某端口为应用程序的注册端口。例如,3389是微软为RDP(Remote Desktop Protocol,远程桌面协议)申请的注册端口。
私有端口(Private Ports):也叫动态端口(Dynamic Ports),端口号范围49152-65535。不应该为服务分配动态端口。动态端口是主机与服务端通信时,临时分配给应用程序的端口。通信结束后,该端口即被释放。不过,在实际应用中,主机通常从1024起分配动态端口。
端口号与服务的分配关系,可参考IANA网站。
开放端口有什么风险?
严格意义上讲,开放端口并不一定存在风险,任何一个特定的端口也并不一定比其他端口更安全或者更危险。
端口本身是中立的。开放端口是否存在风险,由使用端口的服务、管理服务的人来决定。当使用端口的服务存在漏洞、没有及时打补丁,或者服务配置错误、安全策略不合理时,开放端口是危险的。
网络攻击通常从端口扫描开始。攻击者将从开放端口的服务中寻找安全漏洞,并通过成功的漏洞利用非法访问未授权的资源。例如:SMB协议用于组织内部共享文件夹、打印机和串行端口。由于协议本身设计存在缺陷,SMB协议被称为永恒之蓝的零日漏洞利用,导致WannaCry勒索病毒大爆发。在互联网上公开此类服务,必将存在安全风险。除了查找漏洞,攻击者还经常采用暴力破解。例如,针对RDP的暴力破解经常被用于勒索软件攻击,是最常见的入侵手法之一。
如果说开放端口有风险的话,那么这个风险就是,开放端口容易受到攻击。开放任何端口都会增加攻击面,并增加由于漏洞、配置错误和管理不足而受到威胁的可能性。
为什么安全专家建议仅开放必要的端口?
端口是为通信而存在的。组织应实施必要的审核程序,以确定是否开放端口。如果有运行某个服务的需求,开放相应的端口是有意义的。这时,应从合法渠道获取应用软件、及时检查安全漏洞并实施安全加固措施,然后再正式开放端口。
如前所述,开放任何端口都会增加攻击面,并增加受到威胁的可能性。如果没有合理的通信需求,不要开放端口。
组织内部网络中有大量计算机,每台计算机上都可能开放了非必要的端口。你可以逐个计算机去关闭端口,也可以把这项工作交给防火墙。防火墙通常部署在网络的出口,在防火墙上可以阻断此类端口与外部网络的通信。想象你有一个四合院(网络),你可以关闭每个房间(计算机)的门窗(端口),你也可以依赖院墙,然后守好四合院的大门。
如何评估端口安全风险?
检查开放的端口。使用开源的端口扫描工具(如Nmap)或者部署华为漏洞扫描产品VSCAN,可以发现网络中开放的端口。
评估开放端口的必要性。安全专家建议,仅在特定设备上开放必要的端口,非必要的端口应立即关闭。如果扫描结果中出现了未主动开放的端口,请检查主机是否被植入了木马程序。
评估开放端口的安全性。了解每个端口上承载的服务,了解端口可能的风险。端口的安全风险可以从三个方面来评估。
可被利用:端口所承载的服务和应用程序存在安全漏洞,就可能被攻击者利用。
常被利用:攻击者经常使用的端口,风险更大。典型的如网络管理员广泛使用的RDP远程连接服务、FTP文件传输服务、Web应用程序等。
开放范围:开放在公网上的端口,都可能受到攻击。非必要的端口,不要暴露在公网上;有业务需要的,必须做好安全防护。
根据风险等级,端口可以简单分类如下,风险等级依次降低。
高危端口:开放在公网上的、极度危险的端口。这些端口承载的服务曾经造成广泛的安全事件,因此深受攻击者青睐,无时无刻不被各种自动化攻击工具扫描着,风险极高。请参考如何封禁高危端口,在防火墙上封禁常见的高危端口。
高危服务:开放在公网上的、采用非标准端口的高危服务,例如开放在3399端口上的RDP服务。RDP服务的默认端口是3389,修改端口号可以增加攻击者发现风险服务的时间成本,可以在一定程度上提高安全性,因此高危服务的风险等级低于高危端口。但是这种提高的程度非常有限,请参考如何保护风险端口,为高危服务增强安全防护。
风险端口:开放在公网的端口。如果这些开放端口是正常的业务需要,请参考如何保护风险端口,做好安全防护。
常见高危端口
常见的高危端口主要有以下五类,表1-1提供了常见高危端口的不完全列表,供参考。
远程管理服务:远程运维是企业IT运维人员的日常工作,而多数远程管理服务都是攻击者的首选目标,直接开放风险巨大。建议部署运维审计系统(如华为UMA1000),并通过VPN接入内网后登录。如未部署运维审计系统,请务必选择安全的加密应用,如SSHv2。
局域网服务:这些服务端口安全漏洞多,常被攻击者利用,造成严重的安全事件。此类服务主要应用于企业内网访问,完全可以在出口防火墙上封禁。一般情况下,企业自建DNS服务器仅限于解析自有域名,不会对外开放,因此可以在互联网出口防火墙上封禁DNS服务。
互联网服务:SMTP、POP3、IMAP等邮件协议在设计之初没有内置安全性,请使用SSL/TLS加密保护。同样,如果需要对外提供Web服务,请使用HTTPS协议替代HTTP。
数据库:所有的数据库端口都不应该对外开放。
木马常用端口:攻击者在主机中植入木马以后,会在失陷主机中开放后门端口。常用的后门端口很多,如123、1234、12345、666、4444、3127、31337、27374等。在病毒爆发时期,请封禁此类端口。
表1-1 常见高危端口(不完全列表)
如何封禁高危端口
在封禁端口之前,请务必确认端口上未承载正常运行的服务。如有业务需要,请为该业务设置例外策略,并严格限制可访问的源IP地址和源用户。
下面以封禁135、137、138、139、445、3389为例,介绍安全策略的配置方法。
创建一个服务组。选择“对象 > 服务 > 服务组”菜单,单击“新建”按钮。在“可选”窗格中输入端口号,查询对应的服务,并添加到“已选”窗格。
创建一条安全策略。选择“策略 > 安全策略 > 安全策略”菜单,单击“新建安全策略”按钮。设置服务为新创建的服务组“High-risk ports”,“源安全区域”为Untrust,“动作”为“禁止”。
选中这条安全策略,移至顶部。
(可选)为特定用户开放特定端口,如仅允许特定地址的管理终端通过RDP远程桌面访问位于DMZ区域的服务器。注意,添加规则后要移动到上一条规则之前。
如何保护风险端口
任何连接互联网的服务都需要打开特定的端口才能正常工作。这些端口都可能成为攻击者的目标。那么,如何保护这些风险端口?您可以从以下几个方面来实施安全加固措施。
使用安全的协议和软件
非加密协议使用明文传输数据包,攻击者可以使用Wireshark等工具轻松捕获网络流量,查看明文传输的密码等敏感信息。因此,请使用加密协议替代非加密协议,例如,使用SSH替代Telnet、FTP/TFTP,使用SSL加密HTTP、邮件协议,使用VPN保护通信等等。
使用最新的协议和软件版本。很多协议的早期版本存在安全隐患。例如,SSHv1采用了不安全的密钥交换算法,应将SSH服务配置为仅接受SSHv2连接。类似的,所有的服务和应用程序都应采用官方发布的正式版本,并保证及时更新。过时的版本、已经停止维护的版本,都可能存在公开的已知漏洞,且得不到及时的修复。
使用强密码策略和强认证
很多入侵是从破解用户密码开始的。采用强密码策略可以防止弱密码,避免密码泄露,帮助组织更安全地抵御暴力破解。不同应用软件支持的密码策略各不相同,通常包括以下方面。
密码复杂度:密码应至少包含大写字母、小写字母、数字和特殊字符中的3种。
密码最小长度:密码最小长度应不低于8位。
密码有效期:设置密码有效期。密码超期后将会失效,无法登录。用户必须在密码超期前修改密码。
密码历史记录:应用软件记录用户的历史密码。用户设置的新密码不能与记录的历史密码相同,避免用户重复使用旧密码。
密码错误次数:当密码错误次数达到设定的阈值时,锁定账户或登录IP一段时间,以防止暴力破解。
强认证(strong authentication)是融合了两种以上不同类型的身份验证因素的认证策略,可以提高身份验证的安全性。最常见的强认证策略就是双因子认证,用户在登录时不仅要提供用户名/密码,还需要提供与之绑定的物品(比如网上银行普遍采用USB Key),或者动态口令(比如互联网应用普遍采用短信验证码)。
部署纵深防御体系
把网络划分为不同等级的安全区域,并部署安全设备来检查区域之间的通信。例如:
面向互联网的公共服务部署在DMZ区,所有访问公共服务的流量都必须经过防火墙的安全检查。对于仅供特定用户访问的服务,可以设置基于源IP地址或基于用户的安全策略,以限制可访问的群体。
不直接面向互联网的敏感服务,如数据库系统,部署在安全等级更高的区域,并使用安全策略严格限制可访问的源IP地址。这样,即使攻击者破坏了DMZ区的公共服务端口,也还会面临区域间的安全检查,一定程度上增强了防护能力,进而增加攻击者的攻击成本。
对于常见的Web服务,还可以在服务器前部署专用的Web应用防火墙,如华为WAF5000系列。