This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Taranis AI Documentation

Each Category represents a core functionality of Taranis AI

Functionalities marked with 👤 are only accessible by admin users.

1 - Getting Started

Information on how to get started with Taranis AI

Developers

See docker/dev for instructions on how to start at dev setup.

1.1 - Deployment

How to deploy Taranis AI

Clone via git

git clone --depth 1  https://github.com/taranis-ai/taranis-ai
cd taranis-ai/docker/

Configuration

Copy env.sample to .env

cp env.sample .env

Open file .env and change defaults if needed. More details about environment variables can be found here.

See Advanced monitoring for more logging insights.

Startup & Usage

Start-up application

docker compose up -d

Use the application

http://<url>:<TARANIS_PORT>/login

Initial Setup 👤

The default credentials are user / user and admin / admin.

The passwords for these two default users can be overridden by setting the environment variables PRE_SEED_PASSWORD_ADMIN or PRE_SEED_PASSWORD_USER before first launch. Afterwards they are stored in the database in the user table.

Open http://<url>:<TARANIS_PORT>/config/sources and click load default sources to import the default sources from: default_sources.json

Or import a source export via the Import.

getting started

1.2 - Advanced monitoring

Use Sentry for more runtime insights

Prerequisites

  • Sentry instance available, either SaaS or self-hosted.
  • Follow this guide to have a Sentry project (and SENTRY_DSN) ready.

What is Sentry

Sentry is a monitoring tool that enables more insights about an application. Taranis AI takes advantage of this if you enable it at the start up.

What is there to monitor

Sentry can be used to monitor insights about GUI, Core and database. In Taranis AI: Issues, Traces, Profiles and Queries can be tracked.

How to enable Sentry in Taranis AI

To enable Sentry, set the SENTRY_DSN variables in the .env file before start of the application. More details about environment variables can be found here.

GUI monitoring

To gain insights about GUI, use the TARANIS_GUI_SENTRY_DSN variable and set it to your Sentry DSN address.

Core and database monitoring

To gain insights about Core and database, use the TARANIS_CORE_SENTRY_DSN variable and set it to your Sentry DSN address.

1.3 - Recommended setup

Minimal recommended setup for Taranis AI

For the best experience, we recommend the following minimal requirements for Taranis AI:

  • Resolution: FullHD or more

  • Browser:

    • Chromium
    • Mozilla Firefox
    • Microsoft Edge

2 - Assess

Assessing News Items and Stories

Description

Assess displays a list of collected news items from various sources, which can be searched, filtered, and sorted based on different attributes (see Filters). Furthermore, news items can be merged, added to reports, analyzed and have their state changed (see Items).

Functionalities

Filters

AssessFilters

Details:
  • First Day: The Story’s creation date, typically matching the oldest News Item’s “published date.”
  • Last Day: The Story’s update date, usually reflecting the latest addition or change.

For manually created stories, the “updated” timestamp is essentially the creation time. As a result, filtering by Last day for a manually created story will not return it, even if an older “published date” is set.

Items

News items collected by Collectors become visible in the Assess section. These items can later be grouped by context, either automatically by the Bots or manually.

AssessStory

Detail view:

  • Relevance of item/aggregate can be changed with “up/down” buttons

Charts:

  • Each item displays a chart if data has been aggregated in the last 7 days.
  • Line and bar chart display the same data, which is the accumulation of items per day.
  • The y-axis of the line chart can be adapted and is the same for all charts in the current items list. Therefore, charts can be compared properly.

3 - Analyze

Analyze displays a list of all report items. They can be created, edited, deleted and filtered.

Description

Different types of reports can be created. Those types can be managed by the admin user in the Administration/Report Types endpoint (see Report Types).

After one of the next releases, it will also be possible to create products from reports.

Functionalities

CRUD

  • Create: Reports can be created for any given report type (“New Report” button). After creating a new report, it can instantly be filled with data.
  • Read & Update: Details of reports can be edited/read by clicking on them. News items added to reports (assess) are also displayed in the report item view.
  • Delete: One or multiple reports can be deleted at once.

Reports can be set to “completed” by changing the switch button in the report edit view (top right).

Filter

  • Search: Items can be filtered by string search
  • Display: Number of items displayed per page
  • Offset: Number that defines first item displayed
  • Filter: Filter time range (creation date)
  • Completed/Incomplete: Filter by report’s status

Screenshots

Incomplete reports created today

analyze_view

Add new report item

report_item_add

Deleting multiple reports at once

report_item_delete_multiple

Report item view

report_item_view

4 - Publish

The “Publish” section enables users to manage and display their products. These products allow users to render their reports into various formats such as HTML, JSON, PDF or plain text.

Functionalities

Description of options of the left-hand side panel.

Filter

  • Search: Items can be filtered by string search
  • Items per page: Number of items displayed per page
  • Filter: Show items created today, this week, or this month

Screenshot

screenshot

See also Product Types_

5 - Dashboard

Homepage after logging into Taranis AI

Dashboard is displaying the most frequent topics as well as basic statistics of the application. By clicking on one of the topic headers, the user gets redirected to the Assess endpoint (with the topic set as tag filter). The statistic fields redirect to the respective endpoints, too.

dashboard

6 - User settings

Any user has the ability to change various settings and can log in/out from the application.

User details

Username and user’s organization are displayed.

Change user settings

  • Dark theme: Change to dark theme
  • Language: Switch language (English, German, Slovak)
  • Spellcheck: Enable/disable spellcheck

7 - Administration

Administration section and general workflow

These options are accessible only via users with respective administration privileges. (See User management)

Screenshots

Administration dashboard showing statistics and all its functionalities (sidebar) admin-dashboard.png

7.1 - User Management

Users, Organizations and Roles can be managed by admin users in the Administration tab.

Organizations

Organizations can be added with following parameters defining them: name, description, address.

Roles

Define roles with certain permissions.

Users

Manage users and assign them a role, permissions and an organization.

Screenshots

Add new Organization

user_new_org

Edit basic user role

user_edit_role

Add new User

user_add

7.2 - OSINT workflow

General usage of Taranis AI

Functionalities

  1. Create OSINT Sources
  2. Add word lists
  3. Adapt word list’s functionality
  4. Enable include/exclude list filtering
  5. Bot selection
  6. Collect Sources

1. Create OSINT Sources

  • Import/Export: Sources can be imported and exported as JSON
  • CRUD: Sources can be created, updated and deleted. For each source a collector, feed URL and the content location can be defined among other things.

To get started there is list of RSS sources we worked with: Initial setup_

osint_sources

2. Add word lists

  • Import/Export: Word lists can be imported and exported as json
  • CRUD: Word lists can be created, updated and deleted.

wordlists

3. Adapt word list’s functionality

Word lists can have the following functionalities (displayed under “usage”):

  • Collector Includelist: Collected news items using words of this word list will be accepted
  • Collector Excludelist: Collected news items using words of this word list will not be accepted
  • Tagging Bot: Collected news items will be tagged with words from these word lists
  • Collector Includelist & Tagging Bot: A word list can be used for tagging and include listing

wordlist_usage

4. Enable include/exclude list filtering

To activate include or exclude lists, they need to be added to the default source group.

It has to be mentioned, that this include/exclude filtering happens during the news item collection. Therefore, only filtered news items will be stored in the database and displayed in “Assess”.

source_groups

5. Bot selection

After the collection, it is possible to adapt news items.

Therefore, following bots are currently available:

  • Wordlist bot: Tags news items by wordlist
  • IOC bot: Finds indicators of compromise in news items
  • NLP tagging bot: Tags news items via NLP
  • Story bot: Applies story clustering to news items
  • Summary bot: Summarizes stories

CRUD: Bots can be created, updated and deleted.

Index: Decides the order of bots

RUN_AFTER_COLLECTOR: Indicates if bot is active after collection

bot_selection

6. Collect Sources

After all settings are made, sources can be collected. Either collect all sources by clicking on the “collect sources” button, or collect single sources.

collect_sources

7.3 - OSINTSources

Sources for gathering data are set in the OSINTSources. It is possible to create a new source, import sources, export sources, and collect from sources.

Functionalities

Sources for gathering data are set in the OSINTSources. It is possible to:

Create a new source

  1. Select New Item to open editor at the bottom.
  2. Enter a Name and, optionally, a Description.
  3. Select desired collector. (See Collectors)

Import sources

Select Import and choose desired JSON file for import. (See Initial Setup)

Export sources

Select Export to download a JSON file containing your established collectors.

Collect from sources

Select Collect Sources to aggregate information from all established OSINT sources.

7.4 - Report Types

Admin users can manage report types (in the Administration tab). Each report type can have different attribute groups. To those groups various attributes (Text Area, Date, TLP, CPE, etc.) can be added. Attributes can be managed in Administration/Attributes.

When creating new Reports, one of the created report types have to be selected (see Analyze).

Attributes

Desired attributes need to be created first. Then they can be managed by the admin user. Besides name, description and default value also type, validator and validator parameter can be set.

Report Types - CRUD

  • Create: Report types can be created (“New item”). After adding a new attribute group, different attributes can be added to this group.
  • Read & Update: Report types (including their attribute groups) can be updated by clicking on them in the list.
  • Delete: One or multiple reports can be deleted at once.

Screenshots

Add new Attribute

report_type_add_attribute

Report Types - Create new Report Type

report_type_create

Report Types - Add new Attribute Group

report_type_group

Report Types - Select new Attribute from list

report_type_selecet_attribute

7.5 - Bots

Bots are increasing functionalities in the background

List of Bots

  1. IOC BOT - for tagging news items
  2. NLP Tagging BOT - for tagging news items via NLP
  3. Story BOT - for story clustering
  4. Summary BOT - for summarizing stories
  5. Wordlist BOT tagging news items by wordlist

Bot’s settings

  • Name
  • Descrition
  • Type: Select an option based on the desired functionalities.
  • Index: Specifies the execution order of bots when RUN_AFTER_COLLECTOR is enabled.
  • RUN_AFTER_COLLECTOR: Executes the bot after any collector.
  • REFRESH_INTERVAL: Specifies the execution interval of the bot (default is 10 minutes).
    • Accepted values:
      • hourly
      • daily
      • weekly
      • number representing minutes (20 (run every 20 minutes))
      • a certain time (15:44) - run every day at set time (24h time format)

7.6 - Collectors

Collectors are used to gather data from various sources.

Supported options:

  1. RSS Collector
  2. Simple Web Collector
  3. RT Collector

The administration view now allows users to use the Preview feature to see the result of the configuration without the items being processed further for the Assess view. This feature is available for RSS, Simple Web and RT collector.

RSS Collector

RSS Collector enables Taranis AI to collect data from a user-defined RSS feed (See RSS feeds details).

  • Required fields:
    • FEED_URL
  • Optional fields:
    • USER_AGENT
    • PROXY_SERVER
    • ADDITIONAL_HEADERS [accepts a valid json] (can be used to add additional headers, not all headers work as expected)
    • CONTENT_LOCATION
    • XPATH
    • TLP_LEVEL
    • REFRESH_INTERVAL (see Bots - refresh_interval)
    • DIGEST_SPLITTING On/Off (creates News Items out of URLs present in the Summary field of RSS feed)
    • DIGEST_SPLITTING_LIMIT (default: 30)
    • BROWSER_MODE On/Off (see Browser Mode)

Basic configuration

Advanced configuration

The RSS Collector supports the use of XPath for locating elements. (See Simple Web Collector Advanced configuration)

Simple Web Collector

Simple Web Collector enables Taranis AI to collect data using web URLs and XPaths.

  • Required field:
    • WEB_URL
  • Optional fields:
    • USER_AGENT
    • PROXY_SERVER
    • ADDITIONAL_HEADERS
    • XPATH
    • TLP_LEVEL
    • DIGEST_SPLITTING On/Off
    • DIGEST_SPLITTING_LIMIT (default: 30)
    • BROWSER_MODE On/Off (see Browser Mode)

Basic configuration

The simplest way to use this collector is to use the WEB_URL field only. By using only the WEB_URL field, Taranis-AI autonomously determines the content to be collected. Even though it is mostly reliable, sometimes it is not perfect.

Advanced configuration

When content cannot be reliably collected using the Basic configuration, adding the attribute XPATH (See tutorial how to find it), can be useful. It is crucial to specify the XPath of the precise element containing the desired data.

RT Collector

RT Collector enables Taranis AI to collect data from a user-defined Request Tracker instance.

  • Required fields:

    • BASE_URL: Base URL of the RT instance (e.g. localhost).
    • RT_TOKEN: User token for the RT instance.
  • Optional fields:

    • ADDITIONAL_HEADERS
    • TLP_LEVEL

Digest Splitting

Digest Splitting is a feature that allows the user to split all available URLs in the located element into individual News Items. The Digest Splitting Limit is the maximum number of URLs that will be split into individual News Items. If the limit is reached, the remaining URLs are dropped. The Digest Splitting Limit is set to 30 News Items by default but can be adjusted by the administrator. Useful in case of timeouts during collection of too many News Items.

Browser Mode

Collectors will fail if the web page content is only available with JavaScript. In that case it is possible to turn on the Browser Mode. All requests will have JavaScript enabled, therefore, it is slower and can use more resources.

7.7 - Publishers

Publishers allow handling created products.

Supported options:

  1. Email Publisher
  2. FTP Publisher

Email Publisher

The Email Publisher allows sending out Products.

  • Fields:
    • SMTP_SERVER_ADDRESS*: Address of the SMTP server.
    • SMTP_SERVER_PORT*: Port of the SMTP server.
    • SERVER_TLS: Enable/Disable TLS.
    • EMAIL_USERNAME: Login username for the SMTP server.
    • EMAIL_PASSWORD: Login password for the SMTP server.
    • EMAIL_SENDER*: Sender of the email for message envelope.
    • EMAIL_RECIPIENT*: Email address of the recipient for message envelope. It is possible to use only one email recipient.
    • EMAIL_SUBJECT: Subject of the email.

Note: The EMAIL_SENDER and EMAIL_RECIPIENT parameters are used to construct the message envelope used by the transport agents. Message headers are not modified by these parameters in any way.

Required fields are marked with a *.

General usage

Once the publisher is created, it becomes available in the “Publish” section of each product. To send out a product via email, the product must be “Rendered” first. To render a product, use the option available in the product’s view.

7.8 - Product Types

Product Types facilitate the publication of products capable of aggregating multiple report items.

Prebuilt Product Types

  • CERT Daily Report
  • Default HTML Presenter
  • Default MISP Presenter
  • Default PDF Presenter
  • Default TEXT Presenter

Editing Product Types

All crucial fields are editable, with the most important being Type, Template, and Report Types.

  • Type: It’s the responsibility of the administrator to ensure the selected type is compatible with the subsequently provided template.
  • Template: Users can select from prebuilt templates or add new ones.
  • Report Types: This field determines which types of reports can be added to the products.

product-type-edit

Create new Product Types

While there are several prebuilt product types available, users also have the option to create their own product types using custom templates.

It can be beneficial to create custom Product Types to meet desired results with the publishers.

Example of creating a simple new template using Jinja2

This is an example to render arbitrary values and loop over attributes.

  1. Create a new file with a unique name in src/core/core/static/presenter_templates,
  2. Write a custom template:
    TITLE: {{ data.report_items[0].get('title') | default('No title provided', true) }}<br>
    DATE CREATED: {{ data.report_items[0].get('created') | default('Not available', true) }}<br>
    LAST UPDATED: {{ data.report_items[0].get('last_updated') | default('Not available', true) }}<br>
    {% for name, attribute in data.report_items[0].get('attributes').items() %}
    {{ name }}: {{ attribute }}<br>
    {% endfor %}
    

If one is interested in creating own templates, it is a good to start to render the object {{ data }} first, to understand how to parse the object properly.

  1. Restart the Taranis AI instance.

It is also possible to copy src/core/core/static/presenter_templates/<new-custom-template.txt> to a dynamic folder src/core/taranis_data/presenter_templates so the restart is not necessary.

Advanced behaviour

If needed, templates can be utilized for more complex renderings by leveraging custom attributes.

Currently, this functionality is demonstrated in the text_template.txt file, where the attribute omission of type “Omit Keys” allows for the exclusion of unnecessary attributes from publication. To employ this feature, the administrator simply needs to add this attribute to the relevant report type. Then, within a specific report (Analyze View), they can specify the attributes to omit by listing them as comma-separated strings.

It is essential to ensure that the “Name” used for the report type attribute matches exactly with the key used in the template.

7.9 - OpenAPI

The admin user can access the Taranis API through Swagger UI. Swagger UI displays OpenAPI specifications as an interactive API documentation.

Description

The admin user can access the Taranis API through Swagger UI. Swagger UI displays OpenAPI specifications as an interactive API documentation.

Functionalities 👤

see: Swagger UI

Screenshots

Taranis instance is alive

openapi

8 - User Stories

User Stories as seen from the perspective of an analyst

8.1 - User Stories [Admin]

User Stories as seen from the perspective of an Taranis AI Administrator.

Configure Sources

As an admin, I need to configure OSINT sources to be gathered for intelligence gathering purposes.

Word Lists

As an admin, I need the ability to utilize Word Lists for filtering news items during collection or enhancing them with a Bot. This includes the capability to import and export word lists and apply them based on their designated usage, such as adding tags with the word_list_bot.

wordlist workflow

Configure Report Types

As an admin, I need the ability to configure new report types.

Configure Users

As an admin, I need to manage user accounts by creating and deleting users, ensuring they have the necessary access for their tasks.

Configure ACLs and roles

As an admin, I need to configure Access Control Lists (ACLs) and roles to define permissions for each role. This allows me to effectively manage user permissions, control access to sensitive information, and maintain compliance with organizational policies and regulations.

8.2 - User Stories [Analyst]

User Stories as seen from the perspective of an analyst

Topics Dashboard [Dashboard]

As an analyst, I require access to a Topics Dashboard feature that displays the most important news topics. This dashboard should prioritize the most frequently occurring tags, offering a snapshot of the prevailing themes and subjects within the collected news items.

Assess Stories [Assess]

As an analsyt, I want to review all stories gathered in a fixed time period. I want to be able to set a stard and end date for items to be displayed. If I set these time limits I want to display Stories with pageing otherwise there will be an infintescroll representing the everchanging nature of stories.

Search, Filter and Sort [Assess]

As an analyst, I need the capability to search for news items by entering any text string. To provide a ranked list of results based on the relevance to the search query, enabling me to quickly and effectively identify the most pertinent articles for further analysis.

Vote on Story [Assess]

As an analyst, I want to mark news items as important by voting on them. To allow me to quickly identify and categorize significant articles for easy retrieval at a later time. Each Story includes buttons for down and up voting as well as for marking an story as important. Via a shortcut (ctrl+i) I can mark all selected stories as important.

Mark as read [Assess]

As an analyst, I want to mark news items as read to prevent myself and other anlyst from viewing the same story multiple times. Each Story contains a button to mark a story as read or unread if already marked as read. The same behaviour can be toggled via a shortcut (ctrl+space).

Tags [Assess]

As an analyst, I need the ability to filter news items based on tags, attributes, or important keywords. To allow me to quickly find relevant news items by applying a tag filter within the tool. The interface should provide an option to enter or select tags, and display the filtered results. In scenarios where no news items match the selected tags, it should result in an empty story list.

Create and edit News Item [Assess]

As an analyst, I need a feature that enables me to create news items, specifying details such as title, publish date, review, link, article content, and attributes. To maintain data integrity, the editing function will be disabled for any news item once it is included in a report. For ease of use, each news item has an edit button in the Asses view.

Manage Report [Analyze]

As an analyst, I want to create and edit reports directly within the Analyse view. I can create reports from predefined list of report types managed by an administrator. I can edit the metadata of this report, and add Stories to it. I can mark the report as “completed” to allow further processing and publishing.

Manage Product [Publish]

As an analyst, I require a feature to create reports directly within the Analyse view. I can create reports from predefined list of report types managed by an administrator. I can edit the metadata of this report, and add Stories to it. I can mark the report as “completed” to allow further processing and publishing.

Publish Product [Publish]

As an analyst, I want to publish the findings of a report. So they can be viewed outside of Taranis AI. I can choose only Reports that match my Product type. I can render a preview of the Product before sharing. I can choose the destination where to publish from a predefined list (publishers) managed by an administrator.

8.2.1 - Workflow [Analyst]

End to End ‘user flow’ for an analyst.

Upon logging in, the analyst is greeted by the Dashboard which prominently displays the most significant tags, offering a quick overview of trending topics and themes. This view sets the context for the analyst’s tasks ahead.

To enhance workflow efficiency, please review the available hotkeys. Additionally, for simplified filtering, set the “End of Shift” time in the user settings. This feature allows the system to display only articles published since the last end of shift, ensuring you see content that hasn’t been reviewed yet.

Assess

To assess your items, go to the Assess section and set the time filter. Apply the “not read” and “not important” filters. Mark as read any items that have been read but are considered unimportant. Continue working through these items until all are marked as read, focusing only on checking summaries.

Next, set the filter to “not read” and “important”. Verify the importance of each item and mark it as read if not important. Check whether the item is part of an older report and determine if it still adds value. If not, remove the “important” tag and mark the item as read. If multiple items discuss the same topic, merge them.

To update a summary manually or with AI, first click the “Edit Story” button. Then, you can either edit the summary yourself or use the “Summarize with AI” for a quicker option. Send important or sector-specific items via email. Optionally, you can upvote or downvote items and add them to the relevant reports.

Finally, remove the “important” tag and mark the item as read. For greater efficiency, consider using the time filter to focus on the most recent content.

Additional tasks during assess

During the review process in the Assess tab, the analyst has several tools at their disposal to optimize their workflow:

Voting on Stories: The analyst can vote stories up or down and mark them as important using buttons or the shortcut (Ctrl+I). This helps highlight stories of particular relevance.

Mark as Read: To maintain efficiency and avoid redundancy, the analyst can mark stories as read or unread using a button or the shortcut (Ctrl+Space).

Tags: Tag filters can be applied to narrow down the selection to the most relevant articles, improving focus. If a story needs editing or creation, the analyst can do so directly within the Assess tab, where news items can be adjusted until they are locked into a report. This ensures the content remains fresh and accurate.

Once all relevant stories are collected and reviewed, the analyst moves to the Analyze tab to finalize the report and mark it as completed. This step transitions the process from review to dissemination

Analyze

To analyze your items, go to the Analyze section and review them as done in Assess by merging and removing items. Ensure everything is ready for a final review. Add news items to the appropriate categories, save, and mark the process as completed.

Publish

Finally, the Publish tab is where the compiled report transforms into a product ready for external consumption. The analyst chooses a product type that fits the report, reviews the final product via a rendered preview, and selects a publication destination from a managed list. This final step disseminates the insights gathered and analyzed, extending the impact of the analyst’s work beyond the confines of Taranis AI.

9 - Contribution Guidelines

How to contribute to the docs

See https://github.com/taranis-ai/.github/blob/master/CONTRIBUTING.md