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 policy best practices #639

Merged
merged 5 commits into from
Dec 11, 2023
Merged

security policy best practices #639

merged 5 commits into from
Dec 11, 2023

Conversation

MichaelBaj
Copy link
Contributor

No description provided.

docs/sec_security_policy.md Outdated Show resolved Hide resolved
docs/sec_security_policy.md Outdated Show resolved Hide resolved
docs/sec_security_policy.md Outdated Show resolved Hide resolved
docs/sec_security_policy.md Outdated Show resolved Hide resolved
docs/sec_security_policy.md Outdated Show resolved Hide resolved
## Changing a Security Policy
Changing a security policy is a service impacting event as it is not possible to alter security keys and encryption ciphers for existing flows. Care must be taken to understand the blast radius of these changes. It goes without saying, but you must understand the security policy that needs to change and how it is being used for services and peer paths. If altering the global security policy that is used for all services, all traffic will be impacted. Sessions will not be terminated and reestablished; rather they will follow their own life cycle and the new policy will take effect for subsequent sessions. Changing a security policy should always be performed during a maintenance window after fully understanding the overall impact to the environment. Due to the fact that sessions are not terminated on security policy change, long-lived flows may need to be manually terminated in order for them to take on the properties of the new policy.

The best approach to making any change to a security policy is to create a new policy, with a new name, and apply it to the respective service, interface or adjacency. Doing so affords network administrators the ability to readily identify sessions that may not have adopted the new policy.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
The best approach to making any change to a security policy is to create a new policy, with a new name, and apply it to the respective service, interface or adjacency. Doing so affords network administrators the ability to readily identify sessions that may not have adopted the new policy.
The best approach to making any change to a security policy is to create a new policy, with a new name, and apply it to the respective service, interface, or adjacency. This affords network administrators the ability to readily identify sessions that may not have adopted the new policy.

Completed in 0.12 seconds
```

Identify the sessions traversing the service, paying particular attention to those with an uptime greater than the time of the configuration change. If sessions exist with an uptime greater than the time of the `delete sessions` command, be sure to execute the `delete sessions` command again and confirm that they have been cleared.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Identify the sessions traversing the service, paying particular attention to those with an uptime greater than the time of the configuration change. If sessions exist with an uptime greater than the time of the `delete sessions` command, be sure to execute the `delete sessions` command again and confirm that they have been cleared.
Identify the sessions traversing the service, specifically looking for those with an uptime greater than the time of the configuration change. If sessions exist with an uptime greater than the time of the `delete sessions` command, execute the `delete sessions` command again and confirm that they have been cleared.


:::info
Note the output of:<br/>
`Forward Flows > Metadata Security Policy` which comes from the configuration `network-interface > adjacency > inter-router-security`, which is the metadata encryption policy<br/>
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
`Forward Flows > Metadata Security Policy` which comes from the configuration `network-interface > adjacency > inter-router-security`, which is the metadata encryption policy<br/>
- `Forward Flows > Metadata Security Policy`: This comes from the configuration of `network-interface > adjacency > inter-router-security`, which is the metadata encryption policy.<br/>

:::info
Note the output of:<br/>
`Forward Flows > Metadata Security Policy` which comes from the configuration `network-interface > adjacency > inter-router-security`, which is the metadata encryption policy<br/>
`Payload Security Policy` which comes from the configuration `service > security-policy`, which is the payload encryption policy<br/>
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
`Payload Security Policy` which comes from the configuration `service > security-policy`, which is the payload encryption policy<br/>
- `Payload Security Policy`: This comes from the configuration `service > security-policy`, which is the payload encryption policy.<br/>

Note the output of:<br/>
`Forward Flows > Metadata Security Policy` which comes from the configuration `network-interface > adjacency > inter-router-security`, which is the metadata encryption policy<br/>
`Payload Security Policy` which comes from the configuration `service > security-policy`, which is the payload encryption policy<br/>
`Reverse Flows > Decrypt Security Policy` which comes from the configuration `network-interface > inter-router-security`, which is the metadata decryption policy
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
`Reverse Flows > Decrypt Security Policy` which comes from the configuration `network-interface > inter-router-security`, which is the metadata decryption policy
- `Reverse Flows > Decrypt Security Policy`: This comes from the configuration `network-interface > inter-router-security`, which is the metadata decryption policy.

@ayungelson
Copy link

ayungelson commented Nov 16, 2023

@MichaelBaj I am having doubts that this procedure will work. This still needs to be tested.

  • verify this works

docs/sec_security_policy.md Outdated Show resolved Hide resolved
docs/sec_security_policy.md Outdated Show resolved Hide resolved
docs/sec_security_policy.md Outdated Show resolved Hide resolved
docs/sec_security_policy.md Outdated Show resolved Hide resolved
@MichaelBaj MichaelBaj requested a review from ayungelson December 8, 2023 15:25
While the SSR affords you the ability to provision a unique security policy per service, in a typical hub-and-spoke topology, a single security policy can be shared among all services, with a separate security policy used for metadata encryption and authentication.
The SSR affords you the ability to provision a unique security policy per service. However, in a typical hub-and-spoke topology, a single security policy can be shared among all services, with a separate security policy used for metadata encryption and authentication.

HA interfaces between SSR nodes are directly connected between nodes and therefore pose no risk of interception. Given the additional computational cost of encrypting and decrypting traffic, it is recommended to not apply any security policy to `inter-node-security`.

Choose a reason for hiding this comment

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

it is recommended to not apply any security policy
I think you HAVE to apply a security policy - it's not an option to leave that blank - but I think we should recommend having the inter-node security policy to have encryption set to none, hmac set to disabled...

Copy link
Contributor

Choose a reason for hiding this comment

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

yes, we will throw a validation error if you do not configure inter-node-security. Even if the router is not HA. In the field we typically create one that has encryption and hmac disabled for this purpose.

Copy link
Contributor

@laneshields laneshields Dec 8, 2023

Choose a reason for hiding this comment

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

Example:

        security  encrypt-hmac-disabled
            name                 encrypt-hmac-disabled
            description          "Encryption and message authentication disabled"
            hmac-cipher          sha256
            hmac-key             (removed)
            encryption-cipher    aes-cbc-128
            encryption-key       (removed)
            encryption-iv        (removed)
            encrypt              false
            hmac-mode            disabled
            adaptive-encryption  false
        exit

@MichaelBaj MichaelBaj merged commit 05b3a50 into master Dec 11, 2023
1 check passed
@MichaelBaj MichaelBaj deleted the security-policies branch December 11, 2023 21:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants