CN109960660A - 一种基于Ansible的电网业务入网安全测评方法 - Google Patents

一种基于Ansible的电网业务入网安全测评方法 Download PDF

Info

Publication number
CN109960660A
CN109960660A CN201910292631.8A CN201910292631A CN109960660A CN 109960660 A CN109960660 A CN 109960660A CN 201910292631 A CN201910292631 A CN 201910292631A CN 109960660 A CN109960660 A CN 109960660A
Authority
CN
China
Prior art keywords
ansible
test
electrical network
evaluation method
security evaluation
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
CN201910292631.8A
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.)
Information Center of Guangdong Power Grid Co Ltd
Original Assignee
Information Center of Guangdong Power Grid 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 Information Center of Guangdong Power Grid Co Ltd filed Critical Information Center of Guangdong Power Grid Co Ltd
Priority to CN201910292631.8A priority Critical patent/CN109960660A/zh
Publication of CN109960660A publication Critical patent/CN109960660A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种基于Ansible的电网业务入网安全测评方法,对于电力系统需要入网安全测试的系统,实现ansible自动分发相关测试脚本并执行,获取最终测试结果的过程,其实现了批量的配置与部署。把原来人工的介入转换为ansible的调用测试,大大减少人为工作量,并减少测试的误差率。本发明率先在电力行业推广应用,极大提高了测试效率和质量;Ansible采用Python语言编写,具备良好的二次开发扩展的能力。

Description

一种基于Ansible的电网业务入网安全测评方法
技术领域
本发明属于计算机中的自动化技术领域,尤其涉及一种基于Ansible的电网业务入网安全测评方法。
背景技术
随着IT技术的发展,企业IT环境和IT管理任务的复杂程度越来越高,尤其电力行业,大小系统多如牛毛,对于各种系统上线前以及常态的安全测评尤为重要。测试任务多也同时意味着任务的复杂繁重。为此,人们采用了流程与任务结合的方式,来将某些服务能力固化,以达到快速、自动化完成指定任务的目的。但当前的方式需要企业针对每个服务进行设计、编码开发,需要专业的研发人员介入,才能构成较好的自动化服务。其结构相对固化、修改调整不便,企业应用场景多样化,构建服务的过程长,投入大,服务执行不连贯。
因此,如何采用一种自动化调度的方法,以降低手动测试的风险、服务的维护和企业对技术人员的要求,是需要进行解决的技术问题。
发明内容
发明目的:针对以上问题,本发明提出一种基于Ansible的电网业务入网安全测评方法,提高测试效率,更大限度的发掘自动化的能力。
技术方案:为实现本发明的目的,本发明所采用的技术方案是:一种基于Ansible的电网业务入网安全测评方法,包括步骤:
(1)配置SSH密钥认证,建立免密连接;
(2)根据被测安全层面,自动编写相应的测试用例脚本;
(3)Ansible调用测试用例,对被测主机进行指标抓取;
(4)复杂任务的Ansible playbook编写;
(5)测评指标规则处理;
(6)进行入网安全自动化测试;
(7)结果生成以及漏洞修复。
进一步地,所述步骤2中,常用测试脚本的结构分为三大部分:
(2.1)引用测试用例需要的类、库等文件;
(2.2)定义测试实现类A,这个类通常有两个函数def;
(2.3)实例化A,脚本执行定义动作的入口。
进一步地,所述步骤3中,ansible由5个核心组件构成:
Ansible:核心;
Modules:包括Ansible自带的核心模块及自定义模块;
Plugins:完成模块功能的补充;
Playbooks:编排,定义Ansible多任务配置文件,由Ansible自动执行;
Inventory:定义Ansible管理主机的清单。
进一步地,所述步骤5中,抽象规则包括:等于、不等于、大于、小于、大于等于、小于等于,between,包含,匹配;支持模式:算述表达式、逻辑表达式、正则表达式。
进一步地,所述步骤6中,包括步骤:
(6.1)在管理端创建shell脚本目录以及临时文件目录,临时文件用来存放获取的结果;
(6.2)把shell脚本拷贝到远端被测主机中;
(6.3)控制远端主机执行shell脚本,收集所需要的信息;
(6.4)把远端主机的结果文件下载到控制端主机中,生成结果文件;
(6.5)删除远端主机的临时文件,并执行控制端对收集结果进行规则分析,判断是否符合指标要求。
有益效果:本发明对被测机管理采用最小干预的形式,不像以往管理方式需要内置agent;当面对海量被测设备的时候只需要在管理端进行host管理即可访问,大大减少变更流程。
附图说明
图1是入网安评测试整体流程图;
图2是ansible工作机制结构示意图。
具体实施方式
下面结合附图和实施例对本发明的技术方案作进一步的说明。
基于Ansible的电网业务入网安全测评方法及系统,其最大优势是实现应用程序和IT基础组件自动化。通过ansible自动化的处理测评任务,对于安全测评来说可以自动进行配置管理、应用部署、服务内部编排、自动测试以及其他需求。
测试执行实施之前需要进行申请审批,测试申请人可能是省公司部门,也可能是地市公司部门,按照一定得审批流程进行层层审批。但是申请入口需要输入数据采集必填项,比如主机的IP地址、操作系统类型、账户名以及密码,这是保证可以登录到主机的基本信息。如果是不同的安全层面再次输入的信息也不同,比如Oracle层面,需要输入实例、端口号、用户名密码以及配置文件,对于中间件则只需要输入版本号,以及配置文件绝对路径即可。
审批之后进行正式测试环节,但是测试前要保证管理机与被测机之间连通性是良好的,当然支持线上测试。此刻对应的策略需要把防火墙以及路由开放,其中跨地域的连接需要开放的策略多一些。
自动化测试基于ansible对各阶段的自动化的执行,它采用极度简洁的模型来控制各种操作按照所需顺序执行。
如图1所示,本发明所述的基于Ansible的电网业务入网安全测评方法,包括步骤:
(1)配置SSH密钥认证,建立免密连接;
使用Ansible的一种常用方法是配置无需密码的,故需要进行免密处理,SSH密钥登录以方便管理。任何非特权用户都能生成SSH密钥,也能安装到远程系统中任何用户的SSH的authorized_keys文件中。生成密钥后,还需要将之拷贝到远程主机上。
运行Ansible本身无需root权限;然而如果你使用非root用户,你需要为要执行的任务配置合适的sudo权限。输入servera的root密码,这条命令会将你的SSH密钥安装到远程主机上去。安装好SSH密钥后,再通过SSH登录远程主机就不再需要输入root密码了。
(2)根据被测安全层面,自动编写相应的测试用例脚本;
常用测试脚本的结构基本相同,分为三大部分:
(2.1)引用测试用例需要的类、库等文件;
(2.2)定义测试实现类A,这个类通常有两个函数def;
(2.3)实例化A,脚本执行定义动作的入口。
(3)Ansible调用测试用例,对被测主机进行指标抓取;
Ansible使用一个INI风格的文件来追踪要管理的服务器,这种文件被称之为库存清单Inventory。Ansible能够收集目标系统的各种信息。如果主机数量很多,那它会特别的耗时。每台主机大概要花个1到2秒钟,甚至更长时间;对于测评中心来说信息收集是必要的一个环节,目前是把信息收集过来之后,在ansible主机进行分析。测评指标收集根据指标要求,通过自动化编写shell脚本,对目标机信息进行收。.
Ansible在管理节点将Ansible模块通过SSH协议(或者Kerberos、LDAP)推送到被管理端执行,执行完之后自动删除,可以使用SVN等来管理自定义模块及编排。
Ansible部署可以采用源码部署,也可以采用yum部署,实施采用一键式,各种包依赖自动部署在当前文件夹路径,不需要特别配置。部署完成之后对于调用的playbook文件按照实际路径配置,执行playbook调用顺序依次是:将指标脚本拷贝到远端主机,在远端主机执行脚本,生成主机指标,然后把指标结果再次拷贝管理端,在管理端对结果进行规则分析,最终按照一定得模板形成测试结果,展示或导出。
如图2所示,ansible由5个核心组件构成:
Ansible:核心;
Modules:包括Ansible自带的核心模块及自定义模块;
Plugins:完成模块功能的补充,包括连接插件、邮件插件等;
Playbooks:编排,定义Ansible多任务配置文件,由Ansible自动执行;
Inventory:定义Ansible管理主机的清单。
(4)复杂任务的Ansible playbook编写;
Ansible剧本playbook就是包含Ansible指令的YAML格式的文件。本文关注于如何以一种一致的、可重复性的方式来完成任务。
对于playbook的编写有部分约束配置文件,其中var.yml是对路径的约束,包括了被测系统的配置文件绝对路径,ansible组件文件的的路径;shell脚本,系统取值的脚本;指标规则分析脚本等。
(5)测评指标规则处理;
在具体的指标验证中,采用Python分析对比。抽象规则主要有:等于、不等于、大于、小于、大于等于、小于等于,between,包含,匹配等。支持模式:算述表达式、逻辑表达式、正则表达式等。Python会把指标值按照一定规则做解析,形成最终测试结果。
建立标准的指标规则库,对规则指标采用库管理的方式进行管理,所有规则和指标直接从库中调动。一旦有规则和指标的变更,经审批完,直接入库更新。
(6)进行入网安全自动化测试,具体流程如下:
(6.1)在管理端创建shell脚本目录以及临时文件目录,临时文件用来存放获取的结果;
(6.2)把shell脚本拷贝到远端被测主机中;
(6.3)控制远端主机执行shell脚本,收集所需要的信息;
(6.4)把远端主机的结果文件下载到控制端主机中,生成结果文件;
(6.5)删除远端主机的临时文件,并执行控制端对收集结果进行规则分析,判断是否符合指标要求。
(7)结果生成以及漏洞修复。
测试结果按照一定的模板生成,也可以在线编辑修改。对于收集到的结果分析后自动化判定合格或者不合格。对于不合格的指标需要按照合规性修复,然后重新测评,直到所有的指标合规。在合规性修复的过程中,所有的修复记录必须要有留档记录,便于追溯,也为后续建立一定体量的知识库准备。

Claims (5)

1.一种基于Ansible的电网业务入网安全测评方法,其特征在于,包括步骤:
(1)配置SSH密钥认证,建立免密连接;
(2)根据被测安全层面,自动编写相应的测试用例脚本;
(3)Ansible调用测试用例,对被测主机进行指标抓取;
(4)复杂任务的Ansible playbook编写;
(5)测评指标规则处理;
(6)进行入网安全自动化测试;
(7)结果生成以及漏洞修复。
2.根据权利要求1所述的基于Ansible的电网业务入网安全测评方法,其特征在于,所述步骤2中,常用测试脚本的结构分为三大部分:
(2.1)引用测试用例需要的类、库等文件;
(2.2)定义测试实现类A,这个类通常有两个函数def;
(2.3)实例化A,脚本执行定义动作的入口。
3.根据权利要求1所述的基于Ansible的电网业务入网安全测评方法,其特征在于,所述步骤3中,ansible由5个核心组件构成:
Ansible:核心;
Modules:包括Ansible自带的核心模块及自定义模块;
Plugins:完成模块功能的补充;
Playbooks:编排,定义Ansible多任务配置文件,由Ansible自动执行;
Inventory:定义Ansible管理主机的清单。
4.根据权利要求1所述的基于Ansible的电网业务入网安全测评方法,其特征在于,所述步骤5中,抽象规则包括:等于、不等于、大于、小于、大于等于、小于等于,between,包含,匹配;支持模式:算述表达式、逻辑表达式、正则表达式。
5.根据权利要求1所述的基于Ansible的电网业务入网安全测评方法,其特征在于,所述步骤6中,包括步骤:
(6.1)在管理端创建shell脚本目录以及临时文件目录,临时文件用来存放获取的结果;
(6.2)把shell脚本拷贝到远端被测主机中;
(6.3)控制远端主机执行shell脚本,收集所需要的信息;
(6.4)把远端主机的结果文件下载到控制端主机中,生成结果文件;
(6.5)删除远端主机的临时文件,并执行控制端对收集结果进行规则分析,判断是否符合指标要求。
CN201910292631.8A 2019-04-12 2019-04-12 一种基于Ansible的电网业务入网安全测评方法 Pending CN109960660A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910292631.8A CN109960660A (zh) 2019-04-12 2019-04-12 一种基于Ansible的电网业务入网安全测评方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910292631.8A CN109960660A (zh) 2019-04-12 2019-04-12 一种基于Ansible的电网业务入网安全测评方法

Publications (1)

Publication Number Publication Date
CN109960660A true CN109960660A (zh) 2019-07-02

Family

ID=67026066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910292631.8A Pending CN109960660A (zh) 2019-04-12 2019-04-12 一种基于Ansible的电网业务入网安全测评方法

Country Status (1)

Country Link
CN (1) CN109960660A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110855501A (zh) * 2019-11-21 2020-02-28 广州西麦科技股份有限公司 一种用于中创中间件的批量发布系统、方法及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765681A (zh) * 2015-03-18 2015-07-08 株洲南车时代电气股份有限公司 列车传动控制软件自动化测试系统及方法
US9632812B1 (en) * 2014-05-12 2017-04-25 Trintri Inc. Collecting data associated with virtual machines from various data sources
CN108614770A (zh) * 2018-04-09 2018-10-02 中国工商银行股份有限公司 自动化测试断言方法、装置、存储介质及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9632812B1 (en) * 2014-05-12 2017-04-25 Trintri Inc. Collecting data associated with virtual machines from various data sources
CN104765681A (zh) * 2015-03-18 2015-07-08 株洲南车时代电气股份有限公司 列车传动控制软件自动化测试系统及方法
CN108614770A (zh) * 2018-04-09 2018-10-02 中国工商银行股份有限公司 自动化测试断言方法、装置、存储介质及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陆冰芳 等: "基于Ansible的web形式自动化运维系统的研究与设计", 《数字技术与应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110855501A (zh) * 2019-11-21 2020-02-28 广州西麦科技股份有限公司 一种用于中创中间件的批量发布系统、方法及存储介质
CN110855501B (zh) * 2019-11-21 2022-04-26 广州西麦科技股份有限公司 一种用于中创中间件的批量发布系统、方法及存储介质

Similar Documents

Publication Publication Date Title
CN109034720A (zh) 一种适用于电力调度业务管理的移动办公平台及装置
CN104793076B (zh) 智能自动测试系统及测试方法
CN105491038B (zh) 一种智能设备协议解析方法
CN102799962A (zh) 一种配置型业务流程系统及其实现方法
CN110472388A (zh) 一种设备管控系统及其用户权限控制方法
CN109002391A (zh) 自动检测嵌入式软件接口测试数据的方法
CN111130922A (zh) 一种机载信息安全自动化测试方法及测试平台
CN112926954A (zh) 一种基于人工智能机器人跨网络政务信息交换系统及方法
CN108270640A (zh) 一种智能营配信息集成系统信息互操作一致性测试方法
CN108876283A (zh) 一种自动审核系统及方法
CN109787844A (zh) 一种配网主站通信故障快速定位系统
CN107423223A (zh) 测试管理系统
CN104899134A (zh) 域名注册服务器自动化测试系统和方法
CN111930078A (zh) 一种面向核控系统的网络测试装置
CN115396352A (zh) Cms服务器端协议测试方法、系统、设备及存储介质
CN109960660A (zh) 一种基于Ansible的电网业务入网安全测评方法
CN109191062A (zh) 一种配电网辅助设计及项目管控系统
CN108111578A (zh) 基于nio的配电终端数据采集平台接入终端设备的方法
CN112131544A (zh) 一种跳板机用户管理的shell脚本方法
CN110019118A (zh) 基于DevOps提升数据库运维效率的系统及其方法
CN112700083A (zh) 构建资源综合利用和服务指数指标体系场景的方法及装置
CN116383061A (zh) 变电站站控系统基础平台接口测试方法及相关装置
CN104391782B (zh) 基于xml脚本的网络设备管理软件客户端模拟方法
CN103647760B (zh) 一种智能变电站数字保护装置的mms通讯平台及其访问方法
CN110209578A (zh) 一种信息在线测试平台

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190702

RJ01 Rejection of invention patent application after publication