12

Dans le cadre de mon travail de fin d’études, j’étudie la sécurité des caméras de surveillance. Pour le coté pratique, j’ai choisi de travailler sur la DCS-2130 de DLink, une caméra wifi d’entrée de gamme remplie de fonctionnalités sympa.

Lors de mon étude, je me suis rendu compte que DLink offrait le code source de ses firmware sous GPL. Offrait ça sous-entend : a été obligé car puise allègrement dans les programmes sous GPL et y est donc plutôt contraint…

Ils ont donc mit en place un joli site avec le code disponible pour la version 1 de leur firmware. Bon on va faire l’impasse sur le fait que l’on est à la version 1.1 maintenant parce qu’il y a pire.

Que faire quand vous êtes un constructeur obligé de distribuer son code alors qu’on a pas envie ? Faire un site qui marche pas. Et oui, DLink a gentiment mit en place un site tout foireux qui permet de télécharger à une vitesse bridée variant de 1Kb/s à 60 Kb/s (sur une archive de 1.6Gb, faites le calcul) et qui arrive toujours à un timeout à un moment ou un autre (une fois, j’ai réussi à aller jusque 200Mb, j’y croyais presque). Évidement évitez les liens directs ou ftp, ça permettrait de reprendre le téléchargement.

Attendez ! Il y a une adresse email pour contacter l’admin. « Delivery Status Notification (Failure) » Ah ben mince, c’est con ça… Le formulaire de contact ? J’attends toujours la réponse à mon message…

Bien sûr cela pourrait tout à fait être une coïncidence expliquée par le fait que DLink ne sait pas administrer un site et que les migrations de licornes sont perturbées par les éruptions solaires. D’ailleurs par le passé, DLink s’est toujours montré comme un exemple en matière de respect de la GPL.

Allez une petite citation des avocats de DLink en 2006 pour la fin :

Regardless of the repeatedly-quoted judgement of the district court of Munich I, we do not consider the GPL as legally binding.

Malgré le jugement cité du tribunal de Munich, nous ne considérons pas la GPL comme légalement contraignante.

—-

Mise à jour 17/4: si on cherche à avoir plus d’info sur où est réellement hébergé le fichier. On voit que l’on fait une requête javascript javascript:dnn(‘AECBLCAAJC’) et soit vers http://tsd.dlink.com.tw/asp/get_file.asp?sno=AECBLCAAJC. Sauf que le code en question change à chaque session.

En analysant la requête on voit qu’on reçoit un code HTML 302 Object moved qui nous redirige vers ce site. On se rapproche du lien direct !
Ce brave serveur est donc un tomcat 5.0.19. C’est facile à savoir, c’est mit sur leur page d’accueil. Au moins, il ont pas mit admin/admin comme mot de passe. Il parait que cette version est vulnérable aux directory traversals si des curieux veulent chercher…

En attendant, j’ai utilisé ce dernier lien pour faire un wget sur mon serveur. Du 60k mais ça semble tenir, je viens de passer la moitié, on y croit ! Évidement il suffisait que je dise ça pour avoir Read error at byte 818639781 (Connection timed out)

Mise à jour 19/4: grâce à bochecha, j’ai pu récupérer l’image de la DCS2130. Elle est en cours d’upload et disponible sur ftp://ftp.mart-e.be/DLink/, faites vous plaisir.
Si vous avez d’autres fichiers que vous avez pu télécharger, contactez moi, je vous donnerai un accès au ftp pour la partager.

12 commentaires

  1. dada dit :

    Oh, on dirait du beau sabotage de respect de la GPL. Ils sont futés, rendre les sources publiques et en rendre l’accès insupportable : c’est tiré par les cheveux mais sacrement chiant.

  2. Anon dit :

    Non, ce n’est pas ambigu. Il me semble que si les sources ne sont pas accessibles sans exécution de code javascript propriétaire dans le navigateur, il y a une violation claire et nette de la GPL.

  3. mart dit :

    Bon après si un de vous arrive à télécharger le firmware de la DCS-2130, je retire ce que j’ai dis (quoiqu’on a toujours le problème du javascript comme dit Anon) et je vous serais infiniment reconnaissant. Mais j’ai testé sur plusieurs connexions différentes, pas moyen…
    En plus on remarque bien le bridage de vitesse par fichier. Si on lance 2 téléchargements, la vitesse du premier ne diminue pas, juste les deux qui plafonnent à 60kb/s dans le meilleur des cas.

  4. Le premier/e qui y arrive fait tourner en ftp/torrent, je suis prêt à host rien que pour la forme !

  5. lorem ipsum dit :

    Il y a bien un serveur ftp : ftp://tsd.dlink.com.tw . Je ne sais pas s’il est censé pouvoir être visité par n’importe qui, mais vu qu’il n’a pas d’authentification… Par contre, impossible de trouver le bon fichier. (Je me suis contenté du index.html et du readme.txt, je n’ai pas fait les dossiers un par un)

    Quand je vois que le serveur est sous IIS 5.0 (12 ans, c’est ça ?), et qu’on trouve de (très (très très)) grosses sqli un peu partout, il est fort possible que DLink ne sache pas administrer un serveur 😉

  6. bochecha dit :

    En lisant le code source de la page, on trouve la fonction Javascript qui va bien (« dnn » de son petit nom), et ca permet de reconstituer le lien direct vers le fichier.

    (je le poste pas, vu que leurs avocats considerent pas la GPL comme legalement contraignante, ils considerent peut-etre que lire le code source HTML/Javascript c’est du terrorisme informatique… oh, et mon IP est en Chine :P)

    Et ca telecharge a un peu plus de 400kB/s ici.

    Si ca se trouve ils brident que leurs clients, mais pas ceux qui n’ont rien achete chez eux. ^_^

    J’ai pas (encore) de serveur pour heberger le fichier, mais si vraiment vous arrivez pas a le recuperer, je veux bien le telecharger (vu que ca a l’air plus rapide pour moi) et le pousser sur celui de quelqu’un.

  7. mart dit :

    @lorem ipsum : non je pense pas qu’on est supposé tomber dessus. Ce que je ne m’explique pas non plus est la présence d’archive de 120Mb pour certains et 1.6Gb pour d’autres.
    L’archive sur le ftp 2210 contient en fait uniquement les modules open source qu’ils utilisent, pas le firmware complet qu’on pourrait reconstruire avec un petit makefile (je ne sais pas si la GPL les contraint à le faire, je pense mais je ne suis pas un juriste).

    @bochecha : Ce n’est pas vraiment un lien direct, ça reste toujours une réponse du serveur. La preuve est que même avec cette url, je n’arrive pas à redémarrer un téléchargement qui a fait un timeout (ou alors je m’y prend mal).

    By the way, si on remonte à la racine du site où semble être hébergé le fichier (http://pmdap.dlink.com.tw), on arrive sur une page qu’il aurait peut être été préférable de cacher…
    Tomcat 5.0.19, ça date bien.

  8. bochecha dit :

    > « L’archive sur le ftp 2210 contient en fait uniquement les modules open source qu’ils utilisent, pas le firmware complet qu’on pourrait reconstruire avec un petit makefile (je ne sais pas si la GPL les contraint à le faire, je pense mais je ne suis pas un juriste). »

    La GPL les contraint a filer leurs sources, ainsi que les instructions qu’ils ont utiliser pour construire les binaires.

    Donc s’ils filent que des modules, ils devraient aussi filer un au minimum un README expliquant quels autres logiciels telecharger, dans quelles versions, quelles options ils ont passe aux compilateurs pour chacun d’entre eux, et enfin comment ils ont assemble le firmware a partir de toutes ces briques une fois compilees (montage en loopback d’une partition, dd, …)

  9. mart dit :

    L’image du DCS2130 (ainsi que celle du 2120 mais qui n’est pas vraiment complète) est disponible sur ftp://dotzero.me/DLink
    Merci bochecha
    Si quelqu’un a réussi à télécharger d’autres fichiers, contactez moi, je vous donnerai un accès au ftp pour la partager.

  10. […] these sources are hard to get as download nearly always aborts after approx. 500 MB. Thankfully, this fella was so kind to mirror the firmware on his FTP, so that I was able to download […]

  11. Marc dit :

    hello ; I have a virtual linux server in taiwan. I can download ten time faster as in France in this site : http://pmdap.dlink.com.tw/ (from 200 to 300 KB/s) (wget status).

    May be I can help.

  12. mart dit :

    @Marc Thank you for your offer, but with the help of bochecha (previous comment), I downloaded the source code and put it here ftp://ftp.mart-e.be/DLink/.
    However, if you have other files you’ve downloaded from this server and you think may help some people, I can put it on the FTP as well. Contact me at me -at- mart-e -dot- be so we can figure out a way to exchange the files.

css.php