Each case study follows a structured consulting format — from client background through architecture, implementation, and measurable outcomes.
The client is a mid-sized financial services firm with approximately 300 employees operating across three branch offices and a growing remote workforce. Their IT environment was a hybrid configuration with on-premises Active Directory synced to Azure AD via Azure AD Connect. The organization had recently undergone a compliance audit that flagged multiple identity-related control gaps, including the absence of multi-factor authentication, overly permissive role assignments, and no Conditional Access policies governing sign-in behavior.
The firm operated in a regulated environment subject to SOC 2 Type II and state financial regulatory requirements. Their existing identity posture relied on legacy password-only authentication with no centralized policy enforcement for cloud application access.
The compliance audit identified the following critical findings:
The audit required remediation within 90 days. The client needed a partner who could design and implement a Zero Trust identity framework without disrupting daily operations for 300 users across multiple offices.
We designed a layered Conditional Access architecture organized into three policy tiers:
We implemented a least-privilege role assignment model using Privileged Identity Management (PIM):
The implementation was executed over six weeks in four phases:
The client is a regional healthcare organization operating a network of outpatient clinics and a central administrative office. Their IT environment consisted of approximately 150 endpoints (Windows workstations and servers), 12 Linux servers hosting internal applications and databases, and network infrastructure including Cisco switches and Palo Alto firewalls. The organization was subject to HIPAA compliance requirements and had recently engaged a third-party risk assessor who identified the absence of centralized security monitoring as a critical gap.
Prior to the engagement, the client had no SIEM, no centralized log collection, and no formalized incident detection or response procedures. Security events were reviewed ad hoc — typically only after an incident had already been reported by end users.
We designed a dual-platform SIEM architecture using Wazuh for endpoint detection and file integrity monitoring, and Splunk for log aggregation, correlation, and dashboarding. The architecture was purpose-built to separate detection from analysis — allowing each platform to do what it does best.
Endpoints (Wazuh Agents) ──→ Wazuh Manager ──→ Syslog (CEF) ──→ Splunk
Windows Servers (UF) ──────────────────────────────────────────→ Splunk
Palo Alto Firewalls ──→ Heavy Forwarder ───────────────────────→ Splunk
Linux Servers (rsyslog) ───────────────────────────────────────→ Splunk
Active Directory (WEF) ──→ Windows Event Collector ──→ UF ────→ Splunk
wazuh, wineventlog, pan_firewall, linux_syslogThe client is a mid-sized manufacturing company with approximately 500 employees across a primary headquarters, two production facilities, and a distribution warehouse. Their IT infrastructure was anchored by a single Active Directory forest that had been in continuous operation since Windows Server 2008, having been upgraded in place through Server 2012 R2 and most recently to Server 2016. The domain functional level had been raised to 2016, but many legacy configurations, GPOs, and permission structures remained from earlier versions.
The company had recently engaged a cybersecurity firm for a penetration test as part of a customer compliance requirement. The pentest results revealed multiple critical findings in the Active Directory environment that required immediate remediation.
The penetration test identified the following Active Directory security findings:
We designed a hardening plan organized into five workstreams, each aligned to CIS Microsoft Windows Server 2016 Benchmark recommendations and Microsoft's tiered administration model:
Get-ADGroupMember recursively against all privileged groups and exported membership reportsGet-GPOReport and documented their link status, WMI filters, and effective settingsGet-ADUser -Filter * -Properties PasswordLastSet,PasswordNeverExpires to identify password hygiene issuesGet-ADUser -Filter {ServicePrincipalName -ne "$null"}t0-admin-[name], t1-admin-[name], t2-admin-[name]Get-SmbServerConfigurationThe client is a B2B SaaS company that operates a customer-facing platform hosted across a fleet of 40 Linux servers. The infrastructure consists of a mix of Ubuntu 22.04 LTS and Red Hat Enterprise Linux 8 servers running across two data centers and an AWS VPC. The server fleet includes web application servers (Nginx), application servers (Node.js and Python), PostgreSQL database servers, Redis cache servers, and internal tooling servers.
The company had scaled rapidly over the previous 18 months, growing from 8 servers to 40. Server provisioning had been performed manually by different engineers without a standardized hardening baseline. The company's SOC 2 Type II audit preparation identified server hardening and log monitoring as areas requiring immediate improvement.
iptables, some ran firewalld, and 6 servers had no host-based firewall configured at all. Rules were not documented.auditd was installed but not configured on any server. No syscall monitoring was in place for privilege escalation, file access, or process execution events.NOPASSWD: ALL sudo access. No sudo logging was configured.We designed a hardening and monitoring architecture with three components: an automated hardening toolkit (Bash), centralized log aggregation (rsyslog + Splunk), and audit monitoring (auditd).
We developed a modular Bash hardening toolkit that could be executed on both Ubuntu and RHEL systems. The toolkit was organized into discrete modules, each addressing a specific CIS Benchmark control area:
harden.sh
├── modules/
│ ├── 01-ssh-hardening.sh
│ ├── 02-firewall-config.sh
│ ├── 03-user-access.sh
│ ├── 04-kernel-params.sh
│ ├── 05-filesystem.sh
│ ├── 06-auditd-config.sh
│ ├── 07-logging.sh
│ ├── 08-services.sh
│ └── 09-patch-management.sh
├── configs/
│ ├── sshd_config.hardened
│ ├── audit.rules
│ ├── rsyslog.conf
│ └── iptables.rules.[role]
├── lib/
│ ├── detect-os.sh
│ └── logger.sh
└── reports/
└── compliance-check.sh
We deployed a comprehensive auditd ruleset monitoring:
sudo, su, passwd, chsh)/etc/passwd, /etc/shadow, /etc/group, /etc/sudoers# /etc/ssh/sshd_config — hardened baseline
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
AllowTcpForwarding no
Banner /etc/issue.net
Protocol 2
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms curve25519-sha256,diffie-hellman-group16-sha512
NOPASSWD: ALL entries with role-specific command allowlists/var/log/sudo.log with Defaults logfile directiveiptables with role-specific rulesets (web server, app server, database server, bastion)/etc/sysctl.d/99-hardening.conf:
# Network hardening
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.tcp_syncookies = 1
# Kernel hardening
kernel.randomize_va_space = 2
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
fs.suid_dumpable = 0
/tmp, /var/tmp, and /dev/shm with noexec,nosuid,nodev optionsauditd on all 40 servers with the standardized rulesetcompliance-check.sh) that validates hardening state and outputs a pass/fail report per controlWe scope every engagement based on your specific environment and compliance requirements.
Start a Conversation →