Verdict-as-a-Service

Verdict-as-a-Service Logo Online Dokumentation

Testen von Verdict-as-a-Service On-Premise

Bevor Sie die folgende Anleitung durchgehen, noch eine Anmerkung vorab:

Wir haben Ihnen an manchen Stellen die notwendigen Befehle für den einfachen Aufbau einer Testumgebung direkt in diese Anleitung geschrieben. Dies erspart Ihnen gegebenenfalls das Suchen im Internet. Dieses Vorgehen haben wir mit aller gebotenen Sorgfalt im Juni 2024 getestet.

Dennoch können wir keine Gewähr bei der Installation der Software Dritter leisten (Docker, Helm, Minikube).
Sie finden in unserer Anleitung immer die Quellenangaben. Überprüfen Sie im Zweifelsfall die Richtigkeit und Aktualität der Angaben.

Mit der folgenden Anleitung ist es möglich den Einsatz Verdict-as-a-Service vor Ort zu testen:

I. Zugangsdaten erhalten
II. Testumgebung vorbereiten

1. Das vorbereitete System:

Als Grundlage haben wir für den Test eine virtualisierte Maschine (VMware) wie folgt herangezogen (diese Bedingungen setzen wir in der weiteren Anleitung voraus):

  • Ubuntu Jammy 22.04 (LTS)

    • 64 bit

    • 8 CPU(s),

    • Arbeitsspeicher 8 GB

    • Festplatte 50 GB

    • Wichtig: Hardwareunterstützung muss aktiviert sein!
      VM_Hardwareunterstuetzng an

    • Gnome / GDM3 mit installiertem Firefox Browser und nano Textbearbeitung

    • Ein IDE (in dieser Anleitung verwenden wir die IntelliJ IDEA Community Edition)

    • Java 17 und Gradle.

2. helm installieren

  • Installieren Sie helm mit den folgenden Befehlen:

curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm

3. Docker Engine installieren und in einem nicht privilegierten User-Kontext laufen lassen

  • Installieren Sie die Docker Engine:
    Die notwendigen Terminal-Befehle finden Sie in dieser Anleitung
    Install using the apt repository 1. bis 3.

  • Konfigurieren Sie Docker so, dass er nicht mit ROOT-Rechten laufen muss:

    • Legen Sie mit dem folgenden Befehl eine Benutzergruppe mit dem Namen docker an:

sudo groupadd docker
  • Fügen Sie Ihren nicht privilegierten User mit folgendem Befehl der Gruppe docker hinzu:

sudo usermod -aG docker $USER
  • Um einen Reboot zu vermeiden, besteht die Möglichkeit diesen Befehl auszuführen, um die vorgenommenen Änderungen an den Gruppen zu aktivieren:

newgrp docker
  • Danach sollte Docker ohne Root-Rechte ansprechbar sein. Testen Sie dies mit folgendem Aufruf:

docker run hello-world

4. Minikube installieren

Minikube ist für einen Testlauf in einer einzelnen virtuellen Maschine ausreichend. Für den Produktiveinsatz wird ein vollständiger Kubernetes Cluster benötigt.
  • Die VT-x- oder AMD-v-Virtualisierung muss im BIOS Ihres Computers aktiviert sein (siehe oben: 1. Das vorbereitete System: Hardwareunterstützung).
    Um dies unter Linux zu überprüfen, führen Sie den folgenden Befehl aus und vergewissern Sie sich, dass die Ausgabe nicht leer ist:

egrep --color 'vmx|svm' /proc/cpuinfo
  • Für die Installation laden Sie eine statische Binärdatei herunter und machen Sie diese ausführbar:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \ && chmod +x minikube
  • Fügen Sie die Minikube-Programmdatei Ihrem Pfad hinzu:

sudo cp minikube /usr/local/bin && rm minikube
  • Starten Sie Minikube mit dem folgenden Aufruf:

minikube start --driver=docker --cpus="6" --memory="6g" --addons ingress
  • Fragen Sie die IP ab:

minikube ip
  • Tragen Sie die IP wie auf dem Screenshot zu sehen in die Datei /etc/hosts ein.

Eintrag in /etc/hosts

Wir haben das Ändern der hosts-Datei mit dem nano Editor vorgenommen:

sudo nano /etc/hosts
III. Umgebungsparameter festlegen und Verdict-as-a-Service installieren

Erstellen Sie die Datei values.yaml und kopieren Sie den folgenden Inhalt hinein:

Für den Zugriff auf die VaaS-Docker-Container muss das imagePullSecret in der Variable global.secret.dockerconfigjson gesetzt werden.
global:
  imagePullSecrets:
    - registry
  secret:
    dockerconfigjson: "BASE64_ENCODED_JSON_CONTAINING_DOCKER_AUTH_CONFIG"

mini-identity-provider:
  issuer: "http://vaas/auth"
  ingress:
    className: ""
    hosts:
    - host: vaas
      paths:
      - path: /auth(/|$)(.*)
        pathType: ImplementationSpecific
        service:
          name: provider
          port: 8080
    tls: []
gateway:
  ingress:
    className: ""
    hosts:
      - host: vaas
        paths:
          - path: /ws
            pathType: ImplementationSpecific
            service:
              name: gateway
              port: 9090
      - host: vaas
        paths:
          - path: /
            pathType: ImplementationSpecific
            service:
              name: gateway
              port: 8080
    tls: []
  uploadUrl: "http://vaas/upload"
  • Installieren Sie Verdict-as-a-Service:

helm install vaas oci://ghcr.io/gdatasoftwareag/charts/vaas -f values.yaml -n vaas --create-namespace
  • Rufen Sie das Minikube Dashboard auf, wählen Sie namespace vaas aus dem Pulldown-Menü und kontrollieren Sie, ob alles grün angezeigt wird:

minikube dashboard
Screenshot anzeigen
dasboard Minikube
IV. Verdict-as-a-Service On-Premises testen
  • Für den Test benötigen Sie eine CLIENT_ID und Ihr persönliches CLIENT_SECRET.

    • Für die CLIENT_ID verwenden Sie den Wert vaas.

  • Durch Aufruf des folgenden Befehls können Sie sich Ihr CLIENT_SECRET aus dem von uns erhaltenen imagePullSecret anzeigen lassen:

kubectl get secret -n vaas vaas-client-secret -o jsonpath="{.data.secret}" | base64 -d
sudo snap install intellij-idea-community --classic
  • Klonen Sie von Github das VaaS Repository mit folgendem Link:

https://github.com/GDATASoftwareAG/vaas.git
Screenshot anzeigen
{Klonen des Repositorys
  • Öffnen Sie den Ordner (File→Open)

C:\vaas\java\examples\VaasExample
Screenshot anzeigen
{Öffnen des Beispiels
  • Öffnen Sie im linken Objektbaum die Datei build.gradle. Hier finden Sie einen Codeabschnitt für das Testen der Verdict-as-a-Service Dateiprüfung.

Öffnen der Datei build.gradle 95%
  • Für das Testen des Verdict-as-a-Service Datei-Scans müssen die Zugangsdaten (siehe oben) sowie Pfad und Name der zu testenden Datei hinterlegt werden.
    Öffnen Sie hierzu die Konfiguration der Umgebungsvariablen durch Klick auf das grüne Run-Symbol vor dem Codeabschnitt (Datei- oder URL-Scan) und wählen Sie Modify Run Configuration.

Screenshot anzeigen
Öffnen der Konfiguration
  • Fügen Sie folgende Umgebungsvariablen über das Listensymbol (siehe Screenshot) hinzu:

    • SCAN_PATH [Value = Pfad und Name der zu scannenden Datei].

    • CLIENT_ID [Value = vaas].

    • CLIENT_SECRET [Wird aus imagePullSecret extrahiert (siehe oben)

Screenshot anzeigen
Umgebungsvariable eingeben

Weitere vorgefertigte SDKs für verschiedene Programmiersprachen finden Sie auf GitHub.

Das Verdict wird Ihnen in diesem Beispiel als Bildschirmausgabe angezeigt.

Ergebnis des Datei-Scans 95%

Entwickler haben die Möglichkeit dieses Verdict in Ihrer Software nach eigenen Erfordernissen weiterzubearbeiten.

Weitere vorgefertigte SDKs für verschiedene Programmiersprachen finden Sie auf GitHub.

Bei Fragen wenden Sie sich gerne unverbindlich an unsere Experten.