<!doctype html>

<!--[if lt IE 7]><html lang="en-US" class="no-js lt-ie9 lt-ie8 lt-ie7"><![endif]-->
<!--[if (IE 7)&!(IEMobile)]><html lang="en-US" class="no-js lt-ie9 lt-ie8"><![endif]-->
<!--[if (IE 8)&!(IEMobile)]><html lang="en-US" class="no-js lt-ie9"><![endif]-->
<!--[if gt IE 8]><!-->
<html lang="en-US" class="no-js">
    <!--<![endif]-->

    <head>
        <meta charset="utf-8">

        <meta http-equiv="X-UA-Compatible" content="IE=edge">

        <title>Suspicious Connects Analysis - Apache Spot</title>

        <meta name="HandheldFriendly" content="True">
        <meta name="MobileOptimized" content="320">
        <meta name="viewport" content="width=device-width, initial-scale=1"/>

        <link rel="apple-touch-icon" href="../../library/images/apple-touch-icon.png">
        <link rel="icon" href="../../favicon.png">
        <!--[if IE]>
        <link rel="shortcut icon" href="http://spot.incubator.apache.org/favicon.ico">
        <![endif]-->
        <meta name="msapplication-TileColor" content="#f01d4f">
        <meta name="msapplication-TileImage" content="../../library/images/win8-tile-icon.png">
        <meta name="theme-color" content="#121212">

        <link rel='dns-prefetch' href='//fonts.googleapis.com' />
        <link rel='dns-prefetch' href='//s.w.org' />

        <link rel='stylesheet' id='googleFonts-css'  href='http://fonts.googleapis.com/css?family=Lato%3A400%2C700%2C400italic%2C700italic' type='text/css' media='all' />
        <link rel='stylesheet' id='bones-stylesheet-css'  href='../../library/css/style.css' type='text/css' media='all' />
        <!--[if lt IE 9]>
        <link rel='stylesheet' id='bones-ie-only-css'  href='http://spot.incubator.apache.org/library/css/ie.css' type='text/css' media='all' />
        <![endif]-->
        <link rel='stylesheet' id='mm-css-css'  href='../../library/css/meanmenu.css' type='text/css' media='all' />
        <script type='text/javascript' src='../../library/js/libs/modernizr.custom.min.js'></script>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <script type='text/javascript' src='../../library/js/jquery-migrate.min.js'></script>
        <script type='text/javascript' src='../../library/js/jquery.meanmenu.js'></script>

		<script>
		  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
		  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
		  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
		  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

		  ga('create', 'UA-87470508-1', 'auto');
		  ga('send', 'pageview');

		</script>
    </head>

    <body class="page">

        <div id="container">
            <header class="header">

                <div id="inner-header" class="wrap cf">

                    <p id="logo" class="h1" itemscope itemtype="http://schema.org/Organization">
                        <a href="http://spot.incubator.apache.org/" rel="nofollow"><img src="../../library/images/logo.png" alt="Apache Spot" /></a>
                    </p>

                    <nav>
                        <ul id="menu-main-menu" class="nav top-nav cf">
                          <li id="menu-item-129" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-129">
                              <a href="../../get-started">Get Started</a>
                              <ul class="sub-menu">
                                <li><a href="../../get-started">Get Started</a></li>
                                <li><a href="../../get-started/supporting-apache">Supporting Apache</a></li>
                                <li><a href="../../get-started/environment">Environment</a></li>
                                <li><a href="../../get-started/architecture">Architecture</a></li>
                                <li><a href="../../get-started/demo">Demo</a></li>
                              </ul>
                            </li>
                            <li id="menu-item-5" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5">
                                <a href="../../download">Download</a>
                            </li>
                            <li id="menu-item-130" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-130">
                                <a href="../../community">Community</a>
                                <ul class="sub-menu com-sm">
                                	<li class="dropmenu-head">Get in Touch</li>
                                	<li><a href="../../community" class="mail">Mailing Lists</a></li>
                                	<li class="divider"></li>
                                	<li><a href="../../community/committers">Project Committers</a></li>
                                	<li><a href="../../community/contribute">How to Contribute</a></li>
                                	<li class="divider"></li>
                                	<li class="dropmenu-head">Developer Resources</li>
                                	<li><a href="https://github.com/apache/incubator-spot" target="_blank" class="github">Github</a></li>
                                	<li><a href="https://issues.apache.org/jira/browse/SPOT/" target="_blank" class="jira">JIRA Issue Tracker</a></li>
<li><a href="https://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=SPOT&title=Apache+Spot+%28Incubating%29+Home" target="_blank" class="">Confluence Site</a></li>                                	<li class="divider"></li>
                                	<li class="dropmenu-head">Social Media</li>
                                	<li><a href="https://twitter.com/ApacheSpot" target="_blank" class="twitter-icon">Twitter</a></li>
                                </ul>
                            </li>
                            <li id="menu-item-106" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-106">
                                <a href="../../doc">Documentation</a>
                            </li>
                            <li class="menu-item menu-item-has-children active">
                                <a href="#">Project Components</a>
                                <ul class="sub-menu">
                                	<li><a href="../../project-components/ingestion">Ingestion</a></li>
                                	<li><a href="../../project-components/machine-learning">Machine Learning</a></li>
                                  <li class="active"><a href="../../project-components/suspicious-connects-analysis">Suspicous Connects Analysis</a></li>
                                	<li><a href="../../project-components/visualization">Visualization</a></li>
                                  <li class="under-dev">Under Development</li>
                                  <li><a href="../../project-components/open-data-models">Open Data Models</a></li>
                                </ul>
                            </li>
                            <li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13">
                                <a href="../../blog">Blog</a>
                            </li>
                        </ul>
                    </nav>

                </div>

            </header>

            <div id="mobile-nav"></div>

            <div id="content">

            	<div class="wrap cf"><!--if page has sidebar, add class "with-sidebar"-->
            		<div class="main">
            			<h1 class="page-title">Supsicious Connects Analysis</h1>

            			<p>Spot offers a family of suspicious connections analyses that identify the most suspicious or unlikely network events in the observed network and report these to the user for further investigation to determine if they are indicative of maliciousness or malfunction.  The suspicious connects analysis is a form of semi-supervised anomaly detection that uses topic modelling to infer common network behaviors and build a model of behavior for each IP address. </p>

            			<p>The topic model at the core of Spot-ml is an unsupervised machine learning model. However, Spot allows for user feedback to effect the model’s view of what is suspicious (see ‘Further Notes on Spot-ml’ for more details about the feedback functionality).  This section briefly describes the mathematical principles behind the Suspicious Connects Analysis.</p>

            			<h3>Supported Data for Analyses</h3>
                  <p>Currently Spot supports analyses on the following data sources:</p>

                  <ul>
                    <li>(undirected) Netflow logs</li>
                    <li>DNS logs</li>
                    <li>HTTP Proxy logs</li>
                  </ul>

                  <p>In this discussion, log entries are referred to as "network events".</p>

                  <h3>Anomaly Detection via Topic Modelling</h3>

                  <p>The suspicious connects analysis infers a probabilistic model for the network behaviors of each IP address. Each network event is assigned an estimated probability (henceforth, the event’s “score”). Those events with the lower scores are flagged as “suspicious” for further analysis.</p>

                  <p>The probabilistic model is generated via topic modelling. Topic modelling is a technique from natural language processing that analyzes a collection of natural language documents, and infers the topics discussed by the documents. In particular we use a latent Dirichlet allocation (LDA) model. For details outside of the scope of this description, please see the Journal of Machine Learning Research article “Latent Dirichlet Allocation” by David M. Blei, Andrew Y. Ng, and Michael I. Jordan. For comparison purposes, our mathematical notation is similar to that used in the JMLR article. </p>

                  <p>Below we describe the probability distributions that arise from an LDA model, and describe how anomaly scores can be assigned to words of a document. We then describe how ‘words’ and ‘documents’ are formed from network logs so that a network log entry is provided an anomaly score given by the score of the word to which it is associated. </p>

                  <h3>Latent Dirichlet Allocation</h3>

                  <p>Input: A collection of documents, each viewed as a multiset of words (bag of words). An integer k which is the number of latent topics for the model to learn.</p>

                  <p>Output:  Two families of distributions. For each document, a “document’s topic mix” which gives the probability that a word selected at random from the document belongs to any given topic (that is, the fraction of that document dedicated to any given topic).  For each topic, a “topic’s word mix” which gives the probability of any given word conditioned on the topic (that is, the fraction of that topic dedicated to each word).</p>

                  <p>In mathematical notation:</p>

                  <img src="../../library/images/susp-con-1.png" alt=""  />

                  <p>An assumption is made that a topic’s word mix is independent of the document in question. We can therefore perform a model-estimate of the probability of a word, w, appearing in the document, d, as follows:</p>

                  <img src="../../library/images/susp-con-2.png" alt=""  />

                  <h3>Topic Modelling and Network Events</h3>
                  <p>By viewing the logged behavior of an IP address as a document (eg. all DNS queries of a particular client IP) and the constituent log entries as “words” it is straightforward to apply topic modelling to analyze network traffic.</p>

                  <table class="cont-table">
                    <tr>
                      <td>Text Corpora</td>
                      <td>Network Logs</td>
                    </tr>

                    <tr>
                      <td>document</td>
                      <td>log records of a particular IP adddress</td>
                    </tr>

                    <tr>
                      <td>word</td>
                      <td>(simplified) log entry</td>
                    </tr>

                    <tr>
                      <td>topic</td>
                      <td>profile of common network behavior</td>
                    </tr>
                  </table>

                  <p>There is one significant wrinkle: For topic modelling to provide interesting results, there should be significant overlap in the words used by different documents, whereas network log entries contain nearly unique identifiers such as network addresses and timestamps. For this reason, to perform topic modelling on network events, the log entries must be simplified into words.</p>

                  <h3>From Events to Documents: Word Creation</h3>

                  <p>The conversion of network events into words is the point of subtle art in the Spot Suspicious Connects analysis. The procedure for converting events into words must preserve enough information to turn up interesting anomalies during malicious behavior or malfunction, it must create words with enough overlap between documents (IP addresses) that the topic modelling step produces meaningful results, and it should distill information that is particular to the “type” of traffic rather than a specific machine (to justify the simplifying assumption made to estimate word probabilities).</p>

                  <h3>Netflow</h3>

                  <p>A netflow record is simplified into two separate words, one to be inserted in the document associated to the source IP and another (possibly different word) inserted into the document associated to the destination IP. The words are created as follows:</p>


                  <table class="cont-table">
                    <tr>
                      <td>Feature (string 'letter in the word')</td>
                    </tr>

                    <tr>
                      <td>
                        <p>Flow Direction:</p>

                        <p>If both ports (between source and destination) are 0, then this feature is missing from the words that go into both the source and destination IP documents.</p>

                        <p>If exactly one port is 0, this feature is missing for the IP document associated to the 0 port, and this feature is given as “-1” for the IP document associated to the non-zero port.</p>

                        <p>If neither port is zero, and either both or neither of the listed ports are strictly less than 1025, this feature is missing for both source IP and destination IP words.</p>

                        <p>If neither port is zero and only one of the ports is strictly less than 1025, this feature is given as “-1” for the IP document associated with port that is less than 1025 and is missing for the IP document associated to the other (high) port.</p>
                      </td>
                    </tr>


                    <tr>
                      <td>
                        <p>Key Port:<br />If both source and destination ports are 0 this feature is given as “0” for both source and destination IP documents.</p>

                        <p>If exactly one of the ports is non-zero this feature is given as the non-zero port number for both source and destination IP documents.</p>

                        <p>If exactly one port is less than 1025 and this port is not zero, this feature is given as this port number for both the source and destination IP documents.</p>

                        <p>If both ports are non-zero and strictly less than 1025 this feature is given as “111111” for both the source and destination IP documents.</p>

                        <p>If both ports are greater than or equal to 1025 this feature is given as “333333” for both the source and destination IP documents.</p>
                      </td>
                    </tr>

                    <tr>
                      <td>
                        <p>Protocol<br />Use the string as given in log entry</p>
                      </td>
                    </tr>

                    <tr>
                      <td>
                        <p>Time of day<br />Use the hour portion of the time stamp</p>
                      </td>
                    </tr>

                    <tr>
                      <td>
                        <p>Total Bytes<br />Use the string for the bin number into which the frame length  falls, using bins defined by the following cutoff values: <br />
                        (0, 1, 2, 4, 8, …)</p>
                      </td>
                    </tr>

                    <tr>
                      <td>
                        <p>Number of Packets<br />
                        Use the string for the bin number into which the frame length  falls, using bins defined by the following cutoff values: <br />
                        (0, 1, 2, 4, 8, …)</p>

                      </td>
                    </tr>
                  </table>

                  <p>Examples:<br />
                  (1) A record with source port 1066, destination port 301, protocol given as TCP, time of day with hour equal to 3, bytes transferred equal to 1026, with 10 packets sent. <br />
                  The word “301_TCP_3_12_5” is created for the source IP document.<br />
                  The word: “-1_301_TCP_3_12_5” is created for the destination IP document .</p>

                  <p>(2) A record with source port 1194, destination port 1109, protocol given as UDP, time of day with hour equal to 7, bytes transferred equal to 1026, and 1 packet sent.<br />
                  The word: “333333_UDP_7_12_1” is created for both the source and destination IP documents</p>

                  <h3>DNS</h3>

                  <p>A DNS log entry is simplified into a word and inserted into the document associated to the client IP making the DNS query. The word is created as follows:</p>

                  <table class="cont-table">
                    <tr>
                      <td><p>Feature(string ‘letter in the word’)</p></td>
                    </tr>
                    <tr>
                      <td><p>Analyze DNS query name:<br />
                       If belongs to Alexa top 1 million list, use “1”<br />
                       If belongs to user domain,  use “2”<br />
                          (Note: For it.intel.com the domain is ‘intel’)<br />
                       Otherwise, use “0”</p>
                    </td>
                    </tr>
                    <tr>
                      <td><p>Frame length<br />
                      Use the string for the bin number into which the frame length  falls, using bins defined by the following cutoff values:<br />
                      (0, 1, 2, 4, 8, …)</p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>Time of day<br />
                        Use the hour portion of the time stamp</p>
                      </td>
                    </tr>
                    <tr>
                      <td><p>Subdomain Length<br />
                      Use the string for the bin number into which the frame length  falls, using bins defined by the following cutoff values: <br />
                      (0, 1, 2, 4, 8, …)</p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>String Entropy of Subdomain<br />
                        Use the string for the bin number into which the frame length  falls, using bins defined by the following cutoff values: <br />
                        (0.0, 0.3, 0.6, 0.9, 1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3.0, 3.3,
                          3.6, 3.9, 4.2, 4.5, 4.8, 5.1, 5.4, 20)</p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>Number of periods in Subdomain<br />
                        Use the string for the bin number into which the frame length  falls, using bins defined by the following cutoff values: <br />
                        (0, 1, 2, 4, 8, …)</p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>DNS query type<br />
                        Use the string as given in the log entry</p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>DNS query response code<br />
                        Use the string as given in the log entry</p>
                      </td>
                    </tr>
                  </table>

                  <h3>Proxy</h3>
                  <p>A proxy log entry is simplified into a word and inserted into the document associated to the client IP making the proxy request. The word is created as follows:</p>

                  <table class="cont-table">
                    <tr>
                      <td>
                        <p>Feature(string ‘letter in the word’)</p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>Analyze DNS query name:<br />
                        If belongs to Alexa top 1 million list, use “1”<br />
                        If belongs to user domain,  use “2”<br />
                        (Note: For it.intel.com the domain is ‘intel’)<br />
                        Otherwise, use “0” </p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>Time of day<br />
                        Use the hour part of the time stamp</p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>Request Method<br />
                        Use the string as given in the log entry (eg. “Get”, “Post”, etc.)</p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        String Entropy of URI
                        Use the string for the bin number (0-18) into which the entropy<br />
                        value falls, using bins defined by the following cutoff values:<br />
                        (0.0, 0.3, 0.6, 0.9, 1.2, 1.5, 1.8, 2.1, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.2, 4.5, 4.8, 5.1, 5.4, 20)
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>Top level content type<br />
                        Use the string as given in the log entry (eg. “image”, “binary”)</p>
                      </td>
                    </tr>
                    <tr>
                      <td><p>Frequency of user agent type in training data<br>
                        Use the string for the bin number (0-&#x221e;) into which the entropy value falls, using bins defined by the following cutoff values:<br />(0, 1, 2, 4, 8, 16, 32, …)</p>
                      </td>
                    </tr>
                    <tr>
                      <td>
                        <p>Response code<br />
                        Use string as given in the log entry</p>
                      </td>
                    </tr>
                  </table>

                  <h3>Further Notes on Spot-ml</h3>

                  <ul>
                    <li>
                      <h4>Notes on the binning for word creation</h4>
                      <p>The bin number associated to a given value is assigned as the index of the first entry in the array of cut off values for which the value is less than or equal to that entry. For example the values that will fall into bin number 0 are defined by the inequality:  value <= cut_off_array(0) and the values that lie in bin number 1 are defined by the inequality: cut_off_array(0) < value <= cut_off_array(1).</p>
                    </li>

                    <li>
                      <h4>LDA Implementation</h4>
                      <p>We currently use a Spark-MLlib implementation of latent Dirichlet allocation.</p>
                    </li>

                    <li>
                      <h4>User Feedback</h4>
                      <p>If the user determines that certain feature values of a connection are acceptable and have been wrongly classified, Spot allows the user to provide feedback in order that a new model can be generated that will no longer flag similar events as suspicious.</p>

                      <p>In the UI, the user can designate a selection of features out of: source ip, destination ip, source port, and destination port; to be given a user-severity score of ‘3’ (meaning low priority). This action causes low priority designations to be associated to all of the log entries (from within the collection of the most suspicious entries that were returned from Spot-ml) that have feature values matching the features selected. These log entries are then stored into a csv file. Log entries from this file are then injected (each entry is inserted the number of times determined by the value of DUPFACTOR set in spot.conf) into the next batch of data for Spot-ml. As a result, log entries simplifying to certain words (matching the words the feedback logs simplify to) will subsequently be seen as normal due to the large volume of such words now present in the data.</p>
                    </li>
                  </ul>


            		</div>

            	</div>

            </div>


            <div id="more-info">
                <div class="wrap cf">

                    <p>
                        <a href="https://github.com/apache/incubator-spot" class="y-btn" target="_blank">More Info</a>
                    </p>

                    <p style="margin-top:50px;"><img src="../../library/images/apache-incubator.png" alt="Apache Incubator" />
                    </p>

                    <p class="disclaimer">
                        Apache Spot is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
                    </p>

                    <p class="disclaimer">
                        The contents of this website are © 2020 Apache Software Foundation under the terms of the Apache License v2. Apache Spot and its logo are trademarks of the Apache Software Foundation.
                    </p>
                </div>
            </div>

            <footer class="footer" role="contentinfo" itemscope itemtype="http://schema.org/WPFooter">

                <div id="inner-footer" class="wrap cf">

                    <p class="source-org copyright" style="text-align:center;">
                        &copy; 2020 Apache Spot.
                    </p>

                </div>

            </footer>

        </div>
		<a href="#0" class="cd-top">Top</a>
        <script type='text/javascript' src='../../library/js/scripts.js'></script>

    </body>

</html>
