Data protection
safe from unauthorised access, manipulation, or theft
encryption
Encrypting data at rest (in storage) and in transit (while being transferred over the network) ensures that even if a hacker intercepts the data, they cannot read it without the encryption key. Sensitive user data is encrypted before being stored in the database, ensuring security even if the database is compromised.
confidentiality
Encrypting data at rest (in storage) and in transit (while being transferred over the network) ensures that even if a hacker intercepts the data, they cannot read it without the encryption key. Sensitive user data is encrypted before being stored in the database, ensuring security even if the database is compromised.
integrity
Software protects data integrity by preventing unauthorized modifications or tampering. It is ensured by conducting data validation and integrity checks to ensure data remains accurate and reliable
Types of cyber attacks to talk about
malware infections, ransomware incidents, phishing scams, and other malicious activities that disrupt operations and compromise data integrity. Common types of cyber attacks include phishing, Denial of Service (DoS), and malware. Sql injections, xss, Distributed denial of service (DDoS)
Regulatory compliance
GDPR and Australian Privacy Act
A company must notify users within 72 hours of a data breach under GDPR.
Software development process
requirements definition
determining specifications
design
development
integration
testing and debugging
installation
maintenance
Describe how the capabilities and experience of end users influence the secure design features of software (DOT)
Users with low technical knowledge:
May need automatic security features (e.g., auto-updates, enforced strong passwords).
Require simple and clear security messages.
Advanced users:
Prefer customizable security settings.
May need role-based access control (RBAC) to configure permissions.
Expanding on previous point
Clueless Users
Have little to no understanding of security principles.
Tend to prioritize convenience over safety (e.g. reusing passwords, ignoring warnings).
Are more likely to fall for phishing or social engineering attacks.
Force designers to implement user-friendly, idiot-proof security features, like automatic updates or password strength checks.
Rely heavily on default settings and rarely change configurations.
Advanced Users
Have strong security awareness and technical knowledge.
Understand concepts like encryption, phishing, and permissions.
Use secure practices (e.g. unique passwords, VPNs, MFA, firewalls).
Expect control and customization in their systems — they want to configure their own security.
Provide useful feedback to improve secure design, since they recognize weaknesses.
Usability vs Security Balance
Too much security can make software frustrating to use.
Too little security increases risk.
A banking app should use multi-factor authentication (MFA) for extra security but also provide biometric authentication (fingerprint, face recognition) for ease of use.
integrity
Guarantees that data remains accurate and unaltered unless modified by an authorised user.
Common techniques include checksums, hashing, and digital signatures.
Hashing
Hashing converts data into a fixed-length string (a hash) that cannot be reversed to find the original data, using algorithms such as SHA-256 or bcrypt
Salts
A salt is a random value added to the password before hashing. It ensures that even if two users have the same password, their hashes will be different.
Availability
Ensures that software and data are accessible when needed.
Protects against denial-of-service (DoS) attacks, system failures, and data loss.
Implemented through redundancy, backups, and load balancing.
Example: A cloud service provider uses multiple data centres to keep services running even if one fails.
Authorisation
Controls what actions users are allowed to perform based on their roles.
Uses role-based access control (RBAC) and least privilege principles.
Prevents users from accessing data and functions they do not need.
Accountability
Ensures that actions within a system can be traced back to a responsible party.
Implemented through audit logs, tracking changes, and forensic analysis.
Helps with investigating security incidents and enforcing policies.
Example: A security log records login attempts, showing timestamps and user IDs.
Cryptography
Protects sensitive data using encryption algorithms
Ensures data integrity and authenticity with digital signatures and certificates.
Securely transmits data over networks using TLS and SSL protocols.
Example: HTTPS encrypts web traffic between a browser and a server to prevent interception.
Sandboxing
Restricts applications from accessing system resources beyond their scope.
Prevents malware from affecting the rest of the system.
Used in web browsers, mobile apps, and virtual environments.
Virtual computers are a form of sandboxing because they create isolated, controlled environments that separate software from the host operating system.
Privacy By Design
Secure authentication is implemented before software deployment.
Privacy should be a default setting (e.g., opt-in data sharing, secure defaults).
Ensure data encryption, anonymisation, and strong access controls are standard.
Example: A social media platform making private account default
Allow users control over their data (e.g., account deletion, data access requests).
Ensure clear, transparent policies on data collection and usage.
Example: A website allowing users to download and delete their data easily.
Code Review
Peer review of code to detect security issues before deployment.
Helps identify logic errors, security flaws, and inefficiencies.
Example: A developer submits a pull request in GitHub, where another team member reviews and suggests improvements before merging.
SAST
Static Application Security Testing (SAST) is a method of analyzing an application’s source code to find security vulnerabilities without executing the program. This white-box testing technique identifies security flaws like SQL injection or buffer overflows early in the development lifecycle, allowing developers to fix them before the software is deployed.
DAST
Dynamic application security testing (DAST) is a method for identifying application vulnerabilities by attacking a running application from the outside, like a malicious user. This “black-box” testing approach uses automated tools to simulate attacks to find issues such as SQL injection and cross-site scripting, which are only revealed when the application is in operation.
Penetration Testing
A simulated cyberattack where security experts (ethical hackers) try to exploit vulnerabilities in a system, network, or app — just like real attackers would. Helps prevent unauthorized access, data breaches, and exploitation.