Slackurity is a Slack bot which promotes Defense in Depth/Zero Trust security practices by providing a simple way for users to upload and share files via Google Drive.
Slack is a great tool for communication and collaboration, but it's not very secure. In addition, Slack does not provide many tools for a security team to monitor or control the flow of information and files.
Unlike Slack, Google Drive is a secure, enterprise-ready file sharing platform. It provides a number of features that Slack does not, including:
- Secure auth session management (SSO, MFA, etc.)
- Granular access control
- Audit logging, reporting, and Data Loss Prevention (DLP)
- File versioning and retention policies
Slacks benefit is that it is easy to use and provides a familiar interface. Slackurity aims to provide the same benefits of Slack, while also providing the security benefits of Google Drive.
Slackurity uses the Slack BoltJS framework to create a Slack bot that listens for messages in a Slack channel. When a user uploads a file to Slack, Slackurity will ask the user if they want to upload the file to Google Drive. If the user replies "yes", Slackurity will upload the file to Google Drive and share it with the user and the channel.
Slackurity uses the Google Drive API to authorize the user and upload files to Google Drive.
- Create a new Slack App in the Slack API Console
- Add the following OAuth scopes to the Slack App:
channels:read
chat:write
files:read
files:write
groups:read
im:read
mpim:read
users:read
users:read.email
- Install the Slack App to your workspace
- Copy
secrets/slack.keys.example.json
tosecrets/slack.keys.json
and replace the values with your credentials
- Create an OAuth Consent Screen in the Google Cloud Console
- Create a new OAuth Client ID in the Google Cloud Console
- Download the OAuth Client ID credentials file and save it as
secrets/oauth2.keys.json
- Create a new Postgres database
- Copy
secrets/pg.keys.example.json
tosecrets/pg.keys.json
and replace the values with your credentials