By Fatskills Exam Guides Team — the exam nerds behind 28,500+ quizzes and 2.1M practice questions across 500+ global exams.
Zero-fluff, hands-on guide for real-world risk assessments
You’re a security analyst at a mid-sized healthcare SaaS company. Your CISO just handed you a new HIPAA-compliant cloud deployment and said: "We need a risk assessment before go-live. Use a framework—NIST, ISO, or OCTAVE. I don’t care which, but it has to be defensible in an audit."
Why this matters in production: - Audits fail without documentation. If you can’t show a structured risk assessment, regulators (HIPAA, PCI DSS, GDPR) will fine you—or worse, shut you down. - You’ll miss critical risks. Without a framework, you’ll focus on the loudest threats (e.g., ransomware) and ignore silent killers (e.g., misconfigured IAM roles, unpatched legacy APIs). - Wasted time & money. Ad-hoc risk assessments lead to over-engineering (e.g., encrypting everything at rest and in transit when only one is needed) or under-engineering (e.g., no MFA for admin accounts).
Real-world scenario: You inherit a legacy on-prem Active Directory with 500+ users, no documentation, and a history of breaches. Your task:1. Identify risks (e.g., weak password policies, unpatched domain controllers).2. Prioritize fixes (e.g., "Patch DC first, then enforce MFA").3. Document everything for the next audit.
This guide gives you battle-tested frameworks to do this systematically.
nessuscli scan new --policy "Basic Network Scan" --targets 192.168.1.0/24
aws inspector start-assessment-run --assessment-template-arn arn:aws:inspector:us-east-1:123456789012:target/0-12345678/template/0-12345678
zap-baseline.py -t https://example.com -r report.html
Scenario: You’re assessing a new AWS-based patient portal for a healthcare client. They need HIPAA compliance, and the CISO wants a NIST RMF-based risk assessment before go-live.
Goal: Determine the impact level (Low/Medium/High) for confidentiality, integrity, and availability (CIA).
How to do it:1. Identify data types: - Patient records (PHI)-High confidentiality. - Appointment scheduling-Medium availability.2. Use NIST FIPS 199 to categorize: | Impact Level | Confidentiality | Integrity | Availability | |------------------|---------------------|---------------|------------------| | Low | Unauthorized disclosure has limited impact. | Unauthorized modification has limited impact. | Disruption has limited impact. | | Medium | Unauthorized disclosure has serious impact. | Unauthorized modification has serious impact. | Disruption has serious impact. | | High | Unauthorized disclosure has severe/catastrophic impact. | Unauthorized modification has severe/catastrophic impact. | Disruption has severe/catastrophic impact. |3. Document the categorization:
"The patient portal is categorized as High for confidentiality (PHI), Medium for integrity (appointment data), and Medium for availability (downtime acceptable for <4 hours)."
Verification: - Check with the legal/compliance team to confirm impact levels. - If unsure, default to High (better safe than sorry).
Goal: Choose baseline controls from NIST SP 800-53 based on the system’s impact level.
How to do it:1. Find the baseline controls: - For High-impact systems, use NIST SP 800-53 Rev. 5, Appendix D (High Baseline). - For Medium-impact, use Appendix C.2. Map controls to AWS services: | NIST Control | AWS Implementation | Example | |------------------|------------------------|-------------| | AC-2 (Account Management) | IAM | aws iam create-user --user-name "auditor" | | SC-7 (Boundary Protection) | Security Groups, NACLs | aws ec2 create-security-group --group-name "WebApp-SG" --description "Allow HTTPS" | | SI-4 (System Monitoring) | CloudTrail, GuardDuty | aws cloudtrail create-trail --name "ComplianceTrail" --s3-bucket-name "audit-logs" | | CP-9 (System Backup) | AWS Backup | aws backup create-backup-plan --backup-plan file://backup-plan.json |3. Document the controls:
aws iam create-user --user-name "auditor"
aws ec2 create-security-group --group-name "WebApp-SG" --description "Allow HTTPS"
aws cloudtrail create-trail --name "ComplianceTrail" --s3-bucket-name "audit-logs"
aws backup create-backup-plan --backup-plan file://backup-plan.json
"Control AC-2 (Account Management) is implemented via AWS IAM with MFA enforcement. See IAM policy MFA-Enforce."
MFA-Enforce
Verification: - Run aws iam list-users and check if MFA is enabled for all users. - Run aws cloudtrail describe-trails to confirm CloudTrail is enabled.
aws iam list-users
aws cloudtrail describe-trails
Goal: Deploy the selected controls in AWS.
Example: Enforcing MFA for IAM Users
# 1. Create an IAM policy requiring MFA aws iam create-policy --policy-name "MFA-Enforce" --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "BoolIfExists": { "aws:MultiFactorAuthPresent": "false" } } } ] }' # 2. Attach the policy to all users aws iam attach-user-policy --user-name "auditor" --policy-arn "arn:aws:iam::123456789012:policy/MFA-Enforce"
Example: Enabling AWS GuardDuty
# Enable GuardDuty in us-east-1 aws guardduty create-detector --enable # Verify it's running aws guardduty list-detectors
Verification: - Try logging in without MFA—you should get access denied. - Check GuardDuty findings: bash aws guardduty list-findings
bash aws guardduty list-findings
Goal: Test if the controls are working as intended.
How to do it:1. Run a vulnerability scan: bash # Using AWS Inspector aws inspector create-assessment-target --assessment-target-name "PatientPortal" aws inspector create-assessment-template --assessment-target-arn "arn:aws:inspector:us-east-1:123456789012:target/0-12345678" --assessment-template-name "HIPAA-Compliance" --duration-in-seconds 3600 aws inspector start-assessment-run --assessment-template-arn "arn:aws:inspector:us-east-1:123456789012:template/0-12345678"2. Check for misconfigurations: - Use AWS Config to check for unencrypted S3 buckets: bash aws configservice get-compliance-details-by-config-rule --config-rule-name "s3-bucket-server-side-encryption-enabled"3. Document findings:
bash # Using AWS Inspector aws inspector create-assessment-target --assessment-target-name "PatientPortal" aws inspector create-assessment-template --assessment-target-arn "arn:aws:inspector:us-east-1:123456789012:target/0-12345678" --assessment-template-name "HIPAA-Compliance" --duration-in-seconds 3600 aws inspector start-assessment-run --assessment-template-arn "arn:aws:inspector:us-east-1:123456789012:template/0-12345678"
bash aws configservice get-compliance-details-by-config-rule --config-rule-name "s3-bucket-server-side-encryption-enabled"
"AWS Inspector found 3 medium-severity vulnerabilities in the EC2 instances (CVE-2023-1234). Mitigation: Patch instances within 7 days."
Verification: - Check AWS Config for non-compliant resources. - Review GuardDuty findings for anomalies.
Goal: Get formal approval from the Authorizing Official (AO) (e.g., CISO).
How to do it:1. Compile the security package: - System categorization (Step 1). - Security controls (Step 2). - Assessment results (Step 4). - Plan of Action & Milestones (POA&M) for unresolved risks.2. Submit for approval: - Example POA&M entry: | Risk | Mitigation | Owner | Due Date | |----------|----------------|-----------|--------------| | Unpatched EC2 instances (CVE-2023-1234) | Patch within 7 days | DevOps Team | 2023-10-15 |3. Get sign-off: - The AO reviews and either: - Authorizes the system (go-live approved). - Denies authorization (fix issues first).
Verification: - Confirm the AO has signed the authorization letter. - Store the authorization package in a secure, auditable location (e.g., AWS S3 with versioning).
Goal: Ensure controls stay effective over time.
How to do it:1. Set up automated monitoring: - CloudWatch Alarms for failed logins: bash aws cloudwatch put-metric-alarm --alarm-name "FailedLogins" --metric-name "FailedLoginAttempts" --namespace "AWS/IAM" --statistic "Sum" --period 300 --threshold 5 --comparison-operator "GreaterThanThreshold" --evaluation-periods 1 --alarm-actions "arn:aws:sns:us-east-1:123456789012:SecurityAlerts" - AWS Config Rules for compliance drift: bash aws configservice put-config-rule --config-rule file://config-rule.json2. Schedule quarterly reviews: - Re-run vulnerability scans. - Update the POA&M.3. Document changes: - If a new CVE is published, assess its impact and update controls.
bash aws cloudwatch put-metric-alarm --alarm-name "FailedLogins" --metric-name "FailedLoginAttempts" --namespace "AWS/IAM" --statistic "Sum" --period 300 --threshold 5 --comparison-operator "GreaterThanThreshold" --evaluation-periods 1 --alarm-actions "arn:aws:sns:us-east-1:123456789012:SecurityAlerts"
bash aws configservice put-config-rule --config-rule file://config-rule.json
Verification: - Check CloudWatch Alarms for triggered alerts. - Review AWS Config for non-compliant resources.
bash aws kms encrypt --key-id "alias/RiskAssessmentKey" --plaintext fileb://risk-report.pdf --output text --query CiphertextBlob | base64 --decode > risk-report.enc
bash aws ec2 create-tags --resources i-1234567890abcdef0 --tags Key=RiskID,Value=RISK-001
Join 4M+ learners. Unlock unlimited quizzes, wrong-answer tracking, flashcards + reminders, study guides, and 1-on-1 challenges.