Industrial Security Checklist
JavaScript HTML CSS
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

ICS Security Checklist

A web app used to inventorize computing devices in an industrial network, list their potential vulnerabilities and provide recommendations for solving them.


  1. Select a device used in the industrial network
  2. Check all enabled services on this device
  3. Add more devices if necessary
  4. Get a summary of all associated warnings per device and ways to fix them



  • HTML5
  • JavaScript
  • jQuery
  • Bootstrap


  • MySQL server (InnoDB)
  • Node.js
  • Express


The following is a guide on how to install the ICS Checklist application on a Debian 8.x 64bit server. Similar instructions apply to different operating systems.


A standalone MySQL installation can be used, though it is recommended to install phpMyAdmin along with it for easy management.

  1. Install a LAMP stack:
sudo apt-get install apache2 mysql-server php5 php-pear php5-mysql -y
  1. Secure the MySQL installation:
sudo mysql_secure_installation
  1. Install PHPMyAdmin:
sudo apt-get install phpmyadmin
  1. Open the Apache configuration file:
sudo nano /etc/apache2/apache2.conf
  1. Add the following line:
Include /etc/phpmyadmin/apache.conf
  1. Restart the server:
sudo service apache2 restart
  1. You can now manage the database from your browser on the following address:
  1. Login using your MySQL credentials.

  2. Create a new database called ics_checklist and collation utf8_bin.

  3. Download the latest version of the database from the GitHub repository

  4. Select the ics-checklist database and go to Import. Select the downloaded .sql file and import it. You should now see several newly created tables.

Web server

  1. Install Node.js:
curl -sL | sudo -E bash - && sudo apt-get install -y nodejs


  1. Clone the repository:
git clone && cd ics-checklist
  1. Install all dependencies:
npm install
  1. Configure database access by editing following file:
nano routes/api.js
  1. Change the block starting with the mysql.createConnection function according to your MySQL database credentials.

  2. Start the Node.js application:

npm start
  1. Start using the application from your browser on:

Persistent service

Should the web server encounter an error, it will log the exception to the console and exit by default. In order to automatically restart the server after a crash, you can use the forever npm package.

  1. Install forever:
sudo npm install forever -g
  1. Go to your project directory:
cd ics-checklist/
  1. Run the web server using forever:
forever start ./bin/www

You can now access the server like you would normally. Everything will be logged to the forever logs, which you can access using:

forever logs

Should the server crash, forever will restart it.