账号口令配置规范
一、口令配置要求
1.1 口令至少由8位及以上大小写字母、数字、标点及特殊符号等四种字符中至少三种的混合、随机组成,尽量不要以姓名、电话号码以及出生日期等作为口令或者口令的组成部分,口令必须与用户名、账号ID无关。
1.2 应以HASH或者加密技术保存口令,不得以明文方式保存或者传输。
1.3 静态口令至少每90天更换一次。修改口令时,须保留口令修改记录,包含账号、修改时间、修改原因等,以备审计;对重要设备和系统,可考虑采用一次性口令方式,或提高口令更换密度。
1.4 5次以内不得设置相同的口令。
1.5 由于员工离职等原因,原账号不能删除或者需要重新赋予另一个人时,应修改相应账号的口令。
1.6 系统内,用户账号口令数据文件应与系统应用数据分开保存。
二、口令配置注意事项
(a)确保口令满足以下通用原则
1、口令应与用户名无相关性,口令中不得包含用户名的完整字符串、大小写变位或形似变换的字符串,如teleadmin:teleadmin,admin:admin,admin:admin123等;
2、应更换系统或设备的出厂默认口令,如huawei:huawei@123,oracle数据库中SYS:CHANGE_ON_INSTALL,某移动定制版光猫默认帐号CMCCAdmin:aDm8H%MdA等;
4、口令设置应避免3位以上(含3位)键盘排序密码,如qwe(键盘第1行前三个字母)、asd(键盘第2行前三个字母)、qaz(键盘第1列三个字母)、1qaz(键盘第1列数字加前三个字母)、!QAZ(键盘第1列特殊字符加前三个字母)等;
5、口令中不能出现3位以上(含三位)连续字母、数字、特殊字符,如ABC、Abc、123、!@#等;
6、口令中不能出现3位以上(含三位)重复字母、数字、特殊字符,如AAA、Aaa、111、###等。
(b)避免以下易猜解口令规则
1、省份、地市名称、邮箱、电话区号、邮政编码及缩写和简单数字或shift键+简单数字,如BJYD123、HBYD!@#等;
2、单位名称、专业名称、系统名称、厂家名称(含缩写)和简单数字,如HBnmc123、HBsmc_123等;
3、维护人员名字全拼大小写缩写等变形+设备IP地址(一位或两位)或出生年月日等,如维护人员张三,维护设备地址为10.10.10.100和10.10.10.101,出生日期为19951015,则其可能的弱口令为zhangsan100、zhangsan19951015,ZS19951015等;
4、两个及以上弱口令 (常用单词)的组合规则,如admin+root,admin+888888、、sun+123456、console+888888等;
5、密码为帐号的反序,比如root/toor等。
三、口令策略配置方法
(a)常见的操作系统
1. window系统
该系列的操作系统,以Windows7为例。
(1)密码复杂度
(2)密码最长留存期
(3)密码历史
2. linux系统
(1)密码复杂度
配置项 | 操作系统Linux用户口令设置安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。 |
配置步骤 | 1、询问管理员是否存在如下类似的简单用户密码配置,比如: root/root, test/test, root/root1234 2、执行:more /etc/login.defs,检查PASS_MAX_DAYS/ PASS_MIN_DAYS/PASS_WARN_AGE参数 3、执行:awk -F: '($2 == "") { print $1 }' /etc/shadow, 检查是否存在空口令帐号 |
配置项判定依据 | 建议在/etc/login.defs文件中配置: PASS_MAX_DAYS 90 #新建用户的密码最长使用天数 PASS_MIN_DAYS 0 #新建用户的密码最短使用天数PASS_WARN_AGE 7 #新建用户的密码到期提前提醒天数 不存在空口令帐号 |
(2) 密码最长留存期
安全项说明
配置项 | 操作系统Linux用户口令强度安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 |
配置步骤 | /etc/pam.d/system-auth文件中是否对pam_cracklib.so的参数进行了正确设置。 |
配置项判定依据 | 建议在/etc/pam.d/system-auth 文件中配置: password requisite pam_cracklib.so difok=3 minlen=8 ucredit=-1 lcredit=-1 dcredit=1 至少8位,包含一位大写字母,一位小写字母和一位数字 |
(3)密码历史
配置项 | 操作系统Linux用户口令密码历史基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令。 |
配置步骤 |
cat /etc/default/security;设置以下参数 HISTORY=5 #表示不能使用前5次用过的密码
|
配置项判定依据 |
HISTORY=5
|
3. unix系统
(1)密码复杂度
配置项 | 操作系统HPUnix口令强度安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 |
配置步骤 | cat /etc/default/security; MIN_PASSWORD_LENGTH=8 #设定最小用户密码长度为8位 以下4个参数中至少包含两个非0项 PASSWORD_MIN_UPPER_CASE_CHARS=1 #表示至少包括1个大写字母 PASSWORD_MIN_DIGIT_CHARS=1 #表示至少包括1个数字 PASSWORD_MIN_SPECIAL_CHARS=1 #表示至少包括1个特殊字符 PASSWORD_MIN_LOWER_CASE_CHARS=1 表示至少包括1个小写字母 ALLOW_NULL_PASSWORD=0 #表示密码不能为空
|
配置项判定依据 | 创建一个普通帐户,为用户配置与用户名相同的口令、只包含字符或数字的简单口令以及长度短于8位的口令,查看系统是否对口令强度要求进行提示;输入带有特殊符号的复杂口令、普通复杂口令,查看系统是否可以成功设置。 |
(2)密码最长留存期
配置项 | 操作系统HPUnix口令生存周期安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,帐户口令的生存期不长于90天。 |
配置步骤 | cat /etc/default/security;设置以下参数 PASSWORD_MAXDAYS=90 表示密码最多使用90天 |
配置项判定依据 | cat /etc/default/security; PASSWORD_MAXDAYS=90 表示密码最多使用90天 |
(3)密码历史
配置项 | 操作系统HPUnix口令历史安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,应配置设备,使用户不能重复使用最近5次(含5次)内已使用的口令。 |
配置步骤 | cat /etc/default/security;设置以下参数 HISTORY=5 #表示不能使用前5次用过的密码 |
配置项判定依据 | HISTORY=5
|
(二)常见的中间件
1. JBOSS
(1)密码复杂度
配置项 | Jboss密码复杂度安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 | 1、参考配置操作 1. 在${jboss}/server/${server}/deploy/oracle-ds.xml配置文件中设置oracle密码机密 <security-domain>EncryptDBPassword</security-domain>
2. 在${jboss}/server/${server}/conf/login-config.xml配置文件中设置JNDI加密 <application-policy name="testDataSource"> --testDataSource 是连接池的名称 <authentication> jboss.jca:service=LocalTxCM,name=testDataSource </module-option> 2、补充操作说明 口令要求:长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 |
配置项判定依据 | 1、判定条件 检查${jboss}/server/${server}/conf/login-config.xml配置文件中的帐号口令是否符合移动通过配置口令复杂度要求。 2、检测操作 (1)人工检查配置文件中帐号口令是否符合;
|
2. IIS
(1)密码复杂度
(2)密码最长留存期
(3)密码更改
3.Tomcat
(1)密码复杂度
配置项 | Tomcat密码复杂度安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。 |
配置步骤 | 1、参考配置操作 在tomcat/conf/tomcat-user.xml配置文件中设置密码 <user username=”tomcat” password=”Tomcat!234” roles=”admin”> 2、补充操作说明 口令要求:口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。 |
配置项判定依据 | 1、判定条件 检查tomcat/conf/tomcat-user.xml配置文件中的帐号口令是否符合移动通过配置口令复杂度要求。 2、检测操作 (1)人工检查配置文件中帐号口令是否符合; (2)使用tomcat弱口令扫描工具定期对Tomcat Web服务器进行远程扫描,检查是否存在弱口令帐号。 3、补充说明 对于使用弱口令扫描工具进行检查时应注意扫描的线程数等方面,避免对服务器造成不必要的资源消耗;选择在服务器负荷较低的时间段进行扫描检查。 |
(2)密码最长留存期
配置项 | Tomcat密码生存期安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,应支持按天配置口令生存期功能,帐号口令的生存期不长于90天。 |
配置步骤 | 1、参考配置操作 定期对管理Tomcat Web服务器的帐号口令进行修改,间隔不长于90天。 |
配置项判定依据 | 1、判定条件 90天后使用原帐号口令进行登陆尝试,登录不成功; 2、检测操作 使用超过90天的帐号口令进行登录尝试; |
4. WebLogic
(1)密码复杂度
配置项 | WebLogic密码复杂度安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 | 1、参考配置操作 查看WebLogic安装目录下的weblogic.properties配置文件 2、补充操作说明 口令要求:口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置项判定依据 | 1、判定条件 weblogic.system.minPasswordLen=8等 |
(三)常见的数据库
1. MySql数据库
(1)不使用默认密码和弱密码
配置项 | 数据库管理系统Mysql账户口令安全基线要求项 |
配置项说明 | 检查帐户默认密码和弱密码, 口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 | 1.参考配置操作 修改帐户弱密码 如要修改密码,执行如下命令: mysql> update user set password=password('test!p3') where user='root'; mysql> flush privileges; 2.补充操作说明 |
配置项判定依据 | 1.判定条件 密码长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 2.检测操作 检查本地密码:(注意,管理帐号root默认是空密码) mysql> use mysql; mysql> select Host,User,Password,Select_priv,Grant_priv from user; |
2.Oracle数据库
(1)帐号口令的生存期
配置项 | 数据库管理系统Oracle帐号口令生存期安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的数据库,帐号口令的生存期不长于90天。 |
配置步骤 | 1. 以Oracle用户登陆到系统中。 2. 以sqlplus ‘/as sysdba’登陆到sqlplus环境中。 3、执行select limit from dba_profiles where resource_name='PASSWORD_LIFE_TIME' and profile in (select profile from dba_users where account_status='OPEN' |
配置项判定依据 | 查询结果中PASSWORD_LIFE_TIME小于等于90。 |
(2)重复口令使用
配置项 | 数据库管理系统Oracle重复口令的使用策略安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的数据库,应配置数据库,使用户不能重复使用最近5次(含5次)内已使用的口令。 |
配置步骤 | 1. 以Oracle用户登陆到系统中。 2. 以sqlplus ‘/as sysdba’登陆到sqlplus环境中。 3. 执行select resource_name, limit from dba_profiles, dba_users where dba_profiles.profile = dba_users .profile and dba_users.account_status='OPEN' and resource_name='PASSWORD_REUSE_MAX'; |
配置项判定依据 | 查询结果中PASSWORD_REUSE_MAX大于等于5。 |
3.SQLServer数据库
(1)用户口令安全
配置项 | 数据库管理系统SQLServer用户口令安全基线要求项 |
配置项说明 | 对用户的属性进行安全检查,包括空密码、密码更新时间等。修改目前所有帐号的口令,确认为强口令。特别是sa 帐号,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 | 1.检查password字段是否为null。 2.参考配置操作 查看用户状态 运行查询分析器,执行 select * from sysusers Select name,Password from syslogins where password is null order by name # 查看口令为空的用户 |
配置项判定依据 | password字段不为null。 |
4.DB2数据库
(1)密码复杂度
配置项 | 数据库管理系统DB2用户口令安全基线要求项 |
配置项说明 | 对用户的属性进行安全检查,包括空密码、密码更新时间等。修改目前所有帐号的口令,确认为强口令。口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 | 1.检查password字段是否为null。 2.参考配置操作 查看用户状态 运行查询分析器,查看口令为空的用户 |
配置项判定依据 | password字段不为null。 |
5. Sybase数据库
(1)密码复杂度
配置项 | 密码长度安全基线要求项 |
配置项说明 | 口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 | 1、 参考配置操作 sp_configure "minimum password length",8 sp_configure "check password for digit",2 sp_configure "systemwide password expiration",90 |
配置项判定依据 | 2、 判定条件 isql>sp_configure "minimum password length" isql>go isql>sp_configure "check password for digit" isql>go isql>sp_configure "systemwide password expiration" isql>go 查看“config value”和“run value”是否为8 ‘1’—表示强制用户口令至少包含一个数字 查看“config value”和“run value”是否为90 |
(四)网络设备
1. Cisco路由器
(1)密码复杂度
配置项 | 密码复杂度安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 |
1. 参考配置操作 Router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#aaa new-model Router(config)#aaa authentication login default group tacacs+ Router(config)#aaa authentication enable default group tacacs+ Router(config)#tacacs-server host 192.168.6.18 Router(config)#tacacs-server key Ir3@1yh8n#w9@swD Router(config)#end Router# 2. 补充操作说明 与外部TACACS+ server 192.168.6.18 联动,远程登录使用TACACS+ serverya验证;口令强度由TACACS+ server控制 |
配置项判定依据 |
|
2. H3C交换机用户口令
(1)密码认证登录
配置项 | 密码认证登录安全基线要求项 |
配置项说明 | 通过控制台和远程终端,需要密码才能登录. 口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 | 1、参考配置操作 user-interface aux 0 8 authentication-mode password user privilege level 0 set authentication password cipher xxx user-interface vty 0 4 authentication-mode password //或authentication-mode scheme user privilege level 0 set authentication password cipher xxx 2、补充说明 无。 |
配置项判定依据 | 1、 判定条件 用配置中没有的用户名去登录,结果是不能登录 2、 参考检测操作 <H3C>display current-configuration 3、 补充说明 无。 |
3. Huawei路由器用户口令
(1)口令复杂度
配置项 | 静态口令长度安全基线要求项 |
配置项说明 | 对于采用静态口令认证技术的设备,口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 |
1、参考配置操作 aaa local-user user1 password cipher NumABC%$ 2、补充说明 无。 |
配置项判定依据 |
1、 判定条件 查看用户的口令长度是否至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少2类。 对于加密的口令,通过登陆检测。 2、 参考检测操作 display current-configuration configuration aaa 3、 补充说明 无。 |
(五)防火墙
1.Cisco防火墙
(1)口令复杂度要求
配置项 | 口令复杂度要求安全基线要求项 |
配置项说明 | 防火墙管理员帐号口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 | 1. 参考配置操作 configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#aaa new-model Router(config)#aaa authentication login default group tacacs+ Router(config)#aaa authentication enable default group tacacs+ Router(config)#tacacs-server host 192.168.6.18 Router(config)#tacacs-server key Ir3@1yh8n#w9@swD 2. 补充操作说明 口令字符不完全符合要求。 |
配置项判定依据 | 1. 判定条件 该级别的密码设置由管理员进行密码的生成,设备本身无此强制功能。 2. 检测操作 此项无法通过配置实现,建议通过管理实现。 3. 补充说明 无。 |
2.H3C防火墙
(1)口令复杂度要求
配置项 | 口令复杂度要求安全基线要求项 |
配置项说明 | 防火墙管理员帐号口令长度至少8位,并包括数字、小写字母、大写字母和特殊符号四类中至少两类。且5次以内不得设置相同的口令。密码应至少每90天进行更换。 |
配置步骤 | 1.参考配置操作 [H3C]local-user admin [H3C-luser-huawei]service-type telnet level 3 [H3C-luser-huawei]password cipher Aq1!Sw2@ 2.补充操作说明 无 |
配置项判定依据 | 1. 判定条件 该级别的密码设置由管理员进行密码的生成,设备本身无此强制功能。 2. 检测操作 此项无法通过配置实现,建议通过管理实现。 3. 补充说明 无。 |
(六)应用层
1.web应用
(1)web登入界面口令复杂度要求
应用层口令要求,特别是web应用层,必须满足口令配置要求,相关代码必须能够检测口令是否满足口令复杂度的要求,如能检测口令不符合至少由8位及以上大小写字母、数字、标点及特殊符号等四种字符中至少三种混合口令的情况。
开发人员应开启检测web登入界面的密码复杂度策略,当用户注册违反口令安全策略,则注册失败,比如当用户注册账号,输入的口令为123456、abcde等简单字符,则不能允许注册成功。
五、弱口令检测方法
(一)常用弱口令检测方法
1.扫描工具介绍
本文档推荐的扫描工具是超级弱口令检查工具V1.0 Beta17 ,该款工具可以多款协议爆破弱口令,可以爆破的协议包括SSH,telnet,vnc,rdp,oracle,mysql,sqlserver, redis等。
2.工具使用注意事项
(1)软件的用户名和密码字典分为自定义和默认两种,自定义的用户名和字典通过导入的方式,默认的用户名和密码字典通过设置选型进行查看和更新。当两者都有设置,则软件会使用导入的用户名和密码字典。
(2)导入软件的密码字典的大小大概在10W条以内,太大会导致软件卡死,影响扫描进程。
3.扫描具体方法
具体实施步骤:
(1)配置扫描服务,选择需要扫描的服务。
(2)配置扫描的目标地址,导入目标地址文本。
(3)配置用户名,导入用户名文本。
(4)配置密码,导入密码文本。
(5)配置只破解一个账户,如果只想爆破一个账号,比如windows系统下的administrator,则此处需要勾选,否则不要配置。
(6)点击开始检查。
4.扫描工具
超级弱口令检查工具V1.0 Beta17
(二)常见的中间件弱口令检测方法
1.扫描工具介绍
F-MiddlewareScan是一款利用Python开发的脚本,它对中间件的弱口令和漏洞进行扫描,主要功能是实现对中间件的自动化检测,包括端口探测、中间件识别、弱口令爆破、漏洞检测等功能,该脚本能破解tomcat、weblogic、JBOSS、axis、resin和glassfish几款中间件。
2.工具使用注意事项
(1)添加弱口令密码本
1) 查找中间件的脚本,比如JBOSS的脚本名为jboss_crackpass。
2) 打开脚本,找到如下红色款的部分,将破解的账号名和密码替代为红框部分。
(2)添加IP列表和端口列表
ip列表文件ip.ini是最多可以添加65535个IP。
port.ini列表用于添加所有端口。
3.扫描具体方法
(1)安装Python开发环境,建议使用版本:2.7.13或者2.7.14
(2)针对目标是多IP,多端口进行弱口令扫描
扫描命令:
python F-MiddlewareScan.py -h ip.ini -p port.ini
4.扫描工具