System live Version v0.95

See every attack the moment it happens.

CyberLiveMonitor Pro is the control room for the Magen Cyber Shield firewall. It reads your defence log in real time, plots every attacker on a live globe, classifies 23 attack types, and uses AI to explain exactly what was attempted against you - and why it was blocked.

No agent to install · No database server · Full Hebrew & English

0Classified attack types
0Live intelligence panels
0Live-user refresh
0Visual themes
0Fields per log line
0Full interface languages
Detail level Switch between a friendly explanation and the full professional depth - the copy across the site changes accordingly.
The product

A firewall without a view is a black box

Your firewall blocks hundreds of intrusion attempts a day - but without a screen you never learn about a single one of them. CyberLiveMonitor turns that dry log file into a picture you grasp in a second: who attacked, from where, what they tried, and whether we stopped them.

MCS writes firewall.log in a strict 20-field schema. The monitor pulls the file through a token-gated bridge, parses each line into an event object, runs it through a classification layer (detectAttack_mcsAttackInfo) that maps modules, signals and reputation chains onto 23 documented attack types, and streams the result into 24 reactive panels - all client-side, with no server-side pre-processing stage.

Built for a human, not for a log

Every number on screen is clickable. Click it and you get a plain-language explanation of what it means, why it matters, and what to do next.

Every stat card carries a help tooltip, and clicking it opens a drill-down with the raw records behind the number - IP, country, path, User-Agent, blocking module and risk score.

Multi-site from day one

Running five sites? All of them on one screen, with fast switching. A setup wizard walks you through the first site step by step.

Each site gets an isolated data space (site_data keyed by site/category/name): configuration, alert thresholds, cached geo, AI history and an online-users snapshot. The site id is derived automatically from the domain.

Hebrew and English - properly

Not a partial translation. Every word, report and tooltip exists in both languages, and the writing direction flips correctly.

The CSS is built on logical properties (margin-inline, start/end), so RTL/LTR flips without a second stylesheet. Translations live in the data layer (the i18n table) and are editable from the UI, with he.json/en.json as the initial seed.

Inside look

This is the screen you open in the morning

Not a diagram and not a mock-up - the dashboard itself, with data flowing through it. Every panel opens, closes and drags to wherever suits you.

The complete control room: a global threat map, verified versus blocked traffic, an activity log and AI insights - on a single screen.

The view below is a live reconstruction of the dashboard, built in HTML and CSS. Its data is illustrative only: the IP addresses come from the reserved documentation ranges (RFC 5737) and the domain is an example domain - no real customer data is shown here.

Real time

A live map of attacks from around the world

This is not a static map, and not a report generated at the end of the day. Every attack appears on the world map the moment it happens - a glowing dot at the attacker’s geographic location, with an arc drawn from it to your server. You watch the global picture develop in front of you, and the map opens to full screen.

Precise location per IPEvery address resolves to a country, region and coordinates through four geo providers, and the result is cached.
Your server markerThe protected server is marked separately at the centre, so it is instantly clear where every attack arc converges.
Tooltip on every dotHover reveals the IP, country, targeted path, blocking module and the event’s risk score.
Full screenOne click spreads the map across the whole display - a control-room or wall-screen mode.
Capabilities

Twenty-four panels. One screen.

Every panel opens, closes, drags to a new position and stays exactly where you put it. This is your view - not someone else’s.

Global attack map

Every attacker appears as a glowing dot on the world map, with an arc drawn to your server. Full screen in one click.

Canvas rendering with accurate geolocation, a separate server marker, view modes persisted to localStorage, and a per-dot tooltip carrying IP, country, module and risk score.

Live activity chart

See the rhythm at a glance: how many requests came in, how many were blocked, how many were suspicious - by hour, day, week or month.

Chart.js with four series (blocked / allowed / suspicious / dry-run) bucketed into 10-minute slots across five time ranges. Legend labels are translated in the tooltip callback so they never go stale.

AI intelligence

One click and the AI reads every recent attack, then hands you an organised report: what happened, what is worrying, what to do.

Two providers (Claude / Gemini), three analysis-depth levels and three report-length levels, per-site analysis history, PDF export. Keys live server-side only and never reach the browser.

Filtered live log

A table of every request with search, sort and filters - expand a row for the full raw detail.

Per-column sorting, advanced filters, pagination, hardened CSV export, and a responsive layout that fits any window width. Every attacker-controlled field is escaped before display.

Online users

Who is on your site right this second - real visitors and active attackers, side by side.

A 5-second refresh over a configurable window, legitimate traffic separated from live attackers, a server-side snapshot, and an option to hide your own IP from the view.

Threat level gauge

One dial that sums up the situation: how dangerous it is right now, relative to what is being blocked and how fast.

An SVG gauge weighing block ratio, request rate over the last five minutes and unique attacker count into a graded threat level, coloured dynamically from the active theme.

Defence & diversity gauges

Two complementary readings: how well the defence is working, and how varied the attackers trying it are.

The defence gauge shows block efficiency over a chosen window; the diversity gauge measures IP and country spread - high spread indicates a distributed scan rather than a single attacker.

URL explorer

Which pages on your site are attacked most - and what each of those pages actually is.

Every observed path aggregated with hit counts, automatic server-side page-title resolution (first 64KB, real status checked so error-page titles are never cached), and a full drill-down view.

Regional status

The geographic picture: which parts of the world your traffic comes from, and where the attacks come from.

Aggregation by country and region with flags, live Cloudflare range detection for diagnosing real addresses behind a CDN, and per-country geo-block state.

User insights

Six automatic insights: peak hour, busiest IP, bot percentage, most common attack type and more.

Insight cards derived in real time from the active window - peak hour, top IP, bot ratio, dominant attack class, request rate and unique country count - each with a drill-down to the underlying records.

Server hardware

CPU, memory and disk load on your server - in real time, with nothing installed on it.

OS-accurate measurement (/proc/stat delta on Linux, PerformanceCounter on Windows), with core detection and a sampling interval set from the settings panel.

8 themes & draggable layout

Arrange the panels exactly how you like, pick a colour scheme - and it all persists.

Eight themes (Dark, Nebula, Matrix, Inferno, Solar, Abyss, Light, Paper) defined as RGB triplets in CSS variables, so switching recolours canvases and gauges too. Panel order drags via SortableJS and is stored per user.

The engine

Wired straight into Magen Cyber Shield

The MCS firewall sits on your server and stops attacks. The monitor is its eyes: it reads the defence log through a secure bridge protected by a secret token, and shows you live everything the firewall did.

The firewall.log schema is locked at 20 fields and never changes - new detections arrive as new values inside existing fields, never as new fields. The monitor covers both MCS operating modes: in merged mode every signal for a request is packed into the pattern= field of a single [DETECT] [REPUTATION] line and a resulting block carries MODULE=REP:<sub>; in per_signal mode each signal arrives as its own line. Both paths are parsed.

The secure bridge

01

Secret token in its own file

.bridge-token is generated at install time, sits next to the log, and never enters source-control history. Without it - 403.

02

The log itself is browser-blocked

An .htaccess in the log folder rejects any direct request for .log/.txt/.json/.csv. The script is the only way in.

03

Smart polling via HEAD

Each cycle starts with a HEAD request returning only size and Last-Modified. If the log did not grow, nothing is downloaded.

04

Exactly one CORS header

CORS is emitted by Apache alone, after double-clearing both header tables. PHP never adds its own - otherwise the browser sees *, * and rejects the response.

Threat taxonomy

23 attack types - each with a full dossier

The system does not just say “blocked”. It tells you exactly what was attempted, how dangerous it is, and what you should do about it - in plain language.

Every type carries a full record: icon, bilingual label, severity, a 0-10 risk score, a description of the detection mechanism at module and signal level, the business-risk statement, and a list of operational recommendations. Classification runs per line at parse time.

High

SQL Injection

sqli_attack

An attempt to run database commands through an input field - including inside a JSON body.

High

XSS Injection

xss_attack

Injecting a script that would execute in other visitors’ browsers.

High

Local File Inclusion

lfi_attack

Attempting to read server files through path manipulation.

High

Web Shell Upload

webshell_attack

Attempting to plant a file that grants the attacker remote control of the server.

High

Reputation Chain

aggregation

MCS accumulated signals on one IP; crossing the threshold blocks the next request.

High

Cross-IP Campaign

campaign_scan

Four or more IPs from different networks hit the same path within 15 minutes.

High

Rate Flood

rate_flood

Abnormal request rate from one source - a load or resource-exhaustion attempt.

Medium

UA Rotation

ua_rotation_sig

One IP cycling four or more browser fingerprints in five minutes - an evasion signature.

Medium

Spoofed Bot

spoofed_bot

Claims to be Googlebot, but rDNS does not confirm the claim.

Medium

Header Anomaly

HEADER-ANOMALY

A header combination no genuine browser would ever send.

Medium

Scan Velocity

SCAN-VELOCITY

Path-to-path speed that indicates automated mapping rather than browsing.

High

Honeypot Trigger

honeypot_hit

A request to a decoy path no legitimate visitor should know exists.

Medium

Scanner Tool

scanner_tool

The signature of a known automated scanning tool.

Medium

User Enumeration

user_enum_sig

A systematic attempt to discover which usernames exist.

Medium

Country Blacklist

geo_block

Origin in a country your policy marked for blocking.

Low

Cloud Provider IP

cloud_provider

Traffic from a datacentre rather than a home network - usually automation.

High

Pre-check Reputation Block

rep_prior_block

The IP was blocked before the request was processed, on accumulated reputation.

Medium

UA Rotation (module)

ua_rotation_module

The same detection, arriving as a standalone module rather than a chain signal.

High

Aggregate Campaign (module)

aggregate_module

The MCS synthetic engine that spots cross-IP patterns.

Low

HP-LEARN Suspect

hp_learn_suspect

Learning telemetry - a candidate for future blocking, not an actual block.

Low

Direct Probe

direct_probe

A request to the raw IP instead of the domain - a clear scanning tell.

Low

Apache Race

apache_race

Apache already blocked the request before MCS could handle it.

Benign

Verified Bot

legit_bot

A legitimate crawler confirmed by rDNS - counted, never blocked.

The AI engine reads the events, spots recurring patterns and explains what happened - alongside the firewall that does the actual blocking.

The list grows with every MCS release. New detections arrive as new values inside existing fields - so they never break an existing parser.

Security

A security tool that is itself secured

A tool that concentrates all of your attack intelligence is itself a target. Every layer here was built on the assumption that someone is already trying to get in.

Threat model: an anonymous attacker from the internet, an attacker with internal-network access, and malicious content deliberately planted inside the attack log itself to hit whoever views it. All three vectors are handled explicitly.

  1. 01

    Absolute authentication gate

    No sign-in, no data. Full stop.

    The allowlist holds six actions only (config, auth-login, auth-check, auth-logout, auth-google, i18n). Each of the remaining 26 returns 401 without a valid session token - including those that return API keys, delete a site or reset the system.

  2. 02

    Sessions and passwords

    Your password is never stored as-is, and the session is only remembered if you asked for it.

    Verification via password_verify against a hash, a 32-byte cryptographic token (random_bytes) rendered as 64 hex characters, sliding renewal written at most once an hour, and a 7-day TTL with “remember me” versus 12 hours without. A failed login sleeps one second to slow brute force.

  3. 03

    Google sign-in - with no self-registration

    You can sign in with Google, but only if an administrator already created your account.

    The identity token is verified server-side against Google, with explicit checks on aud (must be our client id), iss and email_verified. The address is matched to an existing account only - never auto-created, and that is a deliberate policy choice.

  4. 04

    SSRF protection on log fetching

    The system refuses to fetch a URL that points back into your own network.

    Schemes are restricted to http/https, every host is resolved and checked against private, loopback and link-local ranges (including cloud metadata at 169.254.169.254), and 3xx redirects are disabled outright - because the guard only validated the original target.

  5. 05

    Log content treated as hostile

    An attacker can write code into your log. Here it is displayed as text - never executed.

    Every attacker-controlled field (User-Agent, path, pattern, reason) is escaped across all render paths, and CSV export is hardened against formula injection. An attack log is, by definition, an adversary-controlled input channel.

  6. 06

    Web root sealed

    Internal files are simply not reachable from a browser.

    An .htaccess blocks any path containing a dot-prefixed segment (except .well-known), with a FilesMatch fallback for hosts without mod_rewrite, and Options -Indexes prevents directory listing. Without it, .git/ is exposed - and from there the full source and history can be reconstructed.

  7. 07

    Data directory opaque

    The database cannot be downloaded, not even by guessing the filename.

    data/.htaccess applies Require all denied to the whole directory, and on top of that explicitly blocks the data files themselves along with .php and .json - belt and braces in case a host configuration ignores the first rule.

  8. 08

    AI keys stay server-side

    Your AI keys never leave the server.

    Keys are read from environment variables or protected storage and injected into the outbound call on the server. The browser sends an analysis request and receives text back. It never sees a key, an endpoint or an authorization header.

Architecture

Simple outside. Engineered inside.

One public entry point, one data layer, zero build dependencies. That is what lets the whole system deploy onto ordinary shared hosting in minutes.

Request path

Browser Single page, vanilla JavaScript, no build step
api-proxy.php The one public entry point - authentication gate
data/api-proxy.php The logic, sealed from direct access
db.php → data layer One source of truth, transactional

Technology stack

Client
Vanilla JavaScript · Canvas · Chart.js 4.4.1 · SortableJS
Server
PHP 8 · cURL · zero Composer dependencies
Data
Embedded file-based store · 7 tables · one file
Auth
Session tokens · Google Identity Services
Intelligence
Claude · Gemini · up to 16,000 tokens per report
Geo
Four providers in parallel · Cloudflare range detection
i18n
Hebrew / English · logical RTL · editable from the UI
Deploy
Git → Jenkins → FTP · no build step

Data schema

Everything in one place: a single data file with seven tables. No database server to install, no DB password to manage, and a backup is one file copy.

An embedded, file-based database living inside data/ - a directory sealed off from browser access entirely. It runs with write-ahead journaling, busy_timeout=5000 and foreign-key enforcement. The file is created and seeded automatically on first access, so deployment needs no manual migration step, and every write runs in a transaction with rollback.

  • usersAccounts: name, email, password hash, avatar
  • sessionsActive tokens with expiry and TTL
  • sitesMonitored sites, in display order
  • settingsSystem preferences, key to value
  • i18nTranslations by language and key
  • site_dataPer-site config / cache / logs
  • app_storeAI settings, attack rules, keys, CF ranges

API endpoints

Thirty-two actions - and only six of them are reachable without signing in. Everything else returns 401 to anyone without a valid token.

config ai-settings save-ai-settings reset-ai-settings i18n save-i18n ai auth-login auth-check auth-google auth-logout auth-users auth-save-user auth-delete-user proxy-diagnose geo dns resolve-site site-data create-site delete-site verify-reset load-keys save-keys get-key get-all-keys load-settings save-settings load-rules load-sites save-sites check-log fetch-title server-hardware
Public (bootstrap / login) Requires a valid session token

Performance

Smart pollingA HEAD request checks whether the log even grew before downloading it again.
Light first paintPDF libraries were removed once found unused - roughly 560KB of synchronous download saved.
Non-blocking parseExternal scripts load with defer so the parser keeps building the DOM while they download.
Geo cachingLocation results are cached per site so API calls are not wasted on the same IP.
TransactionsEach save is batched into one transaction with rollback instead of dozens of individual writes.
Transparent errorsA bootstrap failure returns JSON naming the exact cause, not an opaque 500.
The server

Runs on what you already have

No dedicated server, no Docker, no database to install. Ordinary shared hosting with PHP is entirely enough.

The floor is PHP 8 with the required standard extensions and curl, plus a writable data/ directory (755) - the data layer needs write access even for read-only use, because of schema creation and journaling. If the permission is missing, every endpoint returns an explicit JSON error naming the cause instead of an opaque 500.

Live hardware telemetry

The dashboard shows how loaded your server is right now - CPU, memory and disk - without installing any extra software on it.

On Linux, CPU comes from a /proc/stat delta between two samples 250ms apart - exactly what top reports - rather than sys_getloadavg(), which measures run-queue length including I/O wait and lags by up to a minute. On Windows the source is PerformanceCounter('Processor','% Processor Time','_Total'), the same counter Task Manager reads, falling back to WMI only if PowerShell is locked down.

CPU42%
RAM61%
DISK28%

Deployment path

  1. 1
    Upload

    Copy the files to the server. No compilation, no npm install, no migration.

  2. 2
    Permissions

    The data/ directory must be writable (755). This is the single most common first-deploy failure.

  3. 3
    Self-initialisation

    On first access the data file is created, the schema is built and default translations are loaded.

  4. 4
    Log bridge

    Two files and one folder go onto the monitored server, and the token is generated automatically at install.

Getting started

From first site to a live map

The setup wizard walks you through three stages. There is no configuration file to hand-edit.

1

Enter a site URL

The wizard identifies the domain, resolves the server IP and locates it geographically - all automatically.

2

Connect the log

The wizard shows the full installation instructions right here: which files to upload and exactly where. The secret token generates itself, and a test button confirms the connection before you continue.

3

Fill in the details

Display name, identifying colour, log format and alert thresholds. Every site gets its own sensitivity settings.

4

The map wakes up

Within seconds the screen fills: attack dots on the globe, a live chart, a streaming log and threat gauges that update on their own.

Every request entering the site is checked against the detection engine and classified as legitimate traffic, an attack attempt or suspicious activity.
Frequently asked

What most people ask

Does anything need installing on the monitored server?

Almost nothing. You upload one bridge file next to the log, plus an .htaccess that blocks direct access to it. There is no background agent, no service to supervise and no continuous resource cost.

The exact instructions arrive while you are setting up the connection to a new site - the wizard shows you which files to upload, precisely where each one goes, and generates the secret token for you. There is no external documentation to hunt down.

Where is my data stored?

Entirely with you. A single data file on your own server holds everything - users, sites, settings and translations. There is no external cloud, no third-party service holding your attack intelligence, and a full backup is one file copy.

What happens to my AI keys?

They stay on the server and are never sent to the browser. The browser requests an analysis, the server makes the call to Claude or Gemini with its own key, and returns text only. Even someone with developer tools open will not see a key.

Does it work behind Cloudflare?

Yes, and there is a dedicated tool for it. The system pulls Cloudflare’s current address ranges and diagnoses whether the address you are seeing belongs to the real visitor or to the CDN - so you never chase a proxy IP instead of the attacker.

Why is there no self-registration?

It is deliberate. A system that concentrates an organisation’s entire attack intelligence is an obvious target, so accounts are created by an administrator only. Google sign-in likewise requires that the email already belongs to an existing account.

How long does installation take?

Minutes. No compilation, no package installation, no database to provision. Upload the files, make sure the data directory is writable, and the system builds itself on first access.

Can I monitor several sites?

Yes, with no built-in limit. Each site gets its own isolated data space - configuration, alert thresholds, AI analysis history and cache - and switching between them is a single click.

Is the interface Hebrew or English?

Both, completely. Every interface string, report and tooltip is translated, and the writing direction flips automatically. The translations themselves are editable from the UI without touching code.

The control room is waiting.

Sign in with your account and see the full picture of what is happening to your servers - right now.

Sign in to the console

No account? Accounts are created by an administrator - there is no self-registration.