<?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/"
	>

<channel>
	<title>Security Fight Club &#187; Brute Force Cracking</title>
	<atom:link href="http://www.securityfightclub.com/category/security/brute-force-cracking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.securityfightclub.com</link>
	<description>Brought to you by Awareness Technologies</description>
	<lastBuildDate>Sat, 05 Jun 2010 04:08:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>If the user doesn&#8217;t know the password a few times, lock&#8217;em out</title>
		<link>http://www.securityfightclub.com/if-the-user-doesnt-know-the-password-a-few-times-lockem-out/</link>
		<comments>http://www.securityfightclub.com/if-the-user-doesnt-know-the-password-a-few-times-lockem-out/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 18:43:39 +0000</pubDate>
		<dc:creator>mrdenny</dc:creator>
				<category><![CDATA[Brute Force Cracking]]></category>
		<category><![CDATA[External Threats]]></category>
		<category><![CDATA[Internal Threats]]></category>
		<category><![CDATA[Passwords]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.securityfightclub.com/?p=121</guid>
		<description><![CDATA[One of the easiest things that you can do to keep people from guessing passwords is to slow them down.  Obviously I don&#8217;t mean do tell the person to try to log in less frequently, that just wouldn&#8217;t make any sense.  When someone is knocking on your computer&#8217;s door and trying a brute force password [...]]]></description>
			<content:encoded><![CDATA[<p>One of the easiest things that you can do to keep people from guessing passwords is to slow them down.  Obviously I don&#8217;t mean do tell the person to try to log in less frequently, that just wouldn&#8217;t make any sense.  When someone is knocking on your computer&#8217;s door and trying a brute force password attack, make them slow down.<span id="more-121"></span>Every system, either Internet facing or not (but especially Internet facing) should be configured so that if the wrong password is used to many times the account is automatically locked out for some period of time (more than a few minutes, less than a day) unless you have a secure way for users to verify who they are and reset there password.  If you have this sort of secure method to verify someone and reset there password, preferably in some sort of automated fashion you should do this and lock the account out until an administrator unlocks it (or customer service/help desk if this is your line of business app) or until the user resets the password.</p>
<p>In a perfect world this should be done at all layers of your application, both at the front end and at the back end.  At the front end, this is usually easy, as you control the application, and the code that goes into it.  Adding a module like this is pretty easy.  On the back end you&#8217;ve got less options available to you.  You are pretty much at the mercy of your database vendor on this one.</p>
<p>However the database vendors have heard our requests for more security in the platforms and they have begun to respond.  As an example <a href="http://www.microsoft.com/sql/" target="_blank">Microsoft SQL Server</a> has since the release of SQL Server 2005 included the ability to have the SQL Logons follow the same security requirements as Windows Logons on the Windows Active Directory domain.  (Other database vendors may offer similar features, but as I mostly use Microsoft SQL Server I&#8217;m not aware of them.  If you are please feel free to comment below.)</p>
<p>Now with this comes some risk.  Because if you were to enable these settings and someone did try to break into the database server using this account, the account would lock out.  This is both good and bad.  Its good because they aren&#8217;t able to continue the attack, however its also bad because your business application isn&#8217;t able to log into the database either.</p>
<p>Open source apps such as WordPress are starting to get these features added into them.  There&#8217;s a plugin for WordPress called &#8220;<a href="http://www.bad-neighborhood.com/" target="_blank">Login LockDown</a>&#8221; which allows the WordPress admin site to lock it self down if the same person gets the password wrong more than <em>n</em> number of times.  The options are totally configurable by the blog owner, so you can set your settings as high or as low as you want.</p>
<p>So, what&#8217;s the point of all this you ask?  It&#8217;s pretty simple, and it is easier when you look at the math.  Assume you wanted to attack a system which takes 1/10th of a second to check a password.  Using the characters on the standard keyboard (letters, numbers, symbols) you&#8217;ve got ~94 characters to work with.  Assuming an 4 character password of say &#8220;test&#8221; there are 78074896 character combination to try.  Assuming you try all the combination (just to make sure you get the correct password) it will take about 90 days to test all the options.  Now if every 5 failed attempts we lock the account for one hour that test times goes from 90 days to 3012 years (if I&#8217;m done my math correctly).</p>
<p>The next question then becomes, why would anyone take 90 days to break my password.  The answer is that they wouldn&#8217;t.  They would use more than one machine to reduce that 90 days down to a more manageable number.  If using 10 computers and you break with workload up evenly across the 10 computers that 90 days, is now 9 days.  20 computers will get it done in 4.5 days.  50 computers will get it done in 1.8 days.  All of a sudden by simply throwing a few computers at the problem the password gets broken very quickly.  Now longer passwords will make this take longer, but if you have a system which people really want to break into they could get access to one of the large <a href="http://en.wikipedia.org/wiki/Botnet" target="_blank">botnets</a> and have 100,000 computers work on breaking into your site.  Even with a very strong password, it wouldn&#8217;t take all that long to brute force your way into your passwords.</p>
<p>The only sure fire way to stop someone from brute forcing there way into your accounts is to lock those accounts after the password has been tried incorrectly several times.  Don&#8217;t make the limits to low that your customers can get into there own services, but don&#8217;t make them so loose that people can break into those services.</p>
<p>Denny</p>
]]></content:encoded>
			<wfw:commentRss>http://www.securityfightclub.com/if-the-user-doesnt-know-the-password-a-few-times-lockem-out/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Keep your databases off the Internet</title>
		<link>http://www.securityfightclub.com/keep-your-databases-off-the-internet/</link>
		<comments>http://www.securityfightclub.com/keep-your-databases-off-the-internet/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 02:46:55 +0000</pubDate>
		<dc:creator>mrdenny</dc:creator>
				<category><![CDATA[Attack Scripts]]></category>
		<category><![CDATA[Brute Force Cracking]]></category>
		<category><![CDATA[Data Loss]]></category>
		<category><![CDATA[Endpoints]]></category>
		<category><![CDATA[Firewalls]]></category>
		<category><![CDATA[Listeners]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Routers]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Service Broker]]></category>
		<category><![CDATA[ACLs]]></category>
		<category><![CDATA[Endpoint]]></category>
		<category><![CDATA[firewall]]></category>
		<category><![CDATA[Internet Access]]></category>
		<category><![CDATA[Listener]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://www.securityfightclub.com/?p=99</guid>
		<description><![CDATA[There are way to many people who keep there database servers available from the public Internet.  This is just a disaster waiting to happen.
Your database holds all of your data.  If someone was to great into your database server they would have access to view, and possibly delete all your data forcing you to restore [...]]]></description>
			<content:encoded><![CDATA[<p>There are way to many people who keep there database servers available from the public Internet.  This is just a disaster waiting to happen.<span id="more-99"></span></p>
<p>Your database holds all of your data.  If someone was to great into your database server they would have access to view, and possibly delete all your data forcing you to restore your data from your backup.  In a perfect world there would be no database servers directly accessible from the Internet.  There is pretty much no reason for database servers to be directly accessible from the Internet.</p>
<p>If your servers are CoLo&#8217;d then setup a VPN between your office and the CoLo, or VPN directly into the CoLo.  There are some hosting providers which prefer to setup the servers on public IPs, however most of them will if requested use private IPs and configure a Site to Site VPN connection for you.</p>
<p>Pretty much the only times that a database needs to be on the Internet would be if you are replicating data between servers as this will typically require that at least one of the servers be on the public Internet.  SQL Service Broker can need to be on the public Internet as well.  However in both of these cases, you don&#8217;t need to give the server a public IP.  You can give the server a private IP, and NAT the server from the Internet to the private IP.  However make sure that only the correct port or ports are open through the firewall.</p>
<p>In Oracle this should be done by setting up a new listener.  In SQL Server this is done by setting up a new endpoint either for general connection, or in the case of Service Broker an Endpoint is used to connect to, which listens on a seperate TCP port.  When setting up these listeners or endpoints make sure that only the accounts which need to have access to them have access.  This way the minimal attack surface is avaialble from the Internet.  In addition you will want to setup your firewall or router ACLs to allow only the required public IP addresses to have access to the listener or endpoint.</p>
<p>With your database being publicly available attack scripts could attack for it, or people could manually try and break in.  With SQL Server running in mixed mode, and with Oracle there are accounts which can be brute forced which have well known usernames such as system and sa.  When SQL Server is running in Windows only mode breaking in is harder, but not impossible.</p>
<p>Denny</p>
]]></content:encoded>
			<wfw:commentRss>http://www.securityfightclub.com/keep-your-databases-off-the-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
