GithubHelp home page GithubHelp logo

schemas's People

Contributors

atweedmitre avatar clenk avatar gtback avatar ikiril01 avatar johnnykv avatar johnwunder avatar juandiana avatar jwparlee avatar mobhutu avatar nemonik avatar rroberge avatar tminit avatar white-queen 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

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  avatar  avatar  avatar

schemas's Issues

Update annotation for File_Path element in File Object

We should update the annotation for the File_Path element in the File Object to state that it can contain the name of the file along with the path to it. I would change it to

The File_Path field specifies the path to the file, including the file name but not 
including the device. Whether the path is relative or fully-qualified can be specified 
via the 'fully_qualified' attribute of this property.

Clarify structures organizing/characterizing object attributes in ObjectType

The element has an attribute named @type. It also has child elements of <Defined_Object>, <Domain-specific_Object_Attributes>, and <Custom_Attributes>. All four of these fields relate to the expression of detailed information about a particular Object instance. Currently, however, there is some confusion relative to the intent of these structures:

  • There is an intent that ad-hoc attributes (<Custom_Attributes>) not be intermingled with schema-defined attributes (<Defined_Object, and <Domain-specific_Object_Attributes>). The schema, however, does not prevent this.
  • The type attribute is intended to characterize ad-hoc attributes and is not intended to be used with schema-defined attributes. The type attribute name does not clearly indicate this purpose, and the fact that it is restricted to a list of enumerated values is actually somewhat antithetical to this use.

It has been requested that ObjectType be revised to more clearly indicate and follow the language intent.

Rename RelationshipsType

The RelationshipsType in CybOX Core is rather ambiguously named; it actually only deals with Action-Action relationships, so it should be renamed to ActionRelationshipsType for clarity.

Add Document Format Object Schemas

We need to add object schemas for characterizing some of the document object formats. Current proposed formats include:

-PDF
-DOC
-PPT
-XLS
-SWF (FLA, F4V)
-SCR
-CHM
-Generic/flexible XML construct for Office 2007+, openDoc, etc. formats

Create TPM Object

Create a TPM Object that can indicate PCR state, enabled flags, and changes thereto. This would be a new ObjectPropertiesType implementation that would go under the objects directory.

Remove Stateful_Measure element

It is proposed that the <Stateful_Measure> element be eliminated from the CybOX language and instead would be promoted to be a direct child of . The @has_changed attribute would be moved to be an attribute of the element.

This reduces the number of XML levels necessary to describe Objects using CybOX. As such, it represents a simplification of the CybOX language.

Create Directory Object

Create an ObjectPropertiesType implementation for the representation of Directory information. It is possible that this has integration with the File Object. This would be a new schema under the objects directory.

Depends on #315

Add ordering capabilities to Observables

Add ability to express ordered and unordered sets of observables with or without
temporal windows/relationships.

For example, it would be helpful to express the temporal relationships between observed events and the creation/modification/removal/etc. of other observables.

Timestamp guidance and/or enforcement

CybOX currently uses xs:dateTime and cyboxComon:DateTimeObjectPropertyType to store datetime information. DateTimeObjectPropertyType does not constrain values to xs:dateTime formats or enforce the use of timezone information, which is often essential when communicating cyber observable information.

Community members have identified the need to store more granular datetime information such as timezones information, which is not currently enforced by schema.

Pattern restricting the fields in schema may not be possible due to the CybOX patterning capability requirements (a regex does not conform to the xs:dateTime format), so we may just need to provide guidance on how best to store datetime information in both schema annotations and the specifications.

Expand Upon/Refactor Email Attachments

We currently can't capture useful email attachment characteristics like the MIME Type, so we should consider restructuring the Email Message Object to support these entities. Another possibility would be to create a separate Email Attachment Object (based upon the File Object) to capture this data.

Add Child Process Names to Process Object

It would be useful to keep track of the name of the children spawned by the process as part of the Process Object, so we should add it to the next version of the Process Object.

Consider controlled vocabulary for EffectTypeEnum in cybox_core.xsd

The EffectTypeEnum enumeration, found in cybox_core.xsd can potentially be converted into a controlled vocabulary, and moved into cybox_default_vocabularies.xsd.

This change would require the creation of a EffectTypeVocab implementation of the ControlledVocabularyStringType within cybox_default_vocabularies.xsd.

Changing EffectTypeEnum to a controlled vocabulary would require changes to DefinedEffectType in cybox_core.xsd. Currently, DefinedEffectType leverages the EffectTypeEnum for its effect_type attribute. This attribute would be converted to an element of type cyboxCommon:ControlledVocabularyStringType. The annotations should make mention of the newly created EffectTypeVocab, ControlledVocabularyStringType implementation.

Add Support Specifying Character Encodings/Custom Encodings

We need to add the ability to capture character encodings for strings and other relevant element datatypes, as well as any custom encodings that may be used. This would likely be accomplished by adding several corresponding attributes to the *ObjectAttributeTypes, e.g.,

FileObj:File_Name encoding="custom" custom_encoding="wideutf16"

Add ARP Cache Entry Object

We should investigate the addition of an object for characterizing Address Resolution Protocol (ARP) cache entries.

Create a URL History Object

Browser/URL history can be useful for serving as an indicator of malware presence, among other things. We should investigate adding such an object, preferably one that can be applied across many different browsers.

Modify Network_Connection object to enable enable specifying connection to URLs & Domains in addition to Socket_Addresses

Modify the Network_Connection object such that where it currently offers a single option of Destination_Socket_Address, it would offer a choice of three destination types (Socket_Address, Domain and URL).

This would enable more flexible specification of instance and patterns where the connection is primarily to a Domain or URL and not to a known IP/Port pairing.

The need for this has come out of mapping exercises of real-world content from various community stakeholders.

Create Android Objects and Actions

We should add Android-based objects, such as an Android APK object. There are likely new action names that need to be added as well, such as 'Start Broadcast Receiver.'

Update ArchitectureTypeEnum in Linux Package Object

Linux_Package_Object has a fairly limited ArchitectureTypeEnum, distinct from CodeObj:ProcessorTypeEnum. While these clearly serve separate purposes, having them in different XSD files will make it harder to ensure that they are up-to-date. Speaking of which, ArchitectureTypeEnum could do with i586, i686, x64_64, and armel - all architectures used in Linux packages. There may even be alpha and m68k boxes still out there.

Create EncodedCDATAType

STIX defines an EncodedCDATAType for all fields that are intended to store CDATA blocks. It could be beneficial to have a analogous data type defined in CybOX, as it could be easier to identify fields (in code) that require the application and/or removal of CDATA wrappers.

Simplify platform specification.

Currently, the CybOX platform structure is explicitly bound to the use of CPE through a set of custom elements largely mimicking the NIST CPE dictionary from the National Vulnerability Database. This is not adaptable to the use of other platform naming schemes and structures and ends up being fairly heavyweight for CPE support. Adoption of a more flexible and simpler scheme for identifying platforms has been recommended.

enforce uniqueness of IDs in an xml instance

The cybox schema does not currently require ids to be unique and they are intended to be unique within a given xml instance. When making this change, schema documentation also needs to be updated to state that ids MUST be unique.

CybOX needs to require the deterministic specification of a timezone

CybOX uses the xs:dateTime datatype to represent time information, which has an optional offset to indicate the timezone. Currently, behavior is not deterministic when the timezone offset is not present: is the time a local time, UTC time, or something else?

CybOX needs to either require the presence of an explicit timezone specification on all timestamps or to specify the expectation for what the timezone is when it isn't specified on the timestamp.

Expand Layer 7 Network Object Support

We currently have characterizations of HTTP and DNS network objects, but there are other Layer 7 objects that we should add support for, including:

*IRC
*SMTP
*FTP
*NetBIOS
*POP3
*IMAP

Simplify StructuredTextType

The StructuredTextType type, used primarily in elements, is a highly structured object, including sub-elements for titles, code, comments, images, and basic text, as well as the ability to group such structures into "blocks".

While this structure is useful for some cases, it has been observed to be overly cumbersome for many other uses. Moreover, the structures are not widely used in the general community, and thus do not represent standardized practices.

It has been proposed that this structure be simplified and brought more in line with community practice.

Create Zip File Object

Create a new ObjectPropertiesType implementation for the representation of a Zip file. This would be a new schema under the 'objects' directory.

Add Usage of File Object for Process Object Image Info

Right now the Process Object has its own method for defining the characteristics of the file associated with the process memory image; we should consider using the File Object for this, both for consistency and expressivity since at the moment we can't capture basic properties like hashes in the image info.

Add ability to store geolocation information

There is use in storing physical, geolocation information about assets/observables. We need to investigate where this information would be best stored, and how best to use this information.

Ensure Consistency in Length Fields Across all Objects

In many cases, length fields are specified as PositiveInteger or UnsignedLong types, but in other cases they are specified as mere Integer types. Presumably the Integer ones are there because a malicious data source could put a negative number in there with the intent of inducing an overflow.

Revise Observable composition operators

The <Observable_Composition> element is used to define logical combinations of elements. Currently, the permissible operations, defined by the OperatorTypeEnum are AND, OR, and NOT.

It has been observed that the meaning of the NOT operation is currently ambiguous when there is more than one operand (i.e., child element): is the intended meaning NAND or NOR?

Update Object Annotations for Consistency

The annotations in all Object elements/attributes should be looked over and updated for consistency; it looks like there are places where we refer to 'properties' instead of 'fields' (e.g., in the PEHeadersType in the Win Executable File Object) etc.

CybOX needs some mechanism for capturing the precision of timestamps

Currently CybOX uses the xs:dateTime datatype to represent timestamps, which requires precision down to the second.

In many cases, however, precision for a time is only available to the minute, day, or even month. In these cases, it would be desirable to have a way to express that precision to avoid implying that a timestamp is more precise than it actually is.

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.