Bonjour la liste.
Toujours un plaisir de lire assidûment vos nombreux et savoureux échanges. :-)
Aujourd’hui je me lance pour une question qui me taraude depuis pal mal de
temps à propos de la { possible | réelle } compromission d'architectures à base
de " firewalls virtuels "
Je lance donc une bouteille à la mer sur le sujet à tous les volontaires {
étudiants IT Sec | hard core hackers | pen testers | IT Sec Officers | RSSI |
net admin | sys admin | autres etc.... } de la liste afin d’avoir et partager
vos avis éclairés et retours d’expériences en prod, et bonnes pratiques sur le
sujet. :-)
1) Autrefois au temps jadis, en mode old school, on mettait un firewall
“physique” en coupure de réseau entre deux interfaces électroniques distinctes.
Mais ça s’était avant ...
2) depuis, "on" a inventé les firewalls « virtuels » et le « *SDN* / *SD
Everything* » est passé par là avec un détour par les nuages.
(Comme chacun sait, ca fuit, les nuages... mais aussi, un firmware (binaire
de bas niveau) ou une vm (binaire de haut niveau) c’est toujours un peu
“virtuel” ;-) )
3) la question qui me préoccupe ici c’est le mode hybride, dans un contexte
small/branch Office en LAB/TPE/PME/PMI/datacenter/... :
un ou plusieurs firewall (vm) qui tournent sur un hyperviseur du marché {
VMware | hyperV | KVM | XEN | oVIRT | ... }
- avec une patte de la vm fw bridgée cote Wan,
- et l’autre bridgée côté Lan, dmz, iot, wifi, ....
Dans cette configuration l’hyperviseur :
- opère et n’as pas d’IP sur la couche ISO/L2 côté WAN,
- et il a une ip d'administration côté interne.
WAN xdsl/cable/fibre <==> BOX FAI <==> Hypervisor_WAN_IF_bridge_noIP <==>
Hypervisor_CPU_RAM ( host n x VM_FW ) <==> Hypervisor_LAN_IP_admin <==> reste
du réseau interne
Exemple de config graphique ici, mais SANS IP coté WAN :
https://blog.zwindler.fr/wp-content/uploads/2017/07/proxmox-install_simple-infra-map.jpg
https://blog.zwindler.fr/wp-content/uploads/2017/07/proxmox-install_full-infra-diag.jpg
3.a) le point positif c’est qu’on peut se faciliter l’administration (snapshot,
souplesse etc ) et *densifier* le rendement/ratio puissance de calcul/coût au
watt dans ce mode de fonctionnement.
3.b) *SAUF QUE* : avant, en mode old school c’était les firewalls « physiques »
qui protégeaient l’infra, les hyperviseurs et le reste, et PAS l'inverse :
l'hyperviseur qui protège le FW !!!
3.c) ma crainte est donc :
- quelle confiance relative peut on raisonnablement accorder aux
architectures de firewall virtuelles ?
- *Jusqu'à quel point pouvons nous être sur ou pas* de la compromission
d'une machine hôte qui héberge des FW virtuels ?
- jusqu'à quel point nos hyperviseurs préférés sont-il "béton" ??
Nous savons tous que l’informatique n’est pas toujours une science "exacte"
et je m’attends à ce qu’un jour ou l’autre une attaque soit réussie contre un
hyperviseur côté WAN en couche 2 / bridge :
- via { DDOS | flooding | magic packet | os fingerprint | faille, bug, etc
... }
- et au détriment de la vm fw qui ne verra rien passer (par définition) de
ce qui se passe à l’étage en dessous sur la couche hôte !
3.d) D'après ce que j'ai pu comprendre également si j'en crois la description
officielle, et faute d'avoir mis les doigts jusqu'à présent dans des solutions
Fortinet, le mode VDOM de Fortinet ressemble peu ou prou à de la virtualisation
de Firewall ? => VRAI / FAUX ? jusqu'à quel point et à quel niveau, sur quel
périmètre ?
https://help.fortinet.com/fos50hlp/54/Content/FortiOS/fortigate-virtual-domains-54/1-VDOM-overview/1-Introduction.htm
3.e) je n’ai principalement pas/plus le temps, pour faire des pentests massifs
et approfondis sur le sujet, et suivre en veille permanente la sécurité IT
comme dans les temps anciens, d'où ma question ici présente pour partager les
avis et retours d'expérience
3.f) dans la bien nommée revue MISC MAG il me semble avoir vu passer, il y a
fort longtemps, des articles sur le crack d’un hyperviseur et la compromission
et l’évasion de données des vm et / ou rebond sur la couche hôte sans que les
vm n’y voient que du feu.
Est ce toujours vrai / possible ? étant donné que les éditeurs corrigent /
durcissent dans une lutte sans fin leur produits, et que sauf erreur de ma
part, nos hyperViseurs favoris ne sont pas développés en langage ADA ou avec
des techniques de programmation par preuve logicielle et mathématique, mais
plus par du patching au fil de l’eau et des découvertes de bug, failles etc. Me
trompe-je ?
3.g) faute de mieux et/ou d'outils et de suite firewall opensource disponible,
je n'ai pas encore trouvé le moyen ni le temps d'activer BHYVE de façon secure
et industrielle sur une distrib firewall comme PFSense ou OPNSense, Untanglle,
Endian, ...
https://forum.netgate.com/topic/105832/bhyve-package-100usd ==> au point
mort ?
https://www.ixsystems.com/community/threads/freenas-11-2-with-pfsense-as-guest-vm.72060/
https://davidnelson.me/?p=439
==> Cela me semblerait bien pratique cependant qu'un projet comme PFSense
intègre un paquet supplémentaire pour activer BHYVE en natif, un peu comme le
ferait un Windows avec Hyper-V intégré ... ou VDOM de Fortinet ? Au moins la
machine hote avec les binaires PFSense pourrait faire office de vrai firewall
pour les autres VM pfsense hébergées ... (I had a dream ...)
Par ailleurs PFSense / Netgate supporte un nouveau projet depuis plusieurs mois
de firewall Cloud à très haut débit : "TNSR"
https://www.netgate.com/blog/tnsr-release-19-05-is-here.html basé sur les
technos opensource dpdk.org et fd.io
La question est y a-t-il eu des hacks ou alertes de secu serieux sur ces
technos ? sont-elles concues en mode "Security-by-Design" ?
4) Du côté de la pratique :
4.a) avons nous qq part sur le continent numérique français ou globish des
guides de bonnes pratiques pour monter et exploiter de façons secure de tels
cas de figure de pare-feux virtualisés en bordure extérieure ? Ou des retours
d’expérience sur ce qu’il ne faut pas faire ? ANSSI ? Autre ?
Concernant l'ANSII, j'ai trouvé ceci :
https://www.ssi.gouv.fr/administration/bonnes-pratiques/
https://www.ssi.gouv.fr/uploads/2017/12/guide_cloisonnement_systeme_anssi_pg_040_v1.pdf
https://www.ssi.gouv.fr/administration/guide/definition-dune-architecture-de-passerelle-dinterconnexion-securisee/
https://www.ssi.gouv.fr/administration/guide/recommandations-pour-choisir-des-pare-feux-maitrises-dans-les-zones-exposees-a-internet/
https://www.ssi.gouv.fr/uploads/2015/03/NP_Guide_DDoS.pdf
https://www.ssi.gouv.fr/uploads/IMG/pdf/NP_Virtualisation_NoteTech_v1-1.pdf
"Enfin, il est généralement aisé de « remonter » un système invité
défaillant sur une autre machine physique à partir d’une image saine.
Néanmoins, seule la mise en œuvre du principe de défense en profondeur permet
de localiser précisément l’origine de la compromission (système invité,
systèmehôte, matériel, données, etc.). Risque 3 : Dans une architecture avec
virtualisation, les machines virtuelles peuvent par exemple communiquer sur des
réseaux physiques par le biais d’une carte unique appartenant à la machine
physique qui les héberge. Les flux de données de chaque machine virtuelle sont
donc traités par cette unique carte réseau. Dès lors, il n’est pas possible de
garantir un cloisonnement des flux au niveau de la ressource partagée. En cas
d’erreur ou de compromission de la carte réseau, un accès aux données des
différents flux d’information est possible (cf. figure 4)"
https://www.ssi.gouv.fr/uploads/2018/01/guide_preconisations-pare-feux-zone-exposee-internet_anssi_pa_044_v1.pdf
- cf page 20
- "Ainsi, les technologies de pare-feux virtualisés utilisées dans le cadre
des passerelles sécurisées avec Internet sont déconseillées."
- "Dans une passerelle Internet sécurisée, il est néanmoins possible
d’envisager de virtualiser plusieurs instances de filtrage réseau. En
particulier, dans le cas d’infrastructures complexes, l’utilisation d’instances
de filtrage distinctes virtualisées peut permettre de répartir des règles de
flux par besoins fonctionels pour en faciliter l’exploitation (lecture des
règles plus facile, gestion des règles par des équipes exploitantes
distinctes...). Mais dans ce cas, une attention particulière doit être apportée
au durcissement du socle matériel et logiciel."
- et on on évoque bien "la compromission du pare-feu virtualisé ou de
l’hyperviseur sous-jacent" ;
4.b) Que conseillez vous donc de votre côté *dans la vraie vie et en
production*, pour faire des tests bullet-proof en condition réelles et valider
une archi à base de firewall virtuels ? ==> Metasploit ? Parrot ?
https://cisofy.com/lynis ? Autre ?
4.c) Enfin, à votre avis, ou dans vos best practises :
- Quelles sont les hyperviseurs { ESXi | Proxmox | XEN | Hyper-V | ... }
que vous préconnisez pour la mise en place de pare-feu virtualisés ?
- Depuis combien de temps avez vous mis en place de type de solutions ?
- Quels sont les incidents les plus récurrents ?
- Combien d'attaques / compromissions détectées (?) par semaine, mois, etc
... ? sous quel délai sont-elles détectés si c'est le cas ? (un jour / semaine
/ mois plus tard ?)
- Comment se comporte la pile L2 d'un hyperviseur quand on le floode, DDOS,
etc .... et avant que le paquet ne soit transmis en RAM à la VM concernée ?
--- cela donne-t-il lieu à un exploit de l'hôte ?
--- cela donne-t-il accès à toutes les vm de l'hôte ?
--- quelles solutions de contres-mesures peut-on simplement mettre en place
? {avant | après} ?
- Quelles sont les best practices de sécu sur un segment externe ? Linux
Bridge ou Open vSwitch ? https://pve.proxmox.com/wiki/Open_vSwitch
--- est-ce que nous avons connaissance régulièrement de failles ou
limitation de sécurité sur le module "bridge" du kernel Linux ? idem pour Open
vSwitch ?
--- quel est le niveau de confiance et de sécurité relatif / stress test /
pentest / résilience / montée en charge de LinuxBridge vs Open_vSwitch ?
- Faut-il rajouter un nouveau firewall filtrant IPS/IDS en mode L2/bridge
en amont d'un hyperviseur hébergeant des VM de firewall ?
--- même si l'hyperviseur n'a pas d'adresse IP coté WAN ?
--- Techniquement ça ressemble à se rajouter de la sécurité, mais en fait à
l'opposé de l'objectif initial de simplification et souplesse par la virtu ...
--- fail2ban dans la couche hyperviseur ? y-a-t-il un équivalement de
Fail2ban pour ESXi ?
- comment sont protégées les infra Cloud avec fw logiciel en VM exposé sur
Internet, dans un contexte Azure, GoogleCloud, AWS, OpenStack, OVH Public
Cloud, etc ... par exemple ?
--- y a-t-il un infra firewall matérielle qui filtre sur la couche L2 en
amont des hyperviseurs exposés à l'internet ?
--- mais comment ne pas être trop strict / restrictif dans ce cas ? un FW
en amont d'un autre FW : bonjour la complexité !
--- par exemple dans le passé, avec l'IPS Netasq il m'était arrivé de
constater que celui-ci bloquait des applis parce que ces applis étaient mal
codées (IE6 etc ...) , et qu'avec les paramètres par défaut qui étaient la
stricte application du protocole http par exemple plus rien ne passait ; il
fallait alors autoriser des exeptions dans l'ASQ.
6) Un grand Merci d'avance pour vos partages :-) et retours éclairés et
passionnés en ce jour pas troll ;-)
Jean-Christophe
PS ==> Firewall physiques vs firewall virtuels : au prochain sujet de philo du
bac ?
7) [Annexes et Refs] :
https://www.ssi.gouv.fr/administration/bonnes-pratiques/
https://www.ssi.gouv.fr/uploads/2017/12/guide_cloisonnement_systeme_anssi_pg_040_v1.pdf
https://www.ssi.gouv.fr/administration/guide/definition-dune-architecture-de-passerelle-dinterconnexion-securisee/
https://www.ssi.gouv.fr/administration/guide/recommandations-pour-choisir-des-pare-feux-maitrises-dans-les-zones-exposees-a-internet/
https://www.ssi.gouv.fr/uploads/2018/01/guide_preconisations-pare-feux-zone-exposee-internet_anssi_pa_044_v1.pdf
https://www.ssi.gouv.fr/uploads/2018/01/guide_preconisations-pare-feux-zone-exposee-internet_anssi_pa_044_v1.pdf#section*.4
https://www.ssi.gouv.fr/guide/definition-dune-architecture-de-passerelle-dinterconnexion-securisee/
https://www.ssi.gouv.fr/uploads/IMG/pdf/NP_Virtualisation_NoteTech_v1-1.pdf
https://www.ssi.gouv.fr/uploads/2016/08/np_nettoyage-politique-pare-feu.pdf
https://www.ssi.gouv.fr/uploads/2012/01/anssi-guide-passerelle_internet_securisee-v2.pdf
https://www.ssi.gouv.fr/administration/guide/comprendre-et-anticiper-les-attaques-ddos/
https://www.ssi.gouv.fr/uploads/2015/03/NP_Guide_DDoS.pdf
https://www.ssi.gouv.fr/uploads/2014/12/secnumcloud_referentiel_v3.1_anssi.pdf
https://www.ssi.gouv.fr/uploads/2015/03/NP_Guide_DDoS.pdf
https://www.google.com/search?q=pfsense+bhyve+plugin
https://forum.netgate.com/topic/105832/bhyve-package-100usd
https://github.com/churchers/vm-bhyve
https://www.ixsystems.com/community/threads/freenas-11-2-with-pfsense-as-guest-vm.72060/
https://www.ixsystems.com/community/threads/pfsense-as-iohyve-virtual-machine-with-ethernet-pci-passthrough-under-freenas-11-2.72244/
https://davidnelson.me/?p=439
https://shaner.life/bhyve-pfsense-2-4-no-console-menu/
https://www.netgate.com/blog/tnsr-release-19-05-is-here.html
https://www.dpdk.org/
https://fd.io/
https://docs.netgate.com/pfsense/en/latest/virtualization/virtualizing-pfsense-with-proxmox.html
https://pve.proxmox.com/wiki/Open_vSwitch
https://blog.zwindler.fr/2017/07/18/deploiement-de-proxmox-ve-5-sur-un-serveur-dedie-part-2/
https://blog.zwindler.fr/wp-content/uploads/2017/07/proxmox-install_full-infra-diag.jpg
https://blog.zwindler.fr/2017/05/02/proxmox-lets-encrypt/
https://blog.zwindler.fr/wp-content/uploads/2017/07/proxmox-install_simple-infra-map.jpg
https://blog.zwindler.fr/wp-content/uploads/2017/07/proxmox-install_full-infra-diag.jpg
https://www.sdxcentral.com/open-source/definitions/what-is-open-vswitch/
https://northboundnetworks.com/blogs/sdn/what-is-open-vswitch
https://www.openvswitch.org/
https://cisofy.com/lynis/
https://help.fortinet.com/fos50hlp/54/Content/FortiOS/fortigate-virtual-domains-54/1-VDOM-overview/1-Introduction.htm
https://help.fortinet.com/fos50hlp/54/Content/FortiOS/fortigate-virtual-domains-54/1-VDOM-overview/2-Benefits.htm#Benefits
https://docs.openstack.org/security-guide/networking/services-security-best-practices.html
https://docs.openstack.org/newton/networking-guide/fwaas.html
---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/