|
WSF
|
A class that represents the cyber engagements between two platforms. More...
#include <WsfCyberEngagement.hpp>
Inherits UtScriptAccessible.
Public Types | |
| enum | CyberAttackFailure { cATTACK_RANDOM_DRAW , cATTACK_IMMUNITY , cATTACK_NOT_VULNERABLE , cATTACK_INSUFFICIENT_RESOURCES , cATTACK_NONE } |
| enum | CyberScanFailure { cSCAN_IMMUNITY , cSCAN_DETECTED , cSCAN_NOT_VULNERABLE , cSCAN_NONE } |
Public Member Functions | |
| Engagement (std::string aAttackingPlatform, std::string aVictimPlatform, std::string aNamedAttack, WsfSimulation &aSimulation, size_t aKey) | |
| No default constructor usage - parameters required for instantiation. | |
| virtual | ~Engagement () |
| Engagement (const Engagement &aSrc)=delete | |
| Engagement (Engagement &&aSrc)=default | |
| const Engagement & | operator= (const Engagement &aRhs)=delete |
| const char * | GetScriptClassName () const override |
Public accessors for engagement data | |
| const std::string & | GetAttacker () const |
| size_t | GetAttackerIndex () const |
| const std::string & | GetVictim () const |
| size_t | GetVictimIndex () const |
| const std::string & | GetAttackType () const |
| size_t | GetKey () const |
| Attack * | GetAttack () const |
| double | GetDuration () const |
| double | GetAttackStartTime () const |
| double | GetAttackSuccessThreshold () const |
| double | GetAttackDraw () const |
| double | GetStatusReportThreshold () const |
| double | GetStatusReportDraw () const |
| bool | GetStatusReportSuccess () const |
| double | GetTimeAttackDiscovered () const |
| double | GetAttackDetectionThreshold () const |
| double | GetAttackDetectionDraw () const |
| double | GetAttackAttributionThreshold () const |
| double | GetAttackAttributionDraw () const |
| double | GetTimeAttackRecovery () const |
| bool | GetRecovery () const |
| double | GetScanStartTime () const |
| double | GetScanDetectionThreshold () const |
| double | GetScanDetectionDraw () const |
| double | GetScanAttributionThreshold () const |
| double | GetScanAttributionDraw () const |
| double | GetScanDelayTime () const |
| double | GetDeliveryDelayTime () const |
| bool | GetScanSuccess () const |
| bool | GetAttackInProgress () const |
| bool | GetAttackSuccess () const |
| const std::vector< std::string > & | GetAttackEffects () const |
| double | GetAttackDetectionDelayTime () const |
| double | GetAttackRecoveryDelayTime () const |
| double | GetImmunityThreshold () const |
| double | GetImmunityDraw () const |
| Protect * | GetUsedProtection () |
Accessor methods for engagement failure status | |
| CyberAttackFailure | GetAttackFailureReason () const |
| CyberScanFailure | GetScanFailureReason () const |
Mutator methods for engagement failure status | |
| |
| void | SetAttackFailureReason (CyberAttackFailure aAttackFailure) |
| void | SetScanFailureReason (CyberScanFailure aScanFailure) |
Mutators for engagement data that may be set during use | |
| void | SetAttackStartTime () |
| void | SetScanStartTime () |
| void | SetTimeAttackDiscovered () |
| void | SetTimeAttackRecovery () |
| void | SetScanSuccess (bool aSuccess) |
| void | SetAttackInProgress (bool aInProgress) |
| void | SetAttackSuccess (bool aSuccess) |
Immunity Query Method | |
Provides a wrapper to query the cyber_protect object if it is currently immune to the provided named attack. This method is available here with the engagement object to allow for ease of access and to prevent other objects from accessing the cyber_protect directly
| |
| bool | IsVictimImmune () const |
Draw Method | |
Asks the engagement object to generate a draw for the supplied probability type The values generated will be stored with the engagement object A boolean value is return to indicate if the threshold was met | |
| bool | Draw (random::ProbabilityType aProbabilityType) |
Reset Method | |
Re-establishes original values on member variables in this object, with the exception of values that aid subsequent uses of the engagement object | |
| virtual void | Reset (bool aScanReset=false) |
Release Attack Constraints Method | |
Releases all resources consumed by attacker after it has been destroyed. | |
| void | ReleaseAttackerConstraints () |
Meets Attacker Constraints | |
Ensures that enough resources are available to the attacker to allow for the named attack type. | |
| bool | MeetsAttackerConstraints () |
Make Constraint Reservations | |
If sufficient resources are available, the method reserves the resources required for a named attack type by removing the resources from those available and adding the attack type to any other concurrent attacks. | |
| bool | MakeConstraintReservations () |
Existing Constraint Reservations | |
Checks and returns whether any of the platform's cyber resource are reserved. | |
| bool | ExistingConstraintReservations () |
| WsfSimulation & | GetSimulation () const |
A class that represents the cyber engagements between two platforms.
| wsf::cyber::Engagement::Engagement | ( | std::string | aAttackingPlatform, |
| std::string | aVictimPlatform, | ||
| std::string | aNamedAttack, | ||
| WsfSimulation & | aSimulation, | ||
| size_t | aKey ) |
No default constructor usage - parameters required for instantiation.
Referenced by Engagement(), Engagement(), and operator=().
|
virtual |
References ReleaseAttackerConstraints().
|
delete |
References Engagement().
|
default |
References Engagement().
| bool wsf::cyber::Engagement::Draw | ( | random::ProbabilityType | aProbabilityType | ) |
This is a special case. The victim/target has become immune to this attack. Since multiple engagements exist, this data must be pushed back to the platform component cyber_protection object itself, so that if other engagements (from potentially other attackers against this target using the same attack) register the immunity when queried. NOTE: We cannot naively use the mProtectTypePtr to register the immunity. This may point to a "parent" cyber_protection, and not the component on the target itself
References wsf::cyber::random::cATTACK_ATTRIBUTION, wsf::cyber::random::cATTACK_DETECTION, wsf::cyber::random::cATTACK_SUCCESS, wsf::cyber::random::cFUTURE_IMMUNITY, wsf::cyber::random::cSCAN_ATTRIBUTION, wsf::cyber::random::cSCAN_DETECTION, wsf::cyber::random::cSTATUS_REPORT, wsf::cyber::SimulationExtension::Get(), WsfComponentList::GetComponent(), and wsf::cyber::SimulationExtension::GetCyberDrawManager().
| bool wsf::cyber::Engagement::ExistingConstraintReservations | ( | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by wsf::event::utils::GetCyberEvent(), and wsf::event::utilsCSV::GetCyberEvent().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Referenced by wsf::event::utils::GetScanFailureReason().
|
inline |
|
inline |
|
inlineoverride |
|
inline |
Referenced by wsf::cyber::EngagementManager::CyberAttack(), wsf::cyber::EngagementManager::CyberAttackDetectionDelay(), wsf::cyber::EngagementManager::CyberAttackEffect(), wsf::cyber::EngagementManager::CyberAttackRecoveryDelay(), wsf::cyber::EngagementManager::CyberScan(), wsf::cyber::EngagementManager::CyberScanInitialize(), MakeConstraintReservations(), and MeetsAttackerConstraints().
|
inline |
| bool wsf::cyber::Engagement::GetStatusReportSuccess | ( | ) | const |
Returns true if the attack status has been reported. Returns false if it failed to be reported or hasn't yet been reported.
Referenced by wsf::cyber::VisualizationDraw::AttackFailed(), wsf::cyber::VisualizationDraw::AttackSucceeded(), wsf::event::utils::GetAttackReportStatus(), wsf::cyber::VisualizationDraw::ScanFailed(), and wsf::cyber::VisualizationDraw::ScanSucceeded().
|
inline |
|
inline |
|
inline |
|
inline |
We provide a pointer to the protection used, as in some cases, the protection on the platform is not the valid protection object.
|
inline |
Referenced by wsf::event::utils::GetCyberEvent(), and wsf::event::utilsCSV::GetCyberEvent().
|
inline |
| bool wsf::cyber::Engagement::IsVictimImmune | ( | ) | const |
Referenced by wsf::event::utils::GetImmunityStatus().
| bool wsf::cyber::Engagement::MakeConstraintReservations | ( | ) |
| bool wsf::cyber::Engagement::MeetsAttackerConstraints | ( | ) |
|
delete |
References Engagement().
| void wsf::cyber::Engagement::ReleaseAttackerConstraints | ( | ) |
References _unused, and wsf::cyber::Constraint::Find().
Referenced by ~Engagement().
|
virtual |
References cATTACK_NONE, and cSCAN_NONE.
Referenced by wsf::cyber::EngagementManager::CyberAttackInitialize().
|
inline |
|
inline |
| void wsf::cyber::Engagement::SetAttackStartTime | ( | ) |
|
inline |
|
inline |
| void wsf::cyber::Engagement::SetScanStartTime | ( | ) |
|
inline |
| void wsf::cyber::Engagement::SetTimeAttackDiscovered | ( | ) |
| void wsf::cyber::Engagement::SetTimeAttackRecovery | ( | ) |