Installation


System Requirements


Hardware

The following machine recommendations are for installing individual PADAS components:

Component Storage Memory CPU Nodes
Manager 100GB, preferably SSD 8GB RAM 2 cores or more 1
Detect Engine SSD. Sizing depends on the number of queries. For evaluation/test/dev 10-20GB should be sufficient. 12GB to 64GB RAM. 4 cores or more 1 to many, depends on padas_events partition count and scalability requirements
Transform Engine 100GB, preferably SSD 12GB to 64GB RAM. Sizing depends on the number of transformations. 4 cores or more 1 to many, depends on input topic(s) and scalability requirements


Software

PADAS requires Confluent Platform in order to operate properly. Namely, the following Confluent Platform components must be running:

  • ZooKeeper
  • Kafka Broker
  • Schema Registry


PADAS and Confluent Platform Version Compatibility
PADAS Confluent Platform
1.0.x 6.x.x & 7.0.x


Operating Systems

PADAS supports the following operating systems.

  • RHEL/CentOS 8.x
  • Debian 9 (stretch)
  • Debian 10 (buster)
  • Ubuntu 16.04 LTS (xenial)
  • Ubuntu 18.04 LTS (bionic)
  • Ubuntu 20.04 LTS (focal)
  • macOS 10.14 and later is supported for testing and development purposes only

For Confluent Platform operating system support, please visit here.


Java

Java 8 and Java 11 are supported in this version of PADAS. From a security perspective, we recommend the latest released patch version as older freely available versions have disclosed security vulnerabilities.

For more information regarding Confluent Platform, please visit here.

You need to separately install the correct version of Java before you start the installation process.

JVM Heap Options can be set via PADAS_HEAP_OPTS environment variable. Default value is: -Xmx1G -Xms1G

NOTE: When using systemctl to start the service, you’ll need to edit padas.service file to make a change.



Manual Install Using TAR Archive


Download the software

  1. Download the latest version here: padas-0.0.1.tgz or via command line:
    curl -O https://www.padas.io/assets/downloads/padas-0.0.1.tgz
    

    NOTE: You can verify the integrity by checking against its SHA512 checksum: padas-0.0.1.tgz.sha512

  2. Extract contents of the archive (default /opt is assumed for $PADAS_HOME)
    cd /opt
    tar xvf padas-0.0.1.tgz
    


    You should have these directories:

Folder Description
/bin/ Scripts for starting/stopping services
/etc/ Configuration files
/libs/ Jars
/logs/ Log files


IMPORTANT NOTE: It is recommended to create a separate user to run Padas, other than root. In our examples, we use padas as both the user and group name. Following is an example on how to create such user:

sudo useradd -d /opt/padas -U padas

Register as a Service

  1. Run Padas to create a service file. (Note: following examples assume $PADAS_HOME to be /opt/padas directory)
    bin/padas set-service
    Systemd unit file has been created as '/opt/padas/libs/padas.service'
    
  2. Review the generated service file (libs/padas.service) and edit as necessary (e.g. user & group information, JVM memory options according to your system settings)
    [Unit]
    Description=PADAS - Alert Detection for Streaming Events
    Documentation=https://www.padas.io/docs
    After=network.target
    #
    [Service]
    Type=simple
    User=padas
    Group=padas
    ExecStart=java -Xmx1G -Xms1G -Dconfig.file=/opt/padas/etc/padas.properties -Dlogging.config=/opt/padas/etc/logback.xml -jar /opt/padas/libs/padas-0.0.1.jar
    TimeoutStopSec=180
    Restart=no
    #
    [Install]
    WantedBy=multi-user.target
    
  3. Copy the service file under system
    sudo cp /opt/padas/libs/padas.service /etc/systemd/system/
    
  4. Reload systemd process
    sudo systemctl daemon-reload
    



Start For the First Time

IMPORTANT NOTE: You need a running Kafka environment (Broker(s) and Schema Registry) and a PADAS license key. Request a license key if you don’t have one.

Manager
  1. Edit etc/padas.properties file to reflect your environment and enter the license key. Note that padas.instance.role MUST be manager.
    padas.instance.role=manager
    bootstrap.servers=localhost:9092
    schema.registry.url=http://localhost:8081
    padas.license=<ENTER YOUR LICENSE KEY HERE>
    
  2. Use command-line interface (CLI) to start PADAS:
    cd $PADAS_HOME/bin
    ./padas start
    
  3. PADAS displays the license agreement and prompts you to accept in order to continue.
    PADAS Software License Agreement
    ...
    Displayed Padas Software License Agreement contents can also be found at https://padas.io/legal/eula.html OR in file /<YOUR INSTALL DIR>/padas-manager/etc/license.txt
    Do you agree with this license? [y/n]: y
    
  4. Create admin username. This is the user that you log into PADAS Manager with.
    Please enter an administrator username? [admin]:
    
  5. Create the password for the user that you just created.
    Password must contain at least 8 total printable ASCII characters.
    Please enter a new password:
    Please repeat the password:
    Successfully saved password.
    
  6. By default, Manager web interface starts on tcp/9000 port. Open a browser and access PADAS Manager (e.g. http://localhost:9000). For any custom configurations please go to Admin Guide
  7. Once logged in, unless the topics are created separately, Manager will prompt you to create the required Kafka topics.
    IMPORTANT NOTE: Number of partitions for each topic needs to be determined based on the expected event data load, performance requirements and your Kafka cluster setup. Please consult your Kafka administrator or PADAS representative for assistance. Once set, number of partitions can not be changed (the topic needs to be deleted and re-created).
  8. Go to Rules menu link and click Edit button in order to add rules. You can upload our out-of-the-box MITRE ATT&CK compatible rules, padasRules.json, that work with Winlogbeat eventlog from winlogbeat-sysmon and winlogbeat-security datamodels in padas_events


  9. Go to Properties menu link and click Edit button in order to add properties. You can upload out-of-the-box transformations for Winlogbeat, padas_transformation.properties, which are configured for getting winlogbeat-sysmon and winlogbeat-security topics transformed into padas_events



    Detect Engine
  10. Edit etc/padas.properties file to reflect your environment. Note that padas.instance.role MUST be detect (default setting).
    padas.instance.role=detect
    bootstrap.servers=localhost:9092
    schema.registry.url=http://localhost:8081
    
  11. Use command-line interface (CLI) to start PADAS:
    cd $PADAS_HOME/bin
    ./padas start
    
  12. PADAS displays the license agreement and prompts you to accept in order to continue.
    PADAS Software License Agreement
    ...
    Displayed Padas Software License Agreement contents can also be found at https://padas.io/legal/eula.html OR in file /<YOUR INSTALL DIR>/padas-manager/etc/license.txt
    Do you agree with this license? [y/n]: y
    


Transform Engine
  1. Edit etc/padas.properties file to reflect your environment. Note that padas.instance.role MUST be transform.
    padas.instance.role=detect
    bootstrap.servers=localhost:9092
    schema.registry.url=http://localhost:8081
    
  2. Use command-line interface (CLI) to start PADAS:
    cd $PADAS_HOME/bin
    ./padas start
    
  3. PADAS displays the license agreement and prompts you to accept in order to continue.
    PADAS Software License Agreement
    ...
    Displayed Padas Software License Agreement contents can also be found at https://padas.io/legal/eula.html OR in file /<YOUR INSTALL DIR>/padas-manager/etc/license.txt
    Do you agree with this license? [y/n]: y
    



PADAS Command Line Interface

A wrapper script is provided to manage PADAS service: $PADAS_HOME/bin/padas

Welcome to Padas Command Line Interface (CLI).

Usage:
  padas [command]

  Available Commands:
    status                    Show Padas service status and PID information
    start                     Start Padas service
    stop                      Stop Padas service
    start-console             Start Padas on the console


Example outputs when components are started for the first time.


Manager:

bin/padas start-console
PADAS Software License Agreement
...
Displayed Padas Software License Agreement contents can also be found at https://padas.io/legal/eula.html OR in file /<YOUR INSTALL DIR>/padas-manager/etc/license.txt
Do you agree with this license? [y/n]: y
INFO  Starting PADAS Manager...
INFO  Validating license string...    
This appears to be your first time running this version of Padas.
Padas Manager requires an administrator account to run. Please create credentials.
Please enter an administrator username? [admin]:
Password must contain at least 8 total printable ASCII characters.
Please enter a new password:
Please repeat the password:
Successfully saved password.
INFO  Verifying Kafka broker connection...
INFO  Verifying Schema Registry connection...
INFO  Starting web interface...
  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@:**@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@@@@@@@@:****:@@@@@@@@@@@**:****@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@@@@@@**********:::**********@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@@@@:***********************@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@@@************************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@@**************************@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@*****************************@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@********************************&@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@#***********************************::@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@**:************************************@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@@@@@******************************@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@&*@@@@@@@@@@*************************@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@:**********@@@@@@@@@@@***********************@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@***********:@@@@@@@@@@@@********************o@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@***********@@@@@@@@@@@@@*******************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  **************o@@@@@@@@@@@@@*******************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  **************@@@@@@@@@@@@@********************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @:::o:********@@@@@@@@@@@@:********************:@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@o*******@@@@@@@@@@**************o@@@#****8@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@*******:@@@@@@@:***********@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@8
  @@@@@@@@**********:@**************@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*
  @@@@@@@:*****************************:8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&
  @@@@@@:***********************************@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:@
  @@@@@@o****************************************@@@@@@@@@@@@@@@@@@@@@@@@@:*@@
  @@@@@@o********************************************:*@@@@@@@@@@@@@@@@@:**@@@
  @@@@@@@@@******************************@::****************************:@@@@@
  @@@@@@@@@@*@@:******#@@@@@@@@@*********@@@@@@@@8**:****************@@@@@@@@@
  @@@@@@@@@*****@@*****:8@@@@@@@@@8*********@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@*****@@@:******@@@@@@@@@@@@:*****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@****&@@@@@@*****@@@@@@@@@@@@@@****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@**@@@****@@@@@@@@#***#@@@@@@@@@@@@@@****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@******:***@@@@@@@@***@@@@@@@@@@@@@@@****@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@:&@@@@@@@@@@::@@*****:o@@@@@@@o***********@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@:*****8#@:*#@@@@@@8*@*8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@&@*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  ____   _    ____    _    ____
|  _ \ / \  |  _ \  / \  / ___|
| |_) / _ \ | | | |/ _ \ \___ \
|  __/ ___ \| |_| / ___ \ ___) |
|_| /_/   \_\____/_/   \_\____/
INFO  Starting Manager using Java 11.0.10 on padas.local with PID 96539 (/<YOUR INSTALL DIR>/padas-manager/libs/padas-manager-0.0.2.jar started by user1 in /<YOUR INSTALL DIR>)
INFO  No active profile set, falling back to default profiles: default
INFO  Started Manager in 7.973 seconds (JVM running for 118.08)


Detect Engine:

bin/padas start-console
PADAS Software License Agreement
...
Displayed Padas Software License Agreement contents can also be found at https://padas.io/legal/eula.html OR in file /<YOUR INSTALL DIR>/padas-detect/etc/license.txt
Do you agree with this license? [y/n]: y
INFO  Starting Detect Engine...


Transform Engine:

bin/padas start-console
PADAS Software License Agreement
...
Displayed Padas Software License Agreement contents can also be found at https://padas.io/legal/eula.html OR in file /<YOUR INSTALL DIR>/padas-transform/etc/license.txt
Do you agree with this license? [y/n]: y
INFO  Starting Transform Engine...



Uninstall

  1. Remove Padas directory. For example:
    rm -rf /opt/padas
    



Docker

TBD