<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">

<channel>
	<title>Security Ripcord &#187; Leadership</title>
	<atom:link href="http://www.cutawaysecurity.com/blog/archives/category/leadership/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cutawaysecurity.com/blog</link>
	<description>Cutaway's Observations, Opinions, Rants, Raves, Tantrums, and Tirades</description>
	<lastBuildDate>Tue, 01 Jun 2010 15:17:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license>		<item>
		<title>Security Ripcord Friday Wrap-up 10/02/2009</title>
		<link>http://www.cutawaysecurity.com/blog/archives/739</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/739#comments</comments>
		<pubDate>Fri, 02 Oct 2009 14:13:02 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Weekly Wrap-up]]></category>
		<category><![CDATA[a2ps]]></category>
		<category><![CDATA[Ender's Game]]></category>
		<category><![CDATA[Enderverse]]></category>
		<category><![CDATA[enscript]]></category>
		<category><![CDATA[Orson Scott Card]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Security Ripcord]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=739</guid>
		<description><![CDATA[Slow week, again.  My wife is loving it that I have been at home recently.  It&#8217;s good to be wanted.
Leadership
I have been plowing through the Enderverse over the past month.  My wife finds it weird how I get fixated on reading.  I am not surprised that it is new to her because I have not [...]]]></description>
			<content:encoded><![CDATA[<p>Slow week, again.  My wife is loving it that I have been at home recently.  It&#8217;s good to be wanted.</p>
<p><strong>Leadership</strong></p>
<p>I have been plowing through the <a title="Ender's Game Series" href="http://en.wikipedia.org/wiki/Ender%27s_Game_(series)" target="_blank">Enderverse</a> over the past month.  My wife finds it weird how I get fixated on reading.  I am not surprised that it is new to her because I have not really read a non-technical book since completing my Master Degree in 2005.  The whole time she has known me the only thing she has really seen me get fixated on (other than task completion) is moving through a new video game.  I guess she should have seen the signs.</p>
<p>Reading the full Ender and Bean series has helped me understand <a title="Ender's Game" href="http://en.wikipedia.org/wiki/Ender%27s_Game" target="_blank">Ender&#8217;s Game</a> a lot better.  These books show the importance of understanding yourself, understanding the people you work with, understanding the people you work against, strategy, and many other leadership qualities.  Certainly you can get these from other books, but the Enderverse does a good job of showing enough of both sides of the story to understand motivation.  Which I am finding to be the biggesst take-away from this series.</p>
<p>Orson Scott Card demonstrates how effective it is when leaders understand an individual&#8217;s motivation.  Actually, it goes a little deeper that than.  He has his main and most successful characters leading by understanding what the people around them actually &#8220;need.&#8221;  They take those needs into consideration for their own plans and actions.  Whether it is a personal relationship or it is military strategy.  These characters are most successful when they step back, take a moment for consideration, and modify their plans and judgments (when necessary) to accommodate the needs of the people around them.  Doing so usually wins that character the professional respect, friendship, and sometimes devotion.</p>
<p>How can we use this in our professional and personal lives?  Well, I think the best away to do this is to take a few seconds before answering questions or providing opinions during conversations (live or digital).  A few extra seconds pause during a phone call is not as long as it actually seems on your end.  Pauses are natural in face-to-face conversations because it is easy to see when somebody is thinking.  If people on the other end of the line do get impatient, just ask for a second while you are thinking or formulating a response.  It will be a rare occasion when somebody gets offended and it will be more likely that they respect you for being considerate and thoughtful.  Email and IM is another great example for a pause.  Get up, walk around, and don&#8217;t answer until you have given a little thought to your position in combination with the other person&#8217;s needs.    You can even do these types of things in meetings and one-on-one conversations.  Taking a few moments to lean back and ingest the facts of the conversation is easy and common.  For heated conversations or times when you need more time to think about it, use the bio-break method to get some extra time.  Get up, go to the bathroom, get a glass of water, and think about your position, your stratagy, and weight that with the needs of others involved in the situation.  It doesn&#8217;t matter if others know you are just using it as an excuse, nobody is going to deny anybody a bio-break.</p>
<p><strong>Quick Tip</strong></p>
<p>I have been working on a bit of code for several months now.  I am getting into the fine-tuned debugging and I hit a snag.  One piece of advice that the mentor for my project gave me was &#8220;never be afraid to revisit and rewrite your code from scratch.&#8221;  Well, I am not there yet.  But I am to the point where I understand that I may have made a mistake with my implementation and I need to determine how much I need to change.  Of course, now that the code is at 1855 lines (with comments) it is a little harder to scroll back and forth to find all of the areas that need to be adjusted for the implementation change.</p>
<p>I have decided to fall back to printing and editing by pencil.  It should not be too hard but 1855 lines of code divided by 80 lines per page is 23 pages of code.  Ouch.  Of course there are easier ways to do this.  People have been writing and printing code for years and there are all types of tips and tricks.  *nix OSes are naturally full of different methods for converting text to printer and other document formats.  (Now that I think about it that sounds like the potential for vulnerable programs and scripts is huge&#8230;.hmmm&#8230;but I digress).  Actually I knew this already and I use to have a nice little script that would print two pages per sheet, in landscape, and modify the font so that it was small but not too small to read and edit.  A quick look showed me that I had disposed of that code a long time ago (several OSes ago).  But, the Internet is rich with ideas and methods.  I ran through some instances of <a title="Enscript HowTo" href="http://www.chem.uic.edu/comp_fac/enscript.htm" target="_blank">enscript</a> (not to be confused with EnCase&#8217;s scripting language) which seems to be the defacto method nowadays.  But for some reason it just wasn&#8217;t working for me.  AND it was not the method I used before (we are all creatures of habit) so I continued my search until I found my one true-code-printing-love: <a title="man a2ps" href="http://linux.die.net/man/1/a2ps" target="_blank">a2ps</a>. A quick review of the very helpful man page gave me the syntax I needed to convert the file I want to print to a postscript file  (my computer is not connected to a printer right now and I have to use a friend&#8217;s).  I ended up with the following command line (I will let you review the man page to understand the options):</p>
<blockquote><p>a2ps -2rjC -Epython -o ptr-file.ps ptr-file.py</p></blockquote>
<p>Easy, but what if my friend&#8217;s system cannot read Postscript files?  Doubtful but just to be certain I decided to quickly convert to PDF via command line.</p>
<blockquote><p>ps2pdf ptr-file.ps ptr-file.pdf</p></blockquote>
<p>Yes, yes.  It would have been much easier to combine these two commands.</p>
<blockquote><p>a2ps -2rjC -Epython ptr-file.py | ps2pdf &#8211; ptr-file.pdf</p></blockquote>
<p>Enjoy.</p>
<p><strong>Personal Input</strong></p>
<p>Read more non-technical books.  It is good for you and it is good for your kids (if you have them) to see you reading instead of watching TV, or cleaning the house, or doing yard work, or playing with them, or&#8230;&#8230;dang it!!!!  <img src='http://www.cutawaysecurity.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">http://stackoverflow.comSta</div>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/739/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security Ripcord Friday Wrap-up 9/18/2009</title>
		<link>http://www.cutawaysecurity.com/blog/archives/724</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/724#comments</comments>
		<pubDate>Fri, 18 Sep 2009 19:42:15 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Bad Religion]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[pywin32]]></category>
		<category><![CDATA[Security Ripcord]]></category>
		<category><![CDATA[Win32_OperatingSystem]]></category>
		<category><![CDATA[WMI.py]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=724</guid>
		<description><![CDATA[Slow week, lots of programming.  Gonna rain this weekend.  Looks like we&#8217;ll be hanging out at the library and aquarium.
Leadership
During my bike ride on Monday I heard a blast from the past.
&#8220;Raise Your Voice&#8221; &#8211; Bad Religion
fa fa fafa fa fa fafa Raise Your Voice!
Don&#8217;t be played like someone else&#8217;s board game
Don&#8217;t be classed out [...]]]></description>
			<content:encoded><![CDATA[<p>Slow week, lots of programming.  Gonna rain this weekend.  Looks like we&#8217;ll be hanging out at the library and aquarium.</p>
<p><strong>Leadership</strong></p>
<p>During my bike ride on Monday I heard a blast from the past.</p>
<blockquote><p><a href="http://www.azlyrics.com/lyrics/badreligion/raiseyourvoice.html"><strong>&#8220;Raise Your Voice&#8221;</strong></a> &#8211; <a title="Bad Religion" href="http://www.badreligion.com/" target="_blank">Bad Religion</a></p>
<p>fa fa fafa fa fa fafa Raise Your Voice!<br />
Don&#8217;t be played like someone else&#8217;s board game<br />
Don&#8217;t be classed out like some desolate redoubt<br />
Don&#8217;t be misled you&#8217;ve got alot on your head<br />
And nobody&#8217;s gonna pay attention when you are dead<br />
So: fa fa fafa fa fa fafa Raise Your Voice!<br />
It&#8217;s the primary rule, you gotta wanna be fooled<br />
It&#8217;s our daunted restraint that keeps us silent in shame<br />
It&#8217;s our nature to be adversarial and free<br />
Our evolution didn&#8217;t hinge on passivity<br />
fa fa fafa fa fa fafa Raise Your Voice!</p></blockquote>
<p>Actually, the song from the album begins with the lead singer stating &#8220;I think this is song we could redo in every language of every country we go to.&#8221;  True.  I think that every security professional can learn a little from these lyrics as well.</p>
<p>What role do security professionals play?  Auditor, monitors, engineers?  Actually, I think we are just members of the team fulfilling specific roles to keep our organization operating smoothly.  But we cannot do so in silence.  We cannot just push out reports, scan  outputs, and presentations on how people and the organization should operate.  These things are too easy to dismiss.  No, we have to do the thing that some of us dread and many more people don&#8217;t want to happen.  We need to &#8220;raise our voice.&#8221;  We need to talk about the issues.  Have open discussions that challenge the status-quo.  We need to confront common issues with new ideas and methods.</p>
<p>What do we accomplish when we are doing this?  Are we trying to get our way no matter what the cost?  No.  We are trying to open minds and continuously adapt and evolve.  We are verbally raising issues so that the conversations lift from the paper and actively carry on in other discussions.  We are forcing people to actively observe the current situation, address our recommendations, accept or counter these recommendations, and improve themselves and the organization.</p>
<p>One trap that is easy to fall into, however, is thinking that we are always in the right.  That our ideas are the correct direction.  I challenge you to &#8220;raise your voice&#8221; while also keeping your mind open to new information and other possibilities.  I challenge you to find a way to persuade those that don&#8217;t understand while also realizing that you may be one of those who does not have a clear vision of the full picture.  I challenge you to be confident yet humble in your expertise and your efforts to improve your organization and yourself.</p>
<p>I challenge you to &#8220;raise your voice,&#8221; no matter who is in the room.</p>
<p><strong>Training</strong></p>
<p>No training developed this week.  I did, however, take a few minutes to take <a title="Find the Quick Tip" href="http://www.cutawaysecurity.com/blog/archives/718" target="_blank">last weeks quick tip </a>on <a title="HBGary Fast Dump Pro" href="http://www.hbgary.com/products-services/fastdump-pro/" target="_blank">HBGary&#8217;s Fast Dump Pro</a> and turned it into a training document for the rest of the analysts in my team.  Although the tool is pretty easy to use having an internal document for some of the tools that you don&#8217;t use on a regular basis is very helpful.  This allows you to quickly re-familiarize yourself with the tool.  It also helps train new personnel to the methodologies of the team.</p>
<p>How can you contribute to your team?  Isn&#8217;t there something that you could quickly write up that would benefit everybody?  If you don&#8217;t have that type of system in your team, would creating one help?</p>
<p>&#8220;Raise your voice.&#8221;</p>
<p><strong>Quick Tip</strong></p>
<p>You will need Mark Hammond&#8217;s <a title="pywin32" href="http://sourceforge.net/projects/pywin32/" target="_blank">pywin32 </a>and Tim Golden&#8217;s <a title="Python WMI" href="http://timgolden.me.uk/python/wmi.html" target="_blank">wmi.py</a> for this tip.  Basically, I want to show you an easy way to get exactly the system information that you want.  It will be easy to get all of the system information using <a title="Win32_OperatingSystem" href="http://msdn2.microsoft.com/en-us/library/aa394239.aspx" target="_blank">Win32_OperatingSystem</a>.  Using <a title="Using WMI for Operating System Information" href="http://timgolden.me.uk/python/wmi-tutorial.html" target="_blank">Tim&#8217;s method</a> you can directly access the specific fields that you want. (inserted periods to help with proper indention due to Wordpress stripping whitespace and my need for Python-structure OCD)</p>
<blockquote><p>import wmi<br />
c = wmi.WMI()<br />
for os in c.Win32_OperatingSystem():<br />
&#8230;print os.Caption</p></blockquote>
<p>But this means that you either have to request each on individually.  This is not so bad and easy if you just want a few specific items.  But what if you want more than a few bits of information?  And what if Microsoft changes the information provided across systems?  You want to be sure that you can access that information without the script failing on you.</p>
<p>To handle this I suggest using a <a title="Dive Into Python: Tuples" href="http://diveintopython.org/getting_to_know_python/tuples.html" target="_blank">tuple </a>to hold the values of the fields used by <a title="Win32_OperatingSystem" href="http://msdn2.microsoft.com/en-us/library/aa394239.aspx" target="_blank">Win32_OperatingSystem</a>.  Then run through the tuple using <a title="Python: hasattr" href="http://pyref.infogami.com/hasattr" target="_blank">hasattr</a> and <a title="Python: getattr" href="http://pyref.infogami.com/getattr" target="_blank">getattr </a>to pull the information provided by your call to WMI for the <a title="Win32_OperatingSystem" href="http://msdn2.microsoft.com/en-us/library/aa394239.aspx" target="_blank">Win32_OperatingSystem</a> information.  Here is an example script .  Of course you don&#8217;t have to include everything (as I have done here for clarity).  You can select the fields that are most important to you.  Or, you can include them all and comment out the ones you don&#8217;t want.  That way they are easily added in the future when you discover a need.</p>
<blockquote><p>import wmi</p>
<p>Win32_OperatingSystem_Fields = (<br />
&#8216;BootDevice&#8217;,<br />
&#8216;BuildNumber&#8217;,<br />
&#8216;BuildType&#8217;,<br />
&#8216;Caption&#8217;,<br />
&#8216;CodeSet&#8217;,<br />
&#8216;CountryCode&#8217;,<br />
&#8216;CreationClassName&#8217;,<br />
&#8216;CSCreationClassName&#8217;,<br />
&#8216;CSDVersion&#8217;,<br />
&#8216;CSName&#8217;,<br />
&#8216;CurrentTimeZone&#8217;,<br />
&#8216;DataExecutionPrevention_Available&#8217;,<br />
&#8216;DataExecutionPrevention_32BitApplications&#8217;,<br />
&#8216;DataExecutionPrevention_Drivers&#8217;,<br />
&#8216;DataExecutionPrevention_SupportPolicy&#8217;,<br />
&#8216;Debug&#8217;,<br />
&#8216;Description&#8217;,<br />
&#8216;Distributed&#8217;,<br />
&#8216;EncryptionLevel;&#8217;,<br />
&#8216;ForegroundApplicationBoost&#8217;,<br />
&#8216;FreePhysicalMemory&#8217;,<br />
&#8216;FreeSpaceInPagingFiles&#8217;,<br />
&#8216;FreeVirtualMemory&#8217;,<br />
&#8216;InstallDate&#8217;,<br />
&#8216;LargeSystemCache&#8217;,<br />
&#8216;LastBootUpTime&#8217;,<br />
&#8216;LocalDateTime&#8217;,<br />
&#8216;Locale&#8217;,<br />
&#8216;Manufacturer&#8217;,<br />
&#8216;MaxNumberOfProcesses&#8217;,<br />
&#8216;MaxProcessMemorySize&#8217;,<br />
&#8216;MUILanguages&#8217;,<br />
&#8216;Name&#8217;,<br />
&#8216;NumberOfLicensedUsers&#8217;,<br />
&#8216;NumberOfProcesses&#8217;,<br />
&#8216;NumberOfUsers&#8217;,<br />
&#8216;OperatingSystemSKU&#8217;,<br />
&#8216;Organization&#8217;,<br />
&#8216;OSArchitecture&#8217;,<br />
&#8216;OSLanguage&#8217;,<br />
&#8216;OSProductSuite&#8217;,<br />
&#8216;OSType&#8217;,<br />
&#8216;OtherTypeDescription&#8217;,<br />
&#8216;PAEEnabled&#8217;,<br />
&#8216;PlusProductID&#8217;,<br />
&#8216;PlusVersionNumber&#8217;,<br />
&#8216;Primary&#8217;,<br />
&#8216;ProductType&#8217;,<br />
&#8216;RegisteredUser&#8217;,<br />
&#8216;SerialNumber&#8217;,<br />
&#8216;ServicePackMajorVersion&#8217;,<br />
&#8216;ServicePackMinorVersion&#8217;,<br />
&#8216;SizeStoredInPagingFiles&#8217;,<br />
&#8216;Status&#8217;,<br />
&#8216;SuiteMask&#8217;,<br />
&#8216;SystemDevice&#8217;,<br />
&#8216;SystemDirectory&#8217;,<br />
&#8216;SystemDrive&#8217;,<br />
&#8216;TotalSwapSpaceSize&#8217;,<br />
&#8216;TotalVirtualMemorySize&#8217;,<br />
&#8216;TotalVisibleMemorySize&#8217;,<br />
&#8216;Version&#8217;,<br />
&#8216;WindowsDirectory&#8217;<br />
)</p>
<p>class sysWMI():<br />
&#8230;def __init__(self):<br />
&#8230;&#8230;self.wmiObj = wmi.WMI()</p>
<p>&#8230;def getSysInfo(self):<br />
&#8230;&#8230;info = {}<br />
&#8230;&#8230;for obj in range(len(Win32_OperatingSystem_Fields)):<br />
&#8230;&#8230;&#8230;if hasattr(inf, Win32_OperatingSystem_Fields[obj]):<br />
&#8230;&#8230;&#8230;&#8230;print Win32_OperatingSystem_Fields[obj] + &#8220;: &#8221; + str(getattr(inf, Win32_OperatingSystem_Fields[obj]))</p>
<p>sysInfo = sysWMI()<br />
sysInfo.getSysInfo()</p></blockquote>
<p><strong>Personal Input</strong></p>
<p>Happy Birthday #4, Collier!!!   I love you, son.  You are a great son and I am proud to be your father. Although sometimes I raise my voice TO you, I raise my voice FOR you everyday.</p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/724/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adapt and Then Evolve</title>
		<link>http://www.cutawaysecurity.com/blog/archives/683</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/683#comments</comments>
		<pubDate>Wed, 02 Sep 2009 03:32:03 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Security Catalysts]]></category>
		<category><![CDATA[Security Catalyst]]></category>
		<category><![CDATA[Security Ripcord]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=683</guid>
		<description><![CDATA[Andy Willingham, or Andy ITGuy as some of you know him, posted an interesting question in the Security Catalyst forums the other day in a post titled &#8220;Is it really &#8216;Game Over&#8217;?&#8221;
I attended GFIRST this week and many of the presentations gave the impression that we have hit to point where it&#8217;s &#8220;game over&#8221;. None [...]]]></description>
			<content:encoded><![CDATA[<p>Andy Willingham, or <a title="Andy ITGuy" href="http://andyitguy.blogspot.com/" target="_blank">Andy ITGuy</a> as some of you know him, posted an interesting question in the <a title="Security Catalyst Forum" href="http://www.securitycatalyst.org/forums" target="_blank">Security Catalyst forums</a> the other day in a post titled <a title="Is it really &quot;Game Over&quot;?" href="http://www.securitycatalyst.org/forums/index.php?topic=1193.0" target="_blank">&#8220;Is it really &#8216;Game Over&#8217;?&#8221;</a></p>
<blockquote><p>I attended GFIRST this week and many of the presentations gave the impression that we have hit to point where it&#8217;s &#8220;game over&#8221;. None of them ever said that exactly but Amit Yoran of NetWitness came pretty close. He said that we have already lost and it&#8217;s going to get worse before it gets better.</p>
<p>What are you seeing in your &#8220;security life&#8221;?<br />
Is it that bad? Is it almost that bad?<br />
What do you think we need to do to change the course of things?</p>
<p>&#8230; (Go see his opinion in the post)</p></blockquote>
<p>Now, I haven&#8217;t been contributing to the Security Catalyst forums recently (although I know I should be), but I couldn&#8217;t let this one slip by without a comment.  Basically I take the stand point that there is no &#8220;Game Over&#8221; or even &#8220;Win or Lose&#8221; in the information technology security industry.  There is only &#8220;Adapt and Then Evolve.&#8221;   Some people might consider this &#8220;Playing Catch-up&#8221; and it can seem like it if you want to take a pessimistic attitude towards it (we all do multiple times during our careers).  I, however, view it as a constant struggle like life.  We aren&#8217;t here to &#8220;Win or Lose.&#8221;  There is not an &#8220;End Game&#8221; scenario.  There is only the constant struggle to survive the best way that we can and, while we are at it, make sure that good people are not preyed on by the scumbags in every society.  If we are very lucky, we will also make enough to support our families comfortably while they are dealing with their life struggles.</p>
<p>I have provided a few more details in my reply to Andy&#8217;s forum post.  Go, read it, chew on it a bit, then provide your input so that others can learn and grow.  After all, by doing so you are helping others &#8220;Adapting and Evolving&#8221; by being a Security Catalyst.</p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/683/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Friday Wrap-up 8/21/2009</title>
		<link>http://www.cutawaysecurity.com/blog/archives/671</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/671#comments</comments>
		<pubDate>Fri, 21 Aug 2009 22:52:55 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[invisigoth]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Security Ripcord]]></category>
		<category><![CDATA[Training]]></category>
		<category><![CDATA[Wink]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=671</guid>
		<description><![CDATA[Okay, I have been out of the blogging game a little too long.  It is time for me to start generating some more content.  So we will begin by doing a weekly wrap-up.  Basically I am going to go over a few of the things that occurred during my week.  I might even just set [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, I have been out of the blogging game a little too long.  It is time for me to start generating some more content.  So we will begin by doing a weekly wrap-up.  Basically I am going to go over a few of the things that occurred during my week.  I might even just set up a draft and populate as I go the hit submit on Friday afternoon.  As everybody will have started drinking by then my post should be well received.</p>
<p>I&#8217;m going to start out a little formless.  Hopefully this will start taking a  little better shape as we move forward.</p>
<p><strong>Leadership</strong></p>
<p>Lead from the front.  Some people might not like it, but the only reason they have time to bitch about it is because they are not doing it themselves.  You only learn from your mistakes.  If you aren&#8217;t leading you aren&#8217;t making enough mistakes to challenge yourself and provide yourself with enough opportunities to improve.</p>
<p><strong>Training</strong></p>
<p>I finally got around to using <a title="Wink" href="http://www.debugmode.com/wink/" target="_blank">Wink </a>the other day.  I developed some training using  the same old Power Point slides everybody seems to generate.  You know the type, all words and no joy&#8230;.er&#8230;pictures.  Even when you have a screen shot in PPTs it is just more words.  So, at the request of one of my team, I branched out with some flash video.  Of course Irongeek has been doing this for years and provides a walk through of what and how he does it: <a title="How I Make the Hacking Illistratied Videos" href="http://www.irongeek.com/i.php?page=CamStudioOSS/camstudio" target="_blank">How I make Hacking Illustrated Videos</a>.  Luckily I didn&#8217;t have to refer to Irongeek&#8217;s site as Wink was very easy to use.  I generated a quick training on doing a network capture using tcpdump.  Unfortunately I did it on my work system so I cannot provide it here.  But the point I wanted to make was that it was very easy.  Secondly, after pulling the video off my Linux system and onto my Windows system for emailing to the team, I noticed that I could import the Wink project back into the Windows version and add audio.  Now, I haven&#8217;t tried this completely, but it seemed straight forward.  So, hopefully, we will be seeing some of this later.  Next time I&#8217;ll generate the video on my own box and I&#8217;ll be able to provide it here.  Besides, everybody already knows how to do network capture with tcpdump, right?</p>
<p><strong>Quick Tip</strong></p>
<p>For the training I was just talking about I had to create a 10MB file.  It didn&#8217;t require any real data, I just needed some random bits but in a large file for demonstrating the file splitting functionality of tcpdump.  So I tried using &#8220;dd&#8221; to fill up the 10MB file using the following command.</p>
<blockquote><p># dd if=/dev/random 0f=./test_10MB.dat</p></blockquote>
<p>I was doing this on a Ubuntu Linux box.  Although this seems like it would work, and there are plenty of search results that say to do it using this technique, this does not work on Ubuntu Linux.  All this does is create a 4KB file.  I tried all kinds of different concatenation techniques.  But I couldn&#8217;t get a 10MB file.</p>
<p>It turns out that Linux systems do not produce enough entropy to fill a 10MB file quickly.  If the Wikipedia <a title="/dev/random" href="http://en.wikipedia.org/wiki//dev/random" target="_blank">/dev/random</a> entry is to be trusted we see that &#8220;When the entropy pool is empty, reads from <code>/dev/random</code> will <span class="mw-redirect">block</span> until additional environmental noise is gathered. <em>(Source: Linux Programmer&#8217;s Manual, section 4)&#8221;.<br />
</em></p>
<p>So, left out to dry I queried a friend of mine (Thank you, Schism) and he pointed out that the best way to do this is to use the following command.</p>
<blockquote><p># dd if=/dev/urandom 0f=./test_10MB.dat</p></blockquote>
<p>Which, of course, works like a charm.  He was also quick to point out that this does not provide the &#8220;randomness&#8221; as is produced by /dev/random, but for my purposes it worked well enough.</p>
<p><strong>Development</strong></p>
<p>I have been working with Python programming a bit over the last few months.  It has been interesting watching the program I have been working transform into something useful.  I wish that I could provide a little more information about it, but it is still an ongoing project, so I&#8217;ll refrain.</p>
<p>One thing I can talk about is building function calls in Python.  I am not sure if I am using the right terminology for it, but basically what I mean is creating a list of functions and then calling them based on the results from some other function.  For instance if you can define a table or list of functions like this:</p>
<blockquote><p>func_table = ( one, two, three )</p></blockquote>
<p>Then create a function of those names (necessary indent removed by Wordpress, so just pretend)</p>
<blockquote><p>def one():</p>
<p>print &#8220;one&#8221;</p>
<p>def two():</p>
<p>print &#8220;two&#8221;</p>
<p>def three():</p>
<p>print &#8220;three&#8221;</p></blockquote>
<p>Finally you can call each function by referencing them via the list.</p>
<blockquote><p>for i in range (3):</p>
<p>func_table[i]()</p></blockquote>
<p>When run this will produce</p>
<blockquote><p>one</p>
<p>two</p>
<p>three</p></blockquote>
<p><em>Special note: if you are returning information from these functions then you will need to store them in a variable before using or returning.  At least that is my experience.</em></p>
<p>Not very exciting until you start thinking about using tests instead of iterating through the loop.  This can be used to clean up complex code very nicely.  My understanding is that this will also help with optimizing the execution of the code as well.  What the magic balance between this method and several &#8220;if&#8221; statements is, I do not know.</p>
<p>Can anybody describe to me a good method of testing this optimization?  I don&#8217;t know enough about programming to come up with a complex enough task to challenge the CPU and memory of my system and produce viable results.  If you have a recommendation leave a comment and I will test and post results.  Or, you can run it yourself and post your results in the comments.  Either way it will be beneficial to us all.</p>
<p>BTW, thank you, <a title="Invisigoth on Twitter" href="http://twitter.com/invisig0th" target="_blank">Invisigoth</a>.  I learned this from reviewing your code.</p>
<p><strong>Personal Input</strong></p>
<p>Not much today as I need to get down stairs with the boys.</p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/671/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incident Response Lessons Learned</title>
		<link>http://www.cutawaysecurity.com/blog/archives/503</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/503#comments</comments>
		<pubDate>Thu, 19 Feb 2009 22:35:16 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Incident Response]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Don C. Weber]]></category>
		<category><![CDATA[Lessons Learned]]></category>
		<category><![CDATA[Security Ripcord]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=503</guid>
		<description><![CDATA[Following up on any project is key.  Talking to all involved about what has happened, why it happened, how it could have better, what worked very well, etc is the key to improvement.  So, why aren&#8217;t organizations that experience a security related incident able to prevent or curtail future incidents?  Basically because they are not [...]]]></description>
			<content:encoded><![CDATA[<p>Following up on any project is key.  Talking to all involved about what has happened, why it happened, how it could have better, what worked very well, etc is the key to improvement.  So, why aren&#8217;t organizations that experience a security related incident able to prevent or curtail future incidents?  Basically because they are not following up the incident with a lessons learned, or they are not doing it properly.</p>
<p>Incident Response should be handled like any other project.  It should be managed.  As most incident responders are aware, <a title="SANS GCIH" href="http://www.sans.org/training/description.php?mid=40&amp;utm_source=web&amp;utm_medium=text-ad&amp;utm_content=affiliate_link1&amp;utm_campaign=Cutaway_Security" target="_blank">SANS GCIH</a> course outlines 6 distinct phases of an incident response:</p>
<ol>
<li>Preparation</li>
<li>Identification</li>
<li>Containment</li>
<li>Eradication</li>
<li>Recovery, and</li>
<li>Lessons Learned</li>
</ol>
<p>Ah, Lessons Learned is the final step.  Actually, it is circular, so the final step leads into the first step.   I say leads into whereas a better metaphor might be &#8220;feeds.&#8221;  Or in the terms of following flow charts, for you management types out there, the outputs of Lessons Learned are the inputs of Preparation.  Here&#8217;s a question for you though, during your preparation phase did you look at the methodologies that you use to improve how you identify, prioritize, address, and follow-up on your lessons learned?  Or, when you are finished with your lessons learned meeting, do you have a list of action items that have been assigned to a specific individual who understands the criteria for successfully completing the action?</p>
<p>I just asked two questions that took your simple lessons learned meeting from a quick five minute session to a thirty minute plus session.  Although you might think that the issues will drive how long this meeting will last, in actuality that is not correct.  With proper methodology, in other words a practiced plan, this meeting can still be very quick while producing the key outputs that are necessary to augment your preparation phase.</p>
<p>Silver Bullet time.  Yes, I know, you want the silver bullet that is going to help you increase the effectiveness of your lessons learned process.  Guess what!!  Most likely you already have it.  Do you use process management to plan your software, hardware, or infrastructure development?  Bingo, then you have the means to improve your lessons learned.  Start using the processes that you already have in place.  I say this because it is the fastest and cheapest method to gaining control over this process.</p>
<p>For those of you who do not have a process in place, never fear, I have one word for you: Why.  Just ask why.  But ask it five times.  Asking why five times is the technique for determining root cause.  Gasp, Root Cause Analysis.  It is used during the <a title="Determine The Root Cause: 5 Whys" href="http://www.isixsigma.com/library/content/c020610a.asp">Six Sigma process</a> as well as being integrated into other project development schemes.  In his <a title="5 Whys" href="http://startuplessonslearned.blogspot.com/2008/11/five-whys.html" target="_blank">5 Whys</a> post <span>Eric Ries</span> explains that Taiichi Ohno of Toyota fame wrote about this technique in his book <a id="static_txt_preview" name="evtst|a|0915299143" href="http://www.amazon.com/gp/product/0915299143?ie=UTF8&amp;tag=lessolearn01-20&amp;link_code=as3&amp;camp=211189&amp;creative=373489&amp;creativeASIN=0915299143">Toyota Production System: Beyond Large-Scale Production</a>.</p>
<p>Now, this might seem silly to some at first.  It will seem especially silly to those individuals and groups that are not use to management their projects or doing root cause analysis.  This is where the longer meetings are going to come into play.  Of course, this is true of any new process.  New things take time to understand and get use to performing.  For some people the learning curve on how to conduct themselves in these meetings is going to be a long and tough journey.  But by consistently applying one of these methodologies to your lessons learned process you will find that each of your meetings is shorter and more productive.  The implementors will be happier because they are being heard (if they are participating) and the managers and executives will be happier because of the increased productivity and effectiveness of the end results.</p>
<p>Certainly I have only touched on this topic briefly.  If you have techniques that have worked to improve the effectiveness of your lessons learned meetings, please share them with us in the comments.</p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
<p>http://www.sans.org/?utm_source=web&amp;utm_medium=text-ad&amp;utm_content=affiliate_link1&amp;utm_campaign=Cutaway_Security</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/503/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>*nux Live Acquisition Techniques</title>
		<link>http://www.cutawaysecurity.com/blog/archives/328</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/328#comments</comments>
		<pubDate>Tue, 30 Sep 2008 05:23:33 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[forensics]]></category>
		<category><![CDATA[acquisition]]></category>
		<category><![CDATA[dd]]></category>
		<category><![CDATA[hard drive]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Security Ripcord]]></category>
		<category><![CDATA[split]]></category>
		<category><![CDATA[tar]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=328</guid>
		<description><![CDATA[Not all incident responses go according to plan.  This means that a responder has to have multiple methods for accomplishing tasks.  Harlan Carvey brings this up on his blog often and it is why Ed Skoudis created his famous WMIC Kung Fu write-up and turned it into a SANS Course: Windows Command-Line Kung Fu In-Depth [...]]]></description>
			<content:encoded><![CDATA[<p>Not all incident responses go according to plan.  This means that a responder has to have multiple methods for accomplishing tasks.  <a title="Harlan Carvey" href="http://www.blogger.com/profile/08966595734678290320" target="_blank">Harlan Carvey</a> brings this up on <a title="Windows Incident Response" href="http://windowsir.blogspot.com/" target="_blank">his blog</a> often and it is why <a title="Ed Skoudis" href="http://www.counterhack.net/Counter_Hack/Welcome.html" target="_blank">Ed Skoudis</a> created his famous <a title="Windows Command-Line Kung Fu with WMIC" href="http://isc.sans.org/diary.html?date=2006-03-30" target="_blank">WMIC Kung Fu write-up</a> and turned it into a SANS Course: <a href="http://http://www.sans.org/training/description.php?mid=627&amp;utm_source=web&amp;utm_medium=text-ad&amp;utm_content=affiliate_link1&amp;utm_campaign=Cutaway_Security">Windows Command-Line Kung Fu In-Depth for Info Sec Pros</a>.</p>
<p>On a recent engagement this fact came into play.  I went on site knowing that I would have multiple types of Unix and Linux operating systems to potentially acquire.  From the customer&#8217;s description I also knew that I would be dealing with some older equipment but nothing from their descriptions seemed out of the ordinary.  Once I  got on site I reviewed the situation with the customer and everything seem normal.  As I was not worried about collecting volatile data from the system I requested the customer set up a maintenance window and temporarily take the systems off line in a manner that provided the least amount of impact to their operations.</p>
<p>All went well until the system administrator handed me the hard drive.  It all seemed fine at first until I tried to plug the drive into the adapter that was connected to my write-blocker.  The pins didn&#8217;t match up.  Although there were plenty of pins across, the layers were placed too close together.  It was fine for the blade server that it came out of, but none of my adapters could plug into this configuration.  At first I figured this was no big deal.  I decided to boot to a Linux boot disk and just copy the drive from there to a USB hard drive.  Well, there was two problems with that: 1. The blade server did not have a CD-ROM drive, and 2. the USB port was version 1.1 and would not recognize the external hard drive that I had purchased (no big deal because 12MB per second would not cut it either!!).  So, plan one == bust and plan two == bust.</p>
<p>So what was plan three?  Well, dump over NFS using native commands, of course.  Luckily the system administrator was well versed in NFS and the commands we were about to use.  So there was not a lot of explaining, I didn&#8217;t have to type commands, and my only real job (as it should be in this type of situation) was mindful and guided keystroke monitoring.  Here is what we did.</p>
<ul>
<li>To start off, please review this great guide on <a title="Setting Up NFS HowTo" href="https://help.ubuntu.com/community/SettingUpNFSHowTo" target="_blank">setting up NFS</a> via the <a title="Ubuntu Community Wiki" href="https://help.ubuntu.com/community" target="_blank">Ubuntu community wiki</a>.  It does not dive deeply into NFS.  It just gives the basics on how to get it up and running on a live system or Live CD.  Of course, mileage may vary depending on distro, so beware.  Once it was all set up we navigated to the correct directories and prepared to acquire.  When all was done the system we were acquiring had a remote share mounted to <strong>/tmp/target</strong>.</li>
<li>Before we started copying files we needed to keep track of everything we did.  Of course we could have done that as soon as we logged into the system, but as it was the system administrator performing the actions and this was not necessarily a &#8220;Live Acquisition&#8221; it was not completely necessary and we needed to have a good place, like an NFS mounted directory, to copy our files.  So we changed to the /tmp/target directory and ran the <a title="man script" href="http://linuxreviews.org/man/script/" target="_blank">script</a> command to record our actions and sent it to an appropriately titled file.</li>
<li>Next we needed to record the system time.  Although we did note the BIOS time when the system was booting up, we need to record the time displayed by the operating system.  Running a quick <a title="man date" href="http://linuxreviews.org/man/date/" target="_blank">date</a> command proved enough.  No redirection was necessary as we were already recording everything into a file.</li>
<li>We needed to know what type of system we were running our commands on.  A quick <a title="man uname" href="http://www.research.att.com/~gsf/man/man1/uname.html" target="_blank">uname</a> accomplished this.  Of course different distros also have different methods of providing version information about themselves.  Look to website for the distro you are working with to determine which file to check in and then <a title="man cat" href="http://www.research.att.com/~gsf/man/man1/cat.html" target="_blank">cat</a> that information so that it is displayed to the screen and thereby written to your script file.</li>
<li>In order to get all of the system information written to the correct directory we needed several commands.  Unfortunately, if the system had been compromised and a rootkit had been deployed, there was the potential that critical information would not be copied.  To help alleviate some concern behind this issue we decided to run a few commands.  First we needed to know where each of our commands were located.  This was determined through a simple <a title="man which" href="http://www.research.att.com/~gsf/man/man1/which.html" target="_blank">which</a> command.  This let us know where the system thought the program was located and allowed us to call it directly as we did not want to rely on the $PATH environment variable.  Next we needed to get the versions for each command so that we knew which versions of the commands we were working with in case of any problems or other issues such as non-standard programs.  Most commands will take either a &#8211;version or -V and provide specific details about the command.  In this case we needed to know the version of <a title="man md5sum" href="http://www.research.att.com/~gsf/man/man1/md5sum.html" target="_blank">md5sum</a>, <a title="man dd" href="http://www.research.att.com/~gsf/man/man1/dd.html" target="_blank">dd</a>, and <a title="man split" href="http://www.research.att.com/~gsf/man/man1/split.html" target="_blank">split</a> that was provided by the system.  Once this information was displayed we had it recorded.  Next we took the md5sum of each of these commands just to be sure.  If necessary these outputs could be checked against known good versions from known good sources of the distro.  If really paranoid and the tools are available, other hashing tools could be used.  Although all of these tools could be &#8220;rooted&#8221; it is not very likely.  Plus, in this instance, we were not too worried about a rootkit, but you never know.</li>
<li>Now were were ready to copy the information to our mounted directory.  The hard drive was recognized as hda by the operating system.  This means that we needed to copy /dev/hda using the dd command.  But since we were copying a large hard drive (80 GB +) we needed to use the split command to help with errors.  Now, I did not know this before we started, but I heard from one of my co-workers and it was confirmed by the system administrator, that copying large files (everything is a file in *nix) to a NFS mounted directory was not completely reliable.  To help control this I was told that copying to 2GB files would be the best way to handle it.  If something failed then it would be easier to pick up from the last good file and just calculate the proper offsets to start the copying process from  that point instead of the beginning.  Here is the command we ended up running: <strong>/bin/dd if=/dev/hda | /usr/bin/split -d -b 2000m &#8211; /tmp/target/server_name.dd.</strong> Although you can review the split man page to understand the full command, I will point out two things.  The dash &#8220;-&#8221; is necessary because it tells the command to use the STDIN from the pipe as the input file.  The &#8220;.&#8221; at the end of the command is also necessary because it is what split uses to number the files it creates.</li>
<li>Depending on the system this will run for quite a while.  But before you run off for coffee and donuts or to analyze another system you&#8217;ll want to run one more command.  That command is the date command.  To do this just type date and press enter.  This will automatically run the date command once the previous command has completed running.  This time and date gets recorded into the script and the full run time is recorded for use in reporting and future efforts.</li>
</ul>
<p>Although all of this took some effort to do, the end result was that I had acquired the system in a manner that I could use multiple tools to evaluate the information.  Once this was all complete I moved onto the second webserver where we had similar issues with acquiring the hard drive as the system was running on the same blade server.  I would love to tell you that I just followed my previous steps and that all went well.  Unfortunately I cannot.  We did perform all of the steps but as soon as we hit enter on the dd command the system virtually locked up.  This came as quite a surprise as the previous system did not take a significant performance hit during the acquisition.  We stopped the command and did quick review of the logs on this new system.  The log was full of I/O errors and we could only assume that the hard drive was slowly failing.  Therefore, plan three == fail.  That is where the system administrator came to my rescue.  As the system did not have any problem backing up every night we decided to just <a title="man tar" href="http://www.research.att.com/~gsf/man/man1/tar.html" target="_blank">tar</a> the operating system over to the NFS mounted directory.  Although this would not get everything off of the drive, it would at least get some of the information and some is better than none, at least at this point. Here how the tar was accomplished.</p>
<ul>
<li>Follow all of the previous steps to get the information about the system and the commands.</li>
<li>Next you need to understand the version of tar provided by the distro you are working with.  Read the man page just to be sure you have the options determined correctly.  Because of the way that tar interacts with NFS (thank you, schism) it is probably going to be necessary to use the <a title="Gnu Tar Crossing boundaries" href="http://www.delorie.com/gnu/docs/tar/tar_97.html" target="_blank">&#8220;&#8211;one-file-system</a>&#8221; option.  This means that you will have to acquire each of your mounted directories separately.  For instance, if you have one partition mounted at /, one at /boot, and one at /home the &#8220;&#8211;one-file-system&#8221; command will not follow down the mounted directories.  You will have to do each separately.  The following command worked like a charm and then repeated for each mount point.  <strong>/bin/tar &#8211;one-file-system -cvf /tmp/target/</strong><strong>server_name_</strong><strong>root.tar /</strong></li>
</ul>
<p>So, after four tries I had all of the information that I needed to start my analysis.  Well, at least for these systems.  This simple acquisition really threw me for a loop initially.  Not only did I have to pull out multiple acquisition techniques it also affected my time on site.  That might not seem like much, but these extra step meant that I was on site for an additionally two days.  No small impact on the customer.  But, it could have been a lot worse.  If I had not been prepared with fall back alternatives, then I could have spent even more time on site.  Not only would this have impacted the customer&#8217;s pocket book but it would have also sewn the seeds of doubt into my capabilities.  This could have, in turn, jeopardized their view of the results of the analysis as well as the potential for the continuation of a forensic, or any other, business relationship.</p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/328/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>RE: Day 1: Starting at the beginning</title>
		<link>http://www.cutawaysecurity.com/blog/archives/260</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/260#comments</comments>
		<pubDate>Thu, 26 Jun 2008 11:27:56 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Jeremiah Grossman]]></category>
		<category><![CDATA[people]]></category>
		<category><![CDATA[webappsec]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=260</guid>
		<description><![CDATA[Jeremiah Grossman has a simple but sweet post about what to do on your first day of work when you come on board to a company that has no &#8220;no existing web/software security program.&#8221;  He simply asked, &#8220;What is the very first thing do on day 1? [sic]&#8221;
The meat of the post is in [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Bio" href="http://www.blogger.com/profile/05017778127841311186" target="_blank">Jeremiah Grossman</a> has a <a title="Day 1: Starting at the beginning" href="http://jeremiahgrossman.blogspot.com/2008/06/day-1-starting-at-beginning.html" target="_blank">simple but sweet post</a> about what to do on your first day of work when you come on board to a company that has no &#8220;no existing web/software security program.&#8221;  He simply asked, &#8220;What is the very first thing do on day 1? [sic]&#8221;</p>
<p>The meat of the post is in the comments.  Although it started out with some typical guidance on how to technically identify server, applications, vulnerabilities, and the like, the comments quickly transition into focus on the people of the organization.  Getting to know the executives, management peers, security and technical administrators, and even support personnel before diving in and trying to find problems and giving orders about how to fix them.</p>
<p>Security Professionals need to remember that there are other people out there.  It has often been said that we need to refrain from saying &#8220;No,&#8221; &#8220;Don&#8217;t,&#8221; &#8220;Can&#8217;t,&#8221; and other negatively connotative words unless absolutely necessary.  We often remind ourselves that we are a part of the business unit and that we are, typically, support personnel rather than the front line administrators (and if you are both then your security tasks should take the support model into consideration).  So when it all boils down, we are saying that we have to be a helpful and viable part of the business by working with the other employees, no matter the level, rather than being the lonesome cowboy with six-guns drawn.  Once we have accomplished this then we can start delving into identify critical physical assets, location of data, mission critical application, and other important technically-related security information.  Hopefully, your initial dealings with fellow employees and managers will have already greased the skids to start working with this information, but it will have also provided you with a better understanding of the politics and business necessities surrounding the current state of technical deployment.</p>
<p>I&#8217;m not going to repeat my or anybody else&#8217;s comments here.  Go check out Jeremiah&#8217;s post and then put in your two cents.  But while you are there, notice some of the names of people who are commenting on getting to know the people and organization first before diving into the technical aspect of the position.  You will probably notice many people that you know and respect.</p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/260/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security: Keeping Politics Out Of It</title>
		<link>http://www.cutawaysecurity.com/blog/archives/252</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/252#comments</comments>
		<pubDate>Fri, 30 May 2008 00:47:44 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Helpful]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Don C. Weber]]></category>
		<category><![CDATA[procedures]]></category>
		<category><![CDATA[process flow diagram]]></category>
		<category><![CDATA[processes]]></category>
		<category><![CDATA[Security Ripcord]]></category>
		<category><![CDATA[swim lanes]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=252</guid>
		<description><![CDATA[I would like to start off by saying, &#8220;You can&#8217;t!!&#8221;  The quicker you come to grips with that the better off you will be in the long run.  Politics, or perhaps Micro-Politics since I am talking about intra/inter-office politics, is just a fact of life.  Everybody has an agenda whether it is [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to start off by saying, &#8220;<strong>You can&#8217;t!!</strong>&#8221;  The quicker you come to grips with that the better off you will be in the long run.  Politics, or perhaps Micro-Politics since I am talking about intra/inter-office politics, is just a fact of life.  Everybody has an agenda whether it is to further themselves, further their family, further the company, or any number of other things.  So, get over it because it is just going to happen.</p>
<p>Now, let me tell you how you can control politics.  I&#8217;m not talking &#8220;hand of God&#8221; control.  I&#8217;m talking about making it difficult for politics to adversely (because some politics are good) influence the security of your organization.  The answer can be found in my previous post on <a title="Organized Security" href="http://www.cutawaysecurity.com/blog/archives/241" target="_blank">Organized Security</a>.  The answer i<strong>s &#8220;Document Your Processes!&#8221;</strong> Okay, that is not the full answer, but it is the start.  Getting your processes written down and accepted is the first step.  The thing that seems to be working the best for my team is to document a process&#8217; flow before writing down the procedure.  Understanding the actions, decisions, and touch points of a process before writing the document that details each action and decision point.  Here is a simple example pertaining to a user account request.  This process flow utilizes &#8220;<a title="Swim Lanes" href="http://en.wikipedia.org/wiki/Swim_lane" target="_blank">swim lanes</a>&#8221; to show different teams or departments.</p>
<p><a href="http://www.cutawaysecurity.com/blog/wp-content/uploads/2008/05/flowchart.png"><img class="alignleft size-medium wp-image-255" title="flowchart" src="http://www.cutawaysecurity.com/blog/wp-content/uploads/2008/05/flowchart.png" alt="Account Request Flowchart" /></a></p>
<p>Once you have created this flowchart it is very hard to justify a deviation from this process.  It becomes even more difficult once you detail each box in your procedural documentation.  Getting your management and each team or department listed in the &#8220;swim lanes&#8221; to sign off on their involvement with the process will decrease the deviation possibilities even more. And if all else fails, it will make deviations readily apparent to management and all of the teams or departments involved.</p>
<p>Now, this does not mean that deviations will not happen.  It is a fact of life that a situation or event was not taken into consideration during the development of the process.  These instances shouldn&#8217;t matter in the grand scheme.  Once the event has happened and been addressed, the individuals responsible for the process should quickly run through the process to see if any documentation needs to be generated or additional actions taken.  After everything has been addressed the team can conduct a lessons learn to determine if the process needs to be updated or if the deviation was just an anomaly that will rarely occur and can be addressed on a case by case basis.  Of course, politics can fall into this category.  But all of this, as I mentioned, makes the deviation very apparent and the extra work associated with running back through the process and evaluating the overall process should raise questions about the validity of the action.</p>
<p>Once everything is documented and approved there is another very important step.  That step is to <strong>consistently apply the process</strong>.  Lack of consistency will leave gaps in all of your processes.  Lack of consistency will breed contempt for your system and provide individuals and groups the leverage they need to circumvent the process in question and possibility the other processes developed by your team.</p>
<p>In the end you are not going to solve politics in your organization.  You and your team need to learn how to accept it as a part of doing business.  Just remember, diligent documentation, repeatable processes, and consistent application will protect you as much as they can.</p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/252/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sometimes, Just Doing Something Is Enough</title>
		<link>http://www.cutawaysecurity.com/blog/archives/251</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/251#comments</comments>
		<pubDate>Sun, 25 May 2008 15:42:47 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Helpful]]></category>
		<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Security Ripcord]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=251</guid>
		<description><![CDATA[Well, this week at work was very interesting.  Actually, the last two weeks have been extremely busy.  As Friday rolled in I looked into the eyes of my team members and I could see the tired, slightly overwhelmed, and, for some, haggled look in their eyes.  They had shouldered what our organization [...]]]></description>
			<content:encoded><![CDATA[<p>Well, this week at work was very interesting.  Actually, the last two weeks have been extremely busy.  As Friday rolled in I looked into the eyes of my team members and I could see the tired, slightly overwhelmed, and, for some, haggled look in their eyes.  They had shouldered what our organization decided to throw at them and they pulled through with their heads held high.  No small feat when you are talking about a crew with that was built from individuals with very little security background and a manager (me) who is hell-bent on documenting and improving each procedure as they are going through it.    I do this not only to help them build a program that is repeatable and lends itself to self-improvement, but so that our customer can &#8220;feel-the-pain&#8221; when their goals are not being accomplished due to the never ending &#8220;high priority&#8221; additional tasks (something I, and others, refer to as &#8220;firefighting&#8221;).</p>
<p>I usually make it a point to congratulate my team members for a job well done.  It builds confidence, denotes achievement, and helps give a sense of closure to on-going tasks and issues that never seem to have an &#8220;end.&#8221;  But this week I went a step further.  I let them know that when they are working on the &#8220;high priority&#8221; issues, when the &#8220;firefighting&#8221; is taking all of their time and effort, that <strong>the things they are doing are enough</strong>.  Just working the task is <strong>enough </strong>to help secure our environment.  Even if they haven&#8217;t completed the task or specific issues mean they were not able to address regular duties and other tasks, as long as they worked hard and smart, <strong>it is enough</strong>.</p>
<p>It has to be <strong>enough</strong>.  No environment is ever going to be 100 percent secure.  Security professionals and security cynics can all agree to that statement.  But, when you look at it from the other end, no environment is zero percent secure either.  Each operating system comes with some controls.  So every environment starts a little bit &#8220;in the black.&#8221;  As an organization starts adding personnel and controls they increase their security percentage.  Finally, with the addition of security professionals and a well-rounded security approach, an organization sees its greatest jump towards the unobtainable 100 percent secure goal.  Just dong things to move towards that endpoint <strong>is enough</strong>.  And I think that sometimes organizations and managers forget that aspect of the big picture.</p>
<p>So, when you get back in the office next week, take a look around.  Look at the accomplishments of your team members.  Take note of these accomplishments and provide the appropriate praise to the situation.  Let them know that <strong>their efforts are enough</strong> and that because of their actions the overall environment is more secure.  Then look at the other individuals in your organization.  Look at the system administrators, the desktop support personnel, the help desk operators, and everybody else.  Look at their actions and point out their accomplishments as well.  Let them know that they are helping secure the environment and that <strong>their actions are enough</strong>.</p>
<p>If you do this, <strong>you are doing enough</strong> and you are speeding up your progress towards that unobtainable goal.</p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/251/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keep Your Heads Up In The Stack</title>
		<link>http://www.cutawaysecurity.com/blog/archives/244</link>
		<comments>http://www.cutawaysecurity.com/blog/archives/244#comments</comments>
		<pubDate>Thu, 08 May 2008 02:39:13 +0000</pubDate>
		<dc:creator>cutaway</dc:creator>
				<category><![CDATA[Leadership]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Professionalism]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[USMC]]></category>
		<category><![CDATA[Don C. Weber]]></category>
		<category><![CDATA[Security Ripcord]]></category>

		<guid isPermaLink="false">http://www.cutawaysecurity.com/blog/?p=244</guid>
		<description><![CDATA[I&#8217;ve been doing a little running lately getting ready for the Corpus Christi Beach to Bay Relay.  Today, instead of our usual four mile run, we decided to work on some sprints.  We ran a mile and then started a series of 100 yard sprints with a 100 yard walk in between.  [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been doing a little running lately getting ready for the <a href="http://maps.google.com/maps?q=corpus+christi&amp;ie=UTF8&amp;oe=utf-8&amp;client=firefox-a&amp;t=h&amp;z=10&amp;iwloc=addr" target="_blank">Corpus Christi</a> <a href="http://beachtobayrelay.com/" target="_blank">Beach to Bay Relay</a>.  Today, instead of our usual four mile run, we decided to work on some sprints.  We ran a mile and then started a series of 100 yard sprints with a 100 yard walk in between.  Needless to say that the walking reset was filled full of huffing and puffing.  At one point I noticed that I was hanging my head like most people do when they are tired.  When I realized this I did what I always do, what I taught myself in the Marines after long runs and forced marches, I raised my head and started looking around.  I use to do this because whenever you are the most tired is when you are the most vulnerable.  You are not paying attention, you are breathing heavy, and you are doing everything you can just to take a break for a minute or two.  Fortunately, the repercussions of me doing this now are not the same as they were back then.</p>
<p>All of this got me thinking about how we react to situations as a whole.  I started thinking about how through training and effort we can begin to overcome  hardships.  I started thinking about how diligent practice can instill good habits and create muscle memory in any individual.  Muscle memory is a condition where a body reacts without, or more precisely with only a little, thinking.  You can see this by reviewing <a href="http://securosis.com/2008/05/02/react-faster-and-better-with-the-a-b-cs/" target="_blank">Rich Mogull&#8217;s posts</a> on <a href="http://securosis.com/2008/04/28/just-because-youre-an-expert-doesnt-make-you-an-expert/" target="_blank">how he handled</a> several car accidents after being out of the paramedics for a while.  Rich did what came natural to him.  He just reacted and, I&#8217;m sure, did a great job and a service.</p>
<p>&#8220;Yes, yes,&#8221; you are thinking to yourself right now.  We have heard this all before.  Practice makes perfect.  Practice your incident response.  Practice your backup procedures.  Practice your disaster recovery.  Practice makes perfect. Practice, Practice, Practice.  Blah, blah, blah.  Yes, I am tell you that.  But what I want to emphasize is that you can train yourselves all day long and still make mistakes.</p>
<p>Running with my head down took me back to the days of running through the hills of <a href="http://maps.google.com/maps?f=q&amp;hl=en&amp;geocode=&amp;q=Camp+Pendleton,+Ca&amp;sll=36.798907,-75.973806&amp;sspn=0.038282,0.069866&amp;ie=UTF8&amp;t=h&amp;z=10&amp;iwloc=addr" target="_blank">Camp Pendleton</a> and training myself to keep my head up and aware of my surroundings no matter how tired I was at the time.  But what it really got me thinking about was being in the stack.  Not the stack you are use to hearing about, the stack of Marines that are just about to enter a building or room that may contain hostiles.  It didn&#8217;t matter where we were, once people started lining up and getting ready to move to action, their heads dropped.  Not because they were tired or lazy, but because they were focused and waiting.  Like a spring ready to uncoil all of its power.  This occurred so often that it was not surprising to hear, &#8220;Keep your heads up in the stack!&#8221; whispered over the radio.  Or have someone give you a quick rap on the helmet as a reminder.  Everybody did it, everybody got sucked into it, and everybody was aware of it and watched out for their buddy, because that person was watching out for them.</p>
<p>So, how does this apply to us?  Well, security professionals have a lot to accomplish on any given day.  Logs to review, servers to patch, incidents to respond to, training to develop and give (and that is just the short list).  Let&#8217;s face it.  We are swamped with responsibility and duties.  Everybody groans when we walk into a room but everybody notices when our duties start falling behind because it directly affects their business.  With all of this activity, with all of this responsibility, it is very easy to get set into a common routine or mode.  It is very easy for our heads to drop into our computers, logs, management consoles, spreadsheets, etc.  We are doing our jobs and we are getting it done, but are we aware of our surroundings.  Are we aware of the common sights and sounds of the office environment and server room.  Are we listening to people talk when they need our guidance, input, or for us to listen for listening&#8217;s sake?</p>
<p>If you are, then good on you.  Now look around and see who is not.  Please, tap them on the head and tell them, &#8220;Keep your head up in the stack!&#8221;</p>
<p>Go forth and do good things,</p>
<p>Don C. Weber</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cutawaysecurity.com/blog/archives/244/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
