Log montoring and automated threat intel
Interested in learning more about security?
SANS Institute InfoSec Reading Room This paper is from the SANS Institute Reading Room site. Reposting is not permitted without express written permission.
Automated Network Defense through Threat Intelligence and Knowledge Management In order for threat intelligence to be leveraged effectively within organizations it must be well structured and enriched. These tasks are relatively trivial to accomplish but tend to be conducted ad-hoc or, worse still, manually. This paper sets out to demonstrate that automation and appropriate structuring of threat intelligence need not be prescriptive nor expensive. With current open source tools and languages an organization can dramatically increase the value of their threat intelligence through automated ...
Copyright SANS Institute Author Retains Full Rights
A D
Automated Network Defense through Threat Intelligence and Knowledge Management
GIAC (GCIA) Gold Certification
Author: Christopher O’Brien, [email protected] Advisor: Hamed Khiabani, Ph.D.
Accepted: 31 December 2015
Abstract
In order for threat intelligence to be leveraged effectively within organizations it must be well structured and enriched. These tasks are relatively trivial to accomplish but tend to be conducted ad-hoc or, worse still, manually. This paper sets out to demonstrate that automation and appropriate structuring of threat intelligence need not be prescriptive nor expensive. With current open source tools and languages an organization can dramatically increase the value of their threat intelligence through automated enrichment and fusion between the tactical and strategic sources, providing tangible network detection capability whilst answering broader contextual questions. This is achieved by using bulk data feed resource and open source reporting, processed using the open architecture STIX threat intelligence structures and deployed to test mechanisms using Bro and SNORT. The outcome is a network alerting capability that not only tells us when something that we already know has happened, but potentially who did it as well.
Automated Network Defense through Threat Intelligence and Knowledge Management
2
Christopher O’Brien, [email protected]
1. Introduction Many organizations know that they should have cyber security threat intelligence,
fewer know how to use it and fewer still are actually doing so. By far the fewest of these
groups are those taking full advantage of the true nature of intelligence: “…acquisition
and analysis of information to assess capabilities, intent and opportunities for exploitation
by leaders at all levels” (UK Ministry of Defence, 2014). One of the most important
aspects of intelligence is that it is actionable ‘at all levels’, so it is important to identify a
technology and process for understanding and analyzing information to draw clarity on
threats. The types of data analyzed to produce this intelligence in the field of cyber
security has the advantage of being eminently structural and exploitable which presents
great opportunity for automation.
Some data sets are more exploitable than others and there is a natural distinction
between strategic and tactical intelligence (Poputa-Clean, 2015). Tactical intelligence is
more quantifiable and, as such, is the first target of network defenders to fill their threat
libraries. The assumption is that strategic intelligence – more qualitative data such as
Threat Actors, and Tactics Techniques and Procedures (TTPs) – is less structured and,
hence, less useful in tactical network defense. The separation of these data types can
often lead to frustration for the network defender as the context provided by strategic data
can greatly affect the deployment of tactical indicators – which must be the ultimate aim
of this data. For example, observing a machine on your network beaconing with Dridex
to the IP address ‘185.38.104.108’ is a valuable piece of tactical intelligence that may
trigger an incident response and deployment of network defenses. However, it gains even
more value when coupled with the strategic intelligence that, as of writing, this IP address
resolves to the domain ‘sinkhole.cert.gov.uk’. Knowing that the infected machine appears
to be connecting to a ‘whitehat’ sinkhole can allow for more accurate prioritization of
incident response.
More recent developments in structured threat intelligence languages provide a
means of rendering exploitable more qualitative data in order to maintain the additional
context around the indicator. This logical ontology allows the indicator to hold an
Automated Network Defense through Threat Intelligence and Knowledge Management
3
Christopher O’Brien, [email protected]
inherent logic as part of the intelligence object which is better interpreted by automated
systems allowing for faster, more efficient network defense deployments. Thus, this
paper provides a hands-on method of automating network defenses through a structured
threat intelligence language to deliver tactical intelligence enriched with strategic context.
1.1. Establishing a Common Language The names we associate with specific cyber security threats vary greatly across
the community. For example, the group commonly referred to as ‘Havex’ goes by many
different aliases as addressed in Recorded Future’s helpful summary (Recorded Future,
2014). In this article the author states that “As many as five different codewords have
been given to…[these] cyber campaigns…” and they are often used inappropriately when
attempting to classify observed cyber attacks. This poses difficulties at both the tactical
and strategic levels; at the strategic level an incorrect reference to a TTP can lead to false
assumptions on an incident’s impact, thus skewing risk decisions. For example using the
common name of ‘Havex’, used regularly to refer to a Threat Actor group, is more
accurately a reference to the Havex Remote Access Trojan (RAT) (F-Secure, 2014). This
tool has very specific functions and capabilities that are not necessarily reflective of other
tools believed to be leveraged by this actor. These data conflicts made at the strategic
level can reach to the tactical as a decision may be made to defend a network from
‘Havex’ (deploying signatures, blacklisting infrastructure, etc.) without taking in to
account other vectors to which an organization may be vulnerable. In order to reconcile
those conflicts it is advantageous to develop a common language for expressing threats
which distinguishes between the TTPs being leveraged and the Threat Actors wielding
them. To do so in a machine readable way is the ultimate goal.
However, this does not necessarily mean that everyone should use a single
taxonomy. Organizations will naturally have different ways of interpreting threat
intelligence to make it usable for their own ‘levels’ of response. Those interpretations
will inherently hold additional value as they are bred from an organization’s unique
viewpoint of the threat with different analytical assertions. Provided we have a means of
provenance and a method of recording the results of when those assertions are tested,
Automated Network Defense through Threat Intelligence and Knowledge Management
4
Christopher O’Brien, [email protected]
corroborated or refuted, the ability to render those findings to the wider community is
advantageous.
Furthermore, malicious actors often deliberately attempt to conceal their identity
and confuse the network defender to make the task of detecting them harder and the
process of evasion easier. Hence, the notion of spending time and resource as a
community to develop a single ‘source of truth’ taxonomy for all strategic intelligence
structures is not only costly as we attempt to untangle a deliberately complex issue, but
also a welcome result for the attacker as we spend more time worrying what we name
something and less on actually defending against it.
In order to allow network defenders to manage their own strategic and tactical
intelligence in accordance with their own internal tools and processes in a recognizably
structured way, without the need for prescriptive ‘single truth’ definitions which are
costly to develop and can limit the scope of community knowledge, suggests that the
acceptance of an international ‘standard’ for the structuring of that threat intelligence be
developed.
Figure 1. Diagram of a threat intelligence hierarchy. The structure allows for uniform data storage but lacks
flexibility.
Hierarchies are naturally two-dimensional – as show in Figure 1 – and struggle
with increased complexity. In the case of cyber security threat intelligence we will
regularly see instances that attempt to break these models. As discussed previously,
Havex is a RAT: a TTP leveraged by many Threat Actors. Whilst this specific TTP is
commonly associated with a specific Threat Actor there is nothing stopping it being used
TG3390
PlugX
Hash Domain Name
HTTPBrowser
Hash Domain Name
Automated Network Defense through Threat Intelligence and Knowledge Management
5
Christopher O’Brien, [email protected]
by another. As such, we are forced to investigate more multi-dimensional classification
systems. Faceted Classification (Denton, 2009) introduces a means of sorting objects by
facets, or features, of the object. For example, PlugX is a RAT and so is Havex. Instead
of hierarchically linking PlugX as a subset of the TG3390 intrusion set (Dell
SecureWorks, 2015) the facet of ‘RAT’ is applied to both. The data owner can then assert
the Threat Actor groups of TG3390 and Energetic Bear as having a facet of ‘Uses RATs
in their attacks’ which would lead to a common logic by which to assert a link. In this
example we observe that a potentially incorrect assertion can be made that PlugX is used
by Energetic Bear (and, indeed, that Havex is used by TG3390). This model recognizes
that those assertions could exist, but it becomes clear that another object is required to
link that relationship. In a cyber security context we would establish a link between an
actor and their tools by observation of their usage – so we introduce the concept of an
Incident or Indicator that demonstrates a sighting of the TTP being leveraged, linking it
to a Threat Actor as an analytical assertion. This is illustrated in Figure 2. Facets can now
become the primary means of querying the data set as they can be cut in multiple
directions and in an automated way. This can be augmented with the idea of grouping
facets into logical contexts (Messina, 2015) such as TTP, Threat Actor and Indicator.
Enumerations are not necessarily fixed (to maintain flexibility) but provide a framework
for a common language.
Automated Network Defense through Threat Intelligence and Knowledge Management
6
Christopher O’Brien, [email protected]
Figure 2. Diagram to show an object oriented framework using Faceted Classification. Dash-line arrows represent
analytical assertions through cross-referencing.
Figure 2 illustrates what this logical, grouped-facet structure might look for the
same data set. Several threat intelligence languages exist to share atomic data between
organizations (Farnham, 2013) but few support the level of granularity required to
develop such complex models. The OASIS Structured Threat Intelligence eXpression
(STIX) language and associated supporting languages of Cyber Observable eXpression
(CYBOX) and Trusted Automated eXchange of Indicator Information (TAXII) is one set
of standards that allows for the depth of complexity to support such structures and also
benefits from being an open standard, maintained and managed by an OASIS Technical
Committee (OASIS, n.d.), to which other languages can refer. These higher-order
languages not only make use of Faceted Classification but also group facets into logical
cyber security incident object types to allow for more accurate classification of threat
intelligence. Throughout this paper we will refer to the STIX family of languages as a
means to demonstrate how complex strategic and tactical data sets can be rendered
exploitable, shared and automatically deployed to increase network security at machine
speeds.
Threat Actor 1 TTP 2
IND-001 IND-001 IND-001
IND-002
TTP 2 Incident
Open Source Report
Partner Data
Threat Actor 2 TTP 1
IND-001 IND-001 IND-001
IND-001
TTP 1
leverages
indicated by
leverages
indicated by
indicated by
leverages
Automated Network Defense through Threat Intelligence and Knowledge Management
7
Christopher O’Brien, [email protected]
2. Automated Deployment of Threat Intelligence The following experiment demonstrates the value in automating the process of
ingestion, exploitation, enrichment and deployment of threat intelligence. Through the
use of open source data sets and tooling we aim to demonstrate the benefits of enrichment
and the increased capability and the further enhancements offered by performing
enrichment on structured data, allowing for the fusion of tactical and strategic
intelligence. We focus on two common examples of input data: Open Source reporting,
using ‘Threat Group-3390 Targets Organizations for Cyberespionage’ (Dell
SecureWorks, 2015) as a use case; and bulk data feeds, in this case an aggregated data
feed from AbuseSA (Codenomicon, n.d.). Whilst AbuseSA is a paid-for aggregation
service, the process of data aggregation can be conducted with open source aggregation
tools such as combine.py (MLSec Project, 2015).
Throughout the experiment the aim is to use low cost, open source and open
architecture techniques to derive as much value from these feeds as possible for the
purposes of automated network defense. This includes the deployment of indicators to a
simulated network environment and sharing of the exploited and enriched data with other
network defenders through automated threat intelligence sharing. The actual deployment
of these assets to a network infrastructure greatly depends on the local requirements and
the concept of network layout to support deployment of threat intelligence is addressed
well in Poputa-Clean’s paper (Poputa-Clean, 2015). In this experiment we focus on a
generalized data flow process as illustrated in Figure 3 and implement the data sharing
using the STIX/CYBOX/TAXII implementations of Soltra Edge (Soltra Edge, n.d.)
which makes use of the OASIS open standards for Cyber Threat Intelligence (CTI)
sharing.
Automated Network Defense through Threat Intelligence and Knowledge Management
8
Christopher O’Brien, [email protected]
Figure 3. Non-tool specific data flow diagram for implementation of manual and automated data processing to a
CTI knowledge base.
The experiment includes the development of Python scripting and the publically
available ‘python-stix’ libraries (python-stix, n.d.) to ingest, exploit, enrich and deploy
threat intelligence to common network defense tools. The custom scripts produced in the
main
exploit inbox
Manual Processing
csv(ish) csv
stix
local_index
enrich local_index
local_index++
stix
deploy local_index++
test_mechanisms
inbox stix
Figure 4. Data flow diagram for TG3390 ingest, exploit, enrich and deploy functions. This variant makes use of a
non-STIX custom index for ease of enrichment.
Automated Network Defense through Threat Intelligence and Knowledge Management
9
Christopher O’Brien, [email protected]
experiment are now available at https://github.com/cobsec/pickup-stix.
Figure 4 illustrates the data flow for the custom script which was written for this
experiment. The following custom functions were created:
inbox.py – using the original example produced by Soltra, the inbox script accepts a
STIX object, expresses it in XML format and wraps it in XML formatted TAXII
messaging protocols, allowing it to be sent or ‘inboxed’ to a specific TAXII server
exploit.py – this module contains data transforms into and out of STIX. The purpose of
this module was to demonstrate the capability in python-stix to easily transform between
data specifications. This is of particular importance when working with existing tools that
use specific, sometimes proprietary, data protocols that are not automatically compatible
with STIX. In this experiment we convert into / out of STIX to use a custom ‘local index’
using a Python dictionary as a means of testing cross-compatibility between STIX and
other data structures. The exploitation of the data also establishes the implied links
between tactical and strategic data by making use of the detailed STIX CTI structure.
enrich.py – once ingested, the structured tactical threat intelligence data is then enriched
using two common enrichment sources: VirusTotal (VirusTotal, n.d.) for file hash and
behavioral enrichment, and domaintools (domaintools, n.d.) for network detail pivoting.
Both are accessed by means of API calls through paid-for services, though similar free
services may also be used.
deploy.py – the enriched tactical data is then deployed to network defense mechanisms in
order to assess the validity of the new data. In this experiment we use the SNORT
Intrusion Detection System (SNORT, n.d.) and Bro Network Security Monitor (Bro,
2015). By combining the signature detection capabilities of SNORT with the more
heuristic approach of Bro scripting we are able to demonstrate that tactical intelligence
can quickly be related to strategic context for greater situational awareness.
config.py / config.ini – makes use of the Python library ‘ConfigParser’ to collate basic
information required by the various modules in order to successfully run the experiment.
Settings can be changed in config.ini in order to customize the process including the
Automated Network Defense through Threat Intelligence and Knowledge Management
10
Christopher O’Brien, [email protected]
specification of the inbox TAXII server, server login credentials and enrichment API
keys.
2.1. Ingesting Feeds The first step is to capture the data through a pre-processer. This often overlooked
part of the process is arguably the most crucial as the tactical intelligence chosen to be
retained will determine the granularity and accuracy of the strategic context. It is
important to note that cross-referencing the incoming data is difficult at this stage as the
ingest pre-processor will not have full visibility of the data set. High processor capability
ingest methods may be able to actively query a database and remove incoming entries
that may, for example, be duplicated in other feeds – however, this is more logically done
after the data has been ingested in to the knowledge base so that Map-Reduce algorithms
can be run on the back end. The process of enrichment is covered in greater detail in
section 2.3.
2.1.1. Bulk Ingest Bulk data feeds have the advantage of coming in some form of structured data
format. Whilst they may not hold full granularity, there is often additional strategic
intelligence to be gleaned from the context through which the data was acquired.
Figure 5 illustrates a flat JSON structure that can be readily manipulated through
code or script. Part of the additional context is that this particular event was captured
through a legitimate sinkhole activity. This gives us some key analytical assertions:
1. The destination IP of 204.95.99.204 is not necessarily ‘attacker
infrastructure’
2. The source IP (as redacted), while likely infected by the malware, is not
necessarily actively being ‘exploited’ in the Cyber Kill Chain sense
(Hutchins, Cloppert, & Amin, 2010)
3. There is enough data to deduce that a complete Network Connection was
established (source IP/port to destination IP/port)
Automated Network Defense through Threat Intelligence and Knowledge Management
11
Christopher O’Brien, [email protected]
4. As this event ‘has occurred’ sometime in the past, it can be considered an
Incident (Mitre Corporation, 2015)
The event by itself can be utilized straight away for network defense – for
example, to search for the destination IP in enterprise traffic logs in an attempt to identify
infected hosts. However, the event line by itself does not contain the above analytical
assertions. If they are not captured somehow then the corporate knowledge of that event
will be lost, along with its value.
{
"feed": ["<redacted>"],
"source time": ["2015-09-30 23:59:54Z"],
"cc": ["GB"],
"ip": ["<redacted>"],
"bgp prefix allocated": ["2001-04-02"],
"source asn": ["<redacted>"],
"http method": ["post"],
"source longitude": ["<redacted>"],
"source metro code": ["0"],
"http version": ["1.1"],
"destination ip": ["204.95.99.204"],
"malware": ["caphaw"],
"uuid": ["0f8e1af0-fd04-4a08-98c1-85493ee7d888"],
"risk level estimate": ["high"],
"source area code": ["0"],
"source city": ["<redacted>"],
"source cc": ["gb"],
"as allocated": ["2013-08-08"],
"latitude": ["51.5"],
"user agent": ["mozilla/4.0 (compatible; msie 6.0; windows nt 5.1;
sv1; .net clr 1.0.4419)"],
"information source": ["sinkholemessage"],
"source region": ["<redacted>"],
"source postal code": ["<redacted>"],
"description": ["Indicates a Caphaw infection, where victim PC is
making an attempt to download a configuration file."],
"geoip cc": ["GB"],
"http request": ["/index.php"],
"destination port": ["443"],
"source latitude": ["<redacted>"],
"http referrer": ["0"],
"registry": ["ripencc"],
"feeder": ["<redacted>"],
"asn": ["60339"],
"type": ["botnet drone"],
"observation time": ["2015-10-01 00:07:04Z"],
"longitude": ["-0.13"],
"source port": ["54506"],
"as name": ["H3GUK Hutchison 3G UK Limited,GB"],
"bgp prefix": ["<redacted>"],
"additional information": ["<redacted>"] }
Figure 5. Redacted sample from the AbuseSA aggregator by Codenomicon. The flat structure does not lend itself to
the structured language needed for granular threat intelligence, but knowledge of the context allows for
enrichment.
Automated Network Defense through Threat Intelligence and Knowledge Management
12
Christopher O’Brien, [email protected]
Figure 6. Single event from a bulk ingest feed. In this case there is enough data to form full 'socket' objects (IP/port
pairs) which is a more accurate context than simply listing the IPs/ports. The Incident 'wrapper' allows for more
detail including TTP.
The example in Figure 6 processes these types of events in to STIX objects which
allows for that additional context to be captured. A threshold can also be applied at this
stage for varying data qualities that will only create new objects if enough data exists to
successfully make analytical assertions. This could easily be changed to make different
assertions and produce different object models to represent them. For example if the data
is lacking either end of the network connection (source or destination socket) the script
can be adjusted to create a simple Indicator list. However, since the raw data has
complete context it is important to capture as much of it as possible in the STIX object in
order to increase data granularity. Such logic should be customized for the organizational
intelligence requirements.
2.1.2. Open Source Reporting Open source reports revealing indicators associated with so called Advanced
Persistent Threats (APT) are somewhat of a trend of late. Unfortunately, most of these
reports are either PDFs or online website-based reports which are not necessarily
conveniently structured. In some cases even two reports from the same company may
differ in how they structure their indicators. However, most reports will keep indicators
in separate sections of a report at least making them available to be exploited through
scripting as shown in Figure 7.
TTP
Source Socket
Destination Socket
Incident Details: x Timings x Impact x Victim details
Network Connection Object
leveraged in
Incident Object
Automated Network Defense through Threat Intelligence and Knowledge Management
13
Christopher O’Brien, [email protected]
Figure 7. Source code from the TG3390 online report. Whilst eminently scriptable due to the structured HTML table,
a level of input is required from the analyst to ensure that the correct data is extracted, and in context.
This does, of course, require an analyst to read the report and identify the useful
information, turning that logic in to a script which may not ever get used again. Whilst
there are some impressive tools on the market to support with entity extraction and report
markup (Bridges, Jones, Iannacone, Testa, & Goodall, 2014), they share a common
requirement for training and/or human monitoring to achieve accurate results. The time
invested in developing these sorts of capabilities may be better spent developing modular
ingest scripts that can be applied to different report structures. The lack of repetition of
structure across the industry is regrettable and it should be the aim of all publishers of
cyber security threat intelligence to do so in the most predictable and repeatable structure
possible whilst still retaining context. These data structures can always be rendered in to
more aesthetically pleasing reports provided the data is structured well.
Even though a structured threat intelligence language adds value, it is sometimes
preferably to use an alternate data structure for ease of compatibility with other tools.
This concept is well explored in ‘Automated Defense - Using Threat Intelligence to
Automated Network Defense through Threat Intelligence and Knowledge Management
14
Christopher O’Brien, [email protected]
Augment Security’ (Poputa-Clean, 2015) using the Nyx framework. For this experiment
a simple Python dictionary was created from the more detailed threat intelligence data
(STIX objects) to allow for rapid enrichment processing with other APIs. It is important
to maintain the STIX generated UUID references with each Observable as it is enriched
to ensure that future relational links can be established using the ‘id_’ facet of the STIX
objects. For example, the reference to observable IP Address in the TG3390 report of
72.11.141.133 was ingested through the Python script and assigned a randomly generated
UUID of 719b088c-e2cc-43fa-9bd3-f34264f7e57f. This is then prepended with the object
type name defined by the python-stix library (in this case an “Address” type) and a user-
defined namespace (in this case, “certuk”) resulting in the fully qualified UUID of
certuk:Address-719b088c-e2cc-43fa-9bd3-f34264f7e57f. This object can be seen in
Annex A on lines 91-99. During the experiment we create an ‘enrichment’ STIX file – a
sample of which is at Annex B. This IP address was used during enrichment to identify a
domain name, ECWARD.COM, which was added to this enrichment STIX file and then
back-referenced to the original IP address at line 110 of Annex B.
Figure 8. Diagram to show the resultant structure of a STIX implementation of the TG3390 report.
TG3390
Infrastruc ture
Building
Domain Names
IP Addresses
PlugX
HTTP Browser
File Hashes
HTTP Browser Dropper
leverages
indicated by
indicated by File
Hashes
File Hashes
Threat Actors TTPs Indicators
Automated Network Defense through Threat Intelligence and Knowledge Management
15
Christopher O’Brien, [email protected]
2.2. Data Structures Once data is in a structure that accurately reflects both its tactical and strategic
intelligence values, it then needs to be collated into a threat library or knowledge base for
storage and future querying. Using structured languages such as STIX, where objects
already exist with relationships between each other, means that more scalable non-
relational databases including document stores such as mongoDB (mongoDB, n.d.), or
graph stores such as Sqrrl (Sqrrl, n.d.). However, every deployment of a threat
intelligence enabled network will be different and some network defenders may continue
to find optimizations using other techniques such as traditional relational databases.
The point of using an open standard is that network owners should not be forced
to be STIX compliant ‘from the ground up’. Abstraction layers and data transforms are
likely to be commonplace, particularly for well-established enterprises with pre-built data
protocols. This may result in a loss of granularity as data is passed between languages,
but the hope is that the open standard definition can be flexible enough that losses are
minimalized. In this experiment we assume minimal dependence on existing languages
and tools. Hence, we are able to take full advantage of the open architecture’s full
granularity.
Figure 9 shows an implementation of a STIX data model taking advantage of the
inter-object relationships in order to minimize duplication of Observables. The aim is to
hold all Observables in the knowledge base once and, when required as part of another
STIX package, to reference it rather than create a duplicate copy. This provides more
efficient data storage and a logical data relationship model which can be better exploited
through automated analysis techniques. For example, we could consider the concept of
‘quality’ for a given Observable as being directly proportional to the number of
relationships established between the Observable and other STIX objects. This makes the
Observable more likely to provide pivoting capability and so, in analytical terms, may be
considered a high quality Observable.
Automated Network Defense through Threat Intelligence and Knowledge Management
16
Christopher O’Brien, [email protected]
Figure 9. Data Flow model for CERT-UK showing the knowledge, analysis and product layers, along with the data
processing function to support remote referencing wherever possible (to reduce duplication) and Observable
inclusion where referencing is not sufficient.
Automated Network Defense through Threat Intelligence and Knowledge Management
17
Christopher O’Brien, [email protected]
Figure 9 shows a suggested data model for representing cyber threat intelligence
in a knowledge base. The key aspect is that knowledge – a fact of existence for a piece of
information – is the core material on which we base analytical assertions. Each event,
entry or Observable in a data feed can be considered ‘knowledge’ that we gain from a
specific source. Equally, network defenders can create their own knowledge from
Observables on a network either through manual investigation or as the byproduct of
some other tool. These objects then form the atomic building blocks on which to
construct our analytical assertions. Changes to objects in this layer are usually
administrative only through processes such as de-duplication and reconciliation and tend
not to hold context beyond what the object states.
The analysis layer allows the analyst to draw links between those building blocks
which reside in the knowledge layer, develop analytical assertions and provide additional
context to the knowledge. Data in this layer is more transient, often edited and added to
by the analyst in order to improve the threat intelligence picture.
For example, an IP address may be recorded in the knowledge layer as having
sent a DNS request for a given malicious domain. In an object oriented approach we
would say that the IP address (address object) sent a DNS request packet (network
connection object) containing reference to the malicious domain (domain name object).
Each of those three objects can be considered knowledge and could be related to each
other in the context of an Incident (which may also be considered knowledge depending
on the source and local policies). An analyst may observe that there have been multiple
other DNS requests made for the same domain name from other IP addresses and assess
that there is a more wide-spread Incident. As such, an Indicator or Incident object can be
created in the analysis layer which links the network connection objects of all DNS
requests for that malicious domain as a potentially wide-spread Incident. It may also be
prudent to add the domain name object to a ‘malicious domain watchlist’ in the analysis
layer for others to refer to, perhaps for later publication to other network defenders.
Due to the potentially volatile nature of the data in the analysis layer, and the lack
of context or value for the raw intelligence, the concept of the product layer is to allow
confirmed analytical assertions to be shared with trust groups. The product layer needs to
Automated Network Defense through Threat Intelligence and Knowledge Management
18
Christopher O’Brien, [email protected]
accurately reflect current thinking for ‘published’ products but also ensure that useful
context is provided wherever possible in order to increase the strategic intelligence value
– the key advantage to a fully linked analytical layer. For example, having the same
malicious domain watchlist from the analytical layer promoted to the product layer is
useful, but including the references to the Incident objects associated with the network
connection objects allows recipients to observe which domains have been seen most
regularly in the knowledge base and, hence, provides a means of quantifying their risk.
2.3. Enrichment and Deployment The main effort of this process is to enable automated deployment of threat
intelligence for network defenders. As such, the objects that are now committed to the
knowledge base should be enriched not just with other data sources, but also with test
mechanisms to be leveraged by network defense tools. When selecting how and when to
enrich data, it is important to consider both the volatility (the regularity with which the
data is liable to change) and scope (the number of objects required to make valid
assertions) of the enrichment. Figure 10 and Figure 11 demonstrate these two
components in terms of their ease of implementation and accompanying examples.
As the size of our knowledge base increases the scope of querying does too.
Hence, running queries against this large data set introduces performance concerns and
the tendency with most big data approaches is to introduce local indexing to increase
performance. Whilst a valid option, this can essentially result in duplication of data sets
which, at high volumes, can be computationally and financially inefficient.
Increasing complexity of data models through unmanageable volatility is often
tackled by holding replicated data sets for specific time periods. This can work well for
‘investigations’ which tend to focus on an occurrence at a specific point in time so that
enrichment can be done in the context of the incident. However these time-bound models
tend to work in discrete time and may lose the ability to conduct analysis through time as
part of an automated analytical approach. Whilst these sorts of investigations tend to be
done ad-hoc by analysts at the moment (for example, the historic registration details of
infrastructure) it is important to avoid reducing our ability to do so by reverting to
‘snapshots in time’.
Automated Network Defense through Threat Intelligence and Knowledge Management
19
Christopher O’Brien, [email protected]
Figure 10. Diagram to show the increasing complexity of enrichment with increase in size of the data set (scope)
and time-dependency of the enrichment source (volatility).
Area Description Example Ease of Implementation
A Object has little to no time dependency and can be enriched with other static data. Once enriched, these relationships are often static as well.
The hash of a malicious file being enriched with malicious domain names extracted from the binary through reverse engineering.
Simple
B Enrichment sources may regularly change or the object may have several existing relationships that are subject to change. Results will be relatively stable but have a ‘shelf life’ when they may need to be reviewed.
Creating a SNORT rule to detect all network indicators associated with a TTP.
Moderate
C Enrichment is dependent on querying a very large data set and comparing to dynamic, evolving enrichment sources. End results are often necessarily summarized and will need continual updates.
Showing the rate of detection of a specific Threat Actor on a network (identifying facets, live interpretation of source data and correlation to incident status)
Difficult
Figure 11. Table to show the types of enrichment using an object-oriented Facet Classification system as
implemented during the experiment.
Scope
Volatility
A B C
Automated Network Defense through Threat Intelligence and Knowledge Management
20
Christopher O’Brien, [email protected]
2.4. Automated Enrichment Dell SecureWorks published a list of Observables with their report on a suspected
APT which they refer to as TG3390. Included at Annex A is the trimmed contents of the
report in a STIX structure plus some basic enrichment in the form of SNORT test
mechanisms. Using the discussed principles and custom code as described earlier in
Section 2, we processed the TG3390 report as a sample input and produced two STIX
packages: The same data in a STIX format and an enrichment file containing additional
Observables at Annexes A and B respectively. To demonstrate the value of the
enrichment Figure 12 shows the output of the ‘chain’ function of exploit.py which shows
the full logic chain that lead to the new Indicators.
In this experiment we only use two resources for enrichment. This can easily be
extended to any other data resource which has an API. APIs are often rate-limited, even
with paid-for services, so it is important to add appropriate controls to the use of the
relevant keys during deployment. As discussed in Section 2.3, there is a temptation to
SESEWUYU.COM ({{no_ref}}) --> 210.209.89.162 ({{no_ref}}) --> 728e5700a401498d91fb83159beec834 (d1e6920b-151d-40db-b83c-3b7635e5768e)
INFLATABLEKITE.NET ({{no_ref}}) --> 213.186.33.99 ({{no_ref}}) --> bbfd1e703f55ce779b536b5646a0cdc1 (43495fce-577b-4d59-8322-
3a0cf1c15e88)
LYONPLAGE.COM ({{no_ref}}) --> 213.186.33.99 ({{no_ref}}) --> bbfd1e703f55ce779b536b5646a0cdc1 (43495fce-577b-4d59-8322-3a0cf1c15e88)
BULKINGSTACKS.COM ({{no_ref}}) --> 190.123.36.113 ({{no_ref}}) --> 93e40da0bd78bebe5e1b98c6324e9b5b (35dd574a-9547-4039-9f41-
335a9242e37b)
CZFGV.EU ({{no_ref}}) --> 192.151.236.138 (6759e847-843c-44ee-9f4b-924661b7c97d) --> 86a05dcffe87caf7099dda44d9ec6b48 (befaf99c-cac5-
4caf-ba18-17231ad42f09)
JPCHS.COM ({{no_ref}}) --> 210.209.89.162 ({{no_ref}}) --> 728e5700a401498d91fb83159beec834 (d1e6920b-151d-40db-b83c-3b7635e5768e)
UCCHS.COM ({{no_ref}}) --> 210.209.89.162 ({{no_ref}}) --> 728e5700a401498d91fb83159beec834 (d1e6920b-151d-40db-b83c-3b7635e5768e)
VYBVG.EU ({{no_ref}}) --> 192.151.236.138 (6759e847-843c-44ee-9f4b-924661b7c97d) --> 86a05dcffe87caf7099dda44d9ec6b48 (befaf99c-cac5-
4caf-ba18-17231ad42f09)
www.download.windowsupdate.com ({{no_ref}}) --> b333b5d541a0488f4e710ae97c46d9c2 (2b474dd0-3f94-43d4-86d6-a7b6a95b25cf)
DROUVIN.COM ({{no_ref}}) --> 213.186.33.99 ({{no_ref}}) --> bbfd1e703f55ce779b536b5646a0cdc1 (43495fce-577b-4d59-8322-3a0cf1c15e88)
MICR0SOFT.ORG ({{no_ref}}) --> 49.143.205.30 (f5dc633e-1001-461b-8f38-834c99d32b33)
HOUSEOFCARS.NET.PL ({{no_ref}}) --> 213.186.33.99 ({{no_ref}}) --> bbfd1e703f55ce779b536b5646a0cdc1 (43495fce-577b-4d59-8322-
3a0cf1c15e88)
ECWARD.COM ({{no_ref}}) --> 72.11.141.133 (719b088c-e2cc-43fa-9bd3-f34264f7e57f)
APINK.LOVE ({{no_ref}}) --> 210.209.89.162 ({{no_ref}}) --> 728e5700a401498d91fb83159beec834 (d1e6920b-151d-40db-b83c-3b7635e5768e)
NHINF.EU ({{no_ref}}) --> 192.151.236.138 (6759e847-843c-44ee-9f4b-924661b7c97d) --> 86a05dcffe87caf7099dda44d9ec6b48 (befaf99c-cac5-
4caf-ba18-17231ad42f09)
ZLLQG.EU ({{no_ref}}) --> 192.151.236.138 (6759e847-843c-44ee-9f4b-924661b7c97d) --> 86a05dcffe87caf7099dda44d9ec6b48 (befaf99c-cac5-
4caf-ba18-17231ad42f09)
WEILINGYU.PW ({{no_ref}}) --> 210.209.89.162 ({{no_ref}}) --> 728e5700a401498d91fb83159beec834 (d1e6920b-151d-40db-b83c-3b7635e5768e)
LOPEZ-GARCIA.COM ({{no_ref}}) --> 213.186.33.99 ({{no_ref}}) --> bbfd1e703f55ce779b536b5646a0cdc1 (43495fce-577b-4d59-8322-
3a0cf1c15e88)
103.24.1.54 (30a10fe0-0cd0-4272-a54e-96f9def2e7d9) --> bbfd1e703f55ce779b536b5646a0cdc1 (43495fce-577b-4d59-8322-3a0cf1c15e88)
190.123.36.115 ({{no_ref}}) --> 2bec1860499aae1dbcc92f48b276f998 (5acaccc5-eeac-43a3-8d0c-e7ca2358274e)
190.123.36.113 ({{no_ref}}) --> 93e40da0bd78bebe5e1b98c6324e9b5b (35dd574a-9547-4039-9f41-335a9242e37b)
190.123.36.111 ({{no_ref}}) --> b333b5d541a0488f4e710ae97c46d9c2 (2b474dd0-3f94-43d4-86d6-a7b6a95b25cf)
2.18.213.208 ({{no_ref}}) --> b333b5d541a0488f4e710ae97c46d9c2 (2b474dd0-3f94-43d4-86d6-a7b6a95b25cf)
5.178.43.10 ({{no_ref}}) --> 4251aaf38a485b08d5562c6066370f09 (60dcaaac-dd21-4dae-b34e-a4ac7e77ef28)
64.4.10.33 ({{no_ref}}) --> 1cb4b74e9d030afbb18accf6ee2bfca1 (b6f11868-e483-46fb-9ab7-6642a4f3a701)
95.101.0.89 ({{no_ref}}) --> 86a05dcffe87caf7099dda44d9ec6b48 (befaf99c-cac5-4caf-ba18-17231ad42f09)
104.41.150.68 ({{no_ref}}) --> b333b5d541a0488f4e710ae97c46d9c2 (2b474dd0-3f94-43d4-86d6-a7b6a95b25cf)
88.221.14.115 ({{no_ref}}) --> 728e5700a401498d91fb83159beec834 (d1e6920b-151d-40db-b83c-3b7635e5768e)
65.55.56.206 ({{no_ref}}) --> 57e85fc30502a925ffed16082718ec6c (6aa043cf-7ff3-4d88-a4a0-8df604f64047)
23.99.222.162 ({{no_ref}}) --> f7a842eb1364d1269b40a344510068e8 (1b3fd223-5c45-4d8c-98b3-4ce6e309ecc6)
88.221.15.80 ({{no_ref}}) --> 12a522cb96700c82dc964197adb57ddf (da94cf08-2252-4238-af92-9012917a0813)
180.225.152.30 ({{no_ref}}) --> 1cb4b74e9d030afbb18accf6ee2bfca1 (b6f11868-e483-46fb-9ab7-6642a4f3a701)
104.209.134.106 ({{no_ref}}) --> 2bec1860499aae1dbcc92f48b276f998 (5acaccc5-eeac-43a3-8d0c-e7ca2358274e)
210.209.89.162 ({{no_ref}}) --> 728e5700a401498d91fb83159beec834 (d1e6920b-151d-40db-b83c-3b7635e5768e)
192.151.236.138 (6759e847-843c-44ee-9f4b-924661b7c97d) --> 86a05dcffe87caf7099dda44d9ec6b48 (befaf99c-cac5-4caf-ba18-17231ad42f09)
213.186.33.99 ({{no_ref}}) --> bbfd1e703f55ce779b536b5646a0cdc1 (43495fce-577b-4d59-8322-3a0cf1c15e88)
Figure 12. Output of the chain function showing newly discovered Indicators (marked with {{no_ref}}) and the links that lead to their
discovery from the original input Indicators.
Automated Network Defense through Threat Intelligence and Knowledge Management
21
Christopher O’Brien, [email protected]
create local copies of useful resources in order to increase efficiency of querying and
maximize the re-use of API response results. Whilst that may be considered efficient in
terms of short term costs (over costly API query-limit increases), local indexes need
additional resource to save to disk and are continuously under threat of becoming out of
date due to a lack of regular updates. As such, organizations should consider the benefits
of Query-in-Place (QiP) where remote resources are accessed dynamically on a just-in-
time basis. This ensures that the data is as accurate as the primary source and reduces the
burden of maintaining a local copy. The relevant advantages and disadvantages of each
approach will be dependent on specific data feeds, though ensuring that both the QiP and
local-copy solutions are accessible through an automated API enables flexibility in
enrichment implementation.
2.5. Tactical-Strategic Fusion Developing the test mechanisms is useful, but not novel. The value in containing
them in a STIX object is in the ability to trace the tactical data (test mechanism associated
with an Observable) through to its strategic context (association to a TTP or Threat
Actor), pivot off that data and start to suggest other associated tactical data that may also
be worth deploying. This allows for prioritization of other test mechanisms that may have
not been considered previously (either for purposes of reducing load on the network
sensors or because they were added in real time through dynamic enrichment) but also
provides that strategic context to be able to understand the likely motivations of the attack
due to the asserted link to a known Threat Actor.
During this experiment we obtain a copy of one of the samples referenced in the
TG3390 report from VirusTotal. We then set up a victim on a WinXP machine and
establish a shared folder from a networked Kali box. From the victim, we then browse to
the network share and run the sample. Figure 13 shows a Wireshark representation of a
packet capture from the experiment.
Automated Network Defense through Threat Intelligence and Knowledge Management
22
Christopher O’Brien, [email protected]
Figure 13. Screenshot showing packet capture during infection. Note highlighted sections showing SMB session (1) to transfer 'update.exe' which can later be carved out using Wireshark, and ensuing DNS request for
update.hancominc.com (2).
Importantly, the domain name that is queried through DNS activity following the
running of the sample is the same as one from the TG3390 report. By writing SNORT
test mechanisms such as that at line 69 of Annex A we can ensure that this activity would
be detected. We can also confirm that the file hash is preserved through transfer as
illustrated in Figure 14.
Figure 14. Screenshot to show the malware pre-infection (update.exe) and the file carved out of Wireshark pcap
from the SMB transfer (__update.exe). The hashes are the same as shown by the MD5 hash comparison.
Both the file transfer and DNS request can be detected using a combination of
SNORT and Bro.
(1)
(2)
Automated Network Defense through Threat Intelligence and Knowledge Management
23
Christopher O’Brien, [email protected]
2.5.1. File Hash Detection Bro is a Network Security Monitor tool can implement heuristic detection and use
of a native scripting language to enhance network detection. As of version 2.2, Bro
comes equipped with the File Analysis Framework (FAF) (Bro, 2015). This allows for
files of multiple different protocols to be detected in pcap and have analysis run against
them without the need for custom protocol parsing. At time of writing the core FAF
framework does not support SMB, thought the below is an output from the same
experiment using a ‘drive-by download’ setup (HTTP) which Bro does currently support.
Note that the same executable is used in Figure 15 as in Figure 14, however the
file hash is different. On investigation it appeared that the HTTP transfer caused slight
change to the executable, suspected to be due to URL Encoding of ASCII-characters
however this was not confirmed. It is important to note that many of these file-carving
techniques are still emerging and may not be consistent across implementations (Bro and
Wireshark, in this case) and a potential direction for future work may be to investigate
whether file hashes are consistently reproducible in network detection systems.
2.5.2. Network Connection Detection A simple SNORT rule, as created in the TG3390 enrichment code, can then be
deployed to the appropriate rule set to run over the same pcap in order to detect any
follow on network connections. The SNORT rules are created by the custom deploy.py
module and clearly marked as ‘Automated deployment’. This is a critical part of the data
marking process to ensure that any network defenders responding to a SNORT alert
generated through this method are aware that it has not necessarily been validated by
anything other than an automated process. This is highlighted through the experiment as
one of the domains returned through VirusTotal enrichment as being beaconed to by a
#path files
#open 2015-12-13-13-56-22
#fields ts tx_hosts rx_hosts analyzers md5
#types time set[addr] set[addr] set[string] string
1449069585.211766 166.78.45.16 10.10.1.129 MD5 eccb787a93193fbb4238bcd24520d75e
1449069585.211766 166.78.45.16 10.10.1.129 MD5 23bb075facfbfb026935b31fb6ee063b
1449069585.211766 166.78.45.16 10.10.1.129 MD5 2e7db2a31d0e3da4b25f49b9542a2e1a
#close 2015-12-13-13-56-22
Figure 15. Snipped extract from files.log as an output of Bro on the same executable (highlighted) rendered to the victim as a drive-
by download. Note that the hash of the same file is actually different.
Automated Network Defense through Threat Intelligence and Knowledge Management
24
Christopher O’Brien, [email protected]
known malicious file hash was ‘www.download.windowsupdate.com’. Instinctively this
is likely to be a false positive – however, the enrichment has successfully identified that
malicious code of this type does attempt to communicate with this domain. Hence, while
the Indicator itself is legitimate, the context within which it is detected is important.
In the TG3390 example we deploy SNORT rules for all observables to a given
rule file as determined by the config.ini file. Provided this rule file is incorporated as part
of a SNORT deployment, a script can then be run to monitor for new alerts. The added
benefit of this technique being that the SNORT rule is saved to a STIX file in the context
of a Threat Actor and a TTP, so additional context can automatically be used to enrich
the alert and assist in incident triage.
Figure 16. Screenshot of SNORT running automatically generated rules from STIX over a pcap sample of the
malicious executable SMB transfer reproduced in Figure 13.
The successful detection is merely an indication, and clear labelling is put in the
SNORT rule’s message to indicate that this is an automated deployment – warranting
further investigation, but not necessarily to be trusted as a true positive.
Figure 17. Screenshot of the uploaded STIX file as viewed in Soltra Edge, showing the cross-referenced Observable
ID as detected in the SNORT alert.
This script ‘inboxes’ both the original TG3390 (STIX format) and the enrichment
data in a Soltra Edge server which can then be queried in the ensuing incident response.
As shown in Figure 17, the recorded contextual data can then be rendered to other users
of (in this case) Soltra Edge so that they can quickly benefit from the corporate
Automated Network Defense through Threat Intelligence and Knowledge Management
25
Christopher O’Brien, [email protected]
knowledge of this structured data. Whilst this example shows a manual usage of a
graphical user interface, the back end query can be further enhanced to make use of a
remote access API for the TAXII server. This is another potential route for future work.
3. Conclusion Threat Intelligence is complex and we need models to be able to conceptualize the
problem space and be able to assimilate bulk data in an automated way. The use of
structured threat intelligence languages, such as STIX, allow network defenders to
structure data in such a way as to allow automated defense deployments without
compromising on strategic context.
There are limitations with these languages as high flexibility often leads to infinite
coding possibilities. With so many varied interpretations of ‘standard’ CTI structures it is
difficult to agree on a standardized structure. However, previous languages have made
the mistake of being too hierarchical and not allowing for faceted object structures. A
compromise is required to retain repeatability for automated systems while allowing
analytical flexibility. This may be in the form of ‘templates’ for standard threat
intelligence reporting structures such as the ones developed through the course of this
experiment.
To make better use of the intelligence there is a need for further development of
interoperable analytical tools. Whilst some conversion languages do exist for commonly
used tools, few take full advantage of the conceptual object model in languages such as
STIX. This interoperability would benefit from an improved querying functionality for
STIX. TAXII currently does not have the level of querying capability to act as a true API
to STIX-structured data making QIP nearly impossible without replication of a RESTful
(or similar) overlay.
All of the techniques demonstrated come from open source and open architecture
techniques. Even those network defenders on limited budgets can use techniques in this
paper to dramatically increase their usage of threat intelligence data to protect their
networks. Capability can be increased even further if those publishing reports and
creating intelligence feeds could leverage the same techniques in publishing as they do
Automated Network Defense through Threat Intelligence and Knowledge Management
26
Christopher O’Brien, [email protected]
for their own internal knowledge management. I look forward to the first vendor to
deliver an ‘APT outing’ report in full STIX format of their own volition.
Annex A Output from TG3390 exploitation process generated a full STIX interpretation including enrichment through SNORT rules.
Note: Domains are added as distinct test mechanisms as part of a list whilst groups of IP addresses are assumed to be ‘or’ indicators of
activity associated with TG3390.
<stix:STIX_Package ˺ xmlns:AddressObj="http://cybox.mitre.org/objects#AddressObject-2" ˻ xmlns:DomainNameObj="http://cybox.mitre.org/objects#DomainNameObject-1" ˼ xmlns:FileObj="http://cybox.mitre.org/objects#FileObject-2" ˽ xmlns:certuk="https://cert.gov.uk" ˾ xmlns:cybox="http://cybox.mitre.org/cybox-2" ˿ xmlns:cyboxCommon="http://cybox.mitre.org/common-2" ̀ xmlns:cyboxVocabs="http://cybox.mitre.org/default_vocabularies-2" ́ xmlns:indicator="http://stix.mitre.org/Indicator-2" ̂ xmlns:marking="http://data-marking.mitre.org/Marking-1" ˺˹ xmlns:snortTM="http://stix.mitre.org/extensions/TestMechanism#Snort-1" ˺˺ xmlns:stix="http://stix.mitre.org/stix-1" ˺˻ xmlns:stixCommon="http://stix.mitre.org/common-1" ˺˼ xmlns:stixVocabs="http://stix.mitre.org/default_vocabularies-1" ˺˽ xmlns:tlpMarking="http://data-marking.mitre.org/extensions/MarkingStructure#TLP-1" ˺˾ xmlns:ttp="http://stix.mitre.org/TTP-1" ˺˿ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="certuk:Package-e07d604c-0b6a-4b28-8ddc-e22561a6ca18" version="1.2"> ˺̀ <stix:STIX_Header> ˺́ <stix:Title>TG3390</stix:Title> ˺̂ <stix:Description>Dell SecureWorks Counter Threat Unit(TM) (CTU) researchers investigated activities associated with Threat ˻˹ Group-3390[1] (TG-3390) - http://www.secureworks.com/cyber-threat-intelligence/threats/threat-group-3390-targets-organizations-for-˻˺ cyberespionage/</stix:Description> ˻˻ <stix:Handling> ˻˼ <marking:Marking> ˻˽ <marking:Controlled_Structure>../../../../descendant-or-self::node()</marking:Controlled_Structure> ˻˾ <marking:Marking_Structure xsi:type='tlpMarking:TLPMarkingStructureType' color="WHITE"/> ˻˿ </marking:Marking> ˻̀ </stix:Handling> ˻́ </stix:STIX_Header> ˻̂ <stix:Indicators> ˼˹ <stix:Indicator id="certuk:indicator-337b6e9a-cefc-48d3-80ec-19c8dbf3c7c8" timestamp="2015-12-13T23:25:35.094930+00:00" ˼˺ xsi:type='indicator:IndicatorType'> ˼˻ <indicator:Title>Domains associated with TG3390 Infrastructure</indicator:Title> ˼˼ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">Domain Watchlist</indicator:Type> ˼˽ <indicator:Observable id="certuk:Observable-5af24b0c-4f62-4bc1-bb7b-5a47ff6a8e4d"> ˼˾ <cybox:Observable_Composition operator="OR"> ˼˿ <cybox:Observable id="certuk:Observable-1be5d43e-8a40-4169-af95-8b758387de67"> ˼̀ <cybox:Object id="certuk:DomainName-6e7c9b86-c559-4921-b162-1572c3465c95"> ˼́ <cybox:Properties xsi:type="DomainNameObj:DomainNameObjectType"> ˼̂ <DomainNameObj:Value>american.blackcmd.com</DomainNameObj:Value> ˽˹ </cybox:Properties> ˽˺ </cybox:Object> ˽˻ </cybox:Observable> ˽˼ <snip></snip> ˽˽ <cybox:Observable id="certuk:Observable-2c4d555f-05bf-43b5-ad00-f1f18e6097e4"> ˽˾ <cybox:Object id="certuk:DomainName-9bb9dac0-c155-4b06-b65b-dbd834e18aef"> ˽˿ <cybox:Properties xsi:type="DomainNameObj:DomainNameObjectType"> ˽̀
Automated Network Defense through Threat Intelligence and Knowledge Management
29
Christopher O’Brien, [email protected]
<DomainNameObj:Value>update.hancominc.com</DomainNameObj:Value> ˽́ </cybox:Properties> ˽̂ </cybox:Object> ˾˹ </cybox:Observable> ˾˺ </cybox:Observable_Composition> ˾˻ </indicator:Observable> ˾˼ <indicator:Indicated_TTP> ˾˽ <stixCommon:TTP idref="certuk:ttp-05bcd4b6-392d-42d1-80b0-ce9340b5bd3c" xsi:type='ttp:TTPType'/> ˾˾ </indicator:Indicated_TTP> ˾˿ <indicator:Test_Mechanisms> ˾̀ <indicator:Test_Mechanism xsi:type='snortTM:SnortTestMechanismType'> ˾́ <indicator:Efficacy timestamp="2015-12-13T23:25:36.555749+00:00"> ˾̂ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">High</stixCommon:Value> ˿˹ </indicator:Efficacy> ˿˺ <indicator:Producer> ˿˻ <stixCommon:Identity> ˿˼ <stixCommon:Name>Auto</stixCommon:Name> ˿˽ </stixCommon:Identity> ˿˾ </indicator:Producer> ˿˿ <snortTM:Rule><![CDATA[alert udp $HOME_NET 53 -> any any (msg:"Automated STIX deployment - 337b6e9a-cefc-48d3-˿̀ 80ec-19c8dbf3c7c8";content:"|08|american|08|blackcmd|03|com|00|"; sid: 20059624;)]]></snortTM:Rule> ˿́ <snortTM:Rule><![CDATA[alert udp $HOME_NET 53 -> any any (msg:"Automated STIX deployment - 337b6e9a-cefc-48d3-˿̂ 80ec-19c8dbf3c7c8";content:"|06|update|09|hancominc|03|com|00|"; sid: 20000417;)]]></snortTM:Rule> ̀˹ </indicator:Test_Mechanism> ̀˺ </indicator:Test_Mechanisms> ̀˻ <indicator:Confidence timestamp="2015-12-13T23:25:35.095606+00:00"> ̀˼ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">High</stixCommon:Value> ̀˽ </indicator:Confidence> ̀˾ </stix:Indicator> ̀˿ <stix:Indicator id="certuk:indicator-79ae6553-9bec-4d2d-a93c-318950151a18" timestamp="2015-12-13T23:25:35.109011+00:00" ̀̀ xsi:type='indicator:IndicatorType'> ̀́ <indicator:Title>[H] IP Addresses associated with TG3390 Infrastructure</indicator:Title> ̀̂ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">IP Watchlist</indicator:Type> ́˹ <indicator:Observable id="certuk:Observable-0f261ec6-b84a-4402-a932-0edafb93331d"> ́˺ <cybox:Observable_Composition operator="OR"> ́˻ <cybox:Observable id="certuk:Observable-79ed3f57-43f6-4578-910c-df128d3afb8a"> ́˼ <cybox:Object id="certuk:Address-a534bd67-d4ef-413e-bc03-595d0f187867"> ́˽ <cybox:Properties xsi:type="AddressObj:AddressObjectType" category="ipv4-addr"> ́˾ <AddressObj:Address_Value>208.115.242.36</AddressObj:Address_Value> ́˿ </cybox:Properties> ́̀ </cybox:Object> ́́ </cybox:Observable> ́̂ <snip></snip> ̂˹ <cybox:Observable id="certuk:Observable-719b088c-e2cc-43fa-9bd3-f34264f7e57f"> ̂˺ <cybox:Object id="certuk:Address-d005526f-15a5-4d6f-9fb7-62fa681469f2"> ̂˻ <cybox:Properties xsi:type="AddressObj:AddressObjectType" category="ipv4-addr"> ̂˼ <AddressObj:Address_Value>72.11.141.133</AddressObj:Address_Value> ̂˽
Automated Network Defense through Threat Intelligence and Knowledge Management
30
Christopher O’Brien, [email protected]
</cybox:Properties> ̂˾ </cybox:Object> ̂˿ </cybox:Observable> ̂̀ </cybox:Observable_Composition> ̂́ </indicator:Observable> ̂̂ <indicator:Indicated_TTP> ˺˹˹ <stixCommon:TTP idref="certuk:ttp-05bcd4b6-392d-42d1-80b0-ce9340b5bd3c" xsi:type='ttp:TTPType'/> ˺˹˺ </indicator:Indicated_TTP> ˺˹˻ <indicator:Test_Mechanisms> ˺˹˼ <indicator:Test_Mechanism xsi:type='snortTM:SnortTestMechanismType'> ˺˹˽ <indicator:Efficacy timestamp="2015-12-13T23:25:36.546388+00:00"> ˺˹˾ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">High</stixCommon:Value> ˺˹˿ </indicator:Efficacy> ˺˹̀ <indicator:Producer> ˺˹́ <stixCommon:Identity> ˺˹̂ <stixCommon:Name>Auto</stixCommon:Name> ˺˺˹ </stixCommon:Identity> ˺˺˺ </indicator:Producer> ˺˺˻ <snortTM:Rule><![CDATA[alert tcp $HOME_NET any -> ˺˺˼ [208.115.242.36,208.115.242.37,208.115.242.38,66.63.178.142,72.11.148.220,72.11.141.133,74.63.195.236,74.63.195.236,74.63.195.237,74.6˺˺˽ 3.195.238,103.24.0.142,103.24.1.54,106.187.45.162,192.151.236.138,192.161.61.19,192.161.61.20,192.161.61.22,103.24.1.54,67.215.232.179˺˺˾ ,96.44.177.195] any (msg:"Automated STIX deployment - 79ae6553-9bec-4d2d-a93c-318950151a18"; sid: 20080767;)]]></snortTM:Rule> ˺˺˿ </indicator:Test_Mechanism> ˺˺̀ </indicator:Test_Mechanisms> ˺˺́ <indicator:Confidence timestamp="2015-12-13T23:25:35.121027+00:00"> ˺˺̂ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">High</stixCommon:Value> ˺˻˹ </indicator:Confidence> ˺˻˺ </stix:Indicator> ˺˻˻ <stix:Indicator id="certuk:indicator-26cb2ff5-e474-4987-9aed-621232c786d6" timestamp="2015-12-13T23:25:35.121260+00:00" ˺˻˼ xsi:type='indicator:IndicatorType'> ˺˻˽ <indicator:Title>[M] IP Addresses associated with TG3390 Infrastructure</indicator:Title> ˺˻˾ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">IP Watchlist</indicator:Type> ˺˻˿ <indicator:Observable id="certuk:Observable-e9cc38e5-f89e-48b5-9cab-7e00e4f32bb0"> ˺˻̀ <cybox:Observable_Composition operator="OR"> ˺˻́ <cybox:Observable id="certuk:Observable-35769669-ac3e-4ad8-ad60-2b52e963ad41"> ˺˻̂ <cybox:Object id="certuk:Address-abea616e-370b-4d47-a0a0-14ece1151b77"> ˺˼˹ <cybox:Properties xsi:type="AddressObj:AddressObjectType" category="ipv4-addr"> ˺˼˺ <AddressObj:Address_Value>49.143.192.221</AddressObj:Address_Value> ˺˼˻ </cybox:Properties> ˺˼˼ </cybox:Object> ˺˼˽ </cybox:Observable> ˺˼˾ <snip></snip> ˺˼˿ <cybox:Observable id="certuk:Observable-7d30568f-d07c-4c0b-96c3-ba6912d40895"> ˺˼̀ <cybox:Object id="certuk:Address-cd77b023-198f-4d11-b024-ac692af7861c"> ˺˼́ <cybox:Properties xsi:type="AddressObj:AddressObjectType" category="ipv4-addr"> ˺˼̂ <AddressObj:Address_Value>49.143.205.30</AddressObj:Address_Value> ˺˽˹ </cybox:Properties> ˺˽˺
Automated Network Defense through Threat Intelligence and Knowledge Management
31
Christopher O’Brien, [email protected]
</cybox:Object> ˺˽˻ </cybox:Observable> ˺˽˼ </cybox:Observable_Composition> ˺˽˽ </indicator:Observable> ˺˽˾ <indicator:Indicated_TTP> ˺˽˿ <stixCommon:TTP idref="certuk:ttp-05bcd4b6-392d-42d1-80b0-ce9340b5bd3c" xsi:type='ttp:TTPType'/> ˺˽̀ </indicator:Indicated_TTP> ˺˽́ <indicator:Test_Mechanisms> ˺˽̂ <indicator:Test_Mechanism xsi:type='snortTM:SnortTestMechanismType'> ˺˾˹ <indicator:Efficacy timestamp="2015-12-13T23:25:36.546563+00:00"> ˺˾˺ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">Medium</stixCommon:Value> ˺˾˻ </indicator:Efficacy> ˺˾˼ <indicator:Producer> ˺˾˽ <stixCommon:Identity> ˺˾˾ <stixCommon:Name>Auto</stixCommon:Name> ˺˾˿ </stixCommon:Identity> ˺˾̀ </indicator:Producer> ˺˾́ <snortTM:Rule><![CDATA[alert tcp $HOME_NET any -> ˺˾̂ [49.143.192.221,67.215.232.181,67.215.232.182,96.44.182.243,96.44.182.245,96.44.182.246,49.143.205.30] any (msg:"Automated STIX ˺˿˹ deployment - 26cb2ff5-e474-4987-9aed-621232c786d6"; sid: 20065749;)]]></snortTM:Rule> ˺˿˺ </indicator:Test_Mechanism> ˺˿˻ </indicator:Test_Mechanisms> ˺˿˼ <indicator:Confidence timestamp="2015-12-13T23:25:35.121359+00:00"> ˺˿˽ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">Medium</stixCommon:Value> ˺˿˾ </indicator:Confidence> ˺˿˿ </stix:Indicator> ˺˿̀ <stix:Indicator id="certuk:indicator-cb377a6e-70ab-470b-85ba-9fa499a05258" timestamp="2015-12-13T23:25:35.124570+00:00" ˺˿́ xsi:type='indicator:IndicatorType'> ˺˿̂ <indicator:Title>File hashes for HTTP Browser Dropper</indicator:Title> ˺̀˹ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">File Hash Watchlist</indicator:Type> ˺̀˺ <indicator:Observable id="certuk:Observable-4f5af697-c110-4fd4-a243-cd2fa59d0998"> ˺̀˻ <cybox:Observable_Composition operator="OR"> ˺̀˼ <cybox:Observable id="certuk:Observable-44ea94c0-6e91-4748-9148-3c1822912be4"> ˺̀˽ <cybox:Object id="certuk:File-34ec4dab-d8c4-4161-8826-f2c788c03327"> ˺̀˾ <cybox:Properties xsi:type="FileObj:FileObjectType"> ˺̀˿ <FileObj:Hashes> ˺̀̀ <cyboxCommon:Hash> ˺̀́ <cyboxCommon:Type xsi:type="cyboxVocabs:HashNameVocab-1.0">MD5</cyboxCommon:Type> ˺̀̂ ˺́˹ <cyboxCommon:Simple_Hash_Value>1cb4b74e9d030afbb18accf6ee2bfca1</cyboxCommon:Simple_Hash_Value> ˺́˺ </cyboxCommon:Hash> ˺́˻ </FileObj:Hashes> ˺́˼ </cybox:Properties> ˺́˽ </cybox:Object> ˺́˾ </cybox:Observable> ˺́˿ <snip></snip> ˺́̀ <cybox:Observable id="certuk:Observable-a75b7d05-ab53-4c33-82de-9f67f93911c1"> ˺́́
Automated Network Defense through Threat Intelligence and Knowledge Management
32
Christopher O’Brien, [email protected]
<cybox:Object id="certuk:File-162dde0b-fef5-46b1-9227-2bb06d6aebc9"> ˺́̂ <cybox:Properties xsi:type="FileObj:FileObjectType"> ˺̂˹ <FileObj:Hashes> ˺̂˺ <cyboxCommon:Hash> ˺̂˻ <cyboxCommon:Type xsi:type="cyboxVocabs:HashNameVocab-1.0">MD5</cyboxCommon:Type> ˺̂˼ ˺̂˽ <cyboxCommon:Simple_Hash_Value>2bec1860499aae1dbcc92f48b276f998</cyboxCommon:Simple_Hash_Value> ˺̂˾ </cyboxCommon:Hash> ˺̂˿ </FileObj:Hashes> ˺̂̀ </cybox:Properties> ˺̂́ </cybox:Object> ˺̂̂ </cybox:Observable> ˻˹˹ </cybox:Observable_Composition> ˻˹˺ </indicator:Observable> ˻˹˻ <indicator:Indicated_TTP> ˻˹˼ <stixCommon:TTP idref="certuk:ttp-a7a8a618-f372-4520-871c-cf8ccf4939a8" xsi:type='ttp:TTPType'/> ˻˹˽ </indicator:Indicated_TTP> ˻˹˾ <indicator:Confidence timestamp="2015-12-13T23:25:35.124644+00:00"> ˻˹˿ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">High</stixCommon:Value> ˻˹̀ </indicator:Confidence> ˻˹́ </stix:Indicator> ˻˹̂ <stix:Indicator id="certuk:indicator-2c150e19-9435-4ebf-9097-f3d0431e1541" timestamp="2015-12-13T23:25:35.124085+00:00" ˻˺˹ xsi:type='indicator:IndicatorType'> ˻˺˺ <indicator:Title>File hashes for HTTP Browser</indicator:Title> ˻˺˻ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">File Hash Watchlist</indicator:Type> ˻˺˼ <indicator:Observable id="certuk:Observable-44a589b5-9990-4436-8c20-856f6ddb375d"> ˻˺˽ <cybox:Observable_Composition operator="OR"> ˻˺˾ <cybox:Observable id="certuk:Observable-d1e700da-26df-4bee-b0b2-90178cbcc6e6"> ˻˺˿ <cybox:Object id="certuk:File-80f3d451-2625-4eef-97cd-60036fbfac11"> ˻˺̀ <cybox:Properties xsi:type="FileObj:FileObjectType"> ˻˺́ <FileObj:Hashes> ˻˺̂ <cyboxCommon:Hash> ˻˻˹ <cyboxCommon:Type xsi:type="cyboxVocabs:HashNameVocab-1.0">MD5</cyboxCommon:Type> ˻˻˺ ˻˻˻ <cyboxCommon:Simple_Hash_Value>014122d7851fa8bf4070a8fc2acd5dc5</cyboxCommon:Simple_Hash_Value> ˻˻˼ </cyboxCommon:Hash> ˻˻˽ </FileObj:Hashes> ˻˻˾ </cybox:Properties> ˻˻˿ </cybox:Object> ˻˻̀ </cybox:Observable> ˻˻́ <snip></snip> ˻˻̂ <cybox:Observable id="certuk:Observable-0913c9ff-7dc8-4484-9f06-46e4392215e6"> ˻˼˹ <cybox:Object id="certuk:File-47e3aee3-2bfa-49a6-9c4c-f23a5c36dbe6"> ˻˼˺ <cybox:Properties xsi:type="FileObj:FileObjectType"> ˻˼˻ <FileObj:Hashes> ˻˼˼ <cyboxCommon:Hash> ˻˼˽ <cyboxCommon:Type xsi:type="cyboxVocabs:HashNameVocab-1.0">MD5</cyboxCommon:Type> ˻˼˾
Automated Network Defense through Threat Intelligence and Knowledge Management
33
Christopher O’Brien, [email protected]
˻˼˿ <cyboxCommon:Simple_Hash_Value>f627bc2db3cab34d97c8949931cb432d</cyboxCommon:Simple_Hash_Value> ˻˼̀ </cyboxCommon:Hash> ˻˼́ </FileObj:Hashes> ˻˼̂ </cybox:Properties> ˻˽˹ </cybox:Object> ˻˽˺ </cybox:Observable> ˻˽˻ </cybox:Observable_Composition> ˻˽˼ </indicator:Observable> ˻˽˽ <indicator:Indicated_TTP> ˻˽˾ <stixCommon:TTP idref="certuk:ttp-02bd5584-4b78-4006-8276-9c9c17eeade5" xsi:type='ttp:TTPType'/> ˻˽˿ </indicator:Indicated_TTP> ˻˽̀ <indicator:Confidence timestamp="2015-12-13T23:25:35.124191+00:00"> ˻˽́ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">High</stixCommon:Value> ˻˽̂ </indicator:Confidence> ˻˾˹ </stix:Indicator> ˻˾˺ <stix:Indicator id="certuk:indicator-139edb52-2086-42d5-9dcb-3f4916b77f3b" timestamp="2015-12-13T23:25:35.150474+00:00" ˻˾˻ xsi:type='indicator:IndicatorType'> ˻˾˼ <indicator:Title>File hashes for PlugX Dropper</indicator:Title> ˻˾˽ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">File Hash Watchlist</indicator:Type> ˻˾˾ <indicator:Observable id="certuk:Observable-46f13f0f-a8c7-44aa-9132-dbe3c06c52b4"> ˻˾˿ <cybox:Observable_Composition operator="OR"> ˻˾̀ <cybox:Observable id="certuk:Observable-a8d65cc1-718b-4bd6-88be-0bf4d75ef96a"> ˻˾́ <cybox:Object id="certuk:File-223764fe-a61a-4387-a340-9ebd96071d8e"> ˻˾̂ <cybox:Properties xsi:type="FileObj:FileObjectType"> ˻˿˹ <FileObj:Hashes> ˻˿˺ <cyboxCommon:Hash> ˻˿˻ <cyboxCommon:Type xsi:type="cyboxVocabs:HashNameVocab-1.0">MD5</cyboxCommon:Type> ˻˿˼ ˻˿˽ <cyboxCommon:Simple_Hash_Value>b313bbe17bd5ee9c00acff3bfccdb48a</cyboxCommon:Simple_Hash_Value> ˻˿˾ </cyboxCommon:Hash> ˻˿˿ </FileObj:Hashes> ˻˿̀ </cybox:Properties> ˻˿́ </cybox:Object> ˻˿̂ </cybox:Observable> ˻̀˹ <snip></snip> ˻̀˺ <cybox:Observable id="certuk:Observable-b309b661-c592-429f-a7fd-5dbdf175caa4"> ˻̀˻ <cybox:Object id="certuk:File-635c8764-6ca9-40d7-a0da-8813c041db78"> ˻̀˼ <cybox:Properties xsi:type="FileObj:FileObjectType"> ˻̀˽ <FileObj:Hashes> ˻̀˾ <cyboxCommon:Hash> ˻̀˿ <cyboxCommon:Type xsi:type="cyboxVocabs:HashNameVocab-1.0">MD5</cyboxCommon:Type> ˻̀̀ ˻̀́ <cyboxCommon:Simple_Hash_Value>462fd01302bc40624a44b7960d2894cd</cyboxCommon:Simple_Hash_Value> ˻̀̂ </cyboxCommon:Hash> ˻́˹ </FileObj:Hashes> ˻́˺ </cybox:Properties> ˻́˻
Automated Network Defense through Threat Intelligence and Knowledge Management
34
Christopher O’Brien, [email protected]
</cybox:Object> ˻́˼ </cybox:Observable> ˻́˽ </cybox:Observable_Composition> ˻́˾ </indicator:Observable> ˻́˿ <indicator:Indicated_TTP> ˻́̀ <stixCommon:TTP idref="certuk:ttp-e241bd75-eab8-491b-8e7c-74780ab40414" xsi:type='ttp:TTPType'/> ˻́́ </indicator:Indicated_TTP> ˻́̂ <indicator:Confidence timestamp="2015-12-13T23:25:35.150556+00:00"> ˻̂˹ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">High</stixCommon:Value> ˻̂˺ </indicator:Confidence> ˻̂˻ </stix:Indicator> ˻̂˼ </stix:Indicators> ˻̂˽ <stix:TTPs> ˻̂˾ <stix:TTP id="certuk:ttp-05bcd4b6-392d-42d1-80b0-ce9340b5bd3c" timestamp="2015-12-13T23:25:35.085516+00:00" ˻̂˿ xsi:type='ttp:TTPType'> ˻̂̀ <ttp:Title>Infrastructure Building</ttp:Title> ˻̂́ <ttp:Intended_Effect timestamp="2015-12-13T23:25:35.085779+00:00"> ˻̂̂ <stixCommon:Value xsi:type="stixVocabs:IntendedEffectVocab-1.0">Unauthorized Access</stixCommon:Value> ˼˹˹ </ttp:Intended_Effect> ˼˹˺ <ttp:Behavior> ˼˹˻ <ttp:Attack_Patterns> ˼˹˼ <ttp:Attack_Pattern> ˼˹˽ <ttp:Description>Infrastructure Building</ttp:Description> ˼˹˾ </ttp:Attack_Pattern> ˼˹˿ </ttp:Attack_Patterns> ˼˹̀ </ttp:Behavior> ˼˹́ </stix:TTP> ˼˹̂ <stix:TTP id="certuk:ttp-02bd5584-4b78-4006-8276-9c9c17eeade5" timestamp="2015-12-13T23:25:35.121598+00:00" ˼˺˹ xsi:type='ttp:TTPType'> ˼˺˺ <ttp:Title>HTTP Browser</ttp:Title> ˼˺˻ <ttp:Intended_Effect timestamp="2015-12-13T23:25:35.123986+00:00"> ˼˺˼ <stixCommon:Value xsi:type="stixVocabs:IntendedEffectVocab-1.0">Theft - Intellectual Property</stixCommon:Value> ˼˺˽ </ttp:Intended_Effect> ˼˺˾ <ttp:Behavior> ˼˺˿ <ttp:Malware> ˼˺̀ <ttp:Malware_Instance> ˼˺́ <ttp:Name>HTTP Browser</ttp:Name> ˼˺̂ </ttp:Malware_Instance> ˼˻˹ </ttp:Malware> ˼˻˺ </ttp:Behavior> ˼˻˻ </stix:TTP> ˼˻˼ <stix:TTP id="certuk:ttp-a7a8a618-f372-4520-871c-cf8ccf4939a8" timestamp="2015-12-13T23:25:35.124416+00:00" ˼˻˽ xsi:type='ttp:TTPType'> ˼˻˾ <ttp:Title>HTTP Browser Dropper</ttp:Title> ˼˻˿ <ttp:Intended_Effect timestamp="2015-12-13T23:25:35.124468+00:00"> ˼˻̀ <stixCommon:Value xsi:type="stixVocabs:IntendedEffectVocab-1.0">Theft - Intellectual Property</stixCommon:Value> ˼˻́ </ttp:Intended_Effect> ˼˻̂
Automated Network Defense through Threat Intelligence and Knowledge Management
35
Christopher O’Brien, [email protected]
<ttp:Behavior> ˼˼˹ <ttp:Malware> ˼˼˺ <ttp:Malware_Instance> ˼˼˻ <ttp:Name>HTTP Browser Dropper</ttp:Name> ˼˼˼ </ttp:Malware_Instance> ˼˼˽ </ttp:Malware> ˼˼˾ </ttp:Behavior> ˼˼˿ </stix:TTP> ˼˼̀ <stix:TTP id="certuk:ttp-e241bd75-eab8-491b-8e7c-74780ab40414" timestamp="2015-12-13T23:25:35.150306+00:00" ˼˼́ xsi:type='ttp:TTPType'> ˼˼̂ <ttp:Title>PlugX Dropper</ttp:Title> ˼˽˹ <ttp:Intended_Effect timestamp="2015-12-13T23:25:35.150373+00:00"> ˼˽˺ <stixCommon:Value xsi:type="stixVocabs:IntendedEffectVocab-1.0">Theft - Intellectual Property</stixCommon:Value> ˼˽˻ </ttp:Intended_Effect> ˼˽˼ <ttp:Behavior> ˼˽˽ <ttp:Malware> ˼˽˾ <ttp:Malware_Instance> ˼˽˿ <ttp:Name>PlugX Dropper</ttp:Name> ˼˽̀ </ttp:Malware_Instance> ˼˽́ </ttp:Malware> ˼˽̂ </ttp:Behavior> ˼˾˹ </stix:TTP> ˼˾˺ </stix:TTPs> ˼˾˻ </stix:STIX_Package> ˼˾˼
Automated Network Defense through Threat Intelligence and Knowledge Management
37
Christopher O’Brien, [email protected]
Annex B STIX package showing the structure of the newly identified data through enrichment. This package is a standalone package but
contains references to the original in order to maintain the provenance chain. This is shown in the sections labelled “Source of
enrichment for…” such as the one at line 103 for domain enrichment.
<stix:STIX_Package ˺ xmlns:AddressObj="http://cybox.mitre.org/objects#AddressObject-2" ˻ xmlns:DomainNameObj="http://cybox.mitre.org/objects#DomainNameObject-1" ˼ xmlns:certuk="https://cert.gov.uk" ˽ xmlns:cybox="http://cybox.mitre.org/cybox-2" ˾ xmlns:cyboxCommon="http://cybox.mitre.org/common-2" ˿ xmlns:cyboxVocabs="http://cybox.mitre.org/default_vocabularies-2" ̀ xmlns:indicator="http://stix.mitre.org/Indicator-2" ́ xmlns:marking="http://data-marking.mitre.org/Marking-1" ̂ xmlns:stix="http://stix.mitre.org/stix-1" ˺˹ xmlns:stixCommon="http://stix.mitre.org/common-1" ˺˺ xmlns:stixVocabs="http://stix.mitre.org/default_vocabularies-1" ˺˻ xmlns:tlpMarking="http://data-marking.mitre.org/extensions/MarkingStructure#TLP-1" ˺˼ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="certuk:Package-2d6668c4-1f39-46ba-9839-8b1009bf7256" version="1.2"> ˺˽ <stix:STIX_Header> ˺˾ <stix:Title>TG3390 - Enrichment</stix:Title> ˺˿ <stix:Description>Enrichment stix file to the Dell SecureWorks Counter Threat Unit(TM) (CTU) researchers investigated ˺̀ activities associated with Threat Group-3390[1] (TG-3390) - http://www.secureworks.com/cyber-threat-intelligence/threats/threat-group-˺́ 3390-targets-organizations-for-cyberespionage/</stix:Description> ˺̂ <stix:Handling> ˻˹ <marking:Marking> ˻˺ <marking:Controlled_Structure>../../../../descendant-or-self::node()</marking:Controlled_Structure> ˻˻ <marking:Marking_Structure xsi:type='tlpMarking:TLPMarkingStructureType' color="WHITE"/> ˻˼ </marking:Marking> ˻˽ </stix:Handling> ˻˾ </stix:STIX_Header> ˻˿ <stix:Indicators> ˻̀ <stix:Indicator id="certuk:indicator-29883c0b-8f0f-47a0-867e-0648e982a816" timestamp="2015-12-13T23:28:12.449687+00:00" ˻́ xsi:type='indicator:IndicatorType'> ˻̂ <indicator:Title>Suspected TG3390 IP Addresses obtained through automated enrichment</indicator:Title> ˼˹ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">IP Watchlist</indicator:Type> ˼˺ <indicator:Observable id="certuk:Observable-23ec76af-e827-4eac-a4a4-f8401679bb11"> ˼˻ <cybox:Observable_Composition operator="OR"> ˼˼ <cybox:Observable id="certuk:Observable-6a52a217-65d6-4a0c-b417-b3a92f22fd5c"> ˼˽ <cybox:Object id="certuk:Address-fb76e105-4ab4-400f-b216-f58e3ebf82af"> ˼˾ <cybox:Properties xsi:type="AddressObj:AddressObjectType" category="ipv4-addr"> ˼˿ <AddressObj:Address_Value>64.4.10.33</AddressObj:Address_Value> ˼̀ </cybox:Properties> ˼́ </cybox:Object> ˼̂ </cybox:Observable> ˽˹ <snip></snip> ˽˺ <cybox:Observable id="certuk:Observable-4487850d-e534-4dc2-8f9b-4b461e32247d"> ˽˻ <cybox:Object id="certuk:Address-81554538-ccc8-439e-bb0a-7bba350c7bb1"> ˽˼ <cybox:Properties xsi:type="AddressObj:AddressObjectType" category="ipv4-addr"> ˽˽ <AddressObj:Address_Value>2.18.213.208</AddressObj:Address_Value> ˽˾ </cybox:Properties> ˽˿ </cybox:Object> ˽̀
Automated Network Defense through Threat Intelligence and Knowledge Management
39
Christopher O’Brien, [email protected]
</cybox:Observable> ˽́ </cybox:Observable_Composition> ˽̂ </indicator:Observable> ˾˹ <indicator:Confidence timestamp="2015-12-13T23:28:12.449866+00:00"> ˾˺ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">Low</stixCommon:Value> ˾˻ </indicator:Confidence> ˾˼ <indicator:Related_Indicators> ˾˽ <indicator:Related_Indicator> ˾˾ <stixCommon:Relationship>Source of enrichment for IPs</stixCommon:Relationship> ˾˿ <stixCommon:Indicator id="certuk:indicator-9bc483a0-4650-4f3f-a851-a80c686a80ef" timestamp="2015-12-˾̀ 13T23:28:12.449974+00:00" xsi:type='indicator:IndicatorType'> ˾́ <indicator:Title>Related indicator wrapper for source of enrichment</indicator:Title> ˾̂ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">IP Watchlist</indicator:Type> ˿˹ <indicator:Observable id="certuk:Observable-b4a4465b-5df9-4639-960b-a1bfd560c969"> ˿˺ <cybox:Observable_Composition operator="OR"> ˿˻ <cybox:Observable id="certuk:File-635c8764-6ca9-40d7-a0da-8813c041db78"> ˿˼ <cybox:Description>Source of enrichment for: certuk:Observable-6a52a217-65d6-4a0c-b417-˿˽ b3a92f22fd5c, </cybox:Description> ˿˾ </cybox:Observable> ˿˿ <snip></snip> ˿̀ <cybox:Observable id="certuk:File-b846e425-150b-4d4c-9a3e-9c91e0912f02"> ˿́ <cybox:Description>Source of enrichment for: certuk:Observable-9e0b3d47-9d12-4deb-8b3b-˿̂ f3c5737095d1, certuk:Observable-ea811097-c6cb-458c-9ece-fe0a371b4da9, certuk:Observable-4487850d-e534-4dc2-8f9b-4b461e32247d, ̀˹ certuk:Observable-7165151f-e631-4ae0-a958-d1a8347ca278, certuk:Observable-7165151f-e631-4ae0-a958-d1a8347ca278, </cybox:Description> ̀˺ </cybox:Observable> ̀˻ </cybox:Observable_Composition> ̀˼ </indicator:Observable> ̀˽ <indicator:Confidence timestamp="2015-12-13T23:28:12.450050+00:00"> ̀˾ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">Medium</stixCommon:Value> ̀˿ </indicator:Confidence> ̀̀ </stixCommon:Indicator> ̀́ </indicator:Related_Indicator> ̀̂ </indicator:Related_Indicators> ́˹ </stix:Indicator> ́˺ <stix:Indicator id="certuk:indicator-7d8bd59b-f9fa-4807-9972-4ed24fc7cd46" timestamp="2015-12-13T23:28:12.450145+00:00" ́˻ xsi:type='indicator:IndicatorType'> ́˼ <indicator:Title>Suspected TG3390 Domains obtained through automated enrichment</indicator:Title> ́˽ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">Domain Watchlist</indicator:Type> ́˾ <indicator:Observable id="certuk:Observable-2b394a29-5533-4a10-b58b-9a480cec9a2e"> ́˿ <cybox:Observable_Composition operator="OR"> ́̀ <cybox:Observable id="certuk:Observable-5063b55a-601b-4361-a12d-94f5daaccc28"> ́́ <cybox:Object id="certuk:DomainName-75a10cf0-01b5-4ac0-b452-25e6f379312f"> ́̂ <cybox:Properties xsi:type="DomainNameObj:DomainNameObjectType"> ̂˹ <DomainNameObj:Value>ECWARD.COM</DomainNameObj:Value> ̂˺ </cybox:Properties> ̂˻ </cybox:Object> ̂˼ </cybox:Observable> ̂˽
Automated Network Defense through Threat Intelligence and Knowledge Management
40
Christopher O’Brien, [email protected]
<snip></snip> ̂˾ </cybox:Observable_Composition> ̂˿ </indicator:Observable> ̂̀ <indicator:Confidence timestamp="2015-12-13T23:28:12.450209+00:00"> ̂́ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">Low</stixCommon:Value> ̂̂ </indicator:Confidence> ˺˹˹ <indicator:Related_Indicators> ˺˹˺ <indicator:Related_Indicator> ˺˹˻ <stixCommon:Relationship>Source of enrichment for Domains</stixCommon:Relationship> ˺˹˼ <stixCommon:Indicator id="certuk:indicator-5f77d0b0-c032-48d7-907c-1633acaaadf4" timestamp="2015-12-˺˹˽ 13T23:28:12.450296+00:00" xsi:type='indicator:IndicatorType'> ˺˹˾ <indicator:Title>Related indicator wrapper for source of enrichment</indicator:Title> ˺˹˿ <indicator:Type xsi:type="stixVocabs:IndicatorTypeVocab-1.1">Domain Watchlist</indicator:Type> ˺˹̀ <indicator:Observable id="certuk:Observable-d6f201cd-e326-4797-b2be-1a4f5c93f509"> ˺˹́ <cybox:Observable_Composition operator="OR"> ˺˹̂ <cybox:Observable id="certuk:Address-719b088c-e2cc-43fa-9bd3-f34264f7e57f"> ˺˺˹ <cybox:Description>Source of enrichment for: certuk:Observable-5063b55a-601b-4361-a12d-˺˺˺ 94f5daaccc28, </cybox:Description> ˺˺˻ </cybox:Observable> ˺˺˼ <snip></snip> ˺˺˽ </cybox:Observable_Composition> ˺˺˾ </indicator:Observable> ˺˺˿ <indicator:Confidence timestamp="2015-12-13T23:28:12.450358+00:00"> ˺˺̀ <stixCommon:Value xsi:type="stixVocabs:HighMediumLowVocab-1.0">Medium</stixCommon:Value> ˺˺́ </indicator:Confidence> ˺˺̂ </stixCommon:Indicator> ˺˻˹ </indicator:Related_Indicator> ˺˻˺ </indicator:Related_Indicators> ˺˻˻ </stix:Indicator> ˺˻˼ </stix:Indicators> ˺˻˽ </stix:STIX_Package>˺˻˾
References
Bridges, R. A., Jones, C. L., Iannacone, M. D., Testa, K. M., & Goodall, J. R. (2014, June
9). Automatic Labeling for Entity Extraction in Cyber Security. Retrieved from Cornell University Library: http://arxiv.org/abs/1308.4941
Bro. (2015, December 1). File Analysis Framework. Retrieved from Bro Network Security Monitor: https://www.bro.org/sphinx-git/frameworks/file- analysis.html
Codenomicon. (n.d.). AbuseSA Product. Retrieved from Codenomicon: http://www.codenomicon.com/products/abusesa/
Dell SecureWorks. (2015, August 5). Threat Group-3390 Targets Organizations for Cyberespionage. Retrieved from Dell SecureWorks Cyber Threat Intelligence: http://www.secureworks.com/cyber-threat-intelligence/threats/threat- group-3390-targets-organizations-for-cyberespionage/
Denton, W. (2009, March 28). How to Make a Faceted Classification and Put It On the Web. Retrieved from Miskatonic University Press: https://www.miskatonic.org/library/facet-web-howto.html
domaintools. (n.d.). Retrieved from https://www.domaintools.com/ Farnham, G. (2013, October 14). Tools and Standards for Cyber Threat Intelligence
Projects. Retrieved from SANS Reading Room: https://www.sans.org/reading-room/whitepapers/warfare/tools- standards-cyber-threat-intelligence-projects-34375
F-Secure. (2014, June 23). Havex Hunts For ICS/SCADA Systems. Retrieved from F- Secure Labs: https://www.f-secure.com/weblog/archives/00002718.html
Hutchins, E. M., Cloppert, M. J., & Amin, R. M. (2010). Intelligence-Driven Computer Network Defense Informed by Analysis of Adversary Campaigns and Intrusion
Kill Chains. Retrieved from Lockheed Martin Reports. Messina, C. (2015, August 25). Groups for Twitter; or A Proposal for Twitter Tag
Channels. Retrieved from FactoryCity: http://factoryjoe.com/blog/2007/08/25/groups-for-twitter-or-a-proposal- for-twitter-tag-channels/
Mitre Corporation. (2015). Incident vs Indicator. Retrieved from STIX Project Idioms: http://stixproject.github.io/documentation/idioms/incident-vs-indicator/
MLSec Project. (2015, April 25). MLSec Project. Retrieved from Github Repository: https://github.com/mlsecproject/combine
mongoDB. (n.d.). mongoDB Documentation. Retrieved from https://docs.mongodb.org/manual/?_ga=1.104701184.1278358839.140502 5465
OASIS. (n.d.). OASIS Cyber Threat Intelligence Technical Committee. Retrieved from OASIS Open Standards: https://www.oasis- open.org/committees/tc_home.php?wg_abbrev=cti
Poputa-Clean, P. (2015). Automated Defense - Using Threat Intelligence to Augment Security, 2-24. Retrieved from SANS Reading Room.
Automated Network Defense through Threat Intelligence and Knowledge Management
43
Christopher O’Brien, [email protected]
python-stix. (n.d.). python-stix. Retrieved from GitHub: https://github.com/STIXProject/python-stix
Recorded Future. (2014, November 20). Breaking the code on Russian Malware. Retrieved from https://www.recordedfuture.com/russian-malware- analysis/
SNORT. (n.d.). Retrieved from https://www.snort.org/ Soltra Edge. (n.d.). Soltra Edge. Retrieved from https://soltra.com/ Sqrrl. (n.d.). Sqrrl Enterprise. Retrieved from http://sqrrl.com/product/sqrrl-
enterprise/ UK Ministry of Defence. (2014). Understanding and Intelligence Support to Joint
Operations (3rd ed.). Shrivenham: Development, Concepts and Doctrine Centre.
VirusTotal. (n.d.). Retrieved from https://www.virustotal.com/
Last Updated: January 7th, 2016
Upcoming SANS Training Click Here for a full list of all Upcoming SANS Events by Location
SANS Dubai 2016 Dubai, AE Jan 09, 2016 - Jan 14, 2016 Live Event
SANS Cyber Defence Delhi 2016 Delhi, IN Jan 11, 2016 - Jan 22, 2016 Live Event
SANS Brussels Winter 2016 Brussels, BE Jan 18, 2016 - Jan 23, 2016 Live Event
SANS SEC567 London 2016 London, GB Jan 21, 2016 - Jan 22, 2016 Live Event
SANS Security East 2016 New Orleans, LAUS Jan 25, 2016 - Jan 30, 2016 Live Event
Cyber Threat Intelligence Summit & Training Alexandria, VAUS Feb 03, 2016 - Feb 10, 2016 Live Event
SANS Scottsdale 2016 Scottsdale, AZUS Feb 08, 2016 - Feb 13, 2016 Live Event
SANS Secure Japan 2016 Tokyo, JP Feb 15, 2016 - Feb 20, 2016 Live Event
SANS Munich Winter 2016 Munich, DE Feb 15, 2016 - Feb 20, 2016 Live Event
SANS Northern Virginia - McLean 2016 McLean, VAUS Feb 15, 2016 - Feb 20, 2016 Live Event
ICS Security Summit & Training - Orlando Orlando, FLUS Feb 16, 2016 - Feb 23, 2016 Live Event
SANS Secure India 2016 Bangalore, IN Feb 22, 2016 - Mar 05, 2016 Live Event
SANS Anaheim 2016 Anaheim, CAUS Feb 22, 2016 - Feb 27, 2016 Live Event
RSA Conference 2016 San Francisco, CAUS Feb 28, 2016 - Feb 29, 2016 Live Event
SANS Philadelphia 2016 Philadelphia, PAUS Feb 29, 2016 - Mar 05, 2016 Live Event
SANS London Spring 2016 London, GB Feb 29, 2016 - Mar 05, 2016 Live Event
SANS Abu Dhabi 2016 Abu Dhabi, AE Mar 05, 2016 - Mar 10, 2016 Live Event
SANS 2016 Orlando, FLUS Mar 12, 2016 - Mar 21, 2016 Live Event
SANS Secure Singapore 2016 Singapore, SG Mar 28, 2016 - Apr 09, 2016 Live Event
SANS Atlanta 2016 Atlanta, GAUS Apr 04, 2016 - Apr 09, 2016 Live Event
SANS Reston 2016 Reston, VAUS Apr 04, 2016 - Apr 09, 2016 Live Event
SANS Secure Europe 2016 Amsterdam, NL Apr 04, 2016 - Apr 16, 2016 Live Event
SANS Las Vegas 2016 OnlineNVUS Jan 09, 2016 - Jan 14, 2016 Live Event
SANS OnDemand Books & MP3s OnlyUS Anytime Self Paced