I share:
Home lab builds
Alert triage and investigations
SIEM, EDR and network telemetry
Detection logic and troubleshooting
No production claims. Just evidence of what I’m learning, testing and building.
You add controls to shrink likelihood or impact. Something always remains.
Reflex: what is left after mitigation has a name: residual risk.
You add controls to shrink likelihood or impact. Something always remains.
Reflex: what is left after mitigation has a name: residual risk.
The first time I opened a real packet capture in Wireshark, I tried to understand everything on the screen.
That was a mistake.
There were too many packets, protocols, addresses and conversations happening at once.
The first time I opened a real packet capture in Wireshark, I tried to understand everything on the screen.
That was a mistake.
There were too many packets, protocols, addresses and conversations happening at once.
Remember your reason.
Keep going. 💪🏾❤️
Remember your reason.
Keep going. 💪🏾❤️
Insurance is the classic move. The event can still happen. Someone else now carries the cost.
Reflex: if a third party absorbs the financial hit, the risk was transferred.
Insurance is the classic move. The event can still happen. Someone else now carries the cost.
Reflex: if a third party absorbs the financial hit, the risk was transferred.
Someone with authority looked at the risk and chose to live with it, on the record.
Reflex: if the risk is knowingly kept with sign-off, that is acceptance, not negligence.
Someone with authority looked at the risk and chose to live with it, on the record.
Reflex: if the risk is knowingly kept with sign-off, that is acceptance, not negligence.
Want to see who is logged into a Linux host right now?
$ who
It shows active users, terminals and login times.
Useful during triage when you need a quick view of current sessions before investigating further.
Want to see who is logged into a Linux host right now?
$ who
It shows active users, terminals and login times.
Useful during triage when you need a quick view of current sessions before investigating further.
After looking at process relationships, I wanted more context.
A process running is one thing.
A process making a network connection gives me another question:
Where did it go?
After looking at process relationships, I wanted more context.
A process running is one thing.
A process making a network connection gives me another question:
Where did it go?
A standard must be followed. A guideline is recommended best practice you may adapt.
Reflex: if it is required, it is a standard. If it is advisory, it is a guideline.
A standard must be followed. A guideline is recommended best practice you may adapt.
Reflex: if it is required, it is a standard. If it is advisory, it is a guideline.
A policy is the high-level rule and intent. A procedure is the exact steps that carry it out.
Reflex: the what and why is policy. The how, step by step, is procedure.
A policy is the high-level rule and intent. A procedure is the exact steps that carry it out.
Reflex: the what and why is policy. The how, step by step, is procedure.
I’m looking at how long I can keep upgrading it before the lab outgrows it.
That completely changes what “good hardware” means to me.
I’m looking at how long I can keep upgrading it before the lab outgrows it.
That completely changes what “good hardware” means to me.
They might represent completely different activity.
One source hammering one account.
One source touching dozens of accounts.
Many sources converging on the same account.
Same failure count.
They might represent completely different activity.
One source hammering one account.
One source touching dozens of accounts.
Many sources converging on the same account.
Same failure count.
Too many failed SSH logins to count manually?
$ grep -c "Failed password" /var/log/auth.log
This gives you the total failures fast.
Useful for checking volume before digging into users, source IPs and timing.
Too many failed SSH logins to count manually?
$ grep -c "Failed password" /var/log/auth.log
This gives you the total failures fast.
Useful for checking volume before digging into users, source IPs and timing.
The parent process can help explain why.
chrome.exe → powershell.exe deserves a different question than explorer.exe → chrome.exe.
Don't investigate the process alone.
Check what launched it.
The parent process can help explain why.
chrome.exe → powershell.exe deserves a different question than explorer.exe → chrome.exe.
Don't investigate the process alone.
Check what launched it.
A separate channel reaches the device even when the production network is down or compromised.
Reflex: if admins still reach the gear during an outage, it is out-of-band.
A separate channel reaches the device even when the production network is down or compromised.
Reflex: if admins still reach the gear during an outage, it is out-of-band.
Event ID 4104 showed me what PowerShell executed.
The next question was:
What happened around that execution?
That pushed me into parent and child process relationships.
Event ID 4104 showed me what PowerShell executed.
The next question was:
What happened around that execution?
That pushed me into parent and child process relationships.
The filesystem records the change before making it, so an interrupted write can be rolled back or completed cleanly.
Reflex: if recovery after a crash relies on a record of intended changes, that is journaling.
The filesystem records the change before making it, so an interrupted write can be rolled back or completed cleanly.
Reflex: if recovery after a crash relies on a record of intended changes, that is journaling.
A critical malware alert on an isolated test laptop.
A medium severity suspicious sign-in involving a privileged account.
Which one should be investigated first?
A critical malware alert on an isolated test laptop.
A medium severity suspicious sign-in involving a privileged account.
Which one should be investigated first?
Want to see who recently logged into a Linux host?
$ last
It shows users, login times and session history.
During triage, unexpected accounts or unusual login times give you a useful place to investigate next.
Want to see who recently logged into a Linux host?
$ last
It shows users, login times and session history.
During triage, unexpected accounts or unusual login times give you a useful place to investigate next.
It isn’t.
An EVENT records what happened.
An ALERT tells you detection logic found something worth your attention.
That distinction changes how you investigate.
It isn’t.
An EVENT records what happened.
An ALERT tells you detection logic found something worth your attention.
That distinction changes how you investigate.
Antivirus matches known signatures. EDR watches behaviour, records it, and lets you respond across every endpoint.
Reflex: signature-only is AV. Behaviour plus response and visibility is EDR.
Antivirus matches known signatures. EDR watches behaviour, records it, and lets you respond across every endpoint.
Reflex: signature-only is AV. Behaviour plus response and visibility is EDR.
A simple Ubuntu lab proved the difference.
TCP 445 and 139 were listening.
Both traced back to smbd.
Next question: what does the service actually expose?
A simple Ubuntu lab proved the difference.
TCP 445 and 139 were listening.
Both traced back to smbd.
Next question: what does the service actually expose?
Four access control models, and the exam lives in the gap between two of them. The whole distinction is one question. Who decides 👇
Four access control models, and the exam lives in the gap between two of them. The whole distinction is one question. Who decides 👇
Posture assessment. Patch level, antivirus, config. Fail the check and the device gets quarantined, not connected.
Reflex: if access depends on the health of the endpoint, that is NAC.
Posture assessment. Patch level, antivirus, config. Fail the check and the device gets quarantined, not connected.
Reflex: if access depends on the health of the endpoint, that is NAC.
A laptop. A notebook. A few hours of focused learning.
No big announcement.
No milestone.
No certificate.
Just another day of getting better.
The quiet days count too.
Keep showing up.
A laptop. A notebook. A few hours of focused learning.
No big announcement.
No milestone.
No certificate.
Just another day of getting better.
The quiet days count too.
Keep showing up.
Event 1 → Process created
Event 3 → Network connection
Event 11 → File created
Event 13 → Registry modified
Process → Network → File → Registry
Don’t just read events. Follow the activity.
Event 1 → Process created
Event 3 → Network connection
Event 11 → File created
Event 13 → Registry modified
Process → Network → File → Registry
Don’t just read events. Follow the activity.