secure software architecture Flashcards

(47 cards)

1
Q

what are benefits of developing secure software

A

data protection - safeguarding of sensitive information
minimising cyber attacks and vulnerabilities - weaknesses that attackers exploit to gain unauthorised access or cause harm

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

what are the software development steps

A

requirements, specifications, design, development, integration, testing and debugging, installation, maintenance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

what is the purpose of secure software architecture

A

to plan and structure software solution that meets the needs of stakeholders while ensuring security

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

how does the capabilities and experience of end users influence secure design features

A
  • the goal is to meet user needs and minimise security risks from misuse
  • security needs to be easy enough to understand and strong enough to protect user data
  • user feedback and testing, rbac
  • mfa, password managers, sso
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what are the fundamental software design security concepts

A

confidentiality, integrity, availability, authorisation, authentication, accountability

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

what is the CIA triad

A

confidentiality - sensitive information is kept private (access control, encryption)
integrity - ensuring data is accurate, consistent and trustworthy over entire lifecycle (access control, encryption, hashing, checksums, digital signatures)
availability - authorised users have efficient access to information they need (redundancy, load balancing, disaster recovery)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

what is the difference and purpose of authorisation and authentication

A

authentication - verifying the identity of users
authorisation - determine permissions and restrict access
- both used for access control

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

what is accountability and why does it need to be considered

A

traceability - every action in the system is linked to a responsible party
- audit trails and logging (Store record of events, activities and transactions)
- troubleshooting, compliance, security

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

what is STRIDE

A

threat modelling methodology developed by microsoft to analyse and classify threats on a prioritised list:
Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

how does cryptography contribute to security by design

A
  • process of encoding information so only the intended recipient can read
  • confidentiality through encryption (symmetric/asymmetric)
  • protects, verifies integrity, authenticates systems
  • hashing - converting to fixed length value
  • digital signatures - authenticate identity of sender
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

how does sandboxing contribute to security by design

A
  • controlled, isolated testing environment that enables programs/files to run without affecting system where it’s run
  • running untested/untrusted code
  • external APIs, web browser, user input, environments
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

what is the privacy by design approach

A
  • proactive not reactive (anticipating and addressing potential security/privacy issues during design and development stage)
  • embed privacy into design (integrating privacy practises throughout entire lifecycle)
  • respect for user privacy (users have the right to manage their information)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

how can the security and resilience of software be tested and evaluated? (syllabus)

A
  • determining vulnerabilities (SAST, DAST, pen testing)
  • hardening systems (reducing ‘attack surface’ total points where unauthorised user could enter/extract data)
  • handling breaches (incident response plan, quick containment and mitigation)
  • maintaining business continuity (ability to maintain critical operations during/after disruptive event)
  • conducting disaster recovery (documented approach for restoring systems, data and infrastructure - RPO and RTO)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

what are strategies to help manage the security of code (forms of testing)

A
  • code reviews (based on guidelines - someone else systematically checks for bugs, code quality, standards)
  • static application security testing SAST (analysing source code before compilation to find vulnerabilities - detects unvalidated inputs, improper use of cryptography)
  • dynamic application security testing DAST (automated, continuous testing method to identify vulnerabilities in running application by simulating attacks - detects XSS, SQL I, weak session management)
  • vulnerability assessment (systematic review of weaknesses - evaluates if susceptible to known vulnerabilities, assigns severity levels, recommends remediation)
  • penetration testing (more manual/in-depth - simulates real world attacks to find vulnerabilities)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

what security features can be applied and incorporated into software (syllabus)

A
  • data protection (hashing, encryption, data minimisation)
  • security measures (input validation/sanitisation, parameterisation, output encoding, error handling)
  • privacy protection (privacy policy, anonymisation)
  • regulatory compliance (privacy act 1988, user rights to access, rectify, delete personal data)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

what are defensive data input handling practises and how to apply

A

verifying input data is valid before processing/storing (done at point of entry)
- input validation (input meets expected format - prevents malformed data)
- input sanitisation (cleaning and filtering input to prevent malicious data entering eg. removing/encoding characters)
- error handling (don’t reveal sensitive information like file paths or queries, maintain detailed logs)
- principle of least privilege
- secure authorisation and authentication

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

how can APIs be implemented safely to minimise software vulnerabilities

A

APIs facilitate interactions between different systems/parts by providing interface to request data (can become gateways for attackers to access)
- authorisation and authentication
- encryption
- rate limiting
- input sanitisation and validation

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

what is secure memory management

A

protecting sensitive data in memory
- avoid storing in plain text
- clearing from memory after use
- prevent buffer overflows by validating input sizes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

what is session management

A

maintains a user’s state across interactions
- unique, encrypted session IDs
- session timeouts and regeneration
- storing session cookies with HttpOnly and Secure flags

key vulnerabilities: session fixation and hijacking

20
Q

what is exception management

A

handling unexpected events during execution
- errors don’t lead to crashes, data corruption or exposure of sensitive information
- internal details stay hidden

21
Q

how to minimise broken authentication and session management vulnerabilities

A
  • weak passwords, insecure session management
  • can lead to stolen credentials, session hijacking/fixation
  • enforce strong password policies, mfa, session timeouts
22
Q

what is xss and how can it be prevented

A

malicious scripts injected into web pages
- targets user’s browser
- attacker can extract data from client side using JS
- can lead to cookie/data theft, session hijacking, DOM manipulation, malware injection
- prevent: output encoding, CSP, input validation, avoid dynamic script generation

23
Q

what is csrf and how can it be prevented

A

malicious requests sent from user’s browser to perform unintended actions
- targets web application server
- takes advantage of user’s authenticated session with a server
- attacker can trigger actions but can’t read response
- can lead to changing credentials, transactions, etc
- prevent: CSRF tokens, SameSite cookie attributes, checking referrer headers

24
Q

what is invalid forwarding and redirecting, and how can it be prevented

A

redirected/forwarded to unintended pages from manipulated URLs or unvalidated redirects ‘open redirect vulnerabilities’
- strict validation and sanitisation of URLs
- relative URL instead of absolute
- use predefined paths
- safe default page

25
what are race conditions and how can they be prevented
when multiple processes access shared resources simultaneously, leading to unexpected behaviour - use locks, mutexes or semaphores - implementing atomic operations (single uninterruptable step) - double check mechanism to verify resource states
26
what attacks target user file and hardware vulnerabilities, and how can they be prevented
- file attacks (unauthorised access, modification or deletion of user files through injection, directory traversal, privilege escalation) - side channel attacks (exploit physical system implementations like timing, power analysis) - prevent by validating input/outputs, using try/catch blocks, use secure APIs/libraries, set strict file permissions, prevent buffer overflows
27
what is a file attack and what risks are associated
A security vulnerability where a user uploads a malicious file (e.g. disguised executables or scripts) that is then processed, stored, or executed insecurely by the application - Remote code execution, malware installation, privilege escalation, or unauthorised access to the system.
28
what is a side channel attack and what sort of information is revealed
An attack that gathers information from a system's indirect physical or behavioural traits (e.g. CPU timing, memory use, power consumption) instead of direct software flaws - Secret data like cryptographic keys, passwords, or internal operations, by analysing patterns in execution time, electromagnetic leaks, or cache behaviour.
29
how to prevent/mitigate side channel attacks
Use constant-time cryptographic algorithms and apply system-level defences such as memory isolation and address space layout randomisation (ASLR)
30
what are benefits of collaboration in developing safe and secure software (syllabus)
- considering various points of view - delegating tasks based on expertise - quality of the solution
31
what are the benefits to an enterprise in the development of safe and secure software (syllabus)
- improved products or services (reliability, trust, standards) - influence on future software development (standards, cost/time savings) - improved work practises (accountability, DevOps, CI/CD) - productivity (more efficient) - business interactivity (user engagement, more reliable)
32
what are the social, ethical and legal issues related to safe and secure software development
- employment (increased demand for cybersecurity, displacement from automation) - data security (preventing unauthorised access to user information) - privacy (respecting and ensuring transparency) - copyright (protecting original works and avoiding unauthorised distribution) - IP (safeguarding innovations, unique features) - digital disruption (replacing outdated methods with secure digital alternatives)
33
what is the CSSLP certification and why is it important
certified secure software lifecycle professional - globally recognised certification that demonstrates expertise in designing, developing and managing secure applications - enhances credibility - minimises vulnerabilities - ensures compliance with security requirements
34
what are the main methods for testing a system? (list from specifications)
functional testing, acceptance testing, live data testing, simulated data testing, beta testing, volume testing
35
what is functional testing
- to check that individual functions of the software work according to specifications - focused on what the system does (specific features and behaviours) - eg checking login form validation
36
what is acceptance testing
- determines whether the software meets the client/end-user's expectations and is ready for deployment - done by client/stakeholder/enduser - eg school timetable tested to confirm it displays the correct data and is user friendly
37
what is live data testing
- to test the system using real world data that will be encountered once deployed - ensures reliable performance in intended environment - eg shopping website tested with real product catalogue/orders
38
what is simulated data testing
- using mock data/simulated inputs to test how the system handles typical or edge-case scenarios - when live data is unavailable, sensitive, or needs to be controlled for testing specific scenarios - eg simulating thousands of users trying to access the site at once to test scalability
39
what is beta testing
- conducted by actual user in a real world setting prior to full release - identify bugs/usability issues that weren't found in earlier stages and gain insights for improvement - eg beta version released to small group of students to gather feedback before school wide release
40
what is volume testing
- tests performance when handling large volumes of data - to ensure it doesn't degrade or fail when under data load stress - eg uploading 1 million files to a database to see if application can retrieve data within acceptable timeframes
41
What is an effective defence against file-upload attacks?
Enforce strict file validation: - Whitelist safe file types - Scan files for malware - Store uploads outside executable directories - Rename and strip execution permissions
42
what is sql injection and how can it be prevented
malicious sql queries are injected into user inputs, to manipulate the database - can be automated - can lead to data leakage, data loss, unauthorised access, admin login bypass - prevent: parameterised queries and prepared statements, input validation and sanitisation, principle of least privilege
43
what are code reviews, when to use, and advantages and disadvantages
A manual or semi-automated inspection of source code by one or more developers to detect logic errors, security flaws and ensure adherence to coding standards - Use during development, ideal for detecting poor logic and insecure coding patterns early - adv: encourages knowledge sharing, improves maintainability and quality - dis: time consuming, relies on expertise and diligence
44
what is sast, when to use and adv/dis
a white box testing method that analyses source code for vulnerabilities without execution - integrated into the build pipeline for continual analysis of code quality and security - adv: identifies vulnerabilities earlier, suitable for CI/CD pipelines, identifies SQL injection and insecure APIs - dis: may struggle with third party libraries, doesn't detect runtime/environment specific issues
45
what is dast, when to use and adv/dis
a black box testing method that analyses a running application by simulating real attacks to detect runtime vulnerabilities - used during QA and staging to evaluate how the deployed app handles real interactions - adv: simulates real world attack scenarios, detects issues like session management or auth bypass, validates effectiveness of runtime security measures - dis: requires running application, can't pinpoint source of vulnerability
46
what is a vulnerability assessment, when to use and adv/dis
a systematic process of identifying, classifying, prioritising and reporting vulnerabilities in a software, using automated scanning tools - regularly scheduled or automated scans as part of compliance and maintenance - adv: provides overview of security stance, prioritise remediation, supports compliance and audit readiness - dis: may overlook vulnerabilities, can be outdated quickly, may not simulate context-specific exploits
47
what is penetration testing, when to use and adv/dis
a manual or automated process of simulating real world attacks to actively exploit vulnerabilities and test the effectiveness of security controls - conducted before major releases or after significant architectural changes - adv: identifies vulnerabilities missed by automated tools - assesses effectiveness of implemented security controls, delivers actionable report with severity rankings and remediation advice - dis: requires highly skills professionals and planning, time consuming, costly