Secure Software Testing – Erkennung von Schwachstellen in komplexen Softwareprogrammen – Hands-on

Zurück

Zielsetzung

Die Trainingsteilnehmer erlernen in Hands-on-Übungen, wie man die Schwachstellen mit hochkritischen Auswirkungen (high-impact vulnerabilities) und die am stärksten betroffenen Komponenten in komplexen Multi-Komponenten-C / C ++ -Programmen findet.

Das Training geht auf folgende Aspekte ein:

  • Metrics for Testing – Wie man den Erfolg von Testmethoden messen kann.
  • Formal Verification – Wie man implementierte Algorithmen validieren kann.
  • Static Analysis – Erkennen unsicherer Konstrukte ohne Ausführung des Programms.
  • Symbolic Execution – Eine automatisierte Technik, um Beschränkungen auf Programmpfaden zu sammeln und zu lösen
  • Random Testing and Fuzzing – Testen mit spezifischen Heuristiken zur Entdeckung neuem Programmverhaltens
  • Compositional Analysis – Berücksichtigung von Komponenteninteraktionen im Bottom-up-Modus
  • Severity Assessment – Priorisierung von erkannten Schwachstellen

Anmelden

Hintergrundinformationen

Sicherheitsschwachstellen in komplexen Softwareprogrammen mit vielen Komponenten können oft auf Fehler bei der Konzeption der Schnittstellen zurückgeführt werden: Wenn Komponenten unter unterschiedliche Voraussetzungen und Rahmenbedingungen – in derselben oder in unterschiedlichen Organisationen – entwickelt werden, stimmen die jeweils getroffenen Annahmen häufig nicht überein.

Dies kann zur ungewollten Schaffung von Angriffsmöglichkeiten wie z. B. Buffer Overflows führen.

Die Ausnutzung einer Kombination dieser anscheinend trivialen Low-Level-Schwachstellen gibt Angreifern die Gelegenheit, Sicherheitslücken mit hohem Schadenspotenzial zu finden.

Zielgruppe

Das Training richtet sich an Software-Entwickler, -Architekten und -Tester, Auditoren.

Inhalte

Day 1

  • Metrics for automated and manual testing – A quick look at landmark publications in software testing, with special focus on metrics.
  • Basics of formal verification – Theoretical background.
  • Hands-on formal verification – Automated theorem proving with CVC3, model checking with CBMC.
  • Introduction to static analyzers
  • Helper techniques – Dataflow analysis, abstract syntax trees, static code analysis.
  • Hands-on – Libclang and optllvm for statically analyzing C code.

Day 2

  • Improving static analysis with symbolic variables – Introduction to a semi-dynamic technique.
  • Practical symbolic execution – Implementation of symbolic execution engines using concrete system interactions and concrete seed inputs.
  • Hands-on – KLEE, a symbolic virtual machine for C programs.
  • Where symbolic execution fails – Dealing with path-explosion using compositional symbolic execution.
  • Hands-on – MACKE, a compositional analyzer for C programs

Day 3

  • Introduction to random testing
  • Blackbox fuzzing as advanced random testing
  • Hands-on – Fuzzing C programs with AFL.
  • Combining symbolic execution and fuzzing
  • Hands-on –  Driller (fuzzing+symbolic execution)
  • Recapping symbolic execution, fuzzing and hybrid techniques

Day 4

  • False-positive or not? – State-of-the-art in vulnerability severity analysis
  • Using what we have learnt – Using compositional symbolic execution and fuzzing to guide prioritization.
  • Hands-on – Interactive severity analysis of MACKE results
  • Increasing productivity – Discussion on improving severity analysis based on past experiences.
  • Conclusion

Voraussetzungen

Programmierkenntnisse auf fortgeschrittenen bis Expertenlevel werden vorausgesetzt sowie Kenntnisse der Speicherbehandlung in C / C ++.

Referenten

Saahil Ognawala

Saahil Ognawala, MsC Computer Science, ist wissenschaftlicher Mitarbeiter am Lehrstuhl für Software Engineering der Technischen Universität München (TUM).
Seine Forschungs-Fachgebiete sind Software-Testautomatisierung, Entwicklungstests, Symbolic Execution, stochastische Methoden von Blackbox-Tests und Hybrid-Techniken auf der Grundlage von Entwicklungsheuristiken.

Termine

Veranstaltungshinweise

Das Training wird in englischer Sprache durchgeführt. Die Teilnehmer haben die Möglichkeit, ihr eigenes Notebook in den Hands-on-Sessions zu nutzen, um somit auf vertrauter Desktopumgebung zu arbeiten. Auf Wunsch werden den Teilnehmern auch Arbeitsplätze zur Verfügung gestellt. Im Training werden Software-Tools genutzt, die aus dem Internet heruntergeladen werden können.

Preis

2.390,- Euro zzgl. MwSt.

Im Preis enthalten sind Trainingsunterlagen, Pausengetränke und Mittagessen.

Ähnliche Trainings

Copyright ESG Elektroniksystem- und Logistik-GmbH 2018. All rights reserved.