Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×
Security Education Bug Operating Systems Software Unix Linux

DJB Announces 44 Security Holes In *nix Software 983

generationxyu writes "D. J. Bernstein, better known as DJB, has announced the discovery of 44 security holes that were found by students in his course MCS 494: Unix Security Holes this fall at the University of Illinois at Chicago. Vulnerable programs of note include: CUPS, NASM, mpg123, MPlayer, xine-lib, and numerous others. Copies of the notification emails are here. The homework for the course was to find and exploit 10 previously undiscovered security holes in currently deployed Unix software. In a class of 25, 44 security holes seems a bit low. Most of the class failed. I was credited with bsb2ppm (actually libbsb) and jpegtoavi. After 300 hours of work and an A average on the exams, I expect to fail the course."
This discussion has been archived. No new comments can be posted.

DJB Announces 44 Security Holes In *nix Software

Comments Filter:
  • Misleading Title (Score:4, Insightful)

    by __aaitqo8496 ( 231556 ) * on Wednesday December 15, 2004 @07:17PM (#11098101) Journal
    The title of this article is quite confusing, if I read it correctly. To me, it reads that *nix variants themselves have 44 security holes (as in something in the underlying OS, such as the kernel). However, upon further reading the story indicates that it is actually the 3rd party software that has holes in it. Sounds a little unfair to *nix environments. Consider blaming Microsoft for all holes in ever Win32 program (oh wait, we already do!) How about a better title like "DJB Announces 44 Security Holes In *nix-based Software"
  • Why? (Score:0, Insightful)

    by bonch ( 38532 ) on Wednesday December 15, 2004 @07:17PM (#11098106)
    In a class of 25, 44 security holes seems a bit low.

    Why is that low? I found 44 security holes to be a rather alarming amount.
  • by WIAKywbfatw ( 307557 ) on Wednesday December 15, 2004 @07:19PM (#11098129) Journal
    If you want to get technical you could argue that everything apart from the kernel is *nix-based software. Where do you want to draw the line?
  • by Dekke ( 829772 ) * on Wednesday December 15, 2004 @07:20PM (#11098143)
    Because if it weren't sensationalist, who would ever read it? For the knowledge? Hah! For shame, thinking we want accuracy...
  • by jdray ( 645332 ) * on Wednesday December 15, 2004 @07:21PM (#11098151) Homepage Journal
    I wouldn't get too worked up about it until it happens. I had several college profs who started out the terms saying how they were strict about assignments getting turned in, and how you could fail if you didn't do this or that; I rarely found their bite to be as bad as their bark. Mostly they want to put the fear of them as a deity figure in you, then be gracious later. If they get overwhelmed, they've set a good baseline to fall back on.
  • What? (Score:4, Insightful)

    by jjshoe ( 410772 ) on Wednesday December 15, 2004 @07:22PM (#11098165) Homepage
    What no djb tools on the list? That seems the quickest way to fail, find an exploit in a djb tool.
  • by Marxist Hacker 42 ( 638312 ) * <seebert42@gmail.com> on Wednesday December 15, 2004 @07:22PM (#11098168) Homepage Journal
    Not disagreeing- but if I was this student, I'd get a few buddies together from the class and point out to the prof:
    1. This is the first term this class has been taught.
    2. Nobody did well with the homework if the entire class of 25 students only found 44 holes.
    3. Even those who were among the best students in the class, getting A's on all the exams, only found 2-3 holes.

    Therefore the grades should be assigned to fit a bell curve based mainly on test scores and minimizing points earned for the homework.
  • by Mr. Slippery ( 47854 ) <tms&infamous,net> on Wednesday December 15, 2004 @07:23PM (#11098175) Homepage

    I see the two specific items linked to are buffer overflow exploits. Anyone learning to program in C needs to have good buffer dicipline beaten into their heads.

    It's like wiping your butt after crapping - mandatory basic hygine. If you can always remember to wipe your butt, you can always remembers to watch your buffer lengths.

  • by dokebi ( 624663 ) on Wednesday December 15, 2004 @07:25PM (#11098186)
    Most of the class failed. I was credited with bsb2ppm (actually libbsb) and jpegtoavi. After 300 hours of work and an A average on the exams, I expect to fail the course.

    Define "failed." They failed to find holes? Or they failed the course?
    I seriously doubt a prof would fail an A average student for not being able to find a hole for an assignment. Extra credit, maybe, but an F? I mean, WTF?
  • My thoughts. (Score:5, Insightful)

    by Anonymous Coward on Wednesday December 15, 2004 @07:25PM (#11098188)
    Thesis: This professor is retarded.

    Evidence to support this belief:

    1) Giving homework to "go out and find some exploits" doesn't teach you anything and has a very unpredictable "path to completion"; i.e., it's not like there's a "problem" to solve, per se. It's simply a matter of some students having gotten lucky whereas others failed.

    2) "After 300 hours of work and an A average on the exams, I expect to fail the course." Either the student is overly-pessimistic (which is possible), or the prof has done very little to: (a) boost morale, reassure students, or instil confidence; or, (b) grade students appropriately for the effort that they've put in. I think that the truth always lies somewhere between the extremes ... which would lead me to believe "a little bit of both".

    3) "In a class of 25, 44 security holes seems a bit low." I highly doubt this, but then again, it entirely depends. If you're trying to find a security hole in "telnet" or "finger", I think you'd be outta luck -- the average joe undergrad would be better off picking random numbers to win the lottery than to find holes in software that has been tried, tested, and true for years.

    Alternatively, if you just go to http://freshmeat.net and find some little backward project coded by a grade 9 high school student -- well, yeah, I think that an exploit should be pretty straightforward. Which leads me to ask: What the fuck does this assignment actually prove/teach? (See point (1), above.)
  • by Ars-Fartsica ( 166957 ) on Wednesday December 15, 2004 @07:27PM (#11098212)
    Who signs up for hard classes in fourth year? Duh! You've practically got your degree. sit back, uncap a cold one and choose from the many many many easy courses every school offers to fourth year students.

    Its well known that every college grinds out the poor students in the first two years...if you've made it to fourth year, its time to ladle up some gravy and bolster your GPA in time for grad school applications, resume bolstering, etc.

    So the real moral is that the most intelligent students are the ones avoiding the course altogether. If you want to get an education in unix security holes, go read the OpenBSD mail archives.

  • What's the deal? (Score:5, Insightful)

    by retro128 ( 318602 ) on Wednesday December 15, 2004 @07:27PM (#11098213)
    The homework for the course was to find and exploit 10 previously undiscovered security holes in currently deployed Unix software.

    10 for each student? I doubt DJB himself could find 10 on his own inside of a semester.

    In a class of 25, 44 security holes seems a bit low. Most of the class failed. I was credited with bsb2ppm (actually libbsb) and jpegtoavi. After 300 hours of work and an A average on the exams, I expect to fail the course.

    I guess the whispers I've been hearing about DJB being a complete asshole are true. It is always nice to have your academic future dictated by such people to your disadvantage, even though you may be a cut above the teacher himself. And in the meantime he will take credit for your work while simultaneously failing you. Thank you, sir, for reminding me why I dropped out of college.
  • by JoshMKiV ( 548790 ) on Wednesday December 15, 2004 @07:30PM (#11098237) Homepage Journal
    If the majority of the class failed, then the professor failed YOU.
  • by mateomiguel ( 614660 ) <matt_the_grad@ya[ ].com ['hoo' in gap]> on Wednesday December 15, 2004 @07:30PM (#11098238)
    "As a student, I'm the consumer. "

    No, no, and hell no. As a student, you are a student. Leave your stupid consumer victimization routine in suburbia, where it belongs. Don't try to bring that crap to academia.
  • by __aaitqo8496 ( 231556 ) * on Wednesday December 15, 2004 @07:30PM (#11098240) Journal
    For the sake of argument, what would you consider Windows software? The kernel, the graphics server, the programs that come with every "distribution" of Windows?

    I think that most people would agree that if the program can be *easily* removed from the underlying OS, it's not part of the OS itself. Therefore I would not consider notepad.exe part of the OS, however I would consider explorer.exe (even though it is a seperate application).

    If you don't agree, it's okay, but that's how I think of it.
  • by geminidomino ( 614729 ) * on Wednesday December 15, 2004 @07:31PM (#11098251) Journal
    Actually, only Linux is limited to being "Just the kernel." *BSD are full OSes, and are 4.4LITE-based, thus are Unix.
  • by WIAKywbfatw ( 307557 ) on Wednesday December 15, 2004 @07:33PM (#11098269) Journal
    I don't have any problem with the concept of an entire class failing a course. Why you think that a professor failing his entire class constitutes a failure on the part of the university is a mystery to me: would you be so opposed if a professor failed an astronomy class that failed to put the planets in the correct order or an economics class that couldn't describe how supply and demand affect prices?

    Frankly, I think you're jumping the gun here. Ten is a nice round figure and one that suggests that it might have been picked arbitrarily. Perhaps the professor asked for ten but didn't expect any one individual to find more than two or three? Perhaps the professor wasn't as interested in their results as he was their methodologies and definitions of what did and didn't constitute a vulnerability? Perhaps he was using the exercise to reinforce lessons on how to create a secure computing environment?

    Chew on that for a while, and while you're doing that think about the fact that you should be looking at university as a learning experience, not merely an acquisition of course credits. Frankly, your post makes you sound like someone who would sue their professor if he so much as considered awarding you less than a pass mark.
  • by KillerDeathRobot ( 818062 ) on Wednesday December 15, 2004 @07:33PM (#11098272) Homepage
    As soon as universities start being free, I'll agree with you.
  • by DunbarTheInept ( 764 ) on Wednesday December 15, 2004 @07:35PM (#11098286) Homepage
    If you assume it is stupid to pick harder classes, then you are assuming everyone's goal is laziness. If a person has a goal of learning interesting things, then it is not necessarily stupid to take a hard class. This sounds like an interesting class - the only problem is the grading is poorly thought out.
  • Re:Boohoo (Score:2, Insightful)

    by generationxyu ( 630468 ) on Wednesday December 15, 2004 @07:36PM (#11098294) Homepage
    I'd like to see you work your ass off for an entire semester, bury yourself in other people's C code for hundreds of programs, understand all the material, get As on the exams, and then fail because you weren't lucky enough -- and not be just a teeny bit pissed about it.
  • by Marxist Hacker 42 ( 638312 ) * <seebert42@gmail.com> on Wednesday December 15, 2004 @07:36PM (#11098304) Homepage Journal
    Perhaps- I didn't think of this until reading your post- that's exactly what the professor was trying to teach. Though it would be a damned awfull way to do it, I've got to admit that 95% of the projects I've worked on since college have followed that general path. Work obscenely hard- get a product out there- get laid off when the marketing people spend tons on booze to cover their poor marketing skills and drive the company into the ground. Yep- sounds just like this assignment.
  • by plopez ( 54068 ) on Wednesday December 15, 2004 @07:37PM (#11098314) Journal
    It could be the prof was trying to weed out the riff-raff (those who think they are hot but are not, etc.). But giving such an open ended project at the undergrad level is extreme. It is appropriate for grad school, where research projects sometimes are not completed, but not undergrad (I assume by the number it is undergrad).

    I actually had a class like that, expected to fail but passed becase I actually did a lot of work on the problem and it showed. This may be one of those cases. Remember, research is about trying your best but still failing, actually most of the time.
  • by Jace of Fuse! ( 72042 ) on Wednesday December 15, 2004 @07:38PM (#11098322) Homepage
    They're letting you down by allowing a professor to fail an entire class, especially since the grades are based on something that doesn't really reflect your understanding of the subject.

    I couldn't agree with this post any more.

    Let me also say that if this professor feels so high and mighty, let's see this person perform the assignment themself! Something tells me this professor would also fail!

    10 previously undiscovered exploits for one person to find is a serious undertaking. Most Security Professionals probably don't find that many per year I would guess.

    Shesh. What an ass.
  • by Marxist Hacker 42 ( 638312 ) * <seebert42@gmail.com> on Wednesday December 15, 2004 @07:40PM (#11098339) Homepage Journal
    No- I don't think djb cares per say- but that's the first step. ALWAYS go with the chain of command method while protesting- then you can make a monkey of yourself in the Secretary of Defense's press conferance and get your name in all the papers.

    Same rules apply for universities, as the army, private industry, etc.
  • Re:My thoughts. (Score:5, Insightful)

    by slavemowgli ( 585321 ) on Wednesday December 15, 2004 @07:41PM (#11098350) Homepage
    It teaches you that professors can be asshats/idiots/..., too, and that you should not take classes taught by DJB. Furthermore, it teaches you that in life, you will still get treated like shit even when you're paying for things (like your education, in this case), and that having a famous name (like DJB) is more important than what you actually do.
  • by Anonymous Coward on Wednesday December 15, 2004 @07:44PM (#11098376)
    Hey, not all people who sleep through classes are goof-offs. Some just don't learn too well in that environemnt and are likely tired because they've been up reading the text all night.

  • by Bazman ( 4849 ) on Wednesday December 15, 2004 @07:45PM (#11098388) Journal
    To me, a remote exploit is something that exploits a running server. Most of the examples seem to be trojan horse attacks, getting the user to run an application on a file which overflows a buffer in the application.

    Example: http://www2.uic.edu/~kkubic1/securesoftware/26.txt

    Jonathan Rockway, a student in my Fall 2004 UNIX Security Holes course,has discovered a remotely exploitable security hole in NASM. I'm publishing this notice, but all the discovery credits should be assigned to Rockway.

    The only way I'd call this a remote exploit would be if someone has written an apache module that takes some assembly code and returns an executable. I dont think thats a very common setup.

    Baz
  • by Skyshadow ( 508 ) * on Wednesday December 15, 2004 @07:46PM (#11098393) Homepage
    I don't have any problem with the concept of an entire class failing a course. Why you think that a professor failing his entire class constitutes a failure on the part of the university is a mystery to me: would you be so opposed if a professor failed an astronomy class that failed to put the planets in the correct order or an economics class that couldn't describe how supply and demand affect prices?

    Frankly, I think you're jumping the gun here...

    I didn't jump the gun, I provided a qualified statement. You know, "if he does this then you should do this".

    Now, let me provide another statement which may or may not apply to this specific case (since we haven't seen grades yet): Any time an entire class fails, it is on the professor's shoulders. Since we assume that the people in the class are both mentally competent and reasonably intelligent based on the fact that they're in college, and excepting odd situations (a 1 or 2 person class, for instance), a near-100% failure rate can only be one of three things:

    1. The professor has created a class which cannot be successfully completed given the time constraints and the level of the students.
    2. The professor has completely failed to impart his knowledge to the students.
    3. The professor has based the grades on items which do not accurately reflect what was taught in the class.

    Implying that a professor who fails all or nearly all of a given class has competently done his/her job is nonsense. It's not "part of the learning experience", it's a professional failure on the part of the professor and needs to be treated as such. In any event, when this sort of extraordinary event occurs, the University itself is responsible for allowing that failure to occur.

  • by FatAlb3rt ( 533682 ) on Wednesday December 15, 2004 @07:47PM (#11098406) Homepage
    so...why didn't someone just write some intentionally crappy software, stick it on sourceforge, then point out the flaws?

    or better yet, since it sounds as if this is an assignment due at the end of the semester, dive into some code, write up a few paragraphs on what you *think* is a security flaw, and submit it.

    heck, i think the instructor should give credit for explaining 10 good code examples of secure routines.

  • by Punk Walrus ( 582794 ) on Wednesday December 15, 2004 @07:48PM (#11098418) Journal
    Why you think that a professor failing his entire class constitutes a failure on the part of the university is a mystery to me: would you be so opposed if a professor failed an astronomy class that failed to put the planets in the correct order or an economics class that couldn't describe how supply and demand affect prices?

    That's different, and it's still bad because that reflects poorly on the professor. If you were a university, would you want to hire a professor of astronomy who couldn't teach people the basics (for whatever reason)?

    What most of these posts are saying is that this professor did not grade these students on a reasonable test of their skills. It's kind of like a professor of Art History requiring students to discover a previously undiscovered Picasso. Sure, some may exist in people's basements or garage sales, and sometimes a new piece of art from an expired artist shows up on the auction block from an previously unknown collector of rare things, but would you consider it fair to flunk art students who could not find a new Picasso? How would you rate such a find, grade-wise?

  • by prockcore ( 543967 ) on Wednesday December 15, 2004 @07:51PM (#11098449)
    If you read the slides from the first lecture, it says the findings of holes amounts to 60% of your grade.

    Makes sense.

    The requirements are to exploit 10 holes in unix software. Nowhere does it say that the unix software must come standard with any distros, and it doesn't say that you can't write it yourself.

    Write a simple program with 10 holes in it, point them out, and boom you win.

    We are talking about finding vulnerabilities and exploiting them aren't we? I'd get extra credit for finding and exploiting holes the class requirements.
  • by Frizzle Fry ( 149026 ) on Wednesday December 15, 2004 @07:54PM (#11098468) Homepage
    I think that most people would agree that if the program can be *easily* removed from the underlying OS, it's not part of the OS itself.

    Yes, most people would. And that's why the title says *nix Software rather than *nix OS's. I don't know know anybody would defines "software" as meaning "something that is part of an OS". The title isn't misleading at all. In fact, it makes it explicit that we are discussing software for *nix rather than the OS itself.
  • by noda132 ( 531521 ) on Wednesday December 15, 2004 @07:56PM (#11098486) Homepage

    There is a time for learning for learnings sake - retirement.

    That's one way of looking at it, sure. But I think I'll learn for learning's sake my entire life, thank you very much. That way I wouldn't feel my life was a waste of time if I died at 64.

  • by Anonymous Coward on Wednesday December 15, 2004 @07:56PM (#11098487)
    Mostly they want to put the fear of them as a deity figure in you...
    Wrong. Mostly they want to get the lazy and uninterested students to drop their course.
  • by Anonymous Coward on Wednesday December 15, 2004 @08:02PM (#11098538)
    While I hate the amount of grade inflation and purchased grades that seem prevalent in our colleges today, I do have a problem with what you say.

    It is not okay to fail an entire class if the professor cannot teach worth a damn and demands more than the students could ever possibly learn on their own. Your post implies that all professors are good at their job and have reasonable expectations. I have seen the results of a professor who did actually fail an entire class and, trust me, it was not because the students didn't try. The Professor was INCOMPETENT and was fired on the spot.

    The problem is that most professors fall into one of three categories:

    1. Those are brilliant in their field, but simply cannot teach.
    2. Those that are brilliant in their field but are too concerned with their own personal research and egos to teach.
    3. Those that could not make a career in their field of choice and decide to teach instead.

    In my experience, it is the exception and not the rule for a professor to be brilliant in their field, able to teach the subject, and actually interested in their students and whether they understand the material. Why don't YOU chew on that before lecturing on the college experience.
  • Re:Why? (Score:3, Insightful)

    by cduffy ( 652 ) <charles+slashdot@dyfis.net> on Wednesday December 15, 2004 @08:02PM (#11098542)
    Why is that low? I found 44 security holes to be a rather alarming amount.

    I don't. Your average security hole is exploitable under only very limited circumstances -- say, if a program is being run with privileges that the individual invoking it doesn't have.

    Holes of that sort are extremely widespread (and part of the reason why marking programs that haven't been audited setuid is generally understood to be bad practice).
  • by Anonymous Coward on Wednesday December 15, 2004 @08:03PM (#11098560)
    The pity is that such a strategy allows for no differentiation between people who are working at their full capacity and goof-offs who sleep though class.

    Er, wait now. There are courses where working to your full capacity should not have any bearing on a pass. Sometimes you're being tested to show you have a mastered a skill, not that you've shown dedication.

    Pretty much any course past the middle of high school, really.
  • by stor ( 146442 ) on Wednesday December 15, 2004 @08:03PM (#11098564)
    For the sake of argument, what would you consider Windows software? The kernel, the graphics server, the programs that come with every "distribution" of Windows?

    Ahh, this is such stuff that pointless flamewars are made on.

    Cheers
    Stor
  • by vadim_t ( 324782 ) on Wednesday December 15, 2004 @08:03PM (#11098573) Homepage
    Sure, viruses for Linux can be written. The problem's getting them to run, and then do anything useful.

    Let's say I receive a virus attached to an email, which I open with kmail.

    First of all, I've got to save it to disk, mark it as executable, and run it. This alone makes it quite improbable.

    Second, the virus has actually to start up, and Linux binaries don't necessarily work on other systems, unless statically linked.

    Assuming it's statically linked, Linux systems are rather less standard than Windows ones. How does it send mail? Well, kmail has a dcop interface, but I don't see a function for sending. The virus could compose it of course, but the user would need to click send on it.

    Next, it can perhaps try using the server at localhost. If there's one, that is, since normal people probably aren't going to be running one. Reading the user's kmail config would probably work though, as long as the password is there.

    So, overall I'd say, yeah, it's possible. But all the obstacles above make it a lot harder to do than on Windows, especially the first one. To make it run you probably would need to find a buffer overrun in a mail client, and that's increasingly uncommon these days.
  • by Anonymous Coward on Wednesday December 15, 2004 @08:06PM (#11098596)
    One student I knew got a C+ and discovered that he had roughly the same scores in each area as another student who got an A. That is, guy I knew had a poor exam, but awesome project. Someone else had nearly identical exam scores, and nearly the same (A) project.

    So guy-I-knew approached Parnas, and asked why.

    "Becuase I don't like you".


    Perhaps a nice letter from a lawyer will help... or an academic appeal.
  • by Phillup ( 317168 ) on Wednesday December 15, 2004 @08:14PM (#11098673)
    student: I'm pretty sure this is right. I'd like to see your ten.
  • by winwar ( 114053 ) on Wednesday December 15, 2004 @08:19PM (#11098723)
    "So guy-I-knew approached Parnas, and asked why.

    "Becuase I don't like you".

    And that was the end of it."

    I wonder why? Disliking someone is NOT a valid reason to assign low grades. Thinking their work is crap is a valid reason. That statement pretty much could have enabled the student to have his grade reevaluated by an outside observer. I would have complained to academic affairs. After all, if the professor already dislikes you, that bridge is already burned.

    If the story is true, of course.
  • by be-fan ( 61476 ) on Wednesday December 15, 2004 @08:19PM (#11098726)
    I think the point of contention is that people are saying that grades and learning *should* be related. Grades should reflect what you know --- they are utterly useless otherwise.

  • by myowntrueself ( 607117 ) on Wednesday December 15, 2004 @08:28PM (#11098800)
    "remember where these orders come from..."

    "follow the chain of command..."

    "the *political* office..."

    John Sheridan knew his stuff alright; it sure is one way to start a civil war! (sort of)

    ;)
  • by Anonymous Coward on Wednesday December 15, 2004 @08:42PM (#11098916)
    No. You're wrong.

    A video player, say, should be completely immune to bad input. It should not be possible to craft an input file that causes my vide player to delete files or anything like that.

    There is a very limited class of data (scripts, executables) that need to be "dangerous". Viewing a jpeg, even a jpeg hand-crafted by Dr. Evil, should never have the ability to do anything bad [well, OK, seeing the goatse guy is abd, but you know what I mean].
  • by Gherald ( 682277 ) on Wednesday December 15, 2004 @08:48PM (#11098962) Journal
    Not wanting to fail a class hardly qualifies as being "obsessed with grades."
  • by lew3004 ( 577895 ) on Wednesday December 15, 2004 @08:50PM (#11098987)
    I teach about 90% of the training courses for both my company and suppliers on our customer's requirements, which leads to a 'final exam' after 4 weeks. Sure, there are homework assignments and little quizzes I give within that period but none of them count towards a final passing grade. They're more like a progress report for each of the 'students' to tell them how well they are absorbing the information I provide. At the end of the course there is a final exam, which is pass / fail (70% is passing). After reviewing the stats I find that I have a 50% or higher failure rate I look at myself. I should; I wrote it...I taught it and I tested others on it. It hasn't happened yet but if it ever does, I'd look at myself first before pointing fingers at people.
  • by Anonymous Coward on Wednesday December 15, 2004 @08:58PM (#11099063)
    I teach adult education tech classes. If everyone fails my class, I have failed. (Failing due to lack of attendence being the exception)

    If I cannot get a majority of my students to understand the topics enough to pass my grading criteria, then I have somehow failed to properly instruct them. As an employee of the school, the school has also failed them (I am an agent of the school).

    What is the point of taking a class which has a failure rate higher than, say, 50%? Unless this is a live or die case, such as SEAL training, this is completely absurd.

    As far as the students being smart enough to take the class... that is why most classes have prerequisites. If each of these students meets all prerequisites, and participates fully and honestly in the class, the failure rate should not be as high as this one appears (90%-ish).

    Instructors MUST be held accountable for being successful teachers. If the student does not learn, despite real effort, then the fault lies with the person who had the knowledge, but failed to pass it on.
  • Re:Good idea? (Score:5, Insightful)

    by idontgno ( 624372 ) on Wednesday December 15, 2004 @08:59PM (#11099069) Journal
    I know more about C, computer internals, and security than most professionals now, so I'm not too sad :)

    You also know more about IT management, unrealistic goals, undeserved punishment, and PHBs [wikipedia.org] than most professionals now. I don't know whether to rejoice in your hardwon jumpstart on corporate wisdom or mourn the inevitable early onset of cynicism.

  • by jdray ( 645332 ) * on Wednesday December 15, 2004 @09:16PM (#11099189) Homepage Journal
    Right. Forgot that part.

    1) Make wildly overstated demands.
    2) Watch 1/3 of students abandon class.
    3) Hold class
    4) Back off on demands and grade fairly.

    (Sorry, this is academia. No profit involved.)
  • by Anonymous Coward on Wednesday December 15, 2004 @10:11PM (#11099653)


    His qmail MTA is technologically simple, secure, stable, and generally brilliant, as are his related software packages.


    Have you ever actually worked with qmail? Its rubbish. I administered a qmail system for two years with 60,000 users. Its a pile of absolute rubbish.

    #1 DJB doesn't believe there are any bugs in his code. Technically, they may not be. Operationally, however, there are HUGE holes in his code.

    #2 qmail accepts all mail first, THEN generates bounce messages internally. What this means is that when someone spams your server from wruiohwrui@yahoo.com to nonexistentaddress@yourserver.com, qmail will say "Yes! Please rape me!" and accept the message. It will then generate the bounce message and spend the next 5 days trying to deliver it to wruiohwrui@yahoo.com.

    #3 the qmail queue processes choke up on any amount of moderate to high load, and will use 99% of CPU scanning the queue and not actually getting any work done.

    #4 DJB arrogantly states that all servers should be running in GMT time because that makes more sense when trying to figure out logfiles. Hello?! ALL MY USERS ARE IN JAPAN. They don't care about the rest of the world.

    #5 The log files are barely readable. It is almost impossible to actually track what happened to a particular delivery.

    #6 Want spam/virus scanning? Forget it! You'll have to patch the code!

    #7 Want LDAP support? Forget it! You need to patch it!

    #8 Want to fix any problem operationally with qmail? FORGET IT! IT NEEDS TO BE PATCHED!

    Sorry, I have a lot of pent up hatred for DJB and qmail. Anyone who says he is a good developer needs to actually USE his software in a real environment, in the real world, and they will quickly come to the opinion that

    a) DJB is mostly right in his opinions, philosophically

    b) DJB is completely ignorant of the realities of running a business.

    I have to post this as an anon coward because I'm frightened DJB will slap a lawsuit on me for libel or some such.
  • by Curtman ( 556920 ) on Wednesday December 15, 2004 @10:17PM (#11099695)
    I've watched a calculus prof reduce many female students to tears...

    And you have never seen a female use tears to play on someones emotions and get their own way?

    I was once naiive like you.
  • Re:Good idea? (Score:2, Insightful)

    by name773 ( 696972 ) on Wednesday December 15, 2004 @11:42PM (#11100360)
    at first i read that as: the inevitability of early onset cynicism... :)
  • by Anonymous Coward on Wednesday December 15, 2004 @11:56PM (#11100449)
    3. 60% of your grade: discover 10 new security holes in deployed UNIX software.

    If I was there, I'd have immediately walked straight to my dean's office and dropped the class.

    Then I'd have put in a request to audit the class informally ;)
  • by Anonymous Coward on Wednesday December 15, 2004 @11:57PM (#11100456)
    It's smaller, simpler, and does less, yes. But that's why qmail is a better designed piece of software. sendmail is not good design. sendmail relies on one huge setuid binary, while qmail (and other new MTAs like postfix) uses several binaries, only one of them being setuid. If you look through DJB's lecture notes, you'll see why it is so hard to keep a setuid binary secure. Sendmail has been approaching security over the years, but due to its poor design, there will probably always be exploits lurking, especially since kernel changes could even open up new exploits.

    So sure, sendmail does more than qmail. But with the right companion programs and scripts, qmail can do just as much as sendmail while maintaining its airtight security. That's what makes DJB's design so compelling.

  • How to get your A (Score:2, Insightful)

    by Smilin ( 840286 ) on Thursday December 16, 2004 @12:16AM (#11100580)
    After you've flunked for only finding 2 of your 10 security holes, take it up with the administration. Explain to them that you discovered your professor tricked you and there aren't 8 additional security holes. When the professor says there are, simply say, "Yeah? Let's see them."

    At least if you flunk, you get to watch the monkey dig through code for the next six months to avoid losing his job.

    I bet the math professors don't pull that crap with the next ten prime numbers.
  • by Russ Nelson ( 33911 ) <slashdot@russnelson.com> on Thursday December 16, 2004 @12:41AM (#11100732) Homepage
    Have you ever actually worked with qmail?

    Yes. It's not rubbish. Rediffmail is using it on their mail service and they have 25,000,000 users.

    Operationally, however, there are HUGE holes in his code.

    Your bullet points are numbered, but this one doesn't deserve a number, since it simply says that you have a non-zero number of bullet points.

    #2 qmail accepts all mail first, THEN generates bounce messages internally.

    Yes, it does. Why tell remote attackers which email addresses are valid and which are not? You're just inviting dictionary attacks. Qmail users never complain about dictionary attacks because they're never subjected to them.

    #3 the qmail queue processes choke up on any amount of moderate to high load,

    This is the silly qmail syndrome. You can either provision more servers or apply a patch.

    #4 DJB arrogantly states that all servers should be running in GMT time because that makes more sense when trying to figure out logfiles. Hello?! ALL MY USERS ARE IN JAPAN. They don't care about the rest of the world.

    And you call djb arrogant?

    #5 The log files are barely readable. It is almost impossible to actually track what happened to a particular delivery.

    Obviously you never discovered qmailanalog.

    #6 Want spam/virus scanning? Forget it! You'll have to patch the code!

    Well, this one is simply wrong. There are any number of qmail-queue replacements which don't require any patching.

    #7 Want LDAP support? Forget it! You need to patch it!

    Well, qmail-ldap certainly patches a whole hell of a lot of code, however, it also does boat-loads more than simply supply an ldap interface. Contrary to what you say, I managed to write an LDAP interface for a customer without having to patch qmail. LDAP, on the other hand, is generally a piece of crap, but that's another topic.

    #8 Want to fix any problem operationally with qmail? FORGET IT! IT NEEDS TO BE PATCHED!

    How else do you fix software? When you were a child did you walk to school uphill both ways?

    Sorry, I have a lot of pent up hatred for DJB and qmail. Anyone who says he is a good developer needs to actually USE his software in a real environment, in the real world,

    I have, and qmail works just fine for me and my customers.
  • by raju1kabir ( 251972 ) on Thursday December 16, 2004 @01:11AM (#11100897) Homepage
    I would hardly consider the following a remote exploit:

    Somebody emails you a file

    You, apparently without ever looking at it, run that file through something like jpeg2avi or nasm

    It is not outside the realm of possibility that, for instance, a web server would use various programs to automatically process uploaded images.

  • Re:Good idea? (Score:5, Insightful)

    by geekoid ( 135745 ) <dadinportland@yah o o .com> on Thursday December 16, 2004 @02:57AM (#11101538) Homepage Journal
    you given an undoiable assignment, thats the problem.
    Welcome to astronomy 101, 60% of your grade will depend on finding 10 new planets in our solar system

    "and security than most professionals now,"

    I have my doubts.
  • by TheLink ( 130905 ) on Thursday December 16, 2004 @04:22AM (#11101899) Journal
    Forget CPAN, have you seen PHP Nuke?

    My personal experience with reporting PHP Nuke bugs is the author just doesn't want to fix them (he appears to expect fixes to come with reports ) and grumbles at you, so I stopped bothering. Why should I fix PHP Nuke? Judging from the code I'd use some other software - I was just checking for other people to see if PHP Nuke was fit for use. My verdict was "not fit for use".

    If you can't find anymore in PHP Nuke, just look for other PHP software that requires "track vars" and other insecure options.

    The students who fail shouldn't have taken the class at all - if they are checking software that is already likely to have been audited, they obviously lack the necessary way of thinking, and that sort of thing is not DJB's fault.
  • by xecl ( 820653 ) <.moc.liamg. .ta. .streboram.> on Thursday December 16, 2004 @04:40AM (#11101971)
    I consider windows software to be any software that runs on windows. I consider *nix software to be any software that runs on *nix. Saying the title is misleading is just being a bit defensive and trying to put a good spin on the story.
  • by multipartmixed ( 163409 ) on Thursday December 16, 2004 @05:25AM (#11102117) Homepage
    > Why the hell is *anyone* still using strcat in distributed software, for instance?

    Blanket statements like this (and like "Goto is evil") do nothing to help improve the quality of software as we know it. strcat() is not evil. Using strcat on uncontrolled/unmonitored input on buffers whose memory allocation we are unsure of IS.

    I have actually seen code like this in real production software:

    char *xyz(const char *a, const char *b)
    {
    char *s;

    s = malloc(strlen(a) + strlen(b) + 1);
    strncpy(s, a, strlen(a));
    strncat(s, b, strlen(b));

    return s;
    }

    Not only is this patently wasteful -- the strn* functions unnecessarily checking bounds AND the extra strlen() calls [depending on optimization] -- but it generates buggy code! For the string to be valid, s[strlen(a) + strlen(b)] must "just happen" to be zero.

    ACK!

    That error is caused by juvenile programmers thinking that "strcat is evil", which in turn suggests that "strncat is good".

    This code is correct, AND cheaper;

    char *xyz(const char *a, const char *b)
    {
    char *s;

    if (!(s = malloc(strlen(a) + strlen(b) + 1))
    return NULL;

    strnpy(s, a);
    strcat(s, b);

    return s;
    }

    of course, being the huge Apache Runtime fan that I am, I would write something like this myself in most "real" cases:

    char *xyz(apr_pool_t *pool, const char *a, const char *b)
    {
    return apr_pstrcat(pool, a, b, NULL);
    }

  • by Anonymous Coward on Thursday December 16, 2004 @06:58AM (#11102395)
    Hold on there Cowboy.

    Have you ever taught a class? I taught university level Physics (as a professor, not as a TA) and I can tell you that there are many people who took my Physics for non-Science/Math/Engineering/Comp Sci majors course who got into the class not knowing what Physics was, upon my explaining it to them and offering drop slips, signed in advance, available outside my office, most stayed in the class...

    Then one day, a week before the final two of these people came to my office (seperately) one to complain that I had said there was no Math used in the class and had assigned this problem (reworded for brevity) if a thunderstorm is travelling at 15 MPH how long will it take to get to a city 300 miles away? (actually this was a small part of a problem on meteorology) . I calmly explained to this individual that as we were in a University, this did not count as math.

    The second individual was a young lady not wearing much, I had never seen her before that day, and she surely was wearing no underwear I could detect from my seated position behind my desk... She proceeded to tell me that she needed an A in the course and she would be happy to do anything I liked of a personal and private nature with me that weekend, at my home, to get that A. I suggested she study (really!) and asked why she had never been in class.

    So, before you start handing out blanket statements, remember that you are assuming a lot.

    Oh, that was out of a class of 64, and the class average was a 72% (we call that a C- where I come from, low passing grade), these were mostly seniors about to graduate.
  • by jonadab ( 583620 ) on Thursday December 16, 2004 @08:19AM (#11102666) Homepage Journal
    > Blanket statements like this (and like "Goto is evil") do nothing to help
    > improve the quality of software as we know it. strcat() is not evil. Using
    > strcat on uncontrolled/unmonitored input on buffers whose memory allocation
    > we are unsure of IS.

    No. The problem here (either way) is not what *functions* the programmer is
    using; the problem is what *language* the programmer is using. C was great
    in the 1970s, when computers filled whole rooms and needed every instruction
    per second that could be squeezed out of them. At the time, more robust
    languages (such as lisp) were just too darned slow, and if a feature required
    the computer to do a little too much (or waste too much storage), it just
    wasn't implemented. Word wrap was an optional _extra_ in word processing
    software, because it required the whole line to be (gasp) recopied while the
    user waited! C was great because it allowed programs that would otherwise
    have to be written in assembly language for efficiency reasons to be more
    portable -- and Unix directly benefitted from this, outstripping and leaving
    in the dust a number of otherwise better systems (TOPS-20 for example) that
    were unfortunately tied to specific hardware. Languages that allocated string
    space dynamically and did other things to coddle the programmer, such as
    lisp or BASIC, were only good for specific tasks where performance was less
    critical. The real VHLLs didn't even exist.

    Today, there are still things that need to be written in a low-level language
    such as C. Device drivers are an excellent example. The performance and the
    efficiency really matter there. The kernel's scheduler is another example.
    But these things should be written by experienced programmers who know the
    heck what they're doing. (Yeah, I know, it doesn't always work out that way,
    and even experienced programmers still make mistakes...) But we still have
    every noob and his kid brother trying to write high-level applications in C
    for no good reason, and *this* is why we still have buffer overruns -- it's
    because we still have fixed-size buffers.

    Will better languages eliminate all bugs? No. But they will, eventually,
    as they are gradually adopted, eliminate certain whole *classes* of bugs
    that have been plagueing us for 30+ years, buffer overruns being one of the
    most obvious. Pointer errors are another thing you don't have in VHLLs,
    because you don't have unsafe pointers or pointer arithmetic. (You can still
    make the mistake of treating a return value that may be undef as if it's
    definitely a reference, but the bug that results is easier to track down,
    because instead of happily writing bits into an unrelated piece of storage
    and possibly smashing something that will haunt you six hundred lines of
    code later it immediately complains that you can't use that value as a
    reference.) You don't get a fencepost error on the max value of an array
    index when you've replaced your legacy C-style for loops with foreach loops
    that don't use indices, for example. (Legacy for loops have been deprecated
    in Perl for virtually ever now, and in Perl6 they are going away completely;
    for will always mean foreach and will always operate on a list. The other
    VHLLs that haven't done this already will eventually.)

    Your correct, cheaper code is still horribly needlessly long for what it
    accomplishes: with the brace style fixed for terseness and the superfluous
    blank lines removed, it still comes to seven lines (lines!), just to
    concatenate a couple of strings, which shouldn't take seven characters.
    And yes, I know it's a contrived example, but it's still illustrative.
  • Re:Good idea? (Score:4, Insightful)

    by Civil_Disobedient ( 261825 ) on Thursday December 16, 2004 @08:48AM (#11102772)
    We're not blaming DJB for our failure.

    Well, then perhaps you do deserve to fail. He's the one doing the grading, and he's the person responsible for giving you an assignment where success is based as much on luck as on technical prowess.

    He tells you what he means and sticks with it. That's something to respect.

    This is called begging the question. Why, exactly, is this something to respect?

    "Hey, I'm going to kill you if you don't give me your money."

    "Well, I don't have any money."

    "Sorry, gotta kill you."

    "That's cool. I totally respect that."

    Perhaps if you didn't idolize him as much, you might realize the practical consequences of a failing grade for your GPA, and potential employment future. But at least you got to learn from a kick-ass prof, right? Or rather, an ass-kicking prof.
  • by jesser ( 77961 ) on Thursday December 16, 2004 @09:10AM (#11102895) Homepage Journal
    Dynamically allocating memory doesn't always solve buffer overflows. For example, if the int32 passed to malloc can be overflowed, then it is likely that the buffer can be overflowed.
  • Many Eyes (Score:2, Insightful)

    by ninthwave ( 150430 ) <slashdot@ninthwave.us> on Thursday December 16, 2004 @09:34AM (#11103019) Homepage
    I think this is a very positive use of the many eyes proposition. And this helps *NIX software by having many eyes scanning code. These holes are real, though in real world terms probably not easily exploitable with common usage, but fixed now it prevents and extension of these applications in the future suffering from these weaknesses.

    I don't understand why this is a bad thing. It is the community watching itself and in this case it is the *NIX community watching itself.

    I say we need more courses like this.

  • Re:Good idea? (Score:3, Insightful)

    by nordicfrost ( 118437 ) * on Thursday December 16, 2004 @10:12AM (#11103332)
    We're not blaming DJB for our failure

    I have to say, it sounds like a stupid requirement. I study social scinences, so an equvalent for me would like; "Come up with a ten point working plan for peace in the middle east"
  • by ca1v1n ( 135902 ) <.snook. .at. .guanotronic.com.> on Thursday December 16, 2004 @04:06PM (#11108472)
    Unless you're taking classes from the University of Phoenix Online, you're not buying a product. You're essentially receiving a gift, and paying enough money that they can be sure you're going to take it seriously, so their money wouldn't be better spent on someone else. Tuition is only a big deal for them because it is the most easily controlled source of marginal revenue. Anyway, I did some checking. You're right, 5-50 was wrong. It's more like 2-20. The 2 is if you're an English major at a poorly endowed private college. Most of the slashdot crowd is in the middle or on the 20 end, especially if they're paying in-state tuition at a research institution.

"If anything can go wrong, it will." -- Edsel Murphy

Working...