Skip to content

Releases: OpenCTI-Platform/opencti

Version 6.9.0

12 Dec 09:19
301aff5

Choose a tag to compare

Dear community, we're excited to announce the launch of OpenCTI 6.9.0! 🥳

This release focuses on solving key pain points and unlocking new use cases:

  • Make Priority Intelligence Requirements actionable
  • CTI-driven assessment by integrating OpenCTI & OpenAEV
  • Draft Authorize members, to protect from unwanted modification or approval
  • Avoid some IOC to decay by introducing Decay Exclusion Rules
  • Framework to import data in the platform via Form Intake
  • UI & UX improvements
  • Many other improvements (new capa for playbooks, pattern matching for IOC…)
  • New Integrations/Connectors

🌟 Make Priority Intelligence Requirements actionable (EE)

  • A new Threat Map widget in PIRs provides instant visual insight into your highest-priority threats, enabling faster threat assessment and prioritization.
  • Priority Intelligence Requirements are now actionable within playbooks through intelligent filtering based on identified threats and scores. This enhancement transforms PIRs from passive threat awareness into actionable automation.
    • Trigger enrichment and processing workflows upon threat detection
    • Automatically initiate actions based on PIR threat scores
    • Selective processing of entities (indicators, vulnerabilities, etc.) linked to specific PIR threats

This allows teams to move beyond static threat lists and automatically respond to prioritized threats. Playbooks now execute targeted actions on the threats that matter most to your organization, reducing noise and accelerating response times to high-priority threats.

🤖 CTI driven assessment by integrating OpenCTI & OpenAEV (CE)

Security assessments can now be initiated from threat intelligence in OpenCTI, executed as simulations in OpenAEV, and results automatically imported back into OpenCTI as actionable gap analyses, within a new entity type Security coverage. Additionally, the creation and generation of security coverages can now be fully automated through our playbook engine. This capability, combined with the ability to trigger playbooks based on PIR events, enables you to automatically test your defense posture against threats identified as relevant for your organization.

This first implementation lays the foundation for transforming security assessments from manual processes into automated, threat-driven continuous validation

See details in our documentation.

💡 Draft Authorize members, to protect from unwanted modification or approval & Service Account bypass (CE)

To get an approval workflow for draft, the first step has been for us to enable Authorize Members on Drafts.

This way, when creating a draft manually or via file upload, you will be able to define authorized members at draft creation. This will ensure no user will be able to validate your draft on your behalf or even modify it without your consent.

This change required us to introduce another related change: Service Account now bypasses Authorize Members. The rationale behind this behavior is that Service Accounts should be able to enrich observables within a Draft, even if the draft has some Authorize Members enabled. To be clear: even if Service Accounts are not added as Authorized Members, they will get the Edit permission on the entity (draft, containers). This bypass is a default behavior that cannot be changed.

👤 Avoid some IOC to decay by introducing Decay Exclusion Rules (CE)

Some IOCs should never expire: for instance, Yara rules (or any detection rules) should never be revoked, to avoid having any tools like your SIEM, XDR, EDR… failing to detect a malicious IOC.

This is the purpose of Decay Exclusion Rules: you can filter on some IOC attributes to avoid having the matching IOCs fall under a decay rule. Ultimately, it prevents your IOCs from being automatically revoked.

Please be careful with the decay exclusion rules:

  • Decay exclusion rules are always first against a decay rule: if an IOC matches both a Decay rule & a Decay Exclusion rule, the decay exclusion will apply.
  • An IOC that is currently matching a decay rule, will fall under a decay exclusion rule at upsert if the upsert matches the filters applied the decay exclusion rule.
  • It will not be possible for an IOC under a decay exclusion rule to be changed so that a decay rule is applied.

This feature should also help you if you use sources that also manage the lifecycle of your IOCs to avoid having 2 automated lifecycle management applied to your IOCs.

See details in our documentation.

🛡️ Framework to import data in the platform via Form Intake (CE)

Creating data in the platform can be a complex task, especially because:

  • Not all users are STIX experts.
  • Administrators need a way to enforce data collection consistently.

As a result, we’re proud to introduce the Form Intake, to streamline the collection of threat intelligence data from external sources and stakeholders through structured forms.

Form intakes allow Administrators to define a form to specify which entities should be created and their needed mandatory fields. Also, Administrators can decide to automatically create relationships between entities created via the form and to create them as a draft or not. Additionally, the administrator can also label the entity or a specific field with a non-STIX label: this helps users not familiar with the platform and/or STIX to easily enter information in the platform.

This feature has proven (since available from 6.8.X) to be useful in the FIMI context, sharing communities such as ISACs or even Incident reporting.

Please provide as much feedback as possible on this feature, which should help you consolidate your database with consistent data.

🎨 UI & UX improvements (CE)

We keep working on the UI & UX part to provide a better experience to users.

  • Improvement of the bulk search module to make it more useful and actionable, by allowing differentiated management of found entities (knowns) and not found entities (unknowns). Known entities now support bulk operations, and all unknown entities can be created simultaneously.
  • The create Relationship floating action button has been replaced on all entity tabs across the platform. You can now create relationships from any tab using the button located next to the Update button.
  • Custom themes are now available. Organizations can now align the platform’s visual design with their corporate branding guidelines.
  • The Composer catalog now adapts seamlessly to your screen size, providing a better experience on any device.
  • Open files in another tab in draft: when opening a file in a draft, it will open another tab, which should simplify usage of the app.
  • Clarify the Add behavior on Authorized Members: the “+” to add authorized members was confusing. Therefore, a proper button ADD has been introduced instead to clarify the behavior.

💡 Many other improvements (new capa for playbooks, pattern matching for IOC…)

  • New observable to model SSH keys (CE): a new observable type, SSH key, has been introduced to help the modelization of SSH keys.

  • Email notifier improvements (CE): In the current implementation of our platform's mailer notifier, the content is generated in HTML format. However, the description field of an entity is formatted in Markdown by default. We introduce a solution for converting Markdown-formatted content to HTML to ensure consistency and proper rendering in the mail notifications.

  • Pattern matching filter (CE/EE): now also available for indicators in playbook, Live streams, CSV Feeds, and TAXII Collection.

  • Composer configuration (EE): for configuring a global HTTP/HTTPS proxy for connector network connectivity.

  • Change the capability linked to playbooks (EE): Playbook capability has been split into two capabilities:

    • Manage playbooks: to allow users to create and manage playbooks
    • Use playbooks: to allow users to trigger playbooks manually and automatically.

    This should help administrators in managing the RBAC with a fine-grained approach. See details in our documentation.

  • Change of capability for Delete & Merge knowledge (CE): After some feedback from the community, we have decided to change the capability to merge & delete, to ensure that that now merge and delete are now two specific capabilities.

  • Add original value in the logs (CE): Understanding the changes on an entity in detail is key in Cybersecurity. Therefore, we have improved data traceability by allowing users to view the detailed changes about an entity. Now, each line of the history of an entity is clickable, to give you more details about the initial value and the new one.

  • Send to template in playbook (EE): a new box “Send email from template has been introduced”, allowing you to send email using the templates defined in parameters/security. The end goal is to send an email to users, leveraging the HTML capabilities of the Email template Editor. This template only supports user-related variables and not entity-related variables. Additionally, this capability supports some dynamic variables, such as selecting “dynamic objects from the object in bundle” (organization), to extract directly the users from the organization triggering the playbook. More info on our documentation page.

  • Introduction of an onboarding email template (EE): for new platforms, an email template for user onboarding will be prepopulated, to help administrators save time in setting...

Read more

Version 6.8.17

10 Dec 20:22
09d2ca0

Choose a tag to compare

Enhancements:

  • #13625 Add ability to specify a provider in API client user agent and specify one in worker
  • #13623 Implement duration, type affinity and platforms affinity in security coverage to drive scenario generation
  • #13136 Create Security Coverage through playbooks

Pull Requests:

Full Changelog: 6.8.16...6.8.17

Version 6.8.16

09 Dec 18:10
177a74f

Choose a tag to compare

Enhancements:

  • #13585 Introduce new field x_opencti_modified_at to trigger update events
  • #13575 [backend/frontend] Introduce LTS validation in LTS platform

Bug Fixes:

  • #13584 Upsert on modified field is generating too many events
  • #13499 A user with Manage Credentials and Platform org only see in Organization the org that is being admin of
  • #13485 Rule deactivation pop-up typo
  • #13461 Useless entity type filter values in Relationship tab
  • #13428 Error in export - export all instead of the selected items
  • #13320 Import Form does not prevent submitting badly formatted values
  • #13307 Filters margin in Activity trigger creation form
  • #13062 [6.8.10] Custom Dashboard / Knowledge Graph / Break down by shows ID instead of Name in Legend
  • #12908 Reset a connector queue: the number on message is wrong
  • #11719 Edit Severity in playbooks on applies on Severity of Cases
  • #11336 Entity type filters in relationships view is containing entities types (should only contain relationships types)
  • #10830 Issues parsing RSS feed when tags contain no <Title> element

Pull Requests:

New Contributors:

Full Changelog: 6.8.15...6.8.16

Version 6.8.15

01 Dec 17:23
f0cbf67

Choose a tag to compare

Enhancements:

  • #13214 [backend] Introduce option to restrict the capacity to change the platform sender email
  • #12446 Migration client-python source code inside OpenCTI repository

Bug Fixes:

  • #13371 Failed to load pdf fintel template preview file
  • #13359 Data segregation: issue when AM set on an entity and Author is an Individual that does not belong to the Org of the individual
  • #13338 User segregation: entities not accessible since user is "null" in knowledge history
  • #13332 [rule engine] containerWithRefsBuilder rules bug can lead to creating unrelated inferred relations
  • #13304 Issues in Targeting Propagation Rules
  • #13276 Hidden Entities in Group Settings Does Not Display Unhidden Entities
  • #13226 CSV import in Draft: import of label is inconsitent
  • #11580 No updates in last attributions of Diamond Model

Pull Requests:

Full Changelog: 6.8.14...6.8.15

Version 6.8.14

26 Nov 17:52
53a1301

Choose a tag to compare

Enhancements:

  • #13296 Upsert modified field
  • #13215 Support for CVSS V3.0 Vector String
  • #13101 Add telemetry to understand SSO type deployed per platform
  • #13074 Add data to errors to aid debugging

Bug Fixes:

  • #13334 Incorrect default "connectors" role capabilities
  • #13271 Form Intake: additionnal entity in multiple mode even with 0 entity needed forces the user to have at least 1 entity
  • #13249 Reduce PIR threat map date range from 30 to 7 days
  • #13234 Form Intake: if a field is marked as mandatory while entity is optionnal, it fails the validation
  • #13231 Entity name validation error — “Must be at least 2 characters”
  • #13107 External Ref displayed in the report history
  • #13064 Timeline Widget for Knowledge Events Does Not Display Functional Date
  • #13028 Widget export leaves out the Relationship Type in the In regards of filter.
  • #13027 OpenCTI 6.8.10 is still inconsistent on Public Dashboard
  • #12668 Taxii push feed not reponding with HTTP Error when content type is incorrect
  • #8946 OpenCTI Taxii server return HTTP 200 OK for bad credentials instead of HTTP 403

Pull Requests:

New Contributors:

Full Changelog: 6.8.13...6.8.14

Version 6.8.13

19 Nov 18:11
e147b52

Choose a tag to compare

Bug Fixes:

  • #13216 Notifer issue with special character
  • #13207 Most active labels widget in home is empty
  • #13161 [playbooks] manage access restriction form doesn't save value anymore
  • #13125 Regression in the history layout
  • #12822 Cannot update a live trigger for a group
  • #12499 [composer] disable the deploy form once deployment in progress
  • #12072 Adding a Sighting to an Indicator/Report is not updating the Modified Date
  • #11154 Users outside main org can’t see external reference files in global search
  • #11073 Duplicate reliability in organization
  • #10538 CSV export leads to database pagination error
  • #9023 Can't access all the users in Creators trigger filter of a Connector

Pull Requests:

Full Changelog: 6.8.12...6.8.13

Version 6.8.12

17 Nov 15:37
75838f1

Choose a tag to compare

Enhancements:

  • #13119 Add telemetry points on security coverage
  • #13114 [deprecation] pythonjsonlogger.jsonlogger has been moved to pythonjsonlogger.json
  • #13088 Auto Register OpenCTI from xtm hub provided trials
  • #13055 Confusing authorized member "add" button

Bug Fixes:

  • #13103 relationship list widget does not list sighting
  • #13097 Credential Observable bug in IR case
  • #12923 LiveStream stuck with ""code":"UNKNOWN_ERROR","message":"Maximum call stack size exceeded"
  • #12715 Dashboard: when one widget has error it should not crash the whole dashboard
  • #12659 6.8.3 - yarn build fails with error TS2740, missing properties
  • #12474 [composer] when a connector instance is stopped, do not wait ping timeout to be able to delete it
  • #12246 Can't create support package while in draft mode
  • #12213 In air-gapped environments (no Internet connection), check connectivity through manager
  • #11984 Update metadata info for Element preparation too many values error
  • #11978 Publisher manager raising "No recipients defined"
  • #10206 The history height is not aligned with the max height of external references

Pull Requests:

New Contributors:

Full Changelog: 6.8.11...6.8.12

Version 6.8.11

12 Nov 17:49
004f00b

Choose a tag to compare

Bug Fixes:

  • #13096 When creating a PIR, the dialog does not have the default behavior
  • #13039 [Form intakes] When a field is mandatory and is linked to open vocab, it automatically maps on "text field" and cannot be modified
  • #13016 Can't add / remove labels of a workbench
  • #13011 SSO absolute redirection prevent login
  • #13007 Missing “+” button to create object on the fly when adding a relationship
  • #12962 [form intakes] Certain Event Names Result in Unknown in Lookup
  • #12926 Users can see others of others orgs when assigning/participating/authorize members
  • #12840 JSON Feeds page HTML title is not correct
  • #12818 Creator filter shows no values for users outside the main organization when organization segregation is enabled
  • #12398 Customizing 'Timeline' widget columns
  • #12392 Number of results not respected in 'List' type 'Knowledge Graph' dashboard widget
  • #11700 [frontend] Three dots button moving after selection in a CSV feed line
  • #11005 Incorrect type icon in Audit distribution list
  • #10374 In manage access restriction dialog, the + button is not the correct color

Pull Requests:

Full Changelog: 6.8.10...6.8.11

Version 6.8.10

30 Oct 17:43
3151eab

Choose a tag to compare

Enhancements:

Bug Fixes:

  • #13013 Connector composer fetching the wrong manifest
  • #13008 Manual enrichment fails with error 'No bundle resolver for type X"
  • #12994 Unable to access "opinion" details
  • #12987 Date is missing in timeline widget
  • #12410 Bg color issue in attribut mapping configuration
  • #12142 List widget in Public Dashboard crashes (6.7.12)
  • #12090 In graph view / overview of entity, when having only 2 markings, the blue point is displayed
  • #12051 Activity log message doesn't display that there are more changes occuring
  • #12032 Marking definitions not fully displayed in last containers + last relationships

Pull Requests:

Full Changelog: 6.8.9...6.8.10

Version 6.8.9

29 Oct 11:55
cc4f881

Choose a tag to compare

Enhancements:

  • #12916 Telemetry: count user that are service account in a separate gauge
  • #12830 "Delete / Merge Knowledge" capability should be split into two separate permissions
  • #12810 Remove pagination in elFindByIds
  • #12807 Add telemetry on Login
  • #12627 [backend] Introduce doYield utility to prevent event loop blocking
  • #12490 Option to dedicate workers to specific queues
  • #11707 [backend/frontend] Introduce security coverage and integration with OpenAEV
  • #8004 Playbook: Change the capa linked to playbooks

Bug Fixes:

  • #12983 TAXII Collections Spec Violations introduced by 818c906
  • #12969 Public dashboard are broken
  • #12965 [worker] RuntimeError: dictionary changed size during iteration
  • #12904 PIR manager saves too many audit logs
  • #12901 Python bridge error when platform start and telemetry tracing is enabled
  • #12888 Right side icons overlaying in Knowledge Graph view
  • #12887 Additional issues with Public Dashboard and v6.8.7
  • #12833 [PIR] Some filters non functioning
  • #12824 Playbook update drawer title is wrongly named "Update a decay rule"
  • #12723 Unwanted relations displayed in Perspective Knowledge list widgets
  • #12696 The “CREATOR” column in Advanced Search should be “CREATORS”
  • #12482 Garbage collector fails to delete one element and show error for ever
  • #12249 Child lock memory issue with callbacks
  • #11986 Indicator decay history filling with back and forth revoke and score update
  • #11889 [worker] Improve worker performance
  • #11838 Small visual remainder in the trash page
  • #11081 Nested view in Victimology not working
  • #10349 Can't order by entity type in Correlation containers details

Pull Requests:

Read more