Dear community, we're excited to announce the launch of OpenCTI 6.7.0! 🥳
This release focuses on solving key pain points and unlocking new use cases:
- Notifications spamming
- Saved filters & Dynamic filtering
- UI & UX improvements
- Security Posture & MITRE ATTACK sub-techniques
- Fintel PDF Export Branding Customization
- Reset Password
- JSON Mapper/Feed Ingestion
- Apply Case Templates via Playbooks
- Vulnerability Management & Data model
- Background tasks processed by workers
- New Integrations/Connectors (Dragos, Cofense, ServiceNow, Mailboxes…)
🔔 Notifications Spamming (CE)
Notifications have been improved to avoid spamming users. Starting from 6.7, all platforms will have a buffer enabled by default for all notifications coming from OpenCTI.
Practically, if a single edit matching a live trigger is made on an entity, notification for this single change will remain real time. However, if multiple edits matching a live trigger are made on a single entity which would result in multiple notifications, only a single one will be send (To be clear, you will receive one notification per trigger). By default, the timer is set to 60 seconds.
This behavior will affect all notifications type (email, in-app, webhook) and will be enabled by default for all platforms (behavior set at affecting platform level, therefore affecting all users of the platform).
You can both disable this feature or change the timer duration, through configuration parameters PUBLISHER_MANAGER__ENABLE_BUFFERING and PUBLISHER_MANAGER__BUFFERING_SECONDS. See documentation
💾 Saved Filters & Dynamic filtering (CE)
We are also enhancing our filtering capabilities with the introduction of Saved Filters. Users can create filters tailored to their specific needs and save them for future use. These filters can be quickly accessed, removing the need to re-enter search criteria for frequent queries. Furthermore, users have the flexibility to update their saved filters as their analysis requirements change.
Dynamic filtering is also a new addition to our release: the concept of dynamic filtering is the same than the pre-queries in dashboards. It aims to identify a subset of entities/relations matching your dynamic filtering & then apply the rest of the filter on the data found through this dynamic filtering. On relationship screen, two filters Dynamic From & Dynamic To allow you to filter on each side of the relation, to get more precise results. At entity level, In regards of (dynamic) will let you be more specific in your “in regards of filters”, by applying additional filters (and not only filtering on the specific entity). Therefore, you will be able to perform queries such as “list all victims of malwares having the type ransomware”.
🖥️ UI & UX Improvements (CE)
We are aware that the UI & UX of the platform can sometimes be difficult to grasp. We are working towards improving this part. This is why we have made several changes to enhance accessibility and overall user experience. The change include:
- The Floating Action Button (the circular “+” or “edit” button previously located at the bottom of each page) has been relocated to the top right of each screen for easier access. This change has not yet been applied to the knowledge views of entities.
- The Delete button for entities is now placed within the Edit Panel to avoid unwanted deletion.
- Home Dashboard selection is now available in the user profile section, instead of the main dashboard homepage.
We have also revamped the "Data/Import" view to better organize resources. Now, all uploaded files, workbenches, and drafts are centralized in one place for enhanced accessibility and simplified organization. As a result, the "Draft" menu has been relocated to this view.
🛡️Security Posture & MITRE ATTACK Sub Techniques (CE)
Gaining insight into your cyber defense coverage in relation to the techniques used by threats is essential for identifying detection gaps and improving your security posture. To support this goal, we have introduced a new entity "Security Platform" which allows you to manually map the techniques your detection tools are intended to cover (should-cover relationship) and compare them with actual threat techniques. To facilitate this process, the MITRE ATT&CK Matrix view has been enhanced, enabling easy comparison between the techniques theoretically covered by your security tools and those used by threats. By leveraging this feature, organizations can achieve improved alignment of their security strategies with real-world threats, facilitating proactive defense measures and strategic improvements over time.
In addition to this new capability, we have enhanced the "MITRE ATT&CK Matrix" view by adding support for sub-techniques. It is now easy to see the number of sub-techniques used by a threat via a badge. Additionally, you can expand a parent technique to display its associated sub-techniques, providing greater visibility into the details of the tactics employed by threats.
🎨 Fintel PDF Export Branding Customization (EE)
To ensure that report exports reflect your corporate identity, we have introduced new customization options for Fintel PDF exports, providing a more personalized and tailored presentation. Beginning with version 6.7.0, you can configure a Fintel design by uploading your company logo and choosing custom colors to be applied throughout your Fintel PDF reports. This update guarantees that your exported documents are in line with your organization's branding, maintaining a consistent visual identity.
🔐 Reset Password (CE)
We are excited to introduce the new Reset Password feature in this release. This enhancement addresses a key requirement from our user community for better password management and improved security. Users can now initiate a password reset process directly from the login page. Upon request, a secure code will be sent to the registered email address, allowing users to set a new password.
🚀 JSON Mapper/Feed (CE)
In addition to our CSV Feed/Mapper capability, we are pleased to announce the new JSON Feed/Mapper feature, which enables seamless ingestion of JSON-formatted files and feeds. With this enhancement, you can effortlessly import, parse, and map both simple and complex JSON data structures, offering greater flexibility for integrating diverse cyber threat intelligence sources.
We’ve also improved the scheduling of our built-in Feed ingesters. You can now configure a specific fetching interval for each ingester (JSON, RSS, CSV). This enhancement allows you to better comply with external data source constraints and optimize your data ingestion processes.
📓 Apply Case Templates via Playbooks (EE)
Across all 6.X.X releases, we have always tried to improve our case management capabilities based on various feedback we received from the community. In this regard, we are glad to announce that, from 6.7, within playbooks, when wrapping elements into a Case container, you can now also apply a case template directly from the playbook. This should help you improve your case management, by enabling more automation, based for instance on the cases types filters in playbooks introduced last release.
🧰 Vulnerability Management & Data model (CE)
Our vulnerability model now includes comprehensive data and metrics for CVSSV2 and CVSSV4, alongside the full attributes for CVSS V3, enhancing our assessment capabilities. We have also introduced a native capability to parse CVSS vector strings, which automatically populates respective metrics directly within our platform. This feature enhances efficiency by allowing users to input a vector string and instantly see the corresponding metrics filled in.
Finally, we've also introduced a "remediates" relationship to link software versions to specific vulnerabilities they fix, providing clearer remediation pathways. These updates deliver more detailed and actionable insights, helping users manage vulnerabilities more effectively.
In 6.7, we also extended our data model:
- A score has been added to Organizations, in order to cater for the supply chain use case: this score aims to be used in order to represent the risk on an organization.
- A new relationship “belongs-to” has been added between Threats (Intrusion Set & Threat Actors) and Channels, to facilitate the counter-disinformation use case.
🔧 Background tasks processed by workers (CE)
We have enhanced our background task management system to improve performance and prevent platform lock-ups during extensive background tasks. The task execution logic has been moved to asynchronous workers, allowing for better distribution of processing across different workers. Tasks are now provisioned into worker queues and executed by these workers. The tasks view has been updated to reflect these changes, allowing you to monitor the provisioning step followed by the execution step.
🔗 Connectors & Integrations
Regarding connectors and integrations, this milestone brought several new connectors and integrations.
- The Dragos connector enables users to import intelligence from the Worldview API into OpenCTI. Through this integration, reports, indicators, and adversary information can be ingested and leveraged within OpenCTI. See documentation.
- The Flashpoint connector now supports the ingestion of "Compromised Credentials Monitoring" (CCM) data. This information is structured as Incidents in OpenCTI, making it possible to effectively track and manage credential exposures. See documentation.
- Two new connectors have been developed to enable organizations to automate the collection of shared information via e-mail, by regularly polling a mailbox and transforming each message into an OpenCTI report.
- The Email Intel IMAP Connector enables the ingestion of cyber threat intelligence reports received via email into the OpenCTI platform using the IMAP protocol. A dedicated Google OAuth provider was also added for the integration with Google Mailboxes. See documentation.
- The Email Intel Microsoft Connector ingests cyber threat intelligence reports received via email into the OpenCTI platform using the Microsoft Graph API. See documentation.
- A new connector for Cofense ThreatHQ has been developed, enhancing the ingestion and modeling of Cofense Intelligence phishing threat data. See documentation.
- A new connector, ServiceNow, has been created. This connector aims to import your Security Incidents directly in OpenCTI (Security Incident Module in ServiceNow). Any Security Incident raised into ServiceNow will be create a Case Incident Response in OpenCTI, including its associated Tasks, comments and observables. At the moment, we only support default fields defined in ServiceNow and it’s not possible to edit a case incident in OpenCTI and expect this update to be present in ServiceNow.
- It is possible to filter the Security Incidents from Service Now to be ingested in OpenCTI based on their state, severity, priority & comments. For more information regarding how to setup this connector, please have a look at the documentation of the connector, available here.
- This connector also allows you to import Observables from Service Now.
We would like to extend our sincere thanks to our partners and community for their valuable contributions to our connector ecosystem. Thanks to your efforts, new connectors such as Dogesec CTI Butler, Dogesec Vulmatch, Dogesec Stixify, Dogesec Obstracts and a new connector for MalwareBazaar have been added. Additionally, several existing connectors including Sekoia, Intel471, Group-IB, IBM XTI, GreyNoize Feed, MISP Feed, TheHive, and VirusTotal enrichment have been significantly improved. Your collaborations are instrumental in driving our platform forward and providing even greater possibilities to all our users. Thank you all!
Enhancements:
- #11445 [backend] Improve label filtering to support name instead of only id
- #11366 Implement CVSS 2 and CVSS4 as well as missing attributes on CVSS3
- #11357 Introduce dynamic filters for relationships and in regards of
- #11323 Implement translations override and hidden vocabs
- #11244 Introduce "remediates" relationship between Software and Vulnerability objects
- #11207 Upgrade Relay to v19
- #11062 Add support for JSON Feed and JSON Mapper
- #10985 Revamp floating action buttons (FAB) and header menus
- #10636 Upgrade to relay 18
- #10482 Finalize new screen of Import
- #10452 Create security platform entity (relation & import/export python included)
- #10421 Migrate selection of home dashboard from home to profile
- #10383 Update and highlight saved filters
- #10369 Upgrade to React 19
- #10284 Add platform logo in first page of a Fintel Template
- #10274 Background task into worker
- #10240 Matrices: align component between Containers & Entities
- #10080 Data table - show as many chars as possible in a data table
- #9811 Introduce a score field on Organization entities
- #9605 Forgot Password
- #8685 Spamming user when modifying a report assigned to someone
- #8608 CSV mapper phase 3: last improvements
- #8497 Add the relationship type “belongs to” between Channel and Threat Actor
- #8258 Custom scheduling for CSV and RSS Feed Ingesters
- #7574 Filters are back on the right handside for containers
- #7231 Apply case template with playbook
- #6975 Make OpenCTI compatible with the latest version / new image of Redis
- #4948 Be able to overlay two ATT&CK matrices
- #1633 Display subtechniques in the matrix views.
Bug Fixes:
- #11439 STIX bundles are not processed when fields, like kill_chain_phases and external_references, are set to null
- #11185 Wrong Japanese translations
- #11105 Back to login link should be vertically centered
- #10902 AI Insights sometimes returns content in Markdown instead of expected HTML
- #10360 Relationship missing when creating indicators from observables
- #10343 Intrusion Set Lists Fails to Display Correct Resource Level Value
Pull Requests:
- [frontend] Upgrade to React 19 (#9960) by @lndrtrbn in #10287
- [frontend] Use new FieldOption interface (#10514) by @lndrtrbn in #10520
- [backend] update @opensearch-project/opensearch to v3 by @marieflorescontact in #10560
- Remove Floating Action Button Replacement Feature Flag by @Bonsai8863 in #10689
- [frontend] Some components moved to TypeScript (#10548) by @lndrtrbn in #10556
- [backend/frontend] Add score to Organizations (#9811) by @marieflorescontact in #10703
- [frontend] Add support for dynamic configurable required fields to Locations by @ParamConstructor in #10765
- [frontend] test fix e2e by @JeremyCloarec in #10840
- [frontend] Add support for dynamic configurable required fields to Entities by @daimyo007 in #10767
- Better handling of null value in organization score field (#9811) by @marieflorescontact in #10904
- [backend] Outcome template design [Chunk 1] (#10284) by @SarahBocognano in #10889
- [frontend] Import View Rework - New tabs, move drafts to data / import, works drawer (#10482) by @delemaf in #10671
- [frontend / backend] forgot password (#9605) by @Gwendoline-FAVRE-FELIX in #10653
- [backend] now also send stream message in digest notifications (#8685) by @JeremyCloarec in #11004
- [frontend] Stop Spam Notif Chunk 1 (#8685) by @SarahBocognano in #10837
- [backend/frontend] Introducing JSON feed + mapper in beta with feature flag by @richard-julien in #10895
- [frontend] remove ImportFilesDialog fix (#10761) by @delemaf in #11070
- [frontend] [Outcome-Template] Add logo of a platform into template #10284 by @JeremyCloarec in #11007
- [backend/frontend] Create query csvFeedAddInputFromImport endpoint (#10350) by @jpkha in #10888
- Correct bastion ip for prerelease aws by @efaure in #11079
- [frontend] Refacto AttackPatternsMatrixColumns & remove invert color (#10240) by @delemaf in #11002
- Update fingerprint used to connect to bastion by @efaure in #11083
- Apply a case template through a playbook by @marieflorescontact in #10968
- [frontend] Fix clear saved filters (#10383) by @SouadHadjiat in #11026
- [Backend/Frontend] Add CSV Feed export functionality by @jpkha in #11085
- [backend] Security platform module + FF (#10452) by @CelineSebe in #11045
- [backend] notif buffering implementation (#8685) by @JeremyCloarec in #10832
- [backend/frontend] Forgot password improvements (#9605) by @frapuks in #11106
- [frontend] delete operation updated (#10383) by @ValentinBouzinFiligran in #11127
- [frontend] update button alignments and placements (#10985) by @natalie-natsu in #11115
- [backend] Apply case template with playbook: FF removed (#7231) by @ValentinBouzinFiligran in #11125
- [backend/frontend] PIR API and manager (#10032) by @lndrtrbn in #10779
- [backend/frontend] validate score for organization (#10975) by @marieflorescontact in #11137
- [frontend] align attack pattern matrix for container & entity (#10240) by @delemaf in #11118
- First version under FF of the connector composer by @Kedae in #10708
- [frontend] fix css for relationships paper div (#10985) by @natalie-natsu in #11139
- [frontend/backend] Remove saved filters FF by @CelineSebe in #10943
- [backend/frontend] move background tasks execution to worker (#10274) by @JeremyCloarec in #10699
- [frontend/backend] First implementation of PIR (#10032) by @lndrtrbn in #11133
- [backend] Fix master merge when some count tests were failing by @lndrtrbn in #11215
- [backend] create/delete notification event formatting by @Archidoit in #11214
- [backend] new relationship added for channels (#8497) by @ValentinBouzinFiligran in #11192
- [frontend] SavedFilters (#10383) by @ValentinBouzinFiligran in #11217
- [backend/frontend] implement entity security platform UI (#10452) by @CelineSebe in #11124
- [frontend] Be able to overlay multiple attack pattern matrices (#4948) by @delemaf in #11126
- [backend/frontend] - (ServiceAccount): Let the user choose a default group for on the fly user creation (#11047) by @hervyt in #11211
- [frontend] clear saved filters on changing view like filters (#10383) by @ValentinBouzinFiligran in #11254
- [frontend] Upgrade Relay to version 19 (#11207) by @lndrtrbn in #11208
- Pre-release 6.7.0 fixes by @labo-flg in #11234
- [frontend] don't show subscribers number when there are no ones (#10985) by @Archidoit in #11241
- [frontend] New UI for header buttons (#10985) by @Archidoit in #11235
- [frontend] fix double loading in caused by background tasks by @delemaf in #11261
- [backend] Fix merge counters by @JeremyCloarec in #11269
- [frontend] add a fix height to fintel templates datatable by @lndrtrbn in #11266
- [backend/frontend] Fixes on Security Platforms (#10452) by @Gwendoline-FAVRE-FELIX in #11257
- [frontend] - (UserOnTheFlyIngestion): Warn user if no default group for ingestion users #11047 by @hervyt in #11255
- [backend/frontend] background tasks to worker fixes (#10274) by @JeremyCloarec in #11198
- [frontend] Add button import from Hub for CSV Feed (#10350) by @jpkha in #11248
- [frontend] fix JSON feeds translations by @lndrtrbn in #11267
- [frontend] improve sharing UX for containers (#10274) by @JeremyCloarec in #11282
- [frontend] Remove 'knowledge from related containers view' button in Security platform (#10452) by @CelineSebe in #11294
- [frontend/backend] display subtechniques in the matrix views (#1633) by @delemaf in #11150
- [frontend] Header buttons fixes (#10985) by @Archidoit in #11264
- [backend/frontend] [Outcome-Template - Chunk 4] Add logo of a platform into template (#10284) by @SarahBocognano in #11197
- [frontend] fix security platform identity on workbench (#10452) by @CelineSebe in #11302
- [frontend] fix missing feature flag on csv_mapper by @jpkha in #11305
- [frontend] fix attack pattern matrix (#4948) by @delemaf in #11271
- [frontend] update workspace header UI (#10985) by @natalie-natsu in #11238
- [frontend] decay rule and playbooks headers (#10985) by @Archidoit in #11311
- [backend/frontend] Remove security platform FF (#10452) by @CelineSebe in #11258
- [frontend] Add tabs inline csv mapper in creation CSVFeed (#10350) by @jpkha in #11206
- [frontend] Fintel Design fixes (#10284-fix) by @SarahBocognano in #11314
- [backend/frontend] Implement translations override and hidden vocabs by @SamuelHassine in #11325
- [frontend] Some fixes on headers (#10985) by @lndrtrbn in #11319
- [frontend] Remove entity type right bar in containers (#7574) by @Archidoit in #11316
- [frontend] fintel design available for built in html to pdf connector (#10284) by @Archidoit in #11356
- [backend/frontend] Introduce dynamic filters for relationships and in regards of (#11357) by @richard-julien in #11335
- [backend/frontend] Auto creation of users on feed ingestion (#11047) by @hervyt in #11279
- [frontend] Add SecurityPlatform on some queries by @CelineSebe in #11360
- [frontend/backend] background tasks fixes (#10274) by @JeremyCloarec in #11308
- [frontend] fix double reload cause by SavedFilters query by @delemaf in #11361
- [backend/frontend]-(AutoIngestionUser) call existing user only on auto_user (#11047) by @hervyt in #11370
- [frontend] validate fintel design form (#10284) by @labo-flg in #11368
- [ci] fix prerelease deployment on AWS by @efaure in #11397
- [frontend] fix "DELETE" button alignments (#10985) by @natalie-natsu in #11404
- [frontend] fix mode only with subtechniques (#4948) by @delemaf in #11393
- [frontend] fixes for dynamic regardingOf filter (#11357) by @Archidoit in #11371
- [backend/frontend] Implement new vulnerability data model (#11366) by @SamuelHassine in #11372
- Improve end to end tests execution, fix flakes and bugs by @aHenryJard in #11402
- [backend] Fix dynamic regardingOf query (#11357) by @SouadHadjiat in #11413
- [frontend/backend] Limit number of results for dynamic regardingOf filter prequery (#11357) by @Archidoit in #11410
- [frontend] fix double loading caused by NestedMenuButton by @delemaf in #11414
- Update dependency monocart-reporter to v2.9.21 by @renovate in #11346
- Update dependency remark-flexible-markers to v1.3.0 by @renovate in #11341
- Update dependency @types/relay-runtime to v19.0.2 by @renovate in #10933
- Bump jsonpath-plus from 10.2.0 to 10.3.0 in /opencti-platform/opencti-graphql by @dependabot in #11424
- Update dependency axios to v1.10.0 by @renovate in #11339
- Update dependency @vitejs/plugin-react to v4.5.2 by @renovate in #11338
- Update rjsf monorepo to v5.24.12 by @renovate in #11222
- Update dependency @graphql-tools/import to v7.0.19 by @renovate in #11342
- Update dependency moment-timezone to v0.6.0 by @renovate in #11340
- Update dependency markdown-to-jsx to v7.7.8 by @renovate in #11430
- Update Yarn to v4.9.2 by @renovate in #11223
- Bump tar-fs from 2.1.2 to 2.1.3 in /opencti-platform/opencti-front by @dependabot in #11183
- Update dependency express-rate-limit to v7.5.1 by @renovate in #11457
- Update dependency luxon to v3.6.1 by @renovate in #11454
- [frontend] fix japanese translations (#11185) by @delemaf in #11462
- Update dependency recharts to v2.15.4 by @renovate in #11458
- Update dependency trino-client to v0.2.7 by @renovate in #11431
- [frontend/backend] force container summary to output HTML and handle empty entity (#10902) by @delemaf in #11444
- Update dependency relay-test-utils to v20 by @renovate in #11352
- [frontend] Fix the display of "resource_level" in the Intrusion Set > list view (#10343) by @Gwendoline-FAVRE-FELIX in #11408
- Update dependency relay-runtime to v20 by @renovate in #11351
New Contributors:
- @natalie-natsu made their first contribution in #11115
- @hervyt made their first contribution in #11211
Full Changelog: 6.6.18...6.7.0