Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Security threat modeling guide #5322

Closed

Conversation

lpalashevski
Copy link
Contributor

Signed-off-by: Ljupcho Palashevski ljupcho.palashevski@ing.com

Signed-off-by: Ljupcho Palashevski <ljupcho.palashevski@ing.com>
@lpalashevski lpalashevski changed the title Secirity threat modeling guide Security threat modeling guide Jun 4, 2021
Signed-off-by: Ljupcho Palashevski <ljupcho.palashevski@ing.com>
Copy link
Member

@planetf1 planetf1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additionally from the diagram

  • Authentication has a mis-spelling
  • the view server does not do authentication. The UI has sample users built in & we've dicussed adding a plugin for auth - but that is the UI backend not the view service (and would use an ldap connector, but not necessarily the same as that used for authorization)

![Simple data flow diagram](assets/img/Egeria-SimpleDataFlow.png)

### Determine possible threats
Most common threat categories following [STRIDE](https://docs.microsoft.com/en-us/previous-versions/commerce-server/ee823878(v=cs.20)?redirectedfrom=MSDN) methodology each violating some aspect of the CIA triad.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know the topic area, but I note from the link that the article is from 2009 and there's a banner 'We're no longer updating this content regularly. Check the Microsoft Product Lifecycle for information about how this product, service, technology, or API is supported.' Not necessarily a problem, but if there's a later good source that would be worth adding

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we also clarify the definition of CIA triad or add a link (I have to admit I had to look it up)

Egeria does not store and manage sensitive user identity information such as usernames with passwords.
Egeria Open Metadata Security module delegates this responsibility to dedicated security connectors that can be developed to integrate with external Identity Management system.

Learn more about [Open Metadata Security](https://egeria.odpi.org/open-metadata-implementation/common-services/metadata-security/).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may need to add distinct links to any UI components, or identify them as not addressed here.

Also the doc linked is primarily about user authorization, but related is user authentication - do we need to clarify (it is implied by the first sentance) that WE DO NOT DO THIS. Even with the security connectors? Authorization would typically lie in the layers outside egeria -- for example via enterprise signon in the UI, and via other controls on services (could even be api guards) for the backend?


#### Tampering with data

Access to metadata in Egeria platform is also controlled by Open Metadata Security connectors.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to clarify that data in egeria is generally not encrypted, nor do we have checksums so we are subject to OS/environment controls

#### Tampering with data

Access to metadata in Egeria platform is also controlled by Open Metadata Security connectors.
You can configure and use security API to introduce access control on different levels like Platform and Server.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we say that plugins can be developed that use the security API .....

#### Information disclosure

Egeria supports transport level security for its components to minimize information disclosure on the data in transit.
Although SSL/TLS is enabled by default in the Egeria Open Metadata Platform, it is strongly recommended that consumers configure all components using strong encryption and preferred trusted PKI.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what the last sentence means - but an important task is to ensure you use your own certificates and keys and do not use what is provided for a production environment. It's also important to note the strong encryption is at the transport level for incoming https requests. There is also configuration required, for example, for any back end metadata servers which is subject to their connectors.

#### Denial of service

Some core Egeria components are designed to counter threats like DoS. Measures like MaxPageSize on APIs that read metadata or throttling mechanism for the React UI login page.
However, consumers should also plan to mitigate these threats on infra/service level by enforcing additional counter measures on key components such as Gateways (Revers Proxy).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revers->Reverse
Do we need to recommend orgs perform their own tests?


#### Elevation of privilege

It is strongly advised that multiple mitigation factors are in place on infrastructure level. Some include principle of least privilege and Application security monitoring.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

important here is the reference to authentication vs authorization - generally egeria is only doing the latter, not the former

@planetf1
Copy link
Member

planetf1 commented Jun 4, 2021

We should also note that the 'demos' we have -- ie the labs, dojo, helm charts, docker-compose all make use of hardcoded (even if via config files) passwords. They are intended for learning and demos, not production.
(Aside: A good reason to move them out of the base egeria project into the samples repo)


Lear more about [Open Metadata Security connectors](https://egeria.odpi.org/open-metadata-implementation/common-services/metadata-security/metadata-security-apis/).

#### Repudiation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Presumably here we need to recognize the egeria framework is one part of the system. To really address repudiation we need other aspects like authentication, encryption etc?

# Building a Threat Model

Threat modeling is a process by which potential threats, such as structural vulnerabilities or the absence of appropriate safeguards, can be identified, enumerated, and mitigation can be prioritized.
It is recommended that consumers embrace threat modeling technique and walk through series of concrete steps in order to fully understand the environment and specific solution you are trying to build and secure.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am wondering who the consumers are here.

- What do I need to do to safeguard against these threats?

Egeria's architecture allows consumers to make specific choices and minimize risk factors from the early solution design phase.
Here we outline some generic aspects that can help you to build model specific to your solution using Egeria Open Metadata Platform.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing 'a' before model

- What do I need to do to safeguard against these threats?

Egeria's architecture allows consumers to make specific choices and minimize risk factors from the early solution design phase.
Here we outline some generic aspects that can help you to build model specific to your solution using Egeria Open Metadata Platform.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think 'Egeria Open Metadata Platform' might be confused with platforms. I suggest removing the word platform.

- What are the most relevant threats?
- What do I need to do to safeguard against these threats?

Egeria's architecture allows consumers to make specific choices and minimize risk factors from the early solution design phase.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe before this sentence we could say something like: 'Using open metadata in your IT architecture means that you can build on the thinking outlined here by the community around how Egeria deals with different types of threats.

Egeria's architecture allows consumers to make specific choices and minimize risk factors from the early solution design phase.
Here we outline some generic aspects that can help you to build model specific to your solution using Egeria Open Metadata Platform.

### Decomposing the solution and identifying data flows
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure what he solution is here. I think this needs explanation

### Decomposing the solution and identifying data flows

- Identify high level application components;
- Identify metadata flows;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we mean actually mean metadata flows or also instance flows dictated by metadata.

- Identify metadata flows;
- How metadata is stored?
- How metadata is accessed?
- Identify how Egeria interacts with external entities;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit confusing using the word entities as this has a meaning internal to Egeria.

- How metadata is exchanged?
- Identify Trust boundaries and security measures;

Common data flow patterns between components in Egeria solution:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Egeria solution - maybe replace with an architecture built around open metadata.


#### Repudiation

Egeria platform uses its AuditLog framework help with diagnostics, auditing and data repudiation threats. All system events, user operations are recorded and published to AudiLog subsystem.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would go stronger than help, I would say the Audit log framework provides a trusted record of what has happened around metadata including errors.
spelling 'AudiLog' is incorrect.

I don't think every user operation is audit logged. That would be an activity log.

Egeria platform uses its AuditLog framework help with diagnostics, auditing and data repudiation threats. All system events, user operations are recorded and published to AudiLog subsystem.
You can configure different severity levels and extend this framework to send audit log trails to variety of external systems.

Lear more about [Diagnostics and Auditing](https://egeria.odpi.org/open-metadata-publication/website/diagnostic-guide/).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lear => Learn

@github-actions
Copy link

github-actions bot commented Aug 4, 2021

This PR has been automatically marked as stale because it has not had recent activity. It will be closed in 20 days if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the no-pr-activity PRs automatically marked as stale because they have not had recent activity. label Aug 4, 2021
@lpalashevski lpalashevski removed the no-pr-activity PRs automatically marked as stale because they have not had recent activity. label Aug 4, 2021
@github-actions
Copy link

github-actions bot commented Oct 4, 2021

This PR has been automatically marked as stale because it has not had recent activity. It will be closed in 20 days if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the no-pr-activity PRs automatically marked as stale because they have not had recent activity. label Oct 4, 2021
@lpalashevski lpalashevski removed the no-pr-activity PRs automatically marked as stale because they have not had recent activity. label Oct 4, 2021
@lpalashevski lpalashevski deleted the security-threat-modelling branch October 5, 2021 10:38
@lpalashevski lpalashevski restored the security-threat-modelling branch October 8, 2021 15:20
@lpalashevski lpalashevski reopened this Oct 8, 2021
@github-actions
Copy link

This PR has been automatically marked as stale because it has not had recent activity. It will be closed in 20 days if no further activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the no-pr-activity PRs automatically marked as stale because they have not had recent activity. label Dec 14, 2021
@github-actions github-actions bot closed this Jan 3, 2022
@planetf1 planetf1 mentioned this pull request Apr 11, 2022
4 tasks
@lpalashevski lpalashevski deleted the security-threat-modelling branch July 20, 2023 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-pr-activity PRs automatically marked as stale because they have not had recent activity.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants