2017-05-09 17:03:19 +02:00
|
|
|
"""STIX 2.0 Cyber Observable Objects
|
2017-05-03 23:35:33 +02:00
|
|
|
|
2017-05-09 17:03:19 +02:00
|
|
|
Embedded observable object types, such as Email MIME Component, which is
|
|
|
|
embedded in Email Message objects, inherit from _STIXBase instead of Observable
|
|
|
|
and do not have a '_type' attribute.
|
|
|
|
"""
|
|
|
|
|
|
|
|
from .base import _STIXBase, Observable
|
|
|
|
from .properties import (BinaryProperty, BooleanProperty, DictionaryProperty,
|
|
|
|
EmbeddedObjectProperty, HashesProperty,
|
|
|
|
IntegerProperty, ListProperty,
|
|
|
|
ObjectReferenceProperty, StringProperty,
|
|
|
|
TimestampProperty, TypeProperty)
|
2017-05-03 23:35:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
class Artifact(Observable):
|
|
|
|
_type = 'artifact'
|
|
|
|
_properties = {
|
|
|
|
'type': TypeProperty(_type),
|
|
|
|
'mime_type': StringProperty(),
|
|
|
|
'payload_bin': BinaryProperty(),
|
|
|
|
'url': StringProperty(),
|
|
|
|
'hashes': HashesProperty(),
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-05-04 00:19:30 +02:00
|
|
|
class AutonomousSystem(Observable):
|
|
|
|
_type = 'autonomous-system'
|
|
|
|
_properties = {
|
|
|
|
'type': TypeProperty(_type),
|
|
|
|
'number': IntegerProperty(),
|
|
|
|
'name': StringProperty(),
|
|
|
|
'rir': StringProperty(),
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-05-05 18:32:02 +02:00
|
|
|
class EmailAddress(Observable):
|
|
|
|
_type = 'email-address'
|
|
|
|
_properties = {
|
|
|
|
'type': TypeProperty(_type),
|
|
|
|
'value': StringProperty(required=True),
|
|
|
|
'display_name': StringProperty(),
|
|
|
|
'belongs_to_ref': ObjectReferenceProperty(),
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-05-09 17:03:19 +02:00
|
|
|
class EmailMIMEComponent(_STIXBase):
|
|
|
|
_properties = {
|
|
|
|
'body': StringProperty(),
|
|
|
|
'body_raw_ref': ObjectReferenceProperty(),
|
|
|
|
'content_type': StringProperty(),
|
|
|
|
'content_disposition': StringProperty(),
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
class EmailMessage(Observable):
|
|
|
|
_type = 'email-message'
|
|
|
|
_properties = {
|
|
|
|
'type': TypeProperty(_type),
|
|
|
|
'is_multipart': BooleanProperty(required=True),
|
|
|
|
'date': TimestampProperty(),
|
|
|
|
'content_type': StringProperty(),
|
|
|
|
'from_ref': ObjectReferenceProperty(),
|
|
|
|
'sender_ref': ObjectReferenceProperty(),
|
|
|
|
'to_refs': ListProperty(ObjectReferenceProperty),
|
|
|
|
'cc_refs': ListProperty(ObjectReferenceProperty),
|
|
|
|
'bcc_refs': ListProperty(ObjectReferenceProperty),
|
|
|
|
'subject': StringProperty(),
|
|
|
|
'received_lines': ListProperty(StringProperty),
|
|
|
|
'additional_header_fields': DictionaryProperty(),
|
|
|
|
'body': StringProperty(),
|
|
|
|
'body_multipart': ListProperty(EmbeddedObjectProperty(type=EmailMIMEComponent)),
|
|
|
|
'raw_email_ref': ObjectReferenceProperty(),
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2017-05-03 23:35:33 +02:00
|
|
|
class File(Observable):
|
|
|
|
_type = 'file'
|
|
|
|
_properties = {
|
|
|
|
'type': TypeProperty(_type),
|
|
|
|
}
|