Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (16.3%) to scientific vocabulary
Keywords
Repository
Spyderisk web service and web client
Basic Info
Statistics
- Stars: 5
- Watchers: 2
- Forks: 4
- Open Issues: 76
- Releases: 5
Topics
Metadata Files
README.md
The Spyderisk System Modeller software
This is the main software component of the Spyderisk Open Project, a web service which interacts with users both graphically and via an API. The software calculates risk based on models drawn by the user, overlaid on a generic base model of the world.
The overall Spyderisk Project's aim is to:
understand the trustworthiness of socio-technical systems by establishing an international Open Community supporting the research, development, use and support of open, effective, and accessible risk assessment methods, knowledge and tools.
The Spyderisk System Modeller software ("Spyderisk") provides a thorough risk assessment of complex systems, applying our mathematical modelling to your particular problem. This software is the result of 15 years of history in risk assessment of complex socio-technical systems. In 2023 we started publishing everything under open licenses: software source code, ontologies, domain model database, online training, documentation, and academic papers.
As of Mid-2024, the Spyderisk software is in early release, fully available but only working in quite specific circumstances. This README file signposts you to the different ways of trying out Spyderisk and learning about the theory behind it.
If you are a researcher in the area of risk modelling including ontologies of risk, or if you have a specific problem domain you need to solve (particularly in cybersecurity or privacy) then Spyderisk could be for you.
Contents
- Introduction
- Important project information
- What is the Spyderisk System Modeller?
- Your next steps
- Process of using system-modeller
Introduction
This README relates to the system-modeller source tree, which provides both a web service and a web-based user interface. If you only wish to install and run Spyderisk and its web GUI, see instead the Spyderisk Deployment Project. Spyderisk will only build and run on Linux, however, it can be deployed to non-Linux systems using Docker containers. Docker is used to provide a consistent build and test environment for developers and for the continuous integration (CI) system.
This source tree is for:
- those who want to inspect or change the Spyderisk source code
- building and running Spyderisk from its source code
- reading all Spyderisk technical papers in one place
- understanding the generous Spyderisk open licensing
- reading the schema explanation for the core ontology in RDF format which ships with Spyderisk
If you wish to interact programmatically with Spyderisk instead of using the web GUI, the Spyderisk Python adaptor may be for you. This is the way you can call the Spyderisk web service API to create, update, analyse and query system models and integrate other tools. This form of Spyderisk software development is much higher-level than the source code of the Spyderisk application found in this tree. The Java application creates the risk reasoner service which the Python adapter can interrogate.
Important project information
Spyderisk is created by the Spyderisk Contributors, freely available under Open Source terms. Everyone is welcome, noting our basic rules of decent behaviour around Spyderisk, which includes contact details if you want to report a behaviour problem.
We try to make it easy to contribute to Spyderisk whatever your skills.
You can contact us by: * raising a GitHub Issue * Emailing the public spyderisk-dev@jiscmail.ac.uk list, which has archives online. * Privately emailing team@spyderisk.org
What is the Spyderisk System Modeller?
The Spyderisk System Modeller is a generic risk assessment tool. Spyderisk must be supplied with a model of a domain of study, which defines a simplified version of the real world and the different threats and mitigations that apply. The use case we have developed the most relates to cybersecurity analysis, however the Spyderisk team also models risks in other areas including medical devices and privacy. We call a domain model the "knowledgebase", and it uses ontological methods to define objects and relationships in this idealised world.
Spyderisk does not come bundled with any particular knowledgebase; this is configurable at build/deploy time, by putting one or more zip bundles into the "knowledgebases" folder (described below). We publish and maintain our most advanced knowledgebase for complex networked systems in its own GitHub repository.
When using our knowledgebase for cybersecurity analysis, Spyderisk assists the user in following the risk assessment process defined in ISO 27005 from the ISO 27001 of standards. We found the 27k standards do not have all the required concepts for effective risk modelling, and our knowledgebase is significantly richer than what is found in the standards. Since a Spyderisk knowledgebase is based on an underlying ontology, we have created an ontology which is broadly compatible with the ISO27k terminology.
The system-modeller tree has approximately 70k lines of Java code in the core service, and another 20k of Java code for running tests.
Your next steps
If you only want to run a demo of the Spyderisk System Modeller and do not need to do any development, then you need to follow the Installing Docker section of INSTALL.md and then use the Spyderisk Deployment project. We also have two comprehensive online training courses, covering both Risk Assessment and Using Spyderisk.
From here, within this source tree, you may:
Process of using system-modeller
Once installed, whether from the source code in this software tree or via the Spyderisk deployment project, the graphical web user interface guides the user through the following steps:
- The user draws a model of their system model by dragging and dropping typed assets linked by typed relations onto a canvas.
- The software analyses the model, inferring network paths, data flows, client-service trust relationships and much more (depending on the knowledgebase).
- The software analyses the model to find all the threats and potential controls that are encoded in the knowledgebase. The threats are automatically chained together via their consequences to create long-reaching and inter-linked attack graphs and secondary threat cascades through the system.
- The user assigns impact levels to various failure modes on the primary assets only.
- The user can add controls to the model to reduce the likelihood of threats.
- The software does a risk analysis, considering the external environment, the defined impact levels, the controls, and the chains of threats that have been discovered. The threats and consequences may then be ranked by their risk, highlighting the most important problems.
- The user can choose to add or change the controls (back to step 5), to redesign the system (step 1), or to accept the system design.
- The software can output reports describing the system along with the threats, consequences and their risk levels.
The knowledgebase describes threats through patterns of multiple assets along with their context (such as network or physical location), rather than assuming that threats relate to a single asset type. Similarly, methods to reduce threat likelihood ("control strategies") may comprise multiple controls on different assets (for example, both an X509 certificate at a service and verification of the certificate at the client). Knowledgebases may also be designed such that control strategies help solve one problem but exacerbate another (for example, adding a password reduces the likelihood of unauthorised access to a service but increases the likelihood of the legitimate user failing to get in). All this provides a high degree of realism to the analysis.
With a compatible knowledgebase, the software can perform a both long-term risk assessment suitable for when designing a system, and an operational (or "runtime") risk assessment using a short time horizon. Different controls are appropriate in each case (for instance, implementing a new staff security training policy does not help with an ongoing attack, but blocking a network path does). For the operational risk assessment, the state of the system model must first be synchronised with the current operational state (for instance through integration via the API with OpenVAS or a SIEM).
Owner
- Name: SPYDERISK
- Login: SPYDERISK
- Kind: organization
- Email: info@spyderisk.com
- Location: United Kingdom
- Website: https://spyderisk.com
- Twitter: SPYDERISK
- Repositories: 1
- Profile: https://github.com/SPYDERISK
Citation (CITATION.cff)
cff-version: 1.2.0
title: Spyderisk System Modeller
message: >-
Citations for the Spyderisk System Modeller (SSM) should come from this
CFF record (see https://citation-file-format.github.io/)
type: software
authors:
- given-names: The Spyderisk Authors
email: team@spyderisk.org
affiliation: Spyderisk Open Project
identifiers:
- type: doi
value: 10.1234/spyderisk.5678
description: >-
Spyderisk Risk Assessment Software (demo citation
file)
repository-code: 'https://github.com/Spyderisk/system-modeller'
url: 'https://github.com/Spyderisk/'
abstract: >-
This is the GitHub repository for the Spyderisk risk
assessment software tool. This consists of a web frontend
coupled to a backend, and various tools to import and
export risk models and expose modelling functionality via
an API. Academic papers accompany this tool, and other
repositories within the Spyderisk Open Project contain
generic risk models that can be customised using this
software.
keywords:
- risk assessment
- causal modelling
- web service
- cybersecurity risk assessment
license: Apache-2.0
GitHub Events
Total
- Issues event: 33
- Watch event: 1
- Delete event: 21
- Issue comment event: 148
- Push event: 68
- Pull request review comment event: 3
- Pull request review event: 18
- Pull request event: 45
- Create event: 26
Last Year
- Issues event: 33
- Watch event: 1
- Delete event: 21
- Issue comment event: 148
- Push event: 68
- Pull request review comment event: 3
- Pull request review event: 18
- Pull request event: 45
- Create event: 26
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 12
- Total pull requests: 15
- Average time to close issues: 3 months
- Average time to close pull requests: 12 days
- Total issue authors: 8
- Total pull request authors: 4
- Average comments per issue: 3.25
- Average comments per pull request: 0.93
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 6
Past Year
- Issues: 10
- Pull requests: 15
- Average time to close issues: 13 days
- Average time to close pull requests: 12 days
- Issue authors: 7
- Pull request authors: 4
- Average comments per issue: 1.1
- Average comments per pull request: 0.93
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 6
Top Authors
Issue Authors
- mike1813 (18)
- scp93ch (15)
- kenmeacham (12)
- danshearer (6)
- samuelsenior (6)
- panositi (4)
- nets4geeks (2)
- sdm2d11 (2)
- vadimche (1)
- wwaites (1)
- barthasanyi (1)
- sjt1970 (1)
- mjbonifa (1)
Pull Request Authors
- kenmeacham (29)
- dependabot[bot] (19)
- panositi (2)
- danshearer (2)
- mike1813 (2)
- mjbonifa (2)
- barthasanyi (1)
- scp93ch (1)