emasser 3.10.0 → 3.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.env-example +18 -12
- data/.github/workflows/anchore-syft.yml +38 -0
- data/.github/workflows/codeql-analysis.yml +4 -4
- data/.github/workflows/gh-pages.yml +1 -1
- data/.github/workflows/push-to-docker-mail.yml +6 -7
- data/.github/workflows/push-to-docker.yml +6 -6
- data/.github/workflows/release.yml +1 -1
- data/.github/workflows/rubocop.yml +2 -2
- data/.github/workflows/test-cli.yml +5 -5
- data/.mergify.yml +11 -11
- data/.rubocop.yml +1 -1
- data/CHANGELOG.md +58 -2
- data/Dockerfile +6 -4
- data/Gemfile.lock +108 -64
- data/README.md +23 -22
- data/docs/features.md +682 -539
- data/emasser.gemspec +19 -13
- data/images/emasser_architecture.png +0 -0
- data/lib/emasser/configuration.rb +136 -35
- data/lib/emasser/constants.rb +4 -4
- data/lib/emasser/delete.rb +145 -15
- data/lib/emasser/errors.rb +9 -0
- data/lib/emasser/get.rb +891 -251
- data/lib/emasser/help/approvalCac_post_mapper.md +6 -5
- data/lib/emasser/help/approvalPac_post_mapper.md +1 -5
- data/lib/emasser/help/artifacts_del_mapper.md +2 -2
- data/lib/emasser/help/artifacts_post_mapper.md +23 -34
- data/lib/emasser/help/artifacts_put_mapper.md +28 -9
- data/lib/emasser/help/cloudresource_post_mapper.md +4 -3
- data/lib/emasser/help/controls_put_mapper.md +24 -16
- data/lib/emasser/help/hardware_post_mapper.md +41 -0
- data/lib/emasser/help/hardware_put_mapper.md +42 -0
- data/lib/emasser/help/milestone_del_mapper.md +1 -1
- data/lib/emasser/help/milestone_post_mapper.md +3 -1
- data/lib/emasser/help/milestone_put_mapper.md +1 -8
- data/lib/emasser/help/poam_del_mapper.md +1 -1
- data/lib/emasser/help/poam_post_mapper.md +40 -14
- data/lib/emasser/help/poam_put_mapper.md +43 -18
- data/lib/emasser/help/software_post_mapper.md +59 -0
- data/lib/emasser/help/software_put_mapper.md +60 -0
- data/lib/emasser/help/staticcode_post_mapper.md +0 -4
- data/lib/emasser/help/testresults_post_mapper.md +8 -11
- data/lib/emasser/output_converters.rb +64 -46
- data/lib/emasser/post.rb +603 -231
- data/lib/emasser/put.rb +453 -193
- data/lib/emasser/version.rb +1 -1
- metadata +51 -33
- data/images/emasser_architecture.jpg +0 -0
- data/images/emasser_diagram-Page-3.jpg +0 -0
@@ -6,15 +6,16 @@ Field Data Type Details
|
|
6
6
|
-------------------------------------------------------------------------------------------------
|
7
7
|
systemId Integer [Required] Unique system identifier
|
8
8
|
controlAcronym String [Required] Control acronym associated with the POA&M Item. NIST SP 800-53 Revision 4 defined.
|
9
|
-
|
10
|
-
currentStageName String [Read-Only] Current role.
|
11
|
-
currentStage Integer [Read-Only] Current step in the Control Approval Chain.
|
12
|
-
totalStages Integer [Read-Only] Total number of steps in Control Approval Chain.
|
9
|
+
|
13
10
|
comments* String [Conditional] Comments related to package approval chain. 10,000 Characters.
|
14
11
|
|
12
|
+
|
15
13
|
*Comments are not a required field at the first role of the CAC but are required at the second
|
16
14
|
role of the CAC. Comments cannot exceed 10,000 characters.
|
17
15
|
|
16
|
+
POST requests will only yield successful results if the Security Control is at the first
|
17
|
+
stage of the CAC. If the control is not at the first stage, an error will be returned
|
18
|
+
|
18
19
|
Example:
|
19
20
|
|
20
|
-
bundle exec exe/emasser post
|
21
|
+
bundle exec exe/emasser post pac add [-s, --systemId] <value> [-a, --controlAcronym] <value> [-c, --comments] <value>
|
@@ -10,11 +10,7 @@ workflow String [Required] Values include the following: (Assess and Au
|
|
10
10
|
name String [Required] Package name. 100 Characters.
|
11
11
|
comments String [Required] Comments related to package approval chain. 4000 Characters.
|
12
12
|
|
13
|
-
currentRole String [Read-Only] Current role in active package.
|
14
|
-
currentStep Integer [Read-Only] Current step in the package Approval Chain.
|
15
|
-
totalSteps Integer [Read-Only] Total number of steps in Package Approval Chain.
|
16
|
-
|
17
13
|
|
18
14
|
Example:
|
19
15
|
|
20
|
-
bundle exec exe/emasser post pac add --systemId
|
16
|
+
bundle exec exe/emasser post pac add [-s, --systemId] <value> [-f, --workflow] <value> [-n, --name] <value> [-c --comments] <value>
|
@@ -4,6 +4,6 @@ Provide single file or a space/comma delimited list of file names to be removed
|
|
4
4
|
|
5
5
|
Example:
|
6
6
|
|
7
|
-
bundle exec exe/emasser delete artifacts remove --systemId
|
7
|
+
bundle exec exe/emasser delete artifacts remove [-s, --systemId] <value> [-f, --files] <value>
|
8
8
|
or
|
9
|
-
bundle exec exe/emasser delete artifacts remove --systemId
|
9
|
+
bundle exec exe/emasser delete artifacts remove [-s, --systemId] <value> [-f, --files] <value ... value>
|
@@ -3,57 +3,46 @@ Endpoint request parameters/fields
|
|
3
3
|
Field Data Type Details
|
4
4
|
-------------------------------------------------------------------------------------------------
|
5
5
|
systemId Integer [Required] Unique eMASS identifier. Will need to provide correct number.
|
6
|
+
files* String [Required] Artifact file(s) to post to the given system
|
6
7
|
isTemplate Boolean [Required] Indicates whether an artifact is a template.
|
7
|
-
type
|
8
|
+
type** String [Required] Values include the following: (Procedure, Diagram, Policy, Labor,
|
8
9
|
Document, Image, Other, Scan Result, Auditor Report)
|
9
|
-
category
|
10
|
-
files String [Required] File names (to include path) to be uploaded into eMASS as artifacts
|
10
|
+
category** String [Required] Values include the following: (Implementation Guidance, Evidence)
|
11
11
|
|
12
|
-
description String [Optional] Artifact description. 2000 Characters.
|
13
|
-
refPageNumber String [Optional] Artifact reference page number. 50 Characters.
|
14
|
-
ccis String [Optional] CCIs associated with artifact.
|
15
|
-
controls String [Optional] Control acronym associated with the artifact. NIST SP 800-53 Revision 4 defined.
|
16
|
-
artifactExpirationDate Date [Optional] Date Artifact expires and requires review. In Unix Date Format
|
17
|
-
lastReviewedDate Date [Optional] Date Artifact was last reviewed. In Unix Date Format
|
18
12
|
|
19
|
-
|
20
|
-
|
21
|
-
|
13
|
+
isBulk Boolean [Optional] If no value is specified, the default is false, and an individual
|
14
|
+
artifact file is expected. When set to true, a .zip file is expected
|
15
|
+
which can contain multiple artifact files.
|
22
16
|
|
23
|
-
|
17
|
+
\* The CLI accepts a single (can be a zip file) or multiple files were the CLI archives them into a zip file.
|
24
18
|
|
25
|
-
|
19
|
+
** May also accept custom artifact type or category values set by system administrators.
|
26
20
|
|
27
|
-
|
21
|
+
The body of a request through the Artifacts POST endpoint accepts a single binary file.
|
22
|
+
Two Artifact POST methods are currently accepted: individual and bulk.
|
28
23
|
|
29
|
-
Filename uniqueness
|
24
|
+
Filename uniqueness within an eMASS system will be enforced by the API for both methods.
|
30
25
|
|
31
|
-
|
26
|
+
For POST requests that should result in a single artifact, the request should include the file.
|
32
27
|
|
33
|
-
|
28
|
+
For POST requests that should result in the creation of many artifacts, the request should include
|
29
|
+
a single file with the extension ".zip" only and the parameter isBulk should be set to true.
|
30
|
+
This .zip file should contain one or more files corresponding to existing artifacts or new
|
31
|
+
artifacts that will be created upon successful receipt.
|
32
|
+
|
33
|
+
Upon successful receipt of one or many artifacts, if a file is matched via filename to an artifact
|
34
|
+
existing within the application, the file associated with the artifact will be updated.
|
35
|
+
|
36
|
+
If no artifact is matched via filename to the application, a new artifact will be created with
|
37
|
+
the following default values. Any values not specified below will be null.
|
34
38
|
- isTemplate: false
|
35
39
|
- type: other
|
36
40
|
- category: evidence
|
37
41
|
|
38
42
|
To update values other than the file itself, please submit a PUT request.
|
39
43
|
|
40
|
-
Business Rules
|
41
|
-
- Artifact cannot be saved if the file does not have the following file extensions:
|
42
|
-
- .docx,.doc,.txt,.rtf,.xfdl,.xml,.mht,.mhtml,.html,.htm,.pdf
|
43
|
-
- .mdb,.accdb,.ppt,.pptx,.xls,.xlsx,.csv,.log
|
44
|
-
- .jpeg,.jpg,.tiff,.bmp,.tif,.png,.gif
|
45
|
-
- .zip,.rar,.msg,.vsd,.vsw,.vdx, .z{#}, .ckl,.avi,.vsdx
|
46
|
-
- Artifact cannot be saved if File Name (fileName) exceeds 1,000 characters
|
47
|
-
- Artifact cannot be saved if Description (description) exceeds 2,000 characters
|
48
|
-
- Artifact cannot be saved if Reference Page Number (refPageNumber) exceeds 50 characters
|
49
|
-
- Artifact cannot be saved if the file does not have an allowable file extension/type.
|
50
|
-
- Artifact version cannot be saved if an Artifact with the same file name already exist in the system.
|
51
|
-
- Artifact cannot be saved if the file size exceeds 30MB.
|
52
|
-
- Artifact cannot be saved if the Last Review Date is set in the future.
|
53
|
-
|
54
|
-
|
55
44
|
Example:
|
56
45
|
|
57
|
-
bundle exec exe/emasser post artifacts upload --systemId [value] [--isTemplate or --no-isTemplate] --type
|
46
|
+
bundle exec exe/emasser post artifacts upload [-s, --systemId] <value> [-f, --files] <value...value> [-B, --isBulk or --no-isBulk] -[-T, --isTemplate or --no-isTemplate] [-t, --type] <value> [-c, --category] <value>
|
58
47
|
|
59
48
|
Note: The example does not list any optional fields
|
@@ -4,31 +4,50 @@ Field Data Type Details
|
|
4
4
|
-------------------------------------------------------------------------------------------------
|
5
5
|
systemId Integer [Required] Unique eMASS identifier. Will need to provide correct number.
|
6
6
|
filename String [Required] File name should match exactly one file within the provided zip file.
|
7
|
-
Binary [Required] Application/zip file. Max 30MB per artifact.
|
8
7
|
isTemplate Boolean [Required] Indicates whether an artifact is a template.
|
9
8
|
type* String [Required] Values include the following: (Procedure, Diagram, Policy, Labor,
|
10
9
|
Document, Image, Other, Scan Result, Auditor Report)
|
11
10
|
category* String [Required] Values include the following: (Implementation Guidance, Evidence)
|
12
11
|
|
12
|
+
name String [Optional] Artifact name. Character Limit = 100.
|
13
13
|
description String [Optional] Artifact description. 2000 Characters.
|
14
14
|
refPageNumber String [Optional] Artifact reference page number. 50 Characters.
|
15
|
-
ccis String [Optional] CCIs associated with artifact.
|
16
15
|
controls String [Optional] Control acronym associated with the artifact. NIST SP 800-53 Revision 4 defined.
|
17
|
-
|
16
|
+
assessmentProcedures String [Optional] The Security Control Assessment Procedure being associated with the artifact.
|
17
|
+
expirationDate Date [Optional] Date artifact expires and requires review. Unix date format.
|
18
18
|
lastReviewedDate Date [Optional] Date Artifact was last reviewed. In Unix Date Format
|
19
|
+
signedDate Date [Optional] Date artifact was signed. In Unix Date Format
|
19
20
|
|
20
|
-
isInherited Boolean [Read-Only] Indicates whether an artifact is inherited.
|
21
|
-
mimeContentType String [Read-Only] Standard MIME content type derived from file extension.
|
22
|
-
fileSize String [Read-Only] File size of attached artifact.
|
23
21
|
|
24
22
|
* May also accept custom artifact category values set by system administrators.
|
25
23
|
|
26
|
-
|
27
24
|
Updates one artifact in a system - the API endpoint provide the capability of updating multiple artifacts concurrently, however this CLI only supports updating one Artifact at the time.
|
28
25
|
|
29
|
-
The file name provided should match exactly one file within the previously uploaded zip file.
|
30
26
|
|
27
|
+
The body of a request through the Artifacts PUT endpoint accepts the fields in the below Sample Request Body.
|
28
|
+
Name and isTemplate are non-nullable fields, so name will default to the filename, while isTemplate will
|
29
|
+
default to false if those fields are not specified in the PUT.
|
30
|
+
|
31
|
+
Also, note that one-to-many fields (controls and ccis) will also be replaced with the values specified in the PUT.
|
32
|
+
If existing control or cci mappings exist in eMASS, the values in the PUT will not append, but rather replace all
|
33
|
+
existing control and cci mappings with the values in the request body.
|
34
|
+
|
35
|
+
Note that the PUT request will replace all existing data with the field/value combinations included in the request body. If any fields are not included, the absent fields will become null.
|
36
|
+
|
37
|
+
Business Rules
|
38
|
+
- Artifact cannot be saved if File Name (fileName) exceeds 1,000 characters
|
39
|
+
- Artifact cannot be saved if Name (name) exceeds 100 characters
|
40
|
+
- Artifact cannot be saved if Description (description) exceeds 10,000 characters
|
41
|
+
- Artifact cannot be saved if Reference Page Number (refPageNumber) exceeds 50 characters
|
42
|
+
- Artifact cannot be saved if the file does not have an allowable file extension/type.
|
43
|
+
- Artifact version cannot be saved if an Artifact with the same file name already exist in the system.
|
44
|
+
- Artifact cannot be saved if the file size exceeds 30MB.
|
45
|
+
- Artifact cannot be saved if the Last Review Date is set in the future.
|
46
|
+
- Artifact cannot be saved if the following fields are missing data:
|
47
|
+
- Filename
|
48
|
+
- Type
|
49
|
+
- Category
|
31
50
|
|
32
51
|
Example:
|
33
52
|
|
34
|
-
bundle exec exe/emasser put artifacts update --systemId [
|
53
|
+
bundle exec exe/emasser put artifacts update [-s, --systemId] <value> [-f, --filename] <value> [-T, --isTemplate or --no-isTemplate] [-t, --type] <value> [-c, --category] <value>
|
@@ -15,11 +15,12 @@ cspAccountId String [Optional] System/owner's CSP account ID/numb
|
|
15
15
|
cspRegion String [Optional] CSP region of system.
|
16
16
|
isBaseline Boolean [Optional] True/false flag for providing results as baseline.
|
17
17
|
If true, all existing compliance results for the resourceId will be replaced by results in the current call.
|
18
|
-
|
18
|
+
Tags Object
|
19
19
|
tags Object [Optional] Informational tags associated to results for other metadata
|
20
|
-
text
|
20
|
+
text String [Optional] Tag metadata information
|
21
21
|
|
22
|
-
|
22
|
+
Compliance Results Object
|
23
|
+
complianceResults Object [Required] Compliance result information
|
23
24
|
cspPolicyDefinitionId String [Required] Unique identifier/compliance namespace for CSP/Resource’s
|
24
25
|
policy definition/compliance check.
|
25
26
|
policyDefinitionTitle String [Required] Friendly policy/compliance check title. Recommend short title
|
@@ -9,6 +9,16 @@ controlDesignation String [Required] Values include the following: (Com
|
|
9
9
|
estimatedCompletionDate Date [Required] Field is required for Implementation Plan
|
10
10
|
implementationNarrative String [Required] Includes Security Control comments.
|
11
11
|
|
12
|
+
commonControlProvider String [Conditional] Values include the following: (DoD, Component, Enclave)
|
13
|
+
naJustification String [Conditional] Provide justification for Security Controls deemed Not Applicable to the system.
|
14
|
+
slcmCriticality String [Conditional] Criticality of Security Control regarding SLCM. Character Limit = 2,000
|
15
|
+
slcmFrequency String [Conditional] Values include the following: (Constantly, Daily, Weekly, Monthly, Quarterly,
|
16
|
+
Semi-Annually, Annually, Every,Two Years, Every Three Years, Undetermined)
|
17
|
+
slcmMethod String [Conditional] Values include the following: (Automated, Semi-Automated, Manual, Undetermined)
|
18
|
+
slcmReporting String [Conditional] Method for reporting Security Controls for SLCM. Character Limit = 2,000
|
19
|
+
slcmTracking String [Conditional] How Non-Compliant Security Controls will be tracked for SLCM. Character Limit = 2,000
|
20
|
+
slcmComments String [Conditional] Additional comments for Security Control regarding SLCM. Character Limit = 4,000
|
21
|
+
|
12
22
|
implementationStatus String [Optional] Values include the following: (Planned, Implemented, Inherited, Not Applicable, Manually Inherited)
|
13
23
|
severity String [Optional] Values include the following: (Very Low, Low, Moderate, High, Very High)
|
14
24
|
vulnerabilitySummary String [Optional] Include vulnerability summary. Character Limit = 2,000.
|
@@ -20,26 +30,24 @@ impactDescription String [Optional] Include description of Security Co
|
|
20
30
|
residualRiskLevel String [Optional] Values include the following: (Very Low, Low, Moderate, High, Very High)
|
21
31
|
testMethod String [Optional] Values include the following: ('Test', 'Interview', 'Examine', 'Test, Interview',
|
22
32
|
'Test, Examine', 'Interview, Examine', 'Test, Interview, Examine')
|
33
|
+
mitigations String [Optional] Identify any mitigations in place for the Non-Compliant Security Control's vulnerabilities. Character Limit = 2,000.
|
34
|
+
applicationLayer String [Optional] If the Financial Management (Navy) overlay is applied to the system,
|
35
|
+
this field appears and can be populated. Character Limit = 2,000. Navy only.
|
36
|
+
databaseLayer String [Optional] If the Financial Management (Navy) overlay is applied to the system,
|
37
|
+
this field appears and can be populated. Character Limit = 2,000. Navy only.
|
38
|
+
operatingSystemLayer String [Optional] If the Financial Management (Navy) overlay is applied to the system,
|
39
|
+
this field appears and can be populated. Character Limit = 2,000. Navy only.
|
23
40
|
|
24
|
-
commonControlProvider String [Conditional] Values include the following: (DoD, Component, Enclave)
|
25
|
-
naJustification String [Conditional] Provide justification for Security Controls deemed Not Applicable to the system.
|
26
|
-
slcmCriticality String [Conditional] Criticality of Security Control regarding SLCM. Character Limit = 2,000
|
27
|
-
slcmFrequency String [Conditional] Values include the following: (Constantly, Daily, Weekly, Monthly, Quarterly,
|
28
|
-
Semi-Annually, Annually, Every,Two Years, Every Three Years, Undetermined)
|
29
|
-
slcmMethod String [Conditional] Values include the following: (Automated, Semi-Automated, Manual, Undetermined)
|
30
|
-
slcmReporting String [Conditional] Method for reporting Security Controls for SLCM. Character Limit = 2,000
|
31
|
-
slcmTracking String [Conditional] How Non-Compliant Security Controls will be tracked for SLCM. Character Limit = 2,000
|
32
|
-
slcmComments String [Conditional] Additional comments for Security Control regarding SLCM. Character Limit = 4,000
|
33
41
|
|
34
|
-
|
35
|
-
ccis String [Read-Only] Comma separated list of CCIs associated with the control.
|
36
|
-
isInherited Boolean [Read-Only] Indicates whether a control is inherited.
|
37
|
-
modifiedByOverlays String [Read-Only] List of overlays that affect the control.
|
38
|
-
includedStatus String [Read-Only] Indicates the manner by which a control was included in the system's categorization.
|
39
|
-
complianceStatus String [Read-Only] Compliance status of the control.
|
42
|
+
Business Rules
|
40
43
|
|
44
|
+
Risk Assessment
|
45
|
+
- Risk Assessment information cannot be updated if a Security Control is “Inherited.”
|
46
|
+
- Risk Assessment information cannot be updated for a DIACAP system record.
|
47
|
+
- Risk Assessment information cannot be updated if Security Control does not exist in the system record.
|
41
48
|
|
42
|
-
|
49
|
+
|
50
|
+
Implementation Plan
|
43
51
|
|
44
52
|
The following fields are required based on the value of the `implementationStatus` field
|
45
53
|
|Value |Required Fields
|
@@ -0,0 +1,41 @@
|
|
1
|
+
Endpoint request parameters/fields
|
2
|
+
|
3
|
+
Field Data Type Details
|
4
|
+
-------------------------------------------------------------------------------------------------
|
5
|
+
systemId Integer [Required] Unique eMASS identifier. Will need to provide correct number.
|
6
|
+
assetName String [Required] Name of the hardware asset.
|
7
|
+
|
8
|
+
publicFacingFqdn String [Conditional] Public facing FQDN. Only applicable if Public Facing is set to true.
|
9
|
+
publicFacingIpAddress String [Conditional] Public facing IP address. Only applicable if Public Facing is set to true.
|
10
|
+
publicFacingUrls String [Conditional] Public facing URL(s). Only applicable if Public Facing is set to true.
|
11
|
+
|
12
|
+
componentType* String [Optional] Component type of the hardware asset.
|
13
|
+
nickname String [Optional] Nickname of the hardware asset. Character Limit = 100.
|
14
|
+
assetIpAddress String [Optional] IP address of the hardware asset. Character Limit = 100.
|
15
|
+
publicFacing Boolean [Optional] Public facing is defined as any asset that is accessible from a commercial connection.
|
16
|
+
virtualAsset Boolean [Optional] Determine if this is a virtual hardware asset. The default value is false.
|
17
|
+
manufacturer String [Optional] Manufacturer of the hardware asset. Populated with “Virtual” by default if Virtual Asset is true,
|
18
|
+
however this can be overridden. Character Limit = 100.
|
19
|
+
modelNumber String [Optional] Model number of the hardware asset. Populated with “Virtual” by default if Virtual Asset is true,
|
20
|
+
however this can be overridden. Character Limit = 100.
|
21
|
+
serialNumber String [Optional] Serial number of the hardware asset. Populated with “Virtual” by default if Virtual Asset is true,
|
22
|
+
however this can be overridden. Character Limit = 100.
|
23
|
+
OsIosFwVersion String [Optional] OS/iOS/FW version of the hardware asset. Character Limit = 100.
|
24
|
+
memorySizeType String [Optional] Memory size / type of the hardware asset. Character Limit = 100.
|
25
|
+
location String [Optional] Location of the hardware asset. Character Limit = 250.
|
26
|
+
approvalStatus** String [Optional] Approval status of the hardware asset.
|
27
|
+
criticalAsset Boolean [Optional] Indicates whether the asset is a critical information system asset. The default value is false.
|
28
|
+
|
29
|
+
|
30
|
+
* Component Types default values include the following options, however custom values can be entered to create new options:
|
31
|
+
Firewall, IDS/IPS, KVM, Router, Server, Switch, Workstation
|
32
|
+
** Approval Status default values include the following options, however custom values can be entered to create new options:
|
33
|
+
Approved - DISA UC APL, Approved - FIPS 140-2, Approved - NIAP CCVES,
|
34
|
+
Approved - NSA Crypto, Approved - NSA CSfC, In Progress, Unapproved
|
35
|
+
|
36
|
+
|
37
|
+
Example:
|
38
|
+
|
39
|
+
bundle exec exe/emasser post hardware add [-s, --systemId] <value> [-a, --assetName] <value>
|
40
|
+
|
41
|
+
Note: The example does not list any optional or conditional fields
|
@@ -0,0 +1,42 @@
|
|
1
|
+
Endpoint request parameters/fields
|
2
|
+
|
3
|
+
Field Data Type Details
|
4
|
+
-------------------------------------------------------------------------------------------------
|
5
|
+
systemId Integer [Required] Unique eMASS identifier. Will need to provide correct number.
|
6
|
+
hardwareId String [Required] GUID identifying the specific hardware asset.
|
7
|
+
assetName String [Required] Name of the hardware asset.
|
8
|
+
|
9
|
+
publicFacingFqdn String [Conditional] Public facing FQDN. Only applicable if Public Facing is set to true.
|
10
|
+
publicFacingIpAddress String [Conditional] Public facing IP address. Only applicable if Public Facing is set to true.
|
11
|
+
publicFacingUrls String [Conditional] Public facing URL(s). Only applicable if Public Facing is set to true.
|
12
|
+
|
13
|
+
componentType* String [Optional] Component type of the hardware asset.
|
14
|
+
nickname String [Optional] Nickname of the hardware asset. Character Limit = 100.
|
15
|
+
assetIpAddress String [Optional] IP address of the hardware asset. Character Limit = 100.
|
16
|
+
publicFacing Boolean [Optional] Public facing is defined as any asset that is accessible from a commercial connection.
|
17
|
+
virtualAsset Boolean [Optional] Determine if this is a virtual hardware asset. The default value is false.
|
18
|
+
manufacturer String [Optional] Manufacturer of the hardware asset. Populated with “Virtual” by default if Virtual Asset is true,
|
19
|
+
however this can be overridden. Character Limit = 100.
|
20
|
+
modelNumber String [Optional] Model number of the hardware asset. Populated with “Virtual” by default if Virtual Asset is true,
|
21
|
+
however this can be overridden. Character Limit = 100.
|
22
|
+
serialNumber String [Optional] Serial number of the hardware asset. Populated with “Virtual” by default if Virtual Asset is true,
|
23
|
+
however this can be overridden. Character Limit = 100.
|
24
|
+
OsIosFwVersion String [Optional] OS/iOS/FW version of the hardware asset. Character Limit = 100.
|
25
|
+
memorySizeType String [Optional] Memory size / type of the hardware asset. Character Limit = 100.
|
26
|
+
location String [Optional] Location of the hardware asset. Character Limit = 250.
|
27
|
+
approvalStatus** String [Optional] Approval status of the hardware asset.
|
28
|
+
criticalAsset Boolean [Optional] Indicates whether the asset is a critical information system asset. The default value is false.
|
29
|
+
|
30
|
+
|
31
|
+
* Component Types default values include the following options, however custom values can be entered to create new options:
|
32
|
+
Firewall, IDS/IPS, KVM, Router, Server, Switch, Workstation
|
33
|
+
** Approval Status default values include the following options, however custom values can be entered to create new options:
|
34
|
+
Approved - DISA UC APL, Approved - FIPS 140-2, Approved - NIAP CCVES,
|
35
|
+
Approved - NSA Crypto, Approved - NSA CSfC, In Progress, Unapproved
|
36
|
+
|
37
|
+
|
38
|
+
Example:
|
39
|
+
|
40
|
+
bundle exec exe/emasser post hardware add [-s, --systemId] <value> [-h, --hardwareId] <value> [-a, --assetName] <value>
|
41
|
+
|
42
|
+
Note: The example does not list any optional or conditional fields
|
@@ -8,4 +8,4 @@ The last milestone can not be deleted, at-least on must exist.
|
|
8
8
|
|
9
9
|
Example:
|
10
10
|
|
11
|
-
bundle exec exe/emasser delete milestones remove--systemId
|
11
|
+
bundle exec exe/emasser delete milestones remove [-s, --systemId] <value> [-p, --poamId] <value> [-m, --milestoneId] <value>
|
@@ -9,6 +9,8 @@ poamId Integer [Required] Unique item identifier
|
|
9
9
|
description String [Required] Provide a description of the milestone. 2000 Characters
|
10
10
|
scheduledCompletionDate Date [Required] Schedule completion date - Unix date format
|
11
11
|
|
12
|
+
Note: Business rules associated with Milestones endpoints fields are provided within the POA&Ms Endpoint
|
13
|
+
|
12
14
|
Example:
|
13
15
|
|
14
|
-
bundle exec exe/emasser
|
16
|
+
bundle exec exe/emasser post milestones add [-s, --systemId] <value> [-p, --poamId] <value> [-d, --description] <value> [c, --scheduledCompletionDate] <value>
|
@@ -9,15 +9,8 @@ milestoneId Integer [Required] Unique milestone identifier
|
|
9
9
|
poamId Integer [Required] unique item identifier
|
10
10
|
description String [Required] Provide a description of the milestone. 2000 Characters
|
11
11
|
scheduledCompletionDate Date [Required] In Unix date format ü
|
12
|
-
isActive Boolean [Optional] Set to false only in the case where POA&M PUT would delete
|
13
|
-
specified milestone. Not available for other requests
|
14
12
|
|
15
13
|
|
16
|
-
Set the field "isActive" to false only in the case where POA&M PUT would delete specified milestone. Not available for other requests
|
17
|
-
|
18
|
-
If a field is misrepresented (wrong value)the following response may be provided by the server:
|
19
|
-
Response body: {"meta":{"code":500,"errorMessage":"Sorry! Something went wrong on our end. Please contact emass_support@bah.com for assistance."}}
|
20
|
-
|
21
14
|
Example:
|
22
15
|
|
23
|
-
bundle exec exe/emasser
|
16
|
+
bundle exec exe/emasser post milestones update [-s, --systemId] <value> [-p, --poamId] <value> [-m, --milestoneId] <value> [-d, --description] <value> [c, --scheduledCompletionDate] <value>
|
@@ -1,13 +1,13 @@
|
|
1
1
|
Endpoint request body parameters/fields
|
2
2
|
|
3
|
-
Field
|
4
|
-
|
5
|
-
systemId
|
6
|
-
status
|
7
|
-
vulnerabilityDescription
|
8
|
-
|
9
|
-
pocOrganization
|
10
|
-
resources
|
3
|
+
Field Data Type Details
|
4
|
+
------------------------------------------------------------------------------------------------------
|
5
|
+
systemId Integer [Required] Unique eMASS identifier. Will need to provide correct number.
|
6
|
+
status String [Required] Values include the following: (Ongoing,Risk Accepted,Completed,Not Applicable).
|
7
|
+
vulnerabilityDescription String [Required] Provide a description of the POA&M Item. 2000 Characters.
|
8
|
+
sourceIdentifyingVulnerability String [Required] Include Source Identifying Vulnerability text. 2000 Characters.
|
9
|
+
pocOrganization String [Required] Organization/Office represented. 100 Characters.
|
10
|
+
resources String [Required] List of resources used. 250 Characters.
|
11
11
|
|
12
12
|
milestones JSON [Conditional] Please see Notes 1 for more details.
|
13
13
|
pocFirstName String [Conditional] First name of POC. 100 Characters.
|
@@ -19,9 +19,28 @@ scheduledCompletionDate Date [Conditional] Required for ongoing and comple
|
|
19
19
|
completionDate Date [Conditional] Field is required for completed POA&M items. Unix time format.
|
20
20
|
comments String [Conditional] Field is required for completed and risk accepted POA&M items. 2000 Characters.
|
21
21
|
|
22
|
+
Required for VA. Optional for Army and USCG.
|
23
|
+
identifiedInCFOAuditOrOtherReview Boolean [Required] If not specified, this field will be set to false because it does not accept a null value.
|
24
|
+
personnelResourcesFundedBaseHours Number [Conditional] Displays numbers to the second decimal point
|
25
|
+
personnelResourcesCostCode String [Conditional] Required if Personnel Resources: Funded Base Hours or Personnel Resources: Unfunded Base Hours is populated.
|
26
|
+
personnelResourcesUnfundedBaseHours Number [Conditional] Displays numbers to the second decimal point (e.g., 100.00).
|
27
|
+
personnelResourcesNonfundingObstacle String [Conditional] Required if Personnel Resources: Unfunded Base Hours is populated
|
28
|
+
personnelResourcesNonfundingObstacleOtherReason String [Conditional] Required if the value “Other” is populated for the field Personnel Resources: Non-Funding Obstacle.
|
29
|
+
nonPersonnelResourcesFundedAmount Number [Conditional] At least one of the following is required and must be completed for each POA&M Item:
|
30
|
+
Personnel Resources: Funded Base Hours, Personnel Resources: Unfunded Base Hours
|
31
|
+
Non-Personnel Resources: Funded Amount, Non-Personnel Resources: Unfunded Amount
|
32
|
+
nonPersonnelResourcesCostCode String [Conditional] Required if Non-Personnel Resources: Funded Amount or Non-Personnel Resources: Unfunded Amount is populated.
|
33
|
+
nonPersonnelResourcesUnfundedAmount Number [Conditional] At least one of the following is required and must be completed for each POA&M Item:
|
34
|
+
Personnel Resources: Funded Base Hours, Personnel Resources: Unfunded Base Hours
|
35
|
+
Non-Personnel Resources: Funded Amount, Non-Personnel Resources: Unfunded Amount
|
36
|
+
nonPersonnelResourcesNonfundingObstacle String [Conditional] Required if Non-Personnel Resources: Unfunded Amount is populated.
|
37
|
+
nonPersonnelResourcesNonfundingObstacleOtherReason String [Conditional] Required if the value “Other” is populated for the field
|
38
|
+
Non-Personnel Resources: Non-Funding Obstacle.
|
39
|
+
|
40
|
+
|
22
41
|
externalUid String [Optional] Unique identifier external to the eMASS application for use with associating POA&M Items. 100 Characters.
|
23
42
|
controlAcronym String [Optional] Control acronym associated with the POA&M Item. NIST SP 800-53 Revision 4 defined.
|
24
|
-
|
43
|
+
assessmentProcedure String [Optional] The Security Control Assessment Procedures being associated with the POA&M Item.
|
25
44
|
securityChecks String [Optional] Security Checks that are associated with the POA&M.
|
26
45
|
rawSeverity String [Optional] Values include the following: (I, II, III)
|
27
46
|
relevanceOfThreat String [Optional] Values include the following: (Very Low, Low, Moderate, High, Very High)
|
@@ -32,10 +51,16 @@ residualRiskLevel String [Optional] Values include the following: (Ver
|
|
32
51
|
recommendations String [Optional] Include recommendations. Character Limit 2,000.
|
33
52
|
mitigation String [Optional] Include mitigation explanation. 2000 Characters.
|
34
53
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
54
|
+
Navy Only
|
55
|
+
resultingResidualRiskLevelAfterProposedMitigations String [Optional] Indicate the risk level expected after any proposed mitigations
|
56
|
+
are implemented. Proposed mitigations should be appropriately
|
57
|
+
documented as POA&M milestones.
|
58
|
+
predisposingConditions String [Optional] A predisposing condition is a condition existing within an organization,
|
59
|
+
a mission or business process, enterprise architecture, information system/PIT,
|
60
|
+
or environment of operation, which affects (i.e., increases or decreases) the likelihood
|
61
|
+
that threat events, once initiated, result in adverse impacts.
|
62
|
+
threatDescription String [Optional] Describe the identified threat(s) and relevance to the information system.
|
63
|
+
devicesAffected String [Optional] List any affected devices by hostname. If all devices in the information system are affected, state 'system' or 'all'.
|
39
64
|
|
40
65
|
**If a milestone Id is provided the POA&M with the provided milestone Id is updated and the new POA&M milestones is set to null.**
|
41
66
|
|
@@ -84,7 +109,8 @@ The following parameters/fields have the following character limitations:
|
|
84
109
|
|
85
110
|
Example:
|
86
111
|
|
87
|
-
bundle exec exe/emasser post poams add --systemId
|
112
|
+
bundle exec exe/emasser post poams add [-s, --systemId] <value> --status <value> --vulnerabilityDescription <value>
|
113
|
+
--sourceIdentifyingVulnerability <value> --pocOrganization <value> --resources <value>
|
88
114
|
|
89
115
|
Notes:
|
90
116
|
1 - The format for milestones is:
|
@@ -1,15 +1,15 @@
|
|
1
1
|
Endpoint request parameters/fields
|
2
2
|
|
3
|
-
Field
|
3
|
+
Field Data Type Details
|
4
4
|
-------------------------------------------------------------------------------------------------
|
5
|
-
systemId
|
6
|
-
poamId
|
7
|
-
displayPoamId
|
8
|
-
status
|
9
|
-
vulnerabilityDescription
|
10
|
-
|
11
|
-
pocOrganization
|
12
|
-
resources
|
5
|
+
systemId Integer [Required] Unique eMASS identifier. Will need to provide correct number.
|
6
|
+
poamId Integer [Required] Unique POA&M identifier. Will need to provide correct number.
|
7
|
+
displayPoamId Integer [Required] Globally unique identifier for individual POA&M Items, seen on the front-end as "ID".
|
8
|
+
status String [Required] Values include the following: (Ongoing,Risk Accepted,Completed,Not Applicable.
|
9
|
+
vulnerabilityDescription String [Required] Provide a description of the POA&M Item. 2000 Characters.
|
10
|
+
sourceIdentifyingVulnerability String [Required] Include Source Identifying Vulnerability text. 2000 Characters.
|
11
|
+
pocOrganization String [Required] Organization/Office represented. 100 Characters.
|
12
|
+
resources String [Required] List of resources used. 250 Characters.
|
13
13
|
|
14
14
|
milestones JSON [Conditional] Please see Notes 1 for more details.
|
15
15
|
pocFirstName String [Conditional] First name of POC. 100 Characters.
|
@@ -20,26 +20,51 @@ severity String [Conditional] Values include the following: (
|
|
20
20
|
scheduledCompletionDate Date [Conditional] Required for ongoing and completed POA&M items. Unix time format.
|
21
21
|
completionDate Date [Conditional] Field is required for completed POA&M items. Unix time format.
|
22
22
|
comments String [Conditional] Field is required for completed and risk accepted POA&M items. 2000 Characters.
|
23
|
-
isActive Boolean [Conditional]
|
23
|
+
isActive Boolean [Conditional] Prevent creating a new milestone if one is already exists.
|
24
|
+
|
25
|
+
Required for VA. Optional for Army and USCG.
|
26
|
+
identifiedInCFOAuditOrOtherReview Boolean [Required] If not specified, this field will be set to false because it does not accept a null value.
|
27
|
+
personnelResourcesFundedBaseHours Number [Conditional] Displays numbers to the second decimal point
|
28
|
+
personnelResourcesCostCode String [Conditional] Required if Personnel Resources: Funded Base Hours or Personnel Resources: Unfunded Base Hours is populated.
|
29
|
+
personnelResourcesUnfundedBaseHours Number [Conditional] Displays numbers to the second decimal point (e.g., 100.00).
|
30
|
+
personnelResourcesNonfundingObstacle String [Conditional] Required if Personnel Resources: Unfunded Base Hours is populated
|
31
|
+
personnelResourcesNonfundingObstacleOtherReason String [Conditional] Required if the value “Other” is populated for the field Personnel Resources: Non-Funding Obstacle.
|
32
|
+
nonPersonnelResourcesFundedAmount Number [Conditional] At least one of the following is required and must be completed for each POA&M Item:
|
33
|
+
Personnel Resources: Funded Base Hours, Personnel Resources: Unfunded Base Hours
|
34
|
+
Non-Personnel Resources: Funded Amount, Non-Personnel Resources: Unfunded Amount
|
35
|
+
nonPersonnelResourcesCostCode String [Conditional] Required if Non-Personnel Resources: Funded Amount or Non-Personnel Resources: Unfunded Amount is populated.
|
36
|
+
nonPersonnelResourcesUnfundedAmount Number [Conditional] At least one of the following is required and must be completed for each POA&M Item:
|
37
|
+
Personnel Resources: Funded Base Hours, Personnel Resources: Unfunded Base Hours
|
38
|
+
Non-Personnel Resources: Funded Amount, Non-Personnel Resources: Unfunded Amount
|
39
|
+
nonPersonnelResourcesNonfundingObstacle String [Conditional] Required if Non-Personnel Resources: Unfunded Amount is populated.
|
40
|
+
nonPersonnelResourcesNonfundingObstacleOtherReason String [Conditional] Required if the value “Other” is populated for the field
|
41
|
+
Non-Personnel Resources: Non-Funding Obstacle.
|
42
|
+
|
24
43
|
|
25
44
|
externalUid String [Optional] Unique identifier external to the eMASS application for use with associating POA&M Items. 100 Characters.
|
26
45
|
controlAcronym String [Optional] Control acronym associated with the POA&M Item. NIST SP 800-53 Revision 4 defined.
|
27
|
-
|
46
|
+
assessmentProcedure String [Optional] The Security Control Assessment Procedures being associated with the POA&M Item.
|
28
47
|
securityChecks String [Optional] Security Checks that are associated with the POA&M.
|
29
48
|
rawSeverity String [Optional] Values include the following: (I, II, III)
|
30
|
-
|
31
49
|
relevanceOfThreat String [Optional] Values include the following: (Very Low, Low, Moderate, High, Very High)
|
32
50
|
likelihood String [Optional] Values include the following: (Very Low, Low, Moderate, High, Very High)
|
33
51
|
impact String [Optional] Values include the following: (Very Low, Low, Moderate, High, Very High)
|
34
|
-
impactDescription String [Optional] Include description of Security Control
|
52
|
+
impactDescription String [Optional] Include description of Security Control’s impact.
|
35
53
|
residualRiskLevel String [Optional] Values include the following: (Very Low, Low, Moderate, High, Very High)
|
36
54
|
recommendations String [Optional] Include recommendations. Character Limit 2,000.
|
37
55
|
mitigation String [Optional] Include mitigation explanation. 2000 Characters.
|
38
56
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
57
|
+
Navy Only
|
58
|
+
resultingResidualRiskLevelAfterProposedMitigations String [Optional] Indicate the risk level expected after any proposed mitigations
|
59
|
+
are implemented. Proposed mitigations should be appropriately
|
60
|
+
documented as POA&M milestones.
|
61
|
+
predisposingConditions String [Optional] A predisposing condition is a condition existing within an organization,
|
62
|
+
a mission or business process, enterprise architecture, information system/PIT,
|
63
|
+
or environment of operation, which affects (i.e., increases or decreases) the likelihood
|
64
|
+
that threat events, once initiated, result in adverse impacts.
|
65
|
+
threatDescription String [Optional] Describe the identified threat(s) and relevance to the information system.
|
66
|
+
devicesAffected String [Optional] List any affected devices by hostname. If all devices in the information system are affected, state 'system' or 'all'.
|
67
|
+
|
43
68
|
|
44
69
|
If any poc information is provided all POC fields are required. See additional details for POC fields below.
|
45
70
|
To delete a milestone through the POA&M PUT you must include it as inactive by setting isActive=false.
|
@@ -97,7 +122,7 @@ The following parameters/fields have the following character limitations:
|
|
97
122
|
|
98
123
|
Example:
|
99
124
|
|
100
|
-
bundle exec exe/emasser put poams update --systemId
|
125
|
+
bundle exec exe/emasser put poams update [-s, --systemId] <value> [-p, --poamId] <value> --status <value> --vulnerabilityDescription <value> --sourceIdentifyingVulnerability <value> --pocOrganization <value> --resources <value>
|
101
126
|
|
102
127
|
Notes:
|
103
128
|
1 - The format for milestones is:
|