<?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>damonparker.org &#187; Security</title>
	<atom:link href="http://damonparker.org/blog/category/technical/security/feed/" rel="self" type="application/rss+xml" />
	<link>http://damonparker.org</link>
	<description>code / ecommerce / life</description>
	<lastBuildDate>Mon, 14 Jun 2010 14:33:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-RC3</generator>
		<item>
		<title>Zen Cart Patch Needed For Admin Security</title>
		<link>http://damonparker.org/blog/2007/07/04/zen-cart-patch-needed-for-admin-security/</link>
		<comments>http://damonparker.org/blog/2007/07/04/zen-cart-patch-needed-for-admin-security/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 12:49:38 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Broken]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2007/07/04/zen-cart-patch-needed-for-admin-security/</guid>
		<description><![CDATA[Zen Cart has released a patch for all versions v1.2 through v1.3.7 that fixes a serious security hole in the admin login/password reset system. I strongly advise all current ZenCart users to see to it that this patch is performed on their systems. The patch takes less than fifteen minutes to complete. If you need [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://zencart.com" rel="external">Zen Cart</a> has <a href="http://www.zen-cart.com/forum/showthread.php?t=69510">released a patch</a> for all versions v1.2 through v1.3.7 that fixes a serious security hole in the admin login/password reset system. </p>
<p><strong>I strongly advise all current ZenCart users to see to it that this patch is performed on their systems.</strong>  The patch takes less than fifteen minutes to complete.</p>
<p>If you need help with this patch, I can install for $25.<br />
<span id="more-367"></span><br />
Contact me below for details.<br />
[CONTACT-FORM]  </p>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=367" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=367&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2007/07/04/zen-cart-patch-needed-for-admin-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding on a Live Site</title>
		<link>http://damonparker.org/blog/2007/06/29/coding-on-a-live-site/</link>
		<comments>http://damonparker.org/blog/2007/06/29/coding-on-a-live-site/#comments</comments>
		<pubDate>Fri, 29 Jun 2007 11:46:43 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2007/06/29/coding-on-a-live-site/</guid>
		<description><![CDATA[I have written several times about debugging a live site and posted snippets for working on the themes of a live WordPress install. One trick I haven&#8217;t mentioned is using the PHP error log. PHP on any production site should be configured to not display errors. I see all too often on random sites that [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I have written several times about <a href="http://damonparker.org/blog/2005/08/22/debug-variables-in-php/">debugging a live site</a> and posted snippets for <a href="http://damonparker.org/blog/2007/04/09/wordpress-hack-debug-themes/">working on the themes</a> of a live WordPress install.  One trick I haven&#8217;t mentioned is using the <a href="http://www.php.net/manual/en/ref.errorfunc.php#ini.error-log" rel="external">PHP error log</a>.</p>
<p>PHP on any production site should be configured to not display errors.  I see all too often on random sites that PHP has been configured to show errors (sometimes even in Google results).  This gives away too much information about your application and server.   </p>
<p>On the servers and applications I work on all of the time, I configure PHP to log errors to <em>/var/log/php_errors</em>.  Simply tailing this file through a console will quickly show any errors caused by the edits.</p>
<p>To enable logging, check these two variables in your <strong>php.ini</strong>:</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">; Log errors into a log file (server-specific log, stderr, or error_log (below))</span><br />
<span style="color: #666666; font-style: italic;">; As stated above, you're strongly advised to use error logging in place of</span><br />
<span style="color: #666666; font-style: italic;">; error displaying on production web sites.</span><br />
<span style="color: #000099;">log_errors </span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> On</span></div></div>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">; Log errors to specified file.</span><br />
<span style="color: #666666; font-style: italic;">;error_log = filename</span><br />
<span style="color: #000099;">error_log </span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /var/log/php_errors</span></div></div>
<p>To <a href="http://www.gnu.org/software/textutils/manual/textutils/html_chapter/textutils_5.html#SEC14" rel="external">tail</a> the log file from an SSH console:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">tail -f <span style="color: #66cc66;">/</span>var<span style="color: #66cc66;">/</span>log<span style="color: #66cc66;">/</span>php_errors</div></div>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=365" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=365&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2007/06/29/coding-on-a-live-site/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exim Queue Snippets</title>
		<link>http://damonparker.org/blog/2007/06/28/exim-queue-snippets/</link>
		<comments>http://damonparker.org/blog/2007/06/28/exim-queue-snippets/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 13:26:13 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[SysAdmin]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2007/06/28/exim-queue-snippets/</guid>
		<description><![CDATA[These are all useful when trying to track down an open formmail script. List bounce messages exiqgrep -f '^&#60;&#62;$' Freeze bounce messages exiqgrep -i -f '^&#60;&#62;$' &#124; xargs exim -Mf Freeze messages from user@domain.com exiqgrep -i -f user@domain.com&#124; xargs exim -Mf Find out what user your webserver runs as. Use this as the email address [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>These are all useful when trying to track down an open formmail script.</p>
<p>List bounce messages</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exiqgrep -f <span style="color: #ff0000;">'^&lt;&gt;$'</span></div></div>
<p>Freeze bounce messages</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exiqgrep -i -f <span style="color: #ff0000;">'^&lt;&gt;$'</span> <span style="color: #66cc66;">|</span> xargs exim -Mf</div></div>
<p>Freeze messages from <em>user@domain.com</em></p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exiqgrep -i -f user<span style="color: #66cc66;">@</span>domain.com<span style="color: #66cc66;">|</span> xargs exim -Mf</div></div>
<p>Find out what user your webserver runs as.  Use this as the email address to key on.  For example, my Apache runs as <em>nobody</em> so I want to freeze all messages sent from the user <em>nobody@domain.com</em> so I can look through them to see if I can deduce where the insecure formmail script is.</p>
<p>Delete frozen messages</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">exiqgrep -z -i <span style="color: #66cc66;">|</span> xargs exim -Mrm</div></div>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=301" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=301&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2007/06/28/exim-queue-snippets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zencart Hack &#8211; Logout Customer Automatically After X Failed Payment Attempts</title>
		<link>http://damonparker.org/blog/2007/06/22/zencart-hack-logout-customer-automatically-after-x-failed-payment-attempts/</link>
		<comments>http://damonparker.org/blog/2007/06/22/zencart-hack-logout-customer-automatically-after-x-failed-payment-attempts/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 19:17:37 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2007/06/22/zencart-hack-logout-customer-automatically-after-x-failed-payment-attempts/</guid>
		<description><![CDATA[Credit card slamming is the practice of trying hundreds or thousands of card numbers and security code combinations to find the few in the batch that will actually work. I have discussed credit card slamming here and over at the ZenCart forums several times in the past. The code snippet below can be used in [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Credit card slamming is the practice of trying hundreds or thousands of card numbers and security code combinations to find the few in the batch that will actually work.    I have discussed <a href="http://damonparker.org/blog/2007/03/15/combating-card-fraud/">credit card slamming</a> here and over at the <a href="http://www.zen-cart.com/forum/showthread.php?t=52483&#038;page=2#17" rel="external">ZenCart forums</a> several times in the past. </p>
<p>The code snippet below can be used in <em>modules/checkout_process.php</em> to automatically log a user out after a set number (6 in the below snippet) of payment attempts.</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// damonp add auto logoff after 6 attempts</span><br />
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">!</span> <a href="http://www.php.net/isset"><span style="color: #000066;">isset</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'payment_attempt'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> &nbsp; <span style="color: #0000ff;">$_SESSION</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'payment_attempt'</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #cc66cc;">0</span>;<br />
<span style="color: #0000ff;">$_SESSION</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'payment_attempt'</span><span style="color: #66cc66;">&#93;</span>++;<br />
<br />
<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'payment_attempt'</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">6</span><span style="color: #66cc66;">&#41;</span>&nbsp; &nbsp; <span style="color: #66cc66;">&#123;</span> <span style="color: #808080; font-style: italic;">// change 6 to change how many attempts to allow before logout</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// log attempt or email report &nbsp;</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// the following information is useful</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// &quot;Host:\t\t&quot;.$_SESSION['customers_host_address'].</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// &quot;\nCustomer:\t&quot;.$_SESSION['customer_id'].</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// &quot;\nTotal:\t\t&quot;.$_SESSION['cart']-&gt;total,</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// destroy session to log customer out</span><br />
&nbsp; &nbsp; zen_session_destroy<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">// redirect to timeout page or create new page to redirect to</span><br />
&nbsp; &nbsp; zen_redirect<span style="color: #66cc66;">&#40;</span>zen_href_link<span style="color: #66cc66;">&#40;</span>FILENAME_TIME_OUT, <span style="color: #ff0000;">''</span>, <span style="color: #ff0000;">'SSL'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #66cc66;">&#125;</span></div></div>
<p>Place in between this code near the top of the file:</p>
<div class="codecolorer-container php default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #808080; font-style: italic;">// if the customer is not logged on, redirect them to the time out page</span><br />
&nbsp; <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">!</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'customer_id'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; zen_redirect<span style="color: #66cc66;">&#40;</span>zen_href_link<span style="color: #66cc66;">&#40;</span>FILENAME_TIME_OUT<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; <span style="color: #66cc66;">&#125;</span><br />
<br />
INSERT AUTO LOGOUT FUNCTIONALITY HERE <br />
<br />
<span style="color: #808080; font-style: italic;">// load selected payment module</span><br />
&nbsp; <span style="color: #b1b100;">require</span><span style="color: #66cc66;">&#40;</span>DIR_WS_CLASSES . <span style="color: #ff0000;">'payment.php'</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; <span style="color: #0000ff;">$payment_modules</span> = <span style="color: #000000; font-weight: bold;">new</span> payment<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$_SESSION</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'payment'</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #808080; font-style: italic;">// load the selected shipping module</span><br />
&nbsp; <span style="color: #b1b100;">require</span><span style="color: #66cc66;">&#40;</span>DIR_WS_CLASSES . <span style="color: #ff0000;">'shipping.php'</span><span style="color: #66cc66;">&#41;</span>;</div></div>
<p>I found six attempts to work well on the sites I implemented on.  You do not want to adversely impact normal users but you do want to make it harder on abusers so that they just go away.  </p>
<h4>BE WARNED</h4>
<p>Improper use of this code could prevent anyone from checking out.  The two things that will save you when trying this out are:</p>
<ol>
<li>MAKE A BACKUP</li>
<li>FULLY TEST BEFORE CALLING IT COMPLETE</li>
</ol>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=320" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=320&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2007/06/22/zencart-hack-logout-customer-automatically-after-x-failed-payment-attempts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nolisting &#8211; Poor Man&#8217;s Greylisting</title>
		<link>http://damonparker.org/blog/2007/03/20/nolisting-poor-mans-greylisting/</link>
		<comments>http://damonparker.org/blog/2007/03/20/nolisting-poor-mans-greylisting/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 20:27:30 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2007/03/20/nolisting-poor-mans-greylisting/</guid>
		<description><![CDATA[Nolisting &#8211; Poor Man&#8217;s Greylisting I thought this was an interesting option to try to weed out some spam on servers inundated by spam. It wouldn&#8217;t be a permanent fix as it would only require a trivial workaround. But in my experience, these types are lazy and will go off to easier pickens if they [...]]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.joreybump.com/code/howto/nolisting.html">Nolisting &#8211; Poor Man&#8217;s Greylisting</a></p>
<p>I thought this was an interesting option to try to weed out some spam on servers inundated by spam.  It wouldn&#8217;t be a permanent fix as it would only require a trivial workaround.  But in my experience, these types are lazy and will go off to easier pickens if they run into too many problems.</p>
<h4>Update</h4>
<p>I bookmarked this site late last week, but wasn&#8217;t able to connect just now.  If the site doesn&#8217;t come back shortly I&#8217;ll post a link or two to other sites discussing.  Or if I can find the time, post my own implementation.</p>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=327" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=327&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2007/03/20/nolisting-poor-mans-greylisting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Combating Card Fraud (or at least slow it down)</title>
		<link>http://damonparker.org/blog/2007/03/15/combating-card-fraud/</link>
		<comments>http://damonparker.org/blog/2007/03/15/combating-card-fraud/#comments</comments>
		<pubDate>Thu, 15 Mar 2007 17:35:45 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[Ecommerce]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2007/03/15/combating-card-fraud/</guid>
		<description><![CDATA[I have a major client whose Authorize.net gateway account gets hit sometimes hundreds of times a day with charge attempts. Most are posted by an automated script from IPs coming out of Indonesia or Eastern Europe in an attempt to find a valid credit card number and security code. Fortunately, it hasn&#8217;t cost the client [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I have a major client whose Authorize.net gateway account gets hit sometimes hundreds of times a day with charge attempts.  Most are posted by an automated script from IPs coming out of Indonesia or Eastern Europe in an attempt to find a valid credit card number and security code.  Fortunately, it hasn&#8217;t cost the client any money directly yet.  Out of the thousands of attempts in the last few months only a couple of charges actually captured funds from the stolen card information.  All of these were promptly cancelled after review.  </p>
<p>In discussions with this client, we came up with the following options.  They are listed in order of ease to implement and least impact on legitimate customers.</p>
<ol>
<li>Require only a billing address and plainly state all orders are only shipped to billing address</li>
<li>Require card billing address and shipping address to be in same country or deny the order before going to authorize</li>
<li>Require all international orders to be Paypal so they can&#8217;t automate the whole process (or maybe allow orders from countries with low fraud percentage to use a credit card directly and all others Paypal)</li>
<li>Automatically log user out after X failed attempts</li>
<li>Automatically block the IP address after X failed attempts for a time period between a few hours to a day or two</li>
<li>Match customer&#8217;s IP address to billing / shipping country before going to authorize</li>
</ol>
<p>My thinking is the better methods would include ways of slowing down the requests so that automated script kiddie tools would constantly fail while legitimate users that are just having problems would not be completely prevented from checking out.  I also think a more robust system would utilize several layers of protection (same as a multi-layered approach to server security is better in the long run than putting all of your eggs in the single proverbial basket).</p>
<p>Over the course of the next few weeks I will implement some of these options and dream up more if necessary.  Stay tuned for updates.  </p>
<p>Should your site be experiencing similar issues, <a href="http://damonparker.org/contact.php">contact me </a> to discuss options.</p>
<h4>Note</h4>
<p><a href="http://maxmind.com" rel="external">Maxmind</a> supplies a free <a href="http://www.maxmind.com/app/csv" rel="external">IP to country database</a> in CSV format along with their commercial IP database products.</p>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=319" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=319&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2007/03/15/combating-card-fraud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Chkrootkit Grep</title>
		<link>http://damonparker.org/blog/2006/11/09/chkrootkit-grep/</link>
		<comments>http://damonparker.org/blog/2006/11/09/chkrootkit-grep/#comments</comments>
		<pubDate>Thu, 09 Nov 2006 18:30:30 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Snippets]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2006/11/09/chkrootkit-grep/</guid>
		<description><![CDATA[chkrootkit bindshell &#124; grep &#34;INFECTED\&#124;Vulnerable&#34;]]></description>
			<content:encoded><![CDATA[<p></p><div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">chkrootkit bindshell <span style="color: #66cc66;">|</span> grep <span style="color: #ff0000;">&quot;INFECTED<span style="color: #000099; font-weight: bold;">\|</span>Vulnerable&quot;</span></div></div>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=278" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=278&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2006/11/09/chkrootkit-grep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Client Security on the Command Line</title>
		<link>http://damonparker.org/blog/2006/06/23/mysql-client-security-on-the-command-line/</link>
		<comments>http://damonparker.org/blog/2006/06/23/mysql-client-security-on-the-command-line/#comments</comments>
		<pubDate>Fri, 23 Jun 2006 20:39:22 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2006/06/23/mysql-client-security-on-the-command-line/</guid>
		<description><![CDATA[The MySQL client allows specifying the database password on the command line using the following parameters: mysql -utheusername -pthepassword thedatabasename If you are in a habit of doing this&#8230; STOP NOW! If you are using a shell like Bash, the password is saved in the bash_history file. Should anyone into the server, they can easily [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The MySQL client allows specifying the database password on the command line using the following parameters:</p>
<div class="code">
mysql -u<em>theusername</em> -p<em>thepassword</em> <em>thedatabasename</em> </div>
<p>If you are in a habit of doing this&#8230; STOP NOW!</p>
<p>If you are using a shell like <a href="http://en.wikipedia.org/wiki/Bash" rel="external">Bash</a>, the password is saved in the bash_history file.  Should anyone into the server, they can easily get your MySQL password by viewing the history file.</p>
<p>Altering the command line to:</p>
<div class="code">
mysql -u<em>theusername</em> -p <em>thedatabasename</em> </div>
<p>Causes MySQL to ask for the password, so that it cannot be stored in the history.</p>
<p>Proper security is layered.  Just because one account password is hacked, doesn&#8217;t mean you should give away the keys to MySQL too!</p>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=260" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=260&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2006/06/23/mysql-client-security-on-the-command-line/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stop Forum Spam</title>
		<link>http://damonparker.org/blog/2006/06/09/stop-forum-spam/</link>
		<comments>http://damonparker.org/blog/2006/06/09/stop-forum-spam/#comments</comments>
		<pubDate>Fri, 09 Jun 2006 16:41:21 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2006/06/09/stop-forum-spam/</guid>
		<description><![CDATA[Spammers have now moved from email spam to blog comment spam to forum spam. I have received several complaints of dozens of daily messages posted to public forums. One enterprising spammer has been posting advertisement for his forum spamming services with links to an email address for contacting him. If you have a low volume [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Spammers have now moved from email spam to blog comment spam to forum spam.   I have received several complaints of dozens of daily messages posted to public forums.  One enterprising spammer has been posting advertisement for his forum spamming services with links to an email address for contacting him.  </p>
<p>If you have a low volume forum, you can subscribe to all new posts and delete as necessary.  Most spams that I have seen come from a new user account.  The spammer appears to be using a script to create a new forum account to post the single message and move on.  Subsequent spam messages are also posted from a single use forum account.  One way around this is to require admin approval on all new signups.  Another option may be to require <a href="http://en.wikipedia.org/wiki/Captcha" rel="external">captcha</a> and or email validation before automatically approving the new forum account.  YMMV as some captcha systems can be easily circumvented.</p>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=254" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=254&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2006/06/09/stop-forum-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Security By Obscurity</title>
		<link>http://damonparker.org/blog/2006/03/23/security-by-obscurity/</link>
		<comments>http://damonparker.org/blog/2006/03/23/security-by-obscurity/#comments</comments>
		<pubDate>Thu, 23 Mar 2006 21:55:03 +0000</pubDate>
		<dc:creator>damonp</dc:creator>
				<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://damonparker.org/blog/2006/03/23/security-by-obscurity/</guid>
		<description><![CDATA[Good security consists of multiple layers of procedures and applications, all with the goal of keeping unauthorized users out and ensuring properly authorized users have access to only the things they should. With public internet servers and web applications this can mean things such as: Ensuring users create at least moderately secure passwords Instituting mandatory [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Good security consists of multiple layers of procedures and applications, all with the goal of keeping unauthorized users out and ensuring properly authorized users have access to only the things they should.  With public internet servers and web applications this can mean things such as:</p>
<ul>
<li>Ensuring users create at least moderately secure passwords</li>
<li>Instituting mandatory password changes on a monthly or quarterly schedule</li>
<li>Regular security audits</li>
<li>Firewall and firewall maintenance</li>
<li></li>
</ul>
<p>Another layer not usually thought of is obscurity.  If they can&#8217;t find it, they can&#8217;t exploit it.  That being said, obscurity by itself isn&#8217;t very secure.  It only takes one malicious user to find what has been hidden and all hell breaks loose.   Multiple layers of security build upon each other more than just through addition.  They add orders of magnitude more security to the system as a whole.</p>
<p>Most web applications support changing the default install directories.  To keep prying eyes out of your data, move <a href="http://phpmyadmin.net" rel="external">PHPMyAdmin</a> into a directory with a random name.  Move the admin directory for an applications like, <a href="http://zencart.com" rel="external">ZenCart</a>.  If you are use these admin URLs frequently, the URL will be saved in the history of your browser and always accessible.  If not a simple bookmark can help you remember.</p>
 <img src="http://damonparker.org/wp-content/plugins/feed-statistics.php?view=1&post_id=224" width="1" height="1" style="display: none;" /><img src="http://damonparker.org/?ak_action=api_record_view&id=224&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://damonparker.org/blog/2006/03/23/security-by-obscurity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using xcache
Page Caching using xcache
Database Caching 21/58 queries in 0.007 seconds using xcache
Content Delivery Network via cdn.damonparker.org/q9i5a4w8/cds

Served from: damonparker.org @ 2010-07-30 14:05:30 -->