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

Update the security_control profile to include access control check semantics, and firewall profile semantics. #851

Merged
merged 9 commits into from
Dec 7, 2023

Conversation

pagbabian-splunk
Copy link
Contributor

Related Issue:

Firewall profile can be removed from 1.1-dev in lieu of this updated profile.
Authorization Information should be deprecated from the Actor object in lieu of this updated profile.
The Web Resource Access Activity class can be deprecated and this profile should be registered with Web Resource Activity to include the access control semantics.

Description of changes:

Per weekly call 11/14/2023 Updated the dictionary descriptions of disposition_id, firewall_rule, attacks, malware to include usage with security_control as well as finding.

Updated security_control profile to combine the disposition list with the firewall profile list, and for use with access control checks. Added the firewall_rule attribute. Added the Authorization Information attribute.

…alware to include usage with security_control as well as finding.

Updated security_control to combine the disposition list with the firewall profile list, and for use with access control checks.

Signed-off-by: Paul Agbabian <pagbabian@splunk.com>
@zschmerber
Copy link
Contributor

zschmerber commented Nov 15, 2023

The change looks like a good start, firewall rules live under an optional firewall_rule object inside the profile. Then we can have an object for each of different tools in that profile: firewall_rule, DLP_rule, IDS/IPS_rule, Proxy_rule, compliance_rule etc. Do we want to add the objects now or wait until we need them ?

@zschmerber
Copy link
Contributor

As we make this change do we want to remove/deprecate the Authorization Result object ?

@pagbabian-splunk
Copy link
Contributor Author

pagbabian-splunk commented Nov 15, 2023

Yes, we will deprecate Authorization Result from Actor and point to this profile.
As for adding other control specific policies, I had done that in my previous PR that I pulled (sec_ctrl) but I think it is better to add them when we have those objects fleshed out and have use cases behind them. There is a Policy object already, also within Authorization Result and Account Change but not sure if it covers the other areas sufficiently. If we were added at the profile level, it would show up in two places due to Authorization Result.

@pagbabian-splunk pagbabian-splunk added enhancement New feature or request system_activity Issues related to System Activity Category findings Issues related to Findings Category iam Issues related to Identity & Access Management Category network_activity Issues related to Network Activity Category non_breaking Non Breaking, backwards compatible changes description_updates Issues related to missing/incorrect/lacking descriptions of attributes labels Nov 15, 2023
@zschmerber
Copy link
Contributor

After composing up this schema server I see that the security_control profile only apply across 2 categories. Network Activity and System Activity. Do we want to expand that to include more classes and categories?

…e semantics of the Web Resource Access Activity class.

Signed-off-by: Paul Agbabian <pagbabian@splunk.com>
…ustom' value description to use the base class message attribute for details.

Signed-off-by: Paul Agbabian <pagbabian@splunk.com>
dictionary.json Show resolved Hide resolved
profiles/security_control.json Show resolved Hide resolved
profiles/security_control.json Outdated Show resolved Hide resolved
@pagbabian-splunk
Copy link
Contributor Author

After composing up this schema server I see that the security_control profile only apply across 2 categories. Network Activity and System Activity. Do we want to expand that to include more classes and categories?

Yes, we need to do that, for example for the Web Resource Activity in Application Activity, in order to be able to deprecate Web Resource Access Activity. There are a number of other changes after this PR is merged - I just wanted to keep things more focused.

…o descriptions, others were worded inconsistently. A few enums that reference external standards do not conform to the OCSF enum bracketing, e.g. those that reference standards that themselves use 0 in particular, e.g. rcode_id and stratum_id. Categoricals can fall into this situation as well. I left them alone.

Signed-off-by: Paul Agbabian <pagbabian@splunk.com>
@zschmerber
Copy link
Contributor

zschmerber commented Nov 29, 2023

We need to solve for a question like this:
boss: "hi, security analyst. Tell me how the attacker got into our network and make it snappy."
analyst: "ok boss."

index=* ip = 1.1.1.1 OR actor.user=zzzz OR hostname = xxxx disposition_action = success

If we have to write: index=* ip = 1.1.1.1 OR actor.user=zzzz OR hostname = xxxx disposition= (Logged OR Allowed OR Tagged OR .....) to answer this question it is not efficient.

A new field in the profile like disposition_action where the result is allowed or blocked would allow us to fit all of those dispostion_id's into a simple binary result.

The other option is to slim down the dispostion_id into 3-6 fields(allowed, blocked, other...) . Place the dispotion_id attributes into the connected object in the profile like "firewall_rule" and get the disposition action detail from that object.

One additional idea was to use status_id but this will not capture the perspective we are looking for as the statues of an operation being run is not the same as a security control blocking or allowing something.

@floydtree
Copy link
Contributor

I like @zschmerber's idea about a disposition_action. A distilled, binary valued field added as an optional attribute in via the security control profile.

I am open to other name suggestions, but Zach and I arrived at disposition_action for it.

We can get it in as a separate PR, unless @pagbabian-splunk you are okay to add that in as a part of this PR.

Copy link
Contributor

@zschmerber zschmerber left a comment

Choose a reason for hiding this comment

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

Changes look good to just need @pagbabian-splunk to incorporate @pladam descriptions. we can add the "disposition_action" field later.

@zschmerber zschmerber self-requested a review December 2, 2023 00:33
…ecurity_control profile.

Signed-off-by: Paul Agbabian <pagbabian@splunk.com>
…l disposition descriptions.

Signed-off-by: Paul Agbabian <pagbabian@splunk.com>
@pagbabian-splunk
Copy link
Contributor Author

pagbabian-splunk commented Dec 6, 2023

Added the action_id and action attributes - should equate to the disposition_action mentioned above. If action is to generic, I would suggest control_action since the disposition isn't the thing that acted, but rather was the result of the action.

Updated the disposition_id descriptions as suggested above, but adjusted the tense to be past tense, and in some cases added activity as well as request in the description.

Copy link
Contributor

@zschmerber zschmerber left a comment

Choose a reason for hiding this comment

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

Updated definitions look good and I think Action works well, as it is common in other schemas like CIM and UDM. I think Action will be used so often that people will quickly become accustomed to its meaning and will already be used to its meaning from other schemas.

Copy link
Contributor

@mikeradka mikeradka left a comment

Choose a reason for hiding this comment

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

Looks great.

Copy link
Contributor

@floydtree floydtree left a comment

Choose a reason for hiding this comment

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

Looks great, the only thing that appears to be pending is the comment on the Allowed dispostion_id's description.

…ve firewall and termination specific language.

Signed-off-by: Paul Agbabian <pagbabian@splunk.com>
… extra trailing period.

Signed-off-by: Paul Agbabian <pagbabian@splunk.com>
@pagbabian-splunk pagbabian-splunk dismissed floydtree’s stale review December 7, 2023 21:22

Made the changes he suggested.

Copy link
Contributor

@adplotzk adplotzk left a comment

Choose a reason for hiding this comment

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

addition of firewall_rule in this context is in line with our previous outline, approved.

Signed-off-by: Rajas <89877409+floydtree@users.noreply.github.com>
@floydtree floydtree merged commit 995cd2d into main Dec 7, 2023
2 checks passed
@floydtree floydtree deleted the sec_ctrl2 branch December 8, 2023 20:19
@floydtree floydtree added the v1.1.0 Changes marked for v1.1.0 of OCSF label Jan 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
description_updates Issues related to missing/incorrect/lacking descriptions of attributes enhancement New feature or request findings Issues related to Findings Category iam Issues related to Identity & Access Management Category network_activity Issues related to Network Activity Category non_breaking Non Breaking, backwards compatible changes system_activity Issues related to System Activity Category v1.1.0 Changes marked for v1.1.0 of OCSF
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants