Re: Example STIX document.

From
Jordan, Bret <>
Date
2016-09-14T05:25:13+00:00
ID
Thread
Re: Example STIX document.
Oh and I forgot to mention, this code includes some proposed ideas for the Malware object and will have content from the proposed Infrastructure object.  

Thanks,

Bret

Bret Jordan CISSP
Director of Security Architecture and Standards | Office of the CTO

Blue Coat Systems

PGP Fingerprint: 63B4 FC53 680A 6B7D 1447  F2C0 74F8 ACAE 7415 0050

"Without cryptography vihv vivc ce xhrnrw, however, the only thing that can not be unscrambled is an egg." 

On Sep 13, 2016, at 23:16, Jordan, Bret <> wrote:

All,

I have been working on some code tonight to hopefully show a potential issue with Observed Data.  I am not yet ready to explain it or show it in detail, but I wanted to show you what I have done so far tonight (I still have a bit more work to do).

The code for all of this can be found here:

https://github.com/freetaxii/libstix2

JSON Output:

[22:43:05] saturn[jordan]:/opt/go/src/github.com/freetaxii/libstix2/examples/bundle-> go run 01-bundle.go {    "type": "bundle",    "id": "bundle--cf94e6c9-4908-4dc0-90bc-830fb073e3fa",    "spec_version": "stix-2.0",    "campaigns": [        {            "type": "campaign",            "id": "campaign--06d4b8e7-0726-43e8-aa30-0808f90bb51a",            "created": "2016-09-14T05:06:10Z",            "modified": "2016-09-14T05:06:10Z",            "version": 1,            "name": "Bank Attack 2016",            "objective": "Compromise SWIFT system and steal money"        }    ],    "indicators": [        {            "type": "indicator",            "id": "indicator--413517ea-3f42-4b6a-be29-b6e58f9981b0",            "created": "2016-09-14T05:06:10Z",            "modified": "2016-09-14T05:06:10Z",            "version": 1,            "name": "Malware C2 Indicator 2016",            "pattern": "file-object:hashes.md5 = 84714c100d2dfc88629531f6456b8276"        }    ],    "malware": [        {            "type": "malware",            "id": "malware--045513d3-61ab-4a32-accd-548fee1bf1d7",            "created": "2016-09-14T05:06:10Z",            "modified": "2016-09-14T05:06:10Z",            "version": 1,            "labels": [                "trojan",                "malware-family"            ],            "name": "Zeus"        },        {            "type": "malware",            "id": "malware--fbeff686-72d1-42b1-8a74-d52d4d8b1b36",            "created": "2016-09-14T05:06:10Z",            "modified": "2016-09-14T05:06:10Z",            "version": 1,            "labels": [                "trojan"            ],            "name": "SpyEye",            "filenames": [                "cleansweep.exe",                "spyeye2_exe",                "build_1_.exe"            ],            "hashes": {                "md5": "84714c100d2dfc88629531f6456b8276",                "sha256": "861aa9c5ddcb5284e1ba4e5d7ebacfa297567c353446506ee4b4e39c84454b09"            },            "scan_data": [                {                    "product": "avg",                    "scanned": "2016-08-30T06:31:48Z",                    "classification": "Generic16.BFGI"                },                {                    "product": "avast",                    "scanned": "2016-08-30T06:31:48Z",                    "classification": "Win32:Downloader-NTU [PUP]"                }            ]        }    ],    "relationships": [        {            "type": "relationship",            "id": "relationship--e1fa4b09-49bb-4726-8e46-433841fc2d86",            "created": "2016-09-14T05:06:10Z",            "modified": "2016-09-14T05:06:10Z",            "version": 1,            "relationship_type": "member-of",            "source_ref": "malware--045513d3-61ab-4a32-accd-548fee1bf1d7",            "target_ref": "malware--fbeff686-72d1-42b1-8a74-d52d4d8b1b36"        },        {            "type": "relationship",            "id": "relationship--e8a71f7e-f3e3-4e1e-9bbc-315855021f8b",            "created": "2016-09-14T05:06:10Z",            "modified": "2016-09-14T05:06:10Z",            "version": 1,            "relationship_type": "uses",            "source_ref": "campaign--06d4b8e7-0726-43e8-aa30-0808f90bb51a",            "target_ref": "malware--fbeff686-72d1-42b1-8a74-d52d4d8b1b36"        },        {            "type": "relationship",            "id": "relationship--f9e5545a-25d3-468f-a1fe-bfae8c3bcc3b",            "created": "2016-09-14T05:06:10Z",            "modified": "2016-09-14T05:06:10Z",            "version": 1,            "relationship_type": "indicates",            "source_ref": "indicator--413517ea-3f42-4b6a-be29-b6e58f9981b0",            "target_ref": "malware--fbeff686-72d1-42b1-8a74-d52d4d8b1b36"        }    ],    "sightings": [        {            "type": "sighting",            "id": "sighting--0f152ef9-17d2-4dd1-8f75-5ecd0607f722",            "created": "2016-09-14T05:06:10Z",            "modified": "2016-09-14T05:06:10Z",            "version": 1,            "first_seen": "2016-09-01T00:00:00Z",            "last_seen": "2016-09-01T10:30:00Z",            "count": 3,            "sighting_of_ref": "malware--fbeff686-72d1-42b1-8a74-d52d4d8b1b36"        }    ]}

Source Code to Generate:

package mainimport (	"encoding/json"	"fmt"	"github.com/freetaxii/libstix2/messages/bundle")func main() {	sm := bundle.New()	// Create a campagin	c := sm.NewCampaign()	c.SetName("Bank Attack 2016")	c.SetObjective("Compromise SWIFT system and steal money")	// Create an indicator	i := sm.NewIndicator()	i.SetName("Malware C2 Indicator 2016")	i.SetPattern("file-object:hashes.md5 = 84714c100d2dfc88629531f6456b8276")	// Define a family of malware	m1 := sm.NewMalware()	m1.SetName("Zeus")	m1.AddLabel("trojan")	m1.AddLabel("malware-family")	// Define a piece of malware	m2 := sm.NewMalware()	m2.SetName("SpyEye")	m2.AddLabel("trojan")	m2.AddFilename("cleansweep.exe")	m2.AddFilename("spyeye2_exe")	m2.AddFilename("build_1_.exe")	m2.AddHash("md5", "84714c100d2dfc88629531f6456b8276")	m2.AddHash("sha256", "861aa9c5ddcb5284e1ba4e5d7ebacfa297567c353446506ee4b4e39c84454b09")	// Define some scan data for the malware sample	m2s1 := m2.NewScanData()	m2s1.SetScannedText("2016-08-30T06:31:48Z")	m2s1.SetProduct("avg")	m2s1.SetClassification("Generic16.BFGI")	m2s2 := m2.NewScanData()	m2s2.SetScannedText("2016-08-30T06:31:48Z")	m2s2.SetProduct("avast")	m2s2.SetClassification("Win32:Downloader-NTU [PUP]")	// Connect the malware sample to a malware family	r1 := sm.NewRelationship()	r1.SetRelationshipType("member-of")	r1.SetSourceRef(m1.GetId())	r1.SetTargetRef(m2.GetId())	// Identify that this campaign uses this piece of malware	r2 := sm.NewRelationship()	r2.SetRelationshipType("uses")	r2.SetSourceRef(c.GetId())	r2.SetTargetRef(m2.GetId())	// Identify that this indicator can indicate the presence of this malware	r3 := sm.NewRelationship()	r3.SetRelationshipType("indicates")	r3.SetSourceRef(i.GetId())	r3.SetTargetRef(m2.GetId())	// Add a sighting for the malware	s1 := sm.NewSighting()	s1.SetFirstSeenText("2016-09-01T00:00:00Z")	s1.SetLastSeenText("2016-09-01T10:30:00Z")	s1.SetCount(3)	s1.SetSightingOfRef(m2.GetId())	var data []byte	data, _ = json.MarshalIndent(sm, "", "    ")	fmt.Println(string(data))}

Thanks,

Bret

Bret Jordan CISSP
Director of Security Architecture and Standards | Office of the CTO

Blue Coat Systems

PGP Fingerprint: 63B4 FC53 680A 6B7D 1447  F2C0 74F8 ACAE 7415 0050

"Without cryptography vihv vivc ce xhrnrw, however, the only thing that can not be unscrambled is an egg." 

Attachment:
signature.asc

Description: Message signed with OpenPGP using GPGMail