Dear community, we're delighted to announce the release of OpenCTI 6.1.0 🥳! This milestone materializes our Extended Threat Management suite by integrating OpenCTI with our new Breach and Attack Simulation open-source platform OpenBAS 🔥 !! And that’s not all! 6.1 incorporates also a lot of long awaited features🚀!
First of all, let's discuss the OpenBAS integration 🤝. OpenBAS is a platform where you can define series of events (technical or not) to be simulated towards endpoints or players. These simulations help you evaluate your security posture. Evaluating security posture makes more sense when tested against real and relevant threats. Here comes your OpenCTI and all of its carefully triaged, qualified, and crafted CTI! Directly from the Overview of Reports, Cases, and even Threats, you can generate a Breach and Attack simulation, evaluate your security posture, and have results integrated into your threat context. At a glance, you'll know if you are at risk! 🤯 We are very excited to bring this to the community and can't wait to receive your feedback on it!
OpenCTI 6.1.0 also brings Public Dashboards 📢! Now, you can create snapshots of your custom Dashboards and share them via a permalink, with people who don't have access to your OpenCTI platform. But these snapshots aren't static—they dynamically update as data in OpenCTI changes over time! Because data confidentiality always matters 🤫, users and platform administrators can control which data is shared through Public Dashboards using a maximum marking definition setting.
Now, regarding confidentiality, we've enhanced how marking definitions are handled for files associated with Knowledge entities. You can specify the maximum marking for generating exported file contents and apply markings directly to the files themselves 🛡️.
With this milestone, we're thrilled to introduce a long-awaited feature: rollback on deletion! Who hasn't felt the frustration of accidentally deleting the APT28 Intrusion Set from the platform 😱? I certainly have 😉 ! Mistakes are inevitable, and until now, some deletion actions were not easily reversible. But those days are behind us! Users now have the ability to rollback deletions for up to 7 days, by default. When you delete a Knowledge entity or relation, it's sent to a Trash collector where it can be restored from! So, the next time you accidentally delete APT28 or Cobalt Strike and their countless relationships, fear not—they'll be waiting for you in the trash, ready to be restored 😌.
Speaking of rollback, you may have also noticed that a 6.0 minor release introduced rollback functionality for investigations' graphs. Give it a try!
Version 6.0 introduced the Max Confidence level feature for users and groups, offering a powerful tool for enhancing Knowledge quality within your platform. If you haven't already, check out the dedicated blog post for more details. OpenCTI 6.1 takes it a step further 🚀! Now, you can define max confidence level overrides per entity types! This means you can tailor the impact of connectors on entities like Intrusion Sets and Vulnerabilities differently. You can also give more control to users over certain entities like Reports while limiting control over others like Locations and Sectors, for example. Give it a try and let us know what you think about it!
We've dedicated some time to enhance our Assignee system for Cases. Now, when users are assigned to Cases (whether as Assignee or Participant), they'll receive automatic notifications about the assignment and any subsequent changes made to the Case. Additionally, you now have the option to define in your Profile how you prefer to be notified by default for these assignments 💼.
To enhance our ability to address any bugs you encounter on your OpenCTI platform, we're implementing a Support Package generation system. Administrators can now generate an archive containing relevant log files from all nodes, aiding in more precise diagnostics of any situation. Additionally, users now have the capability to copy and paste the stack trace directly when an error occurs in the front-end 🛠️.
On the Integration side, we updated Malpedia and Recorded Future connector to make them Playbook compatible. We also created a Crowdstrike Falcon EDR connector to send IoC from OpenCTI to Falcon. Community members brought also a lot of value over the last minor releases, with the development of connectors for NIST NVD CPE, RST Noise Control, MITRE ATLAS matrix, Malcore and Socprime. Thanks a lot! ♥️
OpenCTI 6.1 also introduces our telemetry framework. These metrics collection is now mandatory for us to improve platform performances, as current usage implies significantly larger data volumes than before. It is also essential for us to enhance internal workflows and adapt them to community usage patterns. All collected data are anonymous and statistical. You can find detailed information on the collected data and associated usage in the telemetry documentation.
Finally, for those within our community operating in highly confidential environments, we've made a significant improvement to our Python framework to natively support air-gapped architecture. Our CTO, Julien Richard, has authored a dedicated blogpost to assist you with this. Be sure to check it out for detailed guidance 🧠.
⚠️ Breaking changes
It is not possible anymore to ingest Objects with a name containing less than 3 characters (space character at the beginning or the end of the string are not included in the count)
Enhancements:
- #6930 [playbook] Improve playbook to implement looping control and avoid extra execution
- #6904 Report frontend error in logs and support package
- #6899 [backend] Improve graphql subscriptions data control
- #6898 [backend] Add batch aliases protection in graphql api
- #6896 Secure schema changing force_disabled_introspection option to true by default
- #6883 Introduce credential provider for elasticsearch / redis and minio
- #6292 Implement the Telemetry framework into OpenCTI
- #5859 OpenBAS integration
- #5823 Marking definitions for uploaded files
- #5797 Apply marking definition to export files
- #5548 Be able to generate a "support package" by clicking on a button
- #4903 Share Public Dashboard - MVP
- #4900 Add overrides to the max confidence level of Users for specific Entities
- #3389 Global problem about displayed nested / refs relationships everywhere
- #3365 Notifying users when they are Assignee/Participant
- #1536 Be able to go back or cancel suppression
Bug Fixes:
- #6897 [backend] Prevent user to regenerate is 2FA secret
- #6894 Cannot expand entities in investigations
- #6888 Country flag next to IP addresses have disappeared in observables list
- #6837 Impossible to add an override for a new user who doesn't have an initialized user confidence level.
- #6833 Malware analysis name displayed as Unknown in Search list
- #6832 Knowledge widget filters issues
- #6827 OpenCTI doesn't have the same logo spacing on light and dark mode
- #6820 Global search no indication when files are found
- #6816 Cannot add Data Component through contextual component
- #6809 Capability "Restrict organization access" has a different name in DB
- #6787 Threat Actor Participate In Campaign not displayed in the Campaign knowledge Tab attribution view
- #6779 Unusable filter for observables
- #6777 Widgets handle relation between Role and Capability
- #6768 Translation in french for light theme is not correct
- #6765 Relationships of observables are not correctly displayed
- #6764 Horizontal bar charts are not clickable anymore
- #6753 Public dashboard area chart time serie not displaying anything
- #6746 Feedback/attack-pattern simple export issue
- #6742 Reports can be created with blank names
- #6725 No error message when max confidence level not enough to update an entity
- #6699 No control on marking when having multiple markings of the same type
- #6697 Impossible to reset files indexing
- #6679 The Status of Incident is not updated when creating a playbook to replace the Status field
- #6650 Redirection to "/dashboard" when clicking on a non-exported file
- #6632 Merging 2 countries fails for unknown reason
- #6552 parse_exception: request body is required when Retention Policy is executed
- #6499 Incomplete JSON export of reports
- #6370 CSV mapper stops importing if an error occurs
- #6302 [Playbooks] Error when creating a container
Pull Requests:
- Fix playbook Container Wrapper producing bundles that cannot be ingested (#6302) by @labo-flg in #6672
- [frontend] do nothing on click in error export file (#6650) by @frapuks in #6752
- [backend] Fix manager configuration schema (#6697) by @SouadHadjiat in #6755
- [backend] Fix public dashboard area chart time serie (#6753) by @SouadHadjiat in #6754
- [frontend/backend] Public dashboards (#4903) by @lndrtrbn in #6418
- [frontend] error message display when commit mutation (#6725) by @Archidoit in #6750
- [backend] Confidence level by users: Overrides by Entity types (chunk 1) (#4900) by @SarahBocognano in #6592
- [frontend] disable nested relation creation in Knowledge graph if relation doesn't exist (#3389) by @Archidoit in #6627
- Update docker.elastic.co/elasticsearch/elasticsearch Docker tag to v8.13.2 by @renovate in #6770
- Update react monorepo by @renovate in #6772
- Update dependency dot-object to v2.1.5 by @renovate in #6767
- Update docker.elastic.co/kibana/kibana Docker tag to v8.13.2 by @renovate in #6771
- Update Node.js to v20.12.2 by @renovate in #6766
- Update dependency ejs to v3.1.10 - autoclosed by @renovate in #6769
- [frontend] fix redirectionUtils in horizontal bars (#6764) by @Archidoit in #6776
- [backend] Added feature flag for Floating Action Button replacement by @Bonsai8863 in #6738
- Green/drone - Update of actual drone to use more customize branch name and fix PR by @Kedae in #6259
- [frontend] Fix Translation in french for light theme is not correct (#6768) by @SarahBocognano in #6780
- [frontend] redirect after export (#6746) by @frapuks in #6751
- [frontend] Fix Relationships of observables are not correctly displayed (#6765) by @SarahBocognano in #6782
- [backend] created and modified attributes not available for observables (#6779) by @Archidoit in #6781
- [frontend/backend] Apply marking definition to export files (#5797) by @Goumies in #6030
- [backend/frontend] Logical deletion part 1.5 : apply acces restriction to trash items and add deletedBy filtering by @JeremyCloarec in #6711
- [frontend] Confidence level by users: Overrides by Entity types (#4900) by @SarahBocognano in #6778
- [backend] Linked-to migration to related-to chunk1 by @JeremyCloarec in #6513
- [backend] Fix restrict organization access capability name (#6809) by @SouadHadjiat in #6812
- Update CONTRIBUTING.md by @Jipegien in #6814
- [frontend] test e2e with feature flags : override Drone config by @lndrtrbn in #6808
- [frontend] tab attribution view displays participate-in relationship (#6787) by @marieflorescontact in #6810
- [backend] update GQL API: names cannot be blank (#6742) by @labo-flg in #6747
- [backend] Add garbage collection manager (#1536) by @JeremyCloarec in #6802
- [backend] fix merge with orphan relationships (#6632) by @labo-flg in #6821
- [frontend] Control on markings (#6699) by @CelineSebe in #6710
- [frontend] Fix global search routes (#6820) by @lndrtrbn in #6823
- [backend] Fix parse_exception: request body is required (#6552) by @SouadHadjiat in #6788
- [frontend] Fix OpenCTI doesn't have the same logo spacing on light and dark mode (#6827) by @SarahBocognano in #6840
- [frontend] Fix Impossible to add an override for a new user who doesn't have an initialized user confidence level. (#6837) by @SarahBocognano in #6838
- [frontend] fix relationships widget filters (#6832) by @Archidoit in #6853
- [frontend] Rename max marking allowed policies title (#4903) by @marieflorescontact in #6858
- [frontend/backend] Marking definitions for uploaded files (#5823) by @ValentinBouzinFiligran in #6735
- [backend] restrict knowledge widgets to core relationships, sightings and 'contains' (#6777) by @Archidoit in #6831
- [backend/frontend] Adding support package + copy/paste of UI errors (#5548) by @aHenryJard in #6510
- [backend] fix input.objectMarking being optional at entity creation (#5823) by @labo-flg in #6869
- [backend/frontend] Restore elements from trash + mass operations on the Trash (#1536) by @labo-flg in #6789
- [backend] missing opts definition file_marking for file upload(#5548) by @aHenryJard in #6868
- [frontend/backend] e2e tests for CRUD operations on Reports (#5648) by @lndrtrbn in #6682
- [backend] fix relationship_type check in distributions queries (#6777) by @labo-flg in #6872
- [backend/frontend] Add restore message in history event (#1536) by @SouadHadjiat in #6875
- [backend] Add missing auth directives by @SouadHadjiat in #6841
- [frontend] improve confidence overrides edition + bugfixes (#6837) by @labo-flg in #6857
- [frontend] Add MalwareAnalysis representative in SearchStixCoreObjectLine fragment (#6833) by @marieflorescontact in #6876
- [frontend] Comment e2e tests on reports because of flakiness by @lndrtrbn in #6881
- [frontend] missing error managment for upload on data tab (#5823) by @ValentinBouzinFiligran in #6877
- [backend] Marking definition filters to export files (#5797) by @ValentinBouzinFiligran in #6815
- [backend] Introduce credential provider for elasticsearch / redis and minio (#6883) by @richard-julien in #6885
- [frontend/backend] Implement Telemetry in OpenCTI (#6292) by @Archidoit in #6634
- [backend] Upgrade of notification model + Auto trigger on assignee/pa… by @Kedae in #6860
- [backend] Fix no country flag next to IP addresses in observables list (#6888) by @marieflorescontact in #6889
- Adds Custom Base URL for OpenAI by @0xv1n in #6859
- [github] update PULL_REQUEST_TEMPLATE.md by @labo-flg in #6900
- [backend] build relationship type fixed (#6894) by @ValentinBouzinFiligran in #6902
- [backend] Support-Package: use Redis instead of elastic for Node status. (#5548) by @aHenryJard in #6895
- [backend] Improve graphql subscriptions data control (#6899) by @richard-julien in #6909
- [frontend] Remove copy/paste button for simpleError component (#5548-fix-frontend) by @SarahBocognano in #6908
- Bump react-pdf from 7.7.1 to 7.7.3 in /opencti-platform/opencti-front by @dependabot in #6911
- [backend/frontend] Improve log management to take care of user interface errors (#6904) by @richard-julien in #6917
- [backend] Fix Cannot add Data Component through contextual component (#6816) by @SarahBocognano in #6906
- [backend] Improve playbook to implement looping control and avoid extra execution (#6930) by @richard-julien in #6931
- [backend] Improve locking by @richard-julien in #6932
- [frontend] Fix double encoding on search by @Kedae in #6935
New Contributors:
Full Changelog: 6.0.10...6.1.0