Giter Site home page Giter Site logo

cylms's Introduction

CyLMS: Cybersecurity Training Support for LMS

CyLMS is a set of tools that adds cybersecurity training support to Learning Management Systems (LMSs). The main function of CyLMS is to convert a custom training content representation provided in YAML format into the SCORM format that is widely supported by LMSs. In addition, CyLMS provides integration with the Moodle LMS, for operations such as dynamically adding and removing training activities to it. CyLMS is being developed by the Cyber Range Organization and Design (CROND) NEC-endowed chair at the Japan Advanced Institute of Science and Technology (JAIST). An overview of CyLMS is provided in the figure below.

Overview of CyLMS

More details about CyLMS are available in the User Guide published on the releases page that also includes the latest stable version of the software. We also provide a sample Moodle virtual machine as a convenient way to quickly start using our software. Note that CyLMS is mainly intended for use in conjunction with the integrated cybersecurity training framework CyTrONE that is also developed by CROND at JAIST.

Setup

The following steps are required in order to set up CyLMS:

  1. Download the next three files from the latest release of CyLMS on GitHub:

    • create scorm template.sh: Self-extractable archive for creating a SCORM package template
    • moodle.tgz: Archive containing the sample Moodle VM that can be used to get started with CyLMS
    • cylms-X.Y.tar.gz (where X.Y is the version number): Source code of CyLMS, available via the link "Source code (tar.gz)"
  2. Extract cylms-X.Y.tar.gz and moodle.tgz into the target directory of your choice, such as /home/cyuser:

    $ tar -xzf cylms-X.Y.tar.gz --directory /target/directory

    $ tar -xzf moodle.tgz --directory /target/directory/cylms

  3. Run the configuration script configure.py to finish setting up CyLMS:

    $ ./configure.py

Utilization

The two main operations supported by CyLMS are introduced below:

  1. Convert training content to SCORM package and add it to LMS

    The command below converts the sample training content file training_example.yml using the configuration file config_file, and adds the generated SCORM package to LMS as "Activity #1: Example questions":

    $ ./cylms.py --convert-content training_example.yml --config-file config_file --add-to-lms 1

    NOTE: The command above will display an activity id which is required for the operation below.

  2. Remove a training session from LMS

    The next command uses the configuration file config_file to remove the created activity. We denote the activity id returned by the add-to-lms operation above by ID, but it should be replaced with the actual value displayed after executing the previous command:

    $ ./cylms.py --config-file config_file --remove-from-lms 1,ID

For further details, including on how to set up cyber range access via VNC so that trainees can access the training enviornment associated to a certain learning content more conveniently, please refer to the User Guide.

Sample files

In addition to the source code, some sample files are included for your convenience:

  • demo quiz.yml and training_example.yml: Example training content files; for details about the training content representation used in CyLMS see the User Guide
  • config_example: Example configuration file with settings regarding the Moodle LMS that is to be managed via CyLMS, such as host name, repository directory, course name, etc. This file needs to be updated if you modify the provided Moodle VM, or you set up your own Moodle host

References

For a research background regarding CyLMS, please refer to the following paper:

  • R. Beuran, D. Tang, Z. Tan, S. Hasegawa, Y. Tan, Y. Shinoda, "Supporting Cybersecurity Education and Training via LMS Integration: CyLMS", Springer Education and Information Technologies, November 2019, vol. 24, no. 6, pp. 3619-3643.

For a list of contributors to this project, please check the file CONTRIBUTORS included with the source code.

cylms's People

Stargazers

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

Watchers

 avatar  avatar  avatar

cylms's Issues

Exception - Cannot access empty property !!!

I am getting the error message below while trying to add example yaml provided with CyLMS to Moodle. Please help.

INFO: cylms.py: Convert training content file '/root/cylms/training_example.yml' to SCORM package.

  • INFO: cnt2lms.py: Process training content file '/root/cylms/training_example.yml'.
  • INFO: cnt2lms.py: Create SCORM package '/root/cylms/training_example.yml.zip'.
  • INFO: cylms.py: Add converted SCORM package '/root/cylms/training_example.yml.zip' to LMS.
  • INFO: lms_mgmt.py: Copy package '/root/cylms/training_example.yml.zip' to
    Target '/var/www/moodledata/repository/training_content/training_content1.zip'.
    training_example.yml.zip 100% 94KB 94.4KB/s 00:00
    CyTrONE Training
    1
    2
  • ERROR: lms_mgmt.py: Error when adding activity for course id '2' section id '1'
    Error message: Default exception handler: Exception - Cannot access empty property Debug:
    Error code: generalexceptionmessage
  • line 71 of /home/csg/moosh/Moosh/Command/Moodle26/Activity/ActivityAdd.php: Error thrown
  • line 297 of /home/csg/moosh/moosh.php: call to Moosh\Command\Moodle26\Activity\ActivityAdd->execute()

!!! Exception - Cannot access empty property !!!

  • ERROR: cylms.py: Failed to add converted SCORM package '/root/cylms/training_example.yml.zip' to LMS.

issuing running configure.py

Hi,

Thank you for creating such project. I'm thrilled by the whole project and looking forward to testing it out.

during my installation process, I'm having issues while running "configure.py" to install CyLMS:

  • Defining the Moodle VM using the updated file '/home/cylms/cylms/moodle.xml'...
    Traceback (most recent call last):
    File "./configure.py", line 380, in
    main(sys.argv[1:])
    File "./configure.py", line 363, in main
    setup_moodle(step_no)
    File "./configure.py", line 307, in setup_moodle
    cmd_output = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
    File "/usr/lib/python2.7/subprocess.py", line 537, in check_output
    process = Popen(stdout=PIPE, *popenargs, **kwargs)
    File "/usr/lib/python2.7/subprocess.py", line 679, in init
    errread, errwrite)
    File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
    OSError: [Errno 2] No such file or directory

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.