python研究学习--33--Docker扫描引擎(\ScanTask)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python研究学习--33--Docker扫描引擎(\ScanTask),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2717字,纯文字阅读大概需要4分钟。
内容图文
![python研究学习--33--Docker扫描引擎(\ScanTask)](/upload/InfoBanner/zyjiaocheng/850/c3405aed183341edbb50acc7e6c383e1.jpg)
#!/usr/bin/python
#-*- coding:utf-8 -*-
import os
import sys
from BaseTask import *
from itertools import islice
reload(sys)
sys.setdefaultencoding('utf-8')
# ----------------------------------------------------------
# 报告处理。如果文件名称重复,则自动在后面添加“_数字”类推
# ----------------------------------------------------------
class Output(object):
# 控制台内容生成txt报告
def __init__(self, check_filename = "default.log"):
self.terminal = sys.stdout
self.log = open(check_filename, "w")
def write(self, message):
self.terminal.write(message)
self.log.write(message)
def flush(self): # 即时更新
pass
'''
# 判断文件名是否存在
def check_filename(filename):
n = [2]
def check_meta(file_name):
file_name_new = file_name
if os.path.isfile(file_name):
file_name_new = file_name[:file_name.rfind('.')]+'_'+str(n[0])+file_name[file_name.rfind('.'):]
n[0] += 1
if os.path.isfile(file_name_new):
file_name_new = check_meta(file_name)
return file_name_new
return_name = check_meta(filename)
print return_name
return return_name
'''
# ----------------------------------------------------------
# 镜像扫描
# ----------------------------------------------------------
def ScanTask(DockerImage):
# name = check_filename('%s.txt'% DockerImage)
sys.stdout = Output('%s.txt'% DockerImage)
# print "本次扫描的镜像是: %s" % DockerImage
# CVE漏洞扫描
cve_scan = "anchore query --image %s cve-scan all" % DockerImage
cve = os.popen(cve_scan).readlines()
print "CVE漏洞扫描结果:\n------------------------------------------"
for line in islice(cve,0,None):
cve_data = line.strip()
if len(cve_data) != 0:
print cve_data
# 镜像常规分析
analysis = "anchore analyze --image %s --imagetype base" % DockerImage
os.popen(analysis).readlines()
analysis_scan = "anchore gate --image %s" % DockerImage
analysis_result = os.popen(analysis_scan).readlines()
print "\n镜像常规分析结果:\n------------------------------------------"
for line in islice(analysis_result,0,None):
analysis_result_data = line.strip()
if len(analysis_result_data) != 0:
print analysis_result_data
# 扫描与纯净镜像的区别
pure_scan = "anchore query --image %s show-file-diffs base" % DockerImage
pure = os.popen(pure_scan).readlines()
print "\n提取与纯净镜像的对比区别:\n------------------------------------------"
for line in islice(pure,0,None):
pure_data = line.strip()
if len(pure_data) != 0:
print pure_data
# 镜像特征提取
feature_scan = "anchore toolbox --image %s show" % DockerImage
feature = os.popen(feature_scan).readlines()
print "\n镜像特征提取结果:\n------------------------------------------"
for line in islice(feature,0,None):
feature_data = line.strip()
if len(feature_data) != 0:
print feature_data
if __name__ == "__main__":
from ScanAPI import Image
image = Image()
ScanTask(image.get())
内容总结
以上是互联网集市为您收集整理的python研究学习--33--Docker扫描引擎(\ScanTask)全部内容,希望文章能够帮你解决python研究学习--33--Docker扫描引擎(\ScanTask)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。