Commit Graph
49 Commits
Author SHA1 Message Date
IgorRachkovGitHubFashion LisaDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
eea851141f feat(dlp): enforcement + email outbound collector (#14)
* feat(dlp): add enforcement — USB write-block, print cancel, clipboard clear

Phase 2.5: when DLP policy rule has action="block", the collector
now actively prevents the action instead of just logging:

- USB: Set-Disk -IsReadOnly via Get-Partition/Get-Disk pipeline
- Print: Remove-CimInstance Win32_PrintJob for matching jobs
- Clipboard: Set-Clipboard -Value $null to clear sensitive content

Each enforcement adds enforced=true/false to incident telemetry.
Windows balloon notification shown to user on every block action.
Backward-compatible: existing action="alert" rules unchanged.

Co-Authored-By: Fashion Lisa <igor04091968@gmail.com>

* feat(dlp): add email outbound collector — Outlook COM + SMTP monitor

Two collection modes:
- outlook: polls Sent Items via COM, extracts metadata (subject hash,
  recipients hash, attachment names, body length)
- smtp: monitors SMTP connections (25/587/465/2525) via Get-NetTCPConnection

DLP policy rules: endpoint.email[] with regex matching on subject,
recipients, sender, attachments, externalOnly flag.

Enforcement: action=block moves mail to Drafts (Outlook mode).
Privacy: subject/recipients stored as SHA256, body never read.
Co-Authored-By: Fashion Lisa <igor04091968@gmail.com>

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-04 00:23:06 +03:00
IgorRachkovGitHubDevin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
36e4255ad9 fix: handle undefined bucket filters in AQL query rewriter (#12)
The network patch that intercepts /api/0/query/ requests only handled
'unknown' hostnames in bucket IDs. When the WebUI activity store has
uninitialized bucket IDs (e.g. browser watcher not installed on a host),
find_bucket("undefined") or query_bucket("undefined") calls reach the
server and fail with BucketQueryError.

Extend rewriteUnknownCategoryBuilderQueryBody to:
- Replace query_bucket(find_bucket("undefined")) and flood() wrappers
  with empty arrays ([]) so the query continues without missing data.
- Rewrite aw-watcher-{window,afk}_undefined to the preferred host,
  matching the existing 'unknown' hostname logic.

Applied to both aw-server/ and install-kit copies of aw-ru-patch.js.

Fixes: BucketЗапросError on Trends page for host SHARKON2025

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-05-03 22:27:50 +03:00
igor04091968 f7cf5556a0 Ofline install InnoSetup 2026-05-02 10:01:39 +03:00
igor04091968 65da55be7a Patch files Innosetup 2026-05-02 04:12:14 +03:00
igor04091968 8278d51840 feat(worktime): add linux remote worker and pve headless tracking 2026-04-30 15:48:09 +03:00
igor04091968 fa4bf96ebf feat(ansible): add full-stack installer playbook 2026-04-28 07:10:44 +03:00
igor04091968 b28cfabd57 fix(windows-phase2): codify SHARKON2025 recovery and harden rollout checks 2026-04-28 07:09:29 +03:00
igor04091968 4936d6bca3 fix(webui): translate activity heading separator 2026-04-27 23:57:20 +03:00
igor04091968 c54b237f80 fix(webui): repair category helper host selection 2026-04-27 23:36:58 +03:00
igor04091968 48223fbeeb chore(install): sync playbooks and installers with pve audit 2026-04-27 23:18:32 +03:00
igor04091968 7f131a6310 fix(webui): add stable pve audit activity view 2026-04-27 22:56:05 +03:00
igor04091968 77591c10ce fix(webui): harden pve-detmir activity route and suppress DLP nav on pve hosts 2026-04-27 22:17:51 +03:00
igor04091968 947717251f fix(webui): route pve-detmir activity to watcher-safe view and add audit links 2026-04-27 21:58:37 +03:00
igor04091968 0da0d880c0 feat(pve): add web-admin audit collector to forward Proxmox actions to AW 2026-04-27 21:52:07 +03:00
igor04091968 5adb22754f fix(linux-logger): parse who -u pts fields and avoid duplicate start with systemd 2026-04-27 21:40:17 +03:00
igor04091968 76004e30fe feat(aw-ui): add dedicated pve-detmir host entry in Activity menu 2026-04-27 21:34:56 +03:00
igor04091968 b48b18f225 fix(ansible): default windows state root to C:\ProgramData\ActivityWatch 2026-04-27 21:31:04 +03:00
igor04091968 5a41c4066b feat(windows): add install kit and stabilize dlp print document matching 2026-04-27 21:22:40 +03:00
igor04091968 fff4c10e64 feat(logging): add console and ssh activity logger 2026-04-27 18:17:52 +03:00
igor04091968 5105155323 feat(linux): add remote client rollout for admin host 2026-04-27 17:29:17 +03:00
igor04091968 ced44c347c docs(runtime): capture confirmed admin-host topology 2026-04-27 17:04:31 +03:00
igor04091968 c70fa019ad fix(grafana): finalize ru naming for overview dashboard 2026-04-27 14:09:46 +03:00
igor04091968 e22bd697f7 chore(repo): ignore python cache artifacts 2026-04-27 04:41:41 +03:00
igor04091968 e80ae5fbc3 feat(pfsense): add AW poller and host group sections 2026-04-27 04:41:32 +03:00
igor04091968 70ffd1f3e8 fix(windows): hide launch tasks behind wscript wrappers 2026-04-27 04:16:25 +03:00
igor04091968 1e9628b01b feat(ansible): add incident screenshot controls for windows phase2 2026-04-27 04:04:37 +03:00
igor04091968 f26012ae52 docs(windows): add DLP screenshot and self-test runbook 2026-04-27 03:53:02 +03:00
igor04091968 63c3d96a19 feat(dlp): capture screenshot on incident 2026-04-27 03:29:19 +03:00
igor04091968 5584144978 fix(windows): suppress duplicate logon markers per session 2026-04-27 03:00:53 +03:00
igor04091968 0ae2ac7ec1 fix(windows): tolerate existing session marker bucket 2026-04-27 02:56:09 +03:00
igor04091968 53acdcb6f4 feat(windows): add logon markers and disable local agent logs 2026-04-27 02:42:04 +03:00
igor04091968 bdf44b868e fix(windows): recover all phase2 user tasks after reboot 2026-04-27 02:32:11 +03:00
igor04091968 aa00d5633f fix(web-collector): avoid PowerShell Host collision 2026-04-27 02:21:47 +03:00
igor04091968 6694e0682d feat(worktime): add from/to worktime window 2026-04-27 01:49:27 +03:00
igor04091968 a61b4cee2b fix(webui): prevent settings crash on missing class.data 2026-04-27 01:47:16 +03:00
igor04091968 428a8623a9 feat(worktime): apply baseline classes via ansible 2026-04-26 20:05:44 +03:00
igor04091968 48bb4e4c4c feat(dlp): surface operator incidents in alerts 2026-04-26 15:42:07 +03:00
igor04091968 bb200cab96 feat(dlp): expose menu and document web review flow 2026-04-26 15:39:40 +03:00
igor04091968 1b968f9382 fix(webui): stabilize and localize timespiral 2026-04-26 10:12:39 +03:00
igor04091968 97fe09a150 fix(ansible): align ensemble rollout with current windows deploy 2026-04-26 09:13:41 +03:00
igor04091968 7ef8166504 feat(aw): expand ru webui patch and monitoring assets 2026-04-26 08:54:41 +03:00
igor04091968 f54284a0f9 feat(docs-playbooks): update phase2 runbooks and add windows winrm rollout playbook 2026-04-25 18:00:13 +03:00
igor04091968 bf27369b2a feat(dlp-phase2): add endpoint signal collector for clipboard usb print and policy wiring 2026-04-25 16:26:07 +03:00
igor04091968 c3a49e658c feat(dlp-phase1): add policy-based incident pipeline and capability gap analysis 2026-04-25 16:11:05 +03:00
igor04091968 016a323afc feat(ansible): add hardened matrix rollout for Proxmox CTs with RU patch 2026-04-25 15:57:30 +03:00
igor04091968 9e53272ce9 feat(ansible): add full Proxmox zero-to-service provisioning playbook 2026-04-25 15:43:31 +03:00
igor04091968 92eaa0635c chore: add local quality-gate script for offline validation 2026-04-25 15:30:34 +03:00
igor04091968 63904d2548 feat: add professional deployment ensemble, PowerShell orchestration, and CI standards v1.0.0 2026-04-25 15:29:38 +03:00
igor04091968 0821de0964 chore: initial private ActivityWatch Russian deployment project 2026-04-25 15:24:04 +03:00