Skip to content
This repository has been archived by the owner on Aug 1, 2024. It is now read-only.

Commit

Permalink
Merge pull request #177 from JupiterOne/add-back-rawData
Browse files Browse the repository at this point in the history
add back rawData for vuln and assets
  • Loading branch information
mdaum authored May 17, 2022
2 parents 409ae79 + cee457f commit b6b2af9
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 77 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ and this project adheres to

## [Unreleased]

- bump sdk to pull in new rawData trimming logic
- add rawData back to vulns and assets

## [8.3.7] - 2022-05-10

- remove `output` from the properties of `tenable_vulnerability_finding`
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,12 +38,12 @@
"p-map": "^4.0.0"
},
"peerDependencies": {
"@jupiterone/integration-sdk-core": "^8.13.1"
"@jupiterone/integration-sdk-core": "^8.13.6"
},
"devDependencies": {
"@jupiterone/integration-sdk-core": "8.13.1",
"@jupiterone/integration-sdk-dev-tools": "8.13.1",
"@jupiterone/integration-sdk-testing": "8.13.1",
"@jupiterone/integration-sdk-core": "8.13.6",
"@jupiterone/integration-sdk-dev-tools": "8.13.6",
"@jupiterone/integration-sdk-testing": "8.13.6",
"@types/nock": "10.0.3",
"@types/node-fetch": "^2.3.2",
"dotenv": "^10.0.0",
Expand Down
32 changes: 5 additions & 27 deletions src/steps/vulnerabilities/converters.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,6 @@ import {
import { generateEntityKey } from '../../utils/generateKey';
import getTime from '../../utils/getTime';
import { TargetEntity } from '../../utils/targetEntities';
import {
AssetExportLimitedRawData,
VulnerabilityExportLimitedRawData,
} from '.';

const skippedRawDataSource = {
uploadStatus: 'LIMITED',
uploadStatusReason: 'Raw data currently limited for this entity type',
};

interface KeyAndSize {
key: string;
Expand Down Expand Up @@ -65,14 +56,7 @@ export function createAssetEntity(
}
return createIntegrationEntity({
entityData: {
source: {
...skippedRawDataSource,
aws_ec2_instance_id: data.aws_ec2_instance_id,
azure_resource_id: data.azure_resource_id,
gcp_instance_id: data.gcp_instance_id,
gcp_project_id: data.gcp_project_id,
id: data.id,
},
source: data,
assign: {
_class: Entities.ASSET._class,
_type: Entities.ASSET._type,
Expand Down Expand Up @@ -152,9 +136,7 @@ export function createAssetEntity(
});
}

export function createTargetHostEntity(
data: AssetExportLimitedRawData,
): TargetEntity {
export function createTargetHostEntity(data: AssetExport): TargetEntity {
let targetFilter;

if (data.aws_ec2_instance_id) {
Expand Down Expand Up @@ -309,11 +291,7 @@ export function createVulnerabilityEntity(
}
return createIntegrationEntity({
entityData: {
source: {
...skippedRawDataSource,
cves: vuln.plugin.cve,
asset_uuid: vuln.asset.uuid,
},
source: vuln,
assign: {
_key: generateEntityKey(
Entities.VULNERABILITY._type,
Expand Down Expand Up @@ -364,9 +342,9 @@ export function createVulnerabilityEntity(
}

export function createTargetCveEntities(
data: VulnerabilityExportLimitedRawData,
data: VulnerabilityExport,
): TargetEntity[] {
const { cves } = data;
const cves: string[] | undefined = data.plugin.cve;
return (cves || []).map((cve) => {
return {
targetEntity: {
Expand Down
28 changes: 8 additions & 20 deletions src/steps/vulnerabilities/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ import {
StepIds,
} from '../../constants';
import TenableClient from '../../tenable/TenableClient';
import { AssetExport } from '@jupiterone/tenable-client-nodejs';
import {
AssetExport,
VulnerabilityExport,
} from '@jupiterone/tenable-client-nodejs';
import {
createTargetHostEntity,
createAssetEntity,
Expand All @@ -27,19 +30,6 @@ import {
import { getAccount } from '../../initializeContext';
import { createAccountEntity } from '../account/converters';

export interface VulnerabilityExportLimitedRawData {
cves: string[] | undefined;
asset_uuid: string | undefined;
}

export interface AssetExportLimitedRawData {
aws_ec2_instance_id: string | null;
azure_resource_id: string | null;
gcp_instance_id: string | null;
gcp_project_id: string | null;
id: string;
}

export async function fetchAssets(
context: IntegrationStepExecutionContext<TenableIntegrationConfig>,
): Promise<void> {
Expand Down Expand Up @@ -135,8 +125,7 @@ export async function buildAssetVulnerabilityRelationships(
await jobState.iterateEntities(
{ _type: Entities.VULNERABILITY._type },
async (vulnEntity) => {
const vulnRawData =
getRawData<VulnerabilityExportLimitedRawData>(vulnEntity);
const vulnRawData = getRawData<VulnerabilityExport>(vulnEntity);
if (!vulnRawData) {
logger.warn(
{
Expand All @@ -147,12 +136,12 @@ export async function buildAssetVulnerabilityRelationships(
return;
}

const assetEntity = await jobState.findEntity(vulnRawData.asset_uuid);
const assetEntity = await jobState.findEntity(vulnRawData.asset.uuid);
if (!assetEntity) {
logger.warn(
{
'vuln._key': vulnEntity._key,
'asset.uuid': vulnRawData.asset_uuid,
'asset.uuid': vulnRawData.asset.uuid,
},
'Could not find asset specified by vulnerability in job state.',
);
Expand Down Expand Up @@ -198,8 +187,7 @@ export async function buildVulnerabilityCveRelationships(
await jobState.iterateEntities(
{ _type: Entities.VULNERABILITY._type },
async (vulnEntity) => {
const vulnRawData =
getRawData<VulnerabilityExportLimitedRawData>(vulnEntity);
const vulnRawData = getRawData<VulnerabilityExport>(vulnEntity);
if (!vulnRawData) {
logger.warn(
{
Expand Down
52 changes: 26 additions & 26 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -743,12 +743,12 @@
ajv "^8.0.0"
ajv-formats "^2.0.0"

"@jupiterone/integration-sdk-cli@^8.13.1":
version "8.13.1"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-cli/-/integration-sdk-cli-8.13.1.tgz#870f195808262e5c3846b160921bb16c7c368366"
integrity sha512-tFlum6Lgo7d1TEovgerGnsSGaKUXv6z0SkgjhxZZCde/+CBlAfKIWlKYSg0wMqEGDFYxFrYpxsWUWVaDY/6TkA==
"@jupiterone/integration-sdk-cli@^8.13.6":
version "8.13.6"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-cli/-/integration-sdk-cli-8.13.6.tgz#8be49344830ea6a36320a0fbd6cf6d15c8fd217e"
integrity sha512-kVBG83VSuLgSVzIpZSI2BImPqSa0oY0NQASb8K8gzMSoK4CoHPXtSJq4lrTu/HB5ZOJIzMXtBSbYKOTIzW/6DQ==
dependencies:
"@jupiterone/integration-sdk-runtime" "^8.13.1"
"@jupiterone/integration-sdk-runtime" "^8.13.6"
chalk "^4"
commander "^5.0.0"
fs-extra "^10.1.0"
Expand All @@ -762,22 +762,22 @@
upath "^1.2.0"
vis "^4.21.0-EOL"

"@jupiterone/integration-sdk-core@8.13.1", "@jupiterone/integration-sdk-core@^8.13.1":
version "8.13.1"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-core/-/integration-sdk-core-8.13.1.tgz#bde35abea0570484f4e99eddad3665af5e0e9f59"
integrity sha512-9ZR79pCCyWNoieY7W+kG9QWP0ZSCGsbNn5nbbEYCISUVNR/uCTB1vr2ShSPJpxC2my1zA9jNOOypgjixPNh6Dg==
"@jupiterone/integration-sdk-core@8.13.6", "@jupiterone/integration-sdk-core@^8.13.6":
version "8.13.6"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-core/-/integration-sdk-core-8.13.6.tgz#68741ac15f21eb7a3178158bea19f17d0878a66e"
integrity sha512-NFoAxX9xGcLtiYn7HBA1ooWkxD+yAMtbo9MAkW87527SEUVgBcjTei5bRyaeVhRUiPx6Ufj13Yi0ZCPva9TXUw==
dependencies:
"@jupiterone/data-model" "^0.47.0"
lodash "^4.17.21"
uuid "^8.3.2"

"@jupiterone/integration-sdk-dev-tools@8.13.1":
version "8.13.1"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-dev-tools/-/integration-sdk-dev-tools-8.13.1.tgz#6150a4f06cc1e18e41ff66127b5325902f4d489d"
integrity sha512-VNyrgDL5Q0jKH9MA0YcraIAzWNmcfqPIAMU0hnSnQlgY9XofDYHoohTx2+B55r11fTX9n2pwImaaigs+h3pElg==
"@jupiterone/integration-sdk-dev-tools@8.13.6":
version "8.13.6"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-dev-tools/-/integration-sdk-dev-tools-8.13.6.tgz#05ac1c692ecbce94388efb70ea08c0fc1620f435"
integrity sha512-jY20w+7SBYpHbnXuAeQgsDhqfHVBOuDo82O8PzJa3q6bohtN7EaGCVfvmds26/2tXv2YHsY3AnA7hpY//fYo9A==
dependencies:
"@jupiterone/integration-sdk-cli" "^8.13.1"
"@jupiterone/integration-sdk-testing" "^8.13.1"
"@jupiterone/integration-sdk-cli" "^8.13.6"
"@jupiterone/integration-sdk-testing" "^8.13.6"
"@types/jest" "^27.1.0"
"@types/node" "^14.0.5"
"@typescript-eslint/eslint-plugin" "^4.22.0"
Expand All @@ -793,12 +793,12 @@
ts-node "^9.1.1"
typescript "^4.2.4"

"@jupiterone/integration-sdk-runtime@^8.13.1":
version "8.13.1"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-runtime/-/integration-sdk-runtime-8.13.1.tgz#a18a4488934a3699140461087d1807aecf8421ba"
integrity sha512-Y2/F2ZTzMH82pwiHcq9Bm09itLh9HYSVbo9KMTb/hP4HGgWAmXOR/f1en9jX97aVpwCjUzHSLThhzyaVaa544A==
"@jupiterone/integration-sdk-runtime@^8.13.6":
version "8.13.6"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-runtime/-/integration-sdk-runtime-8.13.6.tgz#402021c9a68ca4d6ac2c231440fb7bb6d2e411a8"
integrity sha512-Xxle9ZTNA18T+Y42BNgJozgMnKpexg6j2YJQwaEDhfR9zDTlgYO1wB+yyiOiQ/nF406I6xiIvBNgaZ4plv+lIQ==
dependencies:
"@jupiterone/integration-sdk-core" "^8.13.1"
"@jupiterone/integration-sdk-core" "^8.13.6"
"@lifeomic/alpha" "^1.4.0"
"@lifeomic/attempt" "^3.0.3"
async-sema "^3.1.0"
Expand All @@ -816,13 +816,13 @@
rimraf "^3.0.2"
uuid "^7.0.3"

"@jupiterone/integration-sdk-testing@8.13.1", "@jupiterone/integration-sdk-testing@^8.13.1":
version "8.13.1"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-testing/-/integration-sdk-testing-8.13.1.tgz#0eb8c9d6edcf59c41d76a53ea62e6de98037202f"
integrity sha512-wDKwHxDS7DQpaiCmQmDD+saF3h5QThGnsmdePZmoBfIcqhymANhpGSe3ADdUclOUAu/YH+KDOeBoIaGGLMuQpQ==
"@jupiterone/integration-sdk-testing@8.13.6", "@jupiterone/integration-sdk-testing@^8.13.6":
version "8.13.6"
resolved "https://registry.yarnpkg.com/@jupiterone/integration-sdk-testing/-/integration-sdk-testing-8.13.6.tgz#20ae5db7d188f3ab50f7599630e092ac5cbe3f18"
integrity sha512-eA5pdYNlXAFIk1cxYOQ85MpaWbD3K95QxeIQP7lUMcO9gWYGbk/6TbdZrPjQP0GNlwfdM21sCowTRMNIJ/pIUQ==
dependencies:
"@jupiterone/integration-sdk-core" "^8.13.1"
"@jupiterone/integration-sdk-runtime" "^8.13.1"
"@jupiterone/integration-sdk-core" "^8.13.6"
"@jupiterone/integration-sdk-runtime" "^8.13.6"
"@pollyjs/adapter-node-http" "^6.0.5"
"@pollyjs/core" "^6.0.5"
"@pollyjs/persister-fs" "^6.0.5"
Expand Down

0 comments on commit b6b2af9

Please sign in to comment.