[**@s4ai/core Documentation v0.3.23**](../../../README.md)

***

[@s4ai/core Documentation](../../../modules.md) / [@s4ai/core](../README.md) / AdversarialSelfTesting

# Class: AdversarialSelfTesting

Defined in: monitoring/adversarial-self-testing.js:51

## Extends

- [`Revenue`](../business/variables/Revenue.md)

## Constructors

### Constructor

> **new AdversarialSelfTesting**(): `AdversarialSelfTestingFramework`

Defined in: monitoring/adversarial-self-testing.js:52

#### Returns

`AdversarialSelfTestingFramework`

#### Overrides

`EventEmitter.constructor`

## Properties

### attackHistory

> **attackHistory**: `any`[]

Defined in: monitoring/adversarial-self-testing.js:56

***

### defenses

> **defenses**: `Map`\<`any`, `any`\>

Defined in: monitoring/adversarial-self-testing.js:55

***

### evolutionGeneration

> **evolutionGeneration**: `number`

Defined in: monitoring/adversarial-self-testing.js:58

***

### mttr

> **mttr**: `number`

Defined in: monitoring/adversarial-self-testing.js:59

***

### securityScore

> **securityScore**: `number`

Defined in: monitoring/adversarial-self-testing.js:57

***

### vulnerabilities

> **vulnerabilities**: `any`[]

Defined in: monitoring/adversarial-self-testing.js:54

## Methods

### conductAttack()

> **conductAttack**(`attackType`): `Promise`\<\{ `attack`: `AttackVector`; `blocked`: `any`; \}\>

Defined in: monitoring/adversarial-self-testing.js:73

#### Parameters

##### attackType

`any`

#### Returns

`Promise`\<\{ `attack`: `AttackVector`; `blocked`: `any`; \}\>

***

### evolveDefenses()

> **evolveDefenses**(): `Promise`\<`void`\>

Defined in: monitoring/adversarial-self-testing.js:137

#### Returns

`Promise`\<`void`\>

***

### getAttackAnalysis()

> **getAttackAnalysis**(): `object`

Defined in: monitoring/adversarial-self-testing.js:229

#### Returns

`object`

##### attackFrequency

> **attackFrequency**: `object` = `typeFrequency`

##### blockedAttacks

> **blockedAttacks**: `number`

##### blockRate

> **blockRate**: `string`

##### securityTrend

> **securityTrend**: `string`

##### successfulAttacks

> **successfulAttacks**: `number`

##### totalAttacks

> **totalAttacks**: `number`

***

### getDefenseMetrics()

> **getDefenseMetrics**(): `object`

Defined in: monitoring/adversarial-self-testing.js:199

#### Returns

`object`

***

### getSecurityReport()

> **getSecurityReport**(): `object`

Defined in: monitoring/adversarial-self-testing.js:215

#### Returns

`object`

##### avgDefenseEffectiveness

> **avgDefenseEffectiveness**: `string`

##### defenseMechanisms

> **defenseMechanisms**: `object`

##### evolutionGenerations

> **evolutionGenerations**: `number`

##### meanTimeToRepair

> **meanTimeToRepair**: `string`

##### securityScore

> **securityScore**: `string`

##### totalAttacksLaunched

> **totalAttacksLaunched**: `number`

##### vulnerabilitiesDiscovered

> **vulnerabilitiesDiscovered**: `number`

##### vulnerabilitiesPatched

> **vulnerabilitiesPatched**: `number`

***

### initializeDefenses()

> **initializeDefenses**(): `void`

Defined in: monitoring/adversarial-self-testing.js:63

#### Returns

`void`

***

### patchVulnerability()

> **patchVulnerability**(`vulnerability`): `Promise`\<`any`\>

Defined in: monitoring/adversarial-self-testing.js:111

#### Parameters

##### vulnerability

`any`

#### Returns

`Promise`\<`any`\>

***

### runAttackCampaign()

> **runAttackCampaign**(`attacks?`): `Promise`\<\{ `avgDefenseEffectiveness`: `string`; `defenseMechanisms`: \{ \}; `evolutionGenerations`: `number`; `meanTimeToRepair`: `string`; `securityScore`: `string`; `totalAttacksLaunched`: `number`; `vulnerabilitiesDiscovered`: `number`; `vulnerabilitiesPatched`: `number`; \}\>

Defined in: monitoring/adversarial-self-testing.js:185

#### Parameters

##### attacks?

`number` = `50`

#### Returns

`Promise`\<\{ `avgDefenseEffectiveness`: `string`; `defenseMechanisms`: \{ \}; `evolutionGenerations`: `number`; `meanTimeToRepair`: `string`; `securityScore`: `string`; `totalAttacksLaunched`: `number`; `vulnerabilitiesDiscovered`: `number`; `vulnerabilitiesPatched`: `number`; \}\>

***

### updateSecurityScore()

> **updateSecurityScore**(): `void`

Defined in: monitoring/adversarial-self-testing.js:159

#### Returns

`void`
