The AccessPointMap project can be described as "White hat war-driving". AccessPointMap consists in collecting and analyzing data about access points, their security and geolocation (without connecting to the network or interacting with it in any way). The platform also allows for the storage of collected (for example via: Aircrack-ng or Wireshark) IEEE802.11 frames, for later analysis. It is possible thanks to a custom implementation of a network frame parser. In contrast to similar projects, the project does not focus on statistics on a global, but on a local scale. The main assumption of the project is to pay attention to the lack of education and knowledge of people about their own networks, which often have a default, unsafe configuration. Over time, the project has changed a lot, initially consisting of a mobile application for collecting data, a frontend website presenting the data, and a backend system that processes the data. However, now only the backend system is maintained, which is not dependent on a specific frontend implementation and can be easily interacted with via the REST API. The main idea is to use the AccessPointMap platform as a self-hosted service, whether on a VPS or on a local machine. This guarantees us privacy and data security. The project supports many formats, both for importing and exporting data (such as JSON, CSV, NETXML, KML, etc.). The general format of the access points is kept versatile, so it is very simple to integrate other tools with AccesPointMap.
The project consists of several parts:
-
Relational database. Support for MySQL, MariaDB and Sqlite (Only SQL Server earlier)
-
ASP.NET Core REST API
-
Angular client/administration application (The concept of the main client application has been dropped and is not currently under development, it is recommended to use AccessPointLab)
-
Xamarin-based mobile application for collecting data (The concept of the mobile data collection application has been dropped and is not currently under development)
-
ESP8266 microcontroller based hardware device for collecting data (The concept of the data collection hardware has been dropped and is not currently under development)
-
Wigle [Integration version: 1.1.0] - The platform can handle the file format generated by the WiGLE WiFi Wardriving application (important: APM is not the preferred place for handling collected data). The collected data is sent to the server in CSV and KML format.
-
Aircrack-ng [Integration version: 1.1.0] - The project has been adapted to the data collected by the airodump-ng segment. The data collected by the application are analyzed, processed and prepared for integration with other access points already in the system. Geolocation data collection is also supported. It is also possible to upload the collected IEEE802.11 frames in the CAP format. The collected access point data is sent to the server in CSV, NETXML, KML format.
-
Wireshark [Integration version: 0.0.0-alpha] - Thanks to the custom implementation of the IEEE802.11 frame parser, the project is able to store frames of specific access points collected with the Wireshark software. The collected data is sent to the server in PCAP format.
-
Kismet (under development)
-
For network administrators - Mapping local access points can facilitate the work of maintaining and servicing extensive network infrastructures.
-
For Internet Service Providers (ISPs) - Mapping access points in a given town or city can provide valuable information related to the further expansion of Internet services or future marketing efforts.
-
For students and teachers - The project can be a valuable teaching aid showing the operation and features of wireless networks. In addition, mapping a school or campus network can facilitate the administration and maintenance of such a network.
-
For "home network administrators" - You can map all your home access points and make sure they are properly secured.
The basic technology stack used by the project. As a "historical curiosity" it is worth noting that the application has changed a lot over time and was initially written in PHP, then it was transferred to NodeJS using ExpressJS, and then it was transferred to the .NET platform and is constantly evolving:
-
.NET Core - a open-source, cross-platform, managed computer software framework for Windows, Linux, and macOS operating systems.
-
Angular - a open-source web application framework that allows you to create "Single-Page" client interfaces.
-
MariaDb - a fork of the MySQL database solution characterized by support for multiple architectures and high performance.
-
Docker - Virtualization at the operating system level. The division into microservices provides high scalability of the entire project.
-
Quartz.NET - Background jobs scheduling framework for .NET
-
Entity Framework Core - Modern object-database mapper for .NET Core
-
Pomelo Entity Framework Core MySQL - Entity Framework Core provider for MySQL and MariaDB built on top of MySqlConnector
-
Serilog - Simple .NET logging with fully-structured events
-
FluentValidation - A popular .NET validation library for building strongly-typed validation rules.
-
OpenLayers - This technology makes it easy to put a dynamic map in any web page.
-
ChartJS - Simple yet flexible JavaScript charting for designers & developers