Fellipe Sanches' website

Category: Security Engineering

Structured lessons on designing, implementing, and validating secure systems.

  • Lesson 01 — What Does a Security Engineer Actually Do? (Practical Lab)

    WEEK 01 · LESSON 01 · 45–60 MINUTES · ESSENTIAL + PROFESSIONAL CHALLENGE

    ← Back to the 12-week roadmap · Leia em português

    Security engineering is not about memorizing tools or trying to hack everything. It is about making systems safer by design, deciding which risks matter, implementing controls, and proving that those controls work. Today you will act as the security engineer for a fictional small SaaS product.

    Your deliverable: a one-page security review containing a system diagram, three risks, three controls, and a way to verify each control. Keep it: it is the first artifact in your learning portfolio.

    1. What will you be able to do?

    • Explain the difference between an asset, threat, vulnerability, risk, and security control.
    • Describe what a security engineer actually delivers to a business.
    • Turn a vague concern into a testable technical requirement.
    • Prioritize a few practical improvements instead of making an endless tool checklist.

    2. A security engineer’s mindset

    Ask four questions in order: What matters? What could go wrong? What can reduce the risk? How will we know it works?

    Asset: something valuable, such as customer information or service availability. Threat: a possible cause of harm. Vulnerability: a weakness that can be exploited or trigger failure. Risk: the combination of a harmful scenario, its likelihood, and its impact. Control: a measure designed to reduce that risk, such as access checks, MFA, monitoring, or tested backups.

    The NIST Cybersecurity Framework 2.0 organizes cybersecurity work into six complementary functions:

    • Govern: decide ownership, objectives, and acceptable risk.
    • Identify: inventory important systems, data, and dependencies.
    • Protect: use safeguards such as least privilege and encryption.
    • Detect: observe suspicious or unexpected activity.
    • Respond: contain and investigate incidents.
    • Recover: restore services and learn from failures.

    One job title does not have to own every function. Security engineers often collaborate with developers, cloud engineers, infrastructure teams, and incident responders. A good deliverable is a working protection with evidence—not merely a recommendation slide.

    3. Your fictional company: OrderDesk

    OrderDesk helps small businesses collect customer orders. It has a website, a backend API, a PostgreSQL database, and object storage for attachments. Each merchant signs in to see only their own orders. Administrators manage the service. Customer records include names, phone numbers, and delivery details.

    During an initial review you hear three worrying statements:

    1. “Order IDs are sequential, and I am not sure the API checks which merchant owns each order.”
    2. “Admins use passwords, but we have not enabled MFA or reviewed failed-login alerts.”
    3. “The database is backed up nightly. Nobody remembers the last restoration test.”

    These are hypotheses to investigate, not confirmed incidents. A security engineer turns each into a concrete check, a decision, and an improvement.

    4. Hands-on lab — create a one-page security review (30 minutes)

    Step A — Draw the system (5 minutes)

    On paper or in a diagram tool, draw: Customer browser → Web app/API → PostgreSQL, plus API → object storage. Mark the boundary between a merchant’s account and another merchant’s data. Mark where administrators sign in. No accounts or paid tools are required.

    Step B — Fill your risk register (10 minutes)

    Use this table as a starting point. Copy it to a note and improve it in your own words:

    AssetWhat could go wrong?ControlProof it works
    Merchant ordersMerchant A reads merchant B’s recordsServer-side authorization on every order requestWith synthetic test accounts, A cannot access B’s order (403/404)
    Admin accountsStolen password grants privileged accessMFA, least privilege, login monitoringTest admin MFA and alerting with test accounts
    Orders databaseDeletion or outage causes prolonged data lossProtected backups and a recovery planRestore into an isolated environment and check records

    Step C — Choose priorities (10 minutes)

    For each risk, record impact (low/medium/high), likelihood (low/medium/high), and what you still do not know. Choose your top three actions. Explain why each deserves attention before selecting a product or vendor. These are qualitative judgments, not a precise risk formula.

    Step D — Write acceptance criteria (5 minutes)

    Transform your highest-priority risk into a testable task. Example: “When merchant A is authenticated, requesting an order belonging to merchant B must never disclose B’s order data; the API must enforce authorization regardless of UI behavior.” Define how you would verify it on accounts and data you control.

    5. Test your decisions

    Try the questions below before revealing their answers. Getting one wrong is useful: explain what assumption you made.

    Question 1 — Merchant A can read merchant B’s order. Is hiding B’s order link in the UI enough?

    No. Browser UI restrictions are not authorization. The API must check the authenticated merchant against the owner of every requested order. Verify with two synthetic accounts and a negative test.

    Question 2 — Nightly backups are running. Does that prove OrderDesk can recover from data loss?

    No. A successful backup job is only one piece of evidence. Restore a copy into an isolated test environment, verify data integrity and measure how long recovery takes.

    Question 3 — Which is a stronger deliverable: “Enable MFA” or “Admin MFA is enforced and verified”?

    The second. A verified control has an owner, a test, and evidence. “Enable MFA” alone could remain an unimplemented recommendation. Security engineering is about measurable outcomes.

    6. Professional challenge (optional, 20 minutes)

    If you develop software, implement one small automated negative authorization test in a local project you own: create two synthetic merchants and an order for merchant B; authenticate as A; request B’s order; assert that no sensitive data is returned and the response is 403 or 404. Also test the list and update endpoints where relevant. Never test other people’s applications without authorization.

    If you are not coding yet, write the three test cases in plain language. A well-designed test is still valuable engineering work.

    7. Check your deliverable

    • ☐ I drew the components and at least one trust boundary.
    • ☐ I identified three valuable assets and plausible failure scenarios.
    • ☐ I chose controls with clear owners and priorities.
    • ☐ Every control has a way to verify its effectiveness.
    • ☐ I can explain my most important decision in two sentences.

    Self-assessment: 5/5 means you completed the lesson; fewer than 5 means revise the missing items. Save your diagram and risk register as lesson-01-security-review in your notes or portfolio. Do not publish production data, credentials, or internal architecture details.

    8. Learn the culture

    Read the introduction to OWASP Top 10:2025 — Broken Access Control and the NIST NICE Framework. Notice the difference between knowing a vulnerability name and being responsible for a measurable security improvement.

    Reflection: What would you protect first in OrderDesk, and what evidence would convince you that your change worked? Write a three-sentence answer. Next: Lesson 02 — Confidentiality, Integrity, and Availability in Real Systems.

  • Security Engineering: A Practical 12-Week Learning Roadmap

    Security is not just about finding vulnerabilities. It is about designing systems that reduce risk, implementing effective defenses, detecting unusual behavior, and responding when something goes wrong.

    Leia em português

    This free series explains how that work happens—one practical lesson at a time. Our goal is to build a strong foundation in security engineering and apply it to realistic technical problems.

    Who is this learning path for?

    • People beginning their journey in cybersecurity.
    • Software developers who want to build more secure applications.
    • IT, network, and Linux professionals moving toward security roles.
    • Cloud engineers seeking stronger security design skills.

    You do not need a security job title to start. We explain the essentials before offering more advanced challenges.

    What does a security engineer do?

    A security engineer helps protect applications, infrastructure, identities, services, and data. Four questions guide the work:

    1. What are we protecting? Identify the assets and their importance.
    2. What could go wrong? Consider threats, mistakes, and failure scenarios.
    3. How can we reduce the risk? Design controls such as least privilege, segmentation, encryption, monitoring, and tested backups.
    4. How do we verify the defenses? Use tests, logs, reviews, and incident exercises.

    Security engineering overlaps with Cloud Security, Application Security, Network Security, and DevSecOps. We will discover how these areas connect rather than treat them as isolated careers.

    The 12-week learning roadmap

    1. Week 01 — Security Fundamentals: confidentiality, integrity, availability, threats, risk, and defense in depth.
    2. Week 02 — Network Security: TCP/IP, DNS, TLS, firewalls, traffic analysis, and segmentation.
    3. Week 03 — Linux Security: permissions, SSH, logs, hardening, and monitoring.
    4. Week 04 — AWS Identity and Access: IAM policies, roles, temporary credentials, and least privilege.
    5. Week 05 — AWS Network Security: VPC, subnets, Security Groups, NACLs, and database isolation.
    6. Week 06 — Data Protection: S3, KMS, encryption, backups, and recovery checks.
    7. Week 07 — Application Security: OWASP risks, authentication, authorization, and secure coding.
    8. Week 08 — API Security: OAuth 2.0, input validation, SQL injection, XSS, and access control.
    9. Week 09 — Container Security: Docker images, permissions, vulnerabilities, and isolation.
    10. Week 10 — DevSecOps: CI/CD, secrets, dependency scanning, and infrastructure as code.
    11. Week 11 — Detection and Response: logging, CloudTrail, alert triage, and incident investigation.
    12. Week 12 — Final Project: review and harden a small application and its infrastructure.

    Each week includes five short sessions. The last one focuses on review and practice. The schedule is a guide, not a race.

    How each lesson works

    • 10 minutes — Concept: understand the vocabulary and why a control exists.
    • 20 minutes — Practice: inspect a configuration, solve a scenario, or work in a safe lab.
    • 10 minutes — Reflection: explain the risk, your decision, and how to verify the result.

    Every lesson has two tracks: Essential, with simple explanations and a guided exercise, and Professional Challenge, with a more realistic engineering problem. Interactive questions and small simulations will help you test your understanding.

    Learn the culture, not just the tools

    Security changes constantly. Follow technical write-ups, incident reports, official documentation, and local communities. Explore the AWS Security Blog, the OWASP Top 10, the CISA Known Exploited Vulnerabilities catalog, and the OWASP São Paulo chapter.

    Practice only in systems you own or in deliberately vulnerable training environments, such as PortSwigger Web Security Academy and OWASP Juice Shop. Never probe third-party systems without authorization.

    What will you gain?

    By the end, you should have stronger technical vocabulary, hands-on experience with common security controls, a documented set of exercises, and a small final project. Twelve weeks are not a promise of mastery or employment; they are a structured foundation for continued learning.

    Warm-up challenge: Is a system secure just because it has a firewall? Reveal the answer.

    No. A firewall is one control, not a security guarantee. You also need to understand the assets and threats, manage identities and permissions, patch software, protect data, monitor behavior, and prepare to respond to incidents. In the next lesson, we will turn that mindset into a concrete exercise.

    Next lesson

    Lesson 01 — What Does a Security Engineer Actually Do? We will explore the engineer’s mindset and ask what it really means for a system to be secure.

    Start Lesson 01 — Practical Security Review →

    Core references