Ansichten:

Eine API-Referenz für das Go SDK für Trend Vision One Dateisicherheit

Neue Instanz erstellen

Erstellen Sie eine neue Instanz des Client-Objekts und richten Sie die wesentlichen Einstellungen ein, einschließlich Authentifizierungs-/Autorisierungsanmeldedaten (API-Schlüssel) und bevorzugter Serviceregion.
func NewClient(key string, region string) (c *AmaasClient, e error)

Parameter

Parameter
Beschreibung
Schlüssel (Zeichenkette)
Ein gültiger API-Schlüssel muss bereitgestellt werden, wenn die Umgebungsvariable TM_AM_AUTH_KEY nicht gesetzt ist.
Region
Die Region, in der Sie Ihren API-Schlüssel erhalten haben. Der angegebene Wert muss einer der Vision One-Regionen sein:
  • ap-northeast-1
  • ap-south-1
  • ap-southeast-1
  • ap-southeast-2
  • eu-central-1
  • us-east-1

Rückgabewerte

Parameter Beschreibung
c (*AmaasClient)
Zeiger auf ein Client-Objekt. Nil, wenn ein Fehler aufgetreten ist
e (Fehler)
Nil, wenn kein Fehler aufgetreten ist; andernfalls nicht nil.
Fehlerbedingungen
  • Ungültige Authentifizierung
  • Ungültige Region

Inhalt wird übermittelt

Übermitteln Sie den Inhalt einer Datei oder eines Puffers zur Überprüfung.
func (ac *AmaasClient) ScanFile(filePath string, tags []string) (resp string, e error)
func (ac *AmaasClient) ScanBuffer(buffer []byte, identifier string, tags []string) (resp string, e error)

Parameter

Parameter
Beschreibung
Dateipfad (Zeichenfolge)
Dateipfad zum DURCHSUCHEN
Puffer ([]Byte)
Puffer mit den zu DURCHSUCHENDEN Daten
Bezeichner (Zeichenkette)
Eine vom Anrufer gewählte Zeichenfolge, die mit dem DURCHSUCHEN verknüpft wird und in der JSON-Antwort als Teil des fileName-Namens/Werts zurückgegeben wird; kann leer sein
Tags ([]string)
Tags, die für die DURCHSUCHUNG verwendet werden sollen. Die maximale Anzahl an Tags, die Sie verwenden können, ist 8, und die Länge jedes Tags darf 63 Zeichen nicht überschreiten.

Rückgabewerte

Parameter
Beschreibung
resp (Zeichenkette)
JSON-formatierte Antwort, die das Ergebnis des DURCHSUCHENs beschreibt.
e (Fehler)
Nil, wenn kein Fehler aufgetreten ist; andernfalls nicht nil.
Beispiel-JSON-Antwort
{
  "scannerVersion":"1.0.0-27",
  "schemaVersion":"1.0.0",
  "scanResult": 1,
  "scanId": "25072030425f4f4d68953177d0628d0b",
  "scanTimestamp": "2022-11-02T00:55:31Z",
  "fileName": "EICAR_TEST_FILE-1.exe",
  "filePath": "AmspBvtTestSamples/BVT_RightClickScan_DS/unclean/EICAR_TEST_FILE-1.exe",
  "foundMalwares": [
    {
      "fileName": "Eicar.exe",
      "malwareName": "Eicar_test_file"
    }
  ],
  "fileSHA1":"fc7042d1d8bbe655ab950355f86a81ded9ee4903",
  "fileSHA256":"1b9f8773919a1770fec35e2988650fde3adaae81a3ac2ad77b67cafd013afcdc"
}
Wenn bösartiger Inhalt im gescannten Objekt erkannt wird, zeigt scanResult einen Wert ungleich null an. Andernfalls wird der Wert 0 sein. Außerdem, wenn Malware erkannt wird, wird foundMalwares nicht leer sein und ein oder mehrere Name/Wert-Paare von fileName und malwareName enthalten. fileName wird der Dateiname der erkannten Malware sein, während malwareName der Name des gefundenen Virus/Malware sein wird.
Fehlerbedingungen
  • Ungültige Authentifizierung
  • Ungültiger Pfad angegeben
  • Anfrage zeitüberschreitung (Frist überschritten)
  • Inkompatibler Client verwendet
  • Dienst nicht erreichbar
  • Client ist nicht bereit für den Betrieb

Freigeben interner Ressourcen, die vom Client verwendet werden

Interne Ressourcen freigeben, die vom Client verwendet werden. Dies sollte nur aufgerufen werden, nachdem der Scan abgeschlossen ist und das Client-Objekt nicht mehr benötigt wird.
func (ac *AmaasClient) Destroy()

Konfigurieren der Protokollierungsebene

Sie können die aktive Protokollierungsebene des SDK konfigurieren. Die Änderung wird global auf alle Client-Instanzen angewendet. Die Standardebene ist LogLevelOff, was bedeutet, dass alle Protokollierungen deaktiviert sind. Wenn die Protokollierung aktiviert ist, werden, sofern keine benutzerdefinierte Protokollierung mit ConfigLoggingCallback() konfiguriert ist, Protokolle an stdout geschrieben.

Parameter

Parameter
Beschreibung
Ebene (LogLevel)
Gültige Werte sind
  • LogLevelOff
  • LogLevelFatal
  • LogLevelError
  • LogLevelWarning
  • LogLevelInfo
  • LogLevelDebug
. Das Standardniveau ist LogLevelOff.

Einrichten der benutzerdefinierten Protokollierung

Sie können ein benutzerdefiniertes Logging einrichten, indem Sie das SDK mit einer benutzerdefinierten Callback-Funktion bereitstellen, die aufgerufen wird, wenn das SDK ein Protokoll aufzeichnen möchte.
func ConfigLoggingCallback(f func(level LogLevel, levelStr string, format string, a ...interface{}))

Parameter

Parameter
Beschreibung
f (Funktion)
Eine Funktion mit dem Prototyp
func(level LogLevel, levelStr string, format string, a
    ...interface{})

Thread-Sicherheit

ScanFile() oder ScanBuffer() sind so konzipiert, dass sie threadsicher sind. Sie sollten in der Lage sein, ScanFile() gleichzeitig von mehreren Threads aus aufzurufen, ohne ScanFile() mit einem Mutex oder anderen Synchronisationsmechanismen zu schützen.
Die Destroy()-Methode ist NICHT threadsicher, daher sollte sie nur nach Abschluss aller Durchsuchungsroutinen aufgerufen werden.