integration workshop added
parent
cf17084792
commit
bb1e552d75
|
@ -0,0 +1,221 @@
|
|||
% DO NOT COMPILE THIS FILE DIRECTLY!
|
||||
% This is included by the other .tex files.
|
||||
|
||||
\begin{frame}[t,plain]
|
||||
\titlepage
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Plan for this session}
|
||||
\begin{itemize}
|
||||
\item What is Cerebrate? (tl;dr edition)
|
||||
\item Why do we need integration modules?
|
||||
\item What does an integration module look like?
|
||||
\item Integrating tools with Cerebrate
|
||||
\item Interconnection requests
|
||||
\item Future plans / discussion
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{What is Cerebrate?}
|
||||
\begin{itemize}
|
||||
\item Central tool for the Melicertes project...
|
||||
\item ...but also a stand-alone open-source community management and orchestration tool
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{What issues is it trying to tackle?}
|
||||
\begin{itemize}
|
||||
\item Repository of organisations and individuals along with associated public keys
|
||||
\item Management of trust circle objects
|
||||
\item Exchange of contact and sharing group information
|
||||
\item Instrumentation of local tool interconnections
|
||||
\item Local tool fleet management
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{What are integration modules?}
|
||||
\begin{itemize}
|
||||
\item Tool agnostic integration layer
|
||||
\item Integrate other tools with MISP for a set of tasks
|
||||
\begin{itemize}
|
||||
\item Manage tools
|
||||
\item Feed the tool with / feed off the tool's contact information
|
||||
\item Orchestrate the interconnection between local tools
|
||||
\item Open a dialogue with partners to interconnect tools
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Design goals}
|
||||
\begin{itemize}
|
||||
\item Keep it simplistic
|
||||
\item Monolithic packages
|
||||
\item Using a common toolkit for ease of integration
|
||||
\item Have the ability to go beyond the default required functionalities
|
||||
\item Reuse visualisation systems of Cerebrate
|
||||
\item Still heavily WiP
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{What is available today?}
|
||||
\begin{itemize}
|
||||
\item Some sample modules
|
||||
\begin{itemize}
|
||||
\item Skeleton module
|
||||
\item MISP connector
|
||||
\end{itemize}
|
||||
\item Auto detection, custom / default module separation
|
||||
\item Local tool management
|
||||
\item Diagnostics
|
||||
\item Remote tool interconnection negotiation
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{What is missing?}
|
||||
\begin{itemize}
|
||||
\item Mass / fleet management
|
||||
\item Local tool interconnections
|
||||
\item Opening up the local tool functions to the API
|
||||
\item More implementations to test our design against!
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Demo time}
|
||||
\begin{itemize}
|
||||
\item How does the MISP connector work?
|
||||
\item How to issue interconnection requests?
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Let us dig into the module design}
|
||||
\begin{itemize}
|
||||
\item Each module is a php file in cerebrate/src/Lib/custom (ending in *Connector.php)
|
||||
\item A standard toolkit is always extended (CommonConnectorTools.php)
|
||||
\item Each module consists of:
|
||||
\begin{itemize}
|
||||
\item Meta information
|
||||
\item Custom exposed function mapping
|
||||
\item Default functions for diagnostics
|
||||
\item Default functions for interconnections
|
||||
\item Custom exposed functions
|
||||
\item Private helper functions
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Meta information}
|
||||
\begin{itemize}
|
||||
\item name: The name of the module as shown in selectors, inbox messages, etc
|
||||
\item connectorName: The name of the module - this is the canonical name used across the application
|
||||
\item version: The version of the connector (not the connected tool)
|
||||
\item description: A description of the connector in freetext
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Exposed function mapping}
|
||||
\begin{itemize}
|
||||
\item List of custom functions with their configurations
|
||||
\item Two main types so far:
|
||||
\begin{itemize}
|
||||
\item Index: list of items with their associated actions
|
||||
\item form: GET/POST pair for interacting with the tool
|
||||
\end{itemize}
|
||||
\item Two main scopes so far:
|
||||
\begin{itemize}
|
||||
\item child: Automatically added accordion below the connection's metadata
|
||||
\item childAction: Function that can be placed anywhere (index action, chained/embedded actions)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Default function for diagnostics}
|
||||
\begin{itemize}
|
||||
\item health(): returns a standardised message about the current status of the connection
|
||||
\item returns a list with 2 data points
|
||||
\begin{itemize}
|
||||
\item status: UNKNOWN/OK/ISSUES/ERROR
|
||||
\item message: message shown along with the status
|
||||
\end{itemize}
|
||||
\item For more in-depth diagnostics / error reporting, use custom actions!
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Default functions for interconnections}
|
||||
\begin{itemize}
|
||||
\item 3-way handhsake
|
||||
\item functions need to be implemented to interact with the local tool
|
||||
\begin{itemize}
|
||||
\item initiateConnection(): returns connection payload
|
||||
\item acceptConnection(): returns connection payload
|
||||
\item finaliseConnection(): returns boolean
|
||||
\end{itemize}
|
||||
\item Automatically tied into the messaging system
|
||||
\item Built in repeating, discarding, error handling in cerebrate
|
||||
\item Looped through common tools, state handling done automatically
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Exploring the modules}
|
||||
\begin{itemize}
|
||||
\item Skeleton module
|
||||
\item MISP module
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Local tool interconnections}
|
||||
\begin{itemize}
|
||||
\item Create plugins that purely serve to connect different local tools
|
||||
\item Ownership of the modules was a difficulty to handle if we kept it in the main modules
|
||||
\item Unlike the cross cerebrate interconnections for like tools, the connection can be done in one shot
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Future plans - fleet management}
|
||||
\begin{itemize}
|
||||
\item Push settings / data to multiple tools of the same type in one shot
|
||||
\item Visualise your connected tools
|
||||
\item More fine grained diagnostics
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{API}
|
||||
\begin{itemize}
|
||||
\item Currently the modules are built for UI only
|
||||
\item This will change and we'll add tools to easily create API responses
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Discussion}
|
||||
\begin{itemize}
|
||||
\item What would you like to see to be able to integrate your tool?
|
||||
\item Do you have tools in mind that you would like to integrate?
|
||||
\item What issues do you foresee with the implementation?
|
||||
\begin{itemize}
|
||||
\item Difficulty?
|
||||
\item Lack of functionalities?
|
||||
\item Lack of apetite before it's more mature?
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
|
@ -0,0 +1,23 @@
|
|||
\documentclass{beamer}
|
||||
\usetheme[numbering=progressbar]{focus}
|
||||
%\definecolor{main}{RGB}{83, 31, 117}
|
||||
%\definecolor{textcolor}{RGB}{0, 0, 0}
|
||||
%\definecolor{background}{RGB}{215, 212, 227}
|
||||
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{tikz}
|
||||
\usepackage{listings}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{shapes,arrows}
|
||||
|
||||
\author{\small{\input{../includes/authors.txt}}}
|
||||
\title{Cerebrate}
|
||||
\subtitle{A quick intro into Cerebrate}
|
||||
\institute{}
|
||||
\titlegraphic{\includegraphics[scale=0.2]{logo.png}}
|
||||
\date{\input{../includes/location.txt}}
|
||||
|
||||
\begin{document}
|
||||
\include{content}
|
||||
\end{document}
|
||||
|
Loading…
Reference in New Issue