Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
122e7e7
add `siemV4` definition files
gergoabraham Aug 29, 2025
94c7e9f
replace `siem` and `siemV2` by `siemV4`
gergoabraham Aug 29, 2025
637d03a
deprecate `siemV3` and replace by `siemV4`
gergoabraham Aug 29, 2025
bae040f
add `siemV4` to security project configs
gergoabraham Aug 29, 2025
99f23b6
switch to `siemV4` in plugins
gergoabraham Aug 29, 2025
c607b73
update slightly relevant ftrs and cy tests
gergoabraham Aug 29, 2025
e5c3576
update role backwards compatibility test (optional)
gergoabraham Aug 29, 2025
01b1cbd
fix jest test
gergoabraham Aug 29, 2025
a344355
fix api integration tests
gergoabraham Aug 29, 2025
0c8ccc5
fix hidden bug in siemV3 featureConfigModifiers
gergoabraham Aug 29, 2025
62edb7c
update feature snapshot test for existing siem versions
gergoabraham Aug 29, 2025
08a05c1
update feature snapshot test with siemV4 (same as V3 for now)
gergoabraham Aug 29, 2025
dc21aa1
update unit tests for fix
gergoabraham Sep 1, 2025
d6d1749
Merge branch 'main' into siem-v4
gergoabraham Sep 1, 2025
7b947f9
fix cy test
gergoabraham Sep 1, 2025
70c69e1
Merge branch 'main' into siem-v4
gergoabraham Sep 2, 2025
1fa4910
rename test file
gergoabraham Sep 2, 2025
f20636d
endpoint exceptions: update role migration test to use as acceptance …
gergoabraham Sep 2, 2025
8ef41b7
endpoint exceptions: add privilege replacements
gergoabraham Sep 4, 2025
52f3610
snapshot test: remove endpoint exceptions from siemV4.ALL/READ
gergoabraham Sep 4, 2025
4fcf593
update search ai lake role migration test
gergoabraham Sep 4, 2025
237215d
move api backward compatibility test
gergoabraham Sep 4, 2025
9bdae84
update api backward compatibility test
gergoabraham Sep 4, 2025
5a1c6d1
provide needed SO and lists privileges to endpoint exception
gergoabraham Sep 5, 2025
dc991df
provide endpoint exceptions api backward compatibility for earlier si…
gergoabraham Sep 5, 2025
7d6a37e
Merge branch 'main' into siem-v4
gergoabraham Sep 8, 2025
f853ef8
revert ftr test role versions to siemV3
gergoabraham Sep 8, 2025
5d211b9
update ftrs to be able to use not the latest siem version
gergoabraham Sep 8, 2025
67035d5
Merge branch 'main' into siem-v4
gergoabraham Sep 9, 2025
89a7ea2
add rules/bulkEditParams coming from `main` to siemV4 in snapshot test
gergoabraham Sep 9, 2025
5d26d11
reorder sub-feature privileges
gergoabraham Sep 9, 2025
ef5a952
update rbac cy tests
gergoabraham Sep 9, 2025
fc8d11e
update ESS privileges tests with added endpoint exception sub-privilege
gergoabraham Sep 9, 2025
c9b2b26
Merge branch 'main' into siem-v4
gergoabraham Sep 11, 2025
30a55c6
Merge branch 'main' into siem-v4
gergoabraham Sep 12, 2025
04b3f22
Merge branch 'main' into siem-v4
gergoabraham Sep 12, 2025
98fb0ec
Merge branch 'main' into siem-v4
gergoabraham Sep 15, 2025
2255e51
Merge branch 'main' into siem-v4
gergoabraham Sep 15, 2025
d16ef76
Merge branch 'main' into siem-v4
gergoabraham Sep 15, 2025
4fb71de
Merge branch 'main' into siem-v4
gergoabraham Sep 15, 2025
169b599
Merge branch 'main' into siem-v4
gergoabraham Sep 17, 2025
594a996
update Endpoint exceptions privilege text
gergoabraham Sep 18, 2025
2f24280
Merge branch 'main' into siem-v4
gergoabraham Sep 18, 2025
ccb81e8
update privilege description in test as well
gergoabraham Sep 19, 2025
2ff2fbd
Merge branch 'main' into siem-v4
gergoabraham Sep 19, 2025
4b235ba
adapt incoming changes from #234853 to siemV4
gergoabraham Sep 19, 2025
8aa044e
Merge branch 'main' into siem-v4
gergoabraham Sep 19, 2025
20e2e9d
apply incoming changes from #234146 to siemV4
gergoabraham Sep 19, 2025
0b3539c
Merge branch 'main' into siem-v4
gergoabraham Sep 20, 2025
a1b2292
Merge branch 'main' into siem-v4
gergoabraham Sep 20, 2025
f71227e
Merge branch 'main' into siem-v4
elasticmachine Sep 23, 2025
543ac6e
Merge branch 'main' into siem-v4
elasticmachine Sep 25, 2025
3b4e8bd
Merge branch 'main' into siem-v4
tomsonpl Sep 25, 2025
b570786
Merge branch 'main' into siem-v4
tomsonpl Sep 25, 2025
fc313be
Merge branch 'main' into siem-v4
joeypoon Sep 26, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions config/serverless.security.search_ai_lake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,25 @@ xpack.features.overrides:
siem.description: null
siemV2.description: null
siemV3.description: null
siemV4.description: null
securitySolutionSiemMigrations.hidden: true

## Fine-tune the security solution essentials feature privileges. These feature privilege overrides are set individually for each project type. Also, refer to `serverless.yml` for the project-agnostic overrides.
siemV4:
privileges:
all.composedOf:
## Limited values so the fields from serverless.yml or serverless.security.yml are overwritten
## We do not need to compose siemV4 from maps and visualizations because these functionalities are disabled in this tier
- feature: "discover_v2"
privileges: [ "all" ]
## We need limited access to fleet (v1) in order to use integrations
- feature: "fleet"
privileges: [ "all" ]
read.composedOf:
- feature: "discover_v2"
privileges: [ "read" ]
- feature: "fleet"
privileges: [ "read" ]
siemV3:
privileges:
all.composedOf:
Expand Down
27 changes: 27 additions & 0 deletions config/serverless.security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,33 @@ xpack.features.overrides:
category: "security"
order: 1102
### Security's feature privileges are fine-tuned to grant access to Discover, Dashboard, Maps, and Visualize apps.
siemV4:
privileges:
### Security's `All` feature privilege should implicitly grant `All` access to Discover, Dashboard, Maps, and
### Visualize features.
all.composedOf:
- feature: "discover_v2"
privileges: [ "all" ]
- feature: "dashboard_v2"
privileges: [ "all" ]
- feature: "visualize_v2"
privileges: [ "all" ]
- feature: "maps_v2"
privileges: [ "all" ]
# Security's `Read` feature privilege should implicitly grant `Read` access to Discover, Dashboard, Maps, and
# Visualize features. Additionally, it should implicitly grant privilege to create short URLs in Discover,
### Dashboard, and Visualize apps.
read.composedOf:
- feature: "discover_v2"
privileges: [ "read" ]
- feature: "dashboard_v2"
privileges: [ "read" ]
- feature: "visualize_v2"
privileges: [ "read" ]
- feature: "maps_v2"
privileges: [ "read" ]

### Security's feature privileges are fine-tuned to grant access to Discover, Dashboard, Maps, and Visualize apps.
siemV3:
privileges:
### Security's `All` feature privilege should implicitly grant `All` access to Discover, Dashboard, Maps, and
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
import { deepFreeze } from '@kbn/std';
import { DEFAULT_APP_CATEGORIES } from '@kbn/core-application-common';

export const SECURITY_SOLUTION_APP_ID = 'siemV3';
export const SECURITY_SOLUTION_APP_ID = 'siemV4';

export interface PrivilegeMapObject {
appId: string;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ export default function ({ getService }: FtrProviderContext) {
'searchSynonyms',
'searchQueryRules',
'searchPlayground',
'siemV3',
'siemV4',
'slo',
'streams',
'securitySolutionAssistant',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ export default function ({ getService }: FtrProviderContext) {
'blocklist_read',
'event_filters_all',
'event_filters_read',
'endpoint_exceptions_all',
'endpoint_exceptions_read',
'policy_management_all',
'policy_management_read',
'actions_log_management_all',
Expand Down Expand Up @@ -148,6 +150,8 @@ export default function ({ getService }: FtrProviderContext) {
'blocklist_read',
'event_filters_all',
'event_filters_read',
'endpoint_exceptions_all',
'endpoint_exceptions_read',
'policy_management_all',
'policy_management_read',
'actions_log_management_all',
Expand Down Expand Up @@ -176,6 +180,38 @@ export default function ({ getService }: FtrProviderContext) {
'blocklist_read',
'event_filters_all',
'event_filters_read',
'endpoint_exceptions_all',
'endpoint_exceptions_read',
'policy_management_all',
'policy_management_read',
'actions_log_management_all',
'actions_log_management_read',
'host_isolation_all',
'process_operations_all',
'file_operations_all',
'execute_operations_all',
'scan_operations_all',
],
siemV4: [
'all',
'read',
'minimal_all',
'minimal_read',
'endpoint_list_all',
'endpoint_list_read',
'workflow_insights_all',
'workflow_insights_read',
'global_artifact_management_all',
'trusted_applications_all',
'trusted_applications_read',
'host_isolation_exceptions_all',
'host_isolation_exceptions_read',
'blocklist_all',
'blocklist_read',
'event_filters_all',
'event_filters_read',
'endpoint_exceptions_all',
'endpoint_exceptions_read',
'policy_management_all',
'policy_management_read',
'actions_log_management_all',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ export default function ({ getService }: FtrProviderContext) {
siem: ['all', 'read', 'minimal_all', 'minimal_read'],
siemV2: ['all', 'read', 'minimal_all', 'minimal_read'],
siemV3: ['all', 'read', 'minimal_all', 'minimal_read'],
siemV4: ['all', 'read', 'minimal_all', 'minimal_read'],
securitySolutionAssistant: ['all', 'read', 'minimal_all', 'minimal_read'],
securitySolutionAttackDiscovery: ['all', 'read', 'minimal_all', 'minimal_read'],
securitySolutionCases: ['all', 'read', 'minimal_all', 'minimal_read'],
Expand Down Expand Up @@ -222,6 +223,8 @@ export default function ({ getService }: FtrProviderContext) {
'all',
'blocklist_all',
'blocklist_read',
'endpoint_exceptions_all',
'endpoint_exceptions_read',
'endpoint_list_all',
'endpoint_list_read',
'event_filters_all',
Expand All @@ -248,6 +251,8 @@ export default function ({ getService }: FtrProviderContext) {
'global_artifact_management_all',
'blocklist_all',
'blocklist_read',
'endpoint_exceptions_all',
'endpoint_exceptions_read',
'endpoint_list_all',
'endpoint_list_read',
'event_filters_all',
Expand Down Expand Up @@ -276,6 +281,38 @@ export default function ({ getService }: FtrProviderContext) {
'global_artifact_management_all',
'blocklist_all',
'blocklist_read',
'endpoint_exceptions_all',
'endpoint_exceptions_read',
'endpoint_list_all',
'endpoint_list_read',
'event_filters_all',
'event_filters_read',
'host_isolation_all',
'host_isolation_exceptions_all',
'host_isolation_exceptions_read',
'minimal_all',
'minimal_read',
'policy_management_all',
'policy_management_read',
'process_operations_all',
'read',
'trusted_applications_all',
'trusted_applications_read',
'file_operations_all',
'execute_operations_all',
'scan_operations_all',
'workflow_insights_all',
'workflow_insights_read',
],
siemV4: [
'actions_log_management_all',
'actions_log_management_read',
'all',
'global_artifact_management_all',
'blocklist_all',
'blocklist_read',
'endpoint_exceptions_all',
'endpoint_exceptions_read',
'endpoint_list_all',
'endpoint_list_read',
'event_filters_all',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,7 @@ export default function ({ getService }: FtrProviderContext) {
"securitySolutionCasesV2",
"siem",
"siemV2",
"siemV3",
"visualize",
]
`);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ export function createTestSuiteFactory({ getService }: DeploymentAgnosticFtrProv
'securitySolutionNotes',
'securitySolutionSiemMigrations',
'securitySolutionTimeline',
'siemV3',
'siemV4',
'slo',
'streams',
'uptime',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ export function getTestSuiteFactory(context: DeploymentAgnosticFtrProviderContex
'securitySolutionNotes',
'securitySolutionSiemMigrations',
'securitySolutionTimeline',
'siemV3',
'siemV4',
'slo',
'streams',
'uptime',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ const ALL_SPACE_RESULTS: Space[] = [
'securitySolutionNotes',
'securitySolutionSiemMigrations',
'securitySolutionTimeline',
'siemV3',
'siemV4',
'slo',
'streams',
'uptime',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ export default function ({ getService }: FtrProviderContext) {
siem: 0,
siemV2: 0,
siemV3: 0,
siemV4: 0,
securitySolutionCases: 0,
securitySolutionCasesV2: 0,
securitySolutionCasesV3: 0,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@
*/

export { getCasesFeature, getCasesV2Feature, getCasesV3Feature } from './src/cases';
export { getSecurityFeature, getSecurityV2Feature, getSecurityV3Feature } from './src/security';
export {
getSecurityFeature,
getSecurityV2Feature,
getSecurityV3Feature,
getSecurityV4Feature,
} from './src/security';
export { getAssistantFeature } from './src/assistant';
export { getAttackDiscoveryFeature } from './src/attack_discovery';
export { getTimelineFeature } from './src/timeline';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ export const SERVER_APP_ID = 'siem' as const;
export const SECURITY_FEATURE_ID_V2 = 'siemV2' as const;
// New version for 9.1.
export const SECURITY_FEATURE_ID_V3 = 'siemV3' as const;
// New version for 9.2.
export const SECURITY_FEATURE_ID_V4 = 'siemV4' as const;

/**
* @deprecated deprecated in 8.17. Use CASE_FEATURE_ID_V2 instead
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ import {
import { securityDefaultProductFeaturesConfig } from './product_feature_config';
import { securityV1ProductFeaturesConfig } from './v1_features/product_feature_config';
import { securityV2ProductFeaturesConfig } from './v2_features/product_feature_config';
import { getSecurityV4BaseKibanaFeature } from './v4_features/kibana_features';
import {
getSecurityV4BaseKibanaSubFeatureIds,
getSecurityV4SubFeaturesMap,
} from './v4_features/kibana_sub_features';

export const getSecurityFeature = (
params: SecurityFeatureParams
Expand Down Expand Up @@ -52,3 +57,12 @@ export const getSecurityV3Feature = (
subFeaturesMap: getSecurityV3SubFeaturesMap(params),
productFeatureConfig: securityDefaultProductFeaturesConfig,
});

export const getSecurityV4Feature = (
params: SecurityFeatureParams
): ProductFeatureParams<ProductFeatureSecurityKey, SecuritySubFeatureId> => ({
baseKibanaFeature: getSecurityV4BaseKibanaFeature(params),
baseKibanaSubFeatureIds: getSecurityV4BaseKibanaSubFeatureIds(params),
subFeaturesMap: getSecurityV4SubFeaturesMap(params),
productFeatureConfig: securityDefaultProductFeaturesConfig,
});
Original file line number Diff line number Diff line change
Expand Up @@ -663,33 +663,42 @@ export const endpointExceptionsSubFeature = (): SubFeatureConfig => ({
),
description: i18n.translate(
'securitySolutionPackages.features.featureRegistry.subFeatures.endpointExceptions.description',
{ defaultMessage: 'Manage Endpoint Exceptions.' }
{
defaultMessage:
'Reduce false positive alerts, and keep Elastic Defend from blocking standard processes.',
}
),
privilegeGroups: [
{
groupType: 'mutually_exclusive',
privileges: [
{
id: 'endpoint_exceptions_all',
includeIn: 'all',
includeIn: 'none',
name: TRANSLATIONS.all,
savedObject: {
all: [],
all: [EXCEPTION_LIST_NAMESPACE_AGNOSTIC],
read: [],
},
ui: ['showEndpointExceptions', 'crudEndpointExceptions'],
api: [`${APP_ID}-showEndpointExceptions`, `${APP_ID}-crudEndpointExceptions`],
api: [
'lists-all',
'lists-read',
'lists-summary',
`${APP_ID}-showEndpointExceptions`,
`${APP_ID}-crudEndpointExceptions`,
],
},
{
id: 'endpoint_exceptions_read',
includeIn: 'read',
includeIn: 'none',
Comment on lines +677 to +694
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Tip

Another change for siemV4: Endpoint exceptions is now not included in Security READ/ALL.

name: TRANSLATIONS.read,
savedObject: {
all: [],
read: [],
},
ui: ['showEndpointExceptions'],
api: [`${APP_ID}-showEndpointExceptions`],
api: ['lists-read', 'lists-summary', `${APP_ID}-showEndpointExceptions`],
},
],
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -167,4 +167,8 @@ export const securityDefaultProductFeaturesConfig: SecurityProductFeaturesConfig
SecuritySubFeatureId.globalArtifactManagement,
],
},

[ProductFeatureSecurityKey.endpointExceptions]: {
subFeatureIds: [SecuritySubFeatureId.endpointExceptions],
},
Comment on lines +171 to +173
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Tip

One change for siemV4: Endpoint Exceptions is now a sub-feature for both offerings.

};
Loading
Loading