Coder Social home page Coder Social logo

govready / govready-q Goto Github PK

View Code? Open in Web Editor NEW
169.0 25.0 50.0 30.8 MB

An open source, self-service GRC tool to automate security assessments and compliance.

Home Page: https://q.govready.com

License: Other

Python 49.87% HTML 43.26% Shell 1.42% JavaScript 4.93% CSS 0.47% Dockerfile 0.05%

govready-q's Introduction

CircleCI

GovReady-Q Compliance Server

The GovReady-Q Compliance Server is an open source GRC platform for highly automated, user-friendly, self-service compliance assessments and documentation. It's perfect for DevSecOps.

GovReady-Q solves the painful compliance bottleneck of needing months to authorize applications that deploy and redeploy in minutes.

Documentation

Visit our Documentation at govready-q.readthedocs.io.

Read What You Most Need to Know About GovReady-Q.

If you have questions about if hosted version, email [email protected].

Support

Join our mailing list and stay informed of developments.

Security

Send email to [email protected] to report a security issue.

Noteworthy

GovReady-Q is open source and incorporates the emerging NIST OSCAL and OpenControl data standard for reusable compliance content.

License / Credits

This repository is licensed under the Apache 2.0.

govready-q's People

Contributors

alexanderward avatar azharem avatar bama4 avatar bradh avatar cityinohio2019 avatar dav1dv avatar davidpofo avatar dependabot[bot] avatar govreadydeploy avatar gregelin avatar heathersoron avatar jlyon avatar joshdata avatar ken5scal avatar kerryrm avatar mguelfi avatar omarabed15 avatar pburkholder avatar peterkaminski avatar pyup-bot avatar sergiojfalcon avatar t-s avatar terwilligergreen avatar thejuliekramer avatar tom-camp avatar ward438 avatar woodt avatar yodart avatar ypcrumble avatar ztzerhouni avatar

Stargazers

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

Watchers

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

govready-q's Issues

Store some or all answers encrypted in database

It would be very nice to be able to encrypt answers in the database. Perhaps all answers are encrypted. Or perhaps only some answers (and conversations) are optionally encrypted in the database.

Add checkbox question type

Need to support checkbox answer type. Support checkbox with requirement of check only one option, check multiple, or check a specified number of options.

Should newly invited user have to go through profile module?

When a user is invited to a question or invited to edit a module, should the new user have to fill out user profile module before being brought to the question and/or module?

Or should the user answer question and then on next login be sent to the profile module?

Have multiple users watch/follow questions being answered

As a FISMA (emerging) expert and the point person for compliance on a project, I am likely to want to lead my colleagues through a module together while on a conference call. That way I can fill out the form while my colleagues collaborate in realtime. I want my colleagues to be able to follow along as I fill out the module having their screens update as answer questions.

Example: Security Impact Worksheet from NIST SP 800-128

This is an interesting example of a potential module. This doc, "Guide for Security-Focused Configuration Management of Information Systems" has worksheet in Appendix I, page I-5, I-6 "Attachment 1 Security Impact Worksheet".

These are questions team should be asking itself, according to NIST, when it looks at making changes. The questions are organized by Security family. How could this be made into a module? Should it be made into more than one module?

There are also flow diagrams toward end of publication.
http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-128.pdf

SC-7 Boundary Protection

SC-7 has good examples for modules. SC-7 (9)

The information system:
SC-7 (9)(a)
Detects and denies outgoing communications traffic posing a threat to external information systems; and
SC-7 (9)(b)
Audits the identity of internal users associated with denied communications.

Create module for IA-5 (7)

AUTHENTICATOR MANAGEMENT | NO EMBEDDED UNENCRYPTED STATIC AUTHENTICATORS

The organization ensures that unencrypted static authenticators are not embedded in applications or access scripts or stored on function keys.

Supplemental Guidance: Organizations exercise caution in determining whether embedded or stored authenticators are in encrypted or unencrypted form. If authenticators are used in the manner stored, then those representations are considered unencrypted authenticators. This is irrespective of whether that representation is perhaps an encrypted version of something else (e.g., a password).

Invitation link joins active user session even if invite is to different user

Recreate issue.

  1. Login as user A on laptop and invite user B to a module.
  2. Accept invite as new user B on mobile device. (Looks good on mobile.)
  3. As user B on mobile device, invite new user C to take over module.
  4. Accept invite to user C in same browser as logged into Q as user A.
  5. Error: User A is assigned to be editor of module even though invite was sent to user C.

Support notification feature

As a user, I want to be notified of relevant updates to the modules and questions I am doing or am contributing.

Two types of notifications:

  • stored notifications like GitHub notifications that I can visit when I log in and see what has been happening
  • realtime desktop notifications that tell me X just happened

Remove technical debt associated with mg.govready.com

Temporarily assigned an A record on DigitalOcean for mg.govready.com resolving to 107.170.66.210 (the q.govready.com server at time of this ticket) in order for Josh's Mail-in-a-Box to accept mail from GovReady's use of mailgun service.

Need to correct this record at some point.

show who is on a project team

as an admin, I want to see who I've invited and who is a member

as a member, I want to see who the other members are

as a member, I want to see that I am a member of the project team

Like github.

Indicating a module can only be completed once

Eventually, some modules can only be completed once and not have multiple instances. The module can be "reset" to empty and started again, but the module that can only have one instance per system can only have one instance per Information System.

add a multiple-module question

Like the module question type, but where the answer is an array of tasks that complete that module, rather than a single one.

e.g. a Points of Contact submodule that answers Who are all of your points of contact?

write tests

  • unit tests for question logic
  • functional tests for site operations

Support for two/multiple document templates for a module

Is there any reason not to support two (or more) document templates per module? Each would show up with its own tab at completion of module.

The reason to support two or more templates is to continue to have the simple question and answer document while also generating official text using proper terms of art that even has imputed statements.

what happens when a user does not know how to answer a question

Josh says: Not being able to skip pushes us to think about the question design. If the user gets to a confusing question, it means we didn't ask the right questions before hand. Like a pre-question that's yes/no about whether they are the right person to ask the next question.

Greg says: But we can't anticipate, and we will make mistakes in our question design, and so we have to handle the use case where a user really doesn't known.

  • Answering with some sort of null/NA.
  • Mark a question as not-sure.
  • Skipping a question.
  • Going back to a previous question and answering it differently.
  • Skip but you only get three passes. That's nice for forcing modules to not be that bad. Also makes sure users are really trying.
  • Having a way to pass is a way to prevent users from putting bad data into form fields like "I don't know."

Integrate with Slack

Need to specify how integration might work.

Some ideas:

  • report when a module is started/stopped
  • invite people via messages in slack instead of email
  • link a question to slack easily.
    • select a channel and push a question into slack where question is displayed in slack
    • question is displayed as a sidebar in slack?
    • linking to a question from slack displays the question itself in slack

Prevent application crash when module changes compared to questions in database

Problem

The application will crash if a module question is changed or removed, or a module is removed, when answers for previous version of module/question exist in database.

We need to be able to develop modules iteratively. It is also likely that a module could change over time.

During the development and testing stage of the app, we want the ability to rapidly evolve modules. So crashing the application is a bad thing.

Consideration

Of course, changing a module after answers to that module have been stored in the database raises a number of issues:

  • Shouldn't answers be considered relatively permanent?
  • Are users suppose to update answers to updated modules?
  • Do we need to handle versioning of modules?

Proposed Solution

Copy current module YAML into a database table for storing instances of the module YAML in text field and permanently link the answers to the instance/version of YAML in the database instead of the module YAML on the file system.

!. Add a x.x.x version number parameter to each module's YAML
2. Have a policy of using semantic versioning for tracking extent of modification of module
3. Create a table for instances of module YAML. Fields would be module.unique_id, module.version, module.yaml, create_date.
4. When a module is started, check to see if current version of module YAML exists in YAML instance table. Link newly started task instance of that module to the YAML in the database table and always use the YAML of the module stored in the database for processing the task instances.
5. If the current version of the module YAML does not exist in the YAML instance table, create a record for that version of the module YAML and link the newly created module task to that instance.

Reference {{project}} within questions

As an author of modules, I want to be able to incorporate the name of the project (e.g., name of application) inside the questions to make the question more clear.

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.