FuzzBench云实验教程:利用Google Cloud进行大规模模糊测试评估
FuzzBench云实验教程利用Google Cloud进行大规模模糊测试评估【免费下载链接】fuzzbenchFuzzBench - Fuzzer benchmarking as a service.项目地址: https://gitcode.com/gh_mirrors/fu/fuzzbenchFuzzBench是一款强大的模糊测试评估服务能够帮助开发者和研究人员在Google Cloud平台上进行大规模的模糊测试实验。通过FuzzBench您可以轻松比较不同模糊测试工具fuzzer的性能评估它们在各种真实世界基准测试中的表现从而选择最适合您项目需求的模糊测试方案。FuzzBench云实验架构解析 FuzzBench的云实验架构设计精巧能够高效地处理大规模模糊测试任务。下图展示了FuzzBench的整体架构包括从构建模糊测试工具和基准测试到生成最终报告的完整流程。该架构主要包含以下关键组件Builder负责构建模糊测试工具和基准测试的Docker镜像Google Cloud Build处理镜像构建和存储Trial Runners在Google Compute Engine实例上执行模糊测试实验Measurer收集和分析测试覆盖率数据Database存储实验结果数据Reporter生成直观的实验报告开始之前Google Cloud项目准备在运行FuzzBench云实验之前您需要完成Google Cloud项目的设置。请确保您已经创建了Google Cloud项目启用了必要的API服务配置了适当的权限和结算信息设置了Cloud Storage存储桶和Cloud SQL数据库详细的设置指南可以参考官方文档docs/running-a-cloud-experiment/setting_up_a_google_cloud_project.md配置实验创建实验配置文件实验配置文件是运行FuzzBench云实验的核心。您需要创建一个YAML格式的配置文件指定实验的关键参数。以下是一个基本的配置示例# 每个模糊测试工具-基准测试对的试验次数 trials: 5 # 每个试验的运行时间秒1天86400秒 max_total_time: 86400 # Docker镜像仓库地址 docker_registry: gcr.io/$PROJECT_NAME # Google Cloud项目名称 cloud_project: $PROJECT_NAME # Google Compute Engine区域 cloud_compute_zone: $PROJECT_ZONE # 存储实验数据的Cloud Storage桶 experiment_filestore: gs://$DATA_BUCKET_NAME # 存储报告的Cloud Storage桶 report_filestore: gs://$REPORT_BUCKET_NAME # Cloud SQL实例连接信息 cloud_sql_instance_connection_name: $PROJECT_NAME:$PROJECT_REGION:$POSTGRES_INSTANCEtcp:5432请将上述配置中的$PROJECT_NAME、$PROJECT_ZONE等占位符替换为您的实际项目信息。选择基准测试和模糊测试工具FuzzBench提供了丰富的基准测试和模糊测试工具供您选择基准测试选择您可以从benchmarks/目录中选择要使用的基准测试。例如freetype2_ftfuzzerFreeType字体渲染库的模糊测试bloaty_fuzz_targetBloaty二进制分析工具的模糊测试libpng_libpng_read_fuzzerlibpng图像库的模糊测试模糊测试工具选择您可以从fuzzers/目录中选择要评估的模糊测试工具。例如libfuzzerLLVM项目的官方模糊测试工具afl经典的American Fuzzy Lop模糊测试工具aflplusplusAFL的增强版本包含更多高级功能honggfuzz由Google开发的模糊测试工具启动云实验执行run_experiment.py一切准备就绪后您可以使用run_experiment.py脚本启动云实验。在FuzzBench项目根目录下执行以下命令PYTHONPATH. python3 experiment/run_experiment.py \ --experiment-config experiment-config.yaml \ --benchmarks freetype2_ftfuzzer bloaty_fuzz_target \ --experiment-name my-first-experiment \ --fuzzers afl libfuzzer aflplusplus其中my-first-experiment是您为实验指定的名称。您还可以添加一些可选参数--no-seeds不使用种子语料库--no-dictionaries不使用字典--oss-fuzz-corpus使用OSS-Fuzz的最新语料库如果可用监控实验进度和查看结果实验启动后FuzzBench会自动处理所有后续工作包括构建必要的Docker镜像、启动GCE实例、运行测试以及收集结果。实验报告实验报告将定期更新您可以通过以下URL访问https://storage.googleapis.com/$REPORT_BUCKET_NAME/$EXPERIMENT_NAME/index.html报告中包含丰富的可视化图表帮助您直观比较不同模糊测试工具的性能。例如下面的热图展示了不同模糊测试工具之间的覆盖度对比而下面的柱状图则直观展示了各个模糊测试工具的唯一边缘覆盖度排名FuzzBench云实验工作流程下图展示了研究人员使用FuzzBench服务进行模糊测试评估的完整流程研究人员选择要评估的模糊测试工具FuzzBench服务在各种基准测试上运行这些工具系统收集并分析测试结果生成详细的性能报告帮助研究人员比较不同工具的表现高级用法自定义模糊测试工具配置许多模糊测试工具都有可调整的参数这些参数会影响其性能。FuzzBench支持通过配置文件来调整这些参数。以下是一个示例配置文件# 要运行的模糊测试工具名称位于fuzzers/目录下 fuzzer: libfuzzer # 此配置的名称将显示在报告中 variant_name: libfuzzer_value_profile # 运行模糊测试工具前设置的环境变量 env: ADDITIONAL_ARGS: -use_value_profile1然后您可以在启动实验时使用--fuzzer-configs参数指定此配置文件。通过Pull Request提交实验如果您希望贡献实验结果FuzzBench维护者可以通过内部工具运行您的实验。在提交PR时请确保实验名称仅使用小写字母、数字和连字符且不超过30个字符提供所有必要的资源如基准测试、种子语料库在PR中包含实验的详细说明总结FuzzBench提供了一个强大而灵活的平台使您能够在Google Cloud上轻松进行大规模模糊测试评估。通过遵循本教程您可以快速设置和运行自己的模糊测试实验获得有价值的性能数据帮助您选择最适合项目需求的模糊测试工具。无论您是安全研究人员、开发人员还是质量 assurance工程师FuzzBench都能为您提供深入的模糊测试工具性能洞察帮助您构建更安全、更可靠的软件。【免费下载链接】fuzzbenchFuzzBench - Fuzzer benchmarking as a service.项目地址: https://gitcode.com/gh_mirrors/fu/fuzzbench创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2422093.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!