Seminarbeschreibung
CodeQL stellt Quellcode in einer abfragbaren Analysedatenbank bereit. Das Seminar vermittelt die dafür notwendigen Arbeitsschritte und führt schrittweise an die Abfragesprache QL heran. Die Arbeit mit vorhandenen Prüfungen und das Entwickeln kleiner eigener Abfragen werden miteinander verbunden, damit Ergebnisse sowohl genutzt als auch fachlich hinterfragt werden können.
Eine gemeinsame Beispielsprache sorgt für einen zusammenhängenden Lernweg. Aus einer einfachen Suche im Programmmodell entsteht eine begrenzte Datenflussprüfung mit dokumentierten Annahmen. Der Kurs behandelt außerdem Datenbankaufbau, Extraktionsfehler, Ergebnisdarstellung und Regressionstests. Vollständige Modelle komplexer Frameworks oder die gleichzeitige Beherrschung mehrerer CodeQL-Sprachbibliotheken werden nicht vorausgesetzt.
Lernziele
- Eine CodeQL-Analyseumgebung vorbereiten und Datenbanken nachvollziehbar erzeugen.
- Vorhandene Query Suites ausführen und Ergebnisse am Code prüfen.
- Grundlegende QL-Abfragen und begrenzte Datenflussprüfungen entwickeln.
- Eigene Queries testen und die Analyse für wiederholte Ausführung vorbereiten.
Seminarinhalte
- CodeQL-Workflow und Umgebung
- Analysedatenbank und vorhandene Prüfungen
- Grundlagen der Abfragesprache QL
- Datenfluss und Taint-Tracking
- Query-Qualität und Regressionstests
- Analysepaket und automatisierte Ausführung
CodeQL-Workflow und Umgebung
Werkzeuge, Bibliotheken und Beispieldaten werden zu einer reproduzierbaren Umgebung zusammengeführt. Der Unterschied zwischen Quellprojekt, Analysedatenbank und Ergebnisdatei wird praktisch nachvollzogen.
- CLI, Editorintegration und Query Packs einordnen.
- Unterstützte Sprache und geeignete Übungsprojekte auswählen.
- Nutzungsberechtigung und erforderliche Ressourcen vorab klären.
Analysedatenbank und vorhandene Prüfungen
Die Datenbank wird für einen definierten Projektstand erzeugt und geprüft. Danach werden vorhandene Prüfungen ausgeführt und deren Ergebnisse mit der tatsächlichen Quellcodebasis abgeglichen.
- Sprachabhängigen Extraktions- und Build-Prozess verstehen.
- Build- oder Extraktionsfehler und fehlenden Analyseumfang erkennen.
- Query Suites ausführen und SARIF-Ergebnisse zuordnen.
Grundlagen der Abfragesprache QL
Kleine Abfragen erschließen das Programmmodell schrittweise. Das Verständnis der Abfrageergebnisse steht vor möglichst komplexen Konstruktionen.
- Typen, Klassen, Prädikate und Beziehungen verwenden.
- Aufrufe, Argumente und relevante Programmelemente suchen.
- Treffermenge durch verständliche Bedingungen eingrenzen.
Datenfluss und Taint-Tracking
Eine Sicherheitsfrage wird in Quellen, Senken und zulässige Flüsse übersetzt. Die jeweilige Sprachbibliothek wird so eingesetzt, dass Analyseannahmen und verbleibende Grenzen sichtbar bleiben.
- Lokale und weiterreichende Datenflussbetrachtung unterscheiden.
- Quellen, Senken und Barrieren mit konkreter Semantik festlegen.
- Pfade nachvollziehen und unzutreffende Modellannahmen korrigieren.
Query-Qualität und Regressionstests
Eigene Prüfungen werden gegen kleine Beispielprogramme getestet. Damit lässt sich untersuchen, ob eine Verfeinerung einen Fehlalarm entfernt oder gleichzeitig echte Fehler verdeckt.
- Positive und negative Testfälle aus Befunden ableiten.
- Abfragen mit Query-Tests absichern.
- Meldung, Fundstelle und Pfaddarstellung nachvollziehbar gestalten.
Analysepaket und automatisierte Ausführung
Die erarbeitete Analyse wird für einen wiederkehrenden Projektlauf vorbereitet. Der praktische Schwerpunkt liegt auf eindeutiger Versionierung und brauchbaren Ergebnissen für das Entwicklungsteam.
- Query Packs und Abhängigkeiten nachvollziehbar festlegen.
- Berichte einem Commit und einer Analysekonfiguration zuordnen.
- Automatisierten Lauf und zulässige Ergebnisbereitstellung vorbereiten.
Praktische Übungen
- Eine Datenbank aus einem vorbereiteten Python-Projekt erzeugen.
- Eine vorhandene Prüfung ausführen und einen Befund am Code nachvollziehen.
- Eine eigene QL-Abfrage entwickeln und zu einer begrenzten Datenflussprüfung erweitern.
- Zulässige und fehlerhafte Implementierungen als Testfälle ergänzen.
- Die Prüfung reproduzierbar ausführen und einen SARIF-Bericht erstellen.
Zielgruppe
Erfahrene Entwickler, Application-Security-Engineers, Security Champions und Verantwortliche für vertiefte statische Codeanalyse.
Voraussetzungen
Sichere Programmierkenntnisse, Git- und Kommandozeilenpraxis sowie Verständnis von Funktionen, Typen und Datenflüssen. Grundlagen von SAST; eigene CodeQL-Kenntnisse sind nicht erforderlich.
Schulungsumgebung
Vorbereitete Linux-VM mit CodeQL CLI, Editorintegration, Query Packs und ausreichend Arbeitsspeicher. Standardmäßig wird Python verwendet. Die CodeQL-Nutzungsbedingungen und die Berechtigung für die vorgesehenen Repositories müssen zur Schulungsumgebung passen; private Unternehmensprojekte werden nur mit geeigneter Berechtigung verwendet.
Weiterführende Seminare
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 3 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
|---|---|
| Preis: |
Öffentlich oder Live Stream: € 1.797 zzgl. MwSt. Inhaus: € 5.100 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Erfahrene Entwickler, Application-Security-Engineers, Security Champions und Verantwortliche für vertiefte statische Codeanalyse. |
| Voraussetzungen: | Sichere Programmierkenntnisse, Git- und Kommandozeilenpraxis sowie Verständnis von Funktionen, Typen und Datenflüssen. Grundlagen von SAST; eigene CodeQL-Kenntnisse sind nicht erforderlich. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
