<!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>Apache Spot  Strength in Numbers:  Why Consider Open Source Cybersecurity Analytics</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="../wp-content/themes/oni/library/images/apple-touch-icon.png">
        <link rel="icon" href="../wp-content/themes/oni/favicon.png">
        <!--[if IE]>
        <link rel="shortcut icon" href="../wp-content/themes/oni/favicon.ico">
        <![endif]-->
        <meta name="msapplication-TileColor" content="#f01d4f">
        <meta name="msapplication-TileImage" content="../wp-content/themes/oni/library/images/win8-tile-icon.png">
        <meta name="theme-color" content="#121212">

        <link rel="pingback" href="http://spot.incubator.apache.org/xmlrpc.php">

        <link rel="alternate" type="application/rss+xml" title="Apache Spot &raquo; Feed" href="../feed/" />
        <link rel="alternate" type="application/rss+xml" title="Apache Spot &raquo; Comments Feed" href="../comments/feed/" />
        <link rel="alternate" type="application/rss+xml" title="Apache Spot &raquo; Strength in Numbers:  Why Consider Open Source Cybersecurity Analytics Comments Feed" href="../strength-in-numbers-why-consider-open-source-cybersecurity-analytics/feed/" />
        <script type="text/javascript">
			window._wpemojiSettings = {
				"baseUrl" : "https:\/\/s.w.org\/images\/core\/emoji\/72x72\/",
				"ext" : ".png",
				"source" : {
					"concatemoji" : "http:\/\/spot.incubator.apache.org\/wp-includes\/js\/wp-emoji-release.min.js"
				}
			}; ! function(a, b, c) {
				function d(a) {
					var c,
					    d,
					    e,
					    f = b.createElement("canvas"),
					    g = f.getContext && f.getContext("2d"),
					    h = String.fromCharCode;
					if (!g || !g.fillText)
						return !1;
					switch(g.textBaseline="top",g.font="600 32px Arial",a) {
					case"flag":
						return g.fillText(h(55356, 56806, 55356, 56826), 0, 0), f.toDataURL().length > 3e3;
					case"diversity":
						return g.fillText(h(55356, 57221), 0, 0),
						c = g.getImageData(16, 16, 1, 1).data,
						d = c[0] + "," + c[1] + "," + c[2] + "," + c[3], g.fillText(h(55356, 57221, 55356, 57343), 0, 0),
						c = g.getImageData(16, 16, 1, 1).data,
						e = c[0] + "," + c[1] + "," + c[2] + "," + c[3], d !== e;
					case"simple":
						return g.fillText(h(55357, 56835), 0, 0), 0 !== g.getImageData(16,16,1,1).data[0];
					case"unicode8":
						return g.fillText(h(55356, 57135), 0, 0), 0 !== g.getImageData(16,16,1,1).data[0]
					}
					return !1
				}

				function e(a) {
					var c = b.createElement("script");
					c.src = a, c.type = "text/javascript", b.getElementsByTagName("head")[0].appendChild(c)
				}

				var f,
				    g,
				    h,
				    i;
				for ( i = Array("simple", "flag", "unicode8", "diversity"), c.supports = {
					everything : !0,
					everythingExceptFlag : !0
				},
				h = 0; h < i.length; h++)
					c.supports[i[h]] = d(i[h]), c.supports.everything = c.supports.everything && c.supports[i[h]], "flag" !== i[h] && (c.supports.everythingExceptFlag = c.supports.everythingExceptFlag && c.supports[i[h]]);
				c.supports.everythingExceptFlag = c.supports.everythingExceptFlag && !c.supports.flag, c.DOMReady = !1, c.readyCallback = function() {
					c.DOMReady = !0
				}, c.supports.everything || ( g = function() {
					c.readyCallback()
				}, b.addEventListener ? (b.addEventListener("DOMContentLoaded", g, !1), a.addEventListener("load", g, !1)) : (a.attachEvent("onload", g), b.attachEvent("onreadystatechange", function() {
					"complete" === b.readyState && c.readyCallback()
				})),
				f = c.source || {}, f.concatemoji ? e(f.concatemoji) : f.wpemoji && f.twemoji && (e(f.twemoji), e(f.wpemoji)))
			}(window, document, window._wpemojiSettings);
        </script>
        <style type="text/css">
			img.wp-smiley, img.emoji {
				display: inline !important;
				border: none !important;
				box-shadow: none !important;
				height: 1em !important;
				width: 1em !important;
				margin: 0 .07em !important;
				vertical-align: -0.1em !important;
				background: none !important;
				padding: 0 !important;
			}
        </style>
        <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='../wp-content/themes/oni/library/css/style.css' type='text/css' media='all' />
        <!--[if lt IE 9]>
        <link rel='stylesheet' id='bones-ie-only-css'  href='../wp-content/themes/oni/library/css/ie.css' type='text/css' media='all' />
        <![endif]-->
        <link rel='stylesheet' id='mm-css-css'  href='../wp-content/themes/oni/library/css/meanmenu.css' type='text/css' media='all' />
        <script type='text/javascript' src='../wp-content/themes/oni/library/js/libs/modernizr.custom.min.js'></script>
        <script type='text/javascript' src='../wp-includes/js/jquery/jquery.js'></script>
        <script type='text/javascript' src='../wp-includes/js/jquery/jquery-migrate.min.js'></script>
        <script type='text/javascript' src='../wp-content/themes/oni/library/js/jquery.meanmenu.js'></script>
        <link rel='https://api.w.org/' href='../wp-json/' />
        <link rel="canonical" href="http://spot.incubator.apache.org/strength-in-numbers-why-consider-open-source-cybersecurity-analytics/" />
        <link rel='shortlink' href='http://spot.incubator.apache.org/?p=149' />
        <link rel="alternate" type="application/json+oembed" href="../wp-json/oembed/1.0/embed?url=http%3A%2F%2Fopen-network-insight.org%2Fstrength-in-numbers-why-consider-open-source-cybersecurity-analytics%2F" />
        <link rel="alternate" type="text/xml+oembed" href="../wp-json/oembed/1.0/embed?url=http%3A%2F%2Fopen-network-insight.org%2Fstrength-in-numbers-why-consider-open-source-cybersecurity-analytics%2F&#038;format=xml" />

    </head>

    <body class="single single-post postid-149 single-format-standard" itemscope itemtype="http://schema.org/WebPage">

        <div id="container">

            <header class="header" role="banner" itemscope itemtype="http://schema.org/WPHeader">

                <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="../wp-content/themes/oni/library/images/logo.png" alt="Open Network Insight" /></a>
                    </p>

                    <nav role="navigation" itemscope itemtype="http://schema.org/SiteNavigationElement">
                        <ul id="menu-main-menu" class="nav top-nav cf">
                            <li id="menu-item-4" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4">
                                <a target="_blank" href="https://github.com/Open-Network-Insight/open-network-insight">Get Started</a>
                            </li>
                            <li id="menu-item-5" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-5">
                                <a target="_blank" href="https://github.com/Open-Network-Insight/open-network-insight#if-you-want-all-of-the-oni-code-at-once-just-clone-it">GitHub</a>
                            </li>
                            <li id="menu-item-6" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-6">
                                <a target="_blank" href="https://github.com/Open-Network-Insight/open-network-insight#contributing-to-oni">Contribute</a>
                            </li>
                            <li id="menu-item-7" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-7">
                                <a target="_blank" href="https://github.com/Open-Network-Insight/open-network-insight/wiki">Wiki</a>
                            </li>
                            <li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page current_page_parent menu-item-13">
                                <a href="../blog">Blog</a>
                            </li>
                        </ul>
                    </nav>

                </div>

            </header>

            <div id="mobile-nav"></div>

            <div id="content">

                <div id="inner-content" class="wrap cf">

                    <main id="main" class="m-all t-2of3 d-5of7 cf" role="main" itemscope itemprop="mainContentOfPage" itemtype="http://schema.org/Blog">

                        <article id="post-149" class="cf post-149 post type-post status-publish format-standard hentry category-uncategorized" role="article" itemscope itemprop="blogPost" itemtype="http://schema.org/BlogPosting">

                            <header class="article-header entry-header">

                                <h1 class="entry-title single-title" itemprop="headline" rel="bookmark">Strength in Numbers:  Why Consider Open Source Cybersecurity Analytics</h1>

                                <p class="byline entry-meta vcard">

                                    <time class="updated entry-time" datetime="2016-10-21" itemprop="datePublished">
                                        October 21, 2016
                                    </time>
                                    </span>
                                </p>

                            </header>
                            <section class="entry-content cf" itemprop="articleBody">
                                <p>
                                    By Rob Kent, Vice President of Marketing at Cybraics
                                </p>
                                <p>
                                    Competition is widely considered to be a healthy and positive thing, traditionally viewed as providing options for customers and fueling innovation. In the world of cybersecurity there is no shortage of competition, in fact cybersecurity is one of the most crowded and fast-growing areas of technology. The problem is, with so much competition, are we losing sight of the real goal: protecting our customers against the adversary? With so much focus on competing and winning customers, are we negating one of the most fundamental advantages that we could have in the fight against cybercrime? Cooperation. Our adversaries are not shy about working together… the community is strong and growing, and while there is no doubt some healthy competition, the sharing of tools and techniques is certainly far more common than in the commercial world. Like Open Source software, security can only benefit and grow through peer-reviewed submissions. Citing Linus Law by Eric S. Raymond from his book The Cathedral and the Bazaar, &#8220;Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix will be obvious to someone.&#8221;
                                </p>
                                <p>
                                    This, of course, is not new information. People have been pointing this out for years. What is encouraging is that a few organizations are finally stepping up to the plate to try and change this paradigm in cybersecurity.  When it comes to cybersecurity, many have touted big data analytics as one of the key initiatives to combat adversaries. The problem is that big data in itself has its own set of challenges, one of the issues is that it is often looked at as a costly problem to store and scale as opposed to being used as another tool in an organization’s arsenal. Apache Spot, a project pioneered by Intel and Cloudera, is aiming to fix this problem.
                                </p>
                                <p>
                                    By creating an open source community, the hope is that identifying security threats within large data sets will become a manageable task for all organizations, despite their size or scale. Organizations overwhelmed with their data or those that aren’t seeing results will have a community to turn to along with a common reference to compare results. By working together on Apache Spot, organizations will be able to share their experiences on how they’ve tackled or how they need to tackle these issues with a common system to reference.  Data is never going to get smaller across organizations’ core systems, so in many ways an organization just now beginning to dig into their data stores is basically starting from scratch. Having the ability to reference an open common model gives the opportunity for both those starting out and those seasoned, to have an open exchange of varying knowledge.
                                </p>
                                <p>
                                    By supporting Apache Spot, Cybraics is hoping to learn as much as we contribute while we collaborate and take part in this Open Source Initiative. With the end result a set of guidelines for organizations to deploy a data analytics platform to find threats within their ecosystem, and a community that will share their experiences with the next generation of data and security professionals, perhaps we can all start actually working together to start leveling the playing field.
                                </p>
                            </section>
                            <footer class="article-footer">

                                filed under: <a href="../category/uncategorized/" rel="category tag">Uncategorized</a>

                            </footer>

                        </article>

                    </main>

                    <div id="sidebar1" class="sidebar m-all t-1of3 d-2of7 last-col cf" role="complementary">
                        <div id="recent-posts-2" class="widget widget_recent_entries">
                            <h4 class="widgettitle">Recent Posts</h4>
                            <ul>
                                <li>
                                    <a href="../strength-in-numbers-why-consider-open-source-cybersecurity-analytics/">Strength in Numbers:  Why Consider Open Source Cybersecurity Analytics</a>
                                </li>
                                <li>
                                    <a href="../jupyter-notebooks-for-data-analysis/">Jupyter Notebooks for Data Analysis</a>
                                </li>
                                <li>
                                    <a href="../apache-spot-and-cybersecurity-using-netflows-to-detect-threats-to-critical-infrastructure/">Apache Spot (Incubating) and Cybersecurity — Using NetFlows to Detect Threats to  Critical Infrastructure</a>
                                </li>
                                <li>
                                    <a href="h../how-apache-spot-helps-create-well-stocked-data-lakes-and-catch-powerful-insights/">How Apache Spot (Incubating) Helps Create Well-Stocked Data Lakes and Catch Powerful Insights</a>
                                </li>
                                <li>
                                    <a href="../apache-spot-3-most-asked-questions/">Apache Spot (Incubating): 3 Most-Asked Questions</a>
                                </li>
                            </ul>
                        </div>
                        <div id="archives-2" class="widget widget_archive">
                            <h4 class="widgettitle">Archives</h4>
                            <ul>
                                <li>
                                    <a href='../2016/10/'>October 2016</a>
                                </li>
                                <li>
                                    <a href='../2016/09/'>September 2016</a>
                                </li>
                                <li>
                                    <a href='../2016/08/'>August 2016</a>
                                </li>
                                <li>
                                    <a href='../2016/03/'>March 2016</a>
                                </li>
                            </ul>
                        </div>

                    </div>

                </div>

            </div>

            <footer class="footer" role="contentinfo" itemscope itemtype="http://schema.org/WPFooter">

                <div id="inner-footer" class="wrap cf">

                    <nav role="navigation"></nav>
                    <p class="source-org copyright" style="text-align:center;">
                        &copy; 2020 Apache Spot.
                    </p>

                </div>

            </footer>

        </div>

        <script type='text/javascript' src='../wp-includes/js/comment-reply.min.js'></script>
        <script type='text/javascript' src='../wp-content/themes/oni/library/js/scripts.js'></script>
        <script type='text/javascript' src='../wp-includes/js/wp-embed.min.js'></script>

    </body>

</html>
<!-- end of site. what a ride! -->
