Science Score: 64.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
✓Committers with academic emails
2 of 2 committers (100.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Repository
Nmap for Bluetooth Low Energy
Basic Info
- Host: GitHub
- Owner: seemoo-lab
- License: apache-2.0
- Language: Swift
- Default Branch: master
- Size: 3.46 MB
Statistics
- Stars: 190
- Watchers: 11
- Forks: 20
- Open Issues: 1
- Releases: 2
Metadata Files
README.md
BTLEmap
Installation
Pull the GitHub repository, open it in Xcode and run it on iOS or macOS. The linked libraries should be fetched automatically with the Swift Package Manager integration of Xcode.
Features
The main app is divided in three parts: (1) BLE Devices, (2) Proximity View, (3) RSSI Graph.
BLE Devices
This view shows a list of BLE Devices discovered in your surrounding. Every device has an icon, either a Bluetooth logo or an icon representing the identified device class. You can click on a device to show all advertisements that have been received by this device. The advertisements are dissected at best effort. If no dissector is available or parts of the data are encrypted the binary data will be shown. If the BLE scanner has been able to detect services on this devices it lists them in the detail view as well. This includes all detected characteristics.
Using the Button with 3 Dots on the right of the list the settings are accessible.
Proximity View
The proximity view presents the same data on a circular plane. All devices are positioned on this plane according to the measured RSSI value. RSSI values do not allow distance measurement, but they give an estimation on the relative distance between all devices discovered in the area. The devices animate in real-time to new RSSI values received. A user can click on a device to show its detail view as possible on the BLE Devices view.
RSSI Graph
The RSSI graph plots a graph automatically on all received RSSI values for each device. On the left side all devices are listed and they can be select to be highlighted.
PCAP support
All received advertisements can be exported into the pcap format. This allows them to be opened in Wireshark. The export can be started from the Settings view. Pcap files can also be imported to show previous measurements.
External scanners
The app allows to get its Bluetooth scanning data from an external scanner. In our example implementation this is performed by an Raspberry Pi. How to setup the Raspberry Pi can be seen in a section below. Other scanners are generally supported, too. For this the scanner needs to support the same protocol as the Raspberry Pi and be able to communicate over TCP to the device running the app. This communication could be handled over WiFi or Ethernet.
WiSec Demo Paper
This project has been accepted as a demo on WiSec 2020. You can find the demo paper on arxiv.
Limits
Due to Apple's CoreBluetooth API the app has certain limits to the Bluetooth Low Energy access. These limits are based on the operating system and mostly apply to iOS.
- No access to manufacturer data starting with the Apple company id (0x4c00). This issue is only present on iOS / iPadOS
- No access to certain Apple specific GATT services. Present on iOS and macOS. The services will not be listed if requested
- No access to the device MAC address. The MAC address is replaces with a UUID that is generated on demand and not linked to a MAC address
Removing the limits
Those limits are introduced by Apple's entitlement scheme that grants certain permissions to apps that are signed with a specific set of entitlements. Certain Apple daemons and apps have full access to all Bluetooth data, e.g. the sharingd. To assign this entitlements to any app, Apple would need to create a provisioning profile that is signed by apple and grants the priviliges to a specific app or development team. It is possible to resign an application with any entitlements and install it on devices that supports running unsigned apps, e.g. a jailbroken iPhone.
Raspberry Pi Setup
The app supports a Raspberry pi (Rpi) as an external scanner. We created a shell script that allows setup the raspberry pi as a scanner as easy as possible. We are currently tweaking some last things before this will be released.
Icons
Icons are from
Laura Reen using creative commons license as stated in https://creativecommons.org/licenses/by/3.0/
Icons8 - https://icons8.com/license
Apple Inc - https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/
Owner
- Name: Secure Mobile Networking Lab
- Login: seemoo-lab
- Kind: organization
- Location: Darmstadt, Germany
- Website: https://seemoo.de
- Repositories: 92
- Profile: https://github.com/seemoo-lab
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: BTLEmap
message: 'If you use this software, please cite it as below.'
type: software
authors:
- given-names: Alexander
family-names: Heinrich
affiliation: 'SEEMOO, TU Darmstadt'
orcid: 'https://orcid.org/0000-0002-1150-1922'
- given-names: Milan
family-names: Stute
affiliation: 'SEEMOO, TU Darmstadt'
orcid: 'https://orcid.org/0000-0003-4921-8476'
- given-names: Matthias
family-names: Hollick
affiliation: 'SEEMOO, TU Darmstadt'
orcid: 'https://orcid.org/0000-0002-9163-5989'
repository-code: 'https://github.com/seemoo-lab/BTLEmap'
abstract: >-
The market for Bluetooth Low Energy devices is booming
and, at the same time, has become an attractive target for
adversaries. To improve BLE security at large, we present
BTLEmap, an auditing application for BLE environments.
BTLEmap is inspired by network discovery and security
auditing tools such as Nmap for IP-based networks. It
allows for device enumeration, GATT service discovery, and
device fingerprinting. It goes even further by integrating
a BLE advertisement dissector, data exporter, and a
user-friendly UI, including a proximity view. BTLEmap
currently runs on iOS and macOS using Apple's
CoreBluetooth API but also accepts alternative data inputs
such as a Raspberry Pi to overcome the restricted vendor
API. The open-source project is under active development
and will provide more advanced capabilities such as
long-term device tracking (in spite of MAC address
randomization) in the future.
license: Apache-2.0
commit: 9815bf39ecbab10f2b737ee2fcc46ddb142beeb2
version: 1.0.1
date-released: '2021-12-08'
GitHub Events
Total
- Watch event: 33
- Fork event: 2
Last Year
- Watch event: 33
- Fork event: 2
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Alexander Heinrich | a****h@s****e | 69 |
| Milan Stute | m****e@s****e | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 1
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 1.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- insidegui (1)