Skip to content

Commit 21ab79d

Browse files
committed
add explicit online privacy documentation
1 parent 15a836a commit 21ab79d

3 files changed

Lines changed: 168 additions & 0 deletions

File tree

docs/about/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Binary Ninja is a registered trademark of [Vector 35](https://vector35.com/) and
44

55
Vector 35 is proud to both [use](open-source.md) and contribute to a number of open source products as well as release many components of Binary Ninja as [open source](https://github.com/orgs/Vector35/repositories?q=&type=source&language=&sort=) as well.
66

7+
For details on what network requests Binary Ninja makes and how to control them, see the [Privacy](privacy.md) page.
8+
79
Vector 35 (Officially, Vector 35 Inc) is a Delaware C Corp with their primary office in Melbourne, FL and a mailing address of:
810

911
```

docs/about/privacy.md

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
# Privacy
2+
3+
Binary Ninja is designed with user privacy in mind. During normal operation, **no binary data from files you are analyzing is sent to any server**. This page documents every category of network communication that Binary Ninja may perform, what data is transmitted, and how to disable each one.
4+
5+
## Update Checking
6+
7+
By default, Binary Ninja periodically checks for software updates.
8+
9+
**Data sent to `master.binary.ninja`:**
10+
11+
- Product name
12+
- License serial number
13+
- Update signature (a cryptographic key used to verify update eligibility)
14+
- Current Binary Ninja version
15+
- Platform (e.g., `linux`, `macos`, `windows`)
16+
- CPU architecture (e.g., `x86_64`, `arm64`)
17+
- OS major version number
18+
- Linux distribution name (Linux only)
19+
- Your external IP is included in the webserver logs but not explicitly included in the update request
20+
21+
A separate license expiration check sends only the license serial number.
22+
23+
All three of the settings below use the same update server endpoint and send the same data listed above. The results are cached briefly, so whichever feature triggers the request first will serve the others from cache, but any of them can initiate the connection. To prevent all update-related network requests, all three must be disabled.
24+
25+
**Settings to disable:**
26+
27+
| Setting | Default | Description |
28+
|---------|---------|-------------|
29+
| `network.enableUpdates` | `true` | Automatically check for updates on startup |
30+
| `network.enableUpdateChannelList` | `true` | Fetch available update channels (used in preferences) |
31+
| `network.enableReleaseNotes` | `true` | Fetch release notes for display on the launchpad |
32+
33+
## Plugin Manager
34+
35+
The plugin manager contacts `extensions.binary.ninja` to fetch plugin metadata and download plugins.
36+
37+
**Data sent:**
38+
39+
- Standard HTTPS request headers
40+
- When using short URLs for plugin downloads (enabled by default), download counts are tracked by the server
41+
42+
No personal data or information about your analysis is transmitted.
43+
44+
**Settings to disable:**
45+
46+
| Setting | Default | Description |
47+
|---------|---------|-------------|
48+
| `network.enablePluginManager` | `true` | Master switch for all plugin manager networking |
49+
| `pluginManager.officialRepo` | `true` | Enable official plugin repository |
50+
| `pluginManager.communityRepo` | `true` | Enable community plugin repository |
51+
52+
Setting `network.enablePluginManager` to `false` disables all plugin manager network requests.
53+
54+
## PDB Symbol Downloads
55+
56+
When analyzing Windows binaries, Binary Ninja can automatically download PDB debug symbol files from Microsoft's public symbol server (or other configured servers).
57+
58+
**Data sent to symbol servers:**
59+
60+
- PDB identifier (GUID and age from the PE header)
61+
- PDB filename
62+
63+
This information is derived from the binary being analyzed and is sent to whichever symbol servers are configured.
64+
65+
**Settings to disable:**
66+
67+
| Setting | Default | Description |
68+
|---------|---------|-------------|
69+
| `network.pdbAutoDownload` | `true` | Automatically search for and download PDB files |
70+
| `pdb.files.symbolServerList` | `["https://msdl.microsoft.com/download/symbols"]` | List of symbol servers to query |
71+
72+
Setting `network.pdbAutoDownload` to `false` prevents automatic PDB downloads.
73+
74+
## Crash Reporting
75+
76+
Binary Ninja includes an optional crash reporting system powered by Sentry/Crashpad. **Crash reporting is disabled by default in paid editions.**
77+
78+
When enabled, crash reports are sent only if Binary Ninja crashes, and include:
79+
80+
- Stack traces at the time of the crash
81+
- System information (OS version, CPU architecture)
82+
- Binary Ninja version and edition
83+
- Loaded module names and addresses
84+
85+
Crash reports **do not** include:
86+
87+
- Contents of files being analyzed
88+
- User documents or project data
89+
- Personal information
90+
91+
**Settings to disable:**
92+
93+
| Setting | Default | Description |
94+
|---------|---------|-------------|
95+
| `crashReporting.enabled` | `false` | Enable crash reporting (requires restart) |
96+
97+
Crash reporting can also be controlled via environment variables: set `BN_DISABLE_CRASH_REPORTING` to force it off, or `BN_ENABLE_CRASH_REPORTING` to force it on regardless of the setting.
98+
99+
## WARP (Function Signature Matching)
100+
101+
WARP is Binary Ninja's function signature matching system. It can operate entirely locally using bundled signature files, or optionally connect to a network server for additional signatures.
102+
103+
**Network functionality is disabled by default.** No WARP network requests are made unless you explicitly enable the `network.enableWARP` setting and restart Binary Ninja. Even once enabled, the only automatic network activity is fetching known function signatures from the server during analysis. All uploads of signature data require explicit user action.
104+
105+
**Data sent to `warp.binary.ninja` (when network is enabled):**
106+
107+
- Function GUIDs (128-bit identifiers derived from function bytecode)
108+
- Platform and architecture of the binary being analyzed (e.g., `windows-x86_64`)
109+
110+
Function GUIDs are computed from the byte content of functions and are used to look up known function names and type information. No raw binary content is transmitted, however it would be possible to match against a copy of the same file to know if the same file is being analyzed.
111+
112+
**Settings to disable:**
113+
114+
| Setting | Default | Description |
115+
|---------|---------|-------------|
116+
| `network.enableWARP` | `false` | Master switch for WARP network requests (requires restart) |
117+
| `warp.container.serverUrl` | `https://warp.binary.ninja` | Primary WARP server URL |
118+
| `warp.container.serverApiKey` | (empty) | API key for authenticated access |
119+
120+
## External URLs
121+
122+
Binary Ninja can open files from external URLs using the menu. This requires explicit user interaction.
123+
124+
**Settings to disable:**
125+
126+
| Setting | Default | Description |
127+
|---------|---------|-------------|
128+
| `network.enableExternalUrls` | `true` | Allow opening external URLs |
129+
130+
## Network Monitoring
131+
132+
For full visibility into all network requests Binary Ninja makes, you can enable download logging:
133+
134+
| Setting | Default | Description |
135+
|---------|---------|-------------|
136+
| `network.logDownloads` | `false` | Log all URLs accessed by the download provider |
137+
138+
Setting `network.logDownloads` to `true` will log every URL that Binary Ninja contacts to the log console. You can also set the environment variable `BN_DEBUG_TRACE_NETWORK=1` for even more detailed network tracing with stack traces.
139+
140+
## Proxy Configuration
141+
142+
All network requests respect your system's proxy settings. You can also configure a proxy explicitly:
143+
144+
| Setting | Default | Description |
145+
|---------|---------|-------------|
146+
| `network.httpsProxy` | (empty) | Override HTTPS proxy (auto-detected by default) |
147+
148+
## Disabling All Network Access
149+
150+
To completely prevent Binary Ninja from making any network requests, set the following:
151+
152+
```json
153+
{
154+
"network.enableUpdates": false,
155+
"network.enableUpdateChannelList": false,
156+
"network.enableReleaseNotes": false,
157+
"network.enablePluginManager": false,
158+
"network.pdbAutoDownload": false,
159+
"network.enableExternalUrls": false,
160+
"network.enableWARP": false,
161+
"crashReporting.enabled": false
162+
}
163+
```
164+
165+
Note that for non-floating licenses, license validation is performed locally and does not require network access.

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ nav:
153153
- 'about/index.md'
154154
- License: 'about/license.md'
155155
- Open Source: 'about/open-source.md'
156+
- Privacy: 'about/privacy.md'
156157
- Icons: 'about/icons.md'
157158

158159
extra:

0 commit comments

Comments
 (0)