<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

<title>CSIRT Foundry</title>
<link href="http://www.csirtfoundry.com/atom.xml" rel="self"/>
<link href="http://csirtfoundry.com/"/>
<updated>2015-06-16T06:41:13+00:00</updated>
<id>http://www.csirtfoundry.com/</id>
<author>
    <name>Chris Horsley</name>
    <email>contact@csirtfoundry.com</email>
</author>


<entry>
    <title>Announcing the CSIRT Tools subreddit</title>
    <link href="http://csirtfoundry.com/blog/tools/csirt-tools-subreddit"/>
    <updated>2015-05-19T00:00:00+00:00</updated>
    <id>http://www.csirtfoundry.com/blog/tools/csirt-tools-subreddit</id>
    <content type="html">&lt;p&gt;Things have been quiet on the blogging front, but there’s plenty
going on behind the scenes that awaits a future announcement.&lt;/p&gt;

&lt;p&gt;In the meantime though, I’m posting regularly to a new subreddit dedicated to
software and analysis techniques for IR teams called
&lt;a href=&quot;https://www.reddit.com/r/csirt_tools/&quot;&gt;CSIRT Tools&lt;/a&gt;. As well as
being a repository of links to tools and articles, discussion about platforms,
systems, utilities, analysis techniques is more than welcome.&lt;/p&gt;

&lt;p&gt;So, feel free to browse around, bookmark useful articles, add your own
(self-promotion of pet projects perfectly okay), and contribute as you like.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/csirt_tools/&quot;&gt;CSIRT Tools subreddit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chris (&lt;a href=&quot;https://twitter.com/Parsify&quot;&gt;@Parsify&lt;/a&gt;)&lt;/p&gt;
</content>
</entry>

<entry>
    <title>The case against map visualisations</title>
    <link href="http://csirtfoundry.com/blog/tools/map-ip-visualisations"/>
    <updated>2012-01-31T00:00:00+00:00</updated>
    <id>http://www.csirtfoundry.com/blog/tools/map-ip-visualisations</id>
    <content type="html">&lt;p&gt;One of the most abused forms of data visualisation in information security today is the world map. During this post, I’ll explain how making maps our “go to” visualisation limits the insights we can show.&lt;/p&gt;

&lt;h2 id=&quot;but-its-a-natural-fit&quot;&gt;But it’s a natural fit…&lt;/h2&gt;

&lt;p&gt;Certainly, maps seem like a natural choice for network data. You have a log file containing thousands of IP addresses. You’d like to understand what’s in there better. You geo-locate the IP addresses into country codes then plot it using Google Maps. The data is now visual - visualisation complete!&lt;/p&gt;

&lt;p&gt;Or perhaps not.&lt;/p&gt;

&lt;p&gt;Visualising your data to increase understanding is a great idea, but I’m going to convince you that a map is often not the best way. I’m going to assume that you want to build a visualisation to gain operational insight, not something that’s flashy but ultimately meaningless (aka “management porn”).&lt;/p&gt;

&lt;h2 id=&quot;why-not-maps&quot;&gt;Why not maps?&lt;/h2&gt;

&lt;p&gt;In the non-Internet, meatspace world, distance matters. The time it takes to travel between two points depends on distance and geography. Outbreaks of disease depend on geography. Which languages are spoken somewhere depend on geography (among other things). The spread of fires, cyclones, and floods all depend on geography too. A map is the perfect choice for any of these, because the primary relationship a map displays is distance and geography.&lt;/p&gt;

&lt;p&gt;On the Internet, however, distance is not a factor we’re usually interested in. Every endpoint is only a few routing hops away from every other point. For the purposes of time and reachability, nodes may as well be right next door. Every point is next to every other point. Physical distance means almost nothing.&lt;/p&gt;

&lt;p&gt;Once a PC is infected with a new worm, what factors impact its spread? Operating system. Patch level. The presence of network filtering. In many cases, it’s not geographical location. Even if it is related to geography, I’ll show you why we have better options.&lt;/p&gt;

&lt;h2 id=&quot;but-everyone-knows-what-a-map-is&quot;&gt;But everyone knows what a map is!&lt;/h2&gt;

&lt;p&gt;Everyone is familiar with maps, but that doesn’t always make them the most effective choice. The goal of a visualisation is to tell a story, or explain a point. How does a map tell your story?&lt;/p&gt;

&lt;p&gt;Before you think about that, think about this. Using a map, we burden ourselves with all sorts of unnecessary constraints.&lt;/p&gt;

&lt;h2 id=&quot;map-constraints&quot;&gt;Map constraints&lt;/h2&gt;

&lt;h3 id=&quot;comparisons-are-difficult-to-make-on-a-map&quot;&gt;1. Comparisons are difficult to make on a map&lt;/h3&gt;

&lt;p&gt;Let’s say that you have a worldwide malware infection. You put the data on a map, and it looks like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2012-01-31_map_ip_visualisations/highlight_map.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Some questions:
* How many countries have infected computers?
* Which country has the most infections?
* What are the top three infected countries?
* How many more infections does China have than Brazil? &lt;/p&gt;

&lt;p&gt;Pencils down. Okay, let’s try this another way. Plotting the same data again on a stacked line chart looks like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2012-01-31_map_ip_visualisations/bar_chart.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;How did your observations compare? On a regular graph, these relationships are far more obvious.&lt;/p&gt;

&lt;p&gt;Even though Australia has far fewer infections than Luxembourg, Australia captures much more attention on the map because of its large land mass. Here, we’re giving countries with large land map a disproportionate weighting, when land mass generally has little to do with computer security incidents.&lt;/p&gt;

&lt;h3 id=&quot;wasted-space&quot;&gt;2. Wasted space&lt;/h3&gt;

&lt;p&gt;If:&lt;br /&gt;
  a) 78% of the earth’s surface is water; and&lt;br /&gt;
  b) a very small percentage of computer security incidents occur in the ocean; then&lt;br /&gt;
  c) we have wasted a large proportion of our visualisation on areas we can’t put data on, other than labels and legends.&lt;/p&gt;

&lt;p&gt;When we make a visualisation, a major challenge is fitting everything we want to show in the screen real estate available. Screen real estate is one of the most precious resources we have. Working within the rigidity of a map makes our job that much harder.&lt;/p&gt;

&lt;h3 id=&quot;one-relation-is-already-constrained&quot;&gt;3. One relation is already constrained&lt;/h3&gt;

&lt;p&gt;Visualisations compare different factors looking for trends and relationships. For example, a simple line graph might show time versus infections.&lt;/p&gt;

&lt;p&gt;If we use a map, one of those factors, geography, has already been chosen for us. We then have to shoe-horn our data into a map, doing all sorts of workarounds like animations or clicking on data points to display the relationship that’s &lt;em&gt;really&lt;/em&gt; important.&lt;/p&gt;

&lt;h2 id=&quot;but-my-data-is-related-to-country&quot;&gt;But my data IS related to country!&lt;/h2&gt;

&lt;p&gt;Perhaps the country of origin IS important. For example, you want to demonstrate that a politically-motivated DDoS is originating from a single country.&lt;/p&gt;

&lt;p&gt;However, the same problems exist. What if the attacks are coming from a tiny country to a larger country? What if there are multiple attacking countries? How do I work out who is contributing the most traffic to the attack?&lt;/p&gt;

&lt;p&gt;If the story you want to tell is “Attacks are primarily coming from countries X, Y and Z”, you have lots of simple options. You could use a directed graph, a bar chart, or a treemap for a start. These options will also give you a lot more freedom to incorporate other data. For example, a stacked bar chart will let you break each country’s data into operating system.&lt;/p&gt;

&lt;h2 id=&quot;no-really-geography-is-important-to-my-analysis&quot;&gt;No, really, geography &lt;em&gt;is&lt;/em&gt; important to my analysis!&lt;/h2&gt;

&lt;p&gt;Some information security problems really do depend on geography, and these are appropriate to put on a map. For example, a backbone cable cut affects a geographic region. Knowing where the cable cut occurred (e.g. in the Persian Gulf) might give clues to the cause, and to which places were affected.&lt;/p&gt;

&lt;p&gt;A rarer case might be something like the spread of a worm via Bluetooth. In this case, a short range technology is used for propagation, so physical distance is an issue. We can track the spread of the Bluetooth worm much like a biological virus. A map helps us predict where it will spread next.&lt;/p&gt;

&lt;h2 id=&quot;lobby-displays&quot;&gt;Lobby displays&lt;/h2&gt;

&lt;p&gt;One area where map-based visualisations dominate is in flashy “defcon” style maps. A flat screen showing a spinning globe with glowing packets racing from one city to another is undeniably attractive - just don’t expect to learn anything. If your goal is to impress VIPs or make a nice backdrop for a television interview, maybe you in fact want to invest in a flashy map display.&lt;/p&gt;

&lt;h2 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;Maps are highly overused in information security visualisations. Most of the relationships we want to show in information relating to networks aren’t geographical. &lt;/p&gt;

&lt;p&gt;Far better options like the humble bar graph exist that provide more operational insight and demonstrate the point you’d like to make better. Save your maps for that LCD kiosk in your lobby, or problems that are actually affected by geography.&lt;/p&gt;

&lt;p&gt;Chris (&lt;a href=&quot;http://twitter.com/Parsify&quot;&gt;@Parsify&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;em&gt;CSIRT Foundry specialises in custom data visualisations for information security and network data. &lt;a href=&quot;/contact/&quot;&gt;Contact us&lt;/a&gt; to find out more&lt;/em&gt;.&lt;/p&gt;
</content>
</entry>

<entry>
    <title>IR vs development - a battle for attention</title>
    <link href="http://csirtfoundry.com/blog/tools/ir-vs-dev"/>
    <updated>2011-10-20T00:00:00+00:00</updated>
    <id>http://www.csirtfoundry.com/blog/tools/ir-vs-dev</id>
    <content type="html">&lt;p&gt;Security teams have lots of itches they need to scratch with software tools, often developed in-house. A project might be a small data parsing scripts, or it may be full-blown database-driven web application.  However, there are some big problems with developing software in a highly operations-focused group, and it has to do with the nature of each type of work.&lt;/p&gt;

&lt;h2 id=&quot;the-problem&quot;&gt;The problem&lt;/h2&gt;

&lt;p&gt;Fundamentally, IR and development are two very different mindsets. At its core, incident response is about waiting for things to happen, then reacting. Project work, such as software development, is a creative process needing intense amounts of concentration. You make things, rather than react to them. So, how do they get along?&lt;/p&gt;

&lt;p&gt;If you’ve ever worked in an operations team, you might have seen this first hand. Programming is about keeping a complex state internally: the order in which nested functions call others; what all your variables are storing; how data flows through the system. A phone call, an email alert, or chirping SMS flushes the inner state the developer has been constructing in their head, and drags them back into the physical world. &lt;/p&gt;

&lt;p&gt;It’s a disconcerting experience. Once the part-time developer / part-time incident responder gets back to their development work, it will take a good amount of time to get back in the groove again. Interrupt them enough, and they’ll soon become adverse to even getting into a deep state of concentration, for fear they’re going to be shaken out of it. Procrastination sets in. This is not just the case for incident interruptions: multiple unscheduled meetings or drop-ins to their desk can have the same effect.&lt;/p&gt;

&lt;h2 id=&quot;the-impact&quot;&gt;The impact&lt;/h2&gt;

&lt;p&gt;As well as a heightened state of anxiety for your part-time developers, wondering when they’ll be able to get some unbroken development time, there are impacts on the software itself, too. Being unable to predict time schedules with constant interruptions, scopes are undefined or unmet.  Alternatively, the software may never reach release quality at all.  Software development in such an environment tends to take a more ad-hoc approach, with developers sneaking in what they can in between case handling. Documentation is a luxury, and testing is something that happens after deployment.&lt;/p&gt;

&lt;h2 id=&quot;so-what-should-we-do&quot;&gt;So, what should we do?&lt;/h2&gt;

&lt;p&gt;One strategy might be to divide your staff up into groups based on role. Those working on project roles are out of earshot of phones and conversations, and can get into the state of flow they need to build things. If you need to continually rotate your developers back into the operational pool, try to guarantee how long they have to do project work - a day, a week, or a month. As they say, work fills to meet the amount of time you have, so even short, but dedicated, timeframes can produce a high amount of productivity.&lt;/p&gt;

&lt;p&gt;As an additional bonus, your responders can communicate and interrupt each other freely, knowing that they’re not going to irritate anyone trying to concentrate.&lt;/p&gt;

&lt;p&gt;Alternatively, you might consider bringing on a dedicated, external developer to help make your operations run smoother with better software. Not without a small amount of bias: if this is the option for you, we’d love to &lt;a href=&quot;/contact/&quot;&gt;talk to you&lt;/a&gt; about how we can help.&lt;/p&gt;

&lt;p&gt;Until next time,&lt;/p&gt;

&lt;p&gt;Chris&lt;/p&gt;
</content>
</entry>

<entry>
    <title>Netgrep - filter files by country code and ASN</title>
    <link href="http://csirtfoundry.com/blog/tools/netgrep"/>
    <updated>2011-08-17T00:00:00+00:00</updated>
    <id>http://www.csirtfoundry.com/blog/tools/netgrep</id>
    <content type="html">&lt;p&gt;Here’s a common problem in the life of an incident handler, particularly one responsible for an AS or country code.&lt;/p&gt;

&lt;p&gt;You get a big text file full of infected bot IPs, domain names, URLs, or IRC channels. You’re only concerned with network objects in your country code (e.g. .au) or on your Autonomous System (AS). &lt;/p&gt;

&lt;p&gt;Let’s say you only wanted to see lines of your log with network objects relating to Australia. You &lt;em&gt;could&lt;/em&gt; grep the file for anything containing “.au”. This would catch anything with .au in the domain name, including www.austria.gv.at if you weren’t careful. However, what about IP addresses in Australia? What about domain names ending in .com and hosted in Australia? What about only those domains hosted on your network?&lt;/p&gt;

&lt;p&gt;It turns out that looking through a text file for network resources belonging to a particular country code or AS is a little more involved than you might have hoped. With that in mind, CSIRT Foundry would like to present Netgrep: grep for country codes and ASNs. It works like this: &lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# original file

$ cat addr.txt
abc.net.au,Australian
bbc.co.uk,British
203.2.218.214,Australian
google.com.au,Aus TLD resolving to United States IP address

# show lines related to Australia

$ netgrep AU addr.txt 
abc.net.au,Australian
203.2.218.214,Australian
google.com.au,Aus TLD resolving to United States IP address

# show lines related to the United States

$ netgrep US addr.txt
google.com.au,Australian TLD resolving to US IP address

# show lines related to AS2818, owned by BBC

$ netgrep AS2818 addr.txt
bbc.co.uk,British

# compound filter: match both Aus IPs / domains and AS2818

$ netgrep AU,AS2818 addr.txt
abc.net.au,Australian
bbc.co.uk,British
203.2.218.214,Australian
google.com.au,Aus TLD resolving to United States IP address
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You can also pipe input:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;# see if 200.200.200.200 is in Brazil

$ echo &quot;200.200.200.200&quot; | netgrep BR
200.200.200.200
# yes, it is

# handles most things containing a hostname or domain

$ cat log.txt | netgrep US
http://slashdot.org
whitehouse.gov
example@hotmail.com
irc://Tampa.FL.US.Undernet.org
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;In general, you can throw any format of text file you like at it, and netgrep will make a best effort to find any IP addresses and domain names.&lt;/p&gt;

&lt;p&gt;Netgrep is available as a Python &lt;a href=&quot;http://pypi.python.org/pypi/netgrep/&quot;&gt;package on PyPI&lt;/a&gt; for installation and on &lt;a href=&quot;https://github.com/csirtfoundry/netgrep&quot;&gt;Github if you’d like to check out the code&lt;/a&gt;. Installation instructions are contained in the readme. Comments, feedback and requests welcome!&lt;/p&gt;
</content>
</entry>

<entry>
    <title>The Great Visualization Technology Bake-Off</title>
    <link href="http://csirtfoundry.com/blog/visualization/vis-which-tech"/>
    <updated>2011-07-13T00:00:00+00:00</updated>
    <id>http://www.csirtfoundry.com/blog/visualization/vis-which-tech</id>
    <content type="html">&lt;p&gt;So, &lt;a href=&quot;/blog/vis-what&quot;&gt;we’ve looked at what a good visualization should do&lt;/a&gt;. Next: the how. What type of visualization technologies should we use?&lt;/p&gt;

&lt;p&gt;In this article, we’re going to look at a variety of visualization technologies, then make an evaluation about which ones work best in our toolbelt.&lt;/p&gt;

&lt;p&gt;Before we get there, let’s talk about what type of visualization we want. We want it to be deep and operational: not style without substance (a.k.a. management porn) or a lightly educational infographic that would appear in The USA Today. This won’t be a one-off - we want something we are going to look at every day and gain new operational insight.&lt;/p&gt;

&lt;p&gt;Like any technology decision, let’s start with some requirements for our chosen visualization technology:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Automation&lt;/strong&gt;: we should be able to generate and update our visualization automatically. This might be periodic via cron, or via a realtime feed of data. The rule is: if any manual effort is needed to maintain the visualization, it’s doomed.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Repeatability&lt;/strong&gt;: we should be able to take new data, run it through the same algorithm, and get a new visualization with no human involvement. Laziness is a perversely good motivator.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Accessibility&lt;/strong&gt;: our visualization should be ideally be accessible to anyone without the need for special plugins. Especially when we’re dealing with secure environments or big corporates, our viewers often don’t have the ability to install any new software.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Interactive&lt;/strong&gt;: this can be as simple as allowing clicks to dig further into information. This is essential for deep understanding of the data presented. For example: what’s the IP address represented by that big, red point?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Animation capable&lt;/strong&gt;: certain types of visualizations can benefit greatly from appropriate animations. As well as showing an effect over time, it’s a great way to show the effect of filters while allowing the viewer to see the transition take effect. For a great example of this in action, how would the relationship between size and count feel different in this &lt;a href=&quot;http://mbostock.github.com/d3/ex/treemap.html&quot;&gt;D3 treemap&lt;/a&gt; if we had to reload the whole page to switch?&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Ease of use&lt;/strong&gt;: how much work do we need to put in to get a visualization out?&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Though it’s not a requirement for everyone, I’m only going to consider tools that are free or low cost.&lt;/p&gt;

&lt;p&gt;When it comes to the “how” of visualization, we’ve got multitudes of tools available to us. Here’s a shortlist of contenders:&lt;/p&gt;

&lt;h2 id=&quot;static-images-from-command-line-tools&quot;&gt;Static images from command line tools&lt;/h2&gt;

&lt;p&gt;There’s legions of tools available to generate static graphic files from data. Let’s also consider them together with graphical libraries like GD you can access via programming languages.&lt;/p&gt;

&lt;p&gt;One very popular tool in this class is Graphviz, which outputs static images along with more dynamic formats such as SVG. Below is the output from another tool called Circos, an interesting way of displaying 2D tables (as well as bioinformatics, if you’re into that):&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/circos.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Roundup:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Automation: brilliantly cron-able.&lt;br /&gt;
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Repeatability: after massaging our data to the correct format, we can run it many times.
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Accessibility: top marks, given that we can view static image files on just about any device you’d want to name. They’re also easy to email and post up to the web.&lt;br /&gt;  
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_off.png&quot; class=&quot;inl_icon&quot; /&gt; Interactivity: being static, very little. We can add the static image to a web page and add links and imagemaps to give it some interactivity, but this is starting to become a web visualization at this point.
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_half.png&quot; class=&quot;inl_icon&quot; /&gt; Animation: some static graphic formats give us simple animations, but they&#39;re fairly limited.&lt;br /&gt;
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_half.png&quot; class=&quot;inl_icon&quot; /&gt; Ease of use: while some tools just require piping in a packet capture or CSV file, some have arcane config files that must be precisely set before getting a result. Circos, I&#39;m looking at you. 
&lt;/p&gt;

&lt;h2 id=&quot;desktop-tools&quot;&gt;Desktop tools&lt;/h2&gt;

&lt;p&gt;Desktop tools can let us put together some sophisticated visualisations, make hand-crafted changes, and assist with data import. There’s many tools like this, one of which is Gephi:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/genphi.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Roundup:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_half.png&quot; class=&quot;inl_icon&quot; /&gt; Automation: some desktop tools output visualizations which can be plugged into live data feeds, but these tend to be limited to what&#39;s supported out of the box.&lt;br /&gt;
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Repeatability: yes, many have algorithmic means of turning a data feed into a visualization.
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_half.png&quot; class=&quot;inl_icon&quot; /&gt; Accessibility: depends on the output format. A format like PNG is very accessible, but a proprietary format may need a special viewer - a common example would be Excel spreadsheets. Likewise, not every desktop tool runs on every operating system.&lt;br /&gt;  
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Interactivity: once again, very dependent on the output format, but you can create some highly functional visualizations.
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Animation: some GUI tools are strong here.&lt;br /&gt;
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Ease of use: while varying from product to product, on the whole, GUIs, inline help and data import wizards can get us up and running fast. 
&lt;/p&gt;

&lt;h2 id=&quot;proprietary-development-environments&quot;&gt;Proprietary development environments&lt;/h2&gt;

&lt;p&gt;This includes any type of closed plugin enabling visualisation. For the sake of argument, let’s look at one of the biggest, Flash:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/flash.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Roundup:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Automation: Flash can read in live streams of data, so can be automated quite well.&lt;br /&gt;
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Repeatability: Flash is code-driven, so highly repeatable.
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_half.png&quot; class=&quot;inl_icon&quot; /&gt; Accessibility: this is where Flash falls down. While being installed on a majority of desktops, thanks to Apple&#39;s determined refusal to include Flash in iOS, choosing Flash cuts out a large percentage of the potential viewing population for your visualization.&lt;br /&gt;  
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Interactivity: Flash does a very good job here.
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Animation: one of the reasons Flash made its mark was for excellent animation capabilities.&lt;br /&gt;
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_half.png&quot; class=&quot;inl_icon&quot; /&gt;Ease of use: Flash can require some programming know-how, but it&#39;s backed up by some very nice development suites, too.&lt;br /&gt;
&lt;/p&gt;

&lt;h2 id=&quot;html--javascript&quot;&gt;HTML + JavaScript&lt;/h2&gt;

&lt;p&gt;The web used to be text and tables, but now it’s so, so much more. Open development using Canvas and SVG for graphics as well as the DOM itself offer extremely rich functionality. One popular visualization library written in JavaScript is Protovis. It’s highly flexible and capable, as you can see in this example:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/protovis.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Roundup:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Automation: we can output HTML or data files via cron, or stream them into a web browser using JavaScript and JSON. With such a flexible format which is essentially text, there&#39;s really not many limits to what we can automate.&lt;br /&gt;
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Repeatability: JavaScript visualization libraries algorithmically handle lay out, so good marks for this, too.
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Accessibility: I&#39;d like to give a 90% star to this. Any modern browser on desktops or mobile devices can load a very sophisticated visualisation. Downside: the definition of &quot;modern&quot; varies - some organisations are still stuck with Internet Explorer 6. For the most part though, accessibility is excellent and universal, and distribution is as simple as sending a URL.&lt;br /&gt;  
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Interactivity: web technologies offer from basic hyperlinks all the way to sophisticated event handling and gestures on mobile devices.
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_on.png&quot; class=&quot;inl_icon&quot; /&gt; Animation: Using the right libraries, we can put together some amazing animations with HTML and JavaScript. Libraries like D3 are doing a great job here.&lt;br /&gt;
&lt;img src=&quot;/img/blog/2011-07-13-vis-which-tech/star_off.png&quot; class=&quot;inl_icon&quot; /&gt; Ease of use: to get started with web based visualizations, you&#39;re going to need to get your hands dirty cutting some code. However, there are some fantastic visualization libraries to help you out.
&lt;/p&gt;

&lt;h2 id=&quot;judgement&quot;&gt;Judgement&lt;/h2&gt;

&lt;p&gt;The technology you pick is dependent on the specific problem you want to solve and your current skill set. However, you’d need a good reason not to pick &lt;strong&gt;HTML + JavaScript&lt;/strong&gt; for your next visualization.&lt;/p&gt;

&lt;p&gt;So, why go HTML and JavaScript? If you’re a technical person looking for a technical visualization, web technologies will give you the most latitude to do some extraordinary, open visualizations, in a way that more people can easily view it. It ticks all our requirements, at the cost of a steeper learning curve, which will get easier over time. &lt;/p&gt;

&lt;p&gt;Also assisting with that learning curve is the fact that HTML + Javascript visualisation are, by their very nature, open (in the sense that you can read the source and learn from it, at least). Do you want to see how someone else put a great visualization together? “View source” is your best friend.&lt;/p&gt;

&lt;p&gt;Developing our HTML visualization won’t be quite as easy as plugging data into our desktop tool - but not that far off it, as we’ll soon learn. In the next post in the series, we’ll look at the knowledge and tools that will help us get our first HTML visualization off the ground. If you know very little about HTML but can drive a text editor, you’re going to be pleasantly surprised how fast we’re up and running.&lt;/p&gt;

&lt;p&gt;Until next time!&lt;/p&gt;

&lt;p&gt;Chris&lt;/p&gt;
</content>
</entry>

<entry>
    <title>What a good data visualisation should do</title>
    <link href="http://csirtfoundry.com/blog/vis-what"/>
    <updated>2011-06-28T00:00:00+00:00</updated>
    <id>http://www.csirtfoundry.com/blog/vis-what</id>
    <content type="html">&lt;p&gt;If there was a list of skills I could encourage every security analyst to pick up, information visualisation would be high up the list. Today, let’s look at visualisation and what a good visualisation should achieve. &lt;/p&gt;

&lt;h2 id=&quot;what-do-we-mean-by-visualisation&quot;&gt;What do we mean by visualisation?&lt;/h2&gt;

&lt;p&gt;Anything that visually communicates information can be termed a visualisation. The humble bar graph:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/bargraph.png&quot; alt=&quot;Bar graph&quot; /&gt;&lt;/p&gt;

&lt;p&gt;A treemap:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/treemap_red.jpg&quot; alt=&quot;Treemap&quot; /&gt;
&lt;div class=&quot;img_attrib&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/marc_smith/1474524836/&quot;&gt;Source&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;ASCII output:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/ascii_graph.png&quot; alt=&quot;ASCII graph&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Or a slightly flashier, interactive streamgraph:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/streamgraph.jpg&quot; alt=&quot;Streamgraph&quot; /&gt;
&lt;div class=&quot;img_attrib&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/elainegreycats/3645233832/&quot;&gt;Source&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;h2 id=&quot;educational-vs-operational-visualisation&quot;&gt;Educational vs operational visualisation&lt;/h2&gt;

&lt;p&gt;One type of visualisation might educate, by presenting a broad concept: say, how widely French is spoken:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/french_map.png&quot; alt=&quot;Maps of French speaking countries&quot; /&gt;
&lt;div class=&quot;img_attrib&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/French_language&quot;&gt;Source&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;As well as broad education, visualisations may provide new, deep insights on a data set. Here, we’ll focus on generating these deep insights. We’ll call this &lt;i&gt;operational visualisation&lt;/i&gt;.&lt;/p&gt;

&lt;p&gt;I’m going to be talking about practical, attractive visualisations we can generate programmatically. If you’re after newspaper-like infographics with clip art and funky layouts like this:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/infographic.jpg&quot; alt=&quot;Infographic&quot; /&gt;
&lt;div class=&quot;img_attrib&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/truliavisuals/5241592514/&quot;&gt;Source&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;…you’d be better going off to read up on Illustrator. We’ll be looking at visualisations that are generated continuously and used every day.&lt;/p&gt;

&lt;h2 id=&quot;the-most-basic-thing-a-visualisation-should-do&quot;&gt;The most basic thing a visualisation should do&lt;/h2&gt;

&lt;p&gt;If you remember back to high school when you were learning about journalism, you might remember the expression “write for your audience”. It’s easy to forget that as fun as it is for us, our visualisation is ultimately for those viewing it. More than anything, our viewers need to finish viewing our visualization with some new insight. That new insight should &lt;em&gt;not&lt;/em&gt; be “Wow, that’s really complex”:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/complex_graph.png&quot; alt=&quot;Network graph&quot; /&gt;
&lt;div class=&quot;img_attrib&quot;&gt;&lt;a href=&quot;http://www.flickr.com/photos/masterorz/3946707003/&quot;&gt;Source&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Some visualisations aim to look overly sophisticated or intricate, without imparting anything in particular to the audience. &lt;/p&gt;

&lt;p&gt;The most basic thing a visualisation should do: give the viewer new insights. If we haven’t presented some new insight, we’ve missed the mark.&lt;/p&gt;

&lt;p&gt;A visualisation should do at least one of the below:&lt;/p&gt;

&lt;h3 id=&quot;tell-a-story&quot;&gt;Tell a story&lt;/h3&gt;

&lt;p&gt;By visually representing our data, we can paint an overall picture of a trend. For example, here’s Tokyo’s real estate since the 1980’s, clearly showing the bubble and the subsequent crash:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/japan_chart.png&quot; alt=&quot;Japan real estate bubble&quot; /&gt;
&lt;div class=&quot;img_attrib&quot;&gt;&lt;a href=&quot;http://www.statusireland.com/statistics/property-house-price-statistics-for-ireland/26/Japan-Urban-Land-Index.html&quot;&gt;Source&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;h3 id=&quot;tell-us-what-to-look-at-next&quot;&gt;Tell us what to look at next&lt;/h3&gt;

&lt;p&gt;Visualisations take the clutter of a data set, and help us determine points of interest to dig into. For example, this well-known treemap of the US stock market shows us the overall movement of companies, sectors and the market as a whole, while pinpointing the fast movers in bright green and red:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/treemap.png&quot; alt=&quot;Market treemap&quot; /&gt;
&lt;div class=&quot;img_attrib&quot;&gt;&lt;a href=&quot;http://www.smartmoney.com/map-of-the-market/&quot;&gt;Source&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Our analysts could then pick up from there and dive into data on those specific companies.&lt;/p&gt;

&lt;h3 id=&quot;discover-new-relationships&quot;&gt;Discover new relationships&lt;/h3&gt;

&lt;p&gt;Reconstructing our data as a graphic can reveal new insights. For example, this node-link diagram maps an API by parent and child relationships:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/img/blog/2011-06-28-vis-what/radial.png&quot; alt=&quot;Node-link diagram&quot; /&gt;
&lt;div class=&quot;img_attrib&quot;&gt;&lt;a href=&quot;http://vis.stanford.edu/protovis/ex/tree.html&quot;&gt;Source&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;We get an instant impression of the size of the API, how deep it goes, and which parts have most components. This type of technique proves to be very useful in understanding network topologies and interconnections.&lt;/p&gt;

&lt;h3 id=&quot;be-attractive&quot;&gt;Be attractive&lt;/h3&gt;

&lt;p&gt;A visualisation should show care and attention to presentation. We say “Don’t judge a book by its cover” for a reason: it’s what we naturally do. If your visualization looks like it was thrown together quickly, people may assume that the underlying data is low quality. &lt;/p&gt;

&lt;p&gt;What does attractive mean? It’s subjective, but at a minimum:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Remove clutter: like composing a photo, it’s what you remove that makes the photo great.&lt;/li&gt;
  &lt;li&gt;Attention to detail: lack of typos count. Clear labels count.&lt;/li&gt;
  &lt;li&gt;Anti-aliasing: those jaggy edges you see on a lot of graphing tools leave things looking a little “rustic”. Using the right tools, anti-aliasing will be taken care of, giving a more professional result.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Creating visualisations is an essential tool in any analyst’s toolkit.&lt;/li&gt;
  &lt;li&gt;Design for your audience; focus on your intended message.&lt;/li&gt;
  &lt;li&gt;A visualisation should: tell a story; tell an analyst what to look at next; reveal new relationships; be attractive.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next in the visualisation series: what visualisation technologies should we use?&lt;/p&gt;

</content>
</entry>

<entry>
    <title>Free tools for your CSIRT - Etherpad</title>
    <link href="http://csirtfoundry.com/blog/etherpad"/>
    <updated>2011-05-23T00:00:00+00:00</updated>
    <id>http://www.csirtfoundry.com/blog/etherpad</id>
    <content type="html">&lt;p&gt;When we look to improve the effectiveness of our security teams with software, analysis or incident response systems are often the natural focus.  The unsung heroes, however, are the simple communication and collaboration software tools which can help your team run that much smoother.&lt;/p&gt;

&lt;p&gt;Today, I’ll introduce one of my favourite collaboration tools: Etherpad.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/img/blog/2011-05-21-etherpad/etherpad_screen.png&quot;&gt;&lt;img src=&quot;/img/blog/2011-05-21-etherpad/etherpad_thumb.png&quot; alt=&quot;Etherpad screenshot&quot; title=&quot;Etherpad screenshot&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Etherpad is a multi-user web-based text editor, allowing simultaneous document editing. This is immensely valuable for:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;co-operatively drafting a security advisory;&lt;/li&gt;
  &lt;li&gt;taking shared minutes in a conference call;&lt;/li&gt;
  &lt;li&gt;consolidating information about a new vulnerability or attack;&lt;/li&gt;
  &lt;li&gt;reviewing draft reports.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The ability to see realtime updates from your co-workers is a huge advantage for time-critical and jointly authored documents. Each contributor’s content is highlighted. You’ll see them entering and altering text as they go. While you’re working on the “Vulnerability” section of your security bulletin, you can see your colleague updating “Mitigations”. Then, as new information comes to hand, edit the notes your co-worker added. This beats the lock-edit-release system of many wiki systems hands down.&lt;/p&gt;

&lt;p&gt;Another other nice feature is that the entire edit history of each document is stored. You can replay edits back and see exactly when a particular change was introduced, or revert to a previous version.&lt;/p&gt;

&lt;p&gt;It should also be noted that Etherpad is slightly different in philosophy to a wiki. A wiki is a highly interconnected, searchable set of documents, while Etherpad is primarily presented as a collection of stand-alone documents. However, many basic features of a wiki, such as inter-document linking, can be replicated in Etherpad. The two can complement each other nicely.&lt;/p&gt;

&lt;p&gt;If you’d like to give Etherpad a try, good news: you can &lt;a href=&quot;http://etherpad.org&quot;&gt;download and host your own server&lt;/a&gt; today. Following Google’s purchase of the company originally behind Etherpad, the software was released as Open Source shortly afterwards. It’s now being actively developed, with plenty of plugins and features added all the time.&lt;/p&gt;

&lt;p&gt;If you want to give it a test run before you set up your own Etherpad server, there are multiple public servers available such as &lt;a href=&quot;http://ietherpad.com&quot;&gt;iEtherpad&lt;/a&gt;. Give it a shot!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/about/#chris_horsley_&quot;&gt;Chris&lt;/a&gt;&lt;/p&gt;

</content>
</entry>

<entry>
    <title>CSIRT Foundry is go for launch</title>
    <link href="http://csirtfoundry.com/blog/go-for-launch"/>
    <updated>2011-05-14T00:00:00+00:00</updated>
    <id>http://www.csirtfoundry.com/blog/go-for-launch</id>
    <content type="html">&lt;p&gt;CSIRT Foundry is go for launch! After a sad farewell to Tokyo to move back to sunny Brisbane, we’re open for business.&lt;/p&gt;

&lt;p&gt;We’ll have plenty more coming soon, but in the meantime, we’d love to &lt;a href=&quot;/contact/&quot;&gt;hear from you&lt;/a&gt; about how we can help you build and improve your incident response processes using software. Do you need a incident status monitoring system? A better ticketing system? Automated malware analysis? We can help.&lt;/p&gt;

&lt;p&gt;In other news, I’ll be flying the flag down at the &lt;a href=&quot;http://conference.auscert.org.au&quot;&gt;AusCERT conference&lt;/a&gt; on Sunday 15 May, and will also be a panellist at the &lt;a href=&quot;http://conference.auscert.org.au/conf2011/CERT_BoF.html&quot;&gt;CERT BoF&lt;/a&gt; on Monday 16 May. If you’re on the Gold Coast next week, please track me down and say hi!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;/about/#chris_horsley_&quot;&gt;Chris&lt;/a&gt;&lt;/p&gt;
</content>
</entry>

<entry>
    <title>Welcome to CSIRT Foundry</title>
    <link href="http://csirtfoundry.com/blog/welcome-to-csirt-foundry"/>
    <updated>2011-03-21T00:00:00+00:00</updated>
    <id>http://www.csirtfoundry.com/blog/welcome-to-csirt-foundry</id>
    <content type="html">&lt;p&gt;I’m excited to announce that CSIRT Foundry will be launching in May 2011.&lt;/p&gt;

&lt;p&gt;Over the last six years, I’ve been working at both AusCERT and JPCERT, national-level CSIRTs in Australia and Japan respectively. I’ve done a lot of different things over that time: incident response, phishing takedowns, malware analysis, international collaboration, vulnerability alerting, and many other things that I never expected to be doing. &lt;/p&gt;

&lt;p&gt;In all of these endeavours, one thing I’ve noticed is that as analysts, we seem to spend a lot of time doing the menial jobs, and less time doing what we care about: analysing new, interesting attacks, and thinking of creative ways to address the problems confronting us. Just paddling along and keeping up with the flow isn’t quite enough for job satisfaction: wouldn’t it be better if we could actually start thinking of how to make IR more effective?&lt;/p&gt;

&lt;p&gt;Before I entered the security world, I was a software developer who took to web applications early on. Throughout my time at AusCERT and JPCERT, I couldn’t shake the software development habit, but generally just as a side job between my incident response duties. Unfortunately, the unpredictable schedules of incident response do not blend well with the extended periods of concentration needed for software development.&lt;/p&gt;

&lt;p&gt;While we had access to and developed some great software that helped us, there always felt like more we could do: better engineered apps, rather than tools crafted during late-night hacking sessions as needed.&lt;/p&gt;

&lt;p&gt;So, that’s what this new venture is all about. Together with &lt;a href=&quot;http://twitter.com/DamonOehlman&quot;&gt;Damon Oehlman&lt;/a&gt;, I hope we can help you improve the state of the art in tools for incident response and security teams.  We will have more detailed information soon, but please feel free to &lt;a href=&quot;/contact/&quot;&gt;get in touch with us&lt;/a&gt; - we’ve love to work with you.&lt;/p&gt;
</content>
</entry>


</feed>
