diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 16ec15d..f12b64c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,15 +111,8 @@ jobs: uses: actions/download-artifact@v2 with: name: coverage - # - name: Debug downloaded artifacts - # id: debug_downloaded_artifacts - # run: | - # ls -ahl - # - name: Coveralls - # uses: coverallsapp/github-action@master - # with: - # github-token: ${{ secrets.GITHUB_TOKEN }} - - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v4 with: fail_ci_if_error: true # optional (default = false) verbose: true # optional (default = false) + token: ${{ secrets.CODECOV_TOKEN }} diff --git a/samples/negative/development/invalid_ip.json b/samples/negative/development/invalid_ip.json index 6e51e24..4552fa4 100644 --- a/samples/negative/development/invalid_ip.json +++ b/samples/negative/development/invalid_ip.json @@ -11,7 +11,7 @@ "Disclosure": true, "Report": { "ReportClass": "Content", - "ReportType": "ChildAbuse", + "ReportType": "ChildSexualAbuseMaterial", "Date": "2018-02-05T14:17:10Z", "SourceIp": "not an IP", "SourcePort": 9999999, diff --git a/samples/negative/development/invalid_ip2.json b/samples/negative/development/invalid_ip2.json index 7c8dcbf..6a626f5 100644 --- a/samples/negative/development/invalid_ip2.json +++ b/samples/negative/development/invalid_ip2.json @@ -11,7 +11,7 @@ "Disclosure": true, "Report": { "ReportClass": "Content", - "ReportType": "ChildAbuse", + "ReportType": "ChildSexualAbuseMaterial", "Date": "2018-02-05T14:17:10Z", "SourceIp": 45545, "SourcePort": 80, diff --git a/samples/positive/development/childabuse_sample.json b/samples/positive/development/csam_sample.json similarity index 60% rename from samples/positive/development/childabuse_sample.json rename to samples/positive/development/csam_sample.json index 0d2e299..3eda5a3 100644 --- a/samples/positive/development/childabuse_sample.json +++ b/samples/positive/development/csam_sample.json @@ -11,10 +11,10 @@ "Disclosure": true, "Report": { "ReportClass": "Content", - "ReportType": "ChildAbuse", - "Date": "2018-02-05T14:17:10Z", - "SourceIp": "192.0.2.55", - "SourcePort": 80, - "SourceUrl": "http://evil.website.com/index.html" + "ReportType": "ChildSexualAbuseMaterial", + "Date": "2023-08-05T14:17:10Z", + "SourceUrl": "https://evil.hoster.com/csam.zip", + "ReporterNotes": "The zip file requires this password to open: 'example'", + "ReporterCaseID": "CASE-1234-2023" } } diff --git a/samples/positive/development/csam_sample_links.json b/samples/positive/development/csam_sample_links.json new file mode 100644 index 0000000..5bc6e36 --- /dev/null +++ b/samples/positive/development/csam_sample_links.json @@ -0,0 +1,21 @@ +{ + "Version": "development", + "ReporterInfo": { + "ReporterOrg": "ExampleOrg", + "ReporterOrgDomain": "example.com", + "ReporterOrgEmail": "reports@example.com", + "ReporterContactEmail": "contact@example.com", + "ReporterContactName": "Mr. Example", + "ReporterContactPhone": "+ 01 000 1234567" + }, + "Disclosure": true, + "Report": { + "ReportClass": "Content", + "ReportType": "ChildSexualAbuseMaterial", + "ReportSubType": "Link-Sharing", + "Date": "2023-08-05T14:17:10Z", + "SourceUrl": "https://evil.hoster.com/csam.zip", + "ReporterNotes": "The zip file requires this password to open: 'example'", + "ReporterCaseID": "CASE-1234-2023" + } +} diff --git a/schemas/development/childabuse.schema.json b/schemas/development/csam.schema.json similarity index 68% rename from schemas/development/childabuse.schema.json rename to schemas/development/csam.schema.json index 04d5c23..d8a63c5 100644 --- a/schemas/development/childabuse.schema.json +++ b/schemas/development/csam.schema.json @@ -1,8 +1,8 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "https://raw.githubusercontent.com/xarf/schema-discussion/master/schemas/development/childabuse.schema.json", - "title": "XARF CHILDABUSE", - "description": "A format to report child abuse events.", + "$id": "https://raw.githubusercontent.com/xarf/schema-discussion/master/schemas/development/csam.schema.json", + "title": "XARF CHILDSEXUALABUSEMATERIAL", + "description": "A format to report content depicting child sexual abuse.", "allOf": [ { "$ref": "xarf_shared.schema.json#/properties/XarfBase" @@ -24,7 +24,11 @@ }, "ReportType": { "type": "string", - "enum": ["ChildAbuse"] + "enum": ["ChildSexualAbuseMaterial"] + }, + "ReportSubType": { + "type": "string", + "enum": ["Link-Sharing"] } } } diff --git a/schemas/development/openservice.schema.json b/schemas/development/openservice.schema.json index 61b26d9..658bb56 100644 --- a/schemas/development/openservice.schema.json +++ b/schemas/development/openservice.schema.json @@ -35,6 +35,7 @@ "$ref": "xarf_shared.schema.json#/properties/Service" }, { + "type": "object", "required": ["ServiceName"] }, { diff --git a/schemas/development/xarf.schema.json b/schemas/development/xarf.schema.json index 98ce762..d3672c8 100644 --- a/schemas/development/xarf.schema.json +++ b/schemas/development/xarf.schema.json @@ -38,7 +38,7 @@ "$ref": "potentially_compromised_account.schema.json" }, { - "$ref": "childabuse.schema.json" + "$ref": "csam.schema.json" }, { "$ref": "botnet.schema.json" diff --git a/schemas/development/xarf_shared.schema.json b/schemas/development/xarf_shared.schema.json index fcfabd9..7a24406 100644 --- a/schemas/development/xarf_shared.schema.json +++ b/schemas/development/xarf_shared.schema.json @@ -695,7 +695,8 @@ "enum": ["Low", "Medium", "High"] }, "Vector": { - "pattern": "^\\(?AV:[LAN]\\/AC:[HML]\\/Au:[MSN]\\/C:[NPC]\\/I:[NPC]\\/A:[NPC](\\/E:((ND)|(POC)|[UFH])\\/RL:([WU]|(ND)|(OF)|(TF))\\/RC:(C|(ND)|(UC)|(UR)))?(\\/CDP:([NLH]|ND|LM|MH)\\/TD:(ND|[NLMH])\\/CR:(ND|[NLMH])\\/IR:(ND|[LMH])\\/AR:(ND|[LMH]))?\\)?$" + "pattern": "^\\(?AV:[LAN]\\/AC:[HML]\\/Au:[MSN]\\/C:[NPC]\\/I:[NPC]\\/A:[NPC](\\/E:((ND)|(POC)|[UFH])\\/RL:([WU]|(ND)|(OF)|(TF))\\/RC:(C|(ND)|(UC)|(UR)))?(\\/CDP:([NLH]|ND|LM|MH)\\/TD:(ND|[NLMH])\\/CR:(ND|[NLMH])\\/IR:(ND|[LMH])\\/AR:(ND|[LMH]))?\\)?$", + "type": "string" } } }, @@ -705,7 +706,8 @@ "enum": ["None", "Low", "Medium", "High", "Critical"] }, "Vector": { - "pattern": "^CVSS:3.[01]\\/AV:[NALP]\\/AC:[LH]\\/PR:[NLH]\\/UI:[NR]\\/S:[UC]\\/C:[NLH]\\/I:[NLH]\\/A:[NLH](\\/E:[XUPFH]\\/RL:[XOTWU]\\/RC:[XURC])?(\\/CR:[XLMH]\\/IR:[XLMH]\\/AR:[XLMH]\\/MAV:[XNALP]\\/MAC:[XLH]\\/MPR:[XNLH]\\/MUI:[XNR]\\/MS:[XUC]\\/MC:[XNLH]\\/MI:[XNLH]\\/MA:[XNLH])?$" + "pattern": "^CVSS:3.[01]\\/AV:[NALP]\\/AC:[LH]\\/PR:[NLH]\\/UI:[NR]\\/S:[UC]\\/C:[NLH]\\/I:[NLH]\\/A:[NLH](\\/E:[XUPFH]\\/RL:[XOTWU]\\/RC:[XURC])?(\\/CR:[XLMH]\\/IR:[XLMH]\\/AR:[XLMH]\\/MAV:[XNALP]\\/MAC:[XLH]\\/MPR:[XNLH]\\/MUI:[XNR]\\/MS:[XUC]\\/MC:[XNLH]\\/MI:[XNLH]\\/MA:[XNLH])?$", + "type": "string" } } }