GDATASoftwareAG/vaas

GitHub: GDATASoftwareAG/vaas

一个提供多语言SDK的云端恶意软件检测服务,支持扫描文件、URL和哈希值以判定恶意内容。

Stars: 38 | Forks: 9

[![vaas-dotnet-ci](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/2af786dd1d061500.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-dotnet.yaml) [![vaas-java-ci](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/09f457c0c8061501.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-java.yaml) [![vaas-python-ci](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/427ec05237061502.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-python.yaml) [![vaas-php-ci](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/44bc0617d1061503.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-php.yaml) [![vaas-golang-ci](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/ac514799e4061504.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-golang.yaml) [![vaas-rust-ci](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/9a40fc6ea3061506.svg)](https://github.com/GDATASoftwareAG/vaas/actions/workflows/ci-rust.yaml) # Verdict-as-a-Service G DATA VaaS logo *Verdict-as-a-Service* (VaaS) 是一项云服务,提供了扫描文件以检测恶意软件和其他威胁的功能。它允许您通过几行代码轻松地将恶意软件检测集成到您的应用程序中。您可以使用 VaaS 来保护任何涉及文件交换或存储的场景,例如: - 具有文件提交功能的上传表单 - 协作软件,如 MS Teams、Nextcloud 或 Slack - 备份和分布式文件存储,如 Dropbox 或 OneDrive 只需极少的精力,您就可以检查文件、URL 或哈希值是否包含恶意内容。无需在本地安装任何反恶意软件产品。VaaS 开箱即用,通过 G DATA 云提供检测结果。您也可以选择在您自己的 Kubernetes 集群上托管 VaaS。 本仓库包含了多种编程语言的 VaaS 软件开发套件 (SDK)。这些 SDK 允许您轻松地将 VaaS 集成到您的软件中。以下是一些示例: ## 示例 ### C# ``` // Setup var authenticator = new ResourceOwnerPasswordGrantAuthenticator("vaas-customer", userName, password, tokenUrl); var vaas = VaasFactory.Create(authenticator); // Scan a file... var verdict = await vaas.ForFileAsync(file, CancellationToken.None); // or a URL... var verdict = await vaas.ForUrlAsync(uri, CancellationToken.None); // or just a SHA256 hash var verdict = await vaas.ForSha256Async(new ChecksumSha256("275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f"), CancellationToken.None); ``` 完整的 C# 示例可以在 [dotnet 示例](dotnet/examples/VaasExample) 中找到。 ### Java ``` // Setup var authenticator = new ResourceOwnerPasswordGrantAuthenticator("vaas-customer", userName, password, new URI(tokenUrl)); var config = new VaasConfig(new URI(env.vaasUrl)); var vaas = new Vaas(config, authenticator); // Scan a file... var verdict = vaas.forFile(file); // or a URL... var verdict = vaas.forUrl(url); // or just a a SHA256 hash var verdict = vaas.forSha256(new Sha256("275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f")); ``` 完整的 Java 示例可以在 [java 示例](java/examples/VaasExample/) 中找到。 ### 更多语言 请参阅下方支持的语言和示例列表。 ## 如何开始使用 VaaS 如果您有兴趣试用 VaaS,请查看 [我们的网站](https://www.gdatasoftware.com/business/security-services/verdict-as-a-service) ([德语版本](https://www.gdata.de/business/security-services/verdict-as-a-service))。 我们为 VaaS 云版本提供用于评估目的的免费试用账户。您可以 [在此注册](https://www.gdata.de/vaas-files/vaas-technical-onboarding.html) 获取免费试用账户。然后,您可以将创建的凭据与任何 SDK 结合使用,并在我们的测试环境中进行操作: * **Authenticator**: ResourceOwnerPasswordGrant * **Client ID**: vaas-customer * **Username**: 您注册的 *电子邮箱* 地址 * **Password**: 您的密码 * **Token/Authenticator URL**: https://account-staging.gdata.de/realms/vaas-staging/protocol/openid-connect/token * **VaaS URL**: https://gateway.staging.vaas.gdatasecurity.de (对于仍使用 Websocket API 的 SDK,请改用 wss://gateway.staging.vaas.gdatasecurity.de) 如需在生产环境中使用 VaaS,请 [联系我们](https://www.gdata.de/help-en/vaas/contact/) 以讨论您的需求,并探讨 VaaS 如何最适合您的组织。VaaS 同时提供云版本和本地部署版本。 ## VaaS 文档 我们为 VaaS 提供了 [在线文档](https://www.gdata.de/help-en/vaas/)。文档包括设置示例、产品描述以及若干帮助您完成设置的指南。 ## SDK 我们为多种编程语言提供 SDK,以便您轻松地将 VaaS 集成到您的应用程序中。您可以在相应的仓库中找到每个 SDK 的源代码、示例和文档。目前,我们支持以下语言: |语言|源代码|示例|文档|仓库| |--------|-----------|--------|-------------|----------| |Rust|[Rust SDK](rust/)|[示例](rust/examples)| [docs.rs](https://docs.rs/vaas/latest/vaas/)|[crates.io](https://crates.io/crates/vaas)| |Java|[Java SDK](java/)|[示例](java/examples)| [Readme](java/Readme.md) | [maven central](https://mvnrepository.com/artifact/de.gdata/vaas)| |PHP|[PHP SDK](php/)|[示例](php/examples)||[packagist](https://packagist.org/packages/gdata/vaas)| |TypeScript(已弃用)|[TypeScript SDK](typescript/)|[示例](typescript/examples)|[Readme](typescript/Readme.md)|[npmjs](https://www.npmjs.com/package/gdata-vaas) |Python|[Python SDK](python/)|[示例](python/examples)|[Readme](python/README.md)|[pypi](https://pypi.org/project/gdata-vaas/)| |.NET|[.NET SDK](dotnet/)|[示例](dotnet/examples)||[nuget.org](https://www.nuget.org/packages/GDataCyberDefense.Vaas)| |Ruby (已弃用)|[Ruby SDK](ruby/)|[示例](ruby/examples)|[Readme](ruby/README.md)|[rubygems](https://rubygems.org/gems/vaas)| |Go|[Go SDK](golang/vaas/v3)|[示例](golang/vaas/v3/examples)|[Readme](golang/vaas/v3/README.md)|[Github](https://github.com/GDATASoftwareAG/vaas/tree/main/golang/vaas/v3)| |C++|[C++ SDK](./cpp/)||[Readme](cpp/README.md)|| 下表显示了每个 SDK 支持的功能: |功能|Rust|Java|PHP|TypeScript|.NET|Python|Ruby (已弃用)|Golang|C++| |---|---|---|---|---|---|---|---|---|---| |使用 HTTP API|✅|✅|✅|❌|✅|✅|❌|✅|✅| |检查 SHA256|✅|✅|✅|✅|✅|✅|✅|✅|✅| |检查文件|✅|✅|✅|✅|✅|✅|✅|✅|✅| |检查 URL|✅|✅|✅|✅|✅|✅|✅|✅|❌| |检查流|✅|✅|✅|✅|✅|✅|❌|✅|✅| || ## 通过 VaaS 进行恶意软件检测的集成思路 您可以使用 VaaS 通过几行代码创建各种扫描恶意内容的应用程序。以下是一些示例: - 用于扫描上传文件中恶意软件的 [WordPress 插件](https://wordpress.org/plugins/gdata-antivirus/) - 用于扫描您 Nextcloud 实例中文件的 [Nextcloud 应用](https://apps.nextcloud.com/apps/gdatavaas) ## 构建与测试 构建和测试 SDK 最简单的方法是使用 [Nix Package Manager](https://nixos.org/download/#download-nix) 和提供的 [Just](https://github.com/casey/just) 文件。Nix 将负责处理所有依赖项,Just 提供了一个简单的界面来运行最常见的任务。 要构建和测试 SDK,请运行以下命令: ``` # 切换到一个已安装所有依赖项的开发 shell。 # 这不会改变您的系统,而是提供一个包含所有必要工具的 shell。 nix develop # 现在使用 Just 工具运行最常见的任务 just -l # list all available tasks # Just 示例 # 运行 Rust SDK 的测试 just test-rust ``` 每个 SDK 都有 `test-*`、`build-*`、`clean-*` 和 `release-*` 任务,但 Python 和 PHP 例外,它们没有构建任务。您也可以使用 `just test-all` 运行所有 SDK 的测试。此外还提供了 `build-all` 和 `clean-all` 任务。 `release-*` 任务会触发 Github Action 以构建并发布指定 SDK 的新版本。它需要一个版本号作为参数,用于标记发布。版本号应遵循 [语义化版本控制](https://semver.org/) 规范。 ``` # 示例:发布版本为 0.1.0 的 Rust SDK just release-rust 0.1.0 ``` 由于 SDK 需要凭据来验证 VaaS API。您需要在 `.env.https` 和 `.env.wss` 文件中提供它们。将您的 `.env.https` 和 `.env.wss` 文件复制到项目的根目录。`.env.https` 文件应包含 Vaas Url 设置为 `https` 的凭据,而 wss 文件应包含相同的凭据,但使用 `wss` url。 ``` # 将 .env.wss 和 .env.https 文件复制到所有 SDK 文件夹 # 以便能够运行集成测试 just populate-env # 如果您看到任何奇怪的错误,例如找不到编译器。请尝试清理项目 # 并重新填充环境。 just clean-all just populate-env ```
标签:EVTX分析, G DATA, Go, Hash校验, JSONLines, JS文件枚举, OpenVAS, PHP, Python, Python脚本, Ruby工具, Rust, SaaS, URL扫描, VaaS, Verdict-as-a-Service, 云端安全服务, 协作软件安全, 可视化界面, 备份安全, 多云集成, 多人体追踪, 威胁情报, 子域名突变, 开发者工具, 文件上传安全, 文件扫描, 无后门, 日志审计, 网络安全, 网络流量审计, 网页爬虫, 自定义DNS解析器, 逆向工具, 防病毒, 隐私保护, 零信任