This document lists the improvement tasks for the WALLIX Bastion Add-on for Splunk. Tasks are categorized by priority and focus on what is achievable within the scope of the add-on.
The goal of this phase is to fix critical security issues, update dependencies, and improve the overall robustness of the add-on.
-
Security: Enable SSL Validation by Default
- Description: Modify
modalert_kill_session_helper.pyto enable SSL/TLS certificate validation by default. The current setting (verify=False) is a major security risk. This should be coupled with an option to provide a custom CA bundle. - Files:
bin/modalert_kill_session_helper.py
- Description: Modify
-
Security: Audit and Update Libraries
- Description: Review the versions of the bundled Python libraries (e.g.,
requests) and update them to patch known vulnerabilities (CVEs). - Files:
bin/ta_wallix_bastion/
- Description: Review the versions of the bundled Python libraries (e.g.,
-
Compatibility: Ensure Python 3 Compatibility
- Description: Ensure full compatibility and optimize the code for recent Python 3 versions (e.g., 3.8+), as Splunk has deprecated Python 2.
- Files: All Python scripts.
-
Reliability: Improve Error Handling
- Description: Strengthen error handling in the alert action script, especially for WALLIX API connection failures (network errors, HTTP 4xx/5xx status codes), and provide clear, actionable log messages.
- Files:
bin/modalert_kill_session_helper.py
-
Code Quality: Integrate Linter and Formatter
- Description: Set up tools like
blackandpylintto enforce a consistent code style and detect potential issues early.
- Description: Set up tools like
This phase focuses on performance optimization, improving the configuration UI, and ensuring compatibility.
-
Performance: Optimize Field Extraction Regex
- Description: Analyze and optimize the regular expressions in
props.confto improve field extraction performance on large log volumes. - Files:
default/props.conf
- Description: Analyze and optimize the regular expressions in
-
Configuration: Enhance Configuration UI
- Description: Make the configuration page more intuitive and add real-time validation for user inputs (e.g., API URL format, API key presence).
- Files:
default/data/ui/views/configuration.xml,bin/TA_WALLIX_Bastion_rh_settings.py
-
Configuration: Allow Custom SSL Certificate Configuration
- Description: Add an option in the configuration UI for the user to provide a path to a custom CA bundle for SSL validation, as an alternative to disabling it.
- Files:
default/data/ui/views/configuration.xml,bin/TA_WALLIX_Bastion_rh_settings.py
-
Compatibility: Validate for Splunk 9.x and Splunk Cloud
- Description: Test and ensure the add-on functions correctly on the latest versions of Splunk Enterprise (9.x) and passes the
AppInspecttool for Splunk Cloud readiness.
- Description: Test and ensure the add-on functions correctly on the latest versions of Splunk Enterprise (9.x) and passes the
-
Logging: Improve Add-on Logging
- Description: Implement structured logging (e.g., key-value pairs or JSON) for Python scripts to facilitate debugging. Include performance metrics (e.g., API call duration).
This phase aims to enrich the add-on with new capabilities and provide comprehensive documentation for users and developers.
-
Feature: Alert Action for Notifications
- Description: Create a new custom alert action to send notifications (e.g., via a webhook) upon detecting a critical event.
-
Feature: Implement API Call Caching
- Description: Implement a simple caching mechanism for repetitive API calls to reduce the load on the WALLIX Bastion and speed up operations.
-
Documentation: Installation and Configuration Guide
- Description: Write a detailed guide with screenshots for installing, configuring, and using the add-on.
-
Documentation: Improve Code Documentation
- Description: Enhance code documentation (docstrings) for all Python scripts, explaining the business logic and the purpose of key functions.
-
Testing: Develop a Unit Test Suite
- Description: Create unit tests for the business logic in the Python scripts, particularly for the alert action script, to ensure reliability and prevent regressions.