Lab Guide: Unit 1 — CCT Foundations & AI Landscape

CSEC 601 | Weeks 1–4 | Semester 1

Four hands-on lab sessions applying Collaborative Critical Thinking to real security scenarios, building your first AI-assisted security workflows, and establishing baseline performance metrics.

Claude as your CCT learning partner: Use Claude to pressure-test your CCT reasoning. After each reflection question in this unit, share your answer with Claude and ask: "What am I missing? What assumption am I making that might not hold?"
Unit 1 Lab Progress 0 / 30 steps complete

Week 1 — First AI-Assisted Investigation & CCT Incident Analysis

WEEK 1Lab: Claude Code Setup + Meridian Financial Incident

Lab Goal: Install Claude Code, run your first AI-assisted investigation, and apply all five CCT pillars to a realistic data exfiltration scenario. You will measure your baseline MTTI and submit a structured threat assessment.

Using Claude as your learning partner: Throughout this course, you'll see "Conversation Starters" — pre-written prompts you can paste directly into Claude or adapt for your own context. These aren't scripts to copy blindly. They're starting points. After running a conversation starter, follow up with your own questions based on what Claude actually said. The best learning happens in the back-and-forth after the first prompt, not in the first prompt itself.

Knowledge Check — Before You Start

Answer these questions before beginning the lab. If you miss any, review the Week 1 lecture before proceeding.

1. What does CCT stand for in this course?

2. Which CCT pillar focuses on seeking diverse viewpoints and challenging groupthink?

3. An AI agent flags an account for compromise with 90% confidence. What does CCT recommend?

4. What does the MTTI metric measure in the Noctua framework?

Lab Exercise: Meridian Financial Incident Analysis

Scenario: You are a junior SOC analyst at Meridian Financial. At 2:34 AM EST on March 3, 2026, your SIEM fires: VP John Chen's account (jchen@meridian.local) accessed the production data warehouse from 203.45.12.89 (Singapore proxy), downloaded 47 CSV files (2.3 GB of revenue reports, client balances, transaction histories) in 8 minutes 34 seconds using valid credentials + successful MFA. Leadership requires a preliminary assessment in 30 minutes.

Separate the security track from the personnel track. Investigation data (logs, alerts, access records) and personnel data (HR records, role, employment status) must be handled in separate workstreams. Attribution and containment are distinct processes. Do not include personnel judgments in technical incident documentation. The suspect in an investigation has not been determined to be a perpetrator.

Try the /think Skill Before You Start

Before opening Claude Code, use the /think skill to structure your approach. It maps directly to CCT — surface your assumptions, identify risks, and consider alternatives before touching any tool. Perfect for incident analysis where gut instinct can lead you astray.

⭳ Download think.md 👁 All Course Skills
curl -o ~/.claude/commands/think.md https://raw.githubusercontent.com/r33n3/Noctua/main/docs/skills/think.md
# Then in any Claude Code session:
/think analyze the Meridian Financial incident — what do we know, what are we assuming, and what could explain this alert?

Check each step as you complete it. Your progress is saved automatically.

claude --version
# Expected: claude-code/x.x.x
mkdir -p ~/noctua-labs/unit1/week1
cd ~/noctua-labs/unit1/week1
Lab data files — all data files for this course are available in the course data directory. Click the download button below or access them directly from the course GitHub repository under docs/data/. If a file does not open, right-click the button and choose "Save link as."
mkdir -p ~/noctua-labs/unit1/week1
cp ~/Downloads/incident-data.md ~/noctua-labs/unit1/week1/
# Or if viewing locally from the course docs folder:
cp ./data/incident-data.md ~/noctua-labs/unit1/week1/
claude
# Then paste the CCT 5-pillar analysis prompt from the lecture material

AI recommendations must overlay your organization's IR playbooks. The model in this lab recommended "soft containment" — session token revocation and IP block, but explicitly not account lockout. A student reviewer correctly identified this as too lax for a P1 incident. Standard IR practice at most organizations mandates immediate account lockout at P1 severity.

AI-generated recommendations are starting points, not authority. Always overlay model output with your organization's documented procedures: P1 playbooks, containment checklists, escalation matrices. Use the model as a thinking partner — not as a replacement for organizational policy.

CCT connection: This is Pillar 4 (Adaptive Innovation) applied to the model's own output. The student caught something the model missed because they had real-world IR context the model lacked. That's human-AI collaboration working correctly.

Containment sequence matters: isolate before terminate. Terminating a running instance before isolating it destroys forensic evidence — memory contents, process tree, open network connections, active sessions. Standard IR procedure:

  1. Network quarantine (cut external access)
  2. Forensic image capture (memory + disk)
  3. Preserve and document
  4. Then terminate if needed

Premature termination is one of the most common IR mistakes. It feels decisive; it destroys evidence.

python3 -m json.tool threat-assessment.json
# Should print formatted JSON without errors

What MTTI improvement should and shouldn't look like. Execution phases — prompt construction, Claude generation, output formatting — will get dramatically faster as your context engineering improves. That's legitimate improvement. CCT phases — reasoning, judgment, challenge, integration — should remain weighted. A compressed CCT phase is a failure mode, not a success metric. If your MTTI drops because you stopped challenging AI output, you've made yourself less effective, not more.

# metrics-log.csv
incident_id,phase,start_time,end_time,duration_min
MF-2026-0342,data_load,[your time],[your time],
MF-2026-0342,cct_analysis,[your time],[your time],
MF-2026-0342,claude_prompt,[your time],[your time],
MF-2026-0342,review,[your time],[your time],
Week 1 Deliverables
  • threat-assessment.json — Claude's structured CCT analysis in valid JSON format
  • CCT Analysis Report (800–1000 words) — your own write-up applying all 5 pillars, with 3 follow-up questions you would ask before escalating
  • metrics-log.csv — timestamps for each phase and your calculated MTTI baseline
  • CCT Journal Entry (500–750 words) — reflect on your first experience using AI as a thinking partner; what did Claude surface that you hadn't considered?

Week 2 — Cognitive Bias & CCT Deep Dive

WEEK 2Lab: Bias Identification & CCT-Structured Rewrite

Lab Goal: Identify cognitive biases embedded in a flawed security investigation report, map them to CCT pillars, then use Claude Code to produce a corrected, CCT-structured version. Document how bias reduction changes the investigative conclusion.

Knowledge Check — Week 2

Complete before starting the lab exercise.

1. An analyst writes: "This IP is from China, so it's definitely a state-sponsored attack." Which CCT violation does this represent?

2. What is confirmation bias in the context of security analysis?

3. Which CCT pillar emphasizes asking 'what evidence would prove me wrong?'

Lab Exercise: Bias Identification & CCT Rewrite

Sample Biased Report to Analyze: The following report contains multiple cognitive biases. Do NOT show it to Claude Code first — identify biases yourself before comparing with Claude's output.

INCIDENT REPORT — Account Access Anomaly
Analyst: J. Martinez | Date: March 5, 2026 | Ticket: INC-0455

SUMMARY: Confirmed insider threat. Account belongs to a contractor
from Eastern Europe (historically high-risk region for our org).
Downloads occurred at 2 AM, which is suspicious for any normal user.
The contractor recently had access elevated and has been "acting
weird" according to teammates. Prior to this incident, no issues —
but that's likely because they were biding their time.

EVIDENCE:
- 2:03 AM access from contractor account (bdavis@contractors.local)
- Downloaded 15 files from the project repository
- Account elevated to senior access 3 weeks ago by IT
- Source IP: 92.118.45.201 (Romania, VPN service)

RECOMMENDATION: Immediate termination of employment contract.
Preserve all evidence for law enforcement referral.
Do NOT notify the contractor — they will destroy evidence.
claude
# Prompt: "You are an expert in cognitive bias and security analysis.
# Review this incident report for ALL cognitive biases present.
# For each bias: (1) name the bias type, (2) quote the exact text,
# (3) identify which CCT pillar it violates, (4) explain the risk
# of acting on this conclusion. [paste report]"
Week 2 Deliverables
  • bias-analysis.md — manual bias identification with CCT pillar mapping, plus gap analysis comparing your list to Claude's
  • cct-investigation.md — Claude's CCT-structured rewrite with 4-layer separation
  • 2-page reflection — analysis of how bias removal changes the investigation outcome and the real-world stakes of biased security reports

Week 3 — Modern AI Landscape for Security

WEEK 3Lab: Model Comparison & Phishing Analysis

Lab Goal: Empirically compare Claude Sonnet vs. Claude Haiku on a security analysis task. Build a model selection framework based on accuracy, cost, speed, and hallucination risk. Learn how context window size affects analysis quality.

Knowledge Check — Week 3

Note: Some questions below draw on Week 1 and Week 2 material as well as Week 3. If a question feels unfamiliar, check: Week 1 covered CCT and prompt basics; Week 2 covered the 5 pillars; Week 3 covers the AI landscape, models, and token economics.

1. What fundamentally distinguishes an AI agent from a basic large language model?

2. What key security capability do large context windows (200K+ tokens) enable?

3. Your SOC needs to classify 50,000 log entries per hour as benign/suspicious. Which model strategy is most appropriate?

Lab Exercise: Phishing Email Analysis Comparative Study

# Sample phishing email for analysis (save as phishing-sample.txt):

From: security@microsoft-account-alert.net
To: employee@yourcompany.com
Subject: URGENT: Unusual sign-in activity detected on your account

Dear Microsoft Account User,

We have detected unusual sign-in activity on your Microsoft account
associated with this email address. To prevent unauthorized access
and protect your data, your account access has been temporarily
limited.

Verify your identity within 24 hours to restore full access:
http://microsoft-secure-verify.account-protection.xyz/verify?token=82hX9k

If you do not verify, your account and all associated data (OneDrive,
Teams, Outlook) will be permanently suspended.

Microsoft Account Security Team
support@microsoft.com
mkdir -p ~/noctua-labs/unit1/week3
cd ~/noctua-labs/unit1/week3
# Save the sample above as phishing-sample.txt
claude
# Prompt: "Analyze this email for phishing indicators. For each
# indicator: type, severity, confidence (0-100%), and explanation.
# Conclude with: is_phishing (true/false), confidence, user_action,
# false_positive_risk. Format as JSON."
# Claude Sonnet pricing (March 2026):
# Input: $3.00 / 1M tokens | Output: $15.00 / 1M tokens
# Estimate tokens per email analysis (input + output combined)
# 10,000 emails/day * [tokens per analysis] * [price per token] = daily cost

Going Deeper — Explore What the Lecture Introduced

Explore on your own (optional but recommended):

  1. Transformer architecture: Ask Claude to explain the attention mechanism in a transformer model in terms of what it means for security analysis — what does "attention" actually compute?
  2. Context window comparison: Research current context window sizes for Claude Sonnet, GPT-4o, and Gemini 1.5 Pro. What does a 200K token context window actually enable?
  3. Open source model tradeoffs: Ask Claude to compare running a local Llama model vs. using the Claude API for a security use case. What are the tradeoffs around privacy, cost, and capability?
  4. Privacy tradeoffs: What data should never leave your network, even to a trusted AI API provider? Build a quick classification: (a) safe to send, (b) anonymize first, (c) never send.

Extension: Context budget logging — Add a counter to your agent that logs the token count before and after each tool call. When does context grow fastest? What types of tool results are most expensive? Observe the pattern before optimizing. You can surface this with Claude's API response metadata (usage.input_tokens), or prompt Claude Code to estimate token counts per step. Document your findings in a brief note: which steps are the most expensive context contributors, and which are cheap?

Extension: Context window stress test — Take your working agent and deliberately fill the context with a long conversation history. At what point does response quality degrade? At what point does cost per call make the agent economically unviable? Document your findings in a one-paragraph note. Suggested approach: add 10–15 turns of prior conversation to the context before your main analysis prompt, and compare output quality against a clean-context run. This is not a theoretical exercise — context bloat in multi-turn agent workflows is one of the most common production failure modes.

Week 3 Deliverables
  • model-comparison.md — comparison matrix across approaches, including false positive test results
  • Model Selection Recommendation (1 page) — justified recommendation with cost analysis
  • CCT Journal Entry — how did testing force you to think more carefully about the cost of AI errors in security?

Week 4 — Context Engineering

WEEK 4Lab: Building a Security Analyst System Prompt

Lab Goal: Apply context engineering principles to build a reusable, high-quality system prompt for a security analyst agent. Empirically measure how engineering the context improves output quality versus a naive approach.

Knowledge Check — Week 4

1. How does 'context engineering' differ from 'prompt engineering'?

2. In the Core Four framework (Prompt, Model, Context, Tools), which component defines what external actions an agent can take?

3. Why is the system prompt critical for security agent governance?

Lab Exercise: Engineering a Security Analyst System Prompt

mkdir -p ~/noctua-labs/unit1/week4
# Create v1-system-prompt.md with minimal prompt
# Test in Claude Code by starting with:
claude
# Then: "Using system prompt: [v1 text]. Now analyze: [incident data]"
# v2-system-prompt.md structure:

## Role
You are a senior security analyst and incident responder with 10+
years of experience. You specialize in threat hunting, digital
forensics, and AI-augmented security operations.

## Operating Principles
- ALWAYS separate observations (Layer 1) from inferences (Layer 2)
  from hypotheses (Layer 3) from conclusions (Layer 4)
- NEVER attribute malicious intent without supporting evidence
- ALWAYS list what information is missing before concluding
- ALWAYS provide alternative innocent explanations
- ALWAYS address ethical implications of your recommendations

## Required Output Format
{
  "observations": [],
  "inferences": [],
  "top_3_hypotheses": [{"narrative": "", "probability": 0, "supporting_evidence": []}],
  "missing_information": [],
  "next_steps": [],
  "ethical_considerations": "",
  "recommendation": "",
  "confidence": 0
}

## Escalation Criteria
Escalate to incident commander if: evidence suggests active exfiltration
in progress, evidence of lateral movement, or data volume exceeds 1GB.
Week 4 Deliverables
  • v1-system-prompt.md and security-analyst-context-v2.md — both versions with documented rating scores
  • Context Engineering Report (1-2 pages) — V1 vs. V2 comparison, what changed, quantified improvement
  • Context Library Template — your reusable security analyst context file that you will build on throughout the course

Why you're creating CLAUDE.md here. In this lab, you're using Claude Code to review your own work from earlier weeks. CLAUDE.md tells Claude what kind of project this is, what your role is, and what context to bring to every session. Without it, Claude starts every conversation cold. With it, Claude enters already oriented. You'll update this file throughout the course as your project evolves.

CLAUDE.md vs. Context Library — what's the difference?
CLAUDE.md Context Library
What it isProject file Claude Code auto-loadsYour portable collection of reusable patterns
When it loadsEvery Claude Code session in that directoryWhen you explicitly feed it to the model
ScopeProject-specificPortable across projects and platforms
PlatformClaude Code onlyAny AI platform
AnalogyStanding orders for a specific officeYour professional playbook you carry everywhere

Use CLAUDE.md for project-specific context. Use your context library for reusable analyst patterns and system prompts you want available anywhere.

Save Your Context Permanently — Create a CLAUDE.md

You now have a context library. Teach Claude Code to load it automatically. Create a CLAUDE.md file in your project root — Claude Code reads it at the start of every session before you type a single word. Put your context library references, working standards, and architectural preferences there. You'll never have to re-explain your style to a new session again.

Use this prompt right now:

Based on the context library files I just built, write a CLAUDE.md that Claude Code should auto-load at the start of every security project session. Include my analyst system prompt reference, CCT framework, and output format standards.

Unit 1 Complete

You have worked through all four weeks of CCT Foundations & AI Landscape labs.

Topics introduced this unit that return later:

  • Slash commands (/think, /build-spec, /worktree-setup, /retro, /harness-assess) — introduced briefly; full coverage in Unit 4
  • MCP server configuration — you'll build your first MCP server in Unit 2
  • RAG and retrieval — introduced as a concept; you'll build a RAG system in Unit 2 Week 8
  • Open source model deployment — tradeoffs covered here; production deployment is a Semester 2 topic
  • CLAUDE.md as ongoing memory — created in Week 4; you'll evolve it throughout the course
Two harnesses — one concept, two different jobs

You will encounter the word "harness" throughout this course. It always means the same thing — the system of controls that shape and constrain agent behavior — but it refers to two distinct contexts that are easy to confuse:

Harness What it constrains Lives in When you build it
Development Claude while you work — what it can read, write, and run in your session .claude/settings.json, .claude/hooks/ Unit 1 setup, evolved throughout
Deployment The agent you ship — what it validates, filters, and enforces in production harnesses/<agent>/blueprint.yaml, fixed_steps/ Unit 7 and Unit 8 only

They use the same enforcement vocabulary — hooks, deny rules, deterministic pipelines — but they protect different things. The development harness protects you and your codebase. The deployment harness protects the users and systems your agent operates in.

What you mastered

  • CCT 5 pillars and how to apply them to AI-generated outputs
  • Context engineering as a first-class design decision
  • AI model landscape: capabilities, costs, tradeoffs
  • CLAUDE.md vs. context library distinction

What was introduced (returns in later units)

  • Slash commands and Claude Code skills (Unit 4)
  • MCP architecture and tool design (Unit 2)
  • RAG and knowledge retrieval (Unit 2)
  • Cedar policy enforcement (Unit 3)

What's waiting next

Unit 2 moves from interacting with Claude to building with it — you'll design and deploy your first MCP server, giving Claude access to real security tools.

Before starting Unit 2 — verify your setup:

If any of these are missing, set them up before Week 5. Unit 2 Day 2 starts with running Python code.

Next: Unit 2 Lab Guide — Agent Tool Architecture →