<?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>Web 2.1 &#187; spam</title>
	<atom:link href="http://web.2point1.com/tag/spam/feed/" rel="self" type="application/rss+xml" />
	<link>http://web.2point1.com</link>
	<description>Tim Whitlock&#039;s home in the Blogohedron</description>
	<lastBuildDate>Thu, 13 May 2010 21:26:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Beating noisy Twitter apps</title>
		<link>http://web.2point1.com/2009/11/29/beating-noisy-twitter-apps/</link>
		<comments>http://web.2point1.com/2009/11/29/beating-noisy-twitter-apps/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 12:25:51 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[viral]]></category>

		<guid isPermaLink="false">http://web.2point1.com/?p=269</guid>
		<description><![CDATA[I woke up this morning to the apparent viral spread of the TweetCloud app that unoriginally, but very nicely displays your most tweeted words of the year, or month, or .. you get the idea. Here&#8217;s mine -&#62;
If you&#8217;re impatient, you may wish to skip to the good bit.
Preamble
Now, how did this app manage such [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://web.2point1.com/wp-content/uploads/2009/11/tweetcloud.png"><img class="alignright size-full wp-image-271" title="tweetcloud" src="http://web.2point1.com/wp-content/uploads/2009/11/tweetcloud.png" alt="tweetcloud" width="234" height="188" /></a>I woke up this morning to the apparent viral spread of the TweetCloud app that unoriginally, but very nicely displays your most tweeted words of the year, or month, or .. you get the idea. Here&#8217;s mine -&gt;</p>
<p><span id="more-269"></span>If you&#8217;re impatient, you may wish to <a href="#goodbit">skip to the good bit</a>.</p>
<h3>Preamble</h3>
<p>Now, how did this app manage such spread when there are so many like it? <em>Possibly</em> because it tweets from your account when your results are ready. This is not uncommon and it can be a nice feature that I might recommend. With the difference that it should be a 100% opt-in feature. TweetCloud&#8217;s start button says &#8220;<em>make and tweet cloud</em>&#8220;, so it does warn you. But people don&#8217;t read &#8211; they click.</p>
<p>TweetCloud insists that you log in before you can use it. It uses OAuth for this which is good (+1 point). Doing this means it can make calls to the Twitter API within <em>your</em> hourly request limit, rather than exhaust its own. (useful if you&#8217;re not whitelisted). But the real reason you must authenticate with TweetCloud is so that it can update your status. When building an app you have to seriously justify asking the user to authenticate/register etc.. As a general rule, the user should see that this action is for their benefit, not yours.</p>
<p>Good examples of this done right would be:</p>
<ul>
<li><em>TwitPic</em>, which has a genuine use for tweeting on your behalf.</li>
<li><em>Canabalt</em>, a game where you <em>want</em> to share your score for social kudos.</li>
</ul>
<p>Both of these apps make the tweet opt-in <em>each</em> time.</p>
<p><a name="goodbit"></a></p>
<h3>The good bit</h3>
<p>While TweetCloud was busy generating the cloud (which took a minute or so) I dived off to my Twitter settings and revoked the permission I had granted the app. If you don&#8217;t know how to do this, it&#8217;s under &#8220;settings &gt; connections&#8221;, or here: <a href="http://twitter.com/account/connections" target="_blank">http://twitter.com/account/connections</a></p>
<p><a href="http://web.2point1.com/wp-content/uploads/2009/11/tweetrevoke.png"><img class="alignnone size-full wp-image-273" title="tweetrevoke" src="http://web.2point1.com/wp-content/uploads/2009/11/tweetrevoke.png" alt="tweetrevoke" width="517" height="217" /></a></p>
<p>As soon as you revoke this permission the app can no longer use the access key that it has obtained. It needs this for any API call that <em>must</em> be authenticated. <em>e.g.</em> getting your public timeline of tweets does not require authentication, whereas updating your status does.</p>
<p>Interestingly the cloud generation continued to churn away. This suggests that the app was actually paging through my timeline without even using authentication. i.e. making public API calls under its own rate limit.</p>
<p>Lo and behold, upon completion there was no tweet from my account.</p>
<p>I also decided to post my cloud as a <a href="http://twitpic.com/rfxe0" target="_blank">TwitPic</a>, just to say &#8230; well, you know.  TwitPic doesn&#8217;t use OAuth, which it should, but that&#8217;s another post.</p>
<p>A few other things to note about &#8220;connections&#8221;:</p>
<ul>
<li>When you grant access to an app, it can store its access key <strong>forever</strong>. i.e. Twitter don&#8217;t provide a key expiry feature like Facebook do. So you should revoke permissions from any app that you&#8217;ve stopped using.</li>
<li>My statistics from <a href="http://twitblock.org" target="_blank">TwitBlock</a> suggest that about 1% of people actually do this. (about 400 of 30,000 users have revoked my key)</li>
<li>Signing out of Twitter does not prevent the app using this access. An app with an access key can tweet from your account whenever it wants until you revoke</li>
<li>The read/write permission you can see is set by the app, not by you. Twitter doesn&#8217;t offer granular permissions like Facebook do</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/11/29/beating-noisy-twitter-apps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TwitBlock trialling whitelist feature</title>
		<link>http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/</link>
		<comments>http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 23:50:27 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/</guid>
		<description><![CDATA[- or &#8211; &#8220;I told you it was in Alpha&#8221;
I&#8217;ve rolled out an experimental TwitBlock feature designed to reduce &#8220;false positives&#8221; for legitimate accounts that are being blocked. Whitelist entries are now subtracted from blocks. i.e. accounts marked as &#8220;not spam&#8221; will have their blocks counteracted on a 1:1 basis. If this feature is abused, [...]]]></description>
			<content:encoded><![CDATA[<h3>- or &#8211; &#8220;I told you it was in Alpha&#8221;</h3>
<p><strong>I&#8217;ve rolled out an experimental <a href="http://twitblock.org/" target="_blank">TwitBlock</a> feature</strong> designed to reduce &#8220;false positives&#8221; for legitimate accounts that are being blocked. Whitelist entries are now subtracted from blocks. i.e. accounts marked as &#8220;not spam&#8221; will have their blocks counteracted on a 1:1 basis. If this feature is abused, it will be removed.<strong> </strong>It survives on the premise that the spam bots are not capable of whitelisting each other.</p>
<p>Here&#8217;s the full story:<br />
<span id="more-133"></span></p>
<p>As well as trying to work on <a href="http://twitblock.org/" target="_blank">TwitBlock</a> in my &#8220;spare&#8221; time, I&#8217;ve also been manning the Customer Service department (i.e. Twitter) and the Press Office (with the help of my personal press officer <a href="http://twitter.com/adamvincenzini" target="_blank">@adamvincenzini</a>). Monitoring a <a href="http://twitter.com/#search?q=twitblock" target="_blank">Twitter search for TwitBlock</a> shows that most people are pleased with the service. Amongst the tweets there is some valuable feedback and feature requests, but also quite a few vocal complaints, mostly directed at me personally.</p>
<p><strong>The number one complaint</strong> is that legitimate accounts are getting spam scores due to being blocked. In relative terms an account with a lot of blocks is more likely to be spam than an account with a few or none. But in reality people get blocked for various reasons &#8211; sometimes out of animosity, whether for their political or religious views, or just because they don&#8217;t like the person. Worst of all, and somewhat ironic, is that TwitBlock <em>encourages </em>blocking &#8211; that&#8217;s its MO &#8211; and I have been worrying that this may aggravate the situation, especially if people are too trigger happy and accept the spam scores blindly.</p>
<p>One of TwitBlock&#8217;s competitors has been arguing that blocks are a poor indicator of spam, and I think they have a point. I&#8217;d supply a link to said competitor except for the fact that they are a commercial enterprise. (TwitBlock is not a business, a spam-free life should be free).</p>
<p>So every time you click &#8220;not spam&#8221; on an account this will be used to counter every person that clicked &#8220;block&#8221;. This is an experiment, because it could be abused. That&#8217;s just the nature of what we&#8217;re doing here. Try it out, I look forward to more quality feedback.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Top 20 Faces of Twitter Spam</title>
		<link>http://web.2point1.com/2009/08/18/top-20-faces-of-twitter-spam/</link>
		<comments>http://web.2point1.com/2009/08/18/top-20-faces-of-twitter-spam/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 23:06:43 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/18/top-20-faces-of-twitter-spam/</guid>
		<description><![CDATA[As we approach 3,000 TwitBlock users, we know of over 100,000 blocks and have stored 20,000 profile pic checksums. I figured it was time to start crunching some numbers.
The first of many reports shows the top 20 most duplicated avatars that we know about.
Many spam accounts use identical avatars across hundreds of accounts. 		TwitBlock uses [...]]]></description>
			<content:encoded><![CDATA[<p>As we approach 3,000 <a href="http://twitblock.org" target="_blank">TwitBlock</a> users, we know of over 100,000 blocks and have stored 20,000 profile pic checksums. I figured it was time to start crunching some numbers.</p>
<p>The first of many reports shows the <strong><a href="http://www.twitblock.org/report_pics.php" target="_blank">top 20 most duplicated avatars</a></strong> that we know about.</p>
<p>Many spam accounts use identical avatars across hundreds of accounts. 		TwitBlock uses this fact as an indicator of a likely spam account. This report just shows the top 20 that we&#8217;ve identified, but there are many more.</p>
<p>This indicator is one of the best ways Twitter could prevent spam accounts from signing up in the first place. Clearly bots have been developed that continually generate new accounts and Twitter does not seem able to prevent this despite the most prolific accounts displaying such identical properties.  With a tiny 0.01% of Twitter accounts authenticated with TwitBlock one can only imagine how many of these accounts are out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/08/18/top-20-faces-of-twitter-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Identical profile pics on Twitter</title>
		<link>http://web.2point1.com/2009/08/09/identical-profile-pics-on-twitter/</link>
		<comments>http://web.2point1.com/2009/08/09/identical-profile-pics-on-twitter/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 23:15:45 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/09/identical-profile-pics-on-twitter/</guid>
		<description><![CDATA[The list of Twitter accounts below all have something in common &#8211; They all have an identical profile image, which looks like this:

At the time of writing none of these accounts have been suspended. Whether they are breaking any laws or not I don&#8217;t know, but it is clearly a syndicate whichever way you look [...]]]></description>
			<content:encoded><![CDATA[<p>The list of Twitter accounts below all have something in common &#8211; They all have an <em>identical</em> profile image, which looks like this:</p>
<p><a href="http://web.2point1.com/wp-content/uploads/2009/08/untitled.jpg" title="Shelley Ryan"><img src="http://web.2point1.com/wp-content/uploads/2009/08/untitled.jpg" alt="Shelley Ryan" /></a></p>
<p>At the time of writing none of these accounts have been suspended. Whether they are breaking any laws or not I don&#8217;t know, but it is clearly a syndicate whichever way you look at it. The profiles all point to a <a href="http://whois.domaintools.com/116.124.128.227" target="_blank">Korean-registered</a> &#8220;Cash generator&#8221; website, which [I would hazard a guess] is a con.</p>
<p><a href="http://twitblock.org?wp">TwitBlock</a> unearthed this statistic from a list of <strike>only 18,000</strike> 100,000 blocked accounts provided by under <strike>400</strike> 3,000 TwitBlock users . When you consider the size and growth of Twitter, you can well imagine that there are far more than <strike>120</strike> 288 profiles in this syndicate. You also have to wonder how much of Twitter&#8217;s growth figures can be attributed to this junk.</p>
<p>[ UPDATE:  18 Aug ]<br />
Many of these accounts have been suspended, but TwitBlock is discovering new ones each day &#8211; currently 248 accounts known with this image.</p>
<p>[ UPDATE 19 Aug ]<br />
I&#8217;ve produced a report of the <a href="http://www.twitblock.org/report_pics.php" target="_blank">top 20 most duplicated profile pics</a> identified by TwitBlock</p>
<p><span id="more-130"></span></p>
<p><strong><font color="#ff0000">Warning</font>: Do not sign up, or give any of your details to the organizations operating these Twitter accounts. I am publishing them only to exemplify the problem of Twitter spam. I am not responsible for any interaction you have with them, which unless you are insane, should be none.</strong></p>
<p><a href="http://twitter.com/vMeqPI">http://twitter.com/vMeqPI</a><br />
<a href="http://twitter.com/WRrCMg">http://twitter.com/WRrCMg</a><br />
<a href="http://twitter.com/mlJJQF">http://twitter.com/mlJJQF</a><br />
<a href="http://twitter.com/ANbVrR">http://twitter.com/ANbVrR</a><br />
<a href="http://twitter.com/nbbUFw">http://twitter.com/nbbUFw</a><br />
<a href="http://twitter.com/VbjyLv">http://twitter.com/VbjyLv</a><br />
<a href="http://twitter.com/Cntyby">http://twitter.com/Cntyby</a><br />
<a href="http://twitter.com/LqtRcf">http://twitter.com/LqtRcf</a><br />
<a href="http://twitter.com/uOyqVa">http://twitter.com/uOyqVa</a><br />
<a href="http://twitter.com/XpgpRn">http://twitter.com/XpgpRn</a><br />
<a href="http://twitter.com/rTVygA">http://twitter.com/rTVygA</a><br />
<a href="http://twitter.com/nEJTBg">http://twitter.com/nEJTBg</a><br />
<a href="http://twitter.com/YMQQpS">http://twitter.com/YMQQpS</a><br />
<a href="http://twitter.com/VQKPnQ">http://twitter.com/VQKPnQ</a><br />
<a href="http://twitter.com/wPIkCc">http://twitter.com/wPIkCc</a><br />
<a href="http://twitter.com/IxQeki">http://twitter.com/IxQeki</a><br />
<a href="http://twitter.com/fRHwjS">http://twitter.com/fRHwjS</a><br />
<a href="http://twitter.com/SQLkeN">http://twitter.com/SQLkeN</a><br />
<a href="http://twitter.com/UVITMh">http://twitter.com/UVITMh</a><br />
<a href="http://twitter.com/LALErx">http://twitter.com/LALErx</a><br />
<a href="http://twitter.com/XPAUtE">http://twitter.com/XPAUtE</a><br />
<a href="http://twitter.com/oTYNJJ">http://twitter.com/oTYNJJ</a><br />
<a href="http://twitter.com/btnwEw">http://twitter.com/btnwEw</a><br />
<a href="http://twitter.com/miHqid">http://twitter.com/miHqid</a><br />
<a href="http://twitter.com/mBlDFx">http://twitter.com/mBlDFx</a><br />
<a href="http://twitter.com/ZNXOwa">http://twitter.com/ZNXOwa</a><br />
<a href="http://twitter.com/NqGOyW">http://twitter.com/NqGOyW</a><br />
<a href="http://twitter.com/hxavpn">http://twitter.com/hxavpn</a><br />
<a href="http://twitter.com/RuoiJm">http://twitter.com/RuoiJm</a><br />
<a href="http://twitter.com/EsWAoU">http://twitter.com/EsWAoU</a><br />
<a href="http://twitter.com/qhbEHn">http://twitter.com/qhbEHn</a><br />
<a href="http://twitter.com/NYnXrh">http://twitter.com/NYnXrh</a><br />
<a href="http://twitter.com/USPwTH">http://twitter.com/USPwTH</a><br />
<a href="http://twitter.com/AXJCxP">http://twitter.com/AXJCxP</a><br />
<a href="http://twitter.com/EwkDGF">http://twitter.com/EwkDGF</a><br />
<a href="http://twitter.com/CFsgJh">http://twitter.com/CFsgJh</a><br />
<a href="http://twitter.com/OergeH">http://twitter.com/OergeH</a><br />
<a href="http://twitter.com/ZCotSf">http://twitter.com/ZCotSf</a><br />
<a href="http://twitter.com/vLxDqS">http://twitter.com/vLxDqS</a><br />
<a href="http://twitter.com/WicZJO">http://twitter.com/WicZJO</a><br />
<a href="http://twitter.com/IbXRqY">http://twitter.com/IbXRqY</a><br />
<a href="http://twitter.com/YvPFRr">http://twitter.com/YvPFRr</a><br />
<a href="http://twitter.com/HBkOqt">http://twitter.com/HBkOqt</a><br />
<a href="http://twitter.com/ZgEuOL">http://twitter.com/ZgEuOL</a><br />
<a href="http://twitter.com/uvKjQD">http://twitter.com/uvKjQD</a><br />
<a href="http://twitter.com/vnARQf">http://twitter.com/vnARQf</a><br />
<a href="http://twitter.com/HerWuB">http://twitter.com/HerWuB</a><br />
<a href="http://twitter.com/eKVLUB">http://twitter.com/eKVLUB</a><br />
<a href="http://twitter.com/gfPZlU">http://twitter.com/gfPZlU</a><br />
<a href="http://twitter.com/UyiqGC">http://twitter.com/UyiqGC</a><br />
<a href="http://twitter.com/qviSWp">http://twitter.com/qviSWp</a><br />
<a href="http://twitter.com/TqSLDX">http://twitter.com/TqSLDX</a><br />
<a href="http://twitter.com/TqZyii">http://twitter.com/TqZyii</a><br />
<a href="http://twitter.com/bsvukd">http://twitter.com/bsvukd</a><br />
<a href="http://twitter.com/jhIpgR">http://twitter.com/jhIpgR</a><br />
<a href="http://twitter.com/bhfmmf">http://twitter.com/bhfmmf</a><br />
<a href="http://twitter.com/uXqbWQ">http://twitter.com/uXqbWQ</a><br />
<a href="http://twitter.com/WJpxYg">http://twitter.com/WJpxYg</a><br />
<a href="http://twitter.com/oWMngy">http://twitter.com/oWMngy</a><br />
<a href="http://twitter.com/QmTmrh">http://twitter.com/QmTmrh</a><br />
<a href="http://twitter.com/LUGSUc">http://twitter.com/LUGSUc</a><br />
<a href="http://twitter.com/ODdVhx">http://twitter.com/ODdVhx</a><br />
<a href="http://twitter.com/XcJaEV">http://twitter.com/XcJaEV</a><br />
<a href="http://twitter.com/WjtuYv">http://twitter.com/WjtuYv</a><br />
<a href="http://twitter.com/GugifL">http://twitter.com/GugifL</a><br />
<a href="http://twitter.com/VpoThO">http://twitter.com/VpoThO</a><br />
<a href="http://twitter.com/jxlhkU">http://twitter.com/jxlhkU</a><br />
<a href="http://twitter.com/pQruGQ">http://twitter.com/pQruGQ</a><br />
<a href="http://twitter.com/VdqRmx">http://twitter.com/VdqRmx</a><br />
<a href="http://twitter.com/QFxPlO">http://twitter.com/QFxPlO</a><br />
<a href="http://twitter.com/tbASwj">http://twitter.com/tbASwj</a><br />
<a href="http://twitter.com/KNjwtX">http://twitter.com/KNjwtX</a><br />
<a href="http://twitter.com/mtjiht">http://twitter.com/mtjiht</a><br />
<a href="http://twitter.com/VHvahx">http://twitter.com/VHvahx</a><br />
<a href="http://twitter.com/cicBeL">http://twitter.com/cicBeL</a><br />
<a href="http://twitter.com/gnhEGT">http://twitter.com/gnhEGT</a><br />
<a href="http://twitter.com/VkbCoV">http://twitter.com/VkbCoV</a><br />
<a href="http://twitter.com/uRSNHq">http://twitter.com/uRSNHq</a><br />
<a href="http://twitter.com/jkVeul">http://twitter.com/jkVeul</a><br />
<a href="http://twitter.com/vDTPIa">http://twitter.com/vDTPIa</a><br />
<a href="http://twitter.com/KqmLxa">http://twitter.com/KqmLxa</a><br />
<a href="http://twitter.com/GmvaEw">http://twitter.com/GmvaEw</a><br />
<a href="http://twitter.com/TvUjVh">http://twitter.com/TvUjVh</a><br />
<a href="http://twitter.com/AyEExh">http://twitter.com/AyEExh</a><br />
<a href="http://twitter.com/mbjbri">http://twitter.com/mbjbri</a><br />
<a href="http://twitter.com/tYUjFU">http://twitter.com/tYUjFU</a><br />
<a href="http://twitter.com/YwoFmN">http://twitter.com/YwoFmN</a><br />
<a href="http://twitter.com/wFdCmw">http://twitter.com/wFdCmw</a><br />
<a href="http://twitter.com/UQwOoc">http://twitter.com/UQwOoc</a><br />
<a href="http://twitter.com/BdJUJt">http://twitter.com/BdJUJt</a><br />
<a href="http://twitter.com/UDHDLW">http://twitter.com/UDHDLW</a><br />
<a href="http://twitter.com/vRFIjE">http://twitter.com/vRFIjE</a><br />
<a href="http://twitter.com/uxLgDu">http://twitter.com/uxLgDu</a><br />
<a href="http://twitter.com/HUAhjY">http://twitter.com/HUAhjY</a><br />
<a href="http://twitter.com/EMvvjh">http://twitter.com/EMvvjh</a><br />
<a href="http://twitter.com/kSTglV">http://twitter.com/kSTglV</a><br />
<a href="http://twitter.com/PPojhB">http://twitter.com/PPojhB</a><br />
<a href="http://twitter.com/sHbtXU">http://twitter.com/sHbtXU</a><br />
<a href="http://twitter.com/sqwqbe">http://twitter.com/sqwqbe</a><br />
<a href="http://twitter.com/gmErEo">http://twitter.com/gmErEo</a><br />
<a href="http://twitter.com/KamTTo">http://twitter.com/KamTTo</a><br />
<a href="http://twitter.com/LYDItd">http://twitter.com/LYDItd</a><br />
<a href="http://twitter.com/vpGLjY">http://twitter.com/vpGLjY</a><br />
<a href="http://twitter.com/liYDFu">http://twitter.com/liYDFu</a><br />
<a href="http://twitter.com/ilTDJU">http://twitter.com/ilTDJU</a><br />
<a href="http://twitter.com/OscPit">http://twitter.com/OscPit</a><br />
<a href="http://twitter.com/tPcsUl">http://twitter.com/tPcsUl</a><br />
<a href="http://twitter.com/nCNaSv">http://twitter.com/nCNaSv</a><br />
<a href="http://twitter.com/RCetVe">http://twitter.com/RCetVe</a><br />
<a href="http://twitter.com/sKPvYO">http://twitter.com/sKPvYO</a><br />
<a href="http://twitter.com/LJudBk">http://twitter.com/LJudBk</a><br />
<a href="http://twitter.com/YMLaqt">http://twitter.com/YMLaqt</a><br />
<a href="http://twitter.com/gxFBFv">http://twitter.com/gxFBFv</a><br />
<a href="http://twitter.com/iMyqAQ">http://twitter.com/iMyqAQ</a><br />
<a href="http://twitter.com/XbMgVj">http://twitter.com/XbMgVj</a><br />
<a href="http://twitter.com/sOwKHA">http://twitter.com/sOwKHA</a><br />
<a href="http://twitter.com/qBaFnR">http://twitter.com/qBaFnR</a><br />
<a href="http://twitter.com/hGMTOF">http://twitter.com/hGMTOF</a><br />
<a href="http://twitter.com/TZrLkX">http://twitter.com/TZrLkX</a></p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/08/09/identical-profile-pics-on-twitter/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>TwitBlock spam ratings explained</title>
		<link>http://web.2point1.com/2009/08/03/twitblock-spam-ratings-explained/</link>
		<comments>http://web.2point1.com/2009/08/03/twitblock-spam-ratings-explained/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 22:12:13 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[junk]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/08/03/twitblock-spam-ratings-explained/</guid>
		<description><![CDATA[
A detailed explanation of the scoring mechanism used by TwitBlock.
Some people have complained that they get a high spam score and point out that they are not spammers. There are a number of important things to note about this.

This software is in alpha &#8211; these indicators and the scoring mechanisms attached to them will change.
As [...]]]></description>
			<content:encoded><![CDATA[<h4></h4>
<h3>A detailed explanation of the scoring mechanism used by <a href="http://twitblock.org/?wp" target="_blank">TwitBlock</a>.</h3>
<p>Some people have complained that they get a high spam score and point out that they are not spammers. There are a number of important things to note about this.</p>
<ul>
<li><a href="http://twitblock.org/?wp" target="_blank">This software</a> is in alpha &#8211; these indicators and the scoring mechanisms attached to them <strong>will</strong> change.</li>
<li>As the system gathers data it will rely less on <a href="http://en.wikipedia.org/wiki/Heuristic" target="_blank">heuristics</a> and more on cross-referencing (e.g. how many people have blocked an account)</li>
<li>Some of these tests are only indicators of <strong>automation</strong>, not specifically of malicious behaviour.</li>
<li>The spam rating has <strong>no limit</strong> &#8211; Scoring 40 may be high for a &#8220;<em>legimate</em>&#8221; account, but in a list with real spammers scoring 300+ you&#8217;ll be way down the bottom.</li>
<li>If you display characteristics of a spammer then perhaps this amounts to the same thing as being a spammer. Most normal users score <em>zero.</em></li>
</ul>
<p>Roughly in order of accuracy, here are the 8 tests currently performed in the standard <a href="http://twitblock.org/scan_followers.php?wp" target="_blank">TwitBlock scan</a>.</p>
<h4><span id="more-128"></span>1. Ignore factor.</h4>
<p>This could also be called &#8220;inverse popularity&#8221;. If you follow 200 people and only 50 follow you back your ignore factor is 75%. Whether or not these 50 are the same people you follow is not analysed. The cut-off for scoring is 50%. <strong>Every 1% above 50 currently yields one point</strong>.</p>
<p>This simple and easily calculable factor is quite accurate because it reflects real human behaviour that can be observed. An account that is clearly spam, such as an &#8220;adult&#8221; account will have many times less followers than friends.</p>
<p>Naturally some spammers have found ways to beat this indicator. In some cases spam accounts follow each other to build up numbers, but a more cunning technique is the &#8220;sleeper&#8221; approach. Sleeper accounts pose as real people using stolen tweets pulled from the public timeline. TwitBlock may eventually crawl Twitter looking for these accounts, so expect more about this in future posts.</p>
<h4>2. Follow Rate</h4>
<p>The average number of people you follow per day forms your follow rate. This is calculated as the number of people you follow divided by the number of days you&#8217;ve been on Twitter. Although it&#8217;s a crude average, it is very telling and probably the second most reliable heuristic indicator. Even if you occasionally add a hundred people in a day it&#8217;s unlikely you can keep this up, so your average will drop. Averages are generally low even for power users, so a higher value is a strong indication of automation. The current cut-off (considered normal) is 10 per day. <strong>A point is added for every follower per day above 10.</strong></p>
<p><strong>[UPDATE - Aug 12]</strong><br />
Many popular accounts have high follow rates due to a &#8220;following back&#8221; policy, whether automated or not. The rate at which an account is followed is now subtracted from this value. This may result in lowering spam scores of real spammers, but it also reduces the number of false positives. So now, the rate at which an account follows without reciprocation is known as the &#8220;Stalking rate&#8221;.</p>
<h4>3. Blocked by others</h4>
<p>When you log into TwitBlock the system has access to your blocks and currently refreshes this list once per day until you revoke your authorization of the app. This is a key indicator that will become much more interesting as TwitBlock gathers data. <strong>Currently <strike>10</strike> 5 points are applied for each block on an account</strong>.</p>
<p><strong>[ UPDATE - Aug 22 ]<br />
</strong><a href="http://web.2point1.com/2009/08/21/twitblock-trialing-whitelist-feature/">Whitelisting now used to counteract blocks<br />
</a></p>
<p><strong>[ UPDATE - Aug 24]<br />
</strong><a href="http://web.2point1.com/2009/08/24/diluting-block-counts/">Blocks are now diluted by follower count</a></p>
<h4></h4>
<h4>4. Identical profile pics</h4>
<p>Spammers commonly reuse the same image on multiple accounts. This is particularly common with the &#8220;adult&#8221; accounts. TwitBlock crawls all the blocked accounts it knows about and stores an <a href="http://en.wikipedia.org/wiki/MD5" target="_blank">MD5 checksum</a> of the profile image file. This way any account&#8217;s profile image can be cross-reference with this database. <strong>10 points are applied for each account known to use the same image</strong>.</p>
<p>This test could be easily foiled by spammers. Even using the same photo, it would be trivial alter the checksum. So far however, they appear not to be doing so.</p>
<h4>5. Tweets via API</h4>
<p>Status updates that are submitted without using a registered application (e.g. TweetDeck) will appear as having come &#8220;from API&#8221; (<a href="http://apiwiki.twitter.com/FAQ#HowdoIget%E2%80%9CfromMyApp%E2%80%9DappendedtoupdatessentfrommyAPIapplication" target="_blank">See Twitter FAQ</a>). This is very useful, because spammers don&#8217;t want their activity to be tied to a registered application. If they start to do so then a list of known spammer applications will have to be compiled.<strong> 10 points are applied for API updates</strong>, although only the most recent tweet is analysed for performance reasons.</p>
<p>The points applied are deliberately low because people often give their password to applications that tweet on their behalf. e.g. &#8220;I just signed up to this awesome app and got 1,000 new followers&#8221;. This practice seriously needs to die out, but that&#8217;s another blog post for another day. Additionally many spam tweets appear as &#8220;from Web&#8221;, which suggest they are using the public web interface.</p>
<h4> 6. Missing profile info</h4>
<p>This is not a very reliable indicator and may be dropped. There are 4 profile fields that can be left empty: (Bio, Location, URL and profile image). Most legitimate users fill in at least two of these. <strong>Currently 2 points are added if you leave all 4 empty</strong>. A drop in the ocean compared with other indicators. As I write this I realise this is due a review.</p>
<h4>7. Username looks dodgy</h4>
<p>For a human this is a strong indicator, but <a href="http://stackoverflow.com/questions/1164186/how-to-check-if-a-string-looks-randomized-or-human-generated-and-pronouncable" target="_blank">incredibly hard to implement programmatically</a>. Currently this test performs some very crude tests on the username, such as being all numbers, having no vowels, and checking for a common format used by spammers where two words are followed by a number. Further research is required in this area, but it&#8217;s unlikely to form a reliable indicator going forward because it&#8217;s so easy to fool. <strong><strike>10</strike> 5 points are applied for a username that looks randomly generated</strong>.</p>
<h4>8. Spammy words in bio and status</h4>
<p>This more traditional test merely checks the bio against a list of bad words. The word list needs development and is currently not big enough to be useful. I intend to use the known blocked accounts to build a list of most common words found in spam accounts. <strong>An arbitrary score per word found is currently applied</strong>. For example &#8220;Naughty videos&#8221; yields 10 points.</p>
<p>Stay tuned for updates, as all these indicators are likely to change.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/08/03/twitblock-spam-ratings-explained/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>TwitBlock is born</title>
		<link>http://web.2point1.com/2009/07/27/twitblock-is-born/</link>
		<comments>http://web.2point1.com/2009/07/27/twitblock-is-born/#comments</comments>
		<pubDate>Mon, 27 Jul 2009 22:36:04 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[data mining]]></category>
		<category><![CDATA[junk]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[twitblock]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2009/07/27/twitblock-is-born/</guid>
		<description><![CDATA[A bulk blocking and spam filter tool for Twitter
www.twitblock.org
I&#8217;ve finally got round to building the Twitter app I&#8217;ve been thinking about for months. While everyone else is preoccupied with making fun, or cool apps, I&#8217;ve been thinking about the increasing problem of spam and junk followers on Twitter. I won&#8217;t go into why I think [...]]]></description>
			<content:encoded><![CDATA[<h3>A bulk blocking and spam filter tool for Twitter</h3>
<p><strong><a href="http://twitblock.org/">www.twitblock.org</a></strong></p>
<p>I&#8217;ve finally got round to building the Twitter app I&#8217;ve been thinking about for months. While everyone else is preoccupied with making fun, or cool apps, I&#8217;ve been thinking about the increasing problem of spam and junk followers on Twitter. I won&#8217;t go into why I think this is such a problem right now, plenty of time for that later.</p>
<p>This is just a quick announcement to say that I&#8217;ve released an early <em>alpha</em> version of a tool that I hope to develop into something genuinely useful. Currently it&#8217;s a <a href="http://twitblock.org/scan_followers.php">simple scanner</a> that analyses your followers for signs of &#8220;spammy&#8221; behaviour. I&#8217;ll post more details about these <em>indicators</em> soon, and I&#8217;ll also share some of the interesting discoveries I&#8217;ve been making about Twitter spam as I go on my mission.</p>
<p>UPDATE: I have posted <a href="http://web.2point1.com/2009/08/03/twitblock-spam-ratings-explained/">about these indicators</a></p>
<p><span id="more-125"></span></p>
<h3>Data mining for good, not evil</h3>
<p>One of the principal aims of <a href="http://twitblock.org/">TwitBlock</a> is to gather data in order to improve the service &#8211; i.e. to make it accurate enough that it could [in theory] be used to <em>automatically</em> filter spam out like an email junk filter endeavours.</p>
<p>By logging into TwitBlock (<a href="http://blog.twitter.com/2009/04/whats-deal-with-oauth.html" target="_blank">via Twitter OAuth of course</a>) you are sharing the list of people that you block. As long as the app is authorized I can update this list and the app can learn from it.</p>
<p>Additionally I will be writing various bots (crawlers) that analyse Twitter activity in terms of suspicious behaviour and mine more data. More about these bots later too :)</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2009/07/27/twitblock-is-born/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Job board spam</title>
		<link>http://web.2point1.com/2008/07/03/job-board-spam/</link>
		<comments>http://web.2point1.com/2008/07/03/job-board-spam/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 09:20:58 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[crime]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2008/07/03/job-board-spam/</guid>
		<description><![CDATA[I do marvel at the ingenuity of spammers sometimes. Despite being crap programmers, they do have a knack for coming up with new ways to deliver their poisonous junk. It&#8217;s almost enough to make me consider life of crime.
After placing a job advert on Gumtree, we (my current employer and I) received a touching email [...]]]></description>
			<content:encoded><![CDATA[<p>I do marvel at the ingenuity of spammers sometimes. Despite being crap programmers, they do have a knack for coming up with new ways to deliver their poisonous junk. It&#8217;s almost enough to make me consider life of crime.</p>
<p>After placing a job advert on Gumtree, we (my current employer and I) received a touching email from someone intersted in our junior developer role. Clicking their portfolio link took us to a spammer&#8217;s &#8220;search&#8221; portal complete with gambling site pop-ups.</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2008/07/03/job-board-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We hate spam like you do?</title>
		<link>http://web.2point1.com/2008/03/27/we-hate-spam-like-you-do/</link>
		<comments>http://web.2point1.com/2008/03/27/we-hate-spam-like-you-do/#comments</comments>
		<pubDate>Thu, 27 Mar 2008 09:30:38 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[phishing]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[whois]]></category>

		<guid isPermaLink="false">http://web.2point1.com/2008/03/27/we-hate-spam-like-you-do/</guid>
		<description><![CDATA[I just became aware of an apparently legitimate US-based company who I shall not provide a link to;
[whois guard] [dot] [com] &#8211;  operated by [name cheap] [dot] [com].
Their opening gambit &#8220;We hate spam like you do&#8221; is somewhat ironic when you consider that their services are of enormous help to cyber criminals such as [...]]]></description>
			<content:encoded><![CDATA[<p>I just became aware of an apparently legitimate US-based company who I shall not provide a link to;<br />
[whois guard] [dot] [com] &#8211;  operated by [name cheap] [dot] [com].</p>
<p>Their opening gambit &#8220;We hate spam like you do&#8221; is somewhat ironic when you consider that their services are of enormous help to cyber criminals such as <a href="http://en.wikipedia.org/wiki/Phishing" target="_blank">phishing</a> gangs. These &#8216;people&#8217; need to operate domain names, but they must remain untraceable. Protecting their <a href="http://en.wikipedia.org/wiki/Whois" target="_blank">whois</a> data is an obvious step towards concealing their identity. I am not suggesting that companies offering such services are corrupt, rather that it highlights the dichotomy of the internet privacy problem.<span id="more-15"></span></p>
<p><strong>I am not just musing</strong> &#8211; I identified a Facebook phishing attack this morning, (separate post shortly), and this is where they were hiding:<br />
[view][hyphen][facebook profiles][dot][com]</p>
<p>Only NameCheap Inc of Los Angeles will know what country these criminals operate from. Their company contact details are available online, so why not give them a ring and ask them.</p>
<p>We don&#8217;t like the idea that the police can turn up at our office and demand all our confidential client details, but if the FBI turn up at NameCheap&#8217;s office because one of their clients is blatantly an organized crime gang, what do we think then of our privacy ideals?</p>
]]></content:encoded>
			<wfw:commentRss>http://web.2point1.com/2008/03/27/we-hate-spam-like-you-do/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
