Title: STIF
1STIF Security Tools Integration
Framework STIF-WARE EVOLUTION Fyodor
Yarochkin Meder Kydyraliev fyodor_at_o0o.nu meder_at_o
0o.nu
HackInTheBox, Kuala Lumpur - 2005
2Agenda(best question gets an Industry Slave
HITB T-shirt)
- Introduction to STIF-ware concepts
- First generation of STIF (automation,
integration, unification) - Demonstration
- Problems with the first generation of STIF
- STIF2 wider coverage of knowledge
representation format, functionality decoupling,
distributed multi-agent system, open system
architecture - STIF2 prototype
3Introduction
Security Tools Integration Framework (STIF) is
aimed to provide a unified environment and data
exchange platform for automated security
assessments in heterogeneous environments. In
simple words it is a platform for hacking
automation, where STIF emulates the brain of a
security analyst to perform repetitive tasks.
4Why automation?
- machine-based knowledge processing
- automate routine tasks, spend more time on tasks
that require brain power - create intrusion scenarios, and let machine
probe them (nIDS testing) - human error mitigation
- reduce human labor involvement in modern
corporate pen-testing sweatshop
5Why integration?
- Various security tools, written in different
languages, are available, but no unified format
for data exchange and representation - No machine data analysis, aggregation and
correlation possibilities - Handling large-scale assessments w/
disintegrated tools is a nightmare - No possibilities to automate distributed attacks
6Typical scenario for security analyst
7Want to see what happened to Joe the analyst
after one month?
8Poor Joe
Look what repetitive and boring hacking has
done to him
9Why not let machine do the boring part???
10Of course, you can ...
- script it ls al /code/scripts/
- (ab)use security scanners (nessus)
- (ab)use exploit toolkits (e.g metasploit)
- hire a full room of pen-testing monkeys, that
will do the boring part (sweatshop production)
11Scanners vs. STIF
- Problems with scanners
- hardcoded sequence of execution
- vendor-specific integration (e.g. NASL, plug-in
APIs), requires rewrite or code hacking - vendor-specific data representation/storage
(hard to integrate into existing solutions, e.g.
custom DBs)
12STIF solution
STIF is designed to solve the problems outlined
earlier, by introducing the common format for
data representation and by providing a platform
for data exchange among tools.
13First generation STIF provides
- Highly customizable rule-based inference engine,
which enables analyst to script out ANY scenario
based on the data that was returned by tools - Unified data exchange and representation format
- Generic database publishing module (save data
from tools in DB w/ any scheme) - IRC BOT interface data publisher and importer
14STIF Features (continued)
- Distributed architecture
- ready to use DB schema
- STIF is written in Java
- the reason for that decision is simple quicker
development cycle, cross-platform compatibility
15Data representation unification
STIF encapsulates data in a set of XML messages
(STIF-Message) Input data, provided in XML
format, converted by Exec module into the form,
which could be understood by the tool The results
of tools execution are converted to STIF and are
fed back into the Inference Engine.
16STIF-Message
Sample STIF-Message ltSTIF-Message
created"2004-09-02T1503016"gt ltPort
number"80" state"open" protocol"tcp"gt ltAddres
s type"ipv4-addr"gt192.168.1.1lt/Addressgt ltProtoc
olgt HTTP ltApplicationgt Apache/1.3.27
(Unix) PHP/4.3.1 lt/Applicationgt lt/Protocolgt
lt/Portgt lt/STIF-Messagegt
17Inference engine
- responsible for data interflow between various
tools - makes decisions on which tools to be executed,
when new data appears - provides data aggregation and correlation
facilities (including regular expressions based
matching to the - knowledge base facts)
- maintains execution flow using rule-based
scenarios
18Data Publishing facility
Publishing in STIF environment means providing
the Publisher with newly arrived facts
(STIF-Messages from tools). STIF is able to
execute several data/fact publishing modules
simultaneously (e.g. database publishing, IRC
publishing).
19SQL Publisher
STIF comes with SQL publishing module, which can
publish/store data received from tools in a form
of a STIF-Message, in databases of arbitrary
scheme. ltmessage type"Target"gt ltquerygt INSERT
INTO ip_address VALUES(NULL,'h') lt/querygt
lt/messagegt ltmessage type"Port"gt ltquerygt SELECT
id FROM ip_address WHERE ip_address'h'
lt/querygt ltquerygt INSERT INTO port VALUES(NULL,
1, 'n', 'P', 'S', 'p', 'a')
lt/querygt lt/messagegt
20IRC Importer/Publisher
STIF supports command input over IRC and can
publish new facts to an IRC channel or using
private messages. Other software tools can act
as STIF nodes embedding the IRC
importer/publisher functionality
21Your favorite tools integration to support STIF?
- STIF provides several means to import data into
STIF inference engine - Generic2STIFConverter, extracts data from output
using regular expressions to form STIF-Message - Tool-specific wrappers
22Integration using STIF Generic2STIF Converter
Define rules in parser.xml lt?xml
version"1.0"?gt ltConfiggt ltTool
name"nmap-syn-version"gt ltGroup
name"target address"gt
ltDelimetergtInterestinglt/Delimetergt
ltRegex name"address" required"true"gt
.ports on .\((\d\.)\).
lt/Regexgt ltGroup
name"port" generate"port"gt
ltDelimetergt
newline lt/Delimetergt
ltRegex name"portNumber" required"true"gt
(\d)/(?tcpudp).
lt/Regexgt
23- ltRegex name"portProtocol" required"true"gt
- \d/(tcpudp).
- lt/Regexgt
- ltRegex name"portState"
required"true"gt -
\d/(?tcpudp)\s(openclosedfiltered). - lt/Regexgt
- ltRegex name"portService"
required"true"gt - \d/(?tcpudp)\s(?openclo
sedfiltered)\s(\w-). - lt/Regexgt
- ltRegex name"portApplication"
required"false"gt - \d/(?tcpudp)\s(?openclo
sedfiltered)\s\w-\s(.) - lt/Regexgt
- lt/Groupgt
- lt/Groupgt
- lt/Toolgt
- lt/Configgt
24 How can you help?
- You can do several things to contribute
- to our efforts
- Try it!!!
- Ask your favorite tools author to become
STIF-compliant - Write regular expressions to parse output for
Generic2STIFConverter - Patch you favorite tools to be STIF-compliant
- or.. wait until STIF2 is out
25First generation STIF Demonstation
26Problems with current STIF implementation
- Complexity massive coupled piece of code
- Centralized system limited support for task
distribution - Non-dynamic (fixed at startup) inference engine
rules - Knowledge interchange format needs to be extended
27STIF2 Concepts
28STIF2 Concepts
- Platform independent
- Composed of independent agents
- Agents communicate with each other using
messaging protocol - Agent capability service exists to provide agent
capability lookup and matching facility
29STIF2 Multi-Agent Architecture
- Multi-agent architecture
- Tool wrapper Agents
- Scanning, connection forwarding, attack launching
- Logic Execution Agents
- User Interface Agents
- And more
30Message Exchange Framework
- Provides facilities for agent communication
- Provides facilities for communication channel
selection (covert channels, tunneling,
stenography)
31Goal-Driven execution
- Goal-driven execution flow
- Each agent describes its functionality with a set
of capabilities. Each capability can be executed
on certain type of data object (network, host,
user, URL) - Each agent is given task to execute the
capability, which becomes agent goal. Agent may
have different plans to execute the same
capability. Plans are scored based on execution
success rate
32Goal Driven execution
- Each also plan may be assigned with qualifiers
- Stealth-ness
- Latency
- Which can be matched to current environment
settings
33Event-driven execution
- Event-driven execution flow
- Each agent may subscribe to interests,
expressing its interest to certain types of data
objects, which agent is interested in (network,
host, open port, URL, a valid user) - When an agent discovers a new data. The
interests list is queried for the list of
interested agents. The agent is responsible to
forward the data to interested partners.
34Agent Data Cache (beliefs)
- Agent caches data locally (local data Cache,
beliefs) - Agent may query other agents or KB for missing
data
35Current Implementation prototype
- Based on Java/JADE framework
- The communication protocol in progress
- The knowledge interchange format reviewing
current standards (KIF, DAML) - Once the communication framework is finalized,
JADE messaging framework to be replaced with
home-brewed implementations (ports for different
languages)
36Questions (remember we give out T-shirt for best
question)? Suggestions ?
fyodor_at_o0o.nu meder_at_o0o.nu http//o0o.nu/sec/STIF/
37Thanks!!!!