Can Spybots be Programmatically Defended Against?
An article in today's New York Times (A Company Promises the Deepest Data Mining Yet, by Louise Story, 3/20/08 page C3) talks about web activity monitoring by a company called Phorm. Phorm's claims it can monitor every single online action by working with data from an ISP. Clearly this raises privacy and security concerns and has already done do in Britain where Phorm is working with British ISPs.
The Phorm approach was only described as a cookie on the user's PC that used a random number to identify the user. The approach to monitoring web activity was not described but I would guess there is a spybot involved.
Web application security is a big concern of mine. Techniques like SSO user authentication, multifactor authentication, enforcement of roles, page reauthoriation, URL tamper protection, URL parameter checksums, and script insertion protection are standard security approaches I use in all my web applications. But these guard against unauthorized usage, and not from spying on authorized users.
The NYTimes article got me thinking about protection against spybots. They are an ever present performance hazard but they are also a serious security risk. A spybot found on a laptop that has Personally Identifiable Information (PII) like SSN, credit card numbers, and the like, even if the data is encrypted, constitutes a security breach. By law, the breach has to be reported, persons real or potentially affected notified plus other things like credit monitoring has to happen at a cost of $10-$184 per identity. No small dollar amount if many identities are stolen.
Spybots can be detected and immunized against. Search andDestroy is an excellent example of this and has saved my laptop many a time. The problem is the lag between identification and availability of immunication and countermeasures. Network security should be also a good control point but it seems that spybots are everywhere even on secure networks.
Is it possible to, in effect, build in spybot protection into a web application or is this more effectively done through a companion app - a counterbot? Could transparent encryption be used to make data visible to the user while the spybot sees the encrypted data? There could be real possibilities here or not, depending on feasibility and time.
Any approach needs to be general enough to be usable by web developers with the ideal approach transparent to the web application. My gut feeling is that having the protection as close to the application will provide the best protection.
I don't have a specific idea on feasibility yet. I know it is a serious security concern. I toss it out to you. I would appreciate your thoughts on feasibility and approach.