Found a query to *.*.telemetry.blinesec.com in your logs?

How Data Privacy works in Baseline Investigator

This page describes how application data is collected from Baseline Investigator. Data collection is strictly opt-in. When enabled, it collects 13 bytes per session, per day and contains no personally identifiable information. For non‑commercial users there is also no stable identifier of any kind, so it can’t be used to build a profile of a specific user or device. Commercial users carry a fixed organization ID, shared by everyone licensed under that organization.

Data Privacy Facts

Per session sent at most once / 24 hrs
Amount collected 13 bytes
About the size of the text message, “Hello friend!”
Opt‑in required Yes — off by default
Persistent identifiers None*
Location precision IP subnet†
Encryption ECIES · P‑256
Shared with third‑parties Never
Session Data 30 days
Aggregate statistics 1 year

* Commercial licensed users carry a fixed organization ID.

† Depends on your DNS provider.

When data is sent

One data message is sent when the application shuts down or once every 24 hours, whichever happens first. This includes when the application incurs a fault or crash — the application makes a best effort to send a data message prior to shutdown.

If the application runs longer than 24 hours, it sends a data message and then resets all session and data fields, so that sessions can’t be correlated beyond a 24‑hour window.

What data is sent

The message is designed to help Baseline Security Consulting approximate the size of the user base and which ‘major’ functionality is used in a session. Specifically, it includes:

Here is an example message, with its values in hexadecimal format:

An example 13‑byte data message, color‑coded by field.

As a human‑readable data message, it conveys the following:

“The application Baseline Investigator, v0.2.0, used the ENRICHMENT feature during session 2109F8DA, under a non‑commercial license.”

The full details of the data message contents are included below. For all users, no user nor device identifiable information is collected. For commercial users, a company identifier is included in the message.

How data is sent

Data is sent via a DNS A record query that contains an encrypted version of the 13‑byte data message, along with a 33‑byte ephemeral public key, both base32 encoded. The answer to the query is ignored by the application. Additionally, Baseline’s DNS servers answer these queries with localhost (i.e. 127.0.0.1 and ::1) to ensure no traffic is inadvertently sent externally.

All thirteen bytes of the data message are encrypted using ECIES over the P‑256 public‑key cryptography scheme, and are not decryptable by any third party in transit nor at rest. The end‑user’s private key is ephemeral, generated by the app each session, and never stored on their host. Baseline’s private key is held securely in a cloud‑managed secrets store.

All data is inserted into DNS queries for domains matching this pattern:

*.*.telemetry.blinesec.com

Once encrypted and encoded, an example data message looks like this:

alludhh67rq4r7mafvgwnpicqd7nv4xyxmf6w.vowxtsqsvlpbhgomrydsena4omnfkwjnpxkje.telemetry.blinesec.com

Why DNS? Using DNS as the transport gives end‑users agency over how much information is transmitted back to Baseline Security Consulting. At most, Baseline receives the data message plus the timestamp and the IP subnet the user was on at the time. The user can prevent Baseline from receiving IP subnet information based on their choice of DNS provider. Use of DNS over HTTPS also ensures no third party, beyond the DNS provider, can see the encrypted data in transit. If a third party attempts to tamper with or alter the data in transit, it will fail decryption and alert Baseline Security that an attack potentially was attempted.

How data is used and stored

Authoritative DNS server logs for blinesec.com are collected by Baseline Security Consulting and decrypted as they are received. The decrypted logs are parsed and kept in cloud‑based blob storage, where they are used to build datasets and dashboards of user‑base statistics. Examples include:

Retention

On-device state for the once-ever flags

A handful of flags (see FIRST_LAUNCH, FIRST_VALUE, VERSION_FIRST_RUN, and RETAINED_WEEK in the flag table below) only make sense if the app remembers whether they’ve already fired. That memory lives entirely on the user’s device, in a small file at:

~/Library/Application Support/Baseline Investigator/telemetry-state.json

The file is plain, human‑readable JSON. It holds only which of those flags have already fired, the last app version run, and which of the past few calendar weeks the install was active in — nothing case‑derived, no file names or paths, and no timestamp finer than a week. The file itself never leaves the device; only the flags it produces are sent, inside the encrypted data message described above.

It is created only while data collection is enabled, and is deleted the moment data collection is turned off. You’re welcome to open it and read it yourself — it includes a comment pointing back to this page.

Found a query to *.*.telemetry.blinesec.com in your logs?

You’re in the right place. Here’s what it is and what it means.

In short

A device on your network is running Baseline Investigator with data collection enabled. The query you saw carries a tiny, encrypted, anonymous usage message — no personal or device information, no stable identifier, and no data leaves via the DNS answer (our servers reply with localhost). It is not malware, a beacon, or data exfiltration.

A query you saw will look something like this:

alludhh67rq4r7mafvgwnpicqd7nv4xyxmf6w.vowxtsqsvlpbhgomrydsena4omnfkwjnpxkje.telemetry.blinesec.com

What that random-looking string actually is:

If you’d rather it stop

Want the full picture? The rest of this page explains exactly what is collected, how it’s encrypted and sent, and how it’s stored and retained, with byte‑level details if you want to decode a message yourself.


Additional Details

Data message format

All of the session data is packed into a 13‑byte session string to minimize both network traffic and its ability to contain any identifying information. Once encrypted, sessions, users, and other details cannot be differentiated from each other.

FieldSizeDescription
Application nibble Number representing the application (0–15): 1 = Baseline Investigator; 2–15 reserved for future apps.
Major Version nibble Number representing the major version of the application (0–15).
Minor Version byte Number representing the minor version (0–255).
Patch Version byte Number representing the patch version (0–255).
Major Feature Bitflags 2 bytes Bitflags representing which major features were used in the session / last 24 hours.
Random Session Identifier 4 bytes A random application session identifier, with an expiration time of 24 hours. If the session lasts longer, a new one is created.
Organization Identifier 4 bytes The unique identifier assigned to an entity with a commercial license. For non‑commercial users, this is set to all zeros.

Major feature bit flags

These flags are set to understand which ‘major’ pieces of Baseline Investigator functionality were used in the session. No other details — how they were used, when they were used, how many times they were used, the data manipulated by the feature, etc. — are collected. A flag only answers the question: during the session, was the feature used at all?

Bit FlagValueDescription
APPLICATION_CRASHED2^0Set if the shutdown was due to an application fault (best effort).
LLM_PROMPT2^1Set if a prompt is sent to an LLM during the session.
LLM_SKILL2^2Set if a skill is invoked with an LLM during the session.
LLM_AUTOMATION2^3Set if an automation is invoked during the session.
ARTIFACT_IMPORT2^4Set if any file artifacts are imported during the session.
BULK_IMPORT2^5Set if any IOCs are bulk imported during the session.
ENRICHMENT2^6Set if any enrichments are run during the session.
PIVOT2^7Set if any pivots are run during the session.
HAS_ANY_API_KEY2^8Set if at least one data source has a configured API key at the time the message is sent.
SAVE_TO_DISK2^9Set if an investigation is saved to disk during the session.
SETTINGS_CHANGED2^10Set if any user setting is changed during the session, whether or not it’s explicitly saved.
FIRST_LAUNCH2^11Set once, on the very first session of a fresh install.
FIRST_VALUE2^12Set once, the first time an install saves an investigation of ten or more nodes.
VERSION_FIRST_RUN2^13Set once per app version, on the first session run on that version.
RETAINED_WEEK2^14Set once per calendar week if the install was also active in at least one of the prior three weeks.
Reserved for future use2^15Set to zero for now.

Bit meaning changes

Bit meanings can be reassigned between app versions. The version field in each message tells you which meaning applies — don’t compare a changed bit across versions on either side of a change below.

BitBeforeAfterSince
2^8RELOAD_FROM_DISKHAS_ANY_API_KEYv0.10.0
2^10SETTINGS_SAVEDSETTINGS_CHANGEDv0.10.0

Decoding a field yourself: the Features Used value is a hexadecimal number whose bits map to the table above. For example, 0x0040 is 2^6, which corresponds to ENRICHMENT; a value of 0x0044 would mean both ENRICHMENT (2^6) and LLM_SKILL (2^2) were used. Read each field left‑to‑right against the Data message format and these tables to decode any message.

Contact us

If you have any questions about data collection that aren't covered on this page or you're interested in using Baseline Investigator in your organization, please reach out to us at contact [at] baselinesecurityconsulting [dot] com. We are happy to answer any questions you may have.