Weblog Topics
My RSS feeds
Social network sites
Every time some new social network site springs up one of my many friends or colleagues just has to invite me. And of course I have to try it out to see if there is really anything special about it. So far I'm not too impressed. I'm on Myspace, Orkut, Linkedin, Yahoo 360, Facebook, etc. Pretty much all of them. Have been since the beginning. I never send invite requests to my friends. I'm afraid it might be annoying to them. Most of the kind of people I hang out with don't appreciate having their email addresses given to third parties without their consent. I get nearly a thousand spams a day now so I don't blame them.
I know lots of people visit these sites and some have market valuations in the billions. And if there were just one and everyone used it I might be more into it. But I just can't see using the site as my only means of communicating with people. I hear some folks do all of their messaging etc through it and they consider email to be out of style. I suspect these people are high school and perhaps college kids. It might work for gossip and kid communications but I suspect that for getting stuff done in the real world email has little to fear.
And what's up with the horrible page design and user interface? It seems everyone has to customize their page and make it impossible to read with lots of widgets and play a really sappy song in the background when you load it up. I'm not whether my ears, my eyes, or my browser are more strongly offended. I recently found an article somewhere lamenting this same problem but alas I cannot for the life of me recall where it was to link to it.
And now I have clients saying they want "social networking" added to their website designed to sell widgets because they hear about it all the time and think it will attract people to their site and sell more widgets. *sigh*
Dane-geld
Dane-geld
(A.D. 980-1016)
Rudyard Kipling
IT IS always a temptation to an armed and agile nation,
To call upon a neighbour and to say:—
“We invaded you last night—we are quite prepared to fight,
Unless you pay us cash to go away.”
And that is called asking for Dane-geld,
And the people who ask it explain
That you’ve only to pay ’em the Dane-geld
And then you’ll get rid of the Dane!
It is always a temptation to a rich and lazy nation,
To puff and look important and to say:—
“Though we know we should defeat you, we have not the time to meet you.
We will therefore pay you cash to go away.”
And that is called paying the Dane-geld;
But we’ve proved it again and again,
That if once you have paid him the Dane-geld
You never get rid of the Dane.
It is wrong to put temptation in the path of any nation,
For fear they should succumb and go astray,
So when you are requested to pay up or be molested,
You will find it better policy to say:—
“We never pay any-one Dane-geld,
No matter how trifling the cost;
For the end of that game is oppression and shame,
And the nation that plays it is lost!”
Quantum physics
2. Quantum instantaneousness. Two particles can be put into a quantum entanglement, such that their states depend on one another, even though they have not 'picked' a particular state yet. You can separate the two particles (even by a huge distance), collapse one particle into a state and the other particle collapses instantaneously into the corresponding state.
Your explanation is as I have read many times and seems to be good physics to my untrained thinking. If you have a particle and I have the corresponding tangled particle and we are separated by a great distance and you collapse yours mine will collapse also. I don't know what state yours collapsed to and cannot tell anything from what state mine collapsed to. But I *do* know that you collapsed yours. Isn't that information? What if you and I each have a vast number of entangled particles ordered in a line. You start collapsing your particles with a certain timing. Say, for example, morse code. Particle collapses 1 second apart are dits and 2 seconds apart are dahs. Now don't we have a means of transmitting information faster than light? Surely this is not possible, right? But I don't understand why not.
Update: The flaw in the above is that there is no way to tell if my particle has collapsed to any particular state or not because when I measure my particle it will cause it to collapse causing my partners entangled particle to collapse to some state also making it useless for communication. Heisenberg was a real bastard.
GPLv3 released today
When will they learn?
For decades they have tried and for decades they have failed. You
simply cannot completely secure a digital computer against its owner
and prevent the owner from copying data in that computer and giving
it to anyone they want. Not while preserving the basic freedoms
which we enjoy such as freedom of speech.
The numbers depicted here are the secret code needed to decrypt the new high definition DVD's. The movie industry spent lots of time and money coming up with this silly scheme and truly brilliant hackers had it cracked in no time. And every time they do this there will be truly great people lining up to meet the challenge. I have never seen any industry repeatedly fail to learn from history for as long as these guys have.
I find myself agreeing more and more with the idea that DRM stands for "Digital Restrictions Management" and that DRM manages rights the same way jail manages freedom. Yet another reason why I have not bought a CD in years and I have never in my life bought a movie on DVD. The current system of copyright is totally corrupt and damaging to both our economy and our culture. We pay taxes to support the copyright system which is established by the Constitution of the United States of America to encourage creation of artistic works so that eventually these things fall into the public domain and we can all enjoy them. We do NOT have a copyright system so that artists get paid. That is only a means to an end. And until these things fall into the public domain we are entitled to Fair Use.
Copyright was originally set at 56 years. More than long enough for the artist to recoup his investment. The media companies are constantly extending copyright. It has been extended twice now, each time a bunch of content from the beginning of the movie entertainment age was about to fall into the public domain. Currently it is set at life of the author plus 95 years in the case of corporate created works such as Mickey Mouse. The copyright on Mickey Mouse will expire in 2061 unless they extend it again which seems quite possible. Walt Disney is long dead and gone. How is providing further protection encouraging him to create more artistic works?
But in addition to constantly expanding the term of copyright protection so that nothing falls into the public domain the movie and music industries are doing their best to remove our rights to Fair Use under the Copyright Act of 1976 (17 U.S.C. Section 107). The Digital Millenium Copyright act is only the most recent successful attempt at chipping away at our rights.
Information does want to be free. In the same sense that water wants to run downhill. Not so much as to anthropomorphize information as to state a basic tendency. Or to put it another way, you can't put the genie back in the bottle.
Visitors from out of town
Yahoo/GMail/Hotmail etc. all suck and I renew my vow to never use Windows
A friend of mine in Vietnam had cablemodem installed in her place a few months back. Unfortunately the person who installed it was a very unprofessional young man. She is a hot chick and he was gawking at her the whole time, asking her personal questions, etc. He had to come back once or twice before the cablemodem finally worked properly. Then he started IM'ing her. He started knowing things he should not. Eventually it was determined that while he was setting up the cablemodem he had installed spyware including a keylogger onto her computer and basically took over her whole online life. What a nightmare! She complained to the cable company and the guy got fired but that does not get her information back. Now they are just waiting for the extortion letter. No joke.
The moral of the story is do not use any free webmail service for anything even remotely important. This may seem obvious to many people but many more still don't seem to realize the implications. Do not store or send any info on a free webmail service that you would not want posted on the bulletin board at work.
The big problem is control. Who has the real ultimate control over your webmail account? Whoever owns the hardware it is hosted on which is invariably a big corporation who doesn't give a care about you the individual. My friend emailed yahoo a number of times about getting her account either restored to her or deleted entirely but they get a million requests like this every day and completely blew it off. There is no reliable way for her to prove who she is to yahoo. She set a "security question" years ago to be used in such an event when she created the account but no longer remembers the answer.
So what is the answer? The answer is to only use email accounts with someone you can hold directly accountable. When using free email they are under no obligation to do anything for you. When you use your local ISP's email account you can always show up at their office with your ID and prove your identity and have them reset your password. Or if you are technically inclined (most of the people who read my humble blog probably are) you can do like I do and run your own mail server. Or you can ask a trusted friend for an account on their email server which they are likely to happily provide as it costs them nothing.
Which leads me to the second part of my rant: Windows is a completely insecure piece of garbage which I will never use for anything. And I am determined never to enter my password into any sort of Windows box again since you can never tell if a keylogger has somehow been installed. I am looking into some sort of one-time password system to use as well. This is where you carry around a list of passwords in your wallet and the system accepts each one only once and then it is never to be used again so it does not matter if someone snoops it. Then I could occasionally enter my password on a Windows box and not have to worry about it being stolen. Since the keylogger incident my friend has started migrating to Linux. She finds it relatively easy to use for her common tasks but needs some hardware upgrades to run Fedora Core 5 seeing as how she has been running Windows 95 or 98 which has more modest hardware requirements.
Eastern Medicine
Today I took a trip to the Mekong Delta. We visited the town of My Tho (pronounced more or less as Me Taw with a slight up and down tone/waver in the voice on the My if you want to get the tone right), took a boat ride up the river, had lunch, visited with local people, heard traditional music, saw how coconut candy was made, rowed traditional boats up the various small tributaries, and had a good time.
On the bus ride back to Saigon our tour guide, Mr Tung, entertained us (in somewhat broken english) with his war stories. He served in the Viet Cong in the tunnels at Cu Chi which the US carpet bombed the hell out of, probably killed a few Americans, and took two bullets himself. One in his upper left arm (he showed us where his arm is still missing some chunks of flesh and is badly scarred from the entrance and exit wound) and one in the leg one night while above ground from a helicopter gunship. Among other things he told us some traditional eastern medicine remedies. Since I have some fans of eastern medicine reading this I thought you might be interested.
Cure for rabies:
Mr Tung told us that a crazy dog would sometimes bite a man and cause the man to go crazy. I can only assume he was talking about rabies. To cure this, he says, you go out to the forest and find a toad. A really big one. And make sure it is not a frog. Toads have rough skin and don't jump very far but frogs are slippery and can really jump. Frogs and toads are "same-same but different". I can't help but smile whenever I hear a local say "same-same" but it seems to be a common expression. Anyhow, he made very sure to explain to us to get a toad and not a frog. Then you burn the toad very completely down to charcoals. Grind up the coals really well and dissolve them in water. Make the afflicted person drink this mixture. In a couple of days they will be better.
Cure for diarrhea:
Take a piece of paper and draw three hungry dogs on it. I suppose you have to be a bit of an artist for this cure. I can't draw a very good dog and I'm pretty sure I can't draw a hungry dog. But draw three hungry dogs on a piece of paper. Burn up the paper. They are big on burning things around here. I see people burning little bits of paper by the side of the street all the time. Take the ashes from the burned paper, mix them in water, and drink it. The hungry dogs will eat up whatever is causing you to have diarrhea and you will be better.
Cure for hemorrhoids:
Mr Tung says that when you have find it painful to use the toilet and you have "flesh coming out of your anus" (they don't hesitate to talk about their bodies here) you should try this remedy. I assume he meant hemorrhoids. [darn, I have forgotten the hemorrhoid cure! Well, I know where I can contact Mr Tung if I ever need it.]
Cure for cancer:
Here it is folks! The cure the drug companies don't want you to know about because it's so cheap! To cure cancer you have to go to the snake salesmen and find a cobra. Not just any snake but a real cobra. The biggest one you can find. Drain the "juice" from the tail of the cobra. I'm not sure what constitutes juice or how exactly you define the tail of the cobra but that's what he said. Drink it. Voila, cancer cured. He cautioned us against using chemicals to cure cancer (chemo, I assume) because all that does is make your hair fall out.
Well, there you have it folks! This was all told with a straight face to my tour group of around 50 people on the PA system of the bus on the two hour ride back to town. I shit you not. We are in the east and it was told to me by an older Asian man so it must be honest to Buddha eastern medicine!
Oh, and after over two months of living here I learned something interesting about local bathroom habits today. First some background: In every Vietnamese home bathroom there is a shower head on the wall. But no shower tub or enclosure of any sort. The floor is all tile. You just shower right there on the bathroom floor and it all goes down a drain in the corner. Yes, everything gets wet. So don't put anything anywhere in the bathroom you don't want to get wet. Beside the toilet (which you stand right next to as you shower) there is another smaller sprayer on a hose. Just like the kitchen sink sprayer many of us have to spray down dishes. With a little handle on it you push and everything. Vietnamese don't normally use toilet paper. They use this sprayer and their fingers to blast the turds off their backside. Sort of like a bidet. Apparently they have been providing toilet paper (in a little plastic container so as not to get wet easily) as a courtesy but I guess I'll have to give the sprayer a try next time I go number 2.
They are still celebrating their April 30th defeat of the Americans aka Liberation Day. There is a very loud concert going on in the park behind my place right now. They are singing something about Sai Gon.
BUGTRAQ is dead
I sent the following to the bugtraq mailing list. The moderator of the list replied with basically a shrug of the shoulders and bounced my post back to me.
------------------
Subject: The utility of bugtraq
From: Tracy R Reed <treed@ultraviolet.org>
Date: Mon, 26 Jun 2006 14:35:38 -0700
To: bugtraq@securityfocus.com
I have been a subscriber to bugtraq for over 10 years. I made the
acquaintance of Aleph1 and I think maybe he turned me onto the list, I
don't recall. When I first subscribed I read every email that came
across the list because it was probably something that applied to one of
the UNIX's I administered and could affect me. Many emails contained
actual exploit code which was very interesting in understanding what was
really going on.
But the list has changed a lot since then. Now it seems like every
platform is fair game for the list even though no one person cares about
more than a very small percentage of those platforms. We have tons of
XSS exploits being posted for webapps that nobody has heard of. We even
have XSS exploits being posted which are unique to individual websites.
What is the point of posting those? What are the rest of us going to
learn from a site-specific XSS exploit for blacksingles.com that we
didn't learn from the previous thousand XSS exploits and why should we
read over a thousand emails a month about such things?
I don't know if the change in the population of the Internet in general
is responsible for the change in utility of the bugtraq list or if it is
due to the new ownership of the list but it went from being an
indispensable tool for the system administrator to being a massive
source of useless noise. I guess it's time for this old UNIX fogey (and
I'm just 31!) to move on.
More about Vietnam
Having spent so much time in VN the past year I have learned a lot of interesting things, not all of which I like. I have witnessed first-hand what I recall a friend referring to last year as the "crab mentality". The idea is that one crab in a pot will easily escape. But three or more crabs in a pot never escape because they are all constantly pulling each other down due to their complete lack of cooperation. Sometimes it seems as if the Vietnamese really are pulling each other down. It's as if there is no sense of cooperation or spirit even though lip-service is often paid to these things in the government propaganda. In reality it is every man for himself. Bribery is rampant. I am almost ashamed to associate with wealthy vietnamese because the only way to get that way is to participate in the corruption. Those with nice houses probably have them because they were confiscated from someone else. The old-boy network is bigger in VN than anywhere I have seen. There are many well-educated Vietnamese who knows the difference between right and wrong but unfortunately the others around them make them feel forced to play the same game by the same rules.
It's odd: The Vietnamese language has so many pronouns to refer to yourself and others depending on the situation to show the proper respect. If the person is a teacher you call them "tha^`y" and yourself "con". If it is your parent you call them "ba'" and yourself "con". If it is a professional situation you refer to yourself as "to^i". A male older than you (like your brother) is "anh" or a female older than you (like your sister) is "chi." and when referring to yourself (being younger) you are "em". When referring to someone younger than you they are "em". Someone significantly older than you (old enough to be your parent) you refer to as "co^" for female and "chu'" for male. A very old person (like grandparents) you refer to as "ba`" for female or "o^ng" for male. There are more, but that is only what I have learned so far. Very complicated. When receiving something from an elder you always accept it with two hands. Take off your shoes when you enter a house. They treat each other with such respect.
Until they get out on the streets and are dealing with other Vietnamese who are not their family or friends, just anonymous people. The well educated and polite Vietnamese do ok. But the rest behave like animals. Pushing and shoving, cutting in line, cursing and swearing, ripping each other off, it's terrible. It seems so selfish to only treat people with respect when you have something to lose or gain (such as reputation or favor) and treat them so poorly when you know you will never see them again. How we treat others when we have nothing at stake says a lot about ourselves, I think.
I have nearly been compelled to bust some heads on a couple of different occasions this past week. I nearly caused a scene in the airport in Hanoi when some guy tried to cut in line between me and my friends by muscling his luggage cart between us. It's not like cutting in line will make his flight depart any sooner. But they just don't get it.
I have recently visited some very sacred pagodas in the buddhist religion. No westerner ever visits these places unless they were shot down over them. I got quite a few looks of surprise and many comments were made when people saw my white face climbing the long (several kilometers) and very steep trail to the top of the 1000 meter mountain. And when I finally got to the top after a 4 hour hike I found a mass of people perched on the tiny flat spot around the pagoda pushing and shoving and throwing their trash down all over this otherwise beautiful mountain top. They laughed at me for carrying my trash around in my backpack until I got to a place with a trash can. I had always assumed they would have more respect for their holy places than to litter them with trash but apparently they show their respect in some other way.
My friends told me I needed to learn to be Vietnamese. I explained to them that this is how animals behave and I refuse to believe that Vietnamese are animals. Just like crabs in a pot. They seem to have no clue what an ideal or a principle is. They rationalize poor behavior by saying that everyone else does it. It seems that their society would get a lot farther if they could just learn to cooperate and not think only of themselves. It is amazing to me that these are the same people who caused the world such troubles in the 60's and 70's.
I also see the general ignorance of the world of the people making them easy to repress and manipulate. The Internet and satellite television are changing that to some degree but being the only country on earth that speaks Vietnamese makes it very difficult for the average Vietnamese to get outside information. Suffice it to say that their government has given them a very "interesting" version of the history of the last hundred years.
Despite all of this the people who I dealth with directly on a face to face basis were all very nice and hospitable to me and I am very grateful to them. I never ran into a single instance of anti-Americanism or discrimination, other than having to pay double for tickets to anything because I am a foreigner. :)
"Không, tôi là người Việt!"
My Time in Vietnam
Functional Programming
I have talked with some of you about this in recent
meetings. It used to be that hardware was too slow to support
functional programming or really any high level language. LISP was the
first functional and high level language to be used. LISP was conceived
of in 1956 and fully implemented and useful by 1962. The performance of
LISP on the hardware of the day seems to have given the whole class of
languages a bad name and doomed them to obscurity. Other than AI
research and some universities, almost everyone dumped LISP for C and
similar languages. But the benefits of this method of programming
combined with much faster hardware which renders the overhead of high
level languages irrelevant seems to be causing a comeback. I think it is
time to take another look at functional programming and many people seem
to be doing so. The amount of functional programming activity in the
FOSS world these days is pretty impressive. It is definitely a different
way of thinking about programming so it will take some getting used to.
Functional programming in general has appeal for a number of reasons.
The first is that it is primarily based upon the mathematical idea of a
function. As computers are inherently logical/mathematical devices I
find this appealing. Specifically it involves lambda calculus and the
idea that you can implement the equivalent of Turing complete
functionality using the composition of functions.
They are functions in the sense that they always produce the same and
only one output for a given input, just like the mathematical definition
of a function.
There are no side-affects which can make your programs non-deterministic
and hard to debug. You never say things like a=b. Instead you evaluate a
function which returns b whenever you would have otherwise used a. But
even this does not really explain it properly. You will have to do some
reading on your own to get it. The book "The Little Schemer" is a pretty
good introduction to the theory of functional programming. It is mind
bending and enlightening at the same time. Having finished that book I
am now slowly working my way through "Simply Scheme" after which I hope
to tackle "The Structure and Interpretation of Computer Programs". Once
done with all of that I should have a pretty solid grounding in
functional programming in Scheme and be able to take on other functional
programming languages.
These ideas together mean you get code that is much more likely to do
what you intended and only what you intended which makes it great for
mission-critical applications which require stability and high
availability. They also mean it is closer to being possible to
mathematically prove the correctness of your programs. You still can't
actually prove it for anything but the simplest of programs but it gets
us closer and I think that is a worthy goal.
With functional programming you describe the problem itself rather than
an implementation of the problem and the computer works the rest out for
you. I find this pretty amazing. And because of this programs written in
a functional language tend to be much shorter. A program written in an
imperative programming language tends to be 5-10 times the length. Less
code means less opportunities for bugs and debugging.
With cpu's getting faster and getting wider in terms of parallelism due
to multi-core designs functional programming is in a prime position to
take full advantage of the capabilites of the new cpu's. Parallelizing a
functional program is easy because the nesting of the functions clearly
delineates what depends on something else and which things can be run
safely in parallel.
I have been reading about Lisp, Scheme, Haskell, and Erlang. Note that
Lisp is not a "purely functional" language in that you can also do
imperative programming with it. But the rest are purely functional. Some
day I am going to have to pick one for serious learning. As I mentioned,
I have a few books on Scheme already so it is in the lead. But the
succinctness and mathematical foundations of Haskell are appealing. I
just recently began learning about Erlang. Erlang was written originally
created by Ericsson and they use it on their phone switches and other
devices that need high reliability. It seems to have the advantages of
Haskell plus it has very strong concurrency support (threads done in a
safe and sane way: no locks or shared memory, only message passing), has
an emphasis on highly reliable code, you can patch it on the fly without
stopping the program (nice for upgrading those switches that require 5
9's of uptime), can be used to do distributed programming in a
transparent way, and has built in support for a distributed database
called Mnesia. That is pretty much all I know about it so far, haven't
written any code yet. But I look forward to trying it out. We really do
have an embarrassment of riches when it comes to programming languages.
I never really appreciated the value of RSS until I got the Sage plugin
for Firefox. Now I get a very useful feed of info from a number of good
sites. One of these sites is: http://lambda-the-ultimate.org which
always has lots of very good discussion on functional programming and
language design. I found out about Erlang through this site. Check out
http://lambda-the-ultimate.org/node/197 which has direct download and
torrent links to "Erlang The Movie". They demonstrate some rather neat
features of the language. The video itself, made in 1990, reminds me of
an episode of Fawlty Towers or Are You Being Served? Watch it and I
think you will see why. :)
"Hello Joe. Hello Mike. Hello Mike. Hello Robert. Hello Joe, Hello Mike.
Hello."
I am working on a wiki page with lots of links to functional programming
resources. I will post a link to it when I have it a little further
along. I will post some functional programming examples here eventually
also.
Code Monkey
Silence On The Wire
At first glance, "Silence on the Wire : A Field Guide to Passive Reconnaissance and Indirect Attacks" by Michael Zalewski does not look like a book on computer security. All black, not too flashy. What the heck is passive reconnaissance and indirect attacks anyway? But it's from No Starch Press so it should be something cool. I would say this is a different kind of computer security book. This book does not give you the standard advice such as avoid buffer overflows and turn off unnecessary services, etc. It takes a more fundamental look at our hardware, software, and protocols and examined the problem from the lowest level working up. The book basically focuses on how to get information out of a system in ways the designers did not anticipate. Not through any sort of brute force "hacking" (in the negative sense of the word) but by much more subtle means such as observation from a distance without ever letting the target know what is going on through the use of various sorts of data leaks and covert channels. Information is an interesting thing. Lack of information is indeed information itself. All of these things are examined and explained.
The book consists of 18 chapters and 281 pages and I think that is just the right length to cover some of the more interesting ground that others have not covered a thousand times before. Rather than summarize the book let me tell you about a few of the parts that I found interesting.
The information presented on timing attacks and entropy etc. was all very interesting but then in chapter 2 we encounter around 20 pages about boolean logic, logic gates, basic machine architecture etc. This information, while interesting, left me wondering where the author was going with all of this. 20 pages is a bit long to leave the reader in the dark. We ultimately find out how the hardware relates to timing attacks and computational effort analysis.
I found the in-depth discussion of the OSI model and the byte-level dissection of the various protocols that make up the protocol stack in our networks to be very interesting. I have read Richard W Steven's book on networking (a long time ago) but this was a very nice review. During the explanation of the various protocols and layers we learn a few things about the quirks of each of these layers and how they can reveal information. We find out how the RFC's (the standards which specify the protocols/languages which computers use), while specific enough to allow different machines to talk to each other, are often not completely without ambiguity and leave room for variance in the various different implementations. These variances can be observed and used to determine what OS a machine is running among other things.
Page 109 in chapter 8 is particularly interesting to me. Imagine my surprise when, just sitting in bed reading along one night, I came across my own name in a computer security book! It turns out the author ran across my work in "war-flying" back in 2002 and found it interesting enough to include in his book.
During the section discussing TCP we learn about TCP sequence numbers and the need for solid entropy in their generation. Some pretty pictures are presented which show the probability distribution of the generated TCP sequence numbers for various different OS's. I remember seeing these pictures and reading the paper back in 2001 when the author first published them. You can actually determine what OS a machine is running by looking at a picture of the distribution of the TCP sequence numbers it generates. This relates back to the passive OS fingerprinting. The TCP specification says sequence numbers are to be used but says nothing about what algorithm to use to generate them.
Overall I found the book quite satisfying and it clued me into a number of areas of information leakage that I had not been aware of and techniques which can be used to exploit them. I liked how the author presents several real life stories from his own personal experience where something very strange and interesting was discovered. This is the only real computer security book I own. Most other books just seem too cheesy or unoriginal or out of date to bother with. This book is not only original but it focuses on fundamental ideas that will continue to be valid for many years to come.
New server, new weblog, new job..,
So I quit my job with Telepacket. Long story. I am rejuvinating Copilot Consulting and getting in touch with all of my old clients. I have migrated everything off of the old server onto a new server and moved it to less expensive bandwidth. While I am at it I am redoing my website. I'll be posting again about the cool new technology that has gone into this new server.
How I @#$#% HATE MS Outlook
- If you are sending a reply to a message or a posting be sure you summarize the original at the top of the message, or include just enough text of the original to give a context. This will make sure readers understand when they start to read your response.
So not only does my machine get a zillion port scans/attacks each day from Windows boxes taken over by worms and my mailbox get filled with viruses and bogus virus warnings replying to virus-laden emails spoofed to be from me and I get to try to keep up with the ever-changing proprietary file formats but now I have to worry about how I compose my plain-text emails also.
The whole internet is going to hell in a handbasket and the average Joe-sixpack can't be bothered to give a care. Sometimes I want to go Amish...
Copilot Communicator #1
I have been meaning to send out this email which I have had sitting in my
drafts folder for many months but never got around to it. I just created a
little mailing list to help manage my contacts so ignore the welcome
message you just got.
Lots of big news to report:
Copilot Communications has been acquired by Telepacket Inc of Temecula.
This is good news for our customers because Copilot Communications
customers will become Telepacket customers and will have access to all of
the new features we are working on for the phone system plus better
worldwide PSTN connectivity and nationwide and potentially worldwide
DID's.
As for me personally, I am now working for Telepacket in the capacity of
Director of Software Development. I will continue to operate Copilot
Consulting (Linux oriented consulting business) although on a more
part-time basis and will probably be referring a lot of work to my
colleagues. Telepacket is sending me to Vietnam to manage their Ho Chi
Minh City office and lead a team of programmers over there on a
semi-permanent basis. I will be returning to the US every couple of months
for meetings and various personal business. I expect to depart in
approximately 6 weeks and will be there for at least a year and
potentially much longer as long as things continue to go well.
Before I go I am going to cram in as much fun in the US as I can. This
includes a couple of ski trips and finishing up my seaplane rating. I want
to get in as much flying as I can because General Aviation simply doesn't
exist in Vietnam since it is illegal to own an airplane over there. You
can find pics of my seaplane adventure in the photo gallery at my personal
website: http://ultraviolet.org
And now on to the tech news and links: Today's theme is viruses.
We've all heard about and probably had Windows viruses on our Windows
PC's. Most people just assume viruses are a basic fact of computing and
perfectly normal. It has pretty much become an accepted fact of life that
we need antivirus software. But that is not really the case. Very special
circumstances have to arise to allow computer viruses to spread and it
just so happens that Windows provides an ideal breeding ground. Linux, on
the other hand does not get viruses. Why? I recently stumbled across this
article which does a nice job of summing it up:
http://librenix.com/?inode=21
Just ran across this one today: "Why do PC users put up with so many
viruses and worms?"
http://sfgate.com/cgi-bin/article.cgi?file=/gate/archive/2005/02/04/notes020405.DTL
(Note that a modern Macintosh is a Unix computer)
Department of Homeland Security Computer Emergency Response Team
recommends NOT using Internet Explorer and I emphatically agree:
http://story.news.yahoo.com/news?tmpl=story&cid=74&e=3&u=/cmp/20040702/tc_cmp/22103407
http://www.cnn.com/2004/TECH/internet/07/02/alternative.browsers.ap/index.html
http://www.kb.cert.org/vuls/id/713878
Mozilla ( http://www.mozilla.org ) is the way to go for a web browser
these days.
And just for giggles, check out this funny Linspire ad which unfortunately
requires your browser to have the Flash plugin:
http://www.linspire.com/RunLinspireFlash.php
I hope this email finds you all well!
Popularity and viruses
have viruses (or worms, which are the same for the purpose of this
discussion) is because it is not nearly as common as Windows, disregarding
the vastly different security model.
The traditional response has been to point out that Apache has a much
larger market share than IIS yet IIS has many more security problems,
exploits, viruses, etc. than Apache.
I just read on /. that there is a virus going around attacking Windows
systems through MySQL. I don't know the details of how it does it but
apparently it has already found and infected quite a few Windows machines.
You would think Windows servers running MySQL would be pretty darn rare,
and you would be right. This is another excellent example of how
popularity is not necessary for a platform or specific software
combination to be targeted for viruses.
Security, Reliability, and the OS
project. The goal is to make an extremely reliable and provably secure
operating system. I have not yet downloaded and played with it yet but
they seem to have a very good start. The OS started out as KeyKOS:
http://www.cis.upenn.edu/~KeyKOS/
Then came EROS:
http://www.eros-os.org/
And now they are working on Coyotos:
http://www.coyotos.org
There are really three remarkable things about this:
1. These are capability based operating systems. This is a much
better security model based on least privilidge than Unix uses. It is
designed such that side effects (buffer overflows) can be logically ruled
out, code proven, and a trusted computing base can be established.
2. They are creating a new language (I know, I hate it when people do
this, but they may have a good reason in this case) with stricly
formalized semantics to allow provable code which should result in far
fewer defects than any previous systems programming language.
3. KeyKOS and EROS were "persistant" operating systems. They have removed
this feature from Coyote but I am hoping they put it back. This means that
memory is really just a cache for disk and the whole thing is treated as
one big address space which has synchronization points and a form of
journalling. This means the entire state of the system is regularly saved
to disk and if the system crashes you can resume from where you left off.
It is similar to hibernation for laptops except it is happening all the
time so if you just pull the power or the system crashes you don't lose
all of your work. You could theoretically save the system, pull the drive,
put it into a different (perhaps upgraded or repaired or backup system)
and pick up where you left off.
I love the story in the link below about their little competition with
Novell.
Here is a more detailed explanation:
http://www.eros-os.org/project/novelty.html
Spam Filtering and Internet brokenness
Every now and then I fire off a lengthy rant to someone which all too
often is only read by me and the other person. Sometimes I get to
inflict my rants on a mailing list but that is only sometimes. Now that
I have a webpage where I can post stuff like this I am going to be
copying and pasting any interesting rants here as well. Today I sent an
email to a webserver administrator complaining about how they give the
user the option of using SSL or not with the justification being that
SSL is slower. I think this is silly so I sent them an email suggesting
the just make SSL the default and make things simpler since any speed
difference is very negligable, especially on modern hardware. My email
was bounced back! Apparently their mail server uses a DNS based block
list (often called an RBL or Realtime Blackhole List) which is a rather
controversial setup. I emailed them from a different account to which
they replied. My followup with them is as follows:
On Sun, Jan 09, 2005 at 09:03:32AM -0800, David Timm spake thusly:
> 1. We block about 85% of our incoming email at the client level. This has
> saved thousands of dollars in bandwidth costs and stops most of the big
> volume of Spam -- zombie machines sending messages from subscriber networks.
> It has been extremely effective for us and I think it is a really good idea.
> I know there are two major camps in this war -- one that accepts then scans
> the email and the other that blocks first. We choose the latter. I have
> white listed your server, which should eliminate any further problem for
> you. If you do have any further problem, you can also send messages to us
> via the web at: http://answer.timesync.com?action=contact or click 'contact
> technical support' at the bottom of any schedule master page.
I do this too. However to block solely on the basis of someones IP being
in a list is a very bad idea. I learned this lesson the hard way:
http://www.e2ksecurity.com/archives/001028.html
Summary: An otherwise respectable RBL shut down in a silly way and caused
mail servers all over the world to start bouncing ALL mail.
There are actually three camps in this war: The two you mentioned plus
those who use something like spamassassin. The proper way to block spam
(IMO) is to use something like spamassassin which calculates a score based
on a number of factors including whether the IP appears in a list. For
example, the email you sent to me scored like so:
X-Spam-Status: No, hits=-4.9 tagged_above=-999.0 required=5.0 tests=BAYES_00
So it did not have any spam like qualities at all. Your IP wasn't on any
lists, the content of the email did not look like spam according to the
bayesian filter, and there was no other funny business going on. It
actually had a few positive things going for it which made the spam score
negative. I have my system configured such that a score of 5 is required
to be labelled as spam and sorted into the junk folder. I never outright
reject mail because false positives (such as when I emailed you) can be
injurious to a business. But a really spammy email looks like this:
X-Spam-Status: Yes, hits=38.6 tagged_above=-999.0 required=5.0 tests=BAYES_99,
BigEvilList_92, DATE_IN_PAST_96_XX, DATE_SPAMWARE_Y2K, DCC_CHECK,
FORGED_MUA_OUTLOOK, FORGED_RCVD_NET_HELO, HTML_90_100, HTML_IMAGE_ONLY_02,
HTML_MESSAGE, KOREAN_UCE_SUBJECT, MIME_HTML_ONLY, MIME_HTML_ONLY_MULTI,
MISSING_MIMEOLE, NORMAL_HTTP_TO_IP, RCVD_IN_DYNABLOCK, RCVD_IN_SORBS,
SUBJ_ILLEGAL_CHARS
This email has many words in common with spam according to the bayesian
filter, the date was screwy, the MUA was forged, The RCVD line was forged,
etc. etc. PLUS it was listed in a number of lists such as Dynablock and
SORBS. Every so often I go through my junk folder and casually glance over
the emails to make sure there are no false positives (I have found 3 in
the past year and a half and they were from a very suspiciously configured
mail client so it's debatable but overall an astoundingly good rate) and I
get perhaps a couple of actual spam emails through to my inbox with about
300 being blocked per day for an accuracy rate of 99.6% and a false
positive rate of much lower.
Last weeks spam stats:
[root@copilotconsulting log]# grep "Yes," maillog.1 | wc -l
7938
[root@copilotconsulting log]# grep "No," maillog.1 | wc -l
12892
So 20830 emails of which 7938 were spam. I have a lower spam ratio than
most because I am on a LOT of legitimate but very high traffic mailing
lists (such as the linux-kernel mailing list) which boosts the amount of
good traffic I get. So I have the best of both worlds: No arbitrary lists,
very little spam or false positives.
> 2. SSL is slower (google 'ssl performance') but my concern might be a bit
> dated with today's newer hardware. I'm sure you are aware that the browser
> and server both take a performance hit. It may be small enough to default
> to ssl now. I'll consider that. Thanks for calling it to our attention.
Certainly there is some sort of performance hit when using SSL but I have
administered an enabled SSL web server since 1997 (was Netscape Server
back then although I have been all Apache for years now) and even back
then I didn't notice any significant performance hit using hardware and
browsers of the day. Even doing simple RSA operations with PGP was pretty
quick. And of course the time to use a symmetric encryption algorithm such
as that used by SSL on something as small as a webpage is miniscule as
well. We really need to encourage a culture of computer security and
secure defaults if we ever expect to improve the current miserable
computer security situation.
--
Tracy Reed http://copilotcom.com
This message is cryptographically signed for your protection.
Info: http://copilotconsulting.com/sig
On Sun, Jan 09, 2005 at 10:41:21PM -0800, David Timm spake thusly:
> Hi Terry, I'll look into Spamassassin -- I've been meaning to, and your
> message gives me another push, thanks. I've been reluctant to use anything
You are welcome. FWIW I use the killer combination of
postfix+amavisd-new+spamassassin+clamav for my spam and virus scanning
needs. I also use something called my_rules_du_jour (which I think may be
an add-on, not sure if it came with spamassassin or not) run from a
cronjob nightly to keep my spamassassin rules up to date. clamav also has
a daemon which definitely does come with it called freshclam (heh) which
keeps the virus definitions up to date. I never would have thought I would
see a good open source virus scanner just because of how boring it would
be to keep the definitions up to date but the clamav guys do an impressive
job.
I don't recall if this is the exact howto I used to set it up but it was
pretty easy:
http://mail.x-si.org/articles/av.html
--
Tracy Reed http://copilotcom.com
This message is cryptographically signed for your protection.
Info: http://copilotconsulting.com/sig
UrbanLegends
New website!
After several years of admiring the software from afar I have finally
dived into zope/plone/python. I have a number of big projects in the
works, several of which will require a website with some pretty
sophisticated web applications so it is the right time. I figured the
best way to learn it is to just dive in and immerse myself so the first
thing I am doing is converting my personal website over. I will be
doing all sorts of experimenting and customizing here so expect changes
and occasional periods of brokenness. The migration also meant that
several personal sites were down for a few days until I got around to
configuring apache to do url rewrites for those sites so they got
served out of the apache document root instead of being proxied to zope.
Last week I had a catastrophic LVM failure on the server which hosts my
websites and email so it was down for a while then too, I am working on
getting more redundant systems up to make everything more reliable
although that is more for company stuff and not the personal site.
