Skip to content
This repository has been archived by the owner on Jul 17, 2019. It is now read-only.

RITSPARSA/cyberengine

Repository files navigation

Introduction

ScoringEngine is the combination of a Ruby on Rails web front-end and backend service checks. ScoringEngine is designed to check and score common network services used in "blueteam-redteam-whiteteam" competitions and provide a web interface for teams about their servers and services.

Setup Overview

  • There are many Teams of type white, red, and blue
  • A team can have many Members
  • Teams have many Servers
  • Servers have many Services each defining a protocol (dns, ftp, ssh...) and version (ipv4 or ipv6)
  • Services have many Properties that outline how the Service will be checked
  • Properties include the address, timeout period, options, and random options for checks
  • Services can have many Users that have a username/ password and are randomly selected in checks
  • Services have many Checks that are pass or fail and provide information about the request/response

Rails Frontend

The rails frontend is a fully functional application that can authenticate members and provides them access to their teams servers and services. This allows them to view their current status and position in the competition. Whiteteam members have full access to all parts of the application while blueteam members can only access their own information. Teams can update service user's individually or CSV style.

ScoringEngine Installation Process

Installation Steps on Wiki

Important files

config/initializers/cyberengine.rb

  • Cyberengine configuration file
  • Define application title (Default: ISTS)
  • Define application brand (Default: ISTS)
  • Different team permissions can be setup in this file (E.g: allow username updates)

app/views/static/welcome.html.erb

  • Basic welcome page
  • Should be modified to contain information about competition and sponsors

config/database.yml

  • Database connection setup - default: MySQL - Username: scoringengine - Password: scoringengine

Defaults

  • All defaults are defined under whiteteam. These defaults are used if they are not defined for a team. The most common example is the timeout property which specifies after how many seconds a check should be cancled.
  • Typically answer properties are also defined at the whiteteam level but can be overridden per team. There are two common types of answer properties: full-text-regex and each-line-regex. If either of these match the check is deemed to pass. DNS is one service that does not use this, instead domain answers are defined on a per team level.
  • Majority of checks use unix command line tools such as curl. This is to make it easier to debug. While many could be completly written using a language library, it would be difficult to troubleshoot errors for both blueteams and whiteteam.

License

ScoringEngine is released under the MIT License

About

Cyber competition scoring engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •