SF101 Core Security Principles - ITPro
Confidentiality:
Integrity
Integrity is ensuring that data has not been modified or altered.
- This can be achieved through techniques like hashing functions, which produce a fixed output that changes if the data is modified.
- Version control and change management are also important for maintaining data integrity.
Version Control & Change Management
A perfect example of Version Control is Git. In the context of Git, version control allows developers to track changes made to the codebase over time, collaborate efficiently, and revert back to previous states if necessary. Here's a brief overview of how it works:
- Each file in a Git repository has a unique hash that identifies its specific state.
- When changes are made to a file, Git creates a new commit with the updated file and associated metadata like author, date, and commit message.
- Commits can be organized into branches, allowing developers to work on separate features or bug fixes without affecting the main codebase.
- Merge conflicts may occur when multiple developers make changes to the same lines of code. Git provides tools to resolve these conflicts and combine the changes appropriately.
- Branches can be merged back into the main branch (usually called
masterormain) once they are ready for production.
This is a simple hash function explanation:
Availability
Ensuring that authorized users have access to information when needed.
- This is achieved through redundancy, fault tolerance, and disaster recovery planning.
- Concepts like backups, redundant systems, and disaster recovery sites help maintain availability.
In a nutshell, these concepts are designed to ensure that even if one system fails, another is available to take its place, keeping the service operational. For instance, if a server crashes, a backup server can take over, minimizing downtime for users.
Access Control
Access control is one of the easiest ways to check all of the core security principles at once. It involves managing who has access to what, both physically (e.g., access to a server room) and digitally (e.g., user permissions in a software application).
Principle of Least Privilege
The principle of least privilege states that users should only be given the minimum level of access required to perform their job duties. This helps prevent unauthorized access and potential misuse of privileges.
- Windows uses User Account Control (UAC) to implement the principle of least privilege, prompting users to elevate privileges when performing administrative actions.
- Administrators should not perform day-to-day tasks with administrative privileges, and should instead use standard user accounts most of the time.