Skip to content

Commit 08a45f6

Browse files
authored
Merge pull request #34 from Engineering-Research-and-Development/cert_doc_upate_part_7
Cert doc upate part 7
2 parents 7578fa5 + fca2b69 commit 08a45f6

File tree

8 files changed

+155
-21
lines changed

8 files changed

+155
-21
lines changed

SUMMARY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
* [MyData Usage Control](doc/advancedConfiguration/mydata.md)
3131
* [Audit logs](doc/advancedConfiguration/auditlogs.md)
3232
* [Firewall](doc/advancedConfiguration/firewall.md)
33+
* [NTP Server setup](doc/advancedConfiguration/ntp-server-configuration.md)
34+
* [Manage OS users](doc/advancedConfiguration/manage-os-users.md)
3335
* [Contract Negotiation - simple flow](doc/contractNegotiation/contract-negotiation.md)
3436
* [Get offered resource](doc/contractNegotiation/get_offered_resource.md)
3537
* [Description Request Message](doc/contractNegotiation/description_request_message.md)

doc/TRUEConnector/prerequisite.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
To have secure and certification compliant environment, following prerequisites are mandatory to be performed before setting up TRUE Connector:
44

5-
* NTP time server of the machine, where TRUE Connector will be deployed, has to be enabled and configured correctly. This will allow that once certificates are checked, correct time will be used to verify certificate, expired or not. This applies for both DAPS and TLS1.3 certificates. Connector will rely on OS time when checking certificates
5+
* NTP time server of the machine, where TRUE Connector will be deployed, has to be enabled and configured correctly. This will allow that once certificates are checked, correct time will be used to verify certificate, expired or not. This applies for both DAPS and TLS1.3 certificates. Connector will rely on OS time when checking certificates. How to setup NTP time server you can find [here.](../advancedConfiguration/ntp-server-configuration.md)
66
* Docker is mandatory "OS service" for running connector
77
* verify [System requirements](system-requirements.md) before starting the connector.
88

@@ -17,7 +17,7 @@ To have secure and certification compliant environment, following prerequisites
1717

1818

1919
* User responsible for setting up environment where connector will run should isolate or disable other services.
20-
* OS user for running docker should not be root user; be sure to create new user, assign new user to docker group, that user can run docker compose
20+
* OS user for running docker should not be root user; be sure to create new user, assign new user to docker group, that user can run docker compose. How to manage OS users you can find [here.](../advancedConfiguration/manage-os-users.md)
2121
* disable password login to the server for newly created user and allow only key-based authentication for accessing the server where connector will run
2222
* disable access for the root user by using a password when connecting to the server via ssh (key-based auth only)
2323
* in case of adding some additional, more configurable and robust firewall, be sure to restrict access to the /api/* endpoints to only internal network, since those endpoints should not be exposed to the outside world, but intended to be used by "internal" user, to make modifications to the self description document.

doc/advancedConfiguration/auditlogs.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,6 @@ Content of the file is consisted of json entries.
3434

3535
Trace log file contains logs that can be useful when debugging or investigating what was incorrect and why connector is responding as expected. In cases when connector does not start, or if response is not expected, some rejection message is returned instead any other response, good starting point is to check content of this log file and get information why connector is not responding as expected.
3636

37-
User might try to solve the problem, in most cases problem will be configuration related or that invalid values are passed.
37+
User might try to solve the problem, in most cases problem will be configuration related or that invalid values are passed.
38+
39+
More information about OS logs on Host machine and how to configure it can be found [here](os-logs-configuration.md)
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Managing OS Roles and Permissions
2+
3+
### Requirements
4+
- A Linux system (e.g., Debian, Ubuntu, CentOS)
5+
- Sudo or root access
6+
7+
### Steps
8+
9+
#### Managing Users and Groups
10+
- **Add User**: `sudo adduser [username]`
11+
- **Add Group**: `sudo addgroup [groupname]`
12+
- **Add User to Group**: `sudo adduser [username] [groupname]`
13+
- **List Users**: `cat /etc/passwd`
14+
- **List Groups**: `cat /etc/group`
15+
16+
#### Managing File Permissions
17+
- **Change File Ownership**: `sudo chown [user]:[group] [file]`
18+
- **Change Permissions**: `chmod [permissions] [file]`
19+
- Permissions are represented as a number for owner, group, and others (e.g., 755).
20+
- **View File Permissions**: `ls -l [file]`
21+
22+
#### Sudoers File for Role Assignment
23+
- **Edit Sudoers File**: `sudo visudo`
24+
- This file controls who can run what commands as root.
25+
- **Add User to Sudoers**: Add a line like `[username] ALL=(ALL) ALL`
26+
27+
#### Managing Services and Daemons
28+
- **Start/Stop Service**: `sudo systemctl start [service]`
29+
- **Enable/Disable Service on Boot**: `sudo systemctl enable [service]`
30+
31+
---
32+
33+
### Best Practices
34+
- **Principle of Least Privilege**: Always assign the minimum necessary permissions.
35+
- **Regular Audits**: Periodically review user roles and permissions.
36+
- **Backup**: Always have a backup before making significant changes, especially in Linux `/etc` directory
37+
- **Mandatory Access Control**: As an OS administrator, it is essential to implement strict access control measures. Ensure that each user is assigned to the correct group with appropriate file permissions. Regularly verify that a user (User X) cannot access files belonging to another user (User Y), especially in shared or networked environments. This can be achieved through careful configuration of user accounts, groups, and permissions, along with the use of tools like Access Control Lists (ACLs) in Linux.
38+
---
39+
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# NTP Server Setup Guide
2+
3+
### Requirements
4+
- A Linux system (e.g., Debian, Ubuntu, CentOS)
5+
- Sudo or root access
6+
- Internet connection
7+
8+
### Steps
9+
1. **Install NTP**
10+
- Update package list: `sudo apt update` (Debian/Ubuntu) or equivalent.
11+
- Install NTP package: `sudo apt install ntp` (Debian/Ubuntu) or equivalent.
12+
13+
2. **Configure NTP Server**
14+
- Edit the NTP configuration file: `sudo nano /etc/ntp.conf`.
15+
- Add NTP server lines, e.g., `server 0.pool.ntp.org`.
16+
17+
3. **Start and Enable NTP Service**
18+
- Start NTP service: `sudo systemctl start ntp`.
19+
- Enable NTP service on boot: `sudo systemctl enable ntp`.
20+
21+
4. **Verify NTP Service**
22+
- Check service status: `sudo systemctl status ntp`.
23+
- Check synchronization: `ntpq -p`.
24+
25+
5. **Synchronize OS Clock**
26+
- Manually update system clock: `sudo ntpdate pool.ntp.org`.
27+
28+
### Additional Notes
29+
- Ensure firewall settings allow UDP traffic on port 123.
30+
- Regularly monitor service status and synchronization.

doc/advancedConfiguration/ocsp.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,6 @@ application.OCSP_RevocationCheckValue=none
1515
| *unknown* | OCSP check enabled and enforced, but certificate itself does not have OCSP check supported (no URL for checking revoke status). Check will pass in case of certificate not revoker or if cannot be determined. |
1616
| *none* | OCSP check disabled |
1717

18-
When enabled, it will perform remote environment certificate check prior to sending request to provider connector.
18+
When enabled, it will perform remote environment certificate check prior to sending request to provider connector.
19+
20+
For all additional information such are responses from OCSP server, please take a look at the logs.
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
# OS Log Access Configuration Guide
3+
4+
5+
### Prerequisites
6+
- Root or sudo privileges on the Linux system.
7+
- Basic understanding of Linux file system and permissions.
8+
9+
### Steps
10+
11+
1. **Open Terminal**
12+
- Access the terminal on the Linux machine.
13+
14+
2. **Add User to Required Groups**
15+
- Add the user to the `adm` group to allow reading system logs:
16+
```
17+
sudo usermod -a -G adm [username]
18+
```
19+
20+
3. **Set Permissions for Log Files**
21+
- Change permissions of the log files (if necessary) to ensure readability:
22+
```
23+
sudo chmod o+r /var/log/syslog
24+
```
25+
26+
4. **Verify Access**
27+
- Switch to the user account and verify access to the logs:
28+
```
29+
su - [username]
30+
cat /var/log/syslog
31+
```
32+
33+
5. **Review and Confirm**
34+
- Ensure the user can read the necessary logs without issues.

doc/traceability_matrix.md

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22

33
This is the TRUE Connector traceability matrix for known major issues. The rating ranges from 1 (high priority) to 3 (low priority). For further details on issues please check the Github issues section of the [Data App](https://github.com/Engineering-Research-and-Development/true-connector-basic_data_app/issues) and [Execution core container](https://github.com/Engineering-Research-and-Development/true-connector-execution_core_container/issues).
44

5-
| Priority | Issue | Status | Note |
6-
|:---:|:------------|:------------|:------------|
7-
| 1 | Base64 encoded payload support | Done | |
8-
| 1 | Docker image GHA fails | Done | |
9-
| 1 | add Clearing house authentication header | Done | |
10-
| 2 | Error is printed in log when requesting self description | | |
11-
| 3 | Stack trace is returned when configuration and request are not matched | | |
12-
| 3 | Change payload from String to byte array | | |
135

6+
| Classification | Severity | Report Date | Issue | Description | Detailing Location | Affected Component | Impact | Status |
7+
|:--------------:|:--------:|:-----------:|:-----:|:-----------:|:------------------:|:------------------:|:------:|:------:|
8+
| Functional | High | 2023-01-10 | Base64 encoded payload support | Support for Base64 encoded payloads | Internal ticket| Data App | Data handling efficiency | DONE |
9+
| Functional | High | 2023-02-15 | Docker image GHA fails | Failure in Docker image generation via GitHub Actions | Internal ticket | Execution Core | Deployment issues | DONE |
10+
| Security | High | 2023-03-05 | Clearing house authentication | Adding authentication header for clearing house | Internal ticket | Data App | Security enhancement | DONE |
11+
| Functional | Medium | 2023-06-01 | Error in log for self description | Erroneous log entries when requesting self description | https://github.com/Engineering-Research-and-Development/true-connector-execution_core_container/issues/192| Execution Core | Log clarity | DONE
12+
| Documentation | High | 2023-09-18 | Error in the curl comman in the "Testing DataApp Provider endoint" section of the readme | The curl call mentioned in the documentation, triggers a parsing error | https://github.com/Engineering-Research-and-Development/true-connector-basic_data_basapp/issues/107 | Data App | Users not able to explore TC | DONE |
1413

1514
## Vulnerability Remediation Process
1615

@@ -31,16 +30,42 @@ Based on the severity (Common Vulnerability Scoring System is used) of the issue
3130

3231
For issues that are currently reported, you can always check Security tab for specific subcomponent and in Dependabot section find all opened issues.
3332

33+
## GitHub issues made by end users
3434

35-
## Security issues implemented
35+
As TrueConnector is an open-source project, we highly encourage end users to report any bugs they encounter. Our goal is to address and resolve these issues promptly.
3636

37-
Fixes for security issues should be covered with tests. Once issue is fixed, new GitHub Action should be created and added to the existing set of tests (when applicable).
37+
### 1. Initial Review
38+
- **Acknowledge the Issue**: Quickly acknowledge the new issue, ideally within 24-48 hours.
39+
- Label the issue appropriately (e.g., bug, feature request, enhancement).
40+
- Ask for more information if the issue is unclear or incomplete.
3841

39-
| Description | Fixed version TC | Component |
40-
|:------------|:---------:|:---------:|
41-
| com.auth0:jwks-rsa from 0.21.1 to 0.22.1 | 1.0.1 | ECC |
42-
| net.logstash.logback:logstash-logback-encoder from 7.0.1 to 7.3 | 1.0.1 | ECC |
43-
| com.auth0:java-jwt from 3.19.1 to 3.19.3 | 1.0.1 | ECC |
44-
| org.bitbucket.b_c:jose4j:0.7.8 to 0.9.3 | 1.0.1 | ECC |
45-
| TLS 1.3 as mandatory way for communication | 1.0.1 | ECC, DA, UC |
42+
### 2. Prioritization
43+
- **Assess Urgency and Impact**: Determine the issue's priority based on its urgency, impact on the project, and user needs.
44+
- **Set Milestones**: Assign the issue to a specific milestone if it aligns with project's roadmap and priorities.
4645

46+
### 3. Planning
47+
- **Assign Responsibility**: Assign the issue to a team member who has the expertise and capacity to handle it.
48+
- **Estimate Timeline**: Provide an estimated timeline for when the issue might be addressed, if possible.
49+
50+
### 4. Communication
51+
- **Keep Open Communication**: Update the issue thread with progress reports, questions, or requests for feedback.
52+
53+
### 5. Fixing issue
54+
- **Implement Solution**: Resolve the issue through code changes, documentation updates, or other necessary actions.
55+
- **Code Review and Testing**: Ensure that any code changes are reviewed and tested thoroughly.
56+
- **Close with Explanation**: Once resolved, close the issue with a comment explaining the resolution or linking to the relevant pull request.
57+
58+
59+
## Management of Security Issue Implementation
60+
61+
For managing security issues, a comprehensive approach is adopted:
62+
63+
1. **Automated Security Scanning**: Continuous monitoring for vulnerabilities in dependencies using tools like GitHub Dependabot, which automatically updates vulnerable dependencies.
64+
65+
2. **GitHub Actions for CI**: Leveraging GitHub Actions for continuous integration to build and test every commit, ensuring detection of any new vulnerabilities introduced.
66+
67+
3. **Code Review and Quality Assurance**: Rigorous peer review process for all code changes, especially those addressing security issues, to prevent the introduction of new vulnerabilities.
68+
69+
4. **Test Coverage**: Emphasizing comprehensive test coverage, including unit, integration, and end-to-end tests, to detect vulnerabilities early in the development cycle.
70+
71+
5. **Documentation and Tracking**: Thorough documentation of all security fixes, detailing the vulnerability, the fix, and the impact on the system.

0 commit comments

Comments
 (0)