GreyNoise Intelligence · Arazzo Workflow

GreyNoise Community To Timeline

Version 1.0.0

Community-check an IP, escalate noisy ones to context, then chart activity.

1 workflow 1 source API 1 provider
View Spec View on GitHub SecurityThreat IntelligenceCybersecurityIP ReputationVulnerability ManagementNetwork TelemetrySOC AutomationPublic APIsArazzoWorkflows

Provider

greynoise

Workflows

community-to-timeline
Community check then context then timeline for noisy IPs.
Uses the Community API to detect noise, escalates noisy IPs to the full context, and when the IP has been seen retrieves its activity timeline.
3 steps inputs: apiKey, days, field, ip outputs: actor, noise, timeline
1
communityCheck
getCommunityIP
Query the Community API to determine whether the IP is internet noise.
2
fullContext
V3IP
Retrieve the full IP context and confirm the IP was observed by the sensor network before pulling its timeline.
3
timeline
getIPTimelineFieldSummary
Retrieve the IP's noise activity timeline summary for the chosen field over the requested window of days.

Source API Descriptions

Arazzo Workflow Specification

greynoise-community-to-timeline-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: GreyNoise Community To Timeline
  summary: Community-check an IP, escalate noisy ones to context, then chart activity.
  description: >-
    A three-stage escalation that starts cheap and ends detailed. The free
    Community API first reports whether an IP is internet noise; only noisy IPs
    proceed to the full IP context, which confirms the IP was actually observed
    before the workflow charts its noise activity timeline. Every step spells
    out its request inline so the flow can be read and executed without opening
    the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: greynoiseApi
  url: ../openapi/greynoise-openapi.yml
  type: openapi
workflows:
- workflowId: community-to-timeline
  summary: Community check then context then timeline for noisy IPs.
  description: >-
    Uses the Community API to detect noise, escalates noisy IPs to the full
    context, and when the IP has been seen retrieves its activity timeline.
  inputs:
    type: object
    required:
    - apiKey
    - ip
    properties:
      apiKey:
        type: string
        description: GreyNoise API key passed via the 'key' HTTP header.
      ip:
        type: string
        description: The routable IPv4 address to investigate.
      field:
        type: string
        description: The field to break activity down by in the timeline.
        default: classification
      days:
        type: string
        description: Number of days of timeline data to show.
        default: '7'
  steps:
  - stepId: communityCheck
    description: >-
      Query the Community API to determine whether the IP is internet noise.
    operationId: getCommunityIP
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    - name: ip
      in: path
      value: $inputs.ip
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      noise: $response.body#/noise
      classification: $response.body#/classification
    onSuccess:
    - name: isNoise
      type: goto
      stepId: fullContext
      criteria:
      - context: $response.body
        condition: $.noise == true
        type: jsonpath
    - name: notNoise
      type: end
      criteria:
      - context: $response.body
        condition: $.noise == false
        type: jsonpath
  - stepId: fullContext
    description: >-
      Retrieve the full IP context and confirm the IP was observed by the
      sensor network before pulling its timeline.
    operationId: V3IP
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    - name: ip
      in: path
      value: $inputs.ip
    - name: quick
      in: query
      value: false
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      seen: $response.body#/internet_scanner_intelligence/seen
      actor: $response.body#/internet_scanner_intelligence/actor
    onSuccess:
    - name: observed
      type: goto
      stepId: timeline
      criteria:
      - context: $response.body
        condition: $.internet_scanner_intelligence.seen == true
        type: jsonpath
    - name: notObserved
      type: end
      criteria:
      - context: $response.body
        condition: $.internet_scanner_intelligence.seen == false
        type: jsonpath
  - stepId: timeline
    description: >-
      Retrieve the IP's noise activity timeline summary for the chosen field
      over the requested window of days.
    operationId: getIPTimelineFieldSummary
    parameters:
    - name: key
      in: header
      value: $inputs.apiKey
    - name: ip
      in: path
      value: $inputs.ip
    - name: field
      in: query
      value: $inputs.field
    - name: days
      in: query
      value: $inputs.days
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      results: $response.body#/results
      firstSeen: $response.body#/metadata/first_seen
  outputs:
    noise: $steps.communityCheck.outputs.noise
    actor: $steps.fullContext.outputs.actor
    timeline: $steps.timeline.outputs.results