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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.env-example +18 -12
  3. data/.github/workflows/anchore-syft.yml +38 -0
  4. data/.github/workflows/codeql-analysis.yml +4 -4
  5. data/.github/workflows/gh-pages.yml +1 -1
  6. data/.github/workflows/push-to-docker-mail.yml +6 -7
  7. data/.github/workflows/push-to-docker.yml +6 -6
  8. data/.github/workflows/release.yml +1 -1
  9. data/.github/workflows/rubocop.yml +2 -2
  10. data/.github/workflows/test-cli.yml +5 -5
  11. data/.mergify.yml +11 -11
  12. data/.rubocop.yml +1 -1
  13. data/CHANGELOG.md +58 -2
  14. data/Dockerfile +6 -4
  15. data/Gemfile.lock +108 -64
  16. data/README.md +23 -22
  17. data/docs/features.md +682 -539
  18. data/emasser.gemspec +19 -13
  19. data/images/emasser_architecture.png +0 -0
  20. data/lib/emasser/configuration.rb +136 -35
  21. data/lib/emasser/constants.rb +4 -4
  22. data/lib/emasser/delete.rb +145 -15
  23. data/lib/emasser/errors.rb +9 -0
  24. data/lib/emasser/get.rb +891 -251
  25. data/lib/emasser/help/approvalCac_post_mapper.md +6 -5
  26. data/lib/emasser/help/approvalPac_post_mapper.md +1 -5
  27. data/lib/emasser/help/artifacts_del_mapper.md +2 -2
  28. data/lib/emasser/help/artifacts_post_mapper.md +23 -34
  29. data/lib/emasser/help/artifacts_put_mapper.md +28 -9
  30. data/lib/emasser/help/cloudresource_post_mapper.md +4 -3
  31. data/lib/emasser/help/controls_put_mapper.md +24 -16
  32. data/lib/emasser/help/hardware_post_mapper.md +41 -0
  33. data/lib/emasser/help/hardware_put_mapper.md +42 -0
  34. data/lib/emasser/help/milestone_del_mapper.md +1 -1
  35. data/lib/emasser/help/milestone_post_mapper.md +3 -1
  36. data/lib/emasser/help/milestone_put_mapper.md +1 -8
  37. data/lib/emasser/help/poam_del_mapper.md +1 -1
  38. data/lib/emasser/help/poam_post_mapper.md +40 -14
  39. data/lib/emasser/help/poam_put_mapper.md +43 -18
  40. data/lib/emasser/help/software_post_mapper.md +59 -0
  41. data/lib/emasser/help/software_put_mapper.md +60 -0
  42. data/lib/emasser/help/staticcode_post_mapper.md +0 -4
  43. data/lib/emasser/help/testresults_post_mapper.md +8 -11
  44. data/lib/emasser/output_converters.rb +64 -46
  45. data/lib/emasser/post.rb +603 -231
  46. data/lib/emasser/put.rb +453 -193
  47. data/lib/emasser/version.rb +1 -1
  48. metadata +51 -33
  49. data/images/emasser_architecture.jpg +0 -0
  50. 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
- complianceStatus String [Read-Only] Compliance status of the control.
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 cac add --systemId [value] --controlAcronym [value] --comments [value]
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 [value] --workflow [value] --name [value] --comments [value]
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 [value] --files [value]
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 [value] --files [value ... value]
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* String [Required] Values include the following: (Procedure, Diagram, Policy, Labor,
8
+ type** String [Required] Values include the following: (Procedure, Diagram, Policy, Labor,
8
9
  Document, Image, Other, Scan Result, Auditor Report)
9
- category* String [Required] Values include the following: (Implementation Guidance, Evidence)
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
- isInherited Boolean [Read-Only] Indicates whether an artifact is inherited.
20
- mimeContentType String [Read-Only] Standard MIME content type derived from file extension.
21
- fileSize String [Read-Only] File size of attached artifact.
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
- * May also accept custom artifact type or category values set by system administrators.
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
- The request body of a POST request through the Artifact Endpoint accepts a single binary file with file extension.zip only.
19
+ ** May also accept custom artifact type or category values set by system administrators.
26
20
 
27
- This accepted .zip file should contain one or more files corresponding to existing artifacts or new artifacts that will be created upon successful receipt.
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 throughout eMASS will be enforced by the API.
24
+ Filename uniqueness within an eMASS system will be enforced by the API for both methods.
30
25
 
31
- Upon successful receipt of a file, if a file within the .zip is matched via filename to an artifact existing within the application, the file associated with the artifact will be updated.
26
+ For POST requests that should result in a single artifact, the request should include the file.
32
27
 
33
- If no artifact is matched via filename to the application, a new artifact will be created with the following default values. Any values not specified below will be blank.
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 [value] --category [value] --files[value...value]
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
- artifactExpirationDate Date [Optional] Date Artifact expires and requires review. In Unix Date Format
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 [value] [--isTemplate or --no-isTemplate] --type [value] --category [value] --files[value...value]
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 String [Optional] Tag metadata information
20
+ text String [Optional] Tag metadata information
21
21
 
22
- complianceResults Object [Required] Compliance result information
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
- name String [Read-Only] Name of control as defined in NIST SP 800-53 Revision 4.
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
- Business Rules
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 [value] --poamId [value] --milestoneId [value]
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 put milestones add --systemId [value] --poamId [value] --description [value] --scheduledCompletionDate [value]
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 put milestones update --systemId [value] --poamId [value] --milestoneId [value] --description [value] --scheduledCompletionDate [value]
16
+ bundle exec exe/emasser post milestones update [-s, --systemId] <value> [-p, --poamId] <value> [-m, --milestoneId] <value> [-d, --description] <value> [c, --scheduledCompletionDate] <value>
@@ -2,4 +2,4 @@ Remove one or many poa&m items in a system
2
2
 
3
3
  Example:
4
4
 
5
- bundle exec exe/emasser delete poams remove --systemId [value] --poamId [value]
5
+ bundle exec exe/emasser delete poams remove [-s, --systemId] <value> [-p, --poamId] <value>
@@ -1,13 +1,13 @@
1
1
  Endpoint request body parameters/fields
2
2
 
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
- sourceIdentVuln 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.
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
- cci String [Optional] CCI associated with the test result.
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
- isInherited String [Read-Only] Indicates whether a POA&M Item is inherited.
36
- reviewStatus string [Read-Only] Values include the following options: (Not Approved, Under Review, Approved)
37
- extensionDate Date [Read-Only] Value returned for a POA&M Item with review status "Approved" and has a milestone
38
- with a scheduled completion date that extends beyond the POA&M Item’s scheduled completion date.
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 [value] --status [value] --vulnerabilityDescription [value] --sourceIdentVuln [value] --pocOrganization [value] --resources [value]
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 Data Type Details
3
+ Field Data Type Details
4
4
  -------------------------------------------------------------------------------------------------
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
- sourceIdentVuln 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.
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] Optionally used in PUT to delete milestones when updating a POA&M
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
- cci String [Optional] CCI associated with the test result.
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's impact.
52
+ impactDescription String [Optional] Include description of Security Controls 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
- isInherited String [Read-Only] Indicates whether a POA&M Item is inherited.
40
- reviewStatus string [Read-Only] Values include the following options: (Not Approved, Under Review, Approved)
41
- extensionDate Date [Read-Only] Value returned for a POA&M Item with review status "Approved" and has a milestone
42
- with a scheduled completion date that extends beyond the POA&M Item’s scheduled completion date.
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 [value] --poamId [value] --status [value] --vulnerabilityDescription [value] --sourceIdentVuln [value] --reviewStatus [value]
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: