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.
routes Add modify recommendations route Aug 30, 2016
views Update Aug 18, 2016

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.