Top Related Projects
AIL framework - Analysis Information Leak framework. Project moved to https://github.com/ail-project
TheHive: a Scalable, Open Source and Free Security Incident Response Platform
MISP (core software) - Open Source Threat Intelligence and Sharing Platform
Fast Incident Response
All of the ad-hoc things you're doing to manage incidents today, done for you, and much more!
Open Cyber Threat Intelligence Platform
Quick Overview
IRIS-Web is an open-source collaborative incident response platform designed for Computer Security Incident Response Teams (CSIRTs). It provides a centralized system for managing and investigating cybersecurity incidents, offering features like case management, evidence handling, and reporting capabilities.
Pros
- Comprehensive incident response workflow management
- Customizable and extensible through modules and integrations
- User-friendly interface with role-based access control
- Active community support and regular updates
Cons
- Steep learning curve for new users due to its extensive features
- Requires significant setup and configuration for optimal use
- Limited out-of-the-box integrations compared to some commercial alternatives
- Resource-intensive for smaller organizations or teams
Getting Started
To set up IRIS-Web:
-
Clone the repository:
git clone https://github.com/dfir-iris/iris-web.git
-
Navigate to the project directory:
cd iris-web
-
Use Docker Compose to build and run the application:
docker-compose up -d
-
Access the web interface at
http://localhost:8000
and follow the setup wizard to configure your instance.
Note: For production use, refer to the official documentation for advanced configuration and security considerations.
Competitor Comparisons
AIL framework - Analysis Information Leak framework. Project moved to https://github.com/ail-project
Pros of AIL-framework
- Specialized in analyzing information leaks and dark web monitoring
- Supports a wide range of data sources, including pastes, social media, and darknet markets
- Offers advanced natural language processing and machine learning capabilities
Cons of AIL-framework
- Steeper learning curve due to its complex architecture and specialized features
- Less focus on general-purpose incident response and case management
- May require more resources to set up and maintain
Code Comparison
AIL-framework (Python):
from packages import Item
from packages.Date import Date
class Paste(Item.Item):
def __init__(self, p_path):
self.p_path = p_path
self.p_date = Date(p_path.split('/')[-4:-1])
self.p_source = p_path.split('/')[-5]
iris-web (Python):
class CaseTask(db.Model):
id = db.Column(db.Integer, primary_key=True)
task_title = db.Column(db.String(256), nullable=False)
task_description = db.Column(db.Text(), nullable=True)
task_tags = db.Column(db.String(256), nullable=True)
task_open = db.Column(db.Boolean, nullable=False, default=True)
Both projects use Python, but AIL-framework focuses on data processing and analysis, while iris-web emphasizes case management and task tracking for incident response.
TheHive: a Scalable, Open Source and Free Security Incident Response Platform
Pros of TheHive
- More mature project with a larger community and extensive documentation
- Integrated with MISP for threat intelligence sharing
- Supports case templates for standardized workflows
Cons of TheHive
- Steeper learning curve due to more complex architecture
- Requires more resources to set up and maintain
- Less flexible customization options for smaller teams
Code Comparison
TheHive (Scala):
def create(caze: Case): Future[Case] = {
val id = caze.id.getOrElse(UUID.randomUUID.toString)
val newCase = caze.copy(
id = Some(id),
createdAt = Some(new Date),
createdBy = Some(auth.userId)
)
caseRepo.create(newCase)
}
IRIS (Python):
@staticmethod
def add_case(case_name, case_description, case_customer, case_soc_id):
case = Cases()
case.name = case_name
case.description = case_description
case.customer = case_customer
case.soc_id = case_soc_id
db.session.add(case)
db.session.commit()
return case
Both repositories provide incident response platforms, but TheHive offers more advanced features and integrations, while IRIS focuses on simplicity and ease of use. TheHive's code is written in Scala, utilizing functional programming concepts, whereas IRIS uses Python with a more straightforward object-oriented approach. TheHive might be better suited for larger organizations with complex workflows, while IRIS could be more appropriate for smaller teams or those new to incident response platforms.
MISP (core software) - Open Source Threat Intelligence and Sharing Platform
Pros of MISP
- More mature and widely adopted in the threat intelligence community
- Extensive integration capabilities with other security tools and platforms
- Robust sharing features for collaborative threat intelligence
Cons of MISP
- Steeper learning curve and more complex setup process
- Can be resource-intensive for smaller organizations
- User interface may be less intuitive for some users
Code Comparison
MISP (PHP):
public function add() {
if ($this->request->is('post')) {
$this->Tag->create();
if ($this->Tag->save($this->request->data)) {
$this->Flash->success(__('The tag has been saved.'));
return $this->redirect(array('action' => 'index'));
}
$this->Flash->error(__('The tag could not be saved. Please, try again.'));
}
}
IRIS (Python):
@tag_blueprint.route('/add', methods=['POST'])
@login_required
def add_tag():
tag_name = request.json.get('tag_name')
if not tag_name:
return response_error("Missing tag name")
tag = Tag(tag_name=tag_name)
db.session.add(tag)
db.session.commit()
return response_success("Tag added successfully")
Both repositories provide threat intelligence platforms, but MISP offers more advanced features and wider adoption, while IRIS-web may be more suitable for smaller teams or those preferring a more streamlined interface. The code comparison shows different approaches to adding tags, with MISP using PHP and a MVC structure, while IRIS uses Python with Flask routing.
Fast Incident Response
Pros of FIR
- Simpler and more lightweight, making it easier to set up and maintain
- Focuses specifically on incident response, providing a streamlined workflow
- Integrates well with existing CERT/CSIRT processes and tools
Cons of FIR
- Less actively maintained, with fewer recent updates
- Limited customization options compared to IRIS
- Lacks some advanced features like threat intelligence integration
Code Comparison
FIR (Python):
class Incident(models.Model):
date = models.DateTimeField(default=timezone.now, blank=True)
is_starred = models.BooleanField(default=False)
subject = models.CharField(max_length=256)
description = models.TextField()
severity = models.IntegerField(choices=SEVERITY_CHOICES, default=1)
IRIS (Python):
class Case(BaseModel):
name = fields.CharField(max_length=256)
description = fields.TextField(null=True)
soc_id = fields.CharField(max_length=256)
customer = fields.ForeignKeyField(Customer, backref='cases', null=True)
initial_date = fields.DatetimeField(default=datetime.datetime.now)
last_update = fields.DatetimeField(default=datetime.datetime.now)
Both projects use similar model structures for incidents/cases, but IRIS offers more fields and relationships, reflecting its more comprehensive approach to case management.
All of the ad-hoc things you're doing to manage incidents today, done for you, and much more!
Pros of Dispatch
- Robust integration ecosystem with 30+ plugins for various services
- Advanced workflow automation capabilities
- Backed by Netflix, potentially offering more resources and long-term support
Cons of Dispatch
- Steeper learning curve due to more complex architecture
- Requires more setup and configuration compared to IRIS
Code Comparison
IRIS (Python):
from app import db
from app.models import Cases
def get_case(case_id):
return Cases.query.filter(Cases.case_id == case_id).first()
Dispatch (Python):
from dispatch.database import SessionLocal
from dispatch.incident import service as incident_service
def get_incident(*, db_session: SessionLocal, incident_id: int):
return incident_service.get(db_session=db_session, incident_id=incident_id)
Both projects use Python and follow similar patterns for database queries, but Dispatch's code structure appears more modular with separate service layers.
IRIS is a simpler, more straightforward incident response platform, while Dispatch offers more advanced features and integrations at the cost of increased complexity. IRIS may be easier to set up and use for smaller teams or organizations, whereas Dispatch might be better suited for larger enterprises with more complex incident response needs.
Open Cyber Threat Intelligence Platform
Pros of OpenCTI
- More comprehensive threat intelligence platform with a wider range of features
- Stronger focus on knowledge management and threat actor tracking
- Better integration with external threat intelligence sources
Cons of OpenCTI
- Steeper learning curve due to its complexity
- Requires more resources to set up and maintain
- May be overkill for smaller organizations or simpler use cases
Code Comparison
OpenCTI (Python):
class ThreatActor(CustomObject):
_type = 'threat-actor'
name = StringProperty(required=True)
description = StringProperty()
aliases = ListProperty(StringProperty)
IRIS (Python):
class CaseSchema(ma.Schema):
case_id = fields.Integer()
case_name = fields.String()
case_description = fields.String()
case_customer = fields.Integer()
Both projects use Python, but OpenCTI focuses on threat intelligence objects, while IRIS is more oriented towards case management. OpenCTI's code structure reflects its broader scope in threat intelligence, whereas IRIS is tailored for digital forensics and incident response workflows.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Incident Response Investigation System
Current Version v2.4.12
Online Demonstration
IRIS
Iris is a web collaborative platform aiming to help incident responders sharing technical details during investigations.
Table of contents
Getting started
It is divided in two main parts, IrisWeb and IrisModules.
- IrisWeb is the web application which contains the core of Iris (web interface, database management, etc).
- IrisModules are extensions of the core that allow third parties to process data via Iris (eg enrich IOCs with MISP and VT, upload and injection of EVTX into Splunk).
IrisWeb can work without any modules though defaults ones are preinstalled. Head to Manage > Modules
in the UI
to configure and enable them.
Running Iris
To ease the installation and upgrades, Iris is shipped in Docker containers. Thanks to Docker compose, it can be ready in a few minutes.
# Clone the iris-web repository
git clone https://github.com/dfir-iris/iris-web.git
cd iris-web
# Checkout to the last tagged version
git checkout v2.4.12
# Copy the environment file
cp .env.model .env
# Build the dockers
docker compose build
# Run IRIS
docker compose up
Iris shall be available on the host interface, port 443, protocol HTTPS - https://<your_instance_ip>
.
By default, an administrator
account is created. The password is printed in stdout the very first time Iris is started. It won't be printed anymore after that.
WARNING :: post_init :: create_safe_admin :: >>>
can be searched in the logs of the webapp
docker to find the password.
The initial password can be set via the configuration.
Iris is split on 5 Docker services, each with a different role.
app
: The core, including web server, DB management, module management etc.db
: A PostgresSQL databaseRabbitMQ
: A RabbitMQ engine to handle jobs queuing and processingworker
: Jobs handler relying on RabbitMQnginx
: A NGINX reverse proxy
Configuration
There are three different options for configuring the settings and credentials: Azure Key Vault, Environment Variables and Configuration Files. This is also the order of priority, if a settings is not set it will fall back on the next option. For all available configuration options see configuration.
Versioning
Starting from version 2.0.0, Iris is following the Semantic Versioning 2.0 guidelines.
The code ready for production is always tagged with a version number.
alpha
and beta
versions are not production-ready.
Do not use the master
branch in production.
Showcase
You can directly try Iris on our demo instance.
One can also head to tutorials, we've put some videos there.
Documentation
A comprehensive documentation is available on docs.dfir-iris.org.
Upgrades
Please read the release notes when upgrading versions. Most of the time the migrations are handled automatically, but some changes might require some manual labor depending on the version.
API
The API reference is available in the documentation or documentation repository.
Help
You can reach us on Discord or by mail if you have any question, issue or idea!
We are also on Twitter and Matrix.
Considerations
Iris is still in its early stage. It can already be used in production, but please set backups of the database and DO NOT expose the interface on the Internet. We highly recommend using a private dedicated and secured network.
License
The contents of this repository is available under LGPL3 license.
Sponsoring
Special thanks to Deutsche Telekom Security GmbH for sponsoring us!
Top Related Projects
AIL framework - Analysis Information Leak framework. Project moved to https://github.com/ail-project
TheHive: a Scalable, Open Source and Free Security Incident Response Platform
MISP (core software) - Open Source Threat Intelligence and Sharing Platform
Fast Incident Response
All of the ad-hoc things you're doing to manage incidents today, done for you, and much more!
Open Cyber Threat Intelligence Platform
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot