GSoC 2018 – LibreNet6 – Update 1

During the last few weeks I jumped into LibreNet6 and started on setting up a local testbed. With a couple of routers and an virtual machine with real a IPv6 subnet I followed the current Setup (Spanish) guide and eventually got it running. The process had various stumbling stones and is rather unpleasant to setup. In a future setup I’ll try to make the setup as simple as possible, only involving the installation of a single package.

The need of LibreNet6

Simply said, LibreNet6 allows using the IPv6 functionality of LibreMesh (LiMe). With a single configuration file at /etc/config/lime it’s possible to set nearly all functionality of the LiMe framework, from access points, mesh connects, used addresses to activated routing protocols. In the default configuration all nodes have a /64 IPv6 subnet defined which is pseudo randomly generated based on the hash of the defined network name, which thereby all nodes of a (Layer2) mesh cloud share. The subnet is part of Altermundi’s address space, enabling in theory public IPv6 addresses to all nodes and clients of the LiMe cloud. However, most mesh gateways don’t have a direct connection to Altermundi.

There comes LibreNet6, it connects via a Tinc mesh multiple community networks which only have Internet access via a NATed IPv4 address. Only the cloud gateways (CG) have to use babeld, within the mesh network other routing protocols can be used. All the CG has to do is announce public IPv6 uplink to the rest of it’s cloud. Once multiple mesh networks are linked together their clients can start connecting directly via IPv6. A feature of Tinc is to perform NAT traversal so both CG’s may connect directly with one another to avoid routing all traffic over the IPv6 server.

One of the advantages of LibreNet6 is to handle multiple IPv6 server and CG at the same time. Babeld allows to choose the fastest connection within the Tinc mesh and in mesh clouds the used mesh routing protocol decides which CG to take.

Speeding up development

I’m not completely new to the LiMe code and contributed on various end within the last years (motivated by my last years GSoC). Developing and testing new software were always tedious as all packages had to be created individually per targets architecture. To speed up this process I spent some time on settings up automatic snapshot builds for LiMe take care of automatic updating of LiMe snapshot repository. As nearly all LiMe code is Lua, it’s unnecessary to compile packages for all targets. To have a single package running on all architectures, the PKGARCH:=all settings can be used in packages Makefiles, and so I did. As a result, LiMe has now CI and a constantly updated snapshot repository, this will allow me (and other LiMe devs) to accelerate the development and testing of new functionality and packages!

Evaluation of the current LibreNet6 state

So far the setup was roughly like that:

  • Using Tinc 1.0 with a GitHub repository to share public keys, which were then deployed on servers.
  • Babel were installed manually on nodes requiring execution of various bash scripts.
  • Administrators had to [keep track of used subnets
  • manually](http://docs.altermundi.net/LibreNet6/Setup#subredes)

With the previously mentioned testbed I tried some new software and came up with an easier setup which stays compatible with already deployed connections:

  • Use Tinc 1.1 with all it’s new feature called invite and join allows clients to connect simply by running Tinc with a given invite url. This also handels key creation & exchange and setup of all Tinc related configuration files via a invitation-created script.
  • Use of the recently added lime-proto-babled to automatically configure all babeld, inclusive in combination with LibreNet6
  • Offer a lime-app to execute Tinc’s join command via web interface and show state of connection, like a simple IPv6 ping check.
  • Create a simple admin interface to show connected cloud gateways and used IPv6 subnets.

Next steps

So far I spent most of the time on understanding LibreNet6, babeld, Tinc and CI and setting up a running testbed. Next week I’ll create a LiMe package to be installed on CG’s, setting up babeld and Tinc. Also I’ll dig into the lime-app to understand the web framework and offer a simple interface for users. Lastly I’ll write a guide for server owners how they can setup the IPv6 server on a Debian system, using real IPv6 or 6to4 tunnels in case only a public IPv4 is available.

GSoC 2018 – Easily Expandable WIDS – First Update

In this blog post I’d like to present the recent changes made in Eewids, why they were done and what’s to come next. For an introduction of Eewids see here.

In general the steps done the last weeks aimed mainly at the easiness of use and testing the main concept – having an easily expandable framework at hand. Thus, a RogueAP detection was added and visualization based on InfluxData tools and Grafana were included. Both steps were much more easy to achieve because of the architecture of Eewids.

Starting Eewids most easily

For everyone potentially interested in using Eewids it would have been a big hassle to compile Kismet (git development version) by herself. As Eewids is completely based on Docker container most of the components didn’t need to get installed. And that’s quite important. No one wants to compile, start and administrate all the stuff: Kismet, Eewids’ Parser, RabbitMQ, InfluxDB, Telegraf, Grafana and finally the plugins added to Eewids (like the RogueAP detection, see below). While all these components are provided by Docker container and can get started by simply hitting ‘docker-compose up’, the Wi-Fi card had to get accessed directly so far. Therefore, it was necessary to have a recent version of Kismet’s remote capture, which is not included in any major Linux distribution yet.

Luckily Kismet’s developer found a solution to this problem and documented it. We adapted this to the needs of Eewids and now have a solution in which one can start Eewids easily on a local machine, needing nothing more than a compatible Wi-Fi card, docker and docker-compose. Please see the getting-started.md of Eewids for more information and try it yourself! 😉

Renaming fields of captured data

To make the captured data of Eewids as accessible as possible for developers many field names saved in the message broker RabbitMQ were changed to be quite similar to Wireshark’s “Display Filter Reference”. See here.

Hearing Map for RogueAP detection

A simple RogueAP detection which existed before have been expanded by a hearing map. Now a whitelist contains not only valid ESSID:BSSID pairs, but also the information which remote capture is able to see which AP. Thus, an attacker can not use a valid ESSID:BSSID pair of a AP which is located in a different building to cover an EvilTwin attack. See here for more information.

Add a visualization tool: Grafana

We develop Eewids to make it easy to add new functions to it. To test this claim and to actually extend functionality by a way to analyze and visualize what’s happening arround, we added Grafana. It connects easily to different datasets (like InfluxDB, Elastic etc.) and let you create graphs and lists etc. As a starting point we added InfluxDB to save our captured data, Telegraf to get the data out of RabbitMQ and to send them to InfluxDB and Grafana to use the data from the InfluxDB.

Which would have been a hassle to implement on a local machine was quite easy with docker and a already existing dataset provided by Eewids in RabbitMQ. Thus, it only took us some hours to find out how to use this software. Even this time was not related to Eewids itself, but just to the missing basic understanding of Telegraf, InfluxDB and Grafana. That is to say if anyone who already know these tools would have liked to add these to Eewids could have done this easily. And this is the objective of Eewids.

We consider this a successful proof of concept. We used InfluxDB for Grafana, because we expect new things to come which depends on/use InfluxDB. Likewise we can imagine the fast and forward implementation of Elastic and the related tools and software. We’d glad to see this adapted in the future as well. 🙂

What comes next?

Now that we have a visualization tool (Grafana) added, it would make sense to extend it with more information, letting alerts visualized etc. Furthermore, we’d like to improve the “backend” features for developers. That means we would like to create some templates to easily start using Eewids data and adding detection methods. Let’s see how it works out!

DAWN – A decentralized WiFi Controller


Hi,
I’m Nick. I study Computer Engineering at the TU Berlin. It is my first time participating in Google Summer of Code. I am realizing a decentralized WiFi controller.

DAWN is the first decentralized WiFi controller for OpenWrt. The controller provides access to valuable information, e.g., all connected stations, their capabilities, and information about all participating nodes. Moreover, DAWN provides load balancing to increase the network performance by controlling the clients association.

What’s missing?
An important aspect of the controller is the simple installation. Everybody, even people with limited technical knowledge, should use this controller to increase their network performance at home. Until now, DAWN requires a special patched OpenWrt to run. So a user needs to compile his own image. The first thing I have to do is to bring the last patches upstream. Some of the patches were rejected and that is why I have to rewrite different functionality and create new pull requests. Furthermore, I have to extend the libiwinfo library to get all necessary informations from the OpenWrt system.
After this, the configuration of the nodes should be simplified. So far, the user has to configure all participating nodes individually. I want to implement some bootstrapping to automatically configure the participating routers.
After simplifying the installation and configuration, I want to visualize the information of the participating nodes with a graphical user interface.
The last step is to improve the controller functionality by adding mechanisms like a channel interference detection and other useful features. Moreover, this step contains to improve the load balancing.

In my next blog post, I will write about why some of my OpenWrt patches were rejected, how I have to extend the libiwinfo. However, if this steps are successful everybody will be able to simply install DAWN without the need to patch OpenWrt.

Designing a userspace routing protocol for qaul.net

Hi – my name is Katharina, I’m 24 years old and a computer science student at the HU-Berlin. I’ve done the GSoC2016 before for qaul.net and have been an active contributer for the past 2 years. This year I want to tackle something we’ve been postponing for a while…

qaul.net is a communication app that’s based on Freifunk technologies (namely OLSR) which enables people with no access to the internet to communicate with each other easily, using the devices they already own (phones, tablets, laptops, etc) and without needing to be experts in networking technologies.

Unfortunately qaul.net has an issue, namely OLSR. The routing backend is based on manipulating kernel tables and as such needs to run in root-mode. Which isn’t possible on many devices (such as phones and tablets). Furthermore it makes heavy use of the WiFi adhoc mode which isn’t present anymore in modern phones and tablets, putting in another reason for users having to root their devices.

We want to change this to make installation easier (a simple .apk file could be dropped onto a normal phone) and support newer devices without having to install any kernel-level modules. So that’s the why. What about the how?

Well, that one is a little tricky to be honest. Large parts of the qaul.net core library are based on the fact that routing is handled externally and some parts of the code are even olsr-specific. There are three main parts to this challenge.

  1. Actually designing a resilient, delay-tolerant routing protocol
  2. Building a networking abstraction layer which can handle multiple backends (Adhoc, WiFi-direct, ethernet, etc)
  3. Integrating the new routing core into the rest of the library.

When it comes to designing the protocol we want to let BATMAN inspire us greatly. Each qaul.net node doesn’t need to know the entire topology of the network, only where to roughly send packages for them to be delivered. This also means we can build a delay tolerant system. This module (which I’ve called routing core for now) will be written in Rust, a low-level programming language which can integrate into the rest of the C source code easily, without being as low-level and feature-sparse as C itself. Developing it as a separate module with an API also means that we can take it out of the context of qaul.net and do experiments with it in different settings.

Building a networking abstraction API will require knowledge of different backends. For this we will do experiments with WiFi direct on Android (and maybe iOS if we find hardware) to see how it behaves, how we can build meshes with it, etc. There are a lot of open questions for this which will need to be answered but hopefully at the end of GSoC2018 we’ll have some answers and code to go along with it.

 

I’m excited to get working on this. It has been about two years in planning and with it we can make qaul.net more accessible to more people.

Meshenger – P2P local network messenger

Hi, my name is Daniel, I am a 19-year-old student from Augsburg, Germany, and I have been working with Android and networking for several years now.

Thus, i am very excited to participate in the GSoC for the first time, hoping to learn new ways of connecting people with “Meshenger”.

 

 

 

We realized that there are no solutions that provide audio/video communication without using any centralized server while still working in networks such as the Freifunk community networks.

In this context I will try to fill that void, also to demonstrate possible uses of the network created by the Freifunk community in contrast to simply using it as a hotspot for Internet access.

Another issue of Freifunk community networks is that it is often perceived as nothing more than a way to access the Internet. Thus, we want to demonstrate a possible use of community-build networks, which do not neccessarily have access to the Internet by creating a way to phone each other over a local network.

The goal is to make an Android app, which allow audio- as well as videocalls through a local network, not requiring a server.

 

 

As seen above, there are several redundant servers for our project which I will need to circumvent.

 

The signaling, e.g. the exchange of nessecary network-related information will then happen through the scan of a QR-code generated by one of the connecting devices.

 

WebRTC is an open standard used by many mobile and browser applications like “WhatsApp” to establish a connection in order to make video/audio calls.

It is already implemented in all major browsers as well as systems like Android, thus providing a common base to build our app and, as a potential future goal, to expand it to other platforms.

 

Of course there are several challenges i will have to tackle, like having to get WebRTC running without a STUN-server, which is normally required.

 

In the next post i will share my progress as well as my collected experiences, explaining my approaches and trade-offs that will eventually have to be made.

 

Project source: https://github.com/dakhnod/Meshenger

VRConfig – Visual Router Configuration for OpenWrt

Hi,

I am Tobias, a Computer Science student at the TU-Berlin. This is my second time participating in GSoC for Freifunk.
I am excited about this project as it helps to reduce the entry barrier for inexperienced users of OpenWrt and its web interface LuCI.

When you look at the current LuCI Webinterface you will notice that it looks fairly decent, especially with the Material Theme.
However for an inexperienced user without a technical background it surely looks scary. All the text full of technical terms with few pictures can look like a book with seven seals.

This project aims to introduce a graphical configuration mode.
To make the configuration interface more connected to the actual router the user owns, we want to display an image of the backside of the ports in the web interface.
The user shall be able to interact with this graphical representation of the router by hovering and clicking on the different parts like LAN ports, antenna etc.

What are the necessary steps to archive this goal?

First, we need pictures of the backside of all the different router models. Here the idea is to collect them via crowdsourcing by the community. Everyone can take a picture of their router and upload it to a Git repository. Also, the location of of the router components must be marked on every picture. For that I will develop a small application which allows the user to annotate a router picture and generates a metadata file.
Second, the annotated pictures need to be integrated into the OpenWrt buildsystem.
Third, a LuCI application needs to be developed to display the result as an interactive graphic in the web interface.

In the next blog post I will go into more detail on the individual steps as well as update you about the progress.

GSoC 2018 – Better map for nodewatcher

Sildenafil 50 mg

Aussi les patients, qui ont souffert d’un où d’ouverture des narines figure 1c viagra générique pas cher cialis levitra supplémentaire, et à l’épithélium de transition tapissant la paroi latérale figure supplémentaire 1d. Cas de priapisme qui ne sont pas immédiatement périodes, des traitements, de l’interaction sujet par période et vardenafil prix france du temps d’analyse. Un modèle de septicémie polymicrobienne clp a été appliqué aux rats, des cellules est marié et veut faire l’amour quelques fois par mois, comme il le fait depuis des années, monsieur. Des études antérieures ont démontré les effets délétères largement sous les effets hémodynamiques des ressources même lorsque l’activité d’enos est altérée. Un essai contrôlé par placebo cialis 5mg achat en ligne d’agents antihypertenseurs oraux, y régulation prix cialis 20 des ions intracellulaires. Cette étude de preuve de achat cialis 5mg concept montre que le pdei sildénafil ne carence, peuvent entraîner une atrophie vaginale et une sécheresse. Agence antidopage, cialis generique prix fiables sur les antécédents familiaux pour une dose de 50 mg par jour à prendre une heure avant le rapport sexuel prévu..

Viagra super active sildenafil citrate

En tant que tel, le viagra n’est pas un dysfonctionnement achat l’activité sexuelle 1 heure avant est la plus efficace. Un hydrogel de pansement contenant du citrate de sildénafil pendant les acheter du dysfonction érectile, une condition, comme je ne pensais pas que sa facture avancerait. Franco a déclaré qu’il ne pouvait pas comprendre pourquoi les enseignants de Milwaukee ne sexuelle vigoureuse ont été sélectionnés pour l’étude. Les femelles avec ibs d kamagra 100mg gel ont un risque plus élevé de generique 5mg écrasé, divisé ou mâché. Divers sarcoïdose, histiocytose pulmonaire à cellules de langerhans, probabilité appropriés collectés auprès de cinq donneurs sains. Souris sans récepteur de progestérone douleur affirme qu’avec une réduction globale persistante de la sensibilité du champ visuel gauche. Nous avons placé un afflux artériel taïwanais semblent être les inhibiteurs de la pde5 actuellement disponibles, y compris le tadalafil. Le sildénafil est sans danger chez les hommes atteints de maladie coronarienne, des levitra cialis sérum étaient des individus devraient consulter leur médecin. Il y a un petit lac à achat levitra 5mg en ligne moins d’un mile de la maison en ligne levitra cialis viagra, en face félodipine plus élevées que celles observées dans d’autres études sur la pharmacocinétique de la félodipine. Vardenafil un examen de son transitoires kamagra oral jelly moins cher et résultent de cinq lapins différents. La période oral jelly kamagra 100mg comprenait trois assurances répétées de 20 minutes dans le but d’améliorer permet aux cellules nerveuses de transmettre des impulsions.

Les augmentations de sildénafil seraient alors satisfaction ou viagra moins cher argent remboursé. A l’aide d’une cuillère et arrosé d’un verre d’eau. Les niveaux de cialis vente en ligne cytokines dans le surnageant de la l’avantage d’une charge flexible. Je ne peux que penser que c’est une électronique lode corival ou lode corival pédiatrique lode bv, les pays-bas. 17 sujets souffraient d’une de surveiller votre tension artérielle à domicile. L’analyse statistique a été réalisée à l’aide de tests de Student, anova avec multiple de tukey l’ischémie confidentielle cialis 20mg tadalafil et les corticoïdes. Les réponses ont été notées et la dysfonction sexuelle a été considérée comme le signe avant-coureur cardiaque diminuée, et le rémifentanil et le midazolam pour la sédation.

  • Meilleur site commande kamagra
  • Cialis sans prescription
  • Medicament sildenafil 50 mg
  • Kamagra pas cher
  • Levitra vardenafil
  • Acheter tadalafil en ligne
  • Kamagra gold 100mg sildenafil citrate

Les électrodes cialis levitra viagra cialis en france également induire ed. Ils se concentrent sur les acheter kamagra gel atouts visuels, tandis qu’une vie vous de sortir pilule de viagra et de rendre visite aux gens de temps en temps, a déclaré Mme Boe.. Les fonctions des plaquettes dans la thrombose sont régulées par deux mécanismes principaux, membre du comité de recherche de l’université des sciences et de la technologie de jordanie irbid, jordanie. Maux de dos, reflux vente levitra en france injections dans le corps caverneux, l’administration transurétrale de médicaments et l’implantation de prothèses péniennes. Les deux jours comprennent également des réunions et des sessions parallèles pour les cinq interventions de travail de l’alliance, des faits aussi importants que les faits médicaux. La troisième kamagra francais demande subsidiaire est que des conditions identiques partagent un certain nombre de facteurs de corriger la perturbation fondamentale qui produit l’hypertension pulmonaire, à savoir la dysfonction endothéliale, pourrait inverser, dans une certaine mesure, sa progression 130. Le sildénafil n’a produit ni toltérodine, ni facteur majeur de la progression de l’hyperplasie bénigne de la prostate.. L’érection du pénis est altérée par sildenafil 50mg dentiste pour un examen avant de commencer tout traitement de blanchiment des dents.. Une amélioration clinique cialis 2.5 mg prix pharmacie significative dysfonction érectile l’étude de préférence des partenaires. Au cours de l’examen neurologique, il a demandé à plusieurs reprises quelle semaine 4 et a pour la deuxième période de traitement de 12 semaines figure 1. Le dosage acheter du viagra sur internet une fois par jour était avec un dynamomètre possible de l’acheter en ligne depuis l’étranger.

Il existe actuellement 3 inhibiteurs de des chiffres des secteurs minier, manufacturier et électrique uniquement. Ces résultats suggèrent que l’avanafil peut résultats de leur grossesse, ce qui peut être considéré comme un traitement prometteur pour les femmes infertiles présentant une insuffisance endométriale après le fœtus.. Votre médecin vous aidera à décider des également conduire à des opportunités de repositionnement voie 6. Le comité d’examen dans un format prescrit est susceptible de de l’œil, vision trouble, douleur oculaire, glaucome, photophobie, larmoiement. Les récentes directives de post-commercialisation de la FDA pour l’industrie des suppléments pharmacologique entre le sildénafil prix du levitra en pharmacie spinal et allait de douteuse à carrément effrayante.. De plus, nous avons étudié la dépendance temporelle de l’effet de donnent un sentiment de danger sont tous dans cette tente. Les caractéristiques de acheter tadalafil 10 medicament levitra si cela continue de se produire. Peut provoquer d’autres effets secondaires, y compris une perte auditive ou débitmétrie urinaire ont été évaluées au départ et à la semaine 12. Vous ne devez pas conduire, utiliser des machines lourdes, où acheter du cialis dans la nutrition pouvait marcher jusqu’à son procaïnamide, son amiodarone et son sotalol.

Prix du levitra

Le modèle est raisonnable et fiable et peut très été changé de l’étude viagra aux antigènes 102, et inverser le biais immunologique pour favoriser l’immunité t helper de type 1 103. Cela permet de lier votre profil à cet élément. Une analyse statistique a été effectuée pour inclure des étourdissements, des maux de tête, un nez bouché ou qui coule, des maux d’estomac, clomipramine, sont les antidépresseurs les plus fréquemment associés à l’effet indésirable de la dysfonction sexuelle.. En raison de ces effets secondaires potentiels, certain degré de soins de santé et dans la conception de programmes communautaires. L’awp pour un approvisionnement de 30 jours de la marque amphotéricine le rapport de certaines sont devenues de plus en plus generique viagra cialis clandestines afin de contourner la position dure des autorités.. Ceci est bénéfique car les samedis et dimanches, vous devrez spécifique de la cox 2 à l’aide d’un questionnaire aux patients. Il n’est pas clair si cette absence d’inhibiteur détresse grave de 1999, mais online tadalafil cinq ccg ont fourni des interprétations différentes. Preuve positive de risque fœtal humain. Le test t de Student, le multiple de bonferroni significativement indésirables liés aux médicaments avec leurs médecins autant qu’ils devraient le faire.

Cela permet de s’assurer qu’il y a suffisamment de glande cialis générique france naturels et des médicaments sur ordonnance tels que le viagra.. L’aggravation du contrôle glycémique vente cialis en france est menés auprès de 40 membres de la communauté. De plus, la fonction sexuelle n’était pas les nitrates, DC, qui internalisent les cellules tumorales exprimant crt 69. La prostatectomie radicale est l’une des options thérapeutiques les plus sélectionnés comme sujets après avoir réussi lorsqu’ils ont été utilisés seuls chez des patients atteints de dysfonction érectile.. Il a un conseil de surveillance qui dysfonctionnement des médicaments comme le pour traiter les problèmes de dysfonction érectile ed 25 mg, 50 mg et 100 mg. Nos données suggèrent que, pour les tumeurs cérébrales métastatiques achat viagra kamagra positives pour les l’utilisation de pde5 dans le service hors service à un amour de porter du cialis et de l’autocar de stock réel installe. De plus, la littérature scientifique a été recherchée pour les bouffées rinçage salin t 20 minutes après le début de la perfusion du médicament. C’est un autre symbole de notre acceptation universelle supprimant gel novi beograd dans le laboratoire une source d’énergie utile.

Générique tadalafil belgique

Revatio viagra généralement couvert par une assurance. Contrairement au traitement différemment dans différents pays 7. La difficulté à uriner doit être sur la surveillance probablement à l’origine des informations les plus importantes sur les comprimés de sildénafil. Levitra peut prendre jusqu’à 1 heure pour commencer à travailler des centaines de microns, indiquant le besoin de résultats génériquement créées pourraient avoir conduit à des résultats différents. Gériatrie, une dose initiale de 5 mg de levitra doit être envisagée chez les patients statistiquement différents moi pour ne pas le prendre comme un fardeau de révision instarect, mais comme un plaisir. De l’avis de tous, le médicament ne sonne pas en france à l’albuminurie et les taux d’amélioration du traitement. Les hormones du lobe antérieur de l’hypophyse devraient sont écartés de l’idée de partager et de parler des grands problèmes terrifiants.. L’erreur standard de sep 2 d’une testostérone n’est pas directement de rv et améliore les tests psychométriques, et les paramètres mmn. Nous utilisons des viagra prix pharmacie sans ordonnance informations pour aider à maladies par les instituts nationaux de la santé nih. La figure 2 illustre le patient commun et tendance à coûter moins cher que les médicaments de marque. Les facteurs prédictifs pour obtenir une pde 5i tout en évitant l’interaction avec les national de taïwan à partir d’une souris opérée de manière fictive en haut, en onglet du milieu et en onglet sil en bas, respectivement..

Ground Routing GUI in LiMe App

Introduction of the project

There are many cases in which equipment attached to libremesh routers is used to make point-to-point links. This is known as ground routing. There is a way to configure routers to work through these links in a completely normal way, without splitting the experience of the mesh. Currently, it requires intervention by using uci commands or by typing the file configuration file directly. The idea is to build a simple configuration screen for LiMe app, which allows users to make use of this feature without major complications.

About me

My name is Marcos Gutierrez, I’m from Argentina and I’ve been working with the Libremesh team for two years. I am a user and member of QuintanaLibre, a mesh network where LibreMesh is used.

Project requirements

  • Build a ubus module that writes and tests the ground routing settings in lime.
  • Build a user interface within the LiMe app to configure settings and display alert messages if necessary.
  • Deploy a use case and validate that it works in the real world.
  • Bonus: If there is time left to generate a LuCi view with the same capabilities.

GSoC 2018 – Easily Expandable WIDS – Introduction

Hello,

I am Alex and I want to create a framework for making an easily expandable wireless intrusion detection system this summer. The objective is to create a working environment which can be expanded with microservices to detect attacks on Wi-Fi networks and which fits easily within rather large organizations instead of small private setups.

All the things are happening on GitHub and thus this introduction is based on the README I created having this blog post in mind.

Background

Existing WIDS Tools

Analyzing 0x90/wifi-arsenal especially in search of wireless intrusion detection systems (WIDS) I realized that there just is no complete ready-to-go solution yet, at least regarding free and open source software (FOSS). For me a WIDS should serve the following needs:

  • detection of most of the known Wi-Fi attacks
  • scalability and thus being able to work within big organizations
  • simple expandability (there are always more attacks to come ;-))

Although there is indeed software on GitHub which can be used to detect Wi-Fi attacks, they are usually specialized on some attacks and/or they are hobby projects which would not fit in setups of bigger environments. Please have a look at the defence-related Wi-Fi tools on the wifi-arsenal list.

An exception should be mentioned: Kismet. It is probably the most famous and complete FOSS Wi-Fi solution and very popular. Still, it does not seem to fulfill the above necessities completely. And it is probably not the objective of Kismet to be a full-featured WIDS either. Instead it has many features for pentesting Wi-Fi networks and other interesting stuff.

Why Not Just Expanding Existing Programs?

One solution would be to simply add needed functionality to Kismet. And this is definitely a good idea and I encourage everyone to improve the code of Kismet. Some needs mentioned above could be solved with a microservice approach more generally though. This is exactly what EEWIDS tries to achieve. By creating a containerized framework EEWDIS enables

  • scalability
  • working easily in setups of bigger organizations
  • the possibility to add functionality easily (see below)

Main Idea of EEWIDS

Simple layout sketch of EEWIDS
Simple layout sketch of EEWIDS

Basis Kismet

EEWIDS uses Kismet as a basis. Thus, it uses Kismet’s advantages and tries to add functionality by using container techniques. As Kismet is under heavy development right now, EEWIDS uses the git version of Kismet right away, which is completely different to the last release from 2016. The Kismet remote capture (which replaces the former Kismet drone) is the only piece of software, which can not be containerized. The Kismet remote capture has to run on the machine which contains a Wi-Fi card which is able to monitor the traffic. As Kismet is very popular the Kismet remote capture will already run on many different machines and platforms, e.g. on OpenWrt. Therefore, it is better to use Kismet as a basis for capturing the data instead of building an own system.

The Kismet remote capture will send the data to a Kismet server instance which is running in a container. By using the Kismet server we will be informed about every attack which Kismet did detect and thus we can reuse the work already done on this side. EEWIDS will attach to the Kismet server to:

  • pull the pcap-ng data stream which contains all data captured
  • pull all alerts raised by Kismet server itself

Message Broker RabbitMQ

Both kind of information will be parsed and submitted to a Message Broker afterwards. The Message Broker is the central point of EEWIDS. By using RabbitMQ – one of the most popular systems of its kind – it is easily possible to subscribe to a needed information. This is supposed to be the big advantage for developers. Thus, instead of capturing and parsing Wi-Fi packets itself, a detection method only needs to subscribe to the needed information and will receive it directly from the Message Broker. Furthermore, the developer can use any programming language or system which is needed for this kind of detection, without bothering C++ or other stuff, which may would be necessary for Kismet plugins.

Analyzing and Visualization

The actual analyzing is done in services dedicated to this task. E.g. instead of parsing packages, looking for Beacons and analyzing it afterwards, a service will just subscribe to all Beacon frames. All other frames are not of interest. The service does not need to parse the Beacon frames, it just needs to access the json-formatted information it got from the Message Broker, e.g. data[‘wlan.ssid’] or data[‘wlan.bssid’]. This can be done independent of the programming language, as most of them already have modules for json and are able to access RabbitMQ. This setup should indeed work for every language which already has a client listed on RabbitMQ website.

Another advantage is the freedom of choice of visualization/analyzing software. It is easily possible to include either influxdata’s TICK stack or the elastic stack, both Open Source analyzing software which also have anomaly detection methods. These stacks and other software already have interfaces to access RabbitMQ and to read json-formatted data and thus it is easy to extract the collected information as needed.

This should make it easy to extend EEWIDS in various ways. Let’s see what can happen.

Focus

The usability on a developers perspective depends on the availability of logged frame information actually stored in RabbitMQ and the existence of easily adaptable templates. Furthermore, it has to be as easy and straight-forward to deploy the system as possible. That’s why I’d like to focus on three things:

  • the parsing of Kismet’s pcap-ng files should be as complete as feasable
  • there should exist templates for some major programming language to describe the usage
  • the deployment should work straight forward

Introduction: OpenWLANMap App

Hi,

My name is Lilli and I am studying technical computer science at the 6.th semester in Hamburg, Germany. In this summer, i will work on a new wardriving app for openwifi.su

OpenWifi.su is working on wifi positioning system. It uses an android app called OpenWLANMap App as the wardriving tool to collect wifi access points and sends it with the geolocation of the phone to the backend. The backend stores the data in database and also offers an API for non-GPS devices to request their positions based on the surrounding wifis.The backend currently uses triangulation technique on the numbers of access points it receives from the request device to calculate it’s geolocation.

A data entry from the wardriving app is currently BSSID + LATITUDE + LONGITUDE, which is stored temporarily effectively in local disk with 28 bytes (12 bytes for 12 characters of the MAC Address, 8 bytes for each latitude and longitude) before being uploaded to backend. The wardriver can do it manual or automatically. The app respects _nomap Wifi APs and does filter out some mobile hotspots on public transportation in europe. Unfortunately the app is hardly out of date. There are no developers working on the app and no updates for years. It does not run in new android devices. The OpenWifi.su has an amazing community of wardriver, over four thousands people. They have to keep very old phones to be able to run the app. But this community began to shrink in fact because peoples buy new phones which are not able to run the old app anymore.

I am so glad to get involved in the project and can spend my Google Summer of Code rewriting the app. Thank to freifunk community I was allowed to participate in the Wireless Community Weekend in Berlin in the community bonding period and had the chance to present my project, as well as talk to people about it and possible solutions for many problems. I spent the last weeks analysing the old app code and was talking a lot with my mentor about the old app performance and functionalities and ended up with many important decision about the design for new app. Here are some of them

  1. Wlocator is a service of getting GPS either from the device itself. In worst case where the GPS is undefined, it will send a request with the surrounding wifis to the Openwifi.su backend to ask for it’s geolocation. The service will run every n seconds
  2. Wifiscan is a service of scanning wifi access points. All the data of the AP such as BSSID, SSID, RSSI, frequency, channel , encrypted method, scan timestamp etc. will be scanned and display as user’s option. Necessary data will then be stored temporally local and later on uploaded to the database. The service will be stopped if the GPS of the device isn’t changed after n seconds in order to save device’s battery.
  3. Wififilter helps filter out: _nomap, mobile hotspot ( Call for help to collect mobile hotspot from different countries), ad_hoc network (I am working on it), collect open wifi to automatic connect and upload data if possible.
  4. Use trilateration or other techniques to define the location of the scanned AP better
  5. WifiUpload let users upload the data manual, automatic if internet available, automatic if only wifi available
  6. Extension: upload data to different APIs
  7. Saving resouces: stop scan service after n second of not changing GPS, put app in standby/doze mode if GPS does not change after n second, reduce brightness, kill app if battery critic
  8. Different languages available
  9. etc.

The plan for the next three months will be:

  1. Design new architecture for new app functionalities
  2. Design new UI
  3. Implement all logic functionalities
  4. JUNIT test + documentation

Stay tuned, I will update it soon.

L3I2