通过数据库读取,获取MVM各扫描任务的漏扫数量趋势统计以及详细信息查询

当大型分布式部署的漏扫系统投入运行之后,对全行接近50家分行的服务器进行扫描,数据量陡增,作为唯一的管理员,必然被淹没了,不可能再像之前一样,逐个扫描报告分析,并编写扫描报告,通知各管理员整改。而且MVM自身的漏洞整改跟踪机制也不再适用,细粒度的Ticket功能,对分行管理员和自己都是负担。该如何解决呢?

经过思考和讨论,决定转换角色,通过统计全局的数据,来掌握分行管理员的配合支持程度,和分行的总体漏洞数量。通过建立漏洞信息查询平台,提供整改方法和补丁下载等各种资源。而具体的工作则由分行管理员自行完成。

/****** 漏洞数量概况,根据任务名称-configurationName查找 可用于漏洞数量趋势统计******/
SELECT [JobID]
      /*,[JobName]
      ,[ConfigurationID]
      ,[OrgID]
      ,[OrgName]*/
      ,[ConfigurationName]
      ,[StartTime]
      ,[EndTime]
      ,[HighVulns]
      /*,[MediumVulns]
      ,[LiveHosts]*/
      ,[NewHighVulns]
      ,[RemovedHighVulns]
      /*,[NewMediumVulns]
      ,[RemovedMediumVulns]
      ,[NewHosts]
      ,[RemovedHosts]*/
  FROM [faultline].[MVMLive].[vwScan]
  /*
 
  where ConfigurationName=‘FH51NewYork‘
  还可以指定时间范围
 
  */
  where ConfigurationName like ‘FH%‘
  and starttime>=getdate()-7
  order by ConfigurationName

/****** 联合两个表,实现某一任务的新增(change type=1???)高危漏洞的查询,包括主机IP和漏洞名称  ******/
SELECT [faultline].[Trend].[VulnDelta].[JobID]
      ,[faultline].[MVMLive].[vwScan].ConfigurationName
      ,[faultline].[Trend].[VulnDelta].[AssetID]
      ,[faultline].[dbo].[vwAssets].IPAddressStr
      ,[faultline].[Trend].[VulnDelta].[FaultlineID]
      ,[faultline].[Content].[vwVulnRiskAndCVSSScore].Name
      ,[ChangeType]
      ,[DateInserted]
  FROM [faultline].[Trend].[VulnDelta]
  left join [faultline].[Content].[vwVulnRiskAndCVSSScore] on [faultline].[Trend].[VulnDelta].FaultlineID=[faultline].[Content].[vwVulnRiskAndCVSSScore].FaultlineID
  left join [faultline].[dbo].[vwAssets]on [faultline].[Trend].[VulnDelta].AssetID=[faultline].[dbo].[vwAssets].AssetID
  left join [faultline].[MVMLive].[vwScan]on [faultline].[Trend].[VulnDelta].JobID = [faultline].[MVMLive].[vwScan].JobID
 
 
 
 
  /*通过任务名称,加上排序或者日期来选择最新的jobid。再加一个时间范围???
 
  where [faultline].[MVMLive].[vwScan].configname=FHxxxxx
  and [faultline].[Trend].[VulnDelta].JobID=max
  and [faultline].[Content].[vwVulnRiskAndCVSSScore].RiskLevel=3
 
  jobid 从[faultline].[MVMLive].[vwScan]而来
 
 
 
  where [faultline].[Trend].[VulnDelta].JobID= 651
  */
  where [faultline].[Trend].[VulnDelta].DateInserted>=GETDATE()-30
  and [faultline].[Content].[vwVulnRiskAndCVSSScore].RiskLevel=3 and [faultline].[MVMLive].[vwScan].ConfigurationName like ‘FH%‘
  order by JobID

时间: 2024-10-13 10:30:10

通过数据库读取,获取MVM各扫描任务的漏扫数量趋势统计以及详细信息查询的相关文章

Mysql数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中

有两张表, 一张为爱好表b表 一张为用户表 u表 u表 id   名称   爱好Id 1    张三     1,2,3,4 2    李四      2,5 b表 id  名称 1    打乒乓 2    打羽毛球 3   打蓝球 4    上网玩游戏 5   打牌 正常查询u表 select * from u 现在需求是: id  名称   爱好 1  张三    打乒乓,打羽毛球,打篮球,上网 2 李四    打羽毛球,打牌 修改sql为 select u.id,u.名称,group_co

知乎网页(用php从数据库读取数据)

---恢复内容开始--- 这几天都在做小项目,做的是知乎的网页,我觉得知乎网页最难的地方就在数据的读取,可以用json.js;也可以用php数据库来获取数据,下面是我写的一些用php读取数据库数据的代码,首先首页主要内容的读取,两个部分conn.php和zhihu_exec.php;注册有三部分conn.php,zhuce_add.php,zhuce.insert.php;登录有两个部分login.php,login.exec.php; 下面是具体的代码: 一:首页 //1.调用数据库,读取数据

jquery.datatable插件从数据库读取数据

一.分页 分页的基本思想是根据datatable的页码及每页显示的行数,将数据从数据库分段提出,然后再填充到表格中,以达到分页的效果. 这里需要用到datatable插件的几个属性: "sEcho":这个属性需要原封不动地传回给datatable,具体的作用我也不清楚,但是根据它值的变化情况来看,好像是一个操作次数的计数(之前我一直把它当做是pageindex来用,结果发现,不论我在datatable中是翻下一页还是翻上一页,它一直在增加.) "iDisplayStart&q

C# 图片保存到数据库和从数据库读取图片并显示

图片保存到数据库的方法: public void imgToDB(string sql)        {   //参数sql中要求保存的imge变量名称为@images            //调用方法如:imgToDB("update UserPhoto set [email protected] where UserNo='" + temp + "'");            FileStream fs = File.OpenRead(t_photo.Te

从数据库读取图片路径后在页面上显示出来

从数据库读取图片路径后在页面上显示出来 代码: 1 //直接将代码放到php文件里 2 $con = mysqli_connect("localhost", "123", "123", "123");//连接数据库 3 $sql = "SELECT * FROM table";//读取表 4 $result = $con->query($sql); 5 while ($row = $result-&g

项目笔记之一:DBF数据库读取

因为现场的数据库用的还是 Visual FoxPro,而自己用的编程语言是C#,不能直接访问,在网上查了不少资料,最后终于在 DRL 找到了一个解决方法,DBF 数据库读取的问题就基本解决了.以下为解决这个问题过程中的一些笔记 1. 用 “Provider=Microsoft.Jet.OLEDB.12.0;” 时,提示如下错误: An unhandled exception of type 'System.InvalidOperationException' occurred in System

是用JDBC从数据库中获取数据并以java对象返回

/** * * @param c * for example Person.class * @param primaryKeys * primaryKeys为主键,参数顺序和表中保持一致 如果id, name 为主键 类名为Person 则 getEntity(Person.class,1,"name") * @return */ public static Object getEntity(Class c, Object... primaryKeys) { PreparedState

echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端

1.echarts的官网上的demo,都是直接写死的随机数据,没有和数据库的交互,所以就自己写了一下,ok,我们开始一步一步走一遍整个流程吧. 就以官网最简单的那个小demo来做修改吧.官网上的小demo的效果图如下:(很熟悉,有没有) 2.按照echarts的使用方法新建一个echarts.html文件.为ECharts准备一个具备大小(宽高)的Dom(讲的有点细,熟悉的朋友直接跳过) <!DOCTYPE html> <head> <meta charset="u

图片内容保存到数据库,并从数据库里获取图片

保存image到database public bool SaveImage(string filePath) { bool isSuccess = false; string FilePath = filePath; string filename = FilePath.Substring(FilePath.LastIndexOf("\\") + 1); //得到上传文件的文名 string filetext = string.Empty; FileStream fs = new F