1. Executive summary
A SANS ISC guest diary by intern Jeffray Spence describes using Elastic Kibana field statistics on DShield honeypot data to isolate a scanning campaign by its HTTP language headers. Filtering on the Accept-Charset value GBK,utf-8;q=0.7,*;q=0.3 and on Accept-Language values beginning zh-CN,zh;q=0.9 reduced roughly 960,000 honeypot records to 31 requests from six IP addresses in Canadian ISP AS-7456, all requesting the same six paths. No CVE, malware, exploit or named threat actor is identified, and no CISA KEV entry applies. The risk to EMEA financial services is low: this is commodity internet-wide web scanning, and the value to a defender is the detection method (language-header clustering), not the campaign. The advisory is single-sourced to one SANS ISC diary and the indicators are honeypot-observed only.
2. Regulatory framing
No specific DORA/NIS2 article is directly engaged by this item.
3. Technical analysis & attack chain
The item describes an analysis technique applied to honeypot traffic, not an intrusion. The confirmed sequence is:
- A DShield honeypot (Raspberry Pi) running Cowrie and a web honeypot fed roughly 960,000 records into an Elastic SIEM over slightly more than three weeks. Only 15,271 records triggered any of four detection rules; the remainder triggered none.
- The analyst selected the "Sonicwall Appliance Login Page" rule (41 distinct source hosts) as a working subset, then used Kibana Discover field statistics to find fields with low distinct-value counts (Distribution of 2 to 6) rather than fields common to every record.
- Two fields stood out:
http.request.connection(values "Close" and "close", a casing artefact of log parsing) andhttp.request.mime_type, which carried the Accept-Charset stringGBK,utf-8;q=0.7,*;q=0.3. GBK is the extension of the GB 2312 character set for Simplified Chinese. - Filtering on that Accept-Charset string across both the webhoneypot and Cowrie indices returned 47 requests. Field statistics on that subset showed two User-Agents and two
source.geo.region_namevalues: Beijing and Ontario. - Filtering to Ontario returned three records, all from AS-7456. Pivoting to
source.geo.as.number: 7456and repeating the distribution analysis surfaced Accept-Language values ofzh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6(90.3% of 31 requests) andzh-CN,zh;q=0.83(9.7%). - The 31 matching requests came from six IP addresses in AS-7456 and requested the same endpoint set:
/cgi-bin/login,/config.json,/sitemap.xml,/robots.txt,/favicon.icoand/. The analyst characterises this as an automated campaign.
The requested paths are generic discovery targets: a CGI login endpoint, a configuration file, standard crawler files and the site root. The source gives no response codes, no evidence of successful exploitation, no payload and no post-compromise activity. The only capability demonstrated is automated HTTP scanning with a fixed header set.
The source also lists four domains seen in source.domain values from AS-7456: leheedu[.]cn, mail.,brossy.com[.]cn (a malformed value as printed), mail.brossy.com[.]cn and tzrhxln[.]cn. The analyst calls tzrhxln[.]cn a "suspect high entropy domain". No resolution data, registration data or malware association is given for any of them.
Confidence caveats. Every fact above rests on a single source: one SANS ISC guest diary written by a student intern, based on one honeypot over three weeks. The geo-IP attribution to Ontario and to AS-7456 is the analyst's own enrichment and is not independently corroborated. The source itself notes that geolocation is weak in a VPS-enabled world and prefers AS number. No actor is named and none should be inferred: a Chinese language preference in a header is a configurable client setting, not proof of operator location, and the source does not claim otherwise. Treat the campaign as unattributed commodity scanning.
4. Mitigation & containment
P1 (within 24h)
- Search web-proxy, WAF and web-server logs for the exact Accept-Charset string
GBK,utf-8;q=0.7,*;q=0.3and for Accept-Language values matchingzh-CN,zh;q=0.9*andzh-CN,zh;q=0.83. Where these co-occur with requests to/cgi-bin/loginor/config.json, pull the full request and response and check for a 200 on either path. - Confirm that
/config.jsonis not served on any internet-facing host. A static 404 or 403 is the expected state; a 200 is a finding to escalate. - Block the six source IPs at the edge only after confirming they are not corporate egress or a known partner. They are honeypot-observed scanners and may be shared VPS addresses.
P2 (within 72h)
- Add the language-header correlation to SIEM detection (rule in §6) so the technique runs continuously rather than as a one-off query. The source's method maps directly onto Elastic: field statistics on
http.request.mime_typeandhttp.request.accept-language, filtered to low distinct-value counts. - Review whether the organisation's own internet-facing estate exposes
/cgi-bin/paths at all. Where a legacy CGI login exists, retire it or place it behind the WAF with an explicit deny for non-allowlisted source geographies, accepting that geo blocking is weak against VPS egress. - If the four
.cndomains appear in DNS or proxy logs, treat as reconnaissance and review any session that followed.
P3 (within 7 days)
- Extend the same low-cardinality field analysis to other log indices (VPN, mail, API gateways) where optional client headers are retained. The technique depends on logging full HTTP headers; confirm header capture is enabled and retained long enough to query.
- Document the header values as detection content, not as blocklist entries, since the same scanner set will rotate addresses within the AS.
No vendor fix applies: no product vulnerability is described.
5. Indicators of compromise
No malware indicators are present. The atomic indicators below are honeypot-observed scanner addresses and domains, single-sourced to the SANS ISC diary. Verify before enforcing.
| type | value | confidence | source |
|---|---|---|---|
| ipv4 | 165[.]154.36.91 | low (single source, honeypot) | SANS ISC diary 33442 |
| ipv4 | 165[.]154.29.93 | low (single source, honeypot) | SANS ISC diary 33442 |
| ipv4 | 165[.]154.11.140 | low (single source, honeypot) | SANS ISC diary 33442 |
| ipv4 | 165[.]154.120.226 | low (single source, honeypot) | SANS ISC diary 33442 |
| ipv4 | 165[.]154.33.72 | low (single source, honeypot) | SANS ISC diary 33442 |
| ipv4 | 165[.]154.182.221 | low (single source, honeypot) | SANS ISC diary 33442 |
| domain | tzrhxln[.]cn | low (single source, honeypot) | SANS ISC diary 33442 |
| domain | leheedu[.]cn | low (single source, honeypot) | SANS ISC diary 33442 |
| domain | mail.brossy.com[.]cn | low (single source, honeypot) | SANS ISC diary 33442 |
| asn | AS-7456 | low (single source, geo-IP enrichment) | SANS ISC diary 33442 |
ipv4 165[.]154.36.91
ipv4 165[.]154.29.93
ipv4 165[.]154.11.140
ipv4 165[.]154.120.226
ipv4 165[.]154.33.72
ipv4 165[.]154.182.221
domain tzrhxln[.]cn
domain leheedu[.]cn
domain mail.brossy.com[.]cn
asn AS-7456
Behavioural indicators
| behaviour | where to observe | confidence |
|---|---|---|
Accept-Charset header exactly GBK,utf-8;q=0.7,*;q=0.3 |
web server, WAF, proxy request headers | medium (exact string from source) |
Accept-Language zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 |
web server, WAF, proxy request headers | medium (exact string from source) |
Accept-Language zh-CN,zh;q=0.83 |
web server, WAF, proxy request headers | medium (exact string from source) |
Sequential requests to /cgi-bin/login, /config.json, /sitemap.xml, /robots.txt, /favicon.ico, / from one source |
web server access log | medium (path set from source) |
| Same header set spread across multiple IPs in one AS | proxy or WAF logs joined on AS number | low (single source) |
6. Detection
The source gives no file artefacts, so a YARA rule is not appropriate. The usable material is HTTP request-header and path content, which suits a Sigma rule against web/proxy logs.
title: Chinese-language HTTP header scanning cluster
id: 7f3c2a91-4d6e-4b8a-9c1f-2e5a0b7d4c33
status: experimental
description: Detects web requests carrying the GBK Accept-Charset string or zh-CN Accept-Language values observed in a DShield honeypot scanning campaign, optionally combined with common discovery paths.
author: Adverse Trace
date: 2026/10/26
references:
- https://isc.sans.edu/diary/rss/33442
logsource:
category: webserver
detection:
selection_charset:
cs-method: 'GET'
cs-uri-stem|endswith:
- '/cgi-bin/login'
- '/config.json'
- '/sitemap.xml'
- '/robots.txt'
- '/favicon.ico'
selection_header:
cs-accept-language|startswith:
- 'zh-CN,zh;q=0.9'
- 'zh-CN,zh;q=0.83'
condition: selection_charset and selection_header
fields:
- c-ip
- cs-uri-stem
- cs-accept-language
falsepositives:
- Legitimate users or crawlers with Chinese locale settings hitting the same paths
level: low
The Accept-Charset string GBK,utf-8;q=0.7,*;q=0.3 is not a standard field in most web log schemas; where full headers are captured (for example in a proxy or WAF event field), add it as an additional selection on the raw header value and OR it with selection_header. Tune against a week of production traffic before alerting: Chinese-locale clients are legitimate and will match the Accept-Language values on their own.
7. Sources
- Jeffray Spence, SANS ISC Guest Diary, "Looking for a Language [Guest Diary]", https://isc.sans.edu/diary/rss/33442, published 2026-10-26 (diary dated Wed, Oct 21).
- DShield honeypot tooling referenced by the diary: https://github.com/dshield-isc/dshield
- DShield SIEM build referenced by the diary: https://github.com/bruneaug/DShield-SIEM
- Fortinet PSIRT blog on reported FortiGate credential compromise, cited by the diary for context only: https://www.fortinet.com/blog/psirt-blogs/analysis-of-reported-credential-compromise-of-fortigate-devices
8. Adverse Trace position
Adverse Trace assesses this item as informational: no CVE, no CISA KEV entry, no malware and no named actor, and the only source is a single student-written SANS ISC diary built on one honeypot over three weeks. The scanner addresses and .cn domains are low-confidence, single-sourced and should be verified against your own logs before any block is enforced; the durable value is the detection method, which we will fold into our web-log detection content as the Sigma rule above and tune against client traffic to control false positives from legitimate Chinese-locale users. Clients with internet-facing /cgi-bin/ or /config.json paths should confirm those paths return 404 or 403 within 24 hours and report any 200 response to us.
Published via PulseTrace — Adverse Trace threat intelligence.