1. Vulnerability management process
Vulnerability management means continuously finding, prioritizing, fixing, and verifying security weaknesses before attackers exploit them.
A vulnerability is a weakness such as:
Weak password
Missing patch
Open port
SQL injection
Old library version
Wrong cloud permission
No MFA
A good vulnerability management process looks like this:
1. Identify assets
2. Scan for vulnerabilities
3. Assess risk
4. Prioritize
5. Remediate
6. Verify fix
7. Report and improve
Step 1: Identify assets
First, know what you have.
Examples:
Servers
Laptops
Databases
APIs
Cloud accounts
Docker containers
Network devices
Applications
Source code repositories
You cannot protect systems that you do not know exist.
Step 2: Scan for vulnerabilities
Use tools to find weaknesses.
Examples:
Nessus
Qualys
OpenVAS / Greenbone
Microsoft Defender Vulnerability Management
Snyk
Trivy
OWASP ZAP
For your .NET + React + SQL Server application, you may scan:
NuGet packages
npm packages
Docker images
Linux server patches
API security
SQL Server configuration
Step 3: Assess risk
Not all vulnerabilities are equal.
Example:
Critical remote code execution on internet-facing API = high risk
Low severity issue on internal test machine = lower risk
Risk depends on:
Severity
Exploit available or not
Internet-facing or internal
Business importance
Data sensitivity
Existing controls
Step 4: Prioritize
Fix the most dangerous issues first.
Common priority order:
1. Actively exploited vulnerabilities
2. Critical vulnerabilities on public systems
3. High vulnerabilities with known exploit
4. Vulnerabilities affecting sensitive data
5. Medium and low vulnerabilities
Step 5: Remediate
Remediation means fixing the problem.
Examples:
Install patch
Upgrade library
Close unused port
Enable MFA
Change weak password
Fix code bug
Harden server configuration
Remove unused service
Step 6: Verify
After fixing, scan again.
Example:
Before patch:
OpenSSL vulnerable version found
After patch:
Scanner confirms vulnerability is removed
Step 7: Report
Security teams usually report:
Number of critical vulnerabilities
Number fixed
Number pending
Average time to fix
Systems at highest risk
Exceptions accepted by management
The CVE Program’s mission is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities, and NIST defines attack surface as the points where an attacker can try to enter, affect, or extract data from a system.
2. Defense in depth model
Defense in depth means using multiple layers of security.
Do not depend on only one control.
Example:
If password is stolen, MFA protects account.
If attacker bypasses login, authorization protects API.
If API is attacked, input validation protects database.
If database is reached, encryption protects data.
If data is damaged, backup helps recovery.
Simple example: house security
You do not use only one lock.
You may use:
Gate
Door lock
Alarm
Camera
Safe locker
Insurance
Cybersecurity is similar.
Defense in depth layers
| Layer | Example controls |
|---|---|
| Physical security | Office access card, CCTV |
| Network security | Firewall, VPN, network segmentation |
| Identity security | MFA, strong password, least privilege |
| Endpoint security | Antivirus, EDR, patching |
| Application security | Input validation, secure coding, API authorization |
| Data security | Encryption, backup, access control |
| Monitoring | SIEM, logs, alerts |
| Recovery | Backup, disaster recovery plan |
Example for ASP.NET Core Web API
Layer 1: HTTPS
Layer 2: JWT authentication
Layer 3: Role-based authorization
Layer 4: Input validation
Layer 5: SQL parameterized queries / EF Core
Layer 6: Database access control
Layer 7: Logging and monitoring
Layer 8: Backup and restore
This is defense in depth.
3. CVE list
CVE means Common Vulnerabilities and Exposures.
A CVE list is a public catalog of known cybersecurity vulnerabilities.
Example CVE format:
CVE-2024-3094
CVE-2021-44228
CVE-2017-0144
What a CVE contains
A CVE record usually describes:
CVE ID
Affected product
Vulnerability description
References
Published date
Updated date
Severity information from related sources
Example:
CVE-2021-44228
Product: Apache Log4j
Issue: Remote code execution vulnerability
Common name: Log4Shell
The CVE Program says each vulnerability has one CVE Record, and the catalog is used to communicate consistent descriptions of publicly disclosed vulnerabilities.
CVE vs CVSS
Do not confuse CVE and CVSS.
| Term | Meaning |
|---|---|
| CVE | Vulnerability ID/name |
| CVSS | Severity score |
| CWE | Type/category of weakness |
| KEV | Known exploited vulnerability list |
Example:
CVE = CVE-2021-44228
CVSS = 10.0 Critical
CWE = Improper input validation
KEV = Known exploited in real attacks
How CVE is used in vulnerability management
Example:
Scanner finds:
CVE-2023-XXXXX in OpenSSL
Security team checks:
Is it critical?
Is exploit available?
Is server internet-facing?
Is patch available?
Then:
Patch OpenSSL
Restart service
Scan again
Close ticket
4. Attack surface
Attack surface means all possible places where an attacker can try to enter, attack, or extract data.
NIST defines attack surface as the set of points where an attacker can try to enter, cause an effect, or extract data from a system.
Examples of attack surface
For a web application:
Login page
REST API endpoints
Admin panel
Database port
File upload page
Open SSH port
Docker socket
Cloud storage bucket
Public IP address
Third-party libraries
Employees receiving emails
Small attack surface vs large attack surface
Small attack surface:
Only required ports open
MFA enabled
Few public APIs
No unused services
Proper firewall rules
Large attack surface:
Many open ports
Old applications
Unused services running
Weak passwords
Public admin panel
Many third-party plugins
Exposed cloud storage
Attack surface reduction
Attack surface reduction means reducing opportunities for attack.
Examples:
Close unused ports
Disable unused services
Remove old software
Use private network for database
Limit admin access
Use VPN or zero trust access
Apply least privilege
Patch systems
Restrict file uploads
5. Common attack vector
An attack vector is the path or method used by an attacker to attack a system.
Simple meaning:
Attack vector = how attacker enters
Common attack vectors
| Attack vector | Simple meaning |
|---|---|
| Phishing | Fake email/message tricks user |
| Stolen credentials | Attacker uses leaked username/password |
| Unpatched software | Attacker exploits old vulnerable software |
| Malware | Malicious software infects system |
| Ransomware | Data is encrypted and ransom is demanded |
| SQL injection | Attacker sends malicious SQL input |
| Cross-site scripting | Attacker injects JavaScript into web page |
| Misconfigured cloud | Public storage bucket or wrong permissions |
| Weak passwords | Easy passwords are guessed or cracked |
| Open ports | Exposed services are attacked |
| Supply chain attack | Third-party software/vendor is compromised |
| Insider threat | Employee or contractor misuses access |
CISA warns that unpatched software can let attackers exploit publicly known vulnerabilities, and common attack vectors include phishing, compromised credentials, unpatched vulnerabilities, and misconfigured cloud services.
6. How all concepts connect
Here is the full relationship:
Asset:
Customer database
Attack surface:
Public login API, database port, admin portal
Vulnerability:
Weak password, no MFA, SQL injection bug
CVE:
Known vulnerability in old software version
Attack vector:
Phishing email or SQL injection request
Threat:
Hacker or malware group
Risk:
Customer data may be stolen
Controls:
Patch, MFA, firewall, input validation, monitoring, backup
Defense in depth:
Multiple layers protect the system even if one layer fails
7. Practical example: React + ASP.NET Core + SQL Server
Suppose you build this app:
React frontend
ASP.NET Core Web API
SQL Server database
Docker deployment
JWT authentication
Possible assets
User database
JWT signing key
Source code
Docker images
SQL Server
API server
Customer personal data
Possible vulnerabilities
Weak JWT secret key
No HTTPS
SQL injection
Old NuGet package
Old npm package
Exposed SQL Server port
No rate limiting on login
No MFA for admin
Possible attack vectors
Phishing admin password
Brute force login
Exploiting old package CVE
Sending malicious input to API
Stealing JWT from browser localStorage through XSS
Scanning open ports
Defense in depth controls
Use HTTPS
Use strong JWT secret or certificate
Use short token expiry
Use refresh token securely
Validate all input
Use EF Core parameterized queries
Enable CORS correctly
Keep NuGet/npm packages updated
Do not expose SQL Server publicly
Enable logging and monitoring
Use Docker image scanning
Take database backups
Use MFA for admin users
8. Simple memory trick
Vulnerability management = Find and fix weaknesses
Defense in depth = Many security layers
CVE list = Public list of known vulnerabilities
Attack surface = All possible entry points
Attack vector = Method used to attack
Final example:
An old Apache server is running on the internet.
Asset:
Web server
Vulnerability:
Old Apache version
CVE:
Known Apache vulnerability ID
Attack surface:
Public HTTP/HTTPS port
Attack vector:
Remote exploit request
Defense in depth:
Firewall, patching, WAF, monitoring, backup
Vulnerability management:
Scan → find CVE → prioritize → patch → verify