Cybersecurity Engineer Top 100 Interview Questions
100 cybersecurity engineer interview questions with structured answers, comparison tables, flow diagrams, worked calculations and runnable code. Covers security fundamentals, cryptography, network and application security, identity, detection, incident response and vulnerability management, from the basics to design and scenario questions.
Questions 61-80 of 100
Q61.How do you secure a public REST API?
Secure a public API by authenticating every caller, authorizing every object and field, validating every input against a schema, and limiting how much any one client can do.
- Authentication: use standard tokens, such as OAuth 2.0 access tokens with short lifetimes, and never put API keys or tokens in URLs, where they end up in logs.
- Object-level authorization: check on every endpoint that the caller may access this specific record, not just this endpoint.
- Property-level control: return only the fields the caller may see, and ignore or reject fields they may not set, which prevents mass assignment such as a user sending
"role": "admin". - Schema validation: enforce types, lengths and formats, and reject unknown fields.
- Rate limits and quotas per client, plus maximum page sizes, so scraping and abuse are bounded.
- Transport security: HTTPS only, with HSTS.
- Safe errors: consistent error formats without stack traces or internal details.
- Inventory: retire old API versions, because forgotten versions often lack newer protections.
- Logging and monitoring: record who accessed what, and alert on unusual patterns such as one token reading thousands of records.
Treat the API specification as a security contract, and test it automatically with authorization tests for every endpoint.
Q62.What is a race condition vulnerability, and how do you prevent it?
A race condition vulnerability occurs when the result depends on the timing of concurrent requests, so an attacker sending many requests at once can slip between a check and the action that relies on it. This is often called time-of-check to time-of-use.
Typical targets:
- Redeeming a gift card, coupon or referral bonus more than once.
- Withdrawing more money than an account holds.
- Exceeding limits such as "one vote per user" or a rate limit counted in application memory.
How to prevent it:
- Make check and update atomic: a single conditional statement such as
UPDATE cards SET balance = balance - 50 WHERE id = ? AND balance >= 50, then confirm one row was changed. - Lock the record for the duration of the operation, using a row lock inside a transaction.
- Use unique constraints in the database for "only once" rules, so a second insert fails.
- Use idempotency keys so a retried request returns the original result instead of repeating the action.
- Test concurrency deliberately by sending dozens of identical requests in parallel against a test environment.
Checks done only in application memory break as soon as the service runs on more than one server.
Example
A gift card double-spend, step by step:
- A card has a balance of 50. The redeem endpoint reads the balance, checks that it is at least 50, then writes
balance = 0and credits the account. - An attacker sends 20 identical redeem requests in the same few milliseconds.
- Six requests read the balance before any write lands, all six pass the check, and the account is credited 300.
- After the fix, each request runs
UPDATE cards SET balance = balance - 50 WHERE id = 7 AND balance >= 50. The first request changes one row, and the other 19 change zero rows and are rejected.
The total credited is 50 no matter how many requests arrive at once.
Q63.How do SAST, DAST, IAST and software composition analysis differ?
They test different things at different stages. SAST reads source code, DAST attacks the running application from outside, IAST watches the application from inside while it runs, and software composition analysis checks third-party dependencies for known vulnerabilities.
SAST DAST IAST Composition analysis Examines source code or bytecode Examines the running application over HTTP Examines code paths during tests, via an agent Examines dependencies and their versions Runs on every commit or pull request Runs against test or staging environments Runs during automated or manual testing Runs on every build, and continuously Finds flaws early, with file and line Finds real, exploitable behavior Gives precise findings with context Catches known library flaws False positives; misses runtime and configuration issues No code location; limited coverage of hidden paths Needs instrumentation and good test coverage Only known vulnerabilities; reachability often unclear How they fit together:
- Run composition analysis and secret scanning on every build; they are fast and catch common real-world causes of breaches.
- Run SAST on pull requests with rules tuned to keep noise low.
- Run DAST on staging builds and on a schedule.
- Use IAST where good automated tests exist.
- No tool finds business logic flaws such as broken authorization. Those still need threat modeling, code review and manual testing.
Q64.How do you build security into the software development lifecycle?
Add a security activity to every phase, automate the repeatable checks in the pipeline, and save expert manual effort for the riskiest changes.
flowchart LR A["Requirements: security and abuse cases"] --> B["Design: threat modeling"] B --> C["Build: secure coding and peer review"] C --> D["Pipeline: code, dependency and secret scans"] D --> E["Test: dynamic scans and pen tests for high risk"] E --> F["Release: signed artifacts, hardened configuration"] F --> G["Operate: monitoring and vulnerability management"] G -->|lessons and new risks| A- Requirements: add security requirements and abuse cases alongside user stories.
- Design: threat model new features and architecture changes.
- Build: use secure coding standards and libraries that make the safe way the easy way.
- Pipeline: run fast automated checks on every change, and block only on high-confidence findings.
- Test: add dynamic scanning, and manual penetration tests for high-risk releases.
- Release and operate: sign artifacts, harden configuration, monitor and feed incidents back into requirements.
What makes it work: a security champion in each team, clear severity-based fix timelines, and metrics such as time to fix rather than raw finding counts. Security that slows every release gets bypassed, so keep gates fast and focused.
Q65.How would you handle a critical vulnerability in a third-party library that your product uses?
Work out quickly whether you are actually exposed, reduce the risk with the fastest safe fix, and check whether anyone exploited it before you patched.
- Find every use: search the dependency inventory or software bill of materials for the library and its versions, including copies bundled inside other packages and container images.
- Assess exposure: is the vulnerable function reachable, and can untrusted input reach it? Internet-facing services come first.
- Mitigate fast: upgrade to the fixed version. If no fix exists, disable the feature, change configuration, or add a filtering rule as a temporary virtual patch.
- Ship through the normal pipeline, fast-tracked but still tested, so the emergency change does not cause an outage.
- Verify by rescanning and confirming the deployed versions.
- Hunt for exploitation: search logs from before the patch for attack patterns and unusual outbound connections.
- Communicate status to stakeholders and, where required, to customers.
flowchart TD A["Vulnerability announced"] --> B["Search inventory for the library"] B --> C{"Used and reachable?"} C -->|no| D["Record and keep watching"] C -->|yes| E{"Fixed version available?"} E -->|yes| F["Upgrade and deploy"] E -->|no| G["Disable feature or add virtual patch"] F --> H["Verify and hunt for past exploitation"] G --> HTrade-off: an emergency upgrade can break behavior, so rely on automated tests; a temporary filter buys time but is bypassable and must not become permanent.
Example
A remote code execution flaw is announced on a Friday evening in a widely used logging library:
- Within 30 minutes, the bill of materials shows the library in 14 services; 3 of them are internet-facing and pass request headers into log messages.
- Those 3 services get a configuration change that disables the vulnerable lookup feature, deployed within two hours, and the web application firewall gets a rule for the known payload pattern.
- Over the weekend all 14 services move to the fixed version through the pipeline, and rescans confirm it.
- Log searches find probing attempts from Friday night but no successful outbound connections to attacker hosts.
- The review leads to automatic dependency update pull requests, so the next upgrade is a merge rather than a scramble.
Q66.How would you keep passwords, tokens and personal data out of application logs?
Prevent sensitive data reaching logs at the source, then add a redaction layer as a safety net, because logs are copied widely and kept far longer than the data's owners expect.
At the source:
- Log events, not objects: write explicit fields such as user ID and order ID instead of dumping whole requests, headers or database rows.
- Mark sensitive fields in data models so that serializers omit or mask them automatically.
- Never log credentials: passwords, session cookies, authorization headers, API keys and one-time codes.
- Keep secrets out of URLs, because web servers and proxies log full URLs by default.
As a safety net:
- Apply redaction patterns in the logging pipeline for known shapes: tokens,
password=parameters, card numbers and email addresses. - Scan stored logs regularly for leaked secrets, and rotate anything found.
- Restrict and expire logs: limit who can read them, and keep them only as long as needed.
Pattern-based redaction will always miss some formats. That is why it backs up careful logging rather than replacing it.
Example
A redaction filter applied to log lines before they leave the application:
import re PATTERNS = [ (re.compile(r"(?i)\b(password|passwd|secret|token)=([^&\s]+)"), r"\1=[REDACTED]"), (re.compile(r"(?i)authorization:\s*bearer\s+[A-Za-z0-9._~+/=-]+"), "Authorization: Bearer [REDACTED]"), (re.compile(r"\b\d{4}[ -]?\d{4}[ -]?\d{4}[ -]?(\d{4})\b"), r"****-****-****-\1"), (re.compile(r"\b([A-Za-z0-9._%+-])[A-Za-z0-9._%+-]*@([A-Za-z0-9.-]+\.[A-Za-z]{2,})\b"), r"\1***@\2"), ] def redact(line: str) -> str: for pattern, replacement in PATTERNS: line = pattern.sub(replacement, line) return line for line in [ "POST /login user=maria@example.com password=Summer2024!", "GET /api/orders Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.e30.abc123", "payment card=4111 1111 1111 1234 amount=40.00", "GET /reset?token=8f2c9d1e&next=/home", ]: print(redact(line)) # Output: # POST /login user=m***@example.com password=[REDACTED] # GET /api/orders Authorization: Bearer [REDACTED] # payment card=****-****-****-1234 amount=40.00 # GET /reset?token=[REDACTED]&next=/homeThe card keeps its last four digits and the email keeps its first letter and domain, which is usually enough for support staff to match a record.
Q67.Where should a browser application keep its access tokens, and what are the trade-offs?
There is no perfectly safe place for tokens in a browser, so the choice is about which attacks each option exposes. For high-value applications, the strongest pattern keeps tokens on the server and gives the browser only an HttpOnly session cookie.
Local storage Session storage In-memory variable Readable by injected script Readable by injected script Readable by injected script only while the page runs Survives a page reload Survives a reload in the same tab Lost on page reload Risk: any cross-site scripting bug steals long-lived tokens Risk: the same theft risk, slightly shorter exposure Risk: script can still use the token during the session HttpOnly cookie Backend-for-frontend Not readable by injected script Not readable by injected script: tokens stay on the server Survives a page reload Survives a page reload Risk: needs protection against cross-site request forgery Risk: more server components to run Guidelines:
- Never keep long-lived refresh tokens in storage that scripts can read.
- Keep access tokens short-lived and limited in scope, so a stolen one expires quickly.
- With cookies, set HttpOnly, Secure and SameSite, and add anti-forgery tokens for state-changing requests.
- Whatever the storage, cross-site scripting remains the root problem, because injected script can act as the user even when it cannot read the token.
Q68.How would you review a pull request for security issues?
Start from what the change does and where untrusted data enters, then follow that data to every sensitive operation it reaches. A focused review of trust boundaries finds more than reading every line equally.
- Understand the change: what feature it adds, who can reach it, and what data it touches.
- Find the inputs: request parameters, headers, files, messages and data from other services.
- Follow each input to sinks: database queries, shell commands, file paths, templates, redirects and outbound requests. Check that each sink uses a safe API.
- Check authorization: every new endpoint and action must verify the caller's rights to the specific object.
- Look for secrets and sensitive data: credentials in code or tests, personal data in logs, and verbose errors.
- Review security-relevant configuration: cross-origin rules, cookie flags, headers, permissions and feature flags.
- Check cryptography and randomness: standard libraries only, secure random for tokens and no home-made schemes.
- Check new dependencies: maintenance status, known vulnerabilities and whether they are really needed.
- Ask for tests of the security behavior, such as a test proving another user's record returns 404.
Reviewers show their value through clear, actionable comments that explain the risk and suggest the fix, not just "this is insecure".
Q69.What are the stages of a vulnerability management program?
Vulnerability management is a continuous cycle: know your assets, find their weaknesses, decide what matters most, fix it, prove it is fixed, and report on how well the cycle is working.
flowchart LR A["Asset inventory"] --> B["Discover vulnerabilities"] B --> C["Assess and prioritize"] C --> D["Remediate or mitigate"] D --> E["Verify the fix"] E --> F["Report and improve"] F --> A- Asset inventory: servers, endpoints, cloud resources, containers, applications and their owners. Unknown assets are never scanned.
- Discovery: authenticated scans, agent-based checks, dependency scanning and external surface monitoring.
- Assessment: combine severity with exploitability, exposure and asset importance.
- Remediation: patch, upgrade or reconfigure; mitigate where a fix is not possible; formally accept the rest with an expiry date.
- Verification: rescan to confirm the fix, rather than trusting a closed ticket.
- Reporting: track time to remediate by severity, the share of assets scanned, and overdue findings per team.
Set fix deadlines by priority, such as days for actively exploited internet-facing flaws and weeks for lower risks. Hold teams to them through regular reports to leadership.
Q70.How do you prioritize vulnerabilities when there are thousands of findings?
Rank findings by real-world risk, not by severity score alone: combine how severe the flaw is with how likely it is to be exploited, how exposed the asset is, and how much the asset matters.
Factors to combine:
- Severity: the standard 0 to 10 score describes the flaw in general, not in your environment.
- Exploitation: is it being exploited in the wild, is public exploit code available, or is it only theoretical?
- Exposure: internet-facing, reachable from user networks, or isolated.
- Asset criticality: holds sensitive data, supports key business processes, or is a disposable test system.
- Compensating controls: a filtering rule or disabled feature lowers the urgency.
Making it manageable:
- Group by fix: one upgrade or base image update often closes hundreds of findings.
- Fix by owner: route findings to the team that owns the asset, with deadlines tied to priority.
- Automate the scoring so a new finding is ranked on arrival.
A simple multiplicative score, such as
priority = severity × exploitation × exposure × criticality, makes the ranking explicit and explainable. The exact weights matter less than applying them consistently.Example
Three findings ranked with an example scheme. Exploitation is weighted 2 if exploited in the wild, 1 if public code exists and 0.5 otherwise. Exposure is 1 for internet-facing systems, 0.6 for systems reachable from user networks and 0.3 for isolated ones. Criticality is 1 for critical systems and 0.5 for test systems.
- Finding A: severity 9.8 on an isolated test server with no known exploit.
9.8 × 0.5 × 0.3 × 0.5 = 0.74 - Finding B: severity 7.5 on the internet-facing login service, actively exploited.
7.5 × 2 × 1 × 1 = 15.0 - Finding C: severity 5.3 on the payment database, public exploit code, reachable from user networks.
5.3 × 1 × 0.6 × 1 = 3.18
The order is B, then C, then A. Sorting by severity alone would have put the test server first and the actively exploited login service second.
Q71.How do vulnerability scanning, penetration testing and red teaming differ?
They answer different questions. Scanning asks which known weaknesses exist, penetration testing asks how far a skilled tester can get through them, and red teaming asks whether the organization detects and stops a realistic attacker.
Vulnerability scanning Penetration testing Red teaming Goal: find known weaknesses broadly Goal: prove and chain exploitable flaws Goal: test detection and response end to end Automated tools Manual testing with tools Covert, goal-based attack simulation Wide scope: all assets Scope: defined systems or applications Scope: an objective, such as reaching payment data Continuous or weekly Yearly or per major release Occasional, for mature programs Defenders know Defenders usually know Usually only a few leaders know Output: a long list of findings Output: prioritized, proven findings Output: an attack narrative and detection gaps When to use which:
- Scanning is the baseline for every organization.
- Penetration tests suit new applications, major changes and compliance needs.
- Red teaming pays off once basics are solid and a detection team exists to be tested; earlier, it mainly confirms gaps you already know about.
- Purple teaming runs attacks openly alongside defenders to improve detections step by step.
Q72.What are the phases of a penetration test?
A penetration test moves from agreeing what may be tested, through finding and exploiting weaknesses, to a report that helps the organization fix them, with permission and scope governing every step.
flowchart LR A["Pre-engagement: scope and rules"] --> B["Reconnaissance"] B --> C["Scanning and enumeration"] C --> D["Exploitation"] D --> E["Post-exploitation"] E --> F["Reporting"] F --> G["Retest after fixes"]- Pre-engagement: agree on scope, timing, permitted techniques, contacts and written authorization.
- Reconnaissance: gather public information about domains, staff, technologies and exposed services.
- Scanning and enumeration: identify live hosts, open ports, service versions, user accounts and application endpoints.
- Exploitation: use vulnerabilities to gain access, choosing safe techniques that avoid damaging production systems.
- Post-exploitation: show impact by escalating privileges, moving laterally or reaching agreed target data, then clean up any test artifacts.
- Reporting: an executive summary, then each finding with evidence, risk rating, reproduction steps and remediation advice.
- Retest: confirm that the fixes work.
The report is the product. A brilliant attack chain is wasted if developers cannot reproduce and fix what was found.
Q73.What should the rules of engagement for a penetration test include?
Rules of engagement are the written agreement that makes a penetration test legal, safe and useful. They define exactly what may be tested, how, when, and what happens if something goes wrong.
- Written authorization from someone who has the authority to approve testing of each system, including permission from any hosting or cloud provider where their terms require it.
- Scope: the in-scope addresses, domains, applications and accounts, and an explicit list of what is out of scope.
- Timing: testing windows and blackout periods, such as month-end processing.
- Permitted techniques: whether social engineering, physical access, denial-of-service testing or production data changes are allowed.
- Data handling: how sensitive data found during testing is treated, stored and destroyed.
- Communication: named contacts on both sides, how to report a critical finding immediately, and an emergency stop procedure.
- Credentials and access: which test accounts are provided and what level of prior knowledge the testers get.
- Deliverables: report format, delivery date and retest terms.
Without signed authorization, testing someone's systems is an attack, regardless of intent. That is why testers verify scope and permission before sending a single packet.
Q74.How should an organization handle a vulnerability report from an outside researcher?
Make it easy to report, respond quickly and respectfully, fix the issue, and publish the outcome together with the researcher. This is called coordinated disclosure.
- Publish a reporting channel: a security contact address, a
security.txtfile on the website and a disclosure policy that says what is in scope. - Acknowledge quickly, within a few working days, and assign a case owner.
- Triage: reproduce the issue, rate its severity and identify affected versions and customers.
- Agree a timeline: many programs work to about 90 days for a fix and public disclosure, shortened when the flaw is being exploited.
- Fix and verify, and where possible let the researcher confirm the fix.
- Disclose: publish an advisory, notify affected customers and credit the researcher if they want credit.
- Offer safe harbor: state that good-faith research within the policy will not face legal action.
What not to do: ignore the report, threaten the researcher, or quietly fix it without telling affected users. Each pushes researchers toward public disclosure without warning, which is worse for everyone.
Interview tip: mention safe harbor and a published contact; they show you see researchers as allies who find flaws before criminals do.
- Publish a reporting channel: a security contact address, a
Q75.What is social engineering, and which techniques are most common?
Social engineering manipulates people into giving access, information or money, exploiting trust, urgency, fear and helpfulness instead of technical flaws. It is a leading cause of breaches because a convincing message can bypass many technical controls.
Phishing Spear phishing Business email compromise Voice phishing Mass emails leading to fake login pages or malware Researched, personal messages to specific people Impersonating executives or suppliers to redirect payments Phone calls posing as support or the bank "Your mailbox is full, sign in here" A fake invoice citing a real supplier "Urgent: use our new bank account" "IT here, read me the code we just sent" Text message phishing Pretexting Tailgating Push fatigue Malicious links by text message A made-up scenario to justify a request Following staff through a secured door Repeated login prompts until one is approved A fake parcel delivery fee Posing as an auditor asking for records Arriving with full hands at the entrance Midnight approval requests Defenses:
- Phishing-resistant multi-factor authentication, which removes the value of stolen passwords.
- Verification procedures using a known channel for payment changes and password resets.
- Regular, realistic training that rewards reporting, plus a one-click report button.
- Email authentication, link scanning and external-sender warnings.
- A culture where questioning an unusual request from a senior person is expected, not punished.
Q76.What does a security operations center do, and how are its tiers organized?
A security operations center monitors an organization's systems around the clock, investigates suspicious activity and coordinates the response to incidents. Its work is usually split into tiers, so routine alerts are handled quickly and experts focus on the hardest cases.
Tier 1 analyst Tier 2 analyst Tier 3 or hunter Triages alerts, gathers context, closes false positives Investigates escalations, scopes incidents, starts containment Threat hunting, forensics, complex incidents Produces escalations with evidence attached Produces incident timelines and response actions Produces new findings and root causes Detection engineer Threat intelligence Builds and tunes detection rules and automation Tracks relevant attackers and techniques Produces higher-quality alerts, fewer false positives Produces priorities for hunting and detection What makes a center effective:
- Playbooks for common alert types, so triage is consistent across shifts.
- Automation for enrichment and simple responses, such as disabling an account or isolating a host.
- Feedback loops: every false positive is a tuning task, and every incident becomes a new or better detection.
- Metrics such as time to detect, time to respond and the false positive rate per rule.
Many organizations outsource part of this work to a managed service, but they still need people in-house who understand the business and can make containment decisions.
Q77.What does a SIEM do, and which log sources matter most?
A security information and event management system collects logs from across the organization, normalizes them into common fields, correlates events, raises alerts and keeps a searchable history for investigations. Its value depends almost entirely on which logs feed it and how well its rules are tuned.
Identity provider and authentication Endpoint detection telemetry Cloud audit logs DNS, proxy and firewall Logins, failures, multi-factor events and account changes Process starts, command lines and file changes on devices Who changed what in cloud accounts and when Outbound connections, domains and blocked traffic Email security Critical application logs Asset and vulnerability data Phishing delivered, clicked or blocked Admin actions, data exports, permission changes Context: who owns a host and how exposed it is Practical points:
- Start with identity, endpoint and cloud audit logs; most investigations need them first.
- Volume costs money, so filter noisy, low-value logs at the source rather than storing everything.
- Keep enough history: many intrusions are found weeks or months later, so retention must cover that period.
- Check log health: a source that silently stops sending is a blind spot, so alert on missing data too.
Q78.How do you reduce false positives without missing real attacks?
Tune detections with data: measure each rule's precision, add context that separates benign from malicious activity, and check that the tuned rule still catches known attacks before deploying it.
- Measure per rule: how many alerts it raises, how many were true incidents, and how long each takes to triage.
- Find the benign pattern: a backup job, a scanner or an admin tool that explains most false alerts.
- Narrow precisely: exclude that specific account, host and command, not a whole category of activity.
- Add context: combine signals, such as "rare process and outbound connection and new for this host".
- Replay known attacks: run the tuned rule against past incidents and attack simulations to confirm it still fires.
- Review exclusions regularly, because attackers deliberately hide inside allowlisted tools and accounts.
Useful measures:
precision = true alerts / all alerts- Analyst hours per week a rule consumes.
- Detection coverage: the share of simulated attack techniques that at least one rule catches.
Lowering a rule's sensitivity is the last resort, not the first. It cuts noise and real detections together.
Example
Tuning a rule that flags remote administration from workstations:
- Before tuning, it fired 400 times a week. Analysts confirmed 8 as real, so
precision = 8 / 400 = 2%. At 10 minutes per alert, it cost about 67 analyst hours a week. - Review showed that 350 alerts came from the IT team's two management workstations running a scheduled inventory script.
- The rule was changed to exclude that script's exact path and signer on those two hosts only, and to require a target server outside the inventory list.
- Replaying the last quarter's 12 confirmed incidents, the tuned rule still caught all 12.
- After tuning, it fires about 40 times a week with the same 8 true detections, so precision is 20% and the cost is under 7 hours a week.
Q79.How do indicators of compromise differ from indicators of attack?
Indicators of compromise are artifacts left by a known attack, such as a malicious file hash or command server address. Indicators of attack describe behavior that shows an attack is under way, whatever tools are used, such as a document spawning a command shell.
Indicators of compromise Indicators of attack Evidence of a known threat Attacker behavior and intent File hashes, IP addresses, domains Credential dumping, unusual parent-child processes, mass file encryption Often found after the compromise Seen while the attack is in progress Short-lived: attackers change them easily Long-lived: behavior is costly to change Rarely find new attacks Often find new attacks Few false positives for exact matches More false positives; needs tuning When to use which:
- Use compromise indicators to sweep the environment quickly after an incident or a threat report, and to block known-bad infrastructure.
- Build most detections on attack behavior, because changing a file hash costs an attacker seconds, while changing how they steal credentials costs weeks.
- Combine both: behavior-based alerts find the intrusion, and the indicators collected from it let you scope it across every host.
Q80.What are the stages of a typical intrusion, from reconnaissance to impact?
Most intrusions follow a recognizable sequence: the attacker learns about the target, gets in, establishes a foothold, expands access, and then achieves the goal, such as stealing data or encrypting systems. Defenders who map their detections to these stages can stop an attack at several points.
flowchart LR A["Reconnaissance"] --> B["Initial access"] B --> C["Execution and persistence"] C --> D["Privilege escalation"] D --> E["Credential access"] E --> F["Lateral movement"] F --> G["Collection"] G --> H["Exfiltration or impact"]- Reconnaissance: public information about staff, domains and exposed services.
- Initial access: phishing, stolen credentials or an exploited internet-facing system.
- Execution and persistence: running tools and making sure access survives a reboot.
- Privilege escalation and credential access: gaining admin rights and harvesting more passwords and tokens.
- Lateral movement: using those credentials to reach other systems.
- Collection, exfiltration or impact: gathering data, sending it out, or encrypting and destroying systems.
Why it is useful: an attacker must succeed at every stage, while defenders need to catch only one. Detections in the middle stages, such as credential theft and lateral movement, often give the best chance, because they happen inside your own environment where you have the most visibility.