
Verdict-as-a-Service SDKs: Analizar archivos en busca de contenido malicioso
Verdict-as-a-Service (VaaS) es un servicio en la nube que proporciona capacidades para escanear archivos en busca de malware y otras amenazas. Le permite integrar fácilmente la detección de malware en su aplicación con unas pocas líneas de código. Puede utilizar VaaS para asegurar cualquier escenario donde se intercambie o almacene un archivo, como:
Con un esfuerzo mínimo, puede verificar si un archivo, URL o hashsum contiene contenido malicioso. No es necesaria ninguna instalación local de ningún producto antimalware. VaaS funciona de inmediato, proporcionando detecciones desde la nube de G DATA. También es posible alojar VaaS en su propio clúster de Kubernetes.
Este repositorio contiene kits de desarrollo de software (SDK) para VaaS en varios lenguajes de programación. Los SDK le permiten integrar fácilmente VaaS en su software. A continuación se muestran algunos ejemplos:
// Configuración
var authenticator = new ResourceOwnerPasswordGrantAuthenticator("vaas-customer", userName, password, tokenUrl);
var vaas = VaasFactory.Create(authenticator);
// Escanear un archivo...
var verdict = await vaas.ForFileAsync(file, CancellationToken.None);
// o una URL...
var verdict = await vaas.ForUrlAsync(uri, CancellationToken.None);
// o solo un hash SHA256
var verdict = await vaas.ForSha256Async(new ChecksumSha256("275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f"), CancellationToken.None);
Los ejemplos completos en C# se pueden encontrar en ejemplos de dotnet.
// Configuración
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);
// Escanear un archivo...
var verdict = vaas.forFile(file);
// o una URL...
var verdict = vaas.forUrl(url);
// o solo un hash SHA256
var verdict = vaas.forSha256(new Sha256("275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f"));
Los ejemplos completos en Java se pueden encontrar en ejemplos de java.
Consulte a continuación una lista de lenguajes compatibles y ejemplos.
Si está interesado en probar VaaS, consulte nuestro sitio web (versión en alemán).
Ofrecemos cuentas de prueba gratuitas con fines de evaluación con nuestra versión en la nube de VaaS. Puede registrarse aquí con una cuenta de prueba gratuita. Luego puede usar las credenciales creadas con cualquier SDK en combinación con nuestro entorno de prueba:
Para uso en producción de VaaS, contáctenos para discutir sus necesidades y explorar cómo VaaS puede adaptarse mejor a su organización. VaaS está disponible tanto como versión en la nube como on-premise.
Proporcionamos una documentación en línea para VaaS. La documentación incluye ejemplos de configuración, descripciones del producto y varias guías para ayudarle a configurar las cosas.
Ofrecemos SDK para varios lenguajes de programación para facilitar la integración de VaaS en su aplicación. Puede encontrar el código fuente, ejemplos y documentación para cada SDK en el repositorio correspondiente. Actualmente, soportamos los siguientes lenguajes:
La siguiente tabla muestra la funcionalidad soportada por cada SDK:
Puede utilizar VaaS para crear varias aplicaciones que escaneen contenido malicioso con pocas líneas de código. Aquí hay algunos ejemplos:
La forma más fácil de compilar y probar los SDK es con el Nix Package Manager y el archivo Just proporcionado. Nix se encargará de todas las dependencias y Just proporciona una interfaz simple para ejecutar las tareas más comunes.
Para compilar y probar los SDK, ejecute el siguiente comando:
# Cambiar a un shell de desarrollo con todas las dependencias instaladas.
# Esto no alterará su sistema, sino que proporcionará un shell con todas las herramientas necesarias.
nix develop
# Ahora use la herramienta Just para ejecutar las tareas más comunes
just -l # listar todas las tareas disponibles
# Ejemplos de Just
# Ejecutar las pruebas para el SDK de Rust
just test-rust
Hay tareas test-*, build-*, clean-* y release-* para cada SDK, con la excepción de Python y PHP, donde no hay tarea de compilación disponible. También puede ejecutar las pruebas para todos los SDK con just test-all. Hay una tarea build-all y clean-all disponible.
La tarea release-* activa una Github Action para compilar y publicar una nueva versión del SDK especificado. Necesita un número de versión como argumento, que se utiliza para etiquetar la versión. El número de versión debe seguir el esquema de Versionado Semántico.
# Ejemplo: Publicar el SDK de Rust con la versión 0.1.0
just release-rust 0.1.0
Como los SDK necesitan credenciales para autenticarse en la API de VaaS, debe proporcionarlas en los archivos .env.https y .env.wss. Copie sus archivos .env.https y .env.wss en el directorio raíz del proyecto. El archivo .env.https debe contener las credenciales con la URL de VaaS configurada como https y el archivo wss debe contener las mismas credenciales, pero con una URL wss.
# Copiar los archivos .env.wss y .env.https a todas las carpetas de SDK
# para poder ejecutar las pruebas de integración
just populate-env
# Si ve algún error extraño, por ejemplo, compilador no encontrado. Intente limpiar el proyecto
# y volver a poblar el entorno.
just clean-all
just populate-env
| Lenguaje | Código Fuente | Ejemplos | Documentación | Repositorio |
|---|
| Rust | SDK Rust | Ejemplos | docs.rs | crates.io |
| Java | SDK Java | Ejemplos | Readme | maven central |
| PHP | SDK PHP | Ejemplos | packagist | |
| TypeScript (OBSOLETO) | SDK TypeScript | Ejemplos | Readme | npmjs |
| Python | SDK Python | Ejemplos | Readme | pypi |
| .NET | SDK .NET | Ejemplos | nuget.org | |
| Ruby (OBSOLETO) | SDK Ruby | Ejemplos | Readme | rubygems |
| Go | SDK Go | Ejemplos | Readme | Github |
| C++ | SDK C++ | Readme |
| Funcionalidad | Rust | Java | PHP | TypeScript | .NET | Python | Ruby (OBSOLETO) | Golang | C++ |
|---|
| Usar API HTTP | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ | ✅ |
| Verificar SHA256 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Verificar Archivo | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Verificar URL | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| Verificar Flujo | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |