This document discusses using static application security testing (SAST) tools for TYPO3 extensions. It begins with an introduction of the speaker and an overview of SAST basics and context. Several SAST tools are then evaluated using a demo TYPO3 application, finding that PsalmPHP is most suitable due to its support for PHP features. Next, how PsalmPHP can be used for TYPO3 is explained through stubs, annotations, and a demo runner. Finally, future steps are outlined to improve support for additional TYPO3 components and integrate SAST into the extension review process.
2. TYPO3camp RheinRuhr 2021 - SAST für TYPO3 Extensions - oliver.hader@typo3.org 2
▪Research & Development
▪TYPO3 Security Team Lead
▪50% TYPO3 GmbH / 50% Freelancer
▪#hof #cycling #paramedic #in.die.musik
~# whoami
Oliver Hader
@ohader
3. TYPO3camp RheinRuhr 2021 - SAST für TYPO3 Extensions - oliver.hader@typo3.org 3
▪Statische Code Analyse #basics
▪Orientierung im Security Bereich #context
▪Verwendung für TYPO3 #nähkästchen
▪MüssteMalJemand™ #zukunft
Agenda
4. TYPO3camp RheinRuhr 2021 - SAST für TYPO3 Extensions - oliver.hader@typo3.org 4
▪ Bitte, bitte, bitte: Security
Schwachstellen nicht öffentlich
einstellen/diskutieren
▪ nicht auf GitHub/Forge
▪ nicht in Slack Channels
▪ nicht auf Twitter, Twitch, ...
▪ Meldung an security@typo3.org
▪ Security Team unterstützt Community
Trigger Warning
⚠︎
7. Abstract Syntax Tree (AST)
▪ Abstract Syntax Tree (AST)
▪ Composer Package
nikic/php-parser
7
TYPO3camp RheinRuhr 2021 - SAST für TYPO3 Extensions - oliver.hader@typo3.org
8. Abstract Syntax Tree (AST)
▪ Abstract Syntax Tree (AST)
▪ Composer Package
nikic/php-parser
8
TYPO3camp RheinRuhr 2021 - SAST für TYPO3 Extensions - oliver.hader@typo3.org
9. Statische Code Analyse in PHP
▪ basierend auf
Abstract Syntax Tree (AST)
▪ Extension Scanner in TYPO3
▪ PhpStan - Core CI Builds
▪ Rector - TYPO3 Code Upgrade
▪ Psalm - Security Taint Graph
9
TYPO3camp RheinRuhr 2021 - SAST für TYPO3 Extensions - oliver.hader@typo3.org
10. TYPO3camp RheinRuhr 2021 - SAST für TYPO3 Extensions - oliver.hader@typo3.org
#context
Orientierung im
Security Bereich
10
11. Ebenenmodell zur Sicherheitskonzeption (BSI)
11
TYPO3camp RheinRuhr 2021 - SAST für TYPO3 Extensions - oliver.hader@typo3.org
https://www.bsi.bund.de/DE/Themen/Unternehmen-und-Organisationen/Informationen-und-Empfehlungen/Empfehlungen-nach-Angriffszielen/Webanwendungen/webanwendungen_node.html
Auf Grundlage eines Ebenenmodells lassen sich die Zuständigkeiten der relevanten
Organisationsbereiche den einzelnen Teilaufgaben bei Sicherheitskonzeption und
Realisierung von Webanwendungen zuordnen. Ausgangspunkt ist eine Unterteilung
in 5 Ebenen:
Abbildung 1: Ebenenmodell
Ebene Inhalt (Beispiele)
5 Semantik Schutz vor Täuschung und Betrug
- Informationen ermöglichen Social Engineering-Angriffe
- Gebrauch von Popups u.ä. erleichtern Phishing-Angriffe
- Keine Absicherung für den Fall der Fälschung der Web
site
4 Logik Absicherung von Prozessen und Workflows als Ganzes
- Verwendung unsicherer Email in einem ansonsten gesi
cherten Workflow
- Angreifbarkeit des Passworts durch nachlässig gestaltete
"Passwort vergessen"-Funktion
- Die Verwendung sicherer Passworte wird nicht erzwun
gen
3 Implementie
rung
Vermeiden von Programmierfehlern, die zu Schwachstellen
führen
- Cross-Site Scripting
- SQL-Injection
- Session Riding
2 Technologie Richtige Wahl und sicherer Einsatz von Technologie
- unverschlüsselte Übertragung sensitiver Daten
- Authentisierungsverfahren, die nicht dem Schutzbedarf
angemessen sind
- Ungenügende Randomness von Token
1 System Absicherung der auf der Systemplattform eingesetzten
Software
- Fehler in der Konfiguration des Webservers
- "Known Vulnerabilities" in den eingesetzten Software
produkten
- Mangelnder Zugriffsschutz in der Datenbank
0 Netzwerk &
Host
Absicherung von Host und Netzwerk
Sicherheit von Webanwendungen
Maßnahmenkatalog und Best Practices
Im Auftrag des
Bundesamtes für Sicherheit
in der Informationstechnik
erstellt von:
Version 1, August 2006
SAST
#bugs
#infrastructure
#workflows
#phishing
#SocialEngineering