Software Development
- Russian Federation GOST R 56939-2024 - Information protection. Secure software development. General requirements
- Russian Federation GOST R ISO/IEC 12207-2010 - System and software engineering, Software life cycle processes(IDT)
- Russian Federation GOST R 58412—2019
- Russian Federation GOST R 50922-2006 - Protection of information. Basic terms and definitions
- Russian Federation GOST R 57628-2017 - Information technology. Security techniques. Guide for the production of Protection Profiles and Security Targets
- By location
- Internal — threats originating from within the organization (e.g., employees, insiders)
- External — threats originating from outside the organization (e.g., hackers, third parties)
- By visibility
- Active — threats that involve direct interaction with the system (e.g., exploiting a vulnerability)
- Passive — threats that involve monitoring or eavesdropping without direct interaction
- By access
- Unauthorized access — gaining access to resources without permission
- Data leakage or integrity violation — exposure or alteration of sensitive data
- By target
- Threats to data
- Threats to components and information services
- Threats to hardware
- Threats to supporting infrastructure
- By objectivity
- Objective — threats independent of human perception (e.g., natural disasters)
- Subjective — threats caused by human factors (e.g., errors, malicious intent)
- Accidental — unintentional threats (e.g., mistakes, misconfigurations)
- Calculation
- The amount of risk = the probability of the event * the amount of damage
- Probability of an event = the probability of a threat * the magnitude of the vulnerability
- ALE = SLE * ARO
- Vulnerability registries
- CVE (Common Vulnerabilities and Exposures) — publicly disclosed security flaws
- CWE (Common Weakness Enumeration) — catalog of common software weakness types
- Risk analysis
- Asset identification — identify all assets within the system scope
- Asset valuation — determine the criticality and value of each asset
- Threat identification — identify potential threats to each asset
- Vulnerability identification — identify weaknesses in the security controls
- Risk probability and impact assessment — evaluate the likelihood of threats and their business impact
- Cost assessment — estimate potential damage costs and the cost of security measures
- Recommendation generation — produce prioritized recommendations for risk mitigation
- Risk assessment
- CVSS (Common Vulnerability Scoring System) — open standard for scoring vulnerability severity (0–10)
- Approaches to risk analysis
- Qualitative analysis
- Risk — identified risk item
- Description — nature and context of the risk
- Probability — likelihood of occurrence
- Impact — consequences if realized
- Result — overall risk level (e.g., low, medium, high)
- Risk mitigation measures — actions to reduce or eliminate the risk
- Quantitative analysis
- Methods
- Quantitative risk indicators
- ALE (Annual Loss Expectancy) — SLE × ARO
- SLE (Single Loss Expectancy) — asset value × exposure factor
- EF (Exposure Factor) — percentage of asset loss from a single incident
- ARO (Annualized Rate of Occurrence) — expected frequency of incidents per year
- Static analysis
- Trend Analysis — examining data over time to predict future patterns
- Regression analysis — modeling relationships between variables
- Time series analysis — analyzing time-ordered data points
- Bayesian analysis — updating probabilities as new evidence emerges
- The Monte-Carlo — simulating risk outcomes through random sampling
- Quantitative risk indicators
- Methods
- Combined analysis
- OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation) — self-directed risk assessment methodology
- FAIR (Factor Analysis of Information Risk) — quantitative risk analysis taxonomy
- RMF (NIST Risk Management Framework) — structured risk management process (categorize, select, implement, assess, authorize, monitor)
- ISO/IEC 27005 — international standard for information security risk management
- ENISA Risk Management Framework — European framework for risk assessment and management
- COBIT (Control Objectives for Information and Related Technologies) — IT governance and management framework
- Risk IT Framework — IT risk management extension to COBIT
- ISO 31000 — international standard for generic risk management
- Qualitative analysis
- Information Security Architecture
- access control mechanisms
- threat monitoring and management systems
- data protection measures
- measures to comply with regulatory requirements
- Standards
- ISO/IEC 27001, ISO/IEC 27002
- Public data — no restrictions, freely accessible
- Internal data — limited to internal use
- Confidential data — restricted access, moderate harm if disclosed
- Secret data — highly restricted, severe harm if disclosed
- NIST SP 800-53, NIST SP 800-60
- Low impact — limited adverse effect on operations or assets
- Moderate impact — serious adverse effect
- High impact — severe or catastrophic adverse effect
- 152-ФЗ «О персональных данных»
- Publicly available personal data — accessible from public sources
- Personal data — any information relating to an identified or identifiable individual
- Special categories of personal data — sensitive data (health, biometrics, beliefs, etc.)
- ISO/IEC 27001, ISO/IEC 27002
- Homomorphic encryption — computation on encrypted data without decryption
- Data Loss Prevention (DLP) — monitoring and blocking unauthorized data transfers
- Data Obfuscation Mechanisms
- Tokenization — replacing sensitive data with non-sensitive placeholders
- Shuffling — random permutation of values across records
- Zeroing/Substitution — replacing real values with zeros or dummy data
- Character Scrambling — randomizing characters within data fields
- Data Masking
- Static Data Masking — irreversible masking in non-production copies
- Dynamic Data Masking — real-time masking based on user permissions
- Deterministic Masking — same input always produces the same masked output
- Non-Deterministic Masking — each masking operation may produce a different result
- RBAC (Role-Based Access Control) — access based on roles assigned to users
- ABAC (Attribute-Based Access Control) — access based on attributes (user, resource, environment)
- How to build a custom Java image — best practices for building minimal and secure Java container images
Golden session cookie configuration with security flags. Information from
Set-Cookie: session=<session id>; HttpOnly; Secure; SameSite=Lax; Path=/; Max-Age=3600
-
IDOR (Insecure Direct Object Reference)
- Occurs when an application exposes direct references to internal objects (e.g., database IDs) without proper access control
- Example:
/api/users/123— modifying123to access another user’s data - Mitigation: enforce authorization checks for every object access, use indirect references (UUIDs)
-
Path Traversal
- Attacker manipulates file paths to access files and directories outside the web root
- Example:
../../../etc/passwd - Mitigation: normalize and validate paths, use allowlists, avoid passing user input directly to filesystem APIs
-
CSRF (Cross-Site Request Forgery)
- An attacker tricks an authenticated user into executing unwanted actions on a web application
- Mitigation: CSRF tokens, SameSite cookies (Strict/Lax), validate Origin/Referer headers
-
SSRF (Server-Side Request Forgery)
- A server-side application fetches a URL supplied by the attacker, targeting internal resources
- Example:
?url=http://169.254.169.254/(cloud metadata endpoint) - Blind SSRF — no direct response; requires out-of-band detection via DNS/HTTP callbacks
- SVG Upload — using SVG files with external entity references to trigger server-side requests
- XInclude — XML Inclusions to include external resources during server-side XML processing
- Mitigation: allowlist of permitted URLs/domains, block private IP ranges, implement egress network policies
-
XXE (XML External Entity Injection)
- Attack exploiting XML parsers that process external entities, leading to file disclosure, SSRF, or DoS
- DTD (Document Type Definition) — defines XML structure and can reference external resources
- dtd-locker — technique to lock a malicious DTD for out-of-band data exfiltration
- In-Band — extracted data returned directly in the server response
- Error-Based — data extraction through verbose XML parsing error messages
- Out-of-Band (OOB) — exfiltration via external channels (DNS, HTTP); requires an OOB collector
- Mitigation: disable external entity processing in XML parsers, use less complex data formats (JSON)
-
NGINX Misconfiguration
- Off-by-slash — path traversal caused by missing trailing slash in
aliasdirective - Alias Traversal — directory traversal via misconfigured
aliasblock (e.g.,/static→/static../) - Mitigation: always add trailing slashes consistently, avoid
aliasinside regex locations, preferroot
- Off-by-slash — path traversal caused by missing trailing slash in
-
CORS Misconfiguration
- Overly permissive
Access-Control-Allow-Origin(e.g., reflecting arbitrary origins or using*with credentials) - Allows attackers to read sensitive cross-origin responses on behalf of authenticated users
- Mitigation: restrict
Access-Control-Allow-Originto a specific allowlist, avoid reflectingOriginheader
- Overly permissive
-
Open Redirect
- An application accepts a user-controlled URL and redirects without validation
- Example:
/redirect?url=https://evil.com - Mitigation: allowlist of permitted redirect destinations, use relative paths, avoid passing raw URLs from user input