网络设备4A系统安全浅谈

发表时间:2021/6/10   来源:《中国科技信息》2021年7月   作者:周军
[导读] 本文探讨了网络设备4A系统在开发和运维方面的安全问题,旨在提高开发与运维人员的安全意识,避免在应用4A系统的过程中引入新的安全问题。

中国联合网络通信有限公司东营市分公司,周军  257091

摘  要:本文探讨了网络设备4A系统在开发和运维方面的安全问题,旨在提高开发与运维人员的安全意识,避免在应用4A系统的过程中引入新的安全问题。
关键词:4A  Tacacs+ 
        1引言
        传统的网络设备操作模式,即每台设备独立进行用户管理的模式,存在用户管理分散、弱密码、操作命令无法审计等安全隐患,不适合大量网络设备的管理,尤其是通信行业,拥有大量的网络设备,目前比较妥善的解决方案就是采用4A系统。
        4A(Authentication认证、Authorization授权、Account账号管理、Audit审计) 是国际网安界于1995年提出统一安全管理平台概念。如下图所示,采用4A系统后,维护人员在登陆网络设备时,网络设备将用户名、密码发送到4A系统,4A系统根据系统的配置决定是否允许用户登陆网络设备;维护人员在执行命令时,网络设备将命令发送到4A系统,系统根据配置决定命令是否授权执行;网络设备还会将命令发送到4A系统进行进行日志留存。

图1  网络拓扑
       采用4A系统后,对所有的网络设备进行了集中的认证、授权、用户管理和操作记账,若4A系统自身存在安全隐患,则会使整个网络面临安全威胁,下面从系统开发和运维方面简述4A系统的安全问题。
        2开发层面
        2.1协议实现
        常见的网络设备认证管理协议是Radius和Tacacs+,Radius协议不支持对设备的配置命令进行授权和记账,无法实现4A的审计的功能,不能用来实现4A系统。Tacacs+协议支持对设备的配置命令进行授权和记账,可以实现4A的审计的功能,网络设备的4A系统都使用Tacacs+协议来实现。
        Tacacs+协议标准在2020年9月发布的RFC 8907中定义,其定义了三种认证功能,当action字段为TAC_PLUS_AUTHEN_LOGIN时,网络设备将用户名、密码以ASCII/PAP/CHAP/MSCHAP/MSCHAPv2认证的方式发送到服务器进行认证;当action字段为TAC_PLUS_AUTHEN_SENDAUTH时,服务器将用户名、密码以PAP/CHAP/MSCHAP认证的方式发送到网络设备进行认证,这种方式存在安全隐患,当攻击人员伪造成网络设备向4A系统发送请求,可以诱使系统将密码发送给攻击人员,所以4A系统不应该实现此功能。
        2.2弱密码
        网络设备暴露在网络上,很容易遭受密码暴力破解攻击,所以4A系统在创建用户时,必须有密码长度及复杂度检查规则,长度不少于8位,密码必须是大写字母、小写字母、数字和特殊字符组合中的三种;还应该进行常用词过滤,不允许使用cisco、huawei、zte、abc、123等常见密码词汇。
        为防止密码泄露,密码在保存时,不能直接保存明文;为防止暴力破解,也不能使用DES、MD5等容易被暴力破解的加密及哈希算法;密码必须包含salt;建议使用16个字符的salt及SHA512算法生成密码哈希。
        密码必须设置过期时间,在临近密码过期时,系统提示用户修改密码,过期后不允许登陆。
        2.3默认配置
        配置文件不能有默认用户、默认用户组、默认权限、默认Tacacs+ key等默认配置,所有的配置必须是显式配置,由管理员添加后才具有相关权限,以杜绝默认配置引发的安全问题。
        2.4用户管理
        用户及用户组的管理必须安全且简单,一个用户只属于一个组,用户的配置优先于所属组的配置;每个用户必须有独立的密码,不能以组的密码登陆;组不能再属于另一个组,以防止意想不到到配置问题。
        2.5缓冲区溢出
        系统在处理字符串时,若使用非安全函数,容易造成栈或堆缓冲区溢出,轻则逻辑错误、程序崩溃,重则被控制。所以必须使用安全函数,即能控制字符长度的函数,如strncat、snprintf等。
        2.6内存泄漏
        系统在实现时必然有大量的动态内存分配和释放,必须确保动态分配的内存在使用完后进行释放,以防止内存泄漏。
        2.6双因素认证
        只使用用户名、密码一种方式进行验证,不是太安全,建议实现双因素认证,如人脸识别和短信验证,即使攻击人员非法获取了维护人员的用户名、密码,也无法登陆系统。
        2.7Web安全
        若4A系统有Web功能,则必须在代码层面防范SQL注入、XSS、越权操作、组件安全等Web安全问题。
        3运维方面
        3.1服务器安全
        4A服务器必须开启防火墙,只开放Tacacs+等4A系统必须开放的端口,其他端口一律阻塞;只允许网络设备连接服务器的Tacacs+端口;只允许维护人员的终端访问Web端口;只允许系统管理员的终端ssh登陆服务器。
        3.2服务启动
        Tacacs+的默认端口是49,普通用户无法监听这个端口,必须使用root用户,但这又会造成安全隐患。服务器程序若可以先以root用户身份打开这个端口,再切换到普通用户,则可以使用root启动程序并使用默认端口;若不可以,则必须以普通用户身份来运行服务器程序,并将服务端口更改为1024至65535之间的任意一个端口。
        3.3网络设备配置
        虽然各个厂商在网络设备上都实现了Tacacs+协议,在网络上的通信数据大体达成一致,但每个厂商的网络设备内部实现都不一样,若网络设备配置不当,很容易引起4A系统绕过及权限提升,所以在进行网络设备配置时,必须仔细阅读厂商的文档,严格按照要求来配置,并进行测试;要配置ACL只允许合法终端访问网络设备。
         3.4Tacacs+ key的管理
         Tacacs+报文body部分使用配置的key及报文头信息进行异或,以防止中间人攻击。若key被泄漏或破解,则中间人在截获用户登陆数据后,就可以解密获得维护人员的用户名及密码。在设备数量成百上千时,若无法保证为每个设备配置一个单独的key,则必须对设备进行分组管理,一个组配置一个单独的key。
        3.5双人管理
        系统管理员可以查看服务器的配置信息,密码以哈希值存储时,虽不能直接获得用户的密码,但其知道网络设备的Tacacs+  key,通过网络抓包可以间接获得用户的密码,以用户的身份进行非法操作。所以4A系统要采用双人管理,一人负责Tacacs+的服务器及用户管理,另一人负责双因素认证如人脸识别或短信验证服务器的管理,任何一人都无法独立假冒用户进行非法操作。
        4结束语
        4A系统是为了加强设备管理的安全性而诞生的,但若开发或维护不当,反而引发更大的安全问题,以至于有的单位在进行网络重保时,要关闭4A系统。但若我们在开发和维护环节,对一些潜在的安全隐患处理得当,就可以放心大胆的使用4A系统,真正发挥4A系统的安全功能。

投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: