Chrome/Chromium Vulnerability Checker - monitors Chrome releases for CVEs and sends Slack notifications
Project description
Chrome Checker Bot
Chrome Checker Bot (CCBot), also known as Chrome/Chromium Vulnerability Checker. This Python script monitors the Google Chrome release page for any announced vulnerabilities in Chrome/Chromium. It utilizes the Google Chrome Releases RSS feed to fetch the latest updates and checks for security-related content. If security issues are detected, it sends a formatted message to a specified Slack channel using a webhook.
This software was written by Joshua Rogers. For more information, see the blog post.
Installation
Via pip
pip install ccbot-py
Via Docker (Docker Hub)
docker run -e SLACK_WEBHOOK_URL='your_slack_webhook_url' megamansec/ccbot
Via Docker (GHCR)
docker run -e SLACK_WEBHOOK_URL='your_slack_webhook_url' ghcr.io/megamansec/ccbot
From source
git clone https://github.com/MegaManSec/CCBot.git
cd CCBot
pip install .
ccbot
Configuration
Before running the script, ensure you set up the following configurations:
SLACK_WEBHOOK_URL: Set your Slack webhook URL as an environment variable.RSS_URL: Google Chrome Releases RSS feed URL.REFRESH_INTERVAL_SECONDS: Time interval for checking updates in seconds.
Functionality
The script performs the following tasks:
- Fetches the latest entries from the Google Chrome Releases RSS feed.
- Filters entries based on specified tags (
Desktop Update,Stable updates). - Extracts security-related content from the entry's description or the linked URL.
- Formats and sends a Slack message if security issues are detected.
Slack Message Format
The Slack message includes the following information for each security issue:
- Timestamp: Time of the release.
- URL: Link to the release details.
- Security Issues: List of security issues, including severity, CVE number, and description.
Notes
- The script runs indefinitely, periodically checking for updates based on the refresh interval.
- If a security-related article is found without specific CVEs, it still notifies Slack for manual verification.
- The script employs regex patterns for extracting security content, adapting to potential variations in the HTML structure.
Manual Usage
You can run the script in your terminal with the following instructions.
-
Set up a Python virtual environment and install the package:
python3 -m venv venv venv/bin/pip install --upgrade pip venv/bin/pip install .
-
Set up the Slack webhook URL as an environment variable:
export SLACK_WEBHOOK_URL='your_slack_webhook_url'
-
Run the script:
venv/bin/ccbot
Systemd Installation
A Debian-based installation script, install.sh, is provided. When run as root, this script:
- Creates (if necessary) a Python virtual environment in
/opt/ccbot. - Installs the package into that virtual environment.
- Installs and enables a systemd service (
/etc/systemd/system/ccbot.service) that runs ccbot in the background. - Configures logging to
/var/log/ccbot.logand/var/log/ccbot_error.log. - Sets up log rotation in
/etc/logrotate.d/ccbot.
You may optionally pass a single argument to install.sh to define the SLACK_WEBHOOK_URL environment variable used by the script:
sudo ./install.sh "https://hooks.slack.com/services/[...]"
ccbot has been installed, the service is started, and log rotation is set up.
If you don't provide a URL, you can manually edit /etc/systemd/system/ccbot.service later to set or change the webhook URL.
License
This project is licensed under AGPL-3.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ccbot_py-0.1.0.tar.gz.
File metadata
- Download URL: ccbot_py-0.1.0.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76775354eee423ce0e1e9828f8558e362863444f04336b0369b06eced803291f
|
|
| MD5 |
048c192cb612c968f3e213cdb4590205
|
|
| BLAKE2b-256 |
043fb1019c1b3ec5a4c4c85b4e5af62117c8708ebe275abd5b21b3eee3b89043
|
Provenance
The following attestation bundles were made for ccbot_py-0.1.0.tar.gz:
Publisher:
pythonpublish.yml on MegaManSec/CCBot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ccbot_py-0.1.0.tar.gz -
Subject digest:
76775354eee423ce0e1e9828f8558e362863444f04336b0369b06eced803291f - Sigstore transparency entry: 1181325465
- Sigstore integration time:
-
Permalink:
MegaManSec/CCBot@06009a21c64d0057f91c841d3ed076231293e290 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/MegaManSec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pythonpublish.yml@06009a21c64d0057f91c841d3ed076231293e290 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ccbot_py-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ccbot_py-0.1.0-py3-none-any.whl
- Upload date:
- Size: 18.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
624b1eed02ba4b1920de072f2d4e58ed27ff716392f35de23af0c598547c2669
|
|
| MD5 |
21e533ef249b6d221f75a1d3413a6240
|
|
| BLAKE2b-256 |
6264de0f015451291e1ca77ea2cbe4d8f12f0aa30490456f0626a3cbf20dedb2
|
Provenance
The following attestation bundles were made for ccbot_py-0.1.0-py3-none-any.whl:
Publisher:
pythonpublish.yml on MegaManSec/CCBot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ccbot_py-0.1.0-py3-none-any.whl -
Subject digest:
624b1eed02ba4b1920de072f2d4e58ed27ff716392f35de23af0c598547c2669 - Sigstore transparency entry: 1181325475
- Sigstore integration time:
-
Permalink:
MegaManSec/CCBot@06009a21c64d0057f91c841d3ed076231293e290 -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/MegaManSec
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pythonpublish.yml@06009a21c64d0057f91c841d3ed076231293e290 -
Trigger Event:
release
-
Statement type: