Skip to content

Commit 7e3dd34

Browse files
Beta release v0.2
1 parent 8263747 commit 7e3dd34

576 files changed

Lines changed: 405872 additions & 278588 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,36 @@
1+
# 0.2 (2024-07-19)
2+
3+
## Added
4+
5+
- Support for parsing Common Criteria 2022 release (CC2022R1)
6+
- Dedicated object-oriented data structures to the CCT module to handle CC 2022
7+
- Graphical user interface (GUI) in the form of a web application
8+
- GUIs for the CCT browser and CC evaluation laboratory submodules
9+
- C5-DEC DocEngine publishing feature based on Quarto for both generic report and ETR generation
10+
- Dedicated data structures and algorithms for handling evaluation checklist creation in a structured format, e.g., csv and spreadsheets
11+
- Feature to create CEM evaluation checklist spreadsheets that can be parsed by the DocEngine (exposed via both the CLI and the GUI)
12+
- Dedicated C5-DEC publish function exposed via the CLI as a wrapper, complementing and improving the underlying Doorstop-based mechanism to publish technical specifications in HTML and Markdown
13+
- Docker-based deployment solution for end-users, along with build and executable scripts
14+
- test reports to the technical specifications (`tra` and `trb` under `docs`).
15+
16+
## Fixed
17+
18+
- Bugs in the CCT module, largely rooted in inconsistent data structure tracking and life cycle management, e.g., CC XML tree loaded several times
19+
- Bugs in the CLI checklist creation function
20+
- Errors in the technical specifications encodings, now stored under `docs/specs`
21+
22+
## Modified
23+
24+
- The CCT module to add support for setting parameters for the ETR CLI handler and CC release selection via user-accessible YAML configuration file
25+
- Heavily refactored and improved the CCT module, e.g., use of constants to handle paths, folders, use of `os.path.join` to ensure cross-platform path management
26+
- The specifications folder name (`reqs` to `specs`)
27+
- Dev container Docker file to include `pipx`, git repo creation and `poetry` installation
28+
- technical specifications under the `docs` folder to update all schematics, requirements and test cases
29+
30+
## Deleted
31+
32+
- Rendered schematics stored under `docs/sdd/images`
33+
134
# 0.1 (2023-12-01)
235

336
- Initial release of C5-DEC CAD

Dockerfile

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,41 +11,48 @@ ENV MY_ENV=${MY_ENV} \
1111
PIP_DEFAULT_TIMEOUT=100 \
1212
POETRY_VERSION=1.5.0
1313

14-
ENV user=alab
14+
ENV user=root
1515
ENV c5folder=c5dec
1616

1717
# Update and install depencencies
1818
RUN apt update --fix-missing
1919
RUN apt-get install -y git python3-pip graphviz
2020

21-
# Create a non-root user
22-
RUN useradd -ms /bin/bash ${user} && echo '${user} ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers
21+
# Install Doorstop
22+
RUN python3 -m pip install pipx
23+
RUN python3 -m pipx ensurepath
24+
25+
RUN pipx install doorstop==3.0b10
2326

2427
# Add location where pip is installed to the PATH variable
2528
ENV PATH="/home/${user}/.local/bin:${PATH}"
2629

2730
# Copy the files and install the python environment as user alab
28-
USER ${user}
29-
# RUN pip3 install pipenv
3031
RUN pip3 install "poetry==$POETRY_VERSION"
3132

32-
WORKDIR /home/${user}/${c5dec}
33-
COPY poetry.lock pyproject.toml /home/${user}/${c5dec}/
33+
WORKDIR /home/${user}/${c5folder}
34+
COPY poetry.lock pyproject.toml /home/${user}/${c5folder}/
35+
36+
# Create a git repository (needed by Doorstop) at the project root
37+
RUN git init .
3438

3539
# Project initialization
3640
RUN poetry install
3741

3842
# Creating folders, and files for a project
39-
COPY . /home/${user}/${c5dec}
43+
COPY . /home/${user}/${c5folder}
44+
45+
# Switch to project folder
46+
WORKDIR /home/${user}/${c5folder}/${c5folder}
4047

41-
# Install python virtual environment for the project
42-
WORKDIR /home/${user}/${c5dec}
43-
# RUN pipenv install
48+
# RUN poetry config virtualenvs.create false
49+
50+
RUN poetry install
4451

4552
# Clean up unnecessary packages
46-
USER root
4753
RUN apt-get autoremove -y && apt-get autoclean -y
4854

49-
# Set the container starting point, running the project as the user
50-
USER ${user}
51-
CMD ["poetry", "shell"]
55+
# Expose port for the GUI (web app)
56+
EXPOSE 5432
57+
58+
ENTRYPOINT ["poetry", "run", "c5dec"]

README.md

Lines changed: 96 additions & 90 deletions
Large diffs are not rendered by default.

build-c5dec.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
echo Building C5-DEC CAD image...
3+
docker build -t c5dec .

c5dec.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/bin/bash
2+
echo Starting C5-DEC CAD...
3+
4+
if [ "$#" -lt 1 ]
5+
then
6+
docker run --rm -it -v ./c5dec:/home/root/c5dec/c5dec c5dec -h
7+
else
8+
docker run --rm -it -v ./c5dec:/home/root/c5dec/c5dec -p 5432:5432 c5dec "$@"
9+
fi

c5dec/assets/c5dec_params.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
etr:
2+
eval-wu-id: "WU-ID"
3+
eval-file-name: "etr-eval-checklist"
4+
# eval-file-name: "<your-checklist-filename>"
5+
eval-wu-sheet: "WU"
6+
eval-awi-sheet: "AWI"
7+
8+
cc:
9+
# release: "2022R1"
10+
release: "3R5"

c5dec/assets/config.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
{
2-
"width": 100,
3-
"height": 100,
4-
"language": "en",
5-
"title": "C5-DEC CAD"
1+
{
2+
"width": 100,
3+
"height": 100,
4+
"language": "en",
5+
"title": "C5-DEC CAD"
66
}
Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
1-
# Assumption
2-
3-
**Acronym:** None
4-
5-
Security rests on assumptions specific to the type of security required and the environement in which it is to be employed. Assumptions are treated as axioms, i.e., they are taken to be true, to serve as a premise for further reasoning and arguments. Assumptions provide a grounding, describing expected conditions in the [operational environment](TOEOperationalEnvironment.md) which are presumed to be true, and under which the [Target of Evaluation (TOE)](./TargetofEvaluation.md) will operate securely. These are essential in the construction of a [Security Problem Definition (SPD)](./SecurityProblemdefinition.md) and subsequently the entire security posture of the TOE.
6-
7-
In the world of CC, assumptions are categorized based on aspects such as physical, personnel, and connectivity of the operational environment. However, these assumptions are not scrutinized or tested during the evaluation phase as they are regarded as fundamental truths, providing a reliable basis upon which the [TOE's security functionality](./TOESecurityFunctionality.md) is conceived and designed. Consequently, if a TOE is placed in an environment that does not adhere to these assumptions, its security functionality and reliability can be compromised.
8-
9-
## Practical Guidance
10-
11-
Navigating through the landscape of crafting and implementing assumptions within CC involves being mindful of their dual utility and strategic integration. Assumptions in CC are leveraged to:
12-
13-
- **Dictate Environmental Controls**: Highlight specific controls or types of controls that are the responsibility of the operational environment and not the TOE.
14-
- **Dismiss Irrelevant Threats**: Specify threats or types of threats that can be disregarded, asserting that they either do not exist or are not pertinent in the context of the posited operational environment.
15-
16-
### Identifying and Formulating Assumptions:
17-
- **Operational Insights:** Derive assumptions from an in-depth understanding of the physical, personnel, and connectivity aspects of the operational environment.
18-
- **Policy Alignment:** Shape assumptions that are in sync with organizational policies and user behaviors.
19-
- **Regulatory Adherence:** Ensure that assumptions are congruent with legal and regulatory requirements.
20-
- **Industry Benchmarking:** Evaluate industry best practices and historical incident data to extract relevant assumptions.
21-
- **Articulation into Security Objectives:** Ensure that assumptions are translated into actionable [security objective](./SecurityObjective.md) in the [Security Target (ST)](./SecurityTarget.md) or [Protection Profile (PP)](./ProtectionProfile.md). These security objectives should offer a clear, solution-oriented representation, elucidating how the TOE's operational environment will concretely upheld the assumptions.
22-
23-
## Additional Resources
24-
25-
- **ISO/IEC TR 15446:** A Guide for the production of Protection Profiles and Security Targets.
26-
27-
## Related Articles
28-
29-
- [Deriving the Security Problem Definition](./SecurityProblemdefinition.md)
30-
- [Identifying Threats](./Threat.md)
31-
- [Deriving Security Objectives](./SecurityObjectives.md)
1+
# Assumption
2+
3+
**Acronym:** None
4+
5+
Security rests on assumptions specific to the type of security required and the environement in which it is to be employed. Assumptions are treated as axioms, i.e., they are taken to be true, to serve as a premise for further reasoning and arguments. Assumptions provide a grounding, describing expected conditions in the [operational environment](TOEOperationalEnvironment.md) which are presumed to be true, and under which the [Target of Evaluation (TOE)](./TargetofEvaluation.md) will operate securely. These are essential in the construction of a [Security Problem Definition (SPD)](./SecurityProblemdefinition.md) and subsequently the entire security posture of the TOE.
6+
7+
In the world of CC, assumptions are categorized based on aspects such as physical, personnel, and connectivity of the operational environment. However, these assumptions are not scrutinized or tested during the evaluation phase as they are regarded as fundamental truths, providing a reliable basis upon which the [TOE's security functionality](./TOESecurityFunctionality.md) is conceived and designed. Consequently, if a TOE is placed in an environment that does not adhere to these assumptions, its security functionality and reliability can be compromised.
8+
9+
## Practical Guidance
10+
11+
Navigating through the landscape of crafting and implementing assumptions within CC involves being mindful of their dual utility and strategic integration. Assumptions in CC are leveraged to:
12+
13+
- **Dictate Environmental Controls**: Highlight specific controls or types of controls that are the responsibility of the operational environment and not the TOE.
14+
- **Dismiss Irrelevant Threats**: Specify threats or types of threats that can be disregarded, asserting that they either do not exist or are not pertinent in the context of the posited operational environment.
15+
16+
### Identifying and Formulating Assumptions:
17+
- **Operational Insights:** Derive assumptions from an in-depth understanding of the physical, personnel, and connectivity aspects of the operational environment.
18+
- **Policy Alignment:** Shape assumptions that are in sync with organizational policies and user behaviors.
19+
- **Regulatory Adherence:** Ensure that assumptions are congruent with legal and regulatory requirements.
20+
- **Industry Benchmarking:** Evaluate industry best practices and historical incident data to extract relevant assumptions.
21+
- **Articulation into Security Objectives:** Ensure that assumptions are translated into actionable [security objective](./SecurityObjective.md) in the [Security Target (ST)](./SecurityTarget.md) or [Protection Profile (PP)](./ProtectionProfile.md). These security objectives should offer a clear, solution-oriented representation, elucidating how the TOE's operational environment will concretely upheld the assumptions.
22+
23+
## Additional Resources
24+
25+
- **ISO/IEC TR 15446:** A Guide for the production of Protection Profiles and Security Targets.
26+
27+
## Related Articles
28+
29+
- [Deriving the Security Problem Definition](./SecurityProblemdefinition.md)
30+
- [Identifying Threats](./Threat.md)
31+
- [Deriving Security Objectives](./SecurityObjectives.md)
3232
- [Understanding the Operational Environment (OE)](./TOEOperationalEnvironment.md)
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
---
2-
Last Updated: October 4, 2023
3-
Relevant CC Version: CC 2022
4-
Tags: [Composite Evaluation]
5-
---
6-
7-
# Composite Evaluation
8-
9-
**Acronym:** None
10-
11-
For IT products that are composed of several independent, already evaluated product components the composed security assurance can be evaluated. The composition of assurance is dependent upon:
12-
- Type of composition, it is differentiated between layered, network or bi-directional, and embedded compositions.
13-
- Security function policies, and [OSPs](./OrganizationalSecurityPolicy.md) that the component evaluation was based on:
14-
- Claimed security assurance, for example the [assurance level](./EvaluationAssuranceLevel.md)
15-
- The overall security policies for the entire product.
16-
17-
The CC only explicitly addresses the layered composition model. For bi-directional and embedded composition models [extended components](./ExtendedComponentDefinition.md) and [evaluation methods](./EvaluationMethods.md) have to be defined.
18-
19-
For the evaluation of layered [TOE](./TargetofEvaluation.md) compositions the CC defined the Composition class ACO in CC Part 3. In the layered composition two already evaluated TOEs are assumed one of which is defined to be the base TOE while the other is considered to be the dependent TOE. The evaluation of such a composed TOE consists of evaluating the interaction between both TOEs. CC Part 5 provides pre-defined Composition Assurance Packages that may be used for determining the composed TOE’s assurance level. The COMP related assurance families specified in CC Part 3 for the ADV, ALC, ASE, ATE and AVA classes provide evaluation criteria pertinent to composite products using this layered model.
1+
---
2+
Last Updated: October 4, 2023
3+
Relevant CC Version: CC 2022
4+
Tags: [Composite Evaluation]
5+
---
6+
7+
# Composite Evaluation
8+
9+
**Acronym:** None
10+
11+
For IT products that are composed of several independent, already evaluated product components the composed security assurance can be evaluated. The composition of assurance is dependent upon:
12+
- Type of composition, it is differentiated between layered, network or bi-directional, and embedded compositions.
13+
- Security function policies, and [OSPs](./OrganizationalSecurityPolicy.md) that the component evaluation was based on:
14+
- Claimed security assurance, for example the [assurance level](./EvaluationAssuranceLevel.md)
15+
- The overall security policies for the entire product.
16+
17+
The CC only explicitly addresses the layered composition model. For bi-directional and embedded composition models [extended components](./ExtendedComponentDefinition.md) and [evaluation methods](./EvaluationMethods.md) have to be defined.
18+
19+
For the evaluation of layered [TOE](./TargetofEvaluation.md) compositions the CC defined the Composition class ACO in CC Part 3. In the layered composition two already evaluated TOEs are assumed one of which is defined to be the base TOE while the other is considered to be the dependent TOE. The evaluation of such a composed TOE consists of evaluating the interaction between both TOEs. CC Part 5 provides pre-defined Composition Assurance Packages that may be used for determining the composed TOE’s assurance level. The COMP related assurance families specified in CC Part 3 for the ADV, ALC, ASE, ATE and AVA classes provide evaluation criteria pertinent to composite products using this layered model.

0 commit comments

Comments
 (0)