Giter Site home page Giter Site logo

schemas's People

Contributors

afeld avatar geezyx avatar geramirez avatar gregelin avatar jbarnicle avatar jcscottiii avatar jjediny avatar jmacarthur avatar jokajak avatar mcruzmetrostar avatar mzia avatar openprivacy avatar pburkholder avatar redhatrises avatar shawndwells avatar trevorbryant 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

Watchers

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

schemas's Issues

deprecate the OpenControl schemas?

OSCAL seems to have reached a point of maturity where the format has surpassed the expressiveness and completeness of the OpenControl schemas. I'm sure they're not perfect, but unlike the OpenControl ones, they are actively being worked on. Might be time to thank the OpenControl schemas for their service and indicate they are deprecated, recommending people use OSCAL instead.

Note this does not mean deprecating of the OpenControl brand or community. In fact, without having the baggage of the schemas to (not) maintain, more focus could be put towards tooling or documentation or whatever else.

Thoughts?

cc opencontrol/compliance-masonry#343

Number of missing controls

I tried my hand at building an opencontrol based SSP but am confused on the results. after running compliance-masonry get then compliance-masonry diff <name of my certification> all controls in my certificate are listed under Number of missing controls even though I include them in my component.yaml.

To see if I did something wrong, I cloned down the cg-compliance repo and repeated the two compliance-masonry commands and surprisingly got the same results of all controls missing when diff'ing against FedRAMP-moderate or FedRAMP-low. Finally, I repeated the process against freedonia-compliance for the FredRAMP-low certification but got the desired Number of missing controls: 0 result.

Should cg-compliance be reporting all controls as missing?

As a user, I want to know what inherited controls are still my responsibility

There was some discussion in the 18F Slack, which boils down to the following example:

Suppose you are building System X on top of cloud.gov. Let's take an arbitrary control family, like contingency planning. cloud.gov may have its own contingency plan, but that doesn't mean that System X does. We need a way to indicate what controls (or control family? or control implementation?) family can be inherited and thus take care of the requirement for System X, and which System X is required to fulfill on top of cloud.gov.

@cmc333333 ran into this problem when trying to do gap analysis, almost immediately after setting up an opencontrol.yml in 18F/epa-notice#424:

that leaves only

Number of missing controls: 1
NIST-800-53@SC-12 (1)

When diffing with LATO. does that seem right?

As a user, I want to validate all of my files

Currently, this repository only contains schema validations for components. Assuming we want to keep this repository around, we should have kwalify files for all different files: Standards, Certifications, and opencontrol.yaml.

Trying to make a schema for specifications

I thought I'd try making a schema for standards files (e.g. https://github.com/opencontrol/NIST-800-53-Standards/blob/master/NIST-800-53.yaml)

However, it doesn't seem possible to specify a schema that accepts it; kwalify says that that file is neither a sequence nor a mapping. Upstream activity on Kwalify seems to have stopped. Has anyone tried making this schema before? I realise it's a trivial format and doesn't really need a schema; I'm just doing this an introductory exercise.

Standard way to link to parts of my project

We've been reviewing OpenControl, apologies if I missed something, but is there a standard way to link to other parts of my project? For example, if I am describing my compliance with a control, sometimes I'd like to link part of my project's specification, or a test, or maybe some of the source code. I notice some yaml documents have verification fields with the type TEST; is that part of the standard? We would be happy to contribute some documentation once we have a better understanding.

Also, is there a better place to ask questions that aren't really issues? Do you have a mailing list for OpenControl, for example?

The component "satisfies" map type should accept a "references" property that accepts a sequence of URLs, etc

For each control map under the satifies property, there should be a property called references that takes a sequence of reference maps with name and url properties. This helps to clean up any reference documentation for each control rather than having to include URLs in each control's narrative(s).

For example

satisfies:
  - control_key: AC-1
    covered_by: []
    implementation_statuses:
      - implementation blah
    control_origins:
      - origin blah
    narrative:
      - key: a
        text: |
          Blah
    references:
      - name: 'My doc page'
        url: https://urltomydocpage
    standard_key: NIST-800-53

Be specific when using "certification"

FedRAMP has brought up that "certification" has a specific legal meaning and it doesn't actually apply to what they do. We should potentially restructure what we're calling these things to accommodate the difference.

FedRAMP calls itself a "verification" but since we use that word elsewhere, that could get confusing. A potential solution is aligning with what our NIST colleagues are calling a "profile". I'll be working on this next week.

Close stale issues

There are many issues that are from over 4 years ago; suggest we close the issues that are stale and no longer relevant.

implementation_status needs to allow for multiple values

For some implementations, implementation_status can contain multiple values. Example: FedRamp controls could be both partially implemented and planned.

  • Schema should accept implementation_statuses as an array of string in version 3.0.0
  • Schema should accept implementation_status as a string in versions 2.0.0 and 3.0.0

collect examples of various types

Question- use-case

My team is looking to deploy a library that will be used to tag nist controls to opa evaluation results for visualization in kibana. Came across open control and believe the functionality is there but was hoping someone might be able to spend 20 minutes walking us through the various use cases and determining if ours is in scope. We are hoping to source a library that is able to mutate based on the various compliance products such as fedramp mod, high, irs1075, gdpr etc and apply the correct parameters/impacts. If someone is able, willing to meet we would greatly appreciate it!

Component files does not exist

$ rpm -qa '*masonry*'
compliance-masonry-1.1.5-1.x86_64
$ masonry docs gitbook NIST-SP-800-171r1_all
An error occurred: Component files does not exist

The error message does not help. Which of the yaml files is missing the "files" component? Or am I misreading the error and there are missing "component files".

Consider alternative schema validator to kwalify

In order to ensure opencontrol schema validation is flexible and adapted to newer tooling, consider an alternative schema validation from kwalify.

Not that there's anything inherently wrong with kwalify, but it's ~11+ years old since it's last release (https://github.com/kvs/kwalify + http://www.kuwata-lab.com/kwalify/), and there may be alternative schema descriptors and validations which are a bit more widely-used nowadays than kwalify (maybe*. and it doesn't mean others would be any 'easier' or 'better' anyway).

some considerations:


I crossed out my initial issue comment body because I don't think this is super pressing issue-- and I don't have a strong contender for an alternative, let alone if it should be considered at all-- but still, putting it here for issue-tracking purposes. There doesn't seem to be anything broken with the current setup, so it might be just as well to leave it be.

Thanks! ๐Ÿ‘

k8s-style metadata on resources

I find myself wanting to add metadata to controls with labels like "myorg.io/team: platform-engineering", "myteam.io/tier: networking", "myteam.io/contacts: [email protected],'beep bop'", `myteam.io/last-reviewed: '-or-github-issue'-- information which could be comments or shoved into the "implementation-statuses" field, but also feels like there's a place for them as structured data.

It might be worth considering having a field for "metadata" e.g. "metadata.labels" akin to k8s resource definitions. That way adhoc metadata can be added on a user-need basis for multiple purposes without having to worry about modifying the schema itself with top-level keys.

Another potential(?) use of this could be for integrating with output generators depending on the needs of the rendering target; for example, having metadata.annotations[open-control.io/frontmatter-keywords]: 'comma separated', 'list-of', 'keywords' could be used by output renderers (see opencontrol/compliance-masonry#346) to include (again, just for example) frontmatter keywords in the generated output of a markdown document for a control/entire component/etc., or control whether frontmatter is included in the output at all, etc.;

So if there were hugo-specific rendering directives, it would just be a metadata annotation. If there were jekyl-specific rendering directives, it would just be a metadata annotation, etc.

(this should be a separate issue, I apologize, but-- In the general case I feel the kubernetes schema is pretty dang powerful, and there are bits and pieces of ideas that could be pulled from it. It wouldn't be that out of the realm of possibility to me that, even though this isn't a k8s resource itself, the structure could be used; e.g., "metadata.name", apiVersion (schema_version), kind (control, component, policy, etc.); the details aren't fully thought through, but it's worth considering the generalized mapping)

Just wanted to put it down for consideration. thanks for the time ๐Ÿ‘

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.