Wardriving: Un aller-retour Québec-Montréal

Il y a quelques semaines l'équipe du Hackfest a effectué un aller-retour Québec-Montréal et pour rendre ce voyage plus intéressant nous avons profité de l'occasion pour installer une antenne 13dbi sur le coffre et une 5dbi sur le devant de la voiture, ouvert Kismet pour analyser le trafic réseau! Le parcours emprunté fut l'autoroute 20 à partir de Québec vers Montréal et l'autoroute 40 de Montréal vers Québec.

Setup



[caption id="attachment_3942" align="aligncenter" width="150"]5dbi à l'intérieur[/caption]
[caption id="attachment_3938" align="aligncenter" width="150"]Kismet - 13dbi sur la voiture[/caption]
[caption id="attachment_3938" align="aligncenter" width="150"]Kismet - At destination[/caption]

Analyse des logs


Plusieurs résultats intéressants ont été observés lors de ce wardriving et je vous les présente ci-dessous dans la section "résultats".

Tout d'abord, avant de discuter des résultats voici comment nous avons procédé. Pour obtenir les statistiques de sécurité des WiFi, j'avais de besoin d'un outil pour calculer le nombre de réseau WEP/WPA/OPEN/etc. Après quelques recherches aucun outil intéressant n'en est ressorti. Ainsi, j'ai programmé un petit outil (très basic) permettant d'analyser un fichier .netxml de kismet. Le code est disponible sur notre Github: Kismet-Quick-Stats.py. Ainsi, le code parse simplement le fichier XML à l'aide du module lxml (http://lxml.de/).

[python title="Fonction principale de Kismet-quick-stats.py"]
def parseXML(xmlFile):
f = open(xmlFile)
xml = f.read()
f.close()

#lxml parsing tree
tree = etree.parse(StringIO(xml))

#INFRASTRUCTURE
data = parseNetwork('//wireless-network[@type="infrastructure"]/SSID','.//encryption/text()',tree)
dataC = parseChannels('//wireless-network[@type="infrastructure"]/channel','text()',tree)
#print the stats
printResults("Access Points",data)
printChannels("Channels for Access Points",dataC)
print "\n"

#MOBILE
data = parseNetwork('//wireless-network[@type="ad-hoc" or @type="fromds" or @type="probes" or @type="tods"]','.//SSID/encryption/text()',tree)
dataC = parseChannels('//wireless-network[@type="ad-hoc" or @type="fromds" or @type="probes" or @type="tods"]/channel','text()',tree)
#print the stats
printResults("Ad-Hoc (cellulaire)",data)
printChannels("Channels for Ad-Hoc (cellulaire)",dataC)
print "\n"

#CLIENTS
data = parseNetwork('//wireless-client[@type="ad-hoc" or @type="fromds" or @type="probes" or @type="tods"]','.//SSID/encryption/text()',tree)
dataC = parseChannels('//wireless-client[@type="ad-hoc" or @type="fromds" or @type="probes" or @type="tods"]/channel','text()',tree)
print "\n"

#print the stats
printResults("Wifi-Clients",data)
printChannels("Channels for Wifi-Clients",dataC)
print "\n"
[/python]

Résultats


Après l'aller-retour plus de 14 000 réseaux sans fil de tout type ont été détectés (incluant des access point, des clients et point à point). Ci-dessous les statistiques de chacun des types de réseaux ainsi que la répartition des channels.

Répartition des channels


L'image suivante décrit la proportion des channels utilisés par les 14 000 réseaux sans fil. Notons que 2 réseaux utilisaient le channel #13 soit une zone réseau non utilisée en Amérique du Nord.
[caption id="attachment_3885" align="alignnone" width="605"]Kismet - Channels[/caption]

Les canaux étant les plus utilisés sont les suivants:

  • #7 (3813)
  • #2 (2975)
  • #12 (2729)
  • #1 (2189)

Sécurité des Access Points


La question que tout le monde se posait avant de partir pour notre aller-retour était de savoir le pourcentage de réseau étant WEP et OPEN pour avoir une envergure de la sécurité des réseaux du Québec. Nos estimations en sont allées entre 5 et 25%.

Nous avions vu juste!

  • 13% WEP (807 réseaux)
  • 11% OPEN (695 réseaux)
    • Les deux additionnés nous donnent exactement 25.46% (1502 réseaux)

  • 74.5% WPA 1&2 (4395 réseaux)


Ainsi 25% des réseaux sans fil dans notre échantillon de 14 000 réseaux dispersés sur plus de 250km sont facilement accessible ou piratable!

Bien que plusieurs des réseaux OPEN étaient des réseaux de type "Guest/invité", plusieurs semblaient être des configurations par défaut avec des SSID par défaut. Pareillement pour les réseaux WEP, plusieurs étaient configurés par défaut soit des routeurs achetés dans un magasin à détail ou des modems ou routeurs fournis par des ISP (Internet Service Provider) tels que Bell, Vidéotron ou autre pour ne nommer que ceux-ci.

Bien que 25% peut sembler raisonnable, nous croyons qu'il y a encore beaucoup de chemin à faire pour rendre nos réseaux sans fil plus sécuritaire, et ce, sans grand effort! Simplement mettre les configurations par défaut à WPA aiderait grandement.

[caption id="attachment_3882" align="alignnone" width="605"]Kismet - Access Points[/caption]

Sécurité des clients WiFi


Ce qui a été très intéressant lors du voyage a été le fait qu'énormément de réseaux étaient des "beacon" (packet de détection de réseau) appartenant à des téléphones cellulaires. Ainsi dans la section Clients WiFi comportant plus de 8000 réseaux se retrouvent parmi ceux-ci des milliers de téléphones cellulaires . Parmi ces téléphones une grande majorité était des iPhone essayant de détecter des réseaux sans fil qu'ils connaissaient.

Effectivement, lorsqu'un mobile (cellulaire ou tablette) se connecte à un réseau sans fil il enregistre généralement ce réseau dans son système. Par la suite, lorsqu'il est hors de portée l'appareil envoi des packets pour détecter si le réseau existe et si oui il s'y authentifiera. Ainsi, à l'aide de kismet plusieurs téléphone et appareil mobile ont pu être détectés grâce à ce type de paquet.

Parmi les Clients Wifi détectés, voici les proportions de la sécurité desdits réseaux:

  • Open (1231, soit 15.37%)
  • WEP 0 (zéro!)
  • Non sécurisé (6777, soit 84.63%)


Ici la statistique est faussée, car la plupart des clients se connectent sûrement sur un réseau sécurisé, mais les packets obtenus ne contenaient pas cette information.

[caption id="attachment_3884" align="alignnone" width="605"]Kismet - Wifi-Clients[/caption]

Sécurité des réseaux Ad-Hoc

Quelques réseaux point à point ont aussi été détectés (une centaine). Ceux-ci provenaient principalement d'entreprise reliant plusieurs de leur bâtiment à l'aide de grosse antenne, nous pouvions voir un fort signal sur plusieurs kilomètres.

Conclusion


Comme plusieurs autres technologies "embeded" tels que des modems, gpstracker, etc, je crois qu'il faut retenir que la sécurité de ceux-ci est rarement optimale par défaut en plus que ces produits sont souvent destinés au grand public qui eux, n'ont pas les connaissances nécessaires pour rendre le tout sécuritaire.

Ainsi, nous avons encore beaucoup de travail à faire pur conscientiser le grand public et les entreprises développants ces produits puisqu'ils se soucient rarement de la sécurité, car il est "compliqué" de trouver les problèmes dans ces modules... Security by obscurity all over again!

Patrick