866 Commits
Author SHA1 Message Date
Zach Mathis (田中ザック) 6fd86f21ce Merge pull request #389 from Shirofune-Security/fix/363-domain-ntlm-audit
Enable full domain NTLM auditing only on domain controllers
2026-09-19 13:13:01 +09:00
Shirofune-Security bf69494bd9 Report configuration-only audit states without rule coverage inference 2026-09-18 22:59:25 +09:00
Shirofune-Security 571f9ff51f Document domain NTLM audit correction in changelogs 2026-09-18 22:53:31 +09:00
Shirofune-Security d51c37258f Use explicit PowerShell shells in regression workflow 2026-09-18 21:49:46 +09:00
Shirofune-Security 16d88a6f1e Enable full domain NTLM auditing only on domain controllers 2026-09-18 21:46:28 +09:00
Zach Mathis (田中ザック) 8ef938f096 Merge pull request #361 from Shirofune-Security/feat/targeted-object-audit-sacls
Add 'configure-sacl': targeted File System/Registry audit SACLs for detection (no global auditing)
2026-09-14 20:32:50 +09:00
Shirofune-SecurityandClaude Opus 4.8 10c1bcaac7 Address Copilot re-review: %SystemRoot%, Entra SIDs, WOW64 gate, reg-unload check, subcategory-failure, help
- Machine file targets now use %SystemRoot% and are expanded at runtime, so a non-C: system
  drive no longer skips every file target.
- Get-WelaUserProfiles now also matches Entra/Azure AD user SIDs (S-1-12-1-*), not only S-1-5-21-*.
- WOW64 (Wow6432Node) registry targets are skipped/not provisioned on 32-bit Windows.
- reg unload is now checked (retry once, then error) so a failed unload no longer leaves the
  user's NTUSER.DAT mounted under the temp alias while reporting success.
- A failed auditpol subcategory is tracked; the final message warns (instead of claiming success)
  that SACLs for that class will not produce events.
- configure-sacl help text updated: per-user HKCU/AppData ARE covered and absent ASEP keys are provisioned.

Registry SACLs continue to use the .NET RegistryKey API (GetAccessControl/SetAccessControl with
SeSecurityPrivilege enabled), which was verified live to read/write the SACL and emit 4657.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MVUmXZBkr5FnZ2hwFkDhx7
2026-09-17 22:49:42 +09:00
Shirofune-SecurityandClaude Opus 4.8 570b9565d1 CHANGELOG: note configure additions (#361)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MVUmXZBkr5FnZ2hwFkDhx7
2026-09-17 22:32:51 +09:00
Shirofune-SecurityandClaude Opus 4.8 35e5329f74 configure: add Process Termination, Detailed File Share, and DC LDAP 1644 logging
Fills the remaining gaps so 'configure' + 'configure-sacl' cover a full detection
baseline out of the box (no manual auditpol/registry needed downstream):
- Detailed Tracking > Process Termination (4689)
- Object Access > Detailed File Share (5145)
- Directory Service LDAP query logging (1644) via NTDS "15 Field Engineering"=5,
  applied only on domain controllers (BloodHound/LDAP recon).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MVUmXZBkr5FnZ2hwFkDhx7
2026-09-17 22:31:54 +09:00
Shirofune-SecurityandClaude Opus 4.8 d9bef96e0d configure-sacl: use .NET RegistryKey API for SACLs (Get-Acl -Audit is unreliable on the registry)
Live-tested on Windows Server 2019; three bugs fixed found during testing:
- TOKEN_PRIVILEGES had a `long Luid` after a `uint Count`, which is 8-byte aligned on x64
  and inserted padding, so AdjustTokenPrivileges failed with ERROR_NOT_ALL_ASSIGNED and the
  new privilege guard aborted. Split the LUID into LuidLow(uint)+LuidHigh(int) to match the
  native layout.
- Get-Acl/Set-Acl -Audit is unreliable on the registry provider (returns/throws "path does
  not exist" and null). Registry SACLs now use the .NET RegistryKey API
  (OpenSubKey with ReadPermissions,ChangePermissions -> GetAccessControl(Audit) ->
  AddAuditRule -> SetAccessControl), which honors the enabled SeSecurityPrivilege. Absent
  ASEP keys are provisioned via CreateSubKey then reopened.
- Tamper-protected keys (e.g. Defender Exclusions) that deny even admin are reported as
  SKIPPED, not ERROR.

Verified: File System/Registry/Handle subcategories enabled; HKLM Run carries the Everyone
Success+Failure ContainerInherit SACL; a test autorun write produced EventID 4657 - with no
global registry auditing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MVUmXZBkr5FnZ2hwFkDhx7
2026-09-17 22:24:27 +09:00
Shirofune-SecurityandClaude Opus 4.8 1308bc003d Address Copilot review: privilege check, idempotency, ASEP provisioning, service inheritance, update-rules, CLI
- Enable-WelaPrivilege now validates ERROR_NOT_ALL_ASSIGNED per privilege; Set-AuditSacl
  aborts if SeSecurityPrivilege cannot be enabled (was silently proceeding).
- Idempotency (Test-WelaAuditRulePresent) translates IdentityReference to SID before
  comparing (Get-Acl returns NTAccount, not S-1-1-0) and also compares InheritanceFlags,
  so reruns no longer re-add rules and a non-inheriting rule no longer satisfies an
  inheriting target.
- Absent registry ASEP keys (RunOnceEx, Policies\Explorer\Run, ...) are now provisioned
  (created) before the SACL is applied, so a later attacker write is audited via the
  inheritable ACE instead of being missed.
- Services SACL is now inherited (SetValue,CreateSubKey,Delete) so 4657 on child-service
  ImagePath/ServiceDLL/Start edits and service deletion are captured (4697/7045 only cover
  install).
- update-rules now downloads config/audit_sacl_targets.json, matching the recovery message.
- Dropped the non-functional -WhatIf/-Confirm advertising (the script param block has a
  custom -Debug that precludes CmdletBinding); configure-sacl now uses a single -Auto-skippable
  confirmation prompt, consistent with 'configure'.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MVUmXZBkr5FnZ2hwFkDhx7
2026-09-17 22:11:03 +09:00
Shirofune-SecurityandClaude Opus 4.8 917037a679 CHANGELOG: note per-user coverage for configure-sacl (#361)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MVUmXZBkr5FnZ2hwFkDhx7
2026-09-17 22:03:47 +09:00
Shirofune-SecurityandClaude Opus 4.8 31aeeda768 configure-sacl: cover per-user objects across all profiles + Default
Enumerate every user profile from ProfileList (plus C:\Users\Default so future
users inherit the SACL) and apply per-user SACLs:
- user_files: file SACL under each profile dir (Startup folder, Signal AppData).
- user_registry: registry SACL on each user hive - loaded hives via
  HKEY_USERS\<SID> directly, offline/Default hives by reg-load/unload of
  NTUSER.DAT (HKCU Run/RunOnce, User Shell Folders, StartupApproved, Load/Run,
  Command Processor AutoRun, Control Panel\Desktop screensaver, Environment
  logon script, LangBarAddin, Outlook Addins).
Handles are released ([gc]) before reg unload; objects/hives absent on the host
are skipped. Not covered: folder-redirected AppData on network shares, mandatory
profiles.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MVUmXZBkr5FnZ2hwFkDhx7
2026-09-17 22:03:24 +09:00
Shirofune-SecurityandClaude Opus 4.8 6aef4c0f7b Add CHANGELOG entry for configure-sacl (#361)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MVUmXZBkr5FnZ2hwFkDhx7
2026-09-17 21:51:14 +09:00
Shirofune-SecurityandClaude Opus 4.8 db9a966a8b Add 'configure-sacl': targeted File System/Registry audit SACLs for detection
'configure' already enables Object Access subcategories such as File Share, SAM
and Certification Services, but File System (4663), Registry (4657) and Handle
Manipulation (4656) auditing produce no events without SACLs on the audited
objects - and enabling them globally floods the log. This adds targeted SACLs on
only the autostart/persistence registry keys (ASEPs) and sensitive files that the
Hayabusa/Sigma Security-channel rules actually watch, so those rules can fire
without global object auditing.

- config/audit_sacl_targets.json: curated, commented list of 30 registry keys
  (Run/RunOnce, Winlogon, IFEO, AppInit, Explorer shell extensions, Active Setup,
  Command Processor AutoRun, Session Manager, LSA packages, Winsock LSP, protocol
  handlers, logon scripts, Defender exclusions, service create/delete, ...) and 7
  files (NTDS dir, SAM/SECURITY/SYSTEM hives, lsass.exe, ntdsutil, vssadmin),
  each tagged with the ATT&CK technique / rule class it serves.
- WELA.ps1: new 'configure-sacl' command. Enables the File System / Registry /
  Handle Manipulation subcategories (by GUID) and applies the SACLs from the
  config (principal Everyone, Success+Failure, ContainerInherit on registry keys),
  idempotently, honoring -Auto / -WhatIf / -Confirm. Enables SeSecurityPrivilege
  first; skips objects absent on the host.

Per-user objects (HKCU / profile AppData) and live LSASS memory/handle access are
intentionally out of scope (need a per-user mechanism / Sysmon EID 10) and are
documented as such.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MVUmXZBkr5FnZ2hwFkDhx7
2026-09-17 21:50:25 +09:00
Zach Mathis (田中ザック) 4fdb6b09fc Merge pull request #360 from Yamato-Security/update-mitre
feat: support MITRE ATT&CK v19 in Navigator heatmaps
2026-09-14 19:28:08 +09:00
fukusuket 9834eab011 feat: update MITRE ATT&CK Navigator heatmaps for ATT&CK v19 and handle revoked technique IDs 2026-09-04 05:08:35 +09:00
github-actions[bot]andYamatoSecurity faa7988b87 Sigma Rule Update (2026-09-01 22:29:49) (#359)
Co-authored-by: YamatoSecurity <71482215+YamatoSecurity@users.noreply.github.com>
2026-09-01 22:29:56 +00:00
Zach Mathis (田中ザック) 89f681ac7c Merge pull request #358 from Yamato-Security/refactor-fix-bugs
refactor: move baseline definitions to data and fix detection-logic bugs
2026-09-02 07:10:38 +09:00
fukusuket eee2c58f5a feat: update baselines.json to change currentSetting type to channel and specify DFSN-Server Admin 2026-09-01 23:39:47 +09:00
fukusuket a9ceec469a feat: add DFSN-Server Admin channel to baselines and update changelog 2026-09-01 23:32:53 +09:00
fukusuket a98af726d7 chore: update changelog for version 2.2.0 - Dev Release with improvements and bug fixes 2026-08-31 12:46:17 +09:00
fukusuket dcb183871d fix: remove extraneous closing parenthesis in baselines.json note 2026-08-30 21:20:23 +09:00
fukusuket 8d8e401fdb fix: correct spelling errors in baselines.json settings 2026-08-30 21:19:11 +09:00
fukusuket dcf29e4a59 fix: update .gitignore and release workflows for new output files and README changes 2026-08-30 21:08:16 +09:00
github-actions[bot]andYamatoSecurity ff2664b419 Sigma Rule Update (2026-08-01 20:59:49) (#357)
Co-authored-by: YamatoSecurity <71482215+YamatoSecurity@users.noreply.github.com>
2026-08-01 20:59:57 +00:00
github-actions[bot]andYamatoSecurity f312fc5fc9 Sigma Rule Update (2026-07-01 21:40:59) (#356)
Co-authored-by: YamatoSecurity <71482215+YamatoSecurity@users.noreply.github.com>
2026-07-01 21:41:06 +00:00
Zach Mathis (田中ザック) 765257e904 Merge pull request #355 from Shirofune-Security/readme-landing
docs: replace README with a landing page pointing to the documentation site
2026-06-29 10:21:44 +09:00
Zach Mathis (田中ザック) b7b482d215 Merge pull request #354 from Shirofune-Security/docs-site
docs: add a multilingual Material for MkDocs documentation site (GitHub Pages)
2026-06-29 10:19:17 +09:00
Shirofune-SecurityandClaude Opus 4.8 ccf33bed31 docs: replace README with a landing page pointing to the documentation site
The WELA documentation now lives on a dedicated docs site
(https://yamato-security.github.io/WELA/). Replace the long single-page README
with a short landing page that points there, and preserve the originals.

- README.md / README-Japanese.md -> OLD-README.md / OLD-README-Japanese.md
  (their language-switcher cross-links updated to point at each other)
- New README.md: logo, badges, a prominent link to the docs site and its main
  sections, downloads, links to the archived READMEs, and the MIT license

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 10:15:41 +09:00
Shirofune-SecurityandClaude Opus 4.8 8799bffbea docs: machine-translate WELA docs into 13 more languages
Add machine-translated content for Traditional Chinese (zh-TW), Korean, German,
Turkish, French, Spanish, Brazilian Portuguese (pt-BR), Ukrainian, Hindi,
Indonesian, Burmese, Thai and Arabic. Japanese keeps its official translation.
Only prose is translated; code, commands, paths, links and anchors preserved.
Translated navigation labels added to mkdocs.yml for every language.

Builds clean with mkdocs --strict (15 languages).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 10:13:11 +09:00
Shirofune-SecurityandClaude Opus 4.8 a95f0f5eec docs: add Material for MkDocs documentation site (English + Japanese)
Add a documentation website under website/, built from README.md and
README-Japanese.md and laid out with top-tab topics and a left sidebar (same
style as the Hayabusa docs). Designed to be hosted free on GitHub Pages.

- Pages: Overview (About, Features, Screenshots), Getting Started, Commands
  (Command List, Command Usage), Resources (Companion Projects, Other
  Resources, Changelog, Contributing)
- Custom landing page, theme, click-to-zoom screenshots
- Changelog synced from CHANGELOG.md at build time
- 15-language switcher via mkdocs-static-i18n: English + Japanese full content;
  the other 13 localize the UI and fall back to English until translated
- .github/workflows/docs.yml builds (mkdocs --strict) + deploys to GitHub Pages

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 09:50:48 +09:00
github-actions[bot]andYamatoSecurity afe91eea3b Sigma Rule Update (2026-06-01 22:34:27) (#353)
Co-authored-by: YamatoSecurity <71482215+YamatoSecurity@users.noreply.github.com>
2026-06-01 22:34:35 +00:00
Fukusuke Takahashi e369fc85ff Merge pull request #352 from Yamato-Security/fix-actions
fix: update action versions for create-pull-request
2026-05-24 13:19:42 +09:00
fukusuket f416b42f19 fix: update actions for create-pull-request and enable-pull-request-automerge to latest versions 2026-05-24 10:12:32 +09:00
Zach Mathis (田中ザック) 62379d627b Merge pull request #331 from Yamato-Security/update-actions
chore: update action versions and adjust permissions in workflow files
2026-05-22 21:26:24 -04:00
fukusuket 9f2b513d7c fix: update cron schedule for security_rules.json creation 2026-05-23 10:20:14 +09:00
github-actions[bot]andYamatoSecurity 5566538242 Sigma Rule Update (2026-05-22 21:04:11) (#351)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-22 21:04:19 +00:00
github-actions[bot]andYamatoSecurity 820d0c1283 Sigma Rule Update (2026-05-21 21:22:31) (#350)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-21 21:22:40 +00:00
github-actions[bot]andYamatoSecurity 499255fe32 Sigma Rule Update (2026-05-20 21:46:10) (#349)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-20 21:46:17 +00:00
github-actions[bot]andYamatoSecurity f7333c5358 Sigma Rule Update (2026-05-19 21:13:17) (#348)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-19 21:13:26 +00:00
github-actions[bot]andYamatoSecurity 887de1d5c9 Sigma Rule Update (2026-05-18 21:04:23) (#347)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-18 21:04:31 +00:00
github-actions[bot]andYamatoSecurity 404d781e88 Sigma Rule Update (2026-05-17 20:41:12) (#346)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-17 20:41:20 +00:00
github-actions[bot]andYamatoSecurity f75a0ebc00 Sigma Rule Update (2026-05-16 20:39:47) (#345)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-16 20:39:55 +00:00
github-actions[bot]andYamatoSecurity c1fa19a5f0 Sigma Rule Update (2026-05-15 20:54:25) (#344)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-15 20:54:32 +00:00
github-actions[bot]andYamatoSecurity 028b7f9ab6 Sigma Rule Update (2026-05-14 21:04:35) (#343)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-14 21:04:44 +00:00
github-actions[bot]andYamatoSecurity 1a13a15b44 Sigma Rule Update (2026-05-13 21:20:14) (#342)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-13 21:20:23 +00:00
github-actions[bot]andYamatoSecurity 77194e48f0 Sigma Rule Update (2026-05-12 21:12:57) (#341)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-12 21:13:05 +00:00
github-actions[bot]andYamatoSecurity d2c31c1d22 Sigma Rule Update (2026-05-11 21:12:00) (#340)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-11 21:12:08 +00:00
github-actions[bot]andYamatoSecurity 08e6fddb82 Sigma Rule Update (2026-05-10 20:40:41) (#339)
Co-authored-by: YamatoSecurity <YamatoSecurity@users.noreply.github.com>
2026-05-10 20:40:48 +00:00