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

Return to the regular view of this page.

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

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

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

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.

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

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)

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.

Configuration for Mastodon Feeds

To set up an RSS Collector for collecting posts from a Mastodon hashtag or user, follow these steps:

  1. Finding the Mastodon RSS Feed URL:

    • Hashtag Feed: Add .rss to the hashtag URL. For example, to collect posts tagged with #cybersecurity: https://mastodon.social/tags/cybersecurity.rss
    • User Feed: Similarly, add .rss to the user’s profile URL. Example: https://mastodon.social/@username.rss
  2. Creating a New RSS Source with Required Parameters: When creating the new RSS source, configure it with the following parameters. Here’s an example of how to fill out the fields:

    • FEED_URL: Enter the RSS feed URL for the Mastodon hashtag or user (e.g., https://mastodon.social/tags/cybersecurity.rss).
    • CONTENT_LOCATION Set this to "summary" to specify the main content location within each RSS entry.
    • REFRESH_INTERVAL Set the refresh interval in seconds for the frequency of updates.
    • DIGEST_SPLITTING is set to "false" since we’re not splitting entries into multiple items.

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 - 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.

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.

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