I think a few people in the thread gave examples of how hackers and
script kiddies don't really need compilers on the system to do damage.
Once qn intruder is on your system, they can download pre-compiled tools
to do what they need from a similar system where they (or the
script-kiddies' hacker pimps) maintain a compiler and toolbox for the
target system. Given such an environment, it doesn't make a difference
whether the intruded sysadmin puts a compiler on their computer or not.
I agree.
### Magic numbers helped protect systems
Some friends of mine with a BSD
compile-and-maintain-everything-from-source background came up with the
idea where they would use a different Magic Number for binaries when
they built their production systems. The binaries on the production
systems would all have the special magic numbers and exec would require
the magic numbers to run the binaries. If you tried to run a compiled
program that was compiled elsewhere, it would fail. They also did cool
things like give them stealthy monitoring tools within commonly used
programs (top, ps, shells) so that their production systems were like
fish bowls where you could watch inept hackers swim. Part of the policy
of the production environment was not to have compilers on the
production systems so that the hackers couldn't easily build a runnable
program.
An 3l33t hacker might figure out that all he/she had to do was modify
the magic number to get their program to run, but most people (including
script kiddies) wouldn't figure it out, give up, and move on to softer
targets.
This is one historical case where I think not having compilers made the
system more secure, but it's not your standard system.
### Signed binaries
To kick it up a notch, one might come up with a method for replacing the
magic number hack with a method of making sure a hash or signature of a
binary matched a trusted source before it was allowed to run. One would
keep a signing-capable compiler away from the production systems and
distribute signed binaries to the systems. A program might start slower
initially, but that's a trade-off a paranoid sysadmin might be willing
to make.
It'd make a good Usenix paper (unless someone's already done it -
anyone?). I do a Google search and see that FreeBSD "updates" are
signed, but I don't see anything about binaries themselves. Over in
linux land, there's cryptographically signed kernel modules. I hear
murmurs about Microsoft having the system verify DRM before running
programs someday.
--
Eric Ziegast
josh wrote:
Some people seem to think that installing a compiler inherently makes
their system less secure... despite never being able to cite any actual
reasons why.
Personally, I really dont see how a compiler is going to lessen
security, particuarly when they are used to patch the system, But I was
wondering what people here thought