Daily attack surface monitoring with Slack alerts and Jira tickets

Scan your domains and IP ranges each weekday for risky exposed services, with a prioritized Slack digest and auto-filed Jira tickets for critical new findings.

Agentic Task
CensysSlack BotJiraEngineeringOperationsResearch & MonitoringNotifications & AlertsDaily Digests
PromptCreate

Every weekday at 8:00am, scan my organization's known internet-facing attack surface with Censys, triage what turns up, post a prioritized digest to our security Slack channel, and open a Jira ticket for each critical, newly appeared exposure. Discovery uses the Censys "Run a Search Query" operation, the digest uses the Slack Bot "Send a Message" operation, and the tickets use the Jira "Create Issue" operation.

Censys is a read-only intelligence source, so there is no webhook or poll to subscribe to. Run this on a weekday 8am cron and do the discovery with an in-workflow CenQL search. The Censys connection must have the Organization ID set, because the search endpoint returns a 422 error without it. Scope every query to my known assets. Expose the target domains and IP ranges as a configurable input (default: example.com and 203.0.113.0/24, which should be replaced with the real domains and CIDR ranges).

Search for risky internet-exposed services within those assets: open databases such as Elasticsearch, MongoDB, and Redis; remote-access services such as RDP on port 3389 and VNC; and exposed admin or login panels. For every match, capture the IP address, port, service and software version, and any labels Censys reports.

Review the matches and prioritize them. Rank by severity (an open, unauthenticated database or an exposed RDP endpoint is critical; a login panel on an expected service is lower), and separately judge whether each exposure looks newly appeared versus expected. Treat intentionally public services as expected and flag anything net-new or out of place. Use a configurable severity threshold to decide what warrants a Jira ticket (default: only critical, net-new exposures).

Post one prioritized digest to our security Slack channel with the Slack Bot "Send a Message" operation (default channel #security, configurable). Lead with a one-line summary of counts by severity and how many are net-new, then list findings grouped by severity, each showing the IP, port, service, and whether it is new or expected. Use Slack mrkdwn formatting.

For each finding that meets the ticket threshold, open a Jira issue with the Jira "Create Issue" operation in our security project (configurable). Put the affected IP, port, service and version, severity, and why it looks net-new into the issue summary and description, and set priority to Highest for criticals. File tickets only for net-new exposures so the board is not flooded with services we intentionally keep online, and always include the IP, port, and service so a human can dedupe.

Additional information

What does this prompt do?
  • Checks your known domains and IP ranges every weekday morning for risky internet-exposed services like open databases, remote-access ports, and login panels.
  • Reviews and ranks each finding by how serious it is and whether it looks brand new versus something you expect to be online.
  • Posts a prioritized summary to your security Slack channel so the team sees the day's exposures at a glance.
  • Opens a Jira ticket for every critical, newly appeared exposure, with the affected address, port, and service details.
What do I need to use this?
  • A Censys account, with your Organization ID set so searches run correctly.
  • A Slack workspace and a channel where the security digest should be posted.
  • A Jira project for tracking new security exposures.
  • The list of domains and IP ranges that make up your organization's attack surface.
How can I customize it?
  • Set which domains and IP ranges to monitor.
  • Choose the severity level that opens a Jira ticket (default: only critical, brand-new exposures).
  • Pick the Slack channel for the digest and the Jira project for tickets, and adjust the schedule (default: every weekday at 8am).

Frequently asked questions

What kinds of exposures does this find?
It looks for risky internet-facing services on your known assets, such as open databases (Elasticsearch, MongoDB, Redis), remote-access services like RDP and VNC, and exposed admin or login panels.
How does it decide what deserves a Jira ticket?
The agent ranks each finding by severity and judges whether it looks newly appeared or expected. By default it only files a ticket for critical exposures that look brand new, so your board stays focused on what matters. You can adjust that threshold.
Will it flood us with duplicate tickets?
No. It focuses on new, out-of-place exposures rather than services you intentionally keep online, and it includes the affected address, port, and service on each ticket so duplicates are easy to spot.
Do I need my Censys Organization ID?
Yes. Censys searches require your Organization ID to be set on the connection, otherwise the lookups will not return results.
Can I change when it runs or where it posts?
Yes. You can set the schedule, the Slack channel for the digest, and the Jira project where tickets are created.

Catch risky exposures before attackers do.

Put your attack surface monitoring on autopilot with a daily Slack digest and automatic Jira tickets for critical new findings.