Skip to content

Latest commit

Β 

History

History
59 lines (42 loc) Β· 2.09 KB

File metadata and controls

59 lines (42 loc) Β· 2.09 KB

CheckEngine

CheckEngine was developed as part of our research on the security of integrated browsers. This work is published as Shiny Shells, Rusty Cores: A Crowdsourced Security Evaluation of Integrated Web Browsers at SOUPS 2025. Our instance of CheckEngine remains online to support the ongoing continuation of this study.

CheckEngine relies on a modified version of BrowserAudit.

πŸš€ Setup

  1. Clone this repository:
git clone https://github.com/DistriNet/checkengine.git ./checkengine
  1. Clone our browseraudit fork to ./browseraudit
git clone https://github.com/DistriNet/browseraudit.git ./checkengine/browseraudit

This fork is tailored for seamless integration with CheckEngine.

  1. Fill in all required environment variables:
  • Laravel: Edit ./laravel/.env:

    • APP_URL β€” Public URL of your CheckEngine instance
    • DB_* β€” PostgreSQL credentials
    • TINI_URL_TOKEN β€” API token for tini.fyi URL shortener
  • Let's Encrypt Certbot: Edit ./certbot/letsencrypt/certbot.conf:

    • domains: List all domains/subdomains you control that point to this server
  • BrowserAudit Go Server: Edit ./browseraudit/server.cfg

    • [database] β€” PostgreSQL credentials (must match Laravel)
    • [domain] β€” List all domains/subdomains you control that point to this server
    • geoip2databaseβ€” Path to your GeoLite2 database (see BrowserAudit README)
  1. Build and launch the BrowserAudit server
cd ./checkengine/browseraudit
go build
./browseraudit

The Go server should now be listening on the configured port.

  1. Start the framework with docker compose
cd ./checkengine
docker compose up -d nginx

This launches the nginx, php-fpm and memcache.

🀝 Credits

CheckEngine was mainly developed by Pieter Claeys, with additional contributions from Gertjan Franken.

Many thanks to the creators of BrowserAudit.