CN115017493A - 一种针对主机服务的弱口令检测方法、系统及设备 - Google Patents

一种针对主机服务的弱口令检测方法、系统及设备 Download PDF

Info

Publication number
CN115017493A
CN115017493A CN202210648515.7A CN202210648515A CN115017493A CN 115017493 A CN115017493 A CN 115017493A CN 202210648515 A CN202210648515 A CN 202210648515A CN 115017493 A CN115017493 A CN 115017493A
Authority
CN
China
Prior art keywords
password
service
information
file
weak
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210648515.7A
Other languages
English (en)
Inventor
陈靖远
李昌志
李扬
蒋倩
张嘉欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Changting Future Technology Co ltd
Original Assignee
Beijing Changting Future Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Changting Future Technology Co ltd filed Critical Beijing Changting Future Technology Co ltd
Priority to CN202210648515.7A priority Critical patent/CN115017493A/zh
Publication of CN115017493A publication Critical patent/CN115017493A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了一种针对主机服务的弱口令检测方法、系统及设备,可以对用户主机上运行的多种关键服务提供了弱口令检测,全面保障主机安全;针对不同的服务生成了不同的字典,使弱口令检测更有针对性,检测效率更高。通过主机服务本地保存的加密后的口令记录文件进行检测,不存在多次尝试登录服务的暴力破解行为,降低服务或主机宕机风险,为主机提供无感知的弱口令检测,不影响主机服务的正常运行。正在运行或没有运行的关键服务的弱口令使用情况都能被检测到,在弱口令方面,为主机提供了更为全面的安全保障。

Description

一种针对主机服务的弱口令检测方法、系统及设备
技术领域
本发明实施例涉及网络安全技术领域,具体涉及一种针对主机服务的弱口令检测方法、系统及设备。
背景技术
弱口令是指容易被猜测或爆破的口令,通常包括:长度小于8位或者字符类型少于3类的简单口令,以及网上公开的或者恶意软件中的黑客字典等。弱口令容易被破解,一旦被攻击者获取,可用来直接登录系统,读取甚至修改主机文件,使用弱口令将使得系统及服务面临巨大的风险。而主机管理员常常在一些服务中有意(便于记忆)或无意地使用弱口令,因此,对主机中关键服务进行弱口令检测势在必行。
然而,现有的弱口令检测通常存在以下问题:
(1)只能对单一的服务(如为SSH服务提供弱口令检测),不能对其它关键服务进行弱口令检测;
(2)用于检测的弱口令字典单一(不管是对什么服务进行检测,使用的是相同的弱口令字典),检测效率较低;
(3)利用尝试多次登录服务的方式来探测是否存在弱口令,这样的检测方式不仅会消耗主机过多的资源,还可能造成主机宕机或触发主机的防御机制(被判为入侵行为),影响主机中关键服务的正常运行;
(4)无法检测到在主机上存在但暂时并没有运行的服务的弱口令使用情况,检测不够全面,主机依然存在潜在的危险。
发明内容
为此,本发明实施例提供一种针对主机服务的弱口令检测方法、系统及设备,以解决现有技术弱口令检测只能检测单一服务,检测效率较低等技术问题。
为了实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,本申请实施例提供了一种针对主机服务的弱口令检测方法,所述方法包括:
实时探测主机中存在的待检测服务;
针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录;
构建与所述待检测服务对应的弱口令字典;
利用所述弱口令字典检测所述口令记录是否为弱口令;
若所述口令记录为弱口令,则上报对应的弱口令,并在预设时间后,对所述弱口令进行整改确认;
若所述口令记录不为弱口令,则进入下一周期,探测主机中存在的待检测服务。
进一步地,实时探测主机中存在的待检测服务,包括:
扫描用于存放服务启动脚本设置的第一unit配置文件目录、用于存放系统执行过程中所产生的服务脚本的第二unit配置文件目录以及用于存放管理员建立的执行脚本的第三配置文件unit目录的文件,得到所述待检测服务;
其中,所述待检测服务包括运行状态和停止状态下的Mysql服务、SSH服务、Vsftpd服务、Tomcat服务、Redis服务、SVN服务、Rsync服务、PostgreSql服务、Jenkins服务、OpenLDAP服务、Weblogic服务。
进一步地,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,包括:
针对所述Mysql服务,从默认PID文件中,获取所述Mysql服务进程的ID号,记为mysqlPID;
根据所述mysqlPID获取相关进程信息,保存在进程信息结构体中;
从所述进程信息结构体中解析出服务配置信息在对应主机上的保存路径;
从FRM文件中分析出所述Mysql服务使用的引擎类型;
若所述引擎类型为MyISAM存储引擎,则从所述保存路径下第一表数据信息存储文件中获取所述口令记录文件并解析出所需信息;
若所述引擎类型为Aria存储引擎,则从所述保存路径下第二表数据信息存储文件中获取所述口令记录文件并解析出所需信息;
若所述引擎类型为InnoDB存储引擎,则从所述保存路径下第三表数据信息存储文件中获取所述口令记录文件并解析出所需信息。
进一步地,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,还包括:
针对所述SSH服务,从第一用户口令信息保存文件和第二用户口令信息保存文件中获取所述口令记录文件并解析出所需信息;
针对所述Vsftpd服务,获取Vsftpd服务进程信息,从中解析出配置文件路径;基于所述配置文件路径得到配置文件,从中解析出配置信息;根据所述配置信息构造出所述Vsftpd服务对应的PAM文件路径;从所述PAM文件路径中的参数中得到所述口令记录文件的第一存储路径;获取所述第一存储路径下的文件并解析出所需信息;
针对所述Tomcat服务,获取Tomcat服务进程信息;从进程命令行参数中解析出服务实例的私有信息路径;根据所述私有信息路径,确定所述口令记录文件的第二存储路径;获取所述第二存储路径下的文件并解析出所需信息;
针对Redis服务,获取Redis服务进程命令行信息,所述Redis服务进程命令行信息包括:Redis客户端进程信息或Redis服务端进程信息;检测所述进程命令行信息中是否带有“-a”参数或“--requirepass”参数;若所述进程命令行信息中带有“-a”参数或“--requirepass”参数,则直接提取参数值即为所需信息;若所述进程命令行信息中不带有“-a”参数和“--requirepass”参数,则从Redis服务配置文件中解析出所需信息。
进一步地,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,还包括:
针对所述SVN服务,获取SVN服务进程信息,从SVN进程命令行信息中获取服务Home目录;遍历所述Home目录下的多个口令配置文件,从所述口令配置文件解析出所需信息;
针对所述Rsync服务,获取Rsync服务进程信息,从Rsync服务进程命令行信息中解析出Rsync服务配置文件路径;基于所述Rsync服务配置文件路径获取配置文件;从所述配置文件中解析出口令配置文件,从所述口令配置文件解析出所需信息;
针对所述PostgreSql服务,获取PostgreSql服务进程信息;从PostgreSql服务进程命令行信息中获取PostgreSql服务配置文件路径,进而确定用于存储用户相关口令信息的文件并解析出所需信息;
针对所述Jenkins服务,获取启动所述Jenkins服务的Java进程,从Java进程命令行信息或系统环境变量中解析出Jenkins主目录属性的值;遍历Jenkins主目录“用户”文件夹路径下的多个对应用户的Jenkins服务的用户配置文件,从所述用户配置文件解析出所需信息;
针对所述OpenLDAP服务,获取服务端进程信息;获取slapd进程执行路径,以及从进程命令行信息中解析出服务配置文件路径;基于所述slapd进程执行路径,获取LDAP目录交换格式输出文件;根据服务配置文件路径,从所述LDAP目录交换格式输出文件中解析出所需信息。
进一步地,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,还包括:
针对所述Weblogic服务,获取启动所述Weblogic服务的Java进程;
检查进程命令行信息中是否存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”;
若进程命令行信息中存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”,则解析出参数值作为所需信息之一;
若进程命令行信息中不存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”,则不进行参数解析;
获取每个Weblogic域中与用户口令信息相关的第一配置文件、第二配置文件、第三配置文件的目录,作为用户配置文件的预设相对路径;
从进程命令行信息或从环境变量中解析出Weblogic服务端的Home目录;
从环境变量或进程执行路径或Weblogic服务端的Home目录的域注册文件中,解析出Weblogic域目录;
将解析出的Weblogic域目录与所述预设相对路径拼接得到用户配置文件的绝对路径;
基于所述用户配置文件的绝对路径得到用户配置文件,并从所述用户配置文件中解析出明文的用户名和主密钥;
从第四配置文件中解析出加密的密钥和盐值;
根据已有的主密钥将加密的密钥和盐值解密,得到明文密钥和盐值;
对第五配置文件进行解析,判断从所述第五配置文件中是否解析出加密的用户名和口令;
如果从所述第五配置文件中解析出加密的用户名和口令,则使用所述明文密钥和盐值对所述加密的用户名和口令进行解密,得到所需信息;
如果从所述第五配置文件中未解析出加密的用户名和口令,则从第六配置文件解析出加密的用户名和口令,并使用所述明文密钥和盐值对所述加密的用户名和口令进行解密,得到明文的用户名和口令。
进一步地,构建与所述待检测服务对应的弱口令字典,包括:
使用与所述口令记录相同的加密方式,构建出对应不同服务的弱口令字典;
所述弱口令字典包括:通用的基础弱口令字典以及对应与每个服务的额外弱口令字典;
根据所述待检测服务,选取与所述待检测服务对应的额外弱口令字典;
利用预设的基础弱口令字典和选取的额外弱口令字典进行融合,得到合并后的弱口令字典。
进一步地,利用所述弱口令字典检测所述口令记录是否为弱口令,包括:
检测所述口令记录中口令是否为空;
若所述口令记录中口令为空,则所述口令记录为弱口令;
若所述口令记录中口令不为空,则检测所述口令记录中用户名和口令是否相同;
若所述口令记录中用户名和口令相同,则所述口令记录为弱口令;
若所述口令记录中用户名和口令不相同,根据解析出的口令记录格式及加密方式,检测所述待检测服务的口令信息是否与所述弱口令字典中经过对应加密的口令之一相同;
若所述待检测服务的口令信息是否与所述弱口令字典中经过对应加密的口令之一相同,则所述口令记录为弱口令,否则,所述口令记录不为弱口令。
根据本发明实施例的第二方面,本申请实施例提供了一种针对主机服务的弱口令检测系统,所述系统包括:
主机服务探测模块,用于实时探测主机中存在的待检测服务;
口令文件解析模块,用于针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录;
弱口令字典构建模块,用于构建与所述待检测服务对应的弱口令字典;
弱口令判断模块,用于利用所述弱口令字典检测所述口令记录是否为弱口令;若所述口令记录不为弱口令,则进入下一周期,探测主机中存在的待检测服务;
弱口令信息上报模块,用于若所述口令记录为弱口令,则上报对应的弱口令;
弱口令整改检测模块,用于在上报对应的弱口令预设时间后,对所述弱口令进行整改确认。
进一步地,实时探测主机中存在的待检测服务,包括:
扫描用于存放服务启动脚本设置的第一unit配置文件目录、用于存放系统执行过程中所产生的服务脚本的第二unit配置文件目录以及用于存放管理员建立的执行脚本的第三配置文件unit目录的文件,得到所述待检测服务;
其中,所述待检测服务包括运行状态和停止状态下的Mysql服务、SSH服务、Vsftpd服务、Tomcat服务、Redis服务、SVN服务、Rsync服务、PostgreSql服务、Jenkins服务、OpenLDAP服务、Weblogic服务。
进一步地,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,包括:
针对所述Mysql服务,从默认PID文件中,获取所述Mysql服务进程的ID号,记为mysqlPID;
根据所述mysqlPID获取相关进程信息,保存在进程信息结构体中;
从所述进程信息结构体中解析出服务配置信息在对应主机上的保存路径;
从FRM文件中分析出所述Mysql服务使用的引擎类型;
若所述引擎类型为MyISAM存储引擎,则从所述保存路径下第一表数据信息存储文件中获取所述口令记录文件并解析出所需信息;
若所述引擎类型为Aria存储引擎,则从所述保存路径下第二表数据信息存储文件中获取所述口令记录文件并解析出所需信息;
若所述引擎类型为InnoDB存储引擎,则从所述保存路径下第三表数据信息存储文件中获取所述口令记录文件并解析出所需信息。
进一步地,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,还包括:
针对所述SSH服务,从第一用户口令信息保存文件和第二用户口令信息保存文件中获取所述口令记录文件并解析出所需信息;
针对所述Vsftpd服务,获取Vsftpd服务进程信息,从中解析出配置文件路径;基于所述配置文件路径得到配置文件,从中解析出配置信息;根据所述配置信息构造出所述Vsftpd服务对应的PAM文件路径;从所述PAM文件路径中的参数中得到所述口令记录文件的第一存储路径;获取所述第一存储路径下的文件并解析出所需信息;
针对所述Tomcat服务,获取Tomcat服务进程信息;从进程命令行参数中解析出服务实例的私有信息路径;根据所述私有信息路径,确定所述口令记录文件的第二存储路径;获取所述第二存储路径下的文件并解析出所需信息;
针对Redis服务,获取Redis服务进程命令行信息,所述Redis服务进程命令行信息包括:Redis客户端进程信息或Redis服务端进程信息;检测所述进程命令行信息中是否带有“-a”参数或“--requirepass”参数;若所述进程命令行信息中带有“-a”参数或“--requirepass”参数,则直接提取参数值即为所需信息;若所述进程命令行信息中不带有“-a”参数和“--requirepass”参数,则从Redis服务配置文件中解析出所需信息。
进一步地,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,还包括:
针对所述SVN服务,获取SVN服务进程信息,从SVN进程命令行信息中获取服务Home目录;遍历所述Home目录下的多个口令配置文件,从所述口令配置文件解析出所需信息;
针对所述Rsync服务,获取Rsync服务进程信息,从Rsync服务进程命令行信息中解析出Rsync服务配置文件路径;基于所述Rsync服务配置文件路径获取配置文件;从所述配置文件中解析出口令配置文件,从所述口令配置文件解析出所需信息;
针对所述PostgreSql服务,获取PostgreSql服务进程信息;从PostgreSql服务进程命令行信息中获取PostgreSql服务配置文件路径,进而确定用于存储用户相关口令信息的文件并解析出所需信息;
针对所述Jenkins服务,获取启动所述Jenkins服务的Java进程,从Java进程命令行信息或系统环境变量中解析出Jenkins主目录属性的值;遍历Jenkins主目录“用户”文件夹路径下的多个对应用户的Jenkins服务的用户配置文件,从所述用户配置文件解析出所需信息;
针对所述OpenLDAP服务,获取服务端进程信息;获取slapd进程执行路径,以及从进程命令行信息中解析出服务配置文件路径;基于所述slapd进程执行路径,获取LDAP目录交换格式输出文件;根据服务配置文件路径,从所述LDAP目录交换格式输出文件中解析出所需信息。
进一步地,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,还包括:
针对所述Weblogic服务,获取启动所述Weblogic服务的Java进程;
检查进程命令行信息中是否存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”;
若进程命令行信息中存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”,则解析出参数值作为所需信息之一;
若进程命令行信息中不存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”,则不进行参数解析;
获取每个Weblogic域中与用户口令信息相关的第一配置文件、第二配置文件、第三配置文件的目录,作为用户配置文件的预设相对路径;
从进程命令行信息或从环境变量中解析出Weblogic服务端的Home目录;
从环境变量或进程执行路径或Weblogic服务端的Home目录的域注册文件中,解析出Weblogic域目录;
将解析出的Weblogic域目录与所述预设相对路径拼接得到用户配置文件的绝对路径;
基于所述用户配置文件的绝对路径得到用户配置文件,并从所述用户配置文件中解析出明文的用户名和主密钥;
从第四配置文件中解析出加密的密钥和盐值;
根据已有的主密钥将加密的密钥和盐值解密,得到明文密钥和盐值;
对第五配置文件进行解析,判断从所述第五配置文件中是否解析出加密的用户名和口令;
如果从所述第五配置文件中解析出加密的用户名和口令,则使用所述明文密钥和盐值对所述加密的用户名和口令进行解密,得到所需信息;
如果从所述第五配置文件中未解析出加密的用户名和口令,则从第六配置文件解析出加密的用户名和口令,并使用所述明文密钥和盐值对所述加密的用户名和口令进行解密,得到明文的用户名和口令。
进一步地,构建与所述待检测服务对应的弱口令字典,包括:
使用与所述口令记录相同的加密方式,构建出对应不同服务的弱口令字典;
所述弱口令字典包括:通用的基础弱口令字典以及对应与每个服务的额外弱口令字典;
根据所述待检测服务,选取与所述待检测服务对应的额外弱口令字典;
利用预设的基础弱口令字典和选取的额外弱口令字典进行融合,得到合并后的弱口令字典。
进一步地,利用所述弱口令字典检测所述口令记录是否为弱口令,包括:
检测所述口令记录中口令是否为空;
若所述口令记录中口令为空,则所述口令记录为弱口令;
若所述口令记录中口令不为空,则检测所述口令记录中用户名和口令是否相同;
若所述口令记录中用户名和口令相同,则所述口令记录为弱口令;
若所述口令记录中用户名和口令不相同,根据解析出的口令记录格式及加密方式,检测所述待检测服务的口令信息是否与所述弱口令字典中经过对应加密的口令之一相同;
若所述待检测服务的口令信息是否与所述弱口令字典中经过对应加密的口令之一相同,则所述口令记录为弱口令,否则,所述口令记录不为弱口令。
根据本发明实施例的第三方面,提供了一种针对主机服务的弱口令检测设备,所述设备包括:处理器和存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种一种针对主机服务的弱口令检测方法的步骤。
与现有技术相比,本申请实施例提供的一种针对主机服务的弱口令检测方法、系统及设备,可以对用户主机上运行的多种关键服务提供了弱口令检测,全面保障主机安全;针对不同的服务生成了不同的字典,使弱口令检测更有针对性,检测效率更高。通过主机服务本地保存的加密后的口令记录文件进行检测,不存在多次尝试登录服务的暴力破解行为,降低服务或主机宕机风险,为主机提供无感知的弱口令检测,不影响主机服务的正常运行。正在运行或没有运行的关键服务的弱口令使用情况都能被检测到,在弱口令方面,为主机提供了更为全面的安全保障。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
图1为本发明实施例提供的一种针对主机服务的弱口令检测系统的结构示意图;
图2为本发明实施例提供的一种针对主机服务的弱口令检测方法的流程示意图;
图3为本发明实施例提供的针对所述Mysql服务获取主机中相应的口令记录文件并从中解析出相应的口令记录的流程示意图;
图4为本发明实施例提供的针对Vsftpd服务获取主机中相应的口令记录文件并从中解析出相应的口令记录的流程示意图;
图5为本发明实施例提供的针对Tomcat服务获取主机中相应的口令记录文件并从中解析出相应的口令记录的流程示意图;
图6为本发明实施例提供的针对Redis服务获取主机中相应的口令记录文件并从中解析出相应的口令记录的流程示意图;
图7为本发明实施例提供的针对Weblogic服务获取主机中相应的口令记录文件并从中解析出相应的口令记录的流程示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的目的在于:本发明实施例提供一种针对主机服务的弱口令检测方法、系统及设备,以解决现有技术弱口令检测只能检测单一服务,检测效率较低等技术问题。
为了解决上述技术问题,如图1所示,本申请实施例提供了一种针对主机服务的弱口令检测系统,其具体包括:主机服务探测模块1、口令文件解析模块2、弱口令字典构建模块3、弱口令判断模块4、弱口令信息上报模块5、弱口令整改检测模块6。
进一步地,主机服务探测模块1用于实时探测主机中存在的待检测服务;口令文件解析模块2用于针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录;弱口令字典构建模块3用于构建与所述待检测服务对应的弱口令字典;弱口令判断模块4用于利用所述弱口令字典检测所述口令记录是否为弱口令;若所述口令记录不为弱口令,则进入下一周期,探测主机中存在的待检测服务;弱口令信息上报模块5用于若所述口令记录为弱口令,则上报对应的弱口令;弱口令整改检测模块6用于在上报对应的弱口令预设时间后,对所述弱口令进行整改确认。
与现有技术相比,本申请实施例提供的一种针对主机服务的弱口令检测系统,可以对用户主机上运行的多种关键服务提供了弱口令检测,全面保障主机安全;针对不同的服务生成了不同的字典,使弱口令检测更有针对性,检测效率更高。通过主机服务本地保存的加密后的口令记录文件进行检测,不存在多次尝试登录服务的暴力破解行为,降低服务或主机宕机风险,为主机提供无感知的弱口令检测,不影响主机服务的正常运行。正在运行或没有运行的关键服务的弱口令使用情况都能被检测到,在弱口令方面,为主机提供了更为全面的安全保障。
与上述公开的一种针对主机服务的弱口令检测系统相对应,本发明实施例还公开了一种针对主机服务的弱口令检测方法。以下结合上述描述的一种针对主机服务的弱口令检测系统详细介绍本发明实施例中公开的一种针对主机服务的弱口令检测方法。
在本发明一个实施例中,如图2所示,以下对本申请实施例提供的一种针对主机服务的弱口令检测方法具体步骤进行详细描述。
步骤S11:通过主机服务探测模块1实时探测主机中存在的待检测服务。
在本发明实施例中,待检测服务包括运行状态和停止状态下的Mysql服务、SSH服务、Vsftpd服务、Tomcat服务、Redis服务、SVN服务、Rsync服务、PostgreSql服务、Jenkins服务、OpenLDAP服务、Weblogic服务。
具体地,上述步骤S11包括:扫描用于存放服务启动脚本设置的第一unit配置文件目录、用于存放系统执行过程中所产生的服务脚本的第二unit配置文件目录以及用于存放管理员建立的执行脚本的第三配置文件unit目录下的文件,得到待检测服务。
进一步地,第一unit配置文件目录为“/usr/lib/systemd/system”,第二unit配置文件目录为“/run/systemd/system”,第三unit配置文件目录为“/etc/systemd/system”,扫描上述目录下的文件即可找出该主机中需要进行弱口令检测的服务。如扫描发现文件“mysql.service”,说明该主机中安装了Mysql服务,无论所述服务是运行状态还是停止状态,本申请实施例都将对其进行检测。
在本发明实施例中,unit由其相关的配置文件进行标识、识别和配置,也就是说一个unit到底定义与否,由其配置文件进行标识。这类配置文件中主要包含了几个类别:系统服务、监听的socket、保存的快照以及其他与init相关的信息,这些配置文件中主要保存在:“/usr/lib/systemd/system”、“/run/systemd/system”、“/etc/systemd/system”目录下。
步骤S12:针对不同的待检测服务,通过口令文件解析模块2分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录。
参考图3,在本发明一个实施例中,上述步骤S12具体包括:针对所述Mysql服务,从默认PID文件“/run/mysqld/mysqld.pid”中,获取Mysql服务进程的ID号,记为mysqlPID;根据上述进程ID(mysqlPID)获取相关进程信息,保存在进程信息结构体“mysql_proc”中;从上述进程信息结构体“mysql_proc”中解析出服务配置信息在对应主机上的保存路径(如路径“/usr/local/var/mysql”);并从上述保存路径下对应文件中解析出所需信息。
需要说明的是,由于Mysql服务使用的存储引擎不同,用于存储表信息的文件格式也不同,如MyISAM引擎使用“表名.myd”文件存储表数据信息,而Aria引擎使用“表名.mad”文件存储表数据信息,因此对不同的存储引擎应当有不同的解析口令的方法。相同的是,MyISAM和Aria引擎都使用“表名.frm”文件存储表定义信息。
FRM是单词“Form”(表格、表单)的简写,因此FRM文件通常被各种软件用作的表单文件。FRM文件一般用于定义表中的字段,或者需要用户填写的表格,还可以存储数据库数据,具体取决于创建它的程序和格式。
鉴于以上情况,在本发明上述实施例中,从FRM文件(global_priv.frm)中分析出Mysql服务使用的引擎类型;若Mysql服务使用的引擎类型为MyISAM存储引擎,则从保存路径下第一表数据信息存储文件中获取所述口令记录文件并解析出所需信息,第一表数据信息存储文件为user.MYD文件;若Mysql服务使用的引擎类型为Aria存储引擎,则从保存路径下第二表数据信息存储文件中获取口令记录文件并解析出所需信息,第二表数据信息存储文件为global_priv.MAD文件;若Mysql服务使用的引擎类型为InnoDB存储引擎,则从保存路径下第三表数据信息存储文件中获取所述口令记录文件并解析出所需信息,第三表数据信息存储文件为mysql.ibd文件。
对于Mysql服务,数据通常包括:host(主机地址)、user(用户名)、password(加密后的口令)等。如下为从user.MYD文件中解析出的一条示例数据:
Figure BDA0003686974340000151
其中,“native=true”指Mysql服务使用传统的身份验证方法,在本发明实施例中,通过设置口令并对其进行哈希计算得到加密后的口令。
如下为从global_priv.MAD文件中解析出的一条示例数据:
Figure BDA0003686974340000152
其中,“mysql_native_password”同样指Mysql服务使用传统的身份验证方法,在本发明实施例中,同样地通过设置口令并对其进行哈希计算得到加密后的口令。
在本发明另一个实施例中,上述步骤S12具体包括:针对所述SSH服务,从第一用户口令信息保存文件和第二用户口令信息保存文件中获取所述口令记录文件并解析出所需信息。
针对SSH服务,用户口令信息保存在“/etc/passwd”文件和“/etc/shadow”文件中,故从以上文件中解析出所需信息即可。具体地,第一用户口令信息保存文件为“/etc/passwd”文件,第二用户口令信息保存文件为“/etc/shadow”文件。
上述“/etc/passwd”文件,每行记录对应一个用户,每行用户信息都以“:”作为分隔符,划分为7个字段,每个字段所表示的含义如下:
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell
例如,一条记录为:root:x:0:0:root:/root:/bin/bash
其中,“x”表示此用户(root)设有密码,但不是真正的密码,真正的密码保存在“/etc/shadow”文件中。
在本发明实施例中,上述记录将解析为如下格式:
Figure BDA0003686974340000161
上述“/etc/shadow”文件,用于存储Linux系统中用户的密码信息,又称为“影子文件”。同“/etc/passwd”文件一样,文件中每行代表一个用户,同样使用“:”作为分隔符,不同之处在于,每行用户信息被划分为9个字段,每个字段的含义如下:
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
例如,一条记录为:
root:$6$GtQ1CCFHz651Ywmj$OFSc/2dSZYRzjMZDNEgGit2ugmP1dw0lZpeUV6Jh/WNLEyb3NzYXQj.0GUKa7h9MVLJmeYCtKGetBZXfRrKS91:19010:0:99999:7:::
其中,
“$6$GtQ1CCFHz651Ywmj$OFSc/2dSZYRzjMZDNEgGit2ugmP1dw0lZpeUV6Jh/WNLEyb3NzYXQj.0GUKa7h9MVLJmeYCtKGetBZXfRrKS91”即为用户root经过加密后的口令,通常该密码使用的是SHA256哈希加密算法。
在本发明实施例中,上述口令记录将解析为如下格式:
Figure BDA0003686974340000171
参考图4,在本发明另一个实施例中,上述步骤S12具体包括:针对所述Vsftpd服务,获取Vsftpd服务进程信息,从中解析出配置文件路径,如“/etc/vsftpd.conf”;基于所述配置文件路径“/etc/vsftpd.conf”得到配置文件,从中解析出配置信息;根据上述配置信息构造出Vsftpd服务对应的PAM(Pluggabl Authentication Module,可插拔认证模块)文件路径,如“/etc/pam.d/vsftpd”;从PAM文件路径中的参数中得到口令记录文件的第一存储路径;获取所述第一存储路径下的文件并解析出所需信息。
PAM文件定义了用户登录FTP服务器必须满足的要求。例如,PAM中的一组配置指令为:
auth required pam_userdb.so db=<path-to-file>
参数模块使用参数“-db”来指定该服务使用的具体的BerkeleyDB文件路径。
其中,<path-to-file>(例如“/etc/vsftpd/virtusers.db”),即为Vsftpd服务存储的用户信息口令的文件路径,即第一存储路径。进而从上述文件路径的文件中解析出用户口令信息,本申请实施例在Vsftpd服务中解析出的所述口令信息格式如下:
Figure BDA0003686974340000181
参考图5,在本发明另一个实施例中,上述步骤S12具体包括:针对所述Tomcat服务,获取Tomcat服务进程信息;从进程命令行参数中解析出服务实例的私有信息路径,例如,私有信息路径为“/usr/local/apache-tomcat-6.0.18/”,该私有信息路径下存放了conf、logs、temp、webapps、work等目录及目录下的文件;根据上述私有信息路径,即可确定Tomcat服务用于存储口令记录文件的第二存储路径,如第二存储路径为“/usr/local/apache-tomcat-6.0.18/conf/tomcat.xml”;获取所述第二存储路径下的文件并解析出所需信息。解析出的口令文件中存储口令的格式通常如下:
<user username="role1"password="tomcat"roles="role1"/>
本发明实施例,在Tomcat服务中解析出的口令信息格式如下:
Figure BDA0003686974340000182
Figure BDA0003686974340000191
参考图6,在本发明另一个实施例中,上述步骤S12具体包括:针对Redis服务,获取Redis服务进程命令行信息,所述Redis服务进程命令行信息包括:Redis客户端进程信息(redis-client进程信息)或Redis服务端进程信息(redis-server进程信息);检测所述进程命令行信息中是否带有“-a”参数或“--requirepass”参数,其中,“--requirepass”参数就是配置Redis服务访问密码的参数;若进程命令行信息中带有“-a”参数或“--requirepass”参数,则直接提取参数值即为所需信息。若所述进程命令行信息中不带有“-a”参数和“--requirepass”参数,则从Redis服务配置文件中解析出所需信息。具体地,Redis服务配置文件包括:“/etc/redis.conf”文件、“/etc/redis/redis.conf”文件、“/etc/redis/6379.conf”文件,上述Redis服务配置文件中的口令信息以“requirepasspassword”的格式保存。在本发明实施例,在Redis服务中解析出的口令信息格式如下:
Figure BDA0003686974340000192
在本发明另一个实施例中,上述步骤S12具体包括:针对所述SVN服务,获取SVN服务进程信息,从SVN进程命令行信息中获取服务Home目录,如“/etc/svn/”目录(路径),该“/etc/svn/”目录下存放着多个“repository”,对应“repository”的账户口令配置文件路径为conf/passwd;遍历所述Home目录下的多个口令配置文件,如/etc/svn/repository1/conf/passwd、/etc/svn/repository2/conf/passwd等,从上述口令配置文件解析出所需信息。
上述口令文件中存储口令的格式通常如下:
[users]
harry=harryssecret
sally=sallyssecret
在本发明实施例中,在SVN服务中解析出的口令信息格式如下:
Figure BDA0003686974340000201
在本发明另一个实施例中,上述步骤S12具体包括:针对所述Rsync服务,获取Rsync服务进程信息,从Rsync服务进程命令行信息中解析出Rsync服务配置文件路径,如“/etc/rsyncd.conf”;基于所述Rsync服务配置文件路径获取配置文件;从所述配置文件中解析出口令配置文件,如“/etc/rsyncd.secrets”,从所述口令配置文件解析出所需信息。
口令文件中存储口令的格式通常如下:
rsyncuser:rsyncpasswd
在本发明实施例中,在Rsync服务中解析出的口令信息格式如下:
Figure BDA0003686974340000202
在本发明另一个实施例中,上述步骤S12具体包括:针对所述PostgreSql服务,获取PostgreSql服务进程信息;从PostgreSql服务进程命令行信息中获取PostgreSql服务配置文件路径,进而确定用于存储用户相关口令信息的文件并解析出所需信息。
上述用于存储用户相关口令信息的文件为“/var/lib/postgresql/12/main/global/1260”。
口令文件中的部分内容的十六进制显示格式如下,对应的可打印字符串为“postgres Imd5ca3c957d0f71185b0231d34f6be9f0b3”:
000a 0000 6f70 7473 7267 7365 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0101 0101 0101 0001 ffff ffff
6d49 3564 6163 6333 3539 6437 6630 3137
3831 6235 3230 3133 3364 6634 6236 3965
3066 3362 0000 0000 01e6 0000 01e7 0000
在本发明实施例中,在PostgreSql服务中解析出的口令信息格式如下,其中,password的值经过md5加密:
Figure BDA0003686974340000211
在本发明另一个实施例中,上述步骤S12具体包括:针对所述Jenkins服务,获取启动所述Jenkins服务的Java进程,从Java进程命令行信息或系统环境变量中解析出Jenkins主目录(“JENKINS_HOME”)属性的值,如“JENKINS_HOME=/var/lenkins_home”;遍历Jenkins主目录“用户”文件夹(“$JENKINS_HOME/users/”)路径下的多个对应用户的config.xml文件,即Jenkins服务的用户配置文件,在config.xml文件中有用户的相关口令等信息,从用户配置文件解析出所需信息。
JENKINS_HOME是Jenkins服务的主目录,Jenkins服务将所有的数据文件储存在这个目录下。在Jenkins服务上查看JENKINS_HOME的步骤如下所示:系统管理→系统设置→主目录。
config.xml文件中包含了一系列xml元素,其中,域元素的为最顶层元素,域中所有元素都是域元素的子集。域元素包括服务器、集群、应用等子元素,这些元素可能还有其他自己的子元素。
口令文件中的部分内容如下所示:
Figure BDA0003686974340000212
Figure BDA0003686974340000221
在本发明实施例中,在Jenkins服务中解析出的口令信息格式如下,其中password的值经过加密:
Figure BDA0003686974340000222
在本发明另一个实施例中,上述步骤S12具体包括:针对所述OpenLDAP服务,获取slapd进程信息,slapd进程信息为OpenLDAP服务的服务端进程信息;获取slapd进程执行路径,如“/usr/sbin”,以及从进程命令行信息中解析出服务配置文件路径,如“/etc/ldap”;基于所述slapd进程执行路径,获取LDAP目录交换格式输出文件;根据服务配置文件路径,从所述LDAP目录交换格式输出文件中解析出所需信息。
在与slapd进程相同的执行路径下执行slapcat命令,如“/usr/sbin/slapcat”,slapcat命令用于根据slapd数据库的内容生成LDAP目录交换格式输出文件。LDAP目录交换格式输出文件内容中包括本申请实施例想要进行检测的用户口令信息。所述部分内容如下所示:
......
dn:cn=admin,dc=127,dc=0,dc=0,dc=1
objectClass:simpleSecurityObject
objectClass:organizationalRole
cn:admin
description:LDAP administrator
userPassword::e1NTSEF9UkxPNUJnR2dKcXc4bXpRRXdLcm85L1VmRWgzaFB
0MlE=
......
在本发明实施例中,在OpenLDAP服务中解析出的口令信息格式如下,其中password的值经过加密:
Figure BDA0003686974340000231
参考图7,在本发明另一个实施例中,上述步骤S12具体包括:针对所述Weblogic服务,获取启动所述Weblogic服务的Java进程;检查进程命令行信息中是否存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”;若进程命令行信息中存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”,则解析出参数值作为所需信息之一;若进程命令行信息中不存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”,则不进行参数解析。
获取每个Weblogic域中与用户口令信息相关的第一配置文件、第二配置文件、第三配置文件的目录,作为用户配置文件的预设相对路径。其中,第一配置文件为config.xml文件,第二配置文件为SerializedSystemIni.dat文件,第三配置文件为boot.properties文件。与上述config.xml文件、SerializedSystemIni.dat文件、boot.properties文件相对应,用户配置文件的预设相对路径为:relative_path_to_config.xml、relative_path_to_SerializedSystemIni.dat、relative_path_to_boot.properties。
从进程命令行信息或从环境变量中解析出Weblogic服务端的Home目录;从环境变量或进程执行路径或Weblogic服务端的Home目录的域注册文件中,解析出Weblogic域目录;将解析出的Weblogic域目录与所述预设相对路径拼接得到用户配置文件的绝对路径;基于所述用户配置文件的绝对路径得到用户配置文件,并从所述用户配置文件中解析出明文的用户名和主密钥;其中,主秘钥为预设固定的主密钥值,如:WEBLOGIC_MASTER_KEY="0xccb97558940b82637c8bec3c770f86fa3a391a56\x00"。
从第四配置文件中解析出加密的密钥和盐值;根据已有的主密钥将加密的密钥和盐值解密,得到明文密钥和盐值;对第五配置文件进行解析,第五配置文件具体为boot.properties配置文件,判断从所述第五配置文件中是否解析出加密的用户名和口令;如果从所述第五配置文件中解析出加密的用户名和口令,则使用所述明文密钥和盐值对所述加密的用户名和口令进行解密,得到所需信息。
如果从所述第五配置文件中未解析出加密的用户名和口令,则从第六配置文件解析出加密的用户名和口令,第六配置文件具体为config.xml配置文件,并使用所述明文密钥和盐值对所述加密的用户名和口令进行解密,得到明文的用户名和口令。
本发明实施例中所需的boot.properties配置文件的部分内容如下:
password={AES}TV0pZ4CVTEkJwXUVU9guh9HtLKZ0E4+Mmwu2FjI6/zM\=
username={AES}MhcB20WcAqaKUpc26w439VmIYqwvbaX01IFVGHi5/jI\=
本申请实施例中所需的config.xml配置文件的部分内容如下:
<security-configuration>
<credential-encrypted>{3DES}encypted-value-here</credential-encrypted>
</security-configuration>
<embedded-ldap>
<credential-encrypted>{3DES}encypted-value-here</credential-encrypted>
</embedded-ldap>
在本发明实施例,在Weblogic服务中解析出的口令信息格式如下:
Figure BDA0003686974340000251
步骤S13:通过弱口令字典构建模块3构建与待检测服务对应的弱口令字典。
进一步地,上述步骤S13具体包括:使用与所述口令记录相同的加密方式,构建出对应不同服务的弱口令字典;所述弱口令字典包括:通用的基础弱口令字典以及对应与每个服务的额外弱口令字典;根据所述待检测服务,选取与所述待检测服务对应的额外弱口令字典;利用预设的基础弱口令字典和选取的额外弱口令字典进行融合,得到合并后的弱口令字典。
在本发明实施例中,额外弱口令字典是结合了对应服务的默认用户名、用户口令以及使用该服务的用户的常用设置习惯而预构建的。根据待检测服务,合并预设的基础弱口令字典及对应其服务的额外弱口令字典,得到合并后的弱口令字典。由于使用不同服务的用户常常具有不同的口令设置习惯,合并使用通用的基础弱口令字典和对应服务的额外弱口令字典,可使弱口令的检测更全面且更具针对性。
步骤S14:通过弱口令判断模块4利用弱口令字典检测所述口令记录是否为弱口令;若所述口令记录不为弱口令,则进入下一周期,探测主机中存在的待检测服务。
具体地,利用所述弱口令字典检测所述口令记录是否为弱口令,具体包括:检测所述口令记录中口令(password)是否为空;若所述口令记录中口令(password)为空,则所述口令记录为弱口令。
若所述口令记录中口令(password)不为空,则检测所述口令记录中用户名(username)和口令(password)是否相同;若所述口令记录中用户名(username)和口令(password)相同,则所述口令记录为弱口令。
若所述口令记录中用户名(username)和口令(password)不相同,根据解析出的口令记录格式及加密方式,检测所述待检测服务的口令信息是否与所述弱口令字典中经过对应加密的口令之一相同;若所述待检测服务的口令信息是否与所述弱口令字典中经过对应加密的口令之一相同,则所述口令记录为弱口令,否则,所述口令记录不为弱口令。
如:
已知待检测的口令(password)是经过SHA1算法加密,待检测的口令信息为:
{username:”root”,password:”7c4a8d09ca3762af61e59520943dc26494f8941b”}
带匹配的弱口令字典中的项为:{weak_password:”123456”}
则对所述弱口令字典中的weak_password(“123456”)进行SHA1计算,判断其计算结果与password(“7c4a8d09ca3762af61e59520943dc26494f8941b”)是否相同,若相同,则为弱口令;若不相同,则用同样的方法与弱口令字典中的其它项进行比较。
步骤S15:若口令记录为弱口令,则通过弱口令信息上报模块5上报对应的弱口令。
在本发明实施例中,将检测到的弱口令信息记录并上报,要求用户整改,并进行下一项服务的弱口令检测。
步骤S16:在上报对应的弱口令预设时间后,通过弱口令整改检测模块6对弱口令进行整改确认。
在本发明实施例中,在上报对应的弱口令一段时间后,对检测发现的弱口令再次进行检测,确认用户已将弱口令修改为合理强度的口令;否则继续上报该弱口令,直到用户整改完成。
与现有技术相比,本申请实施例提供的一种针对主机服务的弱口令检测方法,可以对用户主机上运行的多种关键服务提供了弱口令检测,全面保障主机安全;针对不同的服务生成了不同的字典,使弱口令检测更有针对性,检测效率更高。通过主机服务本地保存的加密后的口令记录文件进行检测,不存在多次尝试登录服务的暴力破解行为,降低服务或主机宕机风险,为主机提供无感知的弱口令检测,不影响主机服务的正常运行。正在运行或没有运行的关键服务的弱口令使用情况都能被检测到,在弱口令方面,为主机提供了更为全面的安全保障。
另外,本发明实施例还提供了一种针对主机服务的弱口令检测设备,所述设备包括:处理器和存储器;所述存储器用于存储一个或多个程序指令;所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种针对主机服务的弱口令检测方法的步骤。
另外,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种针对主机服务的弱口令检测方法的步骤。
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific工ntegrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

Claims (10)

1.一种针对主机服务的弱口令检测方法,其特征在于,所述方法包括:
实时探测主机中存在的待检测服务;
针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录;
构建与所述待检测服务对应的弱口令字典;
利用所述弱口令字典检测所述口令记录是否为弱口令;
若所述口令记录为弱口令,则上报对应的弱口令,并在预设时间后,对所述弱口令进行整改确认;
若所述口令记录不为弱口令,则进入下一周期,探测主机中存在的待检测服务。
2.如权利要求1所述的一种针对主机服务的弱口令检测方法,其特征在于,实时探测主机中存在的待检测服务,包括:
扫描用于存放服务启动脚本设置的第一unit配置文件目录、用于存放系统执行过程中所产生的服务脚本的第二unit配置文件目录以及用于存放管理员建立的执行脚本的第三配置文件unit目录的文件,得到所述待检测服务;
其中,所述待检测服务包括运行状态和停止状态下的Mysql服务、SSH服务、Vsftpd服务、Tomcat服务、Redis服务、SVN服务、Rsync服务、PostgreSql服务、Jenkins服务、OpenLDAP服务、Weblogic服务。
3.如权利要求2所述的一种针对主机服务的弱口令检测方法,其特征在于,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,包括:
针对所述Mysql服务,从默认PID文件中,获取所述Mysql服务进程的ID号,记为mysqlPID;
根据所述mysqlPID获取相关进程信息,保存在进程信息结构体中;
从所述进程信息结构体中解析出服务配置信息在对应主机上的保存路径;
从FRM文件中分析出所述Mysql服务使用的引擎类型;
若所述引擎类型为MyISAM存储引擎,则从所述保存路径下第一表数据信息存储文件中获取所述口令记录文件并解析出所需信息;
若所述引擎类型为Aria存储引擎,则从所述保存路径下第二表数据信息存储文件中获取所述口令记录文件并解析出所需信息;
若所述引擎类型为InnoDB存储引擎,则从所述保存路径下第三表数据信息存储文件中获取所述口令记录文件并解析出所需信息。
4.如权利要求3所述的一种针对主机服务的弱口令检测方法,其特征在于,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,还包括:
针对所述SSH服务,从第一用户口令信息保存文件和第二用户口令信息保存文件中获取所述口令记录文件并解析出所需信息;
针对所述Vsftpd服务,获取Vsftpd服务进程信息,从中解析出配置文件路径;基于所述配置文件路径得到配置文件,从中解析出配置信息;根据所述配置信息构造出所述Vsftpd服务对应的PAM文件路径;从所述PAM文件路径中的参数中得到所述口令记录文件的第一存储路径;获取所述第一存储路径下的文件并解析出所需信息;
针对所述Tomcat服务,获取Tomcat服务进程信息;从进程命令行参数中解析出服务实例的私有信息路径;根据所述私有信息路径,确定所述口令记录文件的第二存储路径;获取所述第二存储路径下的文件并解析出所需信息;
针对Redis服务,获取Redis服务进程命令行信息,所述Redis服务进程命令行信息包括:Redis客户端进程信息或Redis服务端进程信息;检测所述进程命令行信息中是否带有“-a”参数或“--requirepass”参数;若所述进程命令行信息中带有“-a”参数或“--requirepass”参数,则直接提取参数值即为所需信息;若所述进程命令行信息中不带有“-a”参数和“--requirepass”参数,则从Redis服务配置文件中解析出所需信息。
5.如权利要求4所述的一种针对主机服务的弱口令检测方法,其特征在于,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,还包括:
针对所述SVN服务,获取SVN服务进程信息,从SVN进程命令行信息中获取服务Home目录;遍历所述Home目录下的多个口令配置文件,从所述口令配置文件解析出所需信息;
针对所述Rsync服务,获取Rsync服务进程信息,从Rsync服务进程命令行信息中解析出Rsync服务配置文件路径;基于所述Rsync服务配置文件路径获取配置文件;从所述配置文件中解析出口令配置文件,从所述口令配置文件解析出所需信息;
针对所述PostgreSql服务,获取PostgreSql服务进程信息;从PostgreSql服务进程命令行信息中获取PostgreSql服务配置文件路径,进而确定用于存储用户相关口令信息的文件并解析出所需信息;
针对所述Jenkins服务,获取启动所述Jenkins服务的Java进程,从Java进程命令行信息或系统环境变量中解析出Jenkins主目录属性的值;遍历Jenkins主目录“用户”文件夹路径下的多个对应用户的Jenkins服务的用户配置文件,从所述用户配置文件解析出所需信息;
针对所述OpenLDAP服务,获取服务端进程信息;获取slapd进程执行路径,以及从进程命令行信息中解析出服务配置文件路径;基于所述slapd进程执行路径,获取LDAP目录交换格式输出文件;根据服务配置文件路径,从所述LDAP目录交换格式输出文件中解析出所需信息。
6.如权利要求5所述的一种针对主机服务的弱口令检测方法,其特征在于,针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录,还包括:
针对所述Weblogic服务,获取启动所述Weblogic服务的Java进程;
检查进程命令行信息中是否存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”;
若进程命令行信息中存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”,则解析出参数值作为所需信息之一;
若进程命令行信息中不存在参数“-Dweblogic.management.username”和“-Dweblogic.management.password”,则不进行参数解析;
获取每个Weblogic域中与用户口令信息相关的第一配置文件、第二配置文件、第三配置文件的目录,作为用户配置文件的预设相对路径;
从进程命令行信息或从环境变量中解析出Weblogic服务端的Home目录;
从环境变量或进程执行路径或Weblogic服务端的Home目录的域注册文件中,解析出Weblogic域目录;
将解析出的Weblogic域目录与所述预设相对路径拼接得到用户配置文件的绝对路径;
基于所述用户配置文件的绝对路径得到用户配置文件,并从所述用户配置文件中解析出明文的用户名和主密钥;
从第四配置文件中解析出加密的密钥和盐值;
根据已有的主密钥将加密的密钥和盐值解密,得到明文密钥和盐值;
对第五配置文件进行解析,判断从所述第五配置文件中是否解析出加密的用户名和口令;
如果从所述第五配置文件中解析出加密的用户名和口令,则使用所述明文密钥和盐值对所述加密的用户名和口令进行解密,得到所需信息;
如果从所述第五配置文件中未解析出加密的用户名和口令,则从第六配置文件解析出加密的用户名和口令,并使用所述明文密钥和盐值对所述加密的用户名和口令进行解密,得到明文的用户名和口令。
7.如权利要求6所述的一种针对主机服务的弱口令检测方法,其特征在于,构建与所述待检测服务对应的弱口令字典,包括:
使用与所述口令记录相同的加密方式,构建出对应不同服务的弱口令字典;
所述弱口令字典包括:通用的基础弱口令字典以及对应与每个服务的额外弱口令字典;
根据所述待检测服务,选取与所述待检测服务对应的额外弱口令字典;
利用预设的基础弱口令字典和选取的额外弱口令字典进行融合,得到合并后的弱口令字典。
8.如权利要求7所述的一种针对主机服务的弱口令检测方法,其特征在于,利用所述弱口令字典检测所述口令记录是否为弱口令,包括:
检测所述口令记录中口令是否为空;
若所述口令记录中口令为空,则所述口令记录为弱口令;
若所述口令记录中口令不为空,则检测所述口令记录中用户名和口令是否相同;
若所述口令记录中用户名和口令相同,则所述口令记录为弱口令;
若所述口令记录中用户名和口令不相同,根据解析出的口令记录格式及加密方式,检测所述待检测服务的口令信息是否与所述弱口令字典中经过对应加密的口令之一相同;
若所述待检测服务的口令信息是否与所述弱口令字典中经过对应加密的口令之一相同,则所述口令记录为弱口令,否则,所述口令记录不为弱口令。
9.一种针对主机服务的弱口令检测系统,其特征在于,所述系统包括:
主机服务探测模块,用于实时探测主机中存在的待检测服务;
口令文件解析模块,用于针对不同的待检测服务,分别获取主机中相应的口令记录文件,并从中解析出相应的口令记录;
弱口令字典构建模块,用于构建与所述待检测服务对应的弱口令字典;
弱口令判断模块,用于利用所述弱口令字典检测所述口令记录是否为弱口令;若所述口令记录不为弱口令,则进入下一周期,探测主机中存在的待检测服务;
弱口令信息上报模块,用于若所述口令记录为弱口令,则上报对应的弱口令;
弱口令整改检测模块,用于在上报对应的弱口令预设时间后,对所述弱口令进行整改确认。
10.一种针对主机服务的弱口令检测设备,其特征在于,所述设备包括:处理器和存储器;
所述存储器用于存储一个或多个程序指令;
所述处理器,用于运行一个或多个程序指令,用以执行如权利要求1至8任一项所述的一种针对主机服务的弱口令检测方法的步骤。
CN202210648515.7A 2022-06-09 2022-06-09 一种针对主机服务的弱口令检测方法、系统及设备 Pending CN115017493A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210648515.7A CN115017493A (zh) 2022-06-09 2022-06-09 一种针对主机服务的弱口令检测方法、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210648515.7A CN115017493A (zh) 2022-06-09 2022-06-09 一种针对主机服务的弱口令检测方法、系统及设备

Publications (1)

Publication Number Publication Date
CN115017493A true CN115017493A (zh) 2022-09-06

Family

ID=83072709

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210648515.7A Pending CN115017493A (zh) 2022-06-09 2022-06-09 一种针对主机服务的弱口令检测方法、系统及设备

Country Status (1)

Country Link
CN (1) CN115017493A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115344853A (zh) * 2022-10-18 2022-11-15 北京华云安信息技术有限公司 多协议维度的弱口令检测方法和装置
CN115643114A (zh) * 2022-12-23 2023-01-24 北京长亭未来科技有限公司 基于rtsp服务的弱口令的检测方法、装置及电子设备
CN116055067A (zh) * 2023-04-01 2023-05-02 北京江民新科技术有限公司 一种弱口令检测的方法、装置、电子设备及介质
CN117081727A (zh) * 2023-10-17 2023-11-17 北京长亭科技有限公司 一种弱口令检测方法以及装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115344853A (zh) * 2022-10-18 2022-11-15 北京华云安信息技术有限公司 多协议维度的弱口令检测方法和装置
CN115643114A (zh) * 2022-12-23 2023-01-24 北京长亭未来科技有限公司 基于rtsp服务的弱口令的检测方法、装置及电子设备
CN115643114B (zh) * 2022-12-23 2023-04-07 北京长亭未来科技有限公司 基于rtsp服务的弱口令的检测方法、装置及电子设备
CN116055067A (zh) * 2023-04-01 2023-05-02 北京江民新科技术有限公司 一种弱口令检测的方法、装置、电子设备及介质
CN117081727A (zh) * 2023-10-17 2023-11-17 北京长亭科技有限公司 一种弱口令检测方法以及装置
CN117081727B (zh) * 2023-10-17 2024-01-23 北京长亭科技有限公司 一种弱口令检测方法以及装置

Similar Documents

Publication Publication Date Title
US11165811B2 (en) Computer security vulnerability assessment
CN115017493A (zh) 一种针对主机服务的弱口令检测方法、系统及设备
US11695800B2 (en) Deceiving attackers accessing network data
US9047458B2 (en) Network access protection
US7836121B2 (en) Dynamic executable
JP4916136B2 (ja) アプリケーションにセキュリティを提供するシステムおよび方法
US7065784B2 (en) Systems and methods for integrating access control with a namespace
US20060288220A1 (en) In-line website securing system with HTML processor and link verification
US9438629B2 (en) Sensitive information leakage prevention system, sensitive information leakage prevention method, and computer-readable recording medium
US11522901B2 (en) Computer security vulnerability assessment
Haigh et al. If i had a million cryptos: Cryptowallet application analysis and a trojan proof-of-concept
US20110126292A1 (en) Method and System for Providing Security Seals on Web Pages
US10635826B2 (en) System and method for securing data in a storage medium
Mazmudar et al. Mitigator: Privacy policy compliance using trusted hardware
US11893105B2 (en) Generating and validating activation codes without data persistence
KR20050039528A (ko) 리소스 획득 방법 및 컴퓨터 판독 가능 매체
US20140215607A1 (en) Threat exchange information protection
Willberg Web application security testing with owasp top 10 framework
Kumar Discovering passwords in the memory
Szczepanik et al. Security of mobile banking applications
Riesch et al. Audit based privacy preservation for the OpenID authentication protocol
CN111767540A (zh) Jart恶意软件自动化分析方法、装置和计算机可读存储介质
Burkert et al. Protection Against Online Fraud Using Blockchain
Abdulrahman Multi-Level Windows Exploitation Using Linux Operating System
Sandhiya et al. Identification of url fuzzing and subdomain enumeration using raccoon tool

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination