Dear community, we're excited to announce the launch of OpenCTI 6.6.0! 🥳
This release focuses on solving key pain points and unlocking new use cases:
- AI: become an assistant for analysts
- Make import workflow seamless
- Case management: improve filtering capabilities
OpenCTI offers lots of functionalities & various ways to see and collect information. However, sometimes, especially for new users, understand where and how to find the information can be a struggle.
We hope that 6.6 will relieve you from this pain, thanks to the introduction of our new AI functionality: the Natural Language Query powered by Arianne AI 💫. This Entreprise Edition feature allows you, from the top search bar, to ask questions to the platform! Your question will be translated into a set of filters and the corresponding results will be displayed as usual, letting you narrow down your search if needed 🔍.
This capability will fully rely on our filters and solely provide results about entities ⚠️ : as a result, any questions that would lead to filters that do not exists or a combination of filter not available in the app won’t provide you the expected results. In addition, the scope of the questions are restricted to entities. For more information regarding this functionality, please go to the dedicated documentation page https://docs.opencti.io/latest/usage/ask-ai/#assistance-for-finding-specific-entities-natural-language-query.
We are eager to hear your feedback for this functionality which is a first step towards making Arianne AI a real assistant in your daily life on OpenCTI.
Finding intelligence first requires ingesting it into the platform. We have worked hard to be able to revamp our import workflow and introduce two major features: a full rework of the import from files workflow ↖️ and the Draft feature 🎨.
First regarding the import workflow: you are now able to import multiple files at once 💡, and create a single draft out of it. As a result, this should make you win quite some time while gathering all information in a single place for validation purpose.
The second feature that comes along the import is the Draft 🎨. Draft workspaces aims to replace workbenches on the long run.
Basically, Drafts will provide the same capabilities than a workbench: the ability to view what has been extracted from the file & validate it before import. But that is not all: all the functionalities available in the application will also be available within a Draft workspace! For this first release, you will be able to enrich in Draft, apply bulk operation (mass create, edit…)💥. Switching your platform to a Draft “mode” will allow you to still browse your data, manipulate it, without impacting the main database.
You will also be able to convert your existing workbenches to Drafts.
As a result, the new import workflow coupled with the Draft functionality will enable you to better control your ingestion from files, ensuring that only high quality data is ingested for real in your OpenCTI instance.
We are keen to get feedback on this functionality that has required quite some work, therefore, feel free to try out & let us know what you think. More information on: https://docs.opencti.io/latest/usage/draftWorkspaces
We have spent some time to improve features around Case Management. We have introduced two new filters: the “@me” filter 🤝 & the ability to filter on relative date range ⏱️. This way, you will be able to create query like “show me all cases created within the last week” ⏱️. This should improve your operational efficiency.
OpenCTI’s complex and multi-layered ACL allows organizations to implement their own data segregation, each teams having their scope of responsibility, with need-to-know based sharing. This kind of process have impact on collaboration efficiency, and it is not rare that a teamA works on a correlated case handled by teamB without knowing it. Now in OpenCTI, with the Request Access feature (EE) 🧐 teamA is able to request access to the corelated case and thus, with respect to need-to-know basis, collaborate further with teams working already on it. Basically, in the context of a platform configured to segregate data per Organizations, if an entity, having a marking accessible to user exists in the platform, but not shared to the user’s organization, upon manual creation of entity, the user will have the ability to request access to this entity. It will result in a creation of an RFI that only a specific group of user pertaining to the correct organization could approve or reject, providing full control over data to users of the platform. Try it out!
We have also improved the playbooks to be able to filter on any container sub type 🎊 (incident response type, report type, request for information type…). Therefore, you will be able to automate with more granularity the automation of your cases. All together, these filtering capabilities should help you improve the operational efficiency of your teams working on cases.
Filtering has not only be improved in the context of containers, but globally within the application. All entities having a knowledge view can now benefit from a new view, the All view 🔥, which gathers all entities and all relations without any filters at all. This is a known pain point that has been raised since a while, since you were not able to easily see all linked entity with the one you’re looking at. This view will be used to also improve the current diamond model view 💎, since the various views of the diamond model will now redirect to a view All, with some predefined filters matching your view!
Some of your cases, container or even investigations can be huge and difficult to handle by our current front-end graph engine. This is one of the reason we have heavily reworked our graphs within the platform 📈, to ensure we are able to load large graphs. To do so, we have introduced a pagination when loading your graph, avoiding your platform to crash when you attempt to load a large graph. On the top of this, we have also clarified the select & search behavior to find more easily the information you are looking for. Dedicated documentation is available here : https://docs.opencti.io/latest/usage/pivoting/?h=pivoting. This technical rework opens the path to further improvements in our graph with objective to help users perform in-graph intelligence analysis and correlation.
A few other improvements have also been provided:
- Import/Export CSV mappers 💥: this should help you to use them easily (in addition to sharing them among team members) and even troubleshoot CSV issues seamlessly. And, who knows, may be find, soon, ready-to-use CSV feeds and mappers in an online library… 😉
- IOC management 💡 : allow you to update massively through mass operation and in playbooks
- Danger Zone 🚸 : Add reset connector state into danger zone
Regarding connectors and integrations, this milestone brought several new connectors and integrations like:
- VulnCheck
- PAN Cortex XSOAR
- Proofpoint TAP
- Proofpoint ET
- Microsoft Defender Incidents
- Bambenek
- RST WHOIS
- Infoblox
- SentinelOne Incidents
- SentinelOne Intel
Last but not least, we are excited to introduce our new AI-powered import-document 💫 connector. This connector allows Enterprise Edition organizations to feed information from document to OpenCTI, with more extraction capabilities than regular Import Document connector. Go to the readme of the connector to understand how to use it and its scope: https://github.com/OpenCTI-Platform/connectors/tree/master/internal-import-file/import-document-ai
⚠️ Deprecation notes:
Given that the DRAFT feature has been released, Workbench will be deprecated within approximatively 6 months from this release. As a result, we strongly encourage you to have a look at the draft functionality, to try it out, and already highlight us any issue or feature existing in workbench that you do not find in Drafts.
Enhancements:
- #10243 Improve gradient buttons
- #10037 Telemetry technical improvements for cluster mode
- #9952 [Authorized Member]: Enhance Authorized Member feature to support intersection between organizations and groups
- #9805 Internal cache performance improvements
- #9760 Improve the Import Workflow
- #9751 [POC]: Natural Language Query capabilities in OpenCTI
- #9657 Request Access: Notification & Authorized Members
- #9387 Add reset connector state under danger zone
- #9300 [Placeholder] Ensure draft readiness for release
- #9298 Graph Rework step 1: Refactor, Improve loading & add enriching capability
- #9144 [Playbook]: Support for more filtering capabilities to trigger a playbook
- #9128 [Filters]: Dynamic "Me'" Filter
- #8949 [Dissemination]: Ability to disseminate any file type
- #8877 Move basic auth and bearer authentication out of platform sessions
- #8245 Enhance massive operations on Indicators
- #8051 Import / export CSV mappers
- #7879 Create missing Diamond Model Views & Add a table in Entity/Knowledge/overview that lists all entities linked to the entity
- #6044 Save Filter View: first development
- #5169 Import YARA rules in bulk
- #4950 [Filters]: Relative date-time
Bug Fixes:
- #10481 Unable to override Worker Thread Pool Size via environment variable
- #10467 In playbooks, I add a type indicator, choose it, then change add by replace. I then get an object that cannot be modified.
- #10466 In Mass "replace" "Detection" property on indicator, replace to false disabled
- #10375 Filter on Entity Type in Knowledge View/Relation view malfunctions
- #10353 Missing connectors actions
- #10327 Trying to update a specific Note raises an error
- #10268 Delete button bad margin in Relationship edition form
- #9871 Missing observable name when creating sighting from knowledge graph
- #8806 Creating a new organization is slowed when having a lot of organizations
- #8602 [Playbook] Deactivating the detection field on Indicator does not work
- #7219 Investigation with thousands of entities will not open
Pull Requests:
- [frontend] Add support for dynamic configurable required fields to Cases by @abijahcalderon in #9020
- [backend] add action to remove entity from draft (#6728) by @JeremyCloarec in #9684
- [frontend] draft UX improvements by @JeremyCloarec in #9873
- [frontend] Modified left padding for submenus to align with parent text by @Bonsai8863 in #9797
- [frontend] Add 'All entities' view in Knowledge section, which lists all entities & relationships linked to the entity by @CelineSebe in #9868
- [frontend/backend] Export/import CSV mappers (#8051) by @Archidoit in #9928
- [frontend] Add support for dynamic configurable required fields to Events by @VerboseCat in #8960
- [backend] enable file upload and file import in a draft (#9300) by @JeremyCloarec in #9935
- [backend/frontend] draft ui & bug improvements (#9300) by @JeremyCloarec in #10025
- [frontend] Redirect to the All view for each diamond model view with the needed filters by @CelineSebe in #10001
- [backend/frontend] Disseminate HTML files (#8949) by @aHenryJard in #9875
- [backend/frontend] Move basic auth and bearer authentication out of platform sessions (#8877) by @richard-julien in #10009
- [frontend/backend] add new filter capabilities to playbooks by @labo-flg in #10103
- [frontend] "all" counter updated (#7879) by @ValentinBouzinFiligran in #10105
- [frontend] Import file dialog - Chunk 1 (#9760) by @delemaf in #9947
- [frontend/backend] Relative datetime range filter (#4950) by @Archidoit in #10024
- [frontend/backend] Natural Language Capabilities in OpenCTI (#9751) by @Archidoit in #9961
- Update dependency react-intl to v7 by @renovate in #9982
- [backend] add status and processingCount to draft (#9300] by @JeremyCloarec in #10078
- [frontend] Fix filters edition after NLQ search (#9751) by @Archidoit in #10177
- [frontend] fix URL generation for xtm hub (#10027) by @labo-flg in #10219
- [frontend] fix redirection link in draft overview when in read only mode (#9300) by @JeremyCloarec in #10221
- Floating Action Button Replacement in Settings by @Bonsai8863 in #9632
- [frontend] Add support for dynamic configurable required fields to Observations by @VerboseCat in #8875
- [backend] ”Saved filters” module implemented by @CelineSebe in #10150
- [frontend] all counter removed, channel and intrusion set diamond red… by @ValentinBouzinFiligran in #10244
- [frontend/renovate] Upgrade react-markdown to v10 by @SarahBocognano in #10272
- [frontend] Add support for dynamic configurable required fields to Threats by @VerboseCat in #8857
- [frontend] added configurable required fields to Arsenal by @abijahcalderon in #9201
- [frontend] Add support for dynamic configurable required fields to Techniques by @daimyo007 in #9113
- [frontend/backend] Dynamic 'me' filter value (#9128) by @Archidoit in #10163
- [frontend/renovate] Update dependency cookie to v1 by @Gwendoline-FAVRE-FELIX in #10303
- [e2e] Verifiy that background task popup is gone away before continue. by @aHenryJard in #10297
- [frontend/backend] Import file dialog, with connectors - Chunk 2 (#9760) by @delemaf in #10034
- [frontend] Enhance massive operations on Indicators Chunk 1 (#8245) by @Gwendoline-FAVRE-FELIX in #10148
- [frontend/backend] Add reset connector under danger zone (#9387) by @Kedae in #10181
- [backend/frontend] bug fixing following draft testing by @JeremyCloarec in #10260
- [frontend/backend] Entities ids mapping by entity type for NLQ filters result (#9751) by @Archidoit in #10285
- [backend][frontend] Be able to request access feature (#3345)(#9657) by @SarahBocognano in #9331
- [backend] fix build after merge (#10174) by @SouadHadjiat in #10330
- [backend/frontend] Implement authorized members organizations and groups intersection (#9952) by @marieflorescontact in #10057
- [frontend] Refactoring of OpenCTI graphs (#9298) by @lndrtrbn in #10043
- [backend/frontend] Re-index targets for region / country / sector by @SamuelHassine in #10329
- [bakend] Filter extraction pipeline improvement (#9751) by @SoniaBadene in #10301
- [frontend] Adding enterprise edition check in try catch by @aHenryJard in #10342
- [backend] add authorized members when creating saved filters (#6044) by @CelineSebe in #10351
- [frontend] fix missing userId props on UserPopover by @JeremyCloarec in #10346
- Update material-ui monorepo by @delemaf in #9932
- [backend/frontend] feature flag removal & small fixes (#9300) by @JeremyCloarec in #10309
- [frontend] Import Workflow Chunk 3 - Add draft/workbench to import files dialog (#9760) by @delemaf in #10165
- [frontend] fix bulk search table text color by @delemaf in #10376
- [backend] implement cluster safe gauges for telemetry (#10037) by @aHenryJard in #10259
- [frontend] Remove last usage of old graphs (#9298) by @lndrtrbn in #10352
- [backend] add NLQ query telemetry count (#9751) by @Archidoit in #10355
- [frontend] remove NLQ Feature Flag (#9751) by @Archidoit in #10354
- [frontend/backend] Import Workflow Chunk 4 - Add import mode to files dialog by @delemaf in #10382
- [frontend] UI improvements by @lndrtrbn in #10429
- [e2e] some changes on background tasks test (#9147) by @aHenryJard in #10368
- [backend] Add authorize member in request access created RFI. (#9657) by @aHenryJard in #10363
- [frontend] Ability to Manipulate knowledge in playbooks (#8245) by @Gwendoline-FAVRE-FELIX in #10273
- [backend] fix markings creation in draft (#9300) by @SouadHadjiat in #10391
- FAB_REPLACEMENT: add missing screens and realign styling by @labo-flg in #10362
- [frontend] Fix draft chip spacing in entity header by @lndrtrbn in #10437
- [frontend] dynamic @me filter value at top of the list (#9128) by @Archidoit in #10370
- [frontend] Saved filter button and create mutation (#6044) by @ValentinBouzinFiligran in #10258
- [frontend] Fix display of Draft chip in Narratives and Attack Patterns lists by @lndrtrbn in #10445
- [frontend] UX fixes for NLQ (#9751) by @Archidoit in #10443
- [backend] add query options log in Fail engine pagination error (#9751) by @Archidoit in #10454
- [frontend/backend] Small draft fixes (#9300) by @JeremyCloarec in #10448
- [backend] always save filters outside of draft (#9300) by @JeremyCloarec in #10457
- [frontend] Save filters in the notifications datatable view by @CelineSebe in #10288
- [frontend] Some UI alignments by @lndrtrbn in #10456
- [frontend] Import Workflow - Fixes & import dialog in entities (#9760) by @delemaf in #10458
- [frontend] Request access - Update ui texts and labels (#9657) by @aHenryJard in #10444
- [frontend] fix import in draft mode (#9760) by @delemaf in #10470
- [backend/frontend] Authorized members organizations and groups intersection (#9952) by @marieflorescontact in #10356
- [frontend/backend] last draft improvements (#9300) by @JeremyCloarec in #10468
- [frontend] In Mass Op to Indicator: Fix toggle display for detection field (#10466) by @Gwendoline-FAVRE-FELIX in #10474
- [frontend] In playbook, preserve field value when switching action type (#10467) by @Gwendoline-FAVRE-FELIX in #10478
- [frontend] warning at public dashboard creation with @me filter value (#9128) by @Archidoit in #10447
- [backend] Fix default values with restricted members (#9952) by @SouadHadjiat in #10479
- [frontend] remove IMPORT_WORKFLOW feature flag (#9760) by @delemaf in #10471
- [backend/frontend] Request access - fix workflow status and fix popup organization (#9657) by @aHenryJard in #10464
- [backend/frontend] Remove Request acces feature flag (#9657) by @aHenryJard in #10472
- [backend/frontend] Notification for request acces feature (#9657) by @richard-julien in #10491
- [backend] add telemetry on request access creation (#9657) by @aHenryJard in #10493
- [frontend/backend] fix within date checks (#4950) by @Archidoit in #10492
- [backend] Better cache diff management for users by @richard-julien in #10498
- [backend/frontend] align MIME type detection in import workflow with backend behavior by @labo-flg in #10496
- [frontend] Some fixes on graphs (count, expand, selection UI) (#9298) by @lndrtrbn in #10494
- Worker Thread Pool Size config variables should be integers by @animedbz16 in #10483
- [frontend] fix update note by @marieflorescontact in #10499
- [frontend] filter entity types values in Relationship view (#10375) by @Archidoit in #10377
- [frontend] Missing observable name when creating sighting from knowledge graph (#9871) by @SarahBocognano in #10164
- [backend/frontend] disable request access in draft (#9657) by @aHenryJard in #10504
- [frontend] Delete button bad margin in Relationship edition form (#10268) by @SarahBocognano in #10331
- fix(deps): update dependency amqplib to v0.10.7 by @renovate in #10405
- fix(deps): update dependency axios to v1.8.4 by @renovate in #10410
- fix(deps): update dependency rxjs to v7.8.2 by @renovate in #10414
- fix(deps): update dependency react-force-graph-2d to v1.27.1 by @renovate in #10412
- [backend] add user_id and account_login to searchable elastic fields (#10094) by @JeremyCloarec in #10497
- chore(deps): update dependency @types/node to v22.14.0 by @renovate in #10322
New Contributors
- @SoniaBadene made their first contribution in #10301
Full Changelog: 6.5.11...6.6.0