Elasticsearch 7.0 can read indices created in version 6.0 or above. An Elasticsearch 7.0 node will not start in the presence of indices created in a version of Elasticsearch before 6.0.
Who could imagine what’s hiding behind this sentence ?
To be honest, we managed to support Elasticsearch 7.x pretty quickly ! But only for new and recent installations and instances — read, initially installed with Elasticsearch 6.x.
The harder part was ensure older instances, with indexes created with Elasticsearch 5.x, can migrate smoothly like for previous migrations: «stop the application, update the database software, update application and restart everything ». You might have to put your hands on the keyboard.
Source: Google Images
⚠️ TheHive 3.5.0-RC1 and Cortex 3.1.0-RC1 are not recommended for production use. These versions are intended for test only ; please, read carefully the full blog post and the associated documentation. Feel free to try it, try your migration and send us your feedbacks.
New and recent installations
If your instance has been initiated with Elasticsearch 6.x, you can follow the following process :
Stop TheHive version 3.4.2
Stop Elasticsearch version 6.x
Update Elasticsearch configuration file
Update Elasticsearch to version 7.x and restart the service
Update TheHive and restart the service
Update Cortex and restart the service
Instructions to install TheHive 3.5.0-RC1 or Cortex 3.1.0-RC1 can be found in this guide.
At this stage, connect TheHive and Cortex with your browser and you should be invited to update the database :
Older indexes
This is the tricky part. If you are using an instance initiated with Elasticsearch older that version 6.0, it is highly probable that you have to follow an heavier process to upgrade. In few words, you will have to :
Stop TheHive and Cortex applications
Create new indexes in Elasticsearch 6.x with part of the settings of your current indexes
Do specific reindexing operations to this new indexes
Delete old indexes.
How to identify if your index is ready for Elasticsearch 7
You can easily identify if indexes are ready for Elasticsearch 7. On the index named the_hive_15 run the following command:
If the version is 6.x.x then the index will be read by Elasticsearch 7.8.x. Otherwise (version is 5.x.x of below), reindexing the index is required.
Migration guide
You are not left alone there. A dedicated documentation is available. It should help you run this specific actions on your Elasticsearch database, and also install or update application whether you are using DEB, RPM or binary packages, and even docker images :
Didn’t you think we were going to holidays without letting few new stuff to play with ? 6 new Analyzers and 1 Responder complete the growing list of Neurons.
A Huge thanks to all the contributors for the great new features, without forgetting the work regarding improvements and bug fixes.
This analyzer comes in 1 flavor and let you check SPF (Sender Policy Framework) and DMARC (Domain-based Message Authentication, Reporting and Conformance) status of a domain or fqdn.
TheHive displays the analyzer results as follows:
DomainMailSPFDMARD short reportDomainMailSPFDMARD Long report
ForcepointWebsensePing
Forcepoint URL Filtering provides defenses against productivity draining web content and threats to operations. It ensures organizational productivity by delivering defenses against productivity draining web activity while providing the necessary security in a world of advanced threats.
Using WebsensePing utility is possible to query Master Database URL Categories that contains the industry’s most accurate, current and comprehensive classification of URLs. ForcePoint uses proprietary classification software and human inspection techniques to categorize and maintain definitions of more than 95 URL categories in more than 50 languages.
An active Forcepoint subscription is required to use the analyzer.
TheHive displays the analyzer results as follows:
ForcepointWebsensePing short report samplesForcepointWebsensePing long report sample
NERD
This analyzer allows to query the NERD (Network Entity Reputation) database, and get score and basic information. Project NERD aims to build an extensive reputation database of known sources of cyber threats. That is, a list of known malicious IP addresses or other network entities (e.g. ASNs or domain names) together with all security-relevant information about each of them.
A valid API key is required to run this analyzer.
TheHive displays the analyzer results as follows:
NERD short reportNERD long report
SekoiaIntelligenceCenter
This analyzer allows you to gather more context related to domain names, IP adresses, urls and file hashes using the SEKOIA.IO Intelligence Database.
An active SEKOIA.IO Intelligence Center subscription is required to use the analyzer.
TheHive displays the analyzer results as follows:
SEKOIAIntelligenceCenter_Indicators long report
Spamassassin
This analyzer let you query a local SpamAssassin instance by sending a file, and get a SPAM score.
Apache SpamAssassin is the #1 Open Source anti-spam platform giving system administrators a filter to classify email and block spam (unsolicited bulk email). It uses a robust scoring framework and plug-ins to integrate a wide range of advanced heuristic and statistical analysis tests on email headers and body text including text analysis, Bayesian filtering, DNS blocklists, and collaborative filtering databases.
TheHive displays the analyzer results as follows:
Spamassassin short reportSpamassassin long report
Splunk
This analyzer allows you to execute a list of searches in Splunk by passing the element you are looking for as a parameter.
This analyzer comes in 10 flavors:
Splunk_Search_Domain_FQDN: Dispatch a list of saved searches on a given domain/fqdn
Splunk_Search_File_Filename: Dispatch a list of saved searches on a given file/filename
Splunk_Search_Hash: Dispatch a list of saved searches on a given hash
Splunk_Search_IP: Dispatch a list of saved searches on a given IP (IPv4 only)
Splunk_Search_Mail_Email: Dispatch a list of saved searches on a given mail/email
Splunk_Search_Mail_Subject: Dispatch a list of saved searches on a given mail_subject
Splunk_Search_Other: Dispatch a list of saved searches on a given data (any type)
Splunk_Search_Registry: Dispatch a list of saved searches on a given registry
Splunk_Search_URL_URI_Path: Dispatch a list of saved searches on a given url/uri_path
Splunk_Search_User_Agent: Dispatch a list of saved searches on a given user_agent
Splunk_Search_User: Dispatch a list of saved searches on a given user id (variable name is ‘other’)
A valid Splunk subscription is required to run this analyzer.
TheHive displays the analyzer results as follows:
Splunk_Search_Registry short reportSplunk_Search_Registry long report
Responders
Velociraptor
Velociraptor let you interrogate your endpoint for specific data. Velociraptor is a tool for collecting host based state information using Velocidex Query Language (VQL) queries.
This responder can be used to run a flow for a Velociraptor artifact. This could include gathering data, or performing initial response.
It can be run on an observable type of ip, fqdn, or other, and will look for a matching client via the Velociraptor server. If a client match is found for the last seen IP, or the hostname, the responder will kick off the flow, the results will be returned, and the client ID will be added as a tag to the case and the observable.
Get It While Supply Lasts!
If you are still using the old-style way of installing analyzers and responders, run the following commands:
cd path/to/Cortex-Analyzers
git pull
for I in analyzers/*/requirements.txt; do sudo -H pip3 install -U -r $I || true; done
for I in responders/*/requirements.txt; do sudo -H pip3 install -U -r $I || true; done
Once done, ensure to refresh your analyzers and responders in the Cortex WebUI. Connect as an orgadmin and go to the Organization menu. Click on the Analyzers tab and click on the Refresh analyzers button. Do the same for the Responders tab: click on the Refresh responders button. Refer to the online Cortex documentation for further details.
Update TheHive Report Templates
If you are using TheHive, you must import the new report templates in your instance as follows:
go to Admin > Report templates menu ( Admin > Analyzer templates in TheHive 4.0)
click on Import templates button and select the downloaded package
Running Into Trouble?
Shall you encounter any difficulty, please join our user forum, contact us on Gitter, or send us an email at support@thehive-project.org. We will be more than happy to help!
Several months,no, years ! after the first line of code – the first line was committed in 2016–, we are very excited and proud to announce the release of TheHive 4.0.
This means more than a major version for us. This was – and still is — like a completely new project, a new generation, a lot more challenging than before. We had to make the application climb a major step to introduce new key features, some we added in this version, others we have in mind for the future.
Objectives
The development of the second generation of TheHive, aka. version 4, was driven by three main objectives:
Add support to multi-tenancy: allow 1 instance of TheHive to serve many teams and organisations
Add support to Role Based Access Control to define fine grained user profiles
Rethink the data model and structure to support the goals listed above (Moving from Elasticsearch as main persistence layer, to a data model designed as a graph).
Challenges
TheHive Project is thoroughly adopted by SOC, CERTs and CSIRT teams, who decided to go with TheHive Project since the first releases. It is worth noting that until today, TheHive has had a total of 52 releases since 2016.
Those teams helped the project by contributing to our QA, questions, feature requests etc… and our way of thinking drove us to not let them down, and we decided to produce a backward compatible software.
The way we have been working until now aims to make our community move smoothly from TheHIve 3 to TheHive 4.
Backward compatibility
This is the most difficult challenge we have had, but we have hard heads and soft hearts.
TheHive 4 is expected to be backward compatible, thanks to APIs v0. Yes, we provide versioned APIs having the same endpoints as TheHive 3, and producing the same results. Search APIs also support the same query language, except some corner cases like searching using the “_string” operator (which is tightly coupled to Elasticsearch query language, but we have working alternatives).
Performance concerns
Supporting backward compatibility might force you to accept complex designs. And TheHive 4 RC3 was a clear example of that limitation.
Many kind users who tested TheHive 4 RC3, raised performance issues, slow UI problems etc… And it was completely expected. We thank them for making such a pressure on us, we used it to boost the refactoring of the UI, which was using backward compatible APIs (unoptimized for the new data model and representation), specially to read data (listing cases or observables for example).
We can discuss the technical details of this hard point later, but it mainly relates to navigating through graph-based data using a document based query system, which is not optimised.
For example, if you want to search for list of observable of a given case, the ideal way of doing that on a graph-base model is to:
Get the case by its ID, which is indexed (very fast operation)
Navigate through case relation, to find its links of type observable
But the backward compatible query language works differently: It scans all the graphs to search for observables that have a case parent with a given ID, which has a slower performance in a graph-based database.
Multi-tenancy and RBAC
TheHive 4 comes with a special multi-tenancy support. It allows the following strategies:
Use a siloed multi-tenancy: you can define many organisations, without allowing them to share data
Use a collaborative multi-tenancy: you can define a set of organizations and allow them to collaborate on specific cases/tasks/observables, using custom defined user profiles (RBAC)
This feature is very powerful but has a cost: an expected performance overhead. For example, when scanning the graph of data to search for a list of cases, TheHive must return the cases of your organisation and the case you can have access to because of the sharing rule.
New foundations
TheHive 3 was based on a framework called Elastic4play, written by Thomas to abstract all the routines required by a web application written with play 2 and using Elasticsearch.
TheHive 4 has its own core framework: Scalligraph, built to handle the following features.
Scalligraph will be the foundation of the next major version of Cortex.
What’s new in 4.0
TheHive 4.0 release has a significant amount of changes. We will quickly explain the most important, and you can refer to the change logs if you need to have more details.
UI Performance
This was the most important task of this release. As we mentioned above, we were using backward compatible APIs in RC3 release, and migrated 80% of the UI to use the APIs v1 which are optimised for the new graph-based and multi-tenant data model.
OAuth2 Support
This topic gave birth to many github issues, some of them related to TheHive’s UI not correctly redirecting authenticated users. OAuth2 support has been tested with many providers like: Okta, Keycloak, FusionAuth, Microsoft Azure, Office 365 and Google Gsuite.
Starting from this version, there is an API endpoint that handle all the authentication and redirections: /api/ssoLogin
Analyzer selection when calling bulk observable analysis has been improved to show the possible analyzers per observable type.
Analyzers selection during observable bulk analysis
For responders, the user experience has been improved as well, especially for instances with a big number of responders. The simple dropdown menu available to select responders has been replaced by a dialog allowing list filtering and scrolling:
New Responder selection dialog
Add bulk operations to case listing
Before this release, simple case updates required visiting the cases one by one and editing them. We added in this release a bulk edit feature, depending on user’s permissions on the selected cases
Bulk edit dialog, used here from case list
The same bulk editing component has been used to improve the same operations on observable list page.
Other noteworthy changes
We need to mention that the following changes have been included in TheHive 4.0 release:
Add pagination and filtering to users administration
Add back the UI configuration by organisation. The only available option is related to enabling/disabling the use of Empty Case.
Show sharing summary in task and observable lists
Improve alert preview dialog
Add alert externalLink feature allowing the display of external links for any alert, not only MISP alerts.
Known limitations
Even after 49 closed Github Issues, there are still major topics to be addressed by the upcoming releases:
Add back support to case merge which is not satisfying today. The challenge is to find the best to merge cases and make sure that it works in a profile-based multi-tenant design.
Add full text search support. In older versions, TheHive benefited from the full text search capabilities of Elasticsearch. With the new database and persistence system, full text support requires adding a dedicated indexing layer.
Installing and testing TheHive 4.0
After months of testing versions, this official release means that we consider it ready for production purposes. If you’re new with TheHive, we recommend going with TheHive 4.0.
Several installation guides have already been published, suitable with the chosen operating system and installation type, and new are coming.
For testing and training purposes, a virtual machine with a simple configuration of TheHive 4.0 and Cortex 3.0.1, is also published and available starting from now. Please refer to the documentation for download and usage instructions.
Want to upgrade from TheHive 3.x ?
All changes brought to TheHive make the upgrade more challenging than installing the new package and watch the progress bar. To support you with the upgrade, a migration tool comes along with the application to shift your current version of TheHive to TheHive 4.0.
A dedicated guide has been published to help users with this significant task. We recommend using a new server aside from your production server to ensure everything works fine with the migration.
Future of TheHive 3.x
This major outcome doesn’t mean TheHive 3 end of life is reached. As previously announced, we plan to support this version for some time, our next milestone being to support Elasticsearch 7.x with a first Release Candidate.
Thanks to the community and all the contributors, this release comes with 1 new Analyzer, 2 new Responders, lots of improvements and bug fixes.
But there is more news from the front.
Starting from this milestone, bugfixes and new Analyzers or Responders should be released in a smoother way as we are improving few processes. Some changes and recommandations should appear in the next days for submission, and our release process will be improved to fix bugs easier and release new code faster.
We also plan to offer a better documentation. We already started to publish information regarding each Analyzer and Responder. This is a work in progress, and it will be updated with the current requirements guide.
DomainToolsIris documentation page
For each Analyzer and Responder, a page details the purpose of each flavors, the configuration required and even some screenshots from report samples. It will also allow developers to share their own notes if wanted.
New Analyzers
LastInfoSec analyzer, contributed by @remydewa (#754)
Improvement in Shodan: add vulns in template and taxonomies (#772 & #776)
Improvement in Mailer responder: tasks support and auth (#764, #737, #379)
Improvement in SinkDb: support for new api with new dataTypes supported (#483, #498, #756)
Analyzers
LastInfoSec
LastInfoSec offers innovative and automated solutions to collect data, refine it and turn it into useful and actionable information, quickly available to improve the protection, detection and investigation capabilities of companies and government organizations.
TheHive displays the analyzer results as follows:
Short template for LastInfoSec ReportLong Template for LastInfoSec Report
Onyphe
An important work has been made on Onyphe Analyzer to support APIv2. All 7 flavors from older version have been removed and merged into only one flavor named “Onyphe_Summary”. An API key is still needed to query Onyphe API.
TheHive displays the analyzer results as follows:
Onyphe_Summary short reportOnyphe_Summary long report
Responders
Sendgrid
Sendgrid is a customer communication platform for transactional and marketing email used when you have to ensure that your notifications and transactional emails are delivered quickly and securely.
This analyzer works like the Mailer one, but relying on SendGrid external service to delivery emails.
In order to use the service please follow the instruction being careful to the verify your email address.
VirusTotalDownloader
This responders runs on Observables of type “hash” and allows analyst to download corresponding file from VirusTotal. Once downloaded, the file is added to the current case observables in TheHive.
In order to use this responder, a Premium API key from VirusTotal is needed. An API key from TheHive is also needed to upload the file in the observables list.
Use the responder on the hash to add the sample in your Observables
Fixes and Improvements
Fix: some analyzer uses invalid “email” dataType (#799)
Fix in MalwareBazaar: wrong dataTypes in config (#794)
Fix in PhishTank: the JSON object must be str, not ‘bytes’ (#786)
Fix in VMRay: fix error in parsing and workflow (#785 & #784)
Fix in ThreatResponse: module_type key removed from response (#759)
Fix in Abuse_Finder: pythonwhois dependency (#742)
Get It While Supply Lasts!
If you are still using the old-style way of installing analyzers and responders, run the following commands:
cd path/to/Cortex-Analyzers
git pull
for I in analyzers/*/requirements.txt; do sudo -H pip3 install -U -r $I || true; done
for I in responders/*/requirements.txt; do sudo -H pip3 install -U -r $I || true; done
Once done, ensure to refresh your analyzers and responders in the Cortex WebUI. Connect as an orgadmin and go to the Organization menu. Click on the Analyzers tab and click on the Refresh analyzers button. Do the same for the Responders tab: click on the Refresh responders button. Refer to the online Cortex documentation for further details.
Update TheHive Report Templates
If you are using TheHive, you must import the new report templates in your instance as follows:
click on Import templates button and select the downloaded package
Running Into Trouble?
Shall you encounter any difficulty, please join our user forum, contact us on Gitter, or send us an email at support@thehive-project.org. We will be more than happy to help!
“TheHive4py”, this sounds like a word you didn’t hear about during the last 12 months. Well, our focus on this library was put on hold. We will tell you the reason, but much better, we will solve the problem.
A brief review
TheHive4py was quickly initiated after the first releases of TheHive to help developers interact with TheHive APIs using python. We started creating methods and functions for main functionalities and to be honest, it was a sort of a quick-and-dirty solution.
TheHive4py has some limitation:
The API client is a flat class with dozens of methods
The API clients’ methods return the native `requests.Reponse` class instead of a structured data
Exception handling could be improved
Code could be made more reusable
As developers, we are aware of these limitations and are eager to provide a better library, and that’s what we started making with TheHive4py rewrite. We wanted to provide you with a library you can use this way:
The library’s rewrite was supposed to produce a 2.0.0 version of TheHive4py but we had a major issue: backward compatibility.
Well, in theory, backward compatibility can be handled through a clear communication to:
tell the users how to make sure to update their dependencies to TheHive4py < 2.0.0
provide a migration plan
maintain both versions during a certain time
maintain documentation for old and new versions
To be honest, this was hard to achieve, because of the famous lack of time, but things a going to change.
What’s the plan?
We didn’t want to make a plan without asking the community about how they interact with TheHive APIs. So we did two twitter polls that ended up with the following results:
Twitter poll about TheHive API usage methods
The second poll asked our users about pros and cons of TheHive4py:
Twitter poll about TheHive4py pros and cons
The poll results are clear: we need to put more efforts on TheHive4py.
Here we go, firstly, let’s release version 1.7.0
TheHive4py 1.7.0 milestone has been initiated almost one year ago, and we are happy to announce its availability today.
What’s new about it?
The most important change is allowing TheHive4py to interact with TheHive 4 in addition to introducing some missing features, and bug fixes. Here is a short listing of main changes:
Add support to multi tenancy
Allow a developer to specify the organisation against which an API call is done:
api = TheHiveApi('http://my_thehive:9000', 'my_api_key', organisation='cert')
Add custom field support for new types:
TheHive 4 introduces custom fields of type integer and float, this feature allows specifying custom fields with types supported by TheHive 4. These types are not supported by TheHive 3.
TheHive query DSL supports like and wildcard operators, but TheHive4py didn’t had an option to use those operators. In this version the following query methods have been added:
Like (field, value): Field’s value must contain value, that must contain `*` in the beginning or at the end
StratsWith (field, value): Field’s value must start with value
EndsWith (field, value): Field’s value must end with value
ContainsString (field, value): Field’s value must contain value
from thehive4py.query import Eq, Like, And, StartsWith
# find cases where title contains 'Dridex'
api.find_cases(query=Like('title', 'Dridex*'))
# find alerts where status is 'New' and title starts with 'Emotet'
api.find_alert(query=And(Eq('status', 'New'), StartsWith('title', 'Emotet')))
Add ioc and sighted attributes to case and alert artifacts
This allows specifying these attributes during Alert or Case observables creation
Add update_case_observable method
Can be used to patch an existing observable, by setting a tag or marking as IOC.
Add PAP to Case and CaseTemplate models
PAP flag has been added in TheHive recently and TheHive4py was not able to set the PAP value of a Case or CaseTemplate
Add custom fields creation method
Added a `create_custom_field` method that check custom field name uniqueness before creating it.
Note: This method is for now, compatible with TheHive 3 only because it relies on the DBList API that is no longer available on TheHive 4.
Add case template creation method
Added a `create_case_template` method allowing developers to create new Case Templates.
The full change log is available at the release page
What about documentation
Once again we are glad to announce the initial version of a documentation website, dedicated to TheHive4py, including documentation of all the features the library provides, and code samples of the most useful features.
We aim to maintain and improve this documentation over time, so please, don’t hesitate to either contribute or ask for more content.
Screenshot of the documentation website
TheHive4py 2.0
We will put the rewrite of TheHive4py on hold for now and will communicate about it again when we are ready. In the meantime, we will continue maintaining TheHive4py 1.x.
Update: TheHive4py 1.7.1 Patch
During the release 1.7.0, we have noticed that the build process and deployment went wrong, so we have created a 1.7.0.post1 release.
The community also raised a regression that has been fixed in 1.7.1 release. You can read the change log for more details.
Updating/Installing
To update your existing package to version 1.7.0:
$ sudo pip install thehive4py --upgrade
Got a question?
If you encounter any difficulty, please join our user forum, contact us on Gitter, or send us an email at support@thehive-project.org. As usual, we’ll be more than happy to help!
For a few weeks, many questions have been arising regarding the End of Life of ElasticSearch 6.8, and its impact on TheHive and Cortex applications.
We were about to release TheHive 4.0-RC3 when Thomas, akwardly calmly announced to us, having found some time (where?) to review new features and most important, breaking changes introduced by ES7. We have now a good idea of what should be updated or added in the code, as well as the amont of work it represents to get the application working perfectly.
What about current version ?
Few months ago, we announced our intention to maintain current stable versions until ES6 End of Life. At that time, we didn’t expect it to be sooner.
Discontinuing TheHive 3.x with the release of TheHive 4.0 has never been in our plans. With the time, more and more organisations adopted them, and it is important for us to give everyone enough space to schedule and make the move to the TheHive 4.0. This is why TheHive 3 and Cortex 3 will support ES7.
The good news is our ability to announce that the changes introduced by ES7 have no major impacts on us, We are scheduling a first RC1 for TheHive 3.5.0 and Cortex 3.1.0 in the last week of July. Not only will they include support for ES7, but also a few interesting improvements that will be introduced in the coming blog posts.
What’s next ?
Needless to say, the chiefs are sparing no effort in focusing on TheHive 4.0, which requires a huge amount of attention. The application stack has completely changed – the most important adjustment is pushing aside ElasticSearch in favour of Cassandra to manage TheHive’s data storage – and thanks to the community, lots of bugs have already been fixed allowing it to be stronger with time.
Once we consider TheHive 4.0 reliable enough to be used in production, we will publish it as a stable version, and that would be in the coming days. After all, our plans are to make the applications use the same technology stack, which will directly benefit to the next major version of Cortex.
Besides, Cortex is scheduled to be upgraded and based upon Scalligraph, Cassandra and Hadoop. We hope to publish a first RC in few months.
Stay tuned sounds like TheHive Project’s Twitter account will be on fire 🔥 in the coming days!
Three weeks ago, on May 6th, we announced the availability of TheHive 4.0 RC-2 release and the active community made the usual hard work of testing the release to find bugs and ask for enhancements.
Special thanks to Christopher, alias crackytsi who has already created 122 Github issues, 11 of them are just for 4.0-RC-3 milestone.
We are thrilled to present our third release candidate before the final release of TheHive 4. As the RC-2, this milestone brings new features and fixes a nice set of issues.
This blog post will focus on the following new features:
Multi-orgs users
Switch organisation
OAuth2
Migration tool performance
Case sharing overview
If you are curious about all the issues that have been addressed, you can read the full changelog
Multi-orgs users
This feature doesn’t introduce UI changes, but it allows a superadmin or an org-admin to add an existing user to an organisation.
Users in TheHive 4 are identified by their email addresses, so when an administrator adds a new user, with an email address that already exists, TheHive 4 links that existing user to the organisation being updated.
This ends up with a single User record on the database, linked to multiple organisations. Thanks to the new graph data model. This means the given user has:
the same credentials
the same api key, if enabled
the same 2FA settings, if enables
the same status (locked or not)
With that being said, the user can have a different profile for on the organisation (s)he belongs to.
What happens when a user is logged in?
As we mentioned earlier, a user belonging to several organisations, has the same authentication settings, and after the login, his/her workspace is opened with the context of the first organisation (s)he has been created on.
For example, if John was firstly created on the *SocLevel2* organisation, and was later attached to *CTI* organisation, then after signing in, the user is redirected to the workspace of *SocLevel2* organisation.
Future improvements
We will consider allowing the user to define a default organisation to be displayed juste after the login. We are examining the possibility to allow the user to define a default organisation to be displayed just after the login process. Hopefully, we will be able to add this feature in TheHive 4.0.0 release.
Switch organisation
This feature empowers the multi-tenancy capabilities brought to you by TheHive 4. Following what has been showcased above, how can a user, who belongs to more than one organisation, switch between his/her tenants?
The UI introduces a simple feature, available to “multi-org” users only, as a button on the right hand side of the page’s header, aka. the navigation bar.
The switch organisation action button
This button is just hidden for users who belong to a single organisation.
Once clicked, that button show a dialog that displays the following details:
user’s organisations
user’s profile on each organisation
the current organisation
Clicking on an item of this list, refreshes the page by loading the context of the selected organisation, and the UI behaves like if the user was logged in a a member of that selected organisation.
Very useful.
Switch organisation dialog
OAuth2
We had a considerable amount of users asking for SSO and OAuth support in TheHive. We tried to make it more robust in TheHive 4, and let it rely on a redirectUri provided by the backend (/api/ssoLogin) instead of the old redirectUri that some OAuth providers don’t support (index.html/#!/ssoLogin).
In TheHive 4.0 RC-2, OAuth 2 partially worked, and failed to redirect the user to the home page after the authentication success. Yes, sorry for that.
We spent some time testing the new implementation. We will devote some blog posts to it, but firstly, here is a working example relying on Keycloak
After a question asked on Twitter, we tried to test our OAuth implementation with the providers mentioned in the answers, and we have successfully tested:
The migration tool we implemented in TheHive 4.0 RC-2 suffered from important performance issues as a result of our desire for a clean design.
In fact, enabling database locks during a parallelised and asynchronous processing of the migration operations produce a migration tool with poor performance.
We changed the strategy, by disabling locks and programmatically handling duplicates if they happen. This ended by a significant improvement of performance
We hope you can test it and provide us with your feedback.
Case sharing overview
Case sharing is the most important feature that the multi-tenancy support adds to TheHive. Allowing users to quickly spot if a case is owned or is coming from a share (made by another organisation) improves the user’s experience.
The other handy information is: the number of organisations having access to a certain case
Case list with sharing indicators
This screenshot shows all the case sharing related UI element:
The blue line, indicates that the case is coming from another organisation
The green line, indicates that the case is owned by the current organisation
The red line, highlights the column that show the number of organisation having access to the corresponding case
Good morning (or evening if you are on that side of the planet) folks!
We had a very busy week, packed with announcements. First, we released TheHive 4.0-RC2 which you’ve certainly taken to test, then we announced two patch releases for TheHive 3.4. And guess what? Here are some additional Cortex analyzers, a responder and a number of fixes and improvements for existing ones, bringing the total to a whopping 146 analyzers and 18 responders!
RT4-CreateTicket responder, contributed by @mdavis332 (#543)
Analyzers
ANY.RUN
ANY.RUN is a malware sandbox service in the cloud. By using this analyzer, an analyst can submit a suspicious file or URL to the service for analysis and get a report. The report can contain various information such as:
Interactive access
Research threats by filter in public submissions
File and URL dynamic analysis
Mitre ATT&CK mapping
Detailed malware reports
ANY.RUN short reportANY.RUN long report
CyberChef
CyberChef is a simple, intuitive web app for carrying out all manner of “cyber” operations within a web browser. These operations include simple encoding like XOR or Base64, more complex encryption like AES, DES and Blowfish, creating binary and hexdumps, compression and decompression of data, calculating hashes and checksums, IPv6 and X.509 parsing, changing character encodings, and much more.
This analyzer connects to a CyberChef-server and comes in 3 flavors:
CyberChef_FromBase64, that takes Base64 strings as input for CyberChef-server
CyberChef_FromCharCode, that takes CharCode as input for CyberChef-server and run this recipe
CyberChef_FromHex, that takes Hex strings as input for CyberChef-server
TheHive displays the analyzer results as follows:
CyberChef short report
CyberChef long report
MalwareBazaar
MalwareBazaar is a project from abuse.ch with the goal of sharing malware samples with the infosec community, AV vendors and threat intelligence providers.
This analyzer allows analysts to query the API of this service on observables of types ip, domain, fqdn, url, and hash.
TheHive displays the analyzer results as follows:
MalwareBazaar short reportMalwareBazaar long report
OpenCTI
OpenCTI is an open source platform allowing organisations to manage their Cyber Threat Intelligence knowledge and observables. It has been created in order to structure, store, organise and visualise technical and non-technical information about cyber threats.
This analyzer allows an analyst to query the API and request for information about observables of types domain, ip, url, fqdn, uri_path, user-agent, hash, email, mail, mail_subject, registry, regexp,filename and other.
TheHive displays the analyzer results as follows:
OpenCTI short reportOpenCTI long report
MISPWarningLists reloaded (need for speed aka DB support)
The previous version of this analyzer basically used to clone the MISP Warning lists repository and do a lookup in downloaded files. This can be very long to complete.
This new version introduces the optional support of PostgreSQL:
To store warning lists, in a similar way to the NSRL (National Software Reference Library) Analyzer.
Make lookups through these lists faster.
If you want to benefit from the performance boost, using a PostgreSQL server to store the data, you can simply install the requirements.txt, feed the database and configure the connection in the configuration as well:
In the analyzer folder, use the program warninglists_create_db.py to import the warning lists in PostgreSQL. Before running, edit the program file and update the path of where your lists are stored (warninglists_path = "misp-warninglists/**/list.json")
You can schedule these jobs (ex. with cron): first, sync a folder with the repository, and then run the program to update the database.
Once done, configure the analyzer with the conn parameter to connect to the database, or, if you prefer to continue using the previous behaviour and do your lookups in files, just specify the path of the folder:
MISPWarningList Configuration example
Templates have also been updated, and TheHive displays the analyzer results as follows:
MISPWarningList short reportMISPWarningList long report
Responders
RT4-CreateTicket
RT4 (Request Tracker) is a ticketing system. With this responder, an analyst can create a ticket in RT. CaseID is submitted to RT as a reference.
Unfortunately, like for some other analyzers and responders, we have not been able to test this responder on our side. Please feel free to share your feedback with us and also with Michael Davis, who we would like to thank for the hard work and for having shared this responder with the community.
Fixes and Improvements
Fix Inconsistent Key References in Shodan Analyzer (#748)
Improvement: EmlParser now extracts some useful IOCs (#710)
Get It While Supply Lasts!
If you are still using the old-style way of installing analyzers and responders, run the following commands:
cd path/to/Cortex-Analyzers
git pull
for I in analyzers/*/requirements.txt; do sudo -H pip3 install -U -r $I || true; done
for I in responders/*/requirements.txt; do sudo -H pip3 install -U -r $I || true; done
Once done, ensure to refresh your analyzers and responders in the Cortex WebUI. Connect as an orgadmin and go to the Organization menu. Click on the Analyzers tab and click on the Refresh analyzers button. Do the same for the Responders tab: click on the Refresh responders button. Refer to the online Cortex documentation for further details.
Update TheHive Report Templates
If you are using TheHive, you must import the new report templates in your instance as follows:
click on Import templates button and select the downloaded package
Running Into Trouble?
Shall you encounter any difficulty, please join our user forum, contact us on Gitter, or send us an email at support@thehive-project.org. We will be more than happy to help!
Last month (that should be… April… we are kinda losing track of time during the confinement), we made silently 2 patch releases for TheHive 3.4, our current stable version even if we have our hands full of soap and bleach as we are working on the eagerly awaited TheHive 4.0.0 final release: 3.4.1, shortly followed by 3.4.2. Your lovely bees are truly committed at keeping TheHive 3 branch buzzing well after 4.0.0 is out.
As usual, we’d like to start by thank the community for bringing the issues they discover to our attention. This is definitely one of the best contributions that we can get from you!
A simple way to help any open source project
3.4.1 Release
Released on April 25, 2020, 3.4.1 mainly fixed some docker-related issues as well as problems with OAuth2 and MISP integration, in addition to a few bugs, as described in the changelog.
Implemented Enhancements
Docker: TheHive fails to connect to Elasticsearch (NoNodeAvailableException) #854
Improved support for OpenID connect and OAuth2 #1110
TheHive’s Docker entrypoint logs the Play secret key at startup (… looking elsewhere hoping not to attract too much attention on this one) #1177
Configure TheHive’s first run using Docker Compose #1199
TheHive’s docker containers should be orchestration-ready #1204
MISP synchronisation: any attribute having the to_idsflag will be imported as ioc by TheHive. In the same way, when you export a case to MISP, observables which have the iocflag on will become MISP attributes for which to_ids is true #1273
File observables in alert are not created in case #1292
Analyzer’s artifacts tags and message are not kept when importing observables #1285
Running Into Trouble?
Shall you encounter any difficulty, please join our user forum, contact us on Gitter, or send us an email at support@thehive-project.org. We will be more than happy to help as usual!
Shortly after the release of TheHive 4.0 RC-1 in February 2020, many members of our community tested it and provided great feedback, spotting issues here and there. We would like to wholeheartedly thank all of those who, like us, want to make TheHive 4.0 a great, rock-solid release!
We are now happy to unveil the 2nd release candidate. It fixes many bugs and introduce – or reintroduce – some new (and old) features :-). In this blog post, we will concentrate on the following features:
And since the COVID-19 crisis is here to stay for quite some time, we don’t want you to rediscover boredom, a dreadful feeling long forgotten thanks to the continued stream of notifications, solicitations and attention-grabbing, 280 chars ‘thoughts’. So instead of getting bored, we invite you to test TheHive 4.0-RC2 to the best extent possible and, should you encounter any issue, please let us know. We want to issue the final release during the summer so that everyone can have it just in time for their forthcoming vacations at home!
2FA
Two factor authentication was initially scheduled for the final release. We changed our minds and decided to offer you the possibility to test this feature right away to gather your feedback and improvement ideas before we finish up baking the final recipe.
Users can enable 2FA from their account. To enable it, first go to your account Settings and check Enable Multi-Factor Authentication.
Once done, you are invited to use your preferred TOTP application (Google Authenticator, Authy, Microsoft Authenticator etc.) to scan the QR code or the code underneath it. Your 2FA will generate A TOTP that you should supply in the MFA Code area. If it is valid, 2FA will be activated.
Important notes:
If a user loses access to their TOTP application, only an administrator can restore access to their account.
If an org administrator loses access to their TOTP application and they are the only administrator for that org, only a super admin can restore access to their account.
If a super admin loses access to their TOTP application and they are the only super admin of the instance, they should pack up their things and look for another job. That or use a magic DB command to restore access to their account. We’ll update the documentation accordingly.
The current implementation of 2FA does not support backup codes or alternate authentication methods should a user loses access to their TOTP application. However, we are considering adding backup codes to the final release.
2FA cannot be enforced by default for all users at this stage. It is thus of rather marginal value. However, an org admin can see from the UI who did not activate it and pester them until they do. In the same way, a super admin can do the same for org admins, other super admins and mere users. We are updating the documentation to add an API query that will allow you to list all users who did not activate 2FA.
We will consider making 2FA mandatory in TheHive 4.1.
2FA configuration view
Next time you log in, you will need to supply the TOTP verification code in addition to your login and password.
TOTP verification code required at login
Age of Cases
A new information regarding case duration has been added in the list of cases and in case view, so you can easily keep an eye on how old your cases are and activate your escalation procedures etc. if necessary.
Age of Cases in list viewAge of a Case in Case view
Webhooks are back!
TheHive 4.0-RC1 was released without webhooks. They have been reintroduced in this version. You can now configure TheHive 4.0 to use them, but also filter data sent to the remote server by Organisation.