IP and Content Theft – A Technical Meandering

June 21, 2010 by
Filed under: Technical Info 

There’s a lot of text flying around these days regarding Copybotters and IP Thieves … and specifically aimed at the first and most reliable system available to detect the viewer clients meant to steal content: Skills Hak’s CDS. Skills is a member of the Emerald Development team, so obviously knows a thing or two about viewers for Second Life and how they work. It’s not inconceivable that she has managed to figure out a way to accurately detect copybot viewers.

But that’s not really my point in this blog entry. What I’m trying to get at, to understand, is exactly what it is about copybotting that could be detected and how a system could be created that would without fail detect illegal IP theft yet ignore routine operations such as Copy/Paste or ownership transfer (meaning, giving something to someone).

First off, lets see if we can define what it is about copybotting that is illegal.

The Copybot Theft

To put it simply, a Copybot steals things by downloading the parameters and texture data of an object, changes the owner information, then saves it back to the virtual world servers. Those are three distinct operations and they need to be delineated as such, so I’m going to repeat them in a numbered list:

  1. Download the Parameters and Texture Data
  2. Change the Ownership Information
  3. Save the Parameters and Texture Data back to the Virtual World Servers

That’s actually a pretty simple path to follow, and the real key step is #2, changing the ownership information. After all, if you buy something from someone or they just give it to you, you are actually doing steps #1 and #3. But #2 happens only as a result of an action on the Server side. (Meaning not on your computer, but on the computers run by the Virtual World.)

Pull up your Transaction List sometime and tell it to display the free transactions. What you’ll find is that every time any object was given to you or given by you, it is recorded in the transaction list. That transaction list is super crucial to anyone using a Virtual World. It’s the “paper trail” (electron trail) of every time an asset changes hands. It’s your proof that you came by the things you own legally and honestly. If you’ve got something in your inventory that does not have a matching transaction record, then you either got it from the server directly (the items in the Library for example) or you stole it.

Of course, there is a limit to how long records are kept, but from the day you first logged in, everything you acquired legally has at one time or another been recorded in the transaction database. And how do records get written in there? Ah, glad you asked.

When you obtain something from anyone or anywhere, it has to come down to you thru the “Asset Server”. Even when you right-click on the ground and choose “Create”, that small wooden block that appears didn’t just magically appear from nowhere. It began because an Asset Server somewhere “invented it” then gave it to you. And if the object you receive was given to you, then it also passed thru the Asset Server at some point in time. Whether the item is Copy or No Copy doesn’t matter. The Asset Server is the “monkey in the middle” that changes ownership on the object and records you as the new owner.

The technically astute reader will at this point be bouncing up and down in their chair, waving their hand in the air like the smart kid in class who just KNOWS the answer. “What about when I import a previously exported object?” Hmmm .. good question.

Object Data Import

The process of Importing an object into the Virtual World is that one case where the data does not originate from the Asset Server. If you export your own objects to disk then import them again, the Asset Server doesn’t know the two are the same thing. It can’t know because it can’t look inside your computer to know that you got that data from it before.  In short, it has to just trust you, and to date this has been the giant chink in the IP Theft Armor of Virtual Worlds.

Copybot Viewers take the above 3-step process and sort of expand step #2 a little bit. What they wind up with is something that looks like this:

  1. Download the Parameters and Texture Data
  2. Change the Ownership Information by …
    1. Exporting the Parameters and Texture Data to local disk
    2. Altering the Owner and Creator fields
    3. Importing the Altered Data as a new object
  3. Save the Parameters and Texture Data back to the Virtual World Servers

The reason this works is because the Asset Server “loses track” of the data and doesn’t recognize that it’s the same data it sent to the Copybot Viewer earlier. When you import it with the altered Owner and Creator data, it “trusts you” and lets you claim ownership of it. And presto, you have a copybotted object all your own. (Now don’t you feel speshul?)

One thing that’s important to remember though, when you import that data and the Asset Server trusts you, it also still makes an entry in the Transaction Database.  Well, it makes half an entry. The first half that says “the data came from…” is missing. All that gets recorded is “… and the data wound up here.” Those half transaction records are important, so keep an eye on them.

What Are Your Intentions Dude?

The aforementioned CDS System uses a proprietary technique to identify legitimate (non-copybot) viewers and illegal (copybot capable) viewers. It’s important to note that the viewers it flags as illegal are only copybot capable. That does not mean they are engaged in copybotting at that moment, only that they can be used for such activities if desired. This is a sticky point with a system such as CDS. It’s what is known as “Passive” detection, meaning it doesn’t have to actually be doing anything, it just gets caught and flagged because it’s there.

The problem with a Passive system like CDS is that whole issue of “Intent vs. Action”. Many legal cases have come before the various courts in the United States where that very argument was the critical point of contention. Can you legally take action against someone just because you feel they intend to do harm. Various cases and situations have come down on both sides of that argument. Typically in cases involving bodily harm or loss of life, the law has erred on the side of caution, granting a bit more latitude than in those cases where only property damage or loss of monetary value is involved. In short, if you’re acting like you might hurt someone, your ass is grass. But if you’re just acting like you might take their stuff, you’re free and clear. In the case of CDS, it flags and bans people that are just acting like they might take your stuff.

However, we must recognize that the “action” CDS takes is an action that is fully supported and allowed under the Terms of Service (or TOS) for Second Life as well as most other virtual worlds. Namely the owner of a Sim or Parcel has the right to ban anyone they choose for any reason they deem fitting. In short, it’s theirs and if they don’t want you there, you don’t get to be there. So a passive system like CDS that bans on intent only is perfectly legitimate under most legal guidelines. Whether you like it or not, the people that use CDS appear to be wholly within their rights. If that upsets you, well tough … build a bridge and get over it.

There’s a Fly in My Ointment!

One of the main attacks the copybot defenders employ is this whole issue of “it scans your system and reveals personal data.” Well, sorry to burst everyone’s bubble but .. no it doesn’t. The creator of CDS is indeed a member of the Emerald development team, so it is actually possible that by some amazing lack of decency and honesty the Emerald team has built some secret code into their viewer that lets them have access to your hard drive. Of course, they turn the full source code over to the public domain, same as the Linden Lab developers do, and no one has found anything sneaky in it, and never mind that they would be shooting themselves in the foot if they ever DID put something like that in their program. But that’s just one of the legit viewers out there, and there is no way in hell the developers of the other viewers would build in special code just for Emerald that exposes the user’s data thru their client. That would be beyond the realm of stupid.

The other claim made by the copybot defenders is that CDS is using some sort of “exploit” built into Quiktime that lets them scan your hard drive for alt accounts and other personal info. Oh grow up folks! Do you really believe that Apple would allow such a dangerous exploit to exist in their #1 downloaded software? Yeah, I can hear Steve Jobs right now saying “Nah, don’t worry about it guys. It’s not a problem that our software can be used to rip off people’s credit card, bank account, medical info and other very private data. No worry at all.” Right! *cough-bullshit-cough*

However, it is a problem for the long run that CDS uses a passive detection method. Why is that? Well .. if you’re still with me, I’ll explain.

Legitimate Uses for Export and Import

Anyone that creates content for a virtual world has one major fear, one point of vulnerability that really should be plugged. That weakness is the durability of the data that comprises their content. Every virtual world stores that data on their servers. What’s more, they don’t promise that the data will be there the next time you want it either. They DO say they’ll do their best, but if they happen to lose it … Oops, sorry … and that’s the extent of their worry. But as the creator and owner of that data, that leaves you with your pants around your ankles and a very icy breeze blowing up your backside. All it takes is one little oops and your entire portfolio of work is gone forever.

The only way to protect against that is to Export your data to some secondary store (like your own hard disk) and then, if the worst should come to pass, Import it again and go right back to what you were doing. Ahhhh … but here it gets sticky, because the fact that a viewer client can do that ALSO means it probably can copybot someone else’s stuff too. If you can export the data to build an entire object and then import that data back again, then your viewer can be used for copybotting. Once that exported data hits your hard disk, you are free to alter it anyway you want. Even if you have to be a hacker with mad skills to do it … the mere fact that it can be done is too big a risk to take. This is why Linden Lab insisted the folks at Emerald must hobble the Export/Import functions in their viewer before it would pass certification under the Third-Party Viewer (TPV) program.

Sadly, in the interest of protecting people from IP Theft, we also have to protect(?) them from saving their own work too. Ouch .. that’s a bitter pill to swallow. Maybe it won’t happen, but if it does, you can be very sure the person it happens to is NOT gonna be real happy. Today though, their only redress is to scream a lot and raise a lot of fuss. But in the end, their data will still be gone and they won’t be able to get it back. What we really need is a way to do “Active Detection”. We need a way to detect when someone is actively engaged in copybotting and stop THAT instead.

Active Copybot Detection

There have been a number of ideas put forth about ways to stop active copybotters. The less sophisticated ones have been shot down within minutes, the more intricate ones probably lasted as long as a day. But so far, no one has really come up with a sure fire method to detect when someone is uploading stolen content.

One of the biggest hurdles is the fact that the only place to really stop incoming stolen content data is at the Asset Servers themselves. The people that control those servers are the people that run the virtual worlds. The one thing they are really NOT anxious to do is to add more procedures to the front of those servers. They are already being beaten up daily to make them faster and faster. Along come a few worry warts and start demanding they slow them down?? Yeah, that’s gonna be REAL popular.


But all is not lost .. not yet at least. Remember those half-transaction records we talked about near the start? The only time those get created is when an object is created by importing a previously exported data set. The legitimate reason that happens is when someone is recovering from a data loss. Perhaps from time to time someone might want to “roll back” to a previous version they’d exported and saved, but my bet is that most of us have very few if any half-transaction records to our credit. However, anyone engaged in copybotting will have a LOT of them. They may create alts and upload thru a new alt every time, but before long it’s going to become obvious that the data they uploaded wasn’t theirs … especially when you see that something was imported then immediately turned around for sale to others (or even just given away for free, because those transactions are stored too).

So here’s the idea .. the proposal if you will. Right now those half-transaction records have the same lifetime as regular transaction records, meaning about 30 days. Instead they should have a permanent lifetime, and the number of times you import should accumulate in your Avatar’s profile from the day it’s created until it is eventually deleted or banned. There should be a declining “weight” for imports too. If your avatar is 3 days old (or even less than a day old) and you start importing things like crazy … Whoa Nelly .. each import would count like maybe 10 or 100 imports.

Anything you import should have a “lockdown” time as well. That means that for some period of time after you import it, you cannot transfer it to anyone else. This stops people from importing stolen content and then immediately transferring it to a string of spurious alts just to hide its heritage and eventual sale. If you are the legitimate owner of that object data, no sweat. In one week you can start producing and delivering it again. Chances are good you’ll be modifying the daylights out of it anyway, so no harm there. But once that data originates from an import, it and all its derivatives are frozen in your ownership for some defined period of time.

This technique of studying behavior patterns and making a determination as to intent is what’s known as “Heuristics”. It’s a well studied and documented science that tends to verge on art and black magic a bit too. But the simple fact is, such techniques are not difficult to create and they are very robust. Ask anyone that’s played a combat game against a computer controlled opponent. They will tell you that the latest “smart” opponents not only can kick your butt, but they will learn your fighting style and pretty soon they are flat out trashing you. That same type of “Smart Detection” can be combined with after-the-fact data gathered from the Asset Servers to detect when someone is engaging in copybot activities. They do not need to be in the way and thus won’t slow down the already overtaxed asset upload/download processes.

The Shape of Tomorrow

Content and IP Theft are not going to go away anytime soon. As more and more of our monetary system moves onto digital networks, the techniques used to gain control over and redirect that content (or money) are going to become more and more sophisticated. This is a problem that is only just starting to rear its ugly head. But we must not allow ourselves to throw in the towel yet, and we must not turn a blind eye either. While the methods outlined here may or may not be useful, the simple fact is that something must be done. Woe be to us if we don’t start now.

Visit the DGP4SL Store on SL Marketplace


Comments are closed.