Industrial Security Checklist
JavaScript HTML CSS
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
node_modules
public
routes Add modify recommendations route Aug 30, 2016
views
README.md Update README.md Aug 18, 2016
app.js
package.json

README.md

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.

Usage

  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

Dependencies

Front-end

  • HTML5
  • JavaScript
  • jQuery
  • Bootstrap

Back-end

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

Installation

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.

Database

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:
localhost/phpmyadmin
  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 https://deb.nodesource.com/setup_4.x | sudo -E bash - && sudo apt-get install -y nodejs

Application

  1. Clone the repository:
git clone https://github.com/alexvanmaele/ics-checklist.git && 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:
localhost:3000

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.