Selon le Data Breach Investigations Report de Verizon, plus de 50 % des intrusions qui ont eu lieu en 2021 ont pour origine une fuite d’identifiants de sécurité. Même en appliquant les meilleures recommandations de sécurité, un accès SSH sera toujours un risque de sécurité pour une infrastructure. Cet article entend démontrer pourquoi les contrôles d’accès par défaut de Linux ne sont pas suffisants pour mettre en place un accès SSH granulaire. EBPF sera exploré comme une potentielle solution pour surveiller et protéger un accès SSH.
1. Qu’est-ce qu’un accès SSH ?
Secure Shell (SSH) [1] est un protocole réseau permettant à un utilisateur de se connecter de façon sécurisée à une infrastructure à travers un réseau non sécurisé. Dans une entreprise, de nombreux acteurs ont habituellement besoin d’un accès SSH :
- les développeurs utilisent SSH pour déboguer leurs services dans les environnements de test, et parfois de production ;
- les équipes d’ingénierie de la fiabilité des sites (« Site Reliability Engineering » ou SRE dans la suite de l’article) et les administrateurs système utilisent leurs accès SSH pour effectuer des opérations de maintenance ou de configuration système ;
- les administrateurs de sécurité ont généralement besoin d’un accès SSH pour leurs investigations de sécurité ou pour une réponse à incident.
En théorie, le principe de moindre privilège doit être appliqué. Ce principe dit que chaque acteur doit avoir le plus petit accès...
- 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] IETF, « SSH protocol architecture », https://tools.ietf.org/html/rfc4251
[2] IOVisor, « Summarize ext4 operation latency distribution as a histogram », https://github.com/iovisor/bcc/blob/master/tools/ext4dist.py
[3] Marlon Dutra, « Scalable and secure access with SSH », https://engineering.fb.com/2016/09/12/security/scalable-and-secure-access-with-ssh
[4] Ubuntu, « Configure SSH to use two-factor authentication »,
https://ubuntu.com/tutorials/configure-ssh-2fa
[5] Brian Barrett, « How Twitter CEO Jack Dorsey’s Account Was Hacked »,
https://www.wired.com/story/jack-dorsey-twitter-hacked
[6] MITRE, « Sim card swap », https://attack.mitre.org/versions/v10/techniques/T1451/
[7] Federal Bureau of Investigation, « Criminals Increasing SIM Swap Schemes to Steal Millions of Dollars from US Public », https://www.ic3.gov/Media/Y2022/PSA220208
[8] Victor Lomne et Thomas Roche, « A side journey to Titan »,
https://ninjalab.io/wp-content/uploads/2021/01/a_side_journey_to_titan.pdf
[9] Andy Greenberg, « Chrome lets hackers phish even Unphishable Yubikey users », https://www.wired.com/story/chrome-yubikey-phishing-webusb
[10] Davey Winder, « GoDaddy Confirms Data Breach: What Customers Need To Know », https://www.forbes.com/sites/daveywinder/2020/05/05/godaddyconfirms-data-breach-what-19-million-customers-need-to-know
[11] Linux, « Kernel capabilities man pages », https://man7.org/linux/man-pages/man7/capabilities.7.html
[12] Jake Edge, « Calibre and setuid », https://lwn.net/Articles/465311
[13] Chef, « Secure Infrastructure Management Automation Tools »,
https://www.chef.io/products/chef-infrastructure-management
[14] Red Hat Software, « Ansible IT automation », https://github.com/ansible/ansible
[15] Guillaume Fournier, code source de « ssh-probe », https://github.com/Gui774ume/ssh-probe
[16] OpenSSH, https://www.openssh.com
[17] Jonathan Corbet, « BPF: the universal in-kernel virtual machine », https://lwn.net/Articles/599755
[18] Lorenzo Fontana, David Calavera, « Linux Observability with BPF », O'Reilly Media, novembre 2019
[19] Linux, « Kprobe documentation », https://www.kernel.org/doc/Documentation/kprobes.txt
[20] Linux, « Tracepoint documentation », https://www.kernel.org/doc/html/latest/trace/tracepoints.html
[21] Jonathan Corbet, « BPF-based error injection for the kernel », https://lwn.net/Articles/740146
[22] Linux, « eBPF helpers documentation », https://man7.org/linux/man-pages/man7/bpf-helpers.7.html
[23] KP Singh, « Kernel Runtime Security Instrumentation », https://lwn.net/Articles/798918