This Slackbot talks to AlienVault OTX and will return recently published security alerts and indicators of compromise.
- Visit this link to sign into Slack and authorize the Threat Intel Platform slackbot in your channels.
- Either direct message @ATIPbot or invite it to one of your channels.
- Say
@ATIPBot help
for a list of supported commands
This Slackbot app is based off the very convenient Botkit scaffolding. The code was cloned from https://github.com/howdyai/botkit-starter-slack. Registering a Slack app with a given workspace requires a fair amount of configuration within the Slack API, specifically:
- Creating a bot user account
- Enabling OAuth registration with a callback URL
- Enabling event subscriptions with a callback URL
- Subscribing to particular events
Additionally, the callback URL requires that this Slackbot be hosted publicly. Given these configuration and hosting needs, it seemed easier to set them up once, and let you install the app to quickly take advantage of the bot functionality in your Slack channels.
If you do want to run this Slackbot yourself, you'll need a public hosting solution. Heroku is most convenient, and you can be up and running easily. AWS has a free tier too. Glitch.com is a quick and easy option, but doesn't seem to support git submodules that well. Once you've picked your hosting environment:
- Clone this repo.
cd tipbot
git submodule init
git submodule update
npm install
- Follow these excellent instructions from Botkit on configuring your Slack App.
- Update your
.env
file with your Slack App's client ID, client secret, AlienVault OTX token, and port.- If you use Heroku as your hosting provider, this can also be done with the Heroku CLI via
heroku config:set
.
- If you use Heroku as your hosting provider, this can also be done with the Heroku CLI via
node .
- Browse to
http://your-url:your_port/login
- Stub out OTX library, so tests don't hit the network, and assertions can be more robust/deterministic
- Add Travis
- Add 'help' command
- Format pulse responses
- Format IOC responses
- Add command to get latest pulses posted to OTX (no search term needed)
- Output a response to slack if nothing is returned by OTX