
Verdict-as-a-Service SDKs: Анализ файлов на вредоносное содержимое
Verdict-as-a-Service (VaaS) — это облачный сервис, предоставляющий возможности сканирования файлов на вредоносное ПО и другие угрозы. Он позволяет легко интегрировать обнаружение вредоносных программ в ваше приложение с помощью нескольких строк кода. VaaS можно использовать для защиты любого сценария, где происходит обмен или хранение файлов, например:
С минимальными усилиями вы можете проверить файл, URL или хеш-сумму на наличие вредоносного содержимого. Никакой локальной установки антивирусного продукта не требуется. VaaS работает «из коробки», предоставляя обнаружения из облака G DATA. Также возможен хостинг VaaS на собственном кластере Kubernetes.
Этот репозиторий содержит комплекты разработки ПО (SDK) для VaaS на нескольких языках программирования. SDK позволяют легко интегрировать VaaS в ваше программное обеспечение. Ниже приведены некоторые примеры:
// 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 examples.
// 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 examples.
См. ниже список поддерживаемых языков и примеры.
Если вы заинтересованы в опробовании VaaS, посетите наш сайт (немецкая версия).
Мы предоставляем бесплатные пробные учётные записи для ознакомления с облачной версией VaaS. Вы можете зарегистрироваться здесь с бесплатной пробной учётной записью. Затем вы сможете использовать созданные учётные данные с любым SDK в сочетании с нашей тестовой средой:
Для производственного использования VaaS, пожалуйста, свяжитесь с нами, чтобы обсудить ваши потребности и выяснить, как VaaS может наилучшим образом подойти вашей организации. VaaS доступен как в облачной версии, так и on-premise.
Мы предоставляем онлайн-документацию для VaaS. Документация включает примеры настройки, описания продуктов и несколько руководств, которые помогут вам всё настроить.
Мы предоставляем SDK для различных языков программирования, чтобы вам было легко интегрировать VaaS в ваше приложение. Исходный код, примеры и документацию для каждого SDK можно найти в соответствующем репозитории. В настоящее время мы поддерживаем следующие языки:
В следующей таблице показана функциональность, поддерживаемая каждым SDK:
С помощью VaaS вы можете создавать различные приложения для сканирования вредоносного контента буквально несколькими строками кода. Вот несколько примеров:
Самый простой способ собрать и протестировать SDK — использовать Nix Package Manager и предоставленный файл Just. Nix позаботится обо всех зависимостях, а Just предоставляет простой интерфейс для выполнения наиболее распространённых задач.
Чтобы собрать и протестировать SDK, выполните следующую команду:
# switch into a development shell with all dependencies installed.
# This will not alter your system, but provide a shell with all necessary tools.
nix develop
# Now use the Just tool to run the most common tasks
just -l # list all available tasks
# Just Examples
# Run the tests for the Rust SDK
just test-rust
Для каждого SDK существуют задачи test-*, build-*, clean-* и release-*, за исключением Python и PHP, где задача сборки отсутствует. Вы также можете запустить тесты для всех SDK с помощью just test-all. Также доступны задачи build-all и clean-all.
Задача release-* запускает Github Action для сборки и выпуска новой версии указанного SDK. Для её выполнения требуется номер версии в качестве аргумента, который используется для маркировки релиза. Номер версии должен соответствовать схеме Семантического версионирования.
# Example: Release the Rust SDK with version 0.1.0
just release-rust 0.1.0
Поскольку для аутентификации в VaaS API SDK требуют учётные данные, их необходимо предоставить в файлах .env.https и .env.wss. Скопируйте ваши файлы .env.https и .env.wss в корневой каталог проекта. Файл .env.https должен содержать учётные данные с URL VaaS, установленным на https, а файл .env.wss — те же учётные данные, но с URL wss.
# Copy the .env.wss and .env.https files to all SDK folders
# to be able to run the integration tests
just populate-env
# If you see any strange error, e.g. not found compiler. Try to clean the project
# and populate the environment again.
just clean-all
just populate-env
| Язык | Исходный код | Примеры | Документация | Репозиторий |
|---|
| Rust | Rust SDK | Examples | docs.rs | crates.io |
| Java | Java SDK | Examples | Readme | maven central |
| PHP | PHP SDK | Examples | packagist | |
| TypeScript (УСТАРЕЛО) | TypeScript SDK | Examples | Readme | npmjs |
| Python | Python SDK | Examples | Readme | pypi |
| .NET | .NET SDK | Examples | nuget.org | |
| Ruby (УСТАРЕЛО) | Ruby SDK | Examples | Readme | rubygems |
| Go | Go SDK | Examples | Readme | Github |
| C++ | C++ SDK | Readme |
| Функциональность | Rust | Java | PHP | TypeScript | .NET | Python | Ruby (УСТАРЕЛО) | Golang | C++ |
|---|
| Использование HTTP API | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ |
| Проверка SHA256 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Проверка файла | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Проверка URL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Проверка потока | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |