Giter Club home page Giter Club logo

trades's Introduction

TRADES Tool

TRADES Tool is a model-based threat and risk assessment tool for the design of systems, developed by Israel Aerospace Industries and other contributors. It is based on the TRADES methodology (see [1],[2]).

Check the releases section for the most up-to-date version of TRADES Tool as a stand-alone modeling workbench.

Documentation is available at the respective folder.

[1] Shaked, A. (2023). A model-based methodology to support systems security design and assessment. Journal of Industrial Information Integration, 100465. https://doi.org/10.1016/j.jii.2023.100465

[2] Shaked, A. and Reich, Y. (2021). Model-based Threat and Risk Assessment for Systems Design. In Proceedings of the 7th International Conference on Information Systems Security and Privacy - ICISSP, ISBN 978-989-758-491-6; ISSN 2184-4356, pages 331-338. DOI: 10.5220/0010187203310338 https://www.scitepress.org/Papers/2021/101872/101872.pdf

How to set up an environment

Java

The project is develop using Java 11. So you need to have a compliant JRE/JDK installed and set up in your eclipse environment.

Tooling

Eclipse

Download the Eclipse version (at least 2020-06 to ease the installation of other tools).

Install the following components (some might be already be installed) from the main repository ( http://download.eclipse.org/releases/2020-06):

  • Accelo
  • Ecore Diagram Editor (SDK)
  • EMF - Eclipse Modeling Framework SDK
  • Graphical Modeling Framework (GMF) Notation SDK
  • Graphical Modeling Framework (GMF) Runtime SDK
  • XText Complete SDK
  • Xtend IDE
  • Eclipse Java Development Tools (JDT)
  • Plug-in Development Environment (PDE)

From other update sites:

Java

The project is developed using Java 11. So you need to have a compliant JRE/JDK installed and set up in your eclipse environment.

Maven

You need an installation of Maven. To avoid any problem we recommend a version >= 3.6.3 and that the java version used by Maven to be 11 or above.

Set up

Build and download dependencies

Before importing the projects in an Eclipse workspace follow the instruction from /dsm.oscal.ext/readme.adoc. Some of the required libraries are not yet available in Maven central and need to be built locally.

Then, run mvn clean compile in /releng/dsm.TRADES.parent folder. This command will automatically import/download the required dependencies in way that eclipse bundles can use them.

Set up the workspace

  • Set up a Java 11 jre/jdk in eclipse
  • Set up eclipse compiler to Java 11
  • Import all projects
  • Load the target plaform /dsm.TRADES.parent/tp/dev.target

At this point all projects should compile.

Run

Create an Eclipse Application run configuration and select the product dsm.TRADES.branding.product

How to build

Run mvn clean verify in /releng/dsm.TRADES.parent.

trades's People

Contributors

adaussy avatar ash-systems avatar lredor avatar tairlo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

trades's Issues

Write a user documentation

A documentation should be written describing all the feature available in TRADES.

This documentation should be available inside the the Eclipse RCP platform and in the Github website

Sirius version

What is the latest Sirius version support for table representations?

The application “Trades.app” can’t be opened on macOS Catalina

The app Trades_2.5.2.202103110953-macosx.cocoa.x86_64 can’t be opened on macOS Catalina 10.15.7 (19H1030) with the following message on the system logs: "Could not find and/or execute program specified by service: 13: Permission denied: /Applications/Trades.app/Contents/MacOS/trades"

[OSCAL] Offera way for users to enter values for the parameters used in documentation

The parameters are used in an OSCAL catalog to give the user the opportunity to customize the documentation.

This issues aims to provide a way to fill those values.

Using property view

When selecting an OSCAL item, the user should be able to define value for the parameters

When Drag and Dropping an OSCAL

When drag and droping control into a analisys a dialog should be opened offering to the user a way to fill missing value for parameters.

This issues does not aim to support all the complex OSCAL mecanism for properties: choice, select etc.. It is only here to handle simple cases.

Re-import TRADES catalog

Current behavior:
The user import TRADES catalog to his project and uses several threats/controls on his analysis.
Then the user makes changes in the catalog source.
The user need to delete the catalog in order to re-import it,

User story (behavior required) :
The user import TRADES catalog to his project and uses several threats/controls on his analysis.
Then the user makes changes in the catalog source.
The user re-import the same TRADES catalog.
The threats and controls that are already used in the analysis remain linked to the catalog.

DSL evaluation for TRADES - please take a look

Hello, greetings from the software engineering group from Beihang University, China. We have been working on the evaluation of Domain Specific Modeling Languages (DSMLs ), the main purpose is to find out the flaws of the design of the DSML. To test our evaluation framework, we evaluated your software design, mainly based on your ecore and odesign files, and found out that even though the overall quality of your software design is very good, there still exists some minor problems. The details are as follows:

rule-based evaluation

Firstly, we did some rule-based evaluation, mainly focusing on the graphic part.

Evaluation of Semiotic Clarity

We've checked your odesign file according to Goodman's theory of symbols[Goodman N. Languages of Art: An Approach to a Theory of Symbols[M]. Hackett publishing, Indianapolis, 1976.], and there are some minor problems that can decrease the semiotic clarity of your design as follows:

  1. Excess

    There are some graphic symbols in your design that does not represent any of the elements of your language.

    • TRADES\bundles\dsm.oscal.design\icons\add.png
    • TRADES\bundles\dsm.oscal.design\icons\edit_template.png
    • TRADES\bundles\dsm.oscal.design\icons\folderType_filter.png
  2. Deficit Elements

    There are some elements in your design that are not represented by any graphic symbols.

    Certainly, we know that some elements do not need to be assigned symbols to, but we believe it is best to check whether these elements really do not need symbols or they were just overlooked.

    • EEFExtHTMLRendererDescription
    • EEFExtMarkdownWidget
    • Group
    • ParameterConstraint
    • ParameterConstraintTest
    • ParameterGuideline
    • ParameterSelection
    • Address
    • BackMatter
    • BackMatterResource
    • Base64
    • Base64Type
    • ControlOwner
    • DateTimeType
    • DateTimeWithTzType
    • DateType
    • DateWithTzType
    • DocumentId
    • DocumentationComputer
    • ElementWithClazz
    • ElementWithId
    • ElementWithRemarks
    • ElementWithValue
    • ExternalId
    • Hash
    • IpV4AddressType
    • IpV6AddressType
    • LinkOwner
    • Location
    • MarkupLineType
    • MarkupMultilineType
    • OscalElement
    • ParameterOwner
    • PartOwner
    • Party
    • PropertyOwner
    • ResourceCitation
    • ResourceRlink
    • ResponsibleParty
    • ResponsibleRole
    • Revision
    • Role
    • TelephoneNumber
    • UUIDElement
    • UriReferenceType
    • UriType
    • UuidType
    • ExtHTMLRendererDescription
    • ExtMarkdownDescription
    • AssessmentENUM
    • AffectedENUM
    • threatTypeENUM
    • ScoreSystem
    • NamedElement
    • ExternalThreat
    • ExternalElement
    • ImpactConfiguration
    • RGBColor
    • ExternalControl
    • ThreatsOwner
    • ControlOwner
    • AbstractControlOwner
    • ControlStatusENUM
    • AbstractThreatOwner
    • IThreatDefinition
    • IControlDefinition
    • ICatalogDefinition
    • IMitigationLink
    • ColoredElement
    • IElementWithSource
    • ElementWithId

LLMS-based evaluation

Secondly, we did some LLMS-based evaluation, mainly focusing on the model part. Generally speaking, we try to make LLM act as a domain expert to provide multidimensional evaluations of your language design.

Model Completeness

We give your ecore design to LLM and ask the LLM to guess which domain your language is designed for. And then we ask LLM to add possible missing elements to your language (perhaps not taken into account in the first version of the design, but can be considered for inclusion in future versions). The results are as follows:

Based on the meta models you provided and their relationships, these models appear to belong to the field of information security, particularly those related to risk assessment, threat modeling, and security control. Next, I will supplement some key meta models and their relationships that may be lost according to the required format.

Element:

Vulnerability: description; Mitigation;
Risk: level; Description; Likelihood; Impact;
RiskAssessment: methodology; AssessmentDate; Assessor;
Security Requirement: category; Description;
Security Policy: description; Title;
MitigationStrategy: description; Effectiveness;
Incident Response Plan: procedure; ResponsibleParty;
Security Standard: standardName; Version; PublicationDate;

Relationship:

Vulnerability (1)<- effects ->Component (n)
Risk (1)<- identifiedIn ->Component (n)
Risk (1)<- associated With ->Vulnerability (n)
RiskAssessment (1)<- evaluations ->Risk (n)
Security Requirement (1)<- addresses ->Risk (n)
Security Requirement (1)<- derived From ->Security Policy (1)
MitigationStrategy (1)<- initiatives ->Vulnerability (n)
Component (1)<- compliesWith ->Security Standard (n)
Control (1)<- elements ->Security Requirement (n)
Incident Response Plan (1)<- activesInResponse To ->Incident (n)
Party (1)<- assignedResponsibilityFor ->MitigationStrategy (n)

These supplements reflect a structured approach to analyzing, responding to, and managing information security risks while ensuring compliance with specific security policies and standards. It covers the complete process of identifying threats and vulnerabilities, planning and implementing corresponding mitigation measures, and establishing accident response plans and security requirements.

We are not sure if these issues actually constitute a problem, the decision to fix them or not is still up to your team, looing forward to your respond, thanks!

M2doc

Document generation bug - Error while generating a report
image001

OSCAL Problem

When trying to generate a version, there is an OSCAL related problem reported.
It seems like "import gov.nist.secauto.metaschema.datatypes.DataTypes" in OscalDataTypeHandlerGenerator.xtend fails.

[ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:2.3.0:compile (default-compile) on project dsm.oscal.ext: Compilation failure: Compilation failure:
[ERROR] C:\Users\scmas9\git\TRADES\bundles\dsm.oscal.ext\xtend-gen\dsm\oscal\ext\ItemProviderGenerator.java:[90]
[ERROR] Files.writeString(targetPath, this.generateBaseClassContent(genClass, packageName, baseCustomClassName, imagePath),
[ERROR] ^^^^^^^^^^^
[ERROR] The method writeString(Path, String, StandardOpenOption, StandardOpenOption) is undefined for the type Files
[ERROR] C:\Users\scmas9\git\TRADES\bundles\dsm.oscal.ext\xtend-gen\dsm\oscal\ext\ItemProviderGenerator.java:[99]
[ERROR] Files.writeString(customTargetPath,
[ERROR] ^^^^^^^^^^^
[ERROR] The method writeString(Path, String, StandardOpenOption, StandardOpenOption) is undefined for the type Files
[ERROR] C:\Users\scmas9\git\TRADES\bundles\dsm.oscal.ext\src\dsm\oscal\ext\MetaschemaToEcoreApplication.java:[37]
[ERROR] .transform(List.of(//
[ERROR] ^^
[ERROR] The method of(String, String, String) is undefined for the type List
[ERROR] C:\Users\scmas9\git\TRADES\bundles\dsm.oscal.ext\src\dsm\oscal\ext\MetaschemaToEcoreApplication.java:[49]
[ERROR] ), Path.of(args[0]));
[ERROR] ^^
[ERROR] The method of(String) is undefined for the type Path
[ERROR] C:\Users\scmas9\git\TRADES\bundles\dsm.oscal.ext\xtend-gen\dsm\oscal\ext\OscalDataTypeHandlerGenerator.java:[68]
[ERROR] _xblockexpression = Files.writeString(file, this.generateClassContent(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);
[ERROR] ^^^^^^^^^^^
[ERROR] The method writeString(Path, String, StandardOpenOption, StandardOpenOption) is undefined for the type Files
[ERROR] C:\Users\scmas9\git\TRADES\bundles\dsm.oscal.ext\src\dsm\oscal\ext\DeleteMetaschemaAnnotApplication.java:[46]
[ERROR] Files.walk(Path.of(args[0])).filter(p -> p.getFileName().toString().endsWith("ecore"))
[ERROR] ^^

Mitigation links are not working properly

The tool from creating a mitigation link from a security control to a threat allocation cannot be applied to threat allocation elements (only to threats). This worked in previous versions.

Update OSCAL to last version

Update Metadata and LibOscal to the last version.

The aim is to use a maven provided jar from LibOscal and not one build locally

Write a test campaign

A test campaign should be written in order to validate that there is regression before a release.

link types

Implement tool to support the link types in the metamodel

Export TRADES control into a an OSCAL Catalog

As a user I want to be able to export an existing TRADES Control into a OSCAL Catalog. In order to do so I:

  • [Optional] Create a new OSCAL Catalog in my project
  • [Optional] Create on or several Group to classifiy my controls
  • Select one or more TRADES Control(s) in my analysis and run the action "Export in OSCAL Catalog"

This action should :

  • Ask me to choose a destination for my control (Catalog or Group)
  • [For each selected control] Create a new OSCAL Control with:
    ** A title = Name of the Control
    ** A Documentation = Description of the control
    ** An ID = ID of the TRADES Control (Mandatory)
  • [For each selected control] Replace in my analysis the existing control by a external control with link to the newly created control.

D&D from trades model

After importing the trades model as a catalog the D&D to the main model doesn't work

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.