Hello licqer's, Ryan Gammon here.

I'm writing in defence of one of my more bastardized children, update-hosts.

Most of you have probably never heard of update-hosts. He's that ugly 
little .tar.gz that mopes around the licq plugins directory, dejectedly 
praying that someday, someone will download him and give him the love he 
so richly deserves.

Pretty much no one does, though. At only 235 lines, he always gets 
outshone by the bigger, cooler plugins (yes, I'm looking at you, 
qt-gui). We all like to think that size doesn't matter in this so-called 
fair and equitable society, but let's face it: small plugins just can't 
get a break in this superficial, skin-crazy, plugin-eat-plugin world.

Cutting to the chase, I've heard a lot of cruel and hateful things said 
about update-hosts over the years by the .000000000001% of the licq 
userbase that has actually bothered to compile him.

"The configure script doesn't work"

"update-hosts doesn't support ipv6" (because the drunken monkeys who 
wrote the original icq protocol definitely had ipv6 foremost in their 
furry primate thoughts)

... and most recently, Mr. Veen has been saying stuff like:
"The update-hosts plugin... forms a security vunerability"
"With this in mind I suggest that the hostname update plugin be removed 
from the licq distribution ASAP"

Doesn't it just tear your heart in two?

Doesn't it?

Deep down inside, I guess I don't have anyone to blame but myself. I 
just didn't bring him up right. You see, update-hosts was really the 
result of a night of indiscresion back in my university days. I was 
young and, I admit, had had a few drinks. My compatriot, the always 
tactful Graham Roff, father of licq and fine human being, had just 
created the "utilities" functionality. Being a student and all, I said 
something like:

Ryan: Dude, utilites are cool and all, but what if we could, like, turn 
it inside out. Y'know, get apps to resolve icq usernames. Then it'd all 
work, like, automagically.

This was back when "automagically" was still a cool thing to say.

Really.

Graham: Party on, Destroyer
Ryan: My name's not Destroyer, asshole
Graham: Go fuck yourself.
(all in good fun)

Thus was update-hosts conceived.

Now here, my friends (if anyone is still reading), we come to a Defining 
Moment in History.

I have a serious slackware fetish that just won't quit. Back in high 
school, we used to tease the kids who used Red Hat "Mother's Day Release 
+0.1". Seriously, who calls a distribution version a "Mother's Day 
Release?" Call it "Pretty Yellow Flowers" release, or "Precious Artsy 
Craft" release, but leave my mama out of it. Plus, Bob Young was an 
Upper Canadian -- from Hamilton, mind you -- and we on the east coast 
were having no truck nor trade with that scurvy lot. (Just kidding, 
Ontarians)

Patrick, on the other hand, had the best last name in the history of 
last names... Volkerding. Say it with me, Vol-ker-ding. And he called 
his distribution SLACKware -- unbelieveable. And Slackware 8.1 is still 
the bomb. But I digress...

If Patrick had one critical flaw, it was his distain for glibc6. I mean, 
the dude just clung to libc5 *forever*. But with libc6 came all the 
nsswitch stuff that would have gone a long way to legitimizing the 
circumstances surrounding the birth of update-hosts, and eliminating 
that darn security "hole" that folks are all worked up about.

Red Hat, of course, was all over libc6 like stink on a monkey. Switching 
to Red Hat, however, would have meant capitulating in a petty, rather 
pathetic Slackware vs Red Hat war that really consisted of me bleating 
"Slackware!", and Graham ignoring me with great distain. Thus, I decided 
that updating the hosts file was the true path to enlightenment.

I shat out update-hosts in a short period of time. It was an ugly mess 
of C, C++, licq's plugin headers with their disconcerting penchant for 
#define macros, and a little flex and bison for spice.

It wasn't pretty. Plus, /etc/hosts had to be world readable, which had 
all sorts of potential for shenanigans. To my credit, I did force 
update-hosts to be honest with his users during compilation.

"Note that /etc/hosts has been made world writable!"" it would exclaim.

Notice the use of punctuation. English purists may question the use of 
an exclamation point. In fact, that's really not a sentence that one 
could exclaim with any real sense of decorum....! Yet I felt that, given 
the gravity and the burden of the public trust, etc. that goes into 
developing mission-critical, enterprise-class licq plugins of version 
0.0.1 caliber, I had to make some sort of statement, and make it with force.

Anyway, I promptly left him on Graham's proverbial doorstep. Graham 
uploaded him to the 100000 licq mirrors, and he's languished there ever 
since.

I know what you're all saying. "Tough love, Ryan. Spare the rod, spoil 
the binary. It's a dangerous world out there, son,  and security ain't a 
thing to be trifled with." 

Now I agree that security is serious business, and I'd gladly take an 
enterprise-class embarassment like bind out back and shoot it. But 
honestly, what's the worse that can happen with update-hosts?

haxor: Ok, update-hosts, I'm logging on as www.google.com. You go get 
that bugger user of yours.
upate-hosts: *solomly picks his nose and drools a little*
haxor: Fly my pretty!
update-hosts: Would you like to add www.google.com to your contact list?
user: Hell no.
haxor: Damn you, update-hosts, you've crossed me for the last time!
haxor: *rm -rf /usr/local/licq; dd if=/dev/zero of=/dev/hda; hdparm 
-explode /dev/hda*
haxor: Who's laughing now...

I mean, only 5 people in the world use him (and I'm not one of them), 
and he's basically useless besides. Plus, the little guy already says 
that he's doing something retarded when you build him anyway. And, 
contrary to rumor and innuendo, he's not in the core licq distribution.

Having read this far, I think you are now prepared for what I'm about to 
show you:

--- update-hosts.cpp-old        2002-08-17 01:18:41.000000000 -0300
+++ update-hosts.cpp    2002-08-17 01:20:05.000000000 -0300
@@ -126,7 +126,7 @@

   for(unsigned int i = 0; i < strAlias.length(); i++)
   {
-    if(strAlias[i] == ' ')
+    if(strAlias[i] == ' ' || strAlias[i] == '.')
       strAlias[i] = '-';
   }


Yes, we have the technology to "sanitize" update-hosts. We can turn 
www.google.com into www-google-com. But is this really a road that we, 
as a society, are prepared to venture down? Can we not just treasure 
update-hosts for who he is? I mean, /etc/hosts is still going to be 
world writable. Security -- an illusion at the best of times -- is still 
going to be at risk. All we've succeeded in doing is cracking the spirit 
of update-hosts just a little more. Indeed, my friends, this is truely a 
hollow victory.

update-hosts is a paragon of extreme programming, not in the methodical, 
unit-testing sense, but in the reckless and immature sense. He is a 
product of simpler times, and of university experimentation. He deserves 
the right to bear its scars in all their twisted glory. If the need 
exists, let his challenger come in the form of a sleek, new nss enabled 
plug-in, rather than trying to force update-hosts to be something that 
he truely is not.

;-/

Take it easy, folks.

Ryan.


Lourens Veen wrote:

>-----BEGIN PGP SIGNED MESSAGE-----
>Hash: SHA1
>
>Hi Ryan,
>
>I've been making a bit of noise about the update hostname plugin for 
>licq you wrote lately, because I believe it makes it possible for a 
>cracker to mount a man-in-the-middle attack on the system of the 
>user using it. I wrote up a more detailed report for the bugtrack 
>system at 
>http://sourceforge.net/tracker/index.php?func=detail&aid=594682&group_id=254&atid=100254
>
>For your convenience, here's what I wrote:
>
>I believe the hostname update plug-in is a security
>flaw that may enable a third party to launch a
>man-in-the-middle attack.
>
>Let's say a cracker creates a new ICQ account and sets
>the alias to the hostname of your favourite remote box
>(for example the telnet server at your work). The
>cracker then sends you a message. The plug-in will add
>the hostname, together with his IP, to /etc/hosts. Now
>you want to do some work on the remote machine, and you
>telnet into it. Since /etc/hosts goes before the DNS
>server in the search for the right IP address, you will
>actually connect to the crackers box instead. The
>cracker can then forward the connection to the real box
>in the standard man-in-the-middle manner, and monitor
>your activities, steal passwords, etcetera. 
>- ------
>
>I haven't had much response from the LICQ community on the mailing 
>lists and irc however, so far they don't seem to understand the 
>problem, and given the amount of unhandled bug reports in the 
>bugtracker I'm a bit afraid that it'll snow under and be forgotten. 
>Apparently security holes aren't considered a problem, and that's 
>bad, but there's not much I can do about it. So, as a last-ditch 
>attempt I decided to email you, in the hope that you as the 
>original author can do something about this (or explain why I'm 
>seeing a problem that isn't there) and get the licq maintainers to 
>see this as a problem. A possible fix would be to remove dots from 
>the strings you add to /etc/hosts, at least I think that that would 
>be a good solution.
>
>If you had already noticed my mail on the mailinglist and are 
>already working on a fix then please accept my apologies, I figured 
>I'd rather annoy you than have an unfixed security hole sitting 
>there waiting to be exploited.
>
>Regards,
>
>Lourens
>- -- 
>GPG public key: http://home.student.utwente.nl/l.e.veen/lourens.key
>-----BEGIN PGP SIGNATURE-----
>Version: GnuPG v1.0.6 (GNU/Linux)
>Comment: For info see http://www.gnupg.org
>
>iD8DBQE9XWXivmNyqZHWDvURAkfSAKCYL5cc8PDxcJzMoUowRvTUq8btEgCfZ64X
>GfRQKJuXXGbbBvwTFvcde5U=
>=BEvK
>-----END PGP SIGNATURE-----
>
>
>  
>





-------------------------------------------------------
This sf.net email is sponsored by: OSDN - Tired of that same old
cell phone?  Get a new here for FREE!
https://www.inphonic.com/r.asp?r=sourceforge1&refcode1=vs3390
_______________________________________________
Licq-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/licq-devel

Reply via email to