Le Mainframe, objet souvent mystérieux parfois qualifié de « relique » est entouré d'une aura toute particulière. Technologie des années 60, mais néanmoins massivement utilisée de nos jours par des banques, assurances ou encore des compagnies aériennes, sa sécurité reste moins publiquement discutée que d'autres systèmes tels qu'Un*x ou Windows. Étant un point critique du SI, un audit intrusif est primordial. Quelle démarche suivre lorsque l’on est confronté à ce type de système ? Quels outils utiliser ? Et surtout, quels réflexes adopter ?
Après quelques rappels de base sur le fonctionnement d'un mainframe série Z, une approche d'audit intrusif en mode boite noire puis boite grise sera exposée dans le présent article.
L’article ne se veut pas exhaustif en termes de techniques d’attaques et d’outils, mais a pour objectif de démystifier les tests d’intrusion sur Mainframe en consolidant différents retours d’expérience d’audits ainsi qu’en mettant en avant certaines mauvaises pratiques souvent rencontrées.
1. Quelques bases du Mainframe
1.1 Spécifications techniques
Un mainframe est avant tout une machine, une architecture matérielle répondant à un besoin croissant de performance et de stabilité. À cet effet, la série Z a été commercialisée par IBM dans le début des années 2000 et présente depuis, des modèles de plus en plus performants. À titre d’exemple, le modèle NC9 IBM z13 (2964) [1] dispose des caractéristiques suivantes :
- 129 processeurs à usage...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première
[1] IBM Z13 Datasheet, ZSD03035-USEN-01, 2015
[3] https://wiki.wireshark.org/TN3270
[4] http://www.stuhenderson.com/XMVSTRND.HTM
[6] IBM Redbook “Introduction to the New Mainframe - z/OS Basics”, 2011
[7] https://nmap.org/download.html
[8] http://bitsavers.trailing-edge.com/pdf/ibm/sna/vtam/GC27-6987-5_Introduction_to_VTAM_Apr76.pdf
[9] https://github.com/mainframed/NMAP/blob/master/3270_screen_grab.nse
[10] https://pypi.python.org/pypi/py3270/0.2.0
[11] https://github.com/sensepost/mainframe_brute
[12] https://github.com/mainframed/psikotik/blob/master/psikotik.py
[13] https://ettercap.github.io/ettercap/
[14] z/OS V1R13.0 Cryptographic Services System SSL Programming (SC24-5901-11)
[15] https://github.com/zedsec390/defcon23/tree/master/Network%20Tools/SETn3270
[16] https://github.com/mainframed/MainTP
[17] https://github.com/sensepost/birp
[18] https://wlstorage.net/file/anakata/1_bilaga_a_ENGLISH.pdf
[19] https://github.com/mainframed/logica/blob/master/kuku.rx
[20] http://mainframed767.tumblr.com/post/43487158079/the-ibm-zos-racf-des-hashing-algorithm
[20] http://www.racfsnow.co.uk/
[21] https://github.com/stricture/hashstack-agent-plugin-jtr-opencl/blob/master/src/racf2john.c
IBM Security Server RACF - Security Administrator's Guide