File: //usr/lib/fm-agent/countermeasures/plugins/sample.py
"""
FortiMonitor Top Countermeasure
Copyright 2023 Fortinet, Inc. All Rights Reserved.
fm-ops@fortinet.com
"""
from CountermeasurePlugin import CountermeasurePlugin
class SampleCountermeasure(CountermeasurePlugin):
# Human-readable name for the Countermeasure, will be displayed in the control panel and alerts
name = "Sample Countermeasure"
# Identifier of the author (recommended to be your email address)
author = "<unknown>"
# Unique identifier for the countermeasure, should be lowercase letters, numbers, underscores,
# and periods. No spaces allowed
textkey = "sample"
# Description of the countermeasure, for display at command line and in the Panopta control panel
description = "Sample Countermeasure plugin to use as a starting point for additional plugins."
# How long to pause execution of the countermeasure after announcing it as a wall message. Set
# to None to disable wall announcements for this countermeasure
wall_announce_delay = None
# The shortest allowed time between two executions of this plugin, in seconds. If less than
# that time has elapsed, the second execution won't be performed. Leave set to None to disable
# frequency checks
max_frequency = None
# The longest amount of time that the plugin should be allowed to run. The Countermeasures
# driver will attempt to kill the execution when it exceeds this time, although due to the
# condition that may not be guaranteed.
max_runtime = None
# List of full command lines this plugin requires sudo access for, which is used for validating
# sudo configurations
sudo_requirements = []
def run(self):
"""
Execute the countermeasure action and return some sample output
"""
return_code, output = self.execute("ls -l /")
self.save_text_output(output)
self.save_return_code(return_code)