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 | 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
- 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
- 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
- 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'
- 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
- Copy the service file under system
sudo cp /opt/padas/libs/padas.service /etc/systemd/system/
- 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
- Edit
etc/padas.properties
file to reflect your environment and enter the license key. Note thatpadas.instance.role
MUST bemanager
.padas.instance.role=manager bootstrap.servers=localhost:9092 schema.registry.url=http://localhost:8081 padas.license=<ENTER YOUR LICENSE KEY HERE>
- Use command-line interface (CLI) to start PADAS:
cd $PADAS_HOME/bin ./padas start
- 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
- Create admin username. This is the user that you log into PADAS Manager with.
Please enter an administrator username? [admin]:
- 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.
- 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
- 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). -
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
andwinlogbeat-security
datamodels inpadas_events
-
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
andwinlogbeat-security
topics transformed intopadas_events
Detect Engine
- Edit
etc/padas.properties
file to reflect your environment. Note thatpadas.instance.role
MUST bedetect
(default setting).padas.instance.role=detect bootstrap.servers=localhost:9092 schema.registry.url=http://localhost:8081
- Use command-line interface (CLI) to start PADAS:
cd $PADAS_HOME/bin ./padas start
- 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
- Edit
etc/padas.properties
file to reflect your environment. Note thatpadas.instance.role
MUST betransform
.padas.instance.role=detect bootstrap.servers=localhost:9092 schema.registry.url=http://localhost:8081
- Use command-line interface (CLI) to start PADAS:
cd $PADAS_HOME/bin ./padas start
- 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
- Remove Padas directory. For example:
rm -rf /opt/padas
Docker
TBD