La Fibre

Datacenter et équipements réseaux => Routeurs => Free Remplacer la Freebox par un routeur => Discussion démarrée par: kaxapo le 24 octobre 2022 à 21:39:33

Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 24 octobre 2022 à 21:39:33
Salut a tous je pense que sa pourrait intéresser plus d'un de pouvoir fouiller dans les entrailles du  kernel de la Freebox . 8)

La version actuelle du kernel est 4.4 !

Je vous laisse ici mon github repository avec le kernel complet de la Freebox:

https://github.com/kaxapo/FreeboxGatewayWANconfig


Amusez-vous bien !  8)
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 25 octobre 2022 à 18:48:56
Il semblerait que dès qu'on active le fameux mode "fastpath" le trafic passe par des VLAN différent ?

Donc le "fastpath" est une amélioration "local" et non dans le réseau extérieur comme je le pensais.  ::)

(https://i.postimg.cc/L6R80ybK/Screenshot-20221025-184028-Samsung-Internet.jpg)
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: Hugues le 25 octobre 2022 à 18:56:24
Je pense que cette analyse est erronée, un fastpath ça peut être plein de choses :)
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 25 octobre 2022 à 18:58:33
Je pense que cette analyse est erronée, un fastpath ça peut être plein de choses :)

Peux-tu donner des exemples concrets ?
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: Hugues le 25 octobre 2022 à 19:03:28
https://wiki.mikrotik.com/wiki/Manual:Fast_Path

(https://help.mikrotik.com/docs/download/attachments/328227/fastpath.svg?version=1&modificationDate=1570628869555&api=v2)

https://help.mikrotik.com/docs/pages/viewpage.action?pageId=328486
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: Hugues le 25 octobre 2022 à 19:06:35
Le principe d'un fastpath c'est juste de router des paquets plus vite dans certains cas (par exemple quand il n'y a pas besoin de verifier l'état de la connexion dans le firewall)
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: alain_p le 25 octobre 2022 à 19:10:02
Le noyau 4.4, c'est plutôt ancien. Mais comment as-tu eu ce noyau ? Sur le freebox, je pense que c'est plutôt le noyau compilé que tu trouves.
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 25 octobre 2022 à 19:15:10
Le principe d'un fastpath c'est juste de router des paquets plus vite dans certains cas (par exemple quand il n'y a pas besoin de verifier l'état de la connexion dans le firewall)

D'accord mais comment c'est possible de perdre environ 10ms juste en bypassant un firewall ? Ce n'est pas très logique de mon point de vue. A moins que je zappe un truc.
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: Hugues le 25 octobre 2022 à 19:22:50
Ce que tu zappes c'est que le fastpath du "fastpath ADSL" est coté DSLAM et pas coté box...
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 25 octobre 2022 à 19:24:18
Le noyau 4.4, c'est plutôt ancien. Mais comment as-tu eu ce noyau ? Sur le freebox, je pense que c'est plutôt le noyau compilé que tu trouves.

C'est un gars qui fait du JTAG qui la partagée.

J'ai essayé une fois de configurer ce noyau et le compiler pour ensuite essayer de le booter mais malheureusement au moment du boot le clavier ne fonctionne pas.

Après j'ai pu apercevoir que j'atterris dans du Busybox au démarrage du kernel.
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 25 octobre 2022 à 19:27:55
Ce que tu zappes c'est que le fastpath du "fastpath ADSL" est coté DSLAM et pas coté box...

Je t'invite a jeter un coup d'œil ici:

https://github.com/kaxapo/FreeboxGatewayWANconfig/blob/main/fbxbridge/fbxbridge_fastpath.c


Tu verras bien qu'il ya quelque chose qui se passe/change localement au niveau du kernel de la freebox donc oui je veut bien être d'accord avec toi sur le point du DSLAM mais niveau local il ya bien des choses qui changent.  ::)
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kgersen le 25 octobre 2022 à 19:54:02
Salut a tous je pense que sa pourrait intéresser plus d'un de pouvoir fouiller dans les entrailles du  kernel de la Freebox . 8)

La version actuelle du kernel est 4.4 !

Je vous laisse ici mon github repository avec le kernel complet de la Freebox:

https://github.com/kaxapo/FreeboxGatewayWANconfig


Amusez-vous bien !  8)

Ca vient d'ou ? c'est extrait du site officile FLOSS de Free ?
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: alain_p le 25 octobre 2022 à 20:09:31
Ca vient d'ou ? c'est extrait du site officile FLOSS de Free ?


kaxapo parle de JTAG, donc à priori extraction à partir d'une connexion sur la freebox ?
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 25 octobre 2022 à 20:13:12
Ca vient d'ou ? c'est extrait du site officile FLOSS de Free ?

Non le floss de free ne partage pas le kernel..
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: Harvester le 25 octobre 2022 à 20:24:12
kaxapo parle de JTAG, donc à priori extraction à partir d'une connexion sur la freebox ?

Ca n'explique pas d'où sortent les sources, à moins qu'elles soient présentes dans le système de fichier.
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: Hugues le 25 octobre 2022 à 20:24:31
Je t'invite a jeter un coup d'œil ici:

https://github.com/kaxapo/FreeboxGatewayWANconfig/blob/main/fbxbridge/fbxbridge_fastpath.c


Tu verras bien qu'il ya quelque chose qui se passe/change localement au niveau du kernel de la freebox donc oui je veut bien être d'accord avec toi sur le point du DSLAM mais niveau local il ya bien des choses qui changent.  ::)

Non. Fastpath ça ne veut pas *NÉCÉSSAIREMENT* parler du bouton sur l'interface abonné qui baisse ta latence.
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kgersen le 25 octobre 2022 à 20:24:55
kaxapo parle de JTAG, donc à priori extraction à partir d'une connexion sur la freebox ?

c'est du code source, je doute que la freebox inclut son code source (ce n'est pas impossible mais ca serait curieux).


Non le floss de free ne partage pas le kernel..

donc justement il serait mieux avant de poster ce genre de chose ici d'en mentionner l'origine et demander si c'est légal de le poster ...

Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 25 octobre 2022 à 20:32:17
c'est du code source, je doute que la freebox inclut son code source (ce n'est pas impossible mais ca serait curieux).


donc justement il serait mieux avant de poster ce genre de chose ici d'en mentionner l'origine et demander si c'est légal de le poster ...

Linux est censé être Open Source ? et puis si j'ai posté cela c'est pour aider les gens qui cherchent a comprendre comment fonctionnent les freebox, pour effectuer des remplacement de freebox par un autre router tiers par exemple.

D'ailleurs une fois j'ai discuté avec maxime b.[modération], un dev freebox je l'ai montré une partie du code et il m'a rien dis a propos que c'est legal ou interdit de le diffuser.
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: Flo_77 le 25 octobre 2022 à 20:46:41
Linux est censé être Open Source ? et puis si j'ai posté cela c'est pour aider les gens qui cherchent a comprendre comment fonctionnent les freebox, pour effectuer des remplacement de freebox par un autre router tiers par exemple.

D'ailleurs une fois j'ai discuté avec xxx, un dev freebox je l'ai montré une partie du code et il m'a rien dis a propos que c'est legal ou interdit de le diffuser.
Linux oui, mais pas forcément les paquets propriétaires qui peuvent s'y trouver. Pas spécialiste des licences d'utilisation mais à priori, un code propriétaire qui n'est pas publié officiellement et récupéré par un moyen détourné/fuité, ça s'apparente à quelque chose d'illicite tout de même
C'est mieux de ne pas publier le nom de la personne pour lui éviter des ennuis :)
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 25 octobre 2022 à 20:52:00
@Flo_77

Oui en effet ce n'est pas mon but. Je mets sa a disposition pour aider les gens, pas pour créer des ennuis.
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: Fuli10 le 26 octobre 2022 à 10:03:15
Tiens, c'est bizarre mais il me semblait que les patchs kernel étaient disponibles il y a un moment sur https://floss.freebox.fr/
Je viens de vérifier et là je ne retrouve plus ces fameux patchs (de mémoire il y avait même des numéros de VLAN hard-codés pour des montages NFS je crois).

Après, il y a peut-être plus "contamination" de licence sur les nouvelles releases du kernel: tout code développé dans le kernel devant être disponibles avec la même licence que le kernel (libre et accessible).
A un moment il me semble que google avait développé des hooks du kernel avec une licence libre (pour Android), permettant après aux fournisseurs de SoC de développer des drivers modulaires closed-source en utilisant ces hook libres sans "contamination" de licence.
Je ne sais pas ce qu'il en est avec la licence récentes du kernel linux. Mais là je ne retrouve plus les patchs des vieux kernel sur floss....

Edit: bon en fait je dis de la crotte. Le code source de linux est bien dispo sur https://floss.freebox.fr/
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kgersen le 26 octobre 2022 à 10:46:22
La licence GPLv2 de Linux n'a jamais été aussi "contaminante" que la GPLv3. Linus avait d'ailleurs refusé la v3.
( cf https://github.com/torvalds/linux/blob/master/COPYING )

Par contre, ce code publié par kaxapo a comme fichier LICENSE celui de la GPLv3 ce qui est plus que curieux...et la plupart des fichiers n'ont pas de commentaires d'entête indiquant leur licence ce qui est la règle de l'art quand on publie du code.

Ca ressemble donc vraiment a du code interne qui n'a pas été passé en revue pour être préparé et transformé (notamment nettoyage de commentaires privés ou risquant d'exposé des informations sensibles) avant publication.

Soit ce fichier 'LICENSE' ne fait pas partie des sources originaux et a été ajouté a tord par quelqu'un a un moment, soit il l'est et les devs de chez Free sont peut-être partie d'une base qui le contenait dans ce cas ils sont en faute de ne pas publier eux-mêmes ces sources car la v3 l'impose.
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: Fuli10 le 26 octobre 2022 à 11:37:32
T'en retrouves quand même certains (voir la totalité) dans les patchs kernel sur floss.
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: kaxapo le 26 octobre 2022 à 19:35:46
@kgersen Personnellement de mon côté j'ai publié les fichiers exactement comme je l'es ai reçu.

Donc a mon avis c'est plus une faute du côté dev de free, je ne pense pas que sa aurait été ajouté a tord.

Sinon côté code oui c'est bien du interne on peut y voir des choses qui ne sont pas accessibles sur le net, par exemple je n'avais jamais entendu quelqu'un dire que Free ferait du MPoA (RFC 2684) pourtant c'est bien dans le code interne.

Autre chose que j'ai trouvé bizarre par rapport au MPoA il me semble que quelque chose se passe en UDP port 5004 et 5020 et je suis aller faire un check avec nmap et le port présente un statut open/filtered quel serait le rapport de ces ports avec le MPoA ?  ::)
Titre: [KERNEL] Reverse engineering du kernel de la Freebox
Posté par: pitalugue le 26 octobre 2022 à 22:04:39
C'est la version du Kernel qui vous etonne ou bien autre chose ?

La version c'est vraisemblablement celle validee par le fournisseur pour son SDK (accompagnant la sortie des puces pour faciliter leur adoption) utilise par Free a la conception de la box.
Suivant la vie des puces, les evolutions logicielles les accompagnant sont parfois chaotiques. https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/ARMADA_Embedded_Processors_ext_for_ARM_July_2017_v5.pdf  Cf Software ecosystem.
Marvell publie toujours un SDK "legacy", ou du moins je l'ai vu cet ete, dans lequel les armada 7K sont encore presents, bien moins sur pour les 8K.
Si Free estime pouvoir garantir la securite de la box et que la couverture fonctionnelle lui convient, ils n'ont peut-etre pas forcement envie de maintenir une compatibilite logicielle dans le temps portee par eux-memes, voire eux seuls.