- Setup and configure sys-check system
- Start Analyzer listener service
- Navigate to the cloned repository's analyzer_service directory
cd <cloned sys-check repository path>/analyzer_service/listener - Start listener service
./listener - Target computer's file system's integrity report can be found at
<REPORTS_DIR>/<target computer's ipv4 address>/final-report.json
- Navigate to the cloned repository's scanner directory
cd <cloned sys-check repository path>/scanner - Configure
hostsandfile_scan_linux.ymlfiles as per setup instructions
- NOTE: Target computers must have an ssh server (for example openssh-server) installed and running
- NOTE: Target computers ssh key's fingerprint must be in your
known_hostslist
- Start scanner
ansible-playbook osinfo.yml -i inventory/hosts
- NIST NSRL Unique File Corpus data file
- Reformat data file
cd <cloned sys-check repository path>/upload_known_data/upload_nsrl_data/formatterpython3 ensure_utf8.py <full path to data file> <full path to output file> - Upload data
cd <cloned sys-check repository path>/upload_known_data/upload_nsrl_data./upload_nsrl_data <full path to reformated data file>
- Reformat data file
- Verified data JSON file
cd <cloned sys-check repository path>/upload_known_data/upload_verified_data./upload_verified_data <full path to data file> - Malicious data JSON file
cd <cloned sys-check repository path>/upload_known_data/upload_malicious_data./upload_malicious_data <full path to data file>
- NOTE: Setup only on Unix based OS, preferably Linux
- NOTE: This system was developed for Debian based Linux distributions
- Clone this repository
git clone https://github.com/shmitzas/sys-check.git - Navigate to the cloned repository's analyzer_service directory
cd <cloned sys-check repository path>/analyzer_service - Launch backend setup script
./setup_backend.sh <cloned sys-check repository's full path> - Go to environment configuration file location
cd /home/{user}/.sys-check/.env/ - Fill out data in environment files.
- Example of different type of data formats
- IPv4 address:
DB_HOST=127.0.0.1 - Port:
DB_PORT=5432 Stringtype variables:DB_NAME=sys_check- File path:
REPORTS_DIR=/home/{user}/.sys-check/reports
- IPv4 address:
-
Clone this repository
git clone https://github.com/shmitzas/sys-check.git -
Install dependencies
sudo apt install -y curl gpg gnupg2 software-properties-common apt-transport-https lsb-release ca-certificates -
Install PostgreSQL 13
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpgecho "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" |sudo tee /etc/apt/sources.list.d/pgdg.listsudo apt updatesudo apt install -y postgresql-13 postgresql-client-13 -
Start main cluster
sudo systemctl start postgresql@13-main -
Navigate to the cloned repository's database directory
cd <cloned sys-check repository path>/database -
Copy database creation scripts to /home/{user}/.
cp db_setup.sql.example /tmp/db_setup.sqlcp db_users.sql.example /tmp/db_users.sql -
Fill out
<placeholder text>in/tmp/db_setup.sqland/tmp/db_users.sqlfiles with actual data -
Change to postgres user
sudo su postgres -
Create database and users from setup files
cd /tmppsql -U postgres -f db_setup.sqlpsql -U postgres -f db_users.sqlexit -
Configure database connection limit
- In
/etc/postgresql/13/main/postgresql.conffile underConnection Settingschange: -max_connections = 100from100to200000or any number between 1 and 200000
- Add database user to configuration file
- In
/etc/postgresql/13/main/pg_hba.conffile underDatabase administrative login by Unix domain socketadd:local <database name> <database user> md5
- Configure database to be accessed from outside database server (if needed)
- In
/etc/postgresql/13/main/postgresql.conffile underConnection Settingschange:listen_addresses = 'localhost'from'localhost'to'*'or a specific IPv4 address
- In
/etc/postgresql/13/main/pg_hba.conffile underDatabase administrative login by Unix domain socketadd:- If you do not need any other authorization besides database's user use
trust, otherwise usemd5or other
host <database name> <database user> <specific IPv4 address>/32 trust - If you do not need any other authorization besides database's user use
- Allow database port through your firewall
- Restart main cluster to refresh configuration
sudo systemctl restart postgresql@13-main
- Clone this repository
git clone https://github.com/shmitzas/sys-check.git - Navigate to the cloned repository's upload_known_data directory
cd <cloned sys-check repository path>/upload_known_data - Launch environment setup script
./setup_env.sh <cloned sys-check repository's full path> - Go to environment configuration file location
cd /home/{user}/.sys-check/.env/ - Fill out data in environment files.
- Example of different type of data formats
- IPv4 address:
DB_HOST=127.0.0.1 - Port:
DB_PORT=5432 Stringtype variables:DB_NAME=sys_check
- IPv4 address:
- Clone this repository
git clone https://github.com/shmitzas/sys-check.git - Navigate to the cloned repository's analyzer_service directory
cd <cloned sys-check repository path>/scanner - Run environment setup script
./setup_env.sh - Create a copy of
hosts.exampleand name ithostscd inventory/cp hosts.example hosts - Fill out
hostsfile with necessary data for remote access to target computers - Go to tasks directory
cd <cloned sys-check repository path>/scanner/tasks - Edit
file_scan_linux.ymlfile
- To configure what directories to scan edit
directorieslist variable by adding or removing directories - To configure analyzer server's address edit
service_hostandservice_portvariables to match values defined at/home/{user}/.sys-check/.env/listener.env
- To rebuild analyzer
- Navigate to analyzer directory
cd <cloned sys-check repository path>/analyzer_service/analyzer - Rebuild analyzer
go build analyzer
- Navigate to analyzer directory
- To rebuild listener
- Navigate to listener directory
cd <cloned sys-check repository path>/analyzer_service/listener - Rebuild listener
go build listener
- Navigate to listener directory
- To rebuild report finalizer
- Navigate to report finalizer directory
cd <cloned sys-check repository path>/analyzer_service/report_finalizer - Rebuild report_finalizer
go build report_finalizer
- Navigate to report finalizer directory
- To rebuild known data uploading programs
- Navigate to known data uploading program directory
cd <cloned sys-check repository path>/known data uploading - Rebuild upload_verified_data
go build upload_verified_data - Rebuild upload_nsrl_data
go build upload_verified_data - Rebuild upload_verified_data
go build upload_malicious_data
- Navigate to known data uploading program directory