账号口令配置规范

一、口令配置要求

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>      
         <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">
            <module-option name=“username”>apps</module-option>   --
用户名    
            <module-option name="password">3fb2b2b29f74131a</module-option> --
加密后的密码             <module-option name="managedConnectionFactoryName">

           jboss.jca:service=LocalTxCM,name=testDataSource

         </module-option>
         </login-module>
     </authentication>
 </application-policy>

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.扫描工具