判定即服务 (VaaS) 是一项云服务,提供扫描文件以检测恶意软件及其他威胁的能力。它允许您仅用几行代码就能轻松地将恶意软件检测集成到您的应用程序中。您可以使用 VaaS 来保护任何需要交换或存储文件的场景,例如:
只需极少的精力,您就可以检查文件、URL 或哈希值是否包含恶意内容。无需在本地安装任何反恶意软件产品。VaaS 开箱即用,通过 G DATA 云提供检测结果。您也可以选择在自己的 Kubernetes 集群上托管 VaaS。
此仓库包含多种编程语言的 VaaS 软件开发工具包 (SDK)。这些 SDK 使您能够轻松地将 VaaS 集成到您的软件中。以下是一些示例:
// 设置
var authenticator = new ResourceOwnerPasswordGrantAuthenticator("vaas-customer", userName, password, tokenUrl);
var vaas = VaasFactory.Create(authenticator);
// 扫描文件...
var verdict = await vaas.ForFileAsync(file, CancellationToken.None);
// 或扫描 URL...
var verdict = await vaas.ForUrlAsync(uri, CancellationToken.None);
// 或仅扫描 SHA256 哈希
var verdict = await vaas.ForSha256Async(new ChecksumSha256("275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f"), CancellationToken.None);
完整的 C# 示例可在 dotnet examples 中找到。
// 设置
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);
// 扫描文件...
var verdict = vaas.forFile(file);
// 或扫描 URL...
var verdict = vaas.forUrl(url);
// 或仅扫描 SHA256 哈希
var verdict = vaas.forSha256(new Sha256("275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f"));
完整的 Java 示例可在 java examples 中找到。
请参阅下方支持的语言及示例列表。
我们为 VaaS 云版提供免费试用账户,用于评估目的。您可以在此注册获取免费试用账户。然后,您可以将创建的凭据与任何 SDK 结合我们的测试环境一起使用:
如需在生产中使用 VaaS,请联系我们讨论您的需求,并探讨 VaaS 如何最符合您的组织需求。VaaS 既可提供云版本,也可提供本地化部署。
我们为 VaaS 提供在线文档。文档内容包括设置示例、产品描述以及多个帮助您设置配置的指南。
我们提供多种编程语言的 SDK,以便您轻松将 VaaS 集成到应用程序中。您可以在相应的仓库中找到每个 SDK 的源代码、示例和文档。目前,我们支持以下语言:
| 语言 | 源代码 | 示例 | 文档 | 仓库 |
|---|---|---|---|---|
| Rust | Rust SDK | 示例 | docs.rs | crates.io |
| Java | Java SDK | 示例 | Readme | maven central |
| PHP | PHP SDK | 示例 | packagist | |
| TypeScript (已废弃) | TypeScript SDK | 示例 | Readme | npmjs |
| Python | Python SDK | 示例 | Readme | pypi |
| .NET | .NET SDK | 示例 | nuget.org | |
| Ruby (已废弃) | Ruby SDK | 示例 | Readme | rubygems |
| Go | Go SDK | 示例 | Readme | Github |
| C++ | C++ SDK | Readme |
下表显示了每个 SDK 支持的功能:
| 功能 | Rust | Java | PHP | TypeScript | .NET | Python | Ruby (已废弃) | Golang | C++ |
|---|---|---|---|---|---|---|---|---|---|
| 使用 HTTP API | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ |
| 检查 SHA256 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 检查文件 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 检查 URL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| 检查流 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
您可以使用 VaaS 仅用几行代码创建各种扫描恶意内容的应用。以下是一些示例:
构建和测试 SDK 的最简单方法是使用 Nix 包管理器 和提供的 Just 文件。Nix 将处理所有依赖项,而 Just 提供一个简单的界面来运行最常见的任务。
要构建和测试 SDK,请运行以下命令:
# 切换到安装了所有依赖项的开发 shell。
# 这不会改变您的系统,而是提供一个包含所有必要工具的 shell。
nix develop
# 现在使用 Just 工具运行最常见的任务
just -l # 列出所有可用任务
# 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 的新版本。它需要一个版本号作为参数,该版本号将用于标记发布。版本号应遵循语义化版本规范。
# 示例:发布 Rust SDK 版本 0.1.0
just release-rust 0.1.0