Git Product home page Git Product logo

hails's People

Contributors

alevy 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

Watchers

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

hails's Issues

Database/collection relationship is forgeable

In the structured branch, accessP will happily accept and run a query on any database regardless of whether the policy was written by that database's owner or not. Database should be a field of Policy rather than a parameter to accessP

cleanup and sanity check

  • clean up interface
  • check that exceptions in Iter/Inums cannot be used to leak information (should be a fix in lio)

Trusted External HTTP Library

A library for communicating with external HTTP libraries. The library should allow arbitrary external interactions while to sources above the caller's label:

  • Before caller has read any labeled data, this is arbitrary sources on the web
  • After caller has read labeled data, only allow if L_c leq L_domain. Therefore, data can be labeled "/ domain" to allow it to be sent to a particular external web source.

Secrecy on user input

  1. Allow annotations in HTML as to how the data will be labeled
  2. Extend LBson to allow for Labeled (Labeled Bson.Document) types -- this will effectively allow for the insertion of data more secret than the clearance (but not really since the outer label will have to be below clearance). Interestingly, this will allow for the insertion of data that a policy specifier cannot declassify and thus exfiltrate

Changing collection clearance

Suppose we have a collection with clearance L_C0. We insert a document D whose label is L_C0. Following the collection clearance is changed to L_C1 such that L_C0 does not flow to L_C1. Now we retrieve document D from the collection -- its label L_C0 is above the collection clearance L_C1 (which would violate the desired property: read>>= write โ‡’ return ()). An approach is to serialize the clearance into the collection and make sure that it can only be lowered.

routeFileSys should be unsafe

  • routeFileSys in Hails.IterIO.HailsRoute should be unsafe. we can move the systemsMime map somewhere else and just make this module unsafe. The apps use the mime map, so we should fix them accordingly.

restrict names of Document fields

similar to how we restrict _hails_internal... field names, we need to make sure that the user cannot create "control" fields, i.e., keys that start with $

labeled values and searchable

  • When inserting a document we should check that the value of a searchable key is not of a labeled type. This asserts that we can't perform arbitrary aggregations on labeled values.
  • When retrieving a searchable value, we should make sure that it's not a labeled value, by sanitizing the retrieved document (i.e., remove all hails-internal)
  • Remove the instance:
    instance Label l => Insert l (Labeled l (Document l)) where

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.