20091119

A Non-Technical Rant

First, if you're looking for a post that is exemplary in its technical merit, this isn't it.

Second, my apologies for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 long silence. I've been working on exciting stuff, but that's no excuse for posting nothing for this long of a period.

Now for our regularly-scheduled complaint...

I received some news today that was very disturbing. The thing in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 news that bocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365red me was not that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 person who sent cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 news disagreed with me - I'm not bocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365red by that. I tend to embrace being a bit different.

But what bocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365red me was a statement in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message. The end of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message said that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 team I was working with needed to spend more time researching ways to make defensive coding completely invisible to developers. The people who made this statement were way smarter than me, so I must be completely in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dark here.

Defensive coding should be automatic, yes. Invisible? Never. Similarly to shielding your children from every bacteria and virus that might come cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir way, only to find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y spend cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 remainder of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir life sick, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se people think that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way to have more defensive code is to make it totally invisible to developers. Developers should be trained less on defensive programming so that when new attack vectors come out, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only people who can rescue cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m are security professionals. (Security professionals - what's our track record so far when we do things our way?)

So cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 gist of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 statement was this - developers are too stupid to write defensive code. Functional code is no problem, but defensive code is serious business that we need to leave to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security professionals.

You trust developers to handle your income tax returns, but don't trust cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to use prepared statements on purpose?

You trust developers to navigate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 space shuttle, but doing some proper input validation is too complex for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m?

You trust developers with sensitive health care information, but think that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're too dull to properly obfuscate it when logging?

See, this is exactly what cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem is right now. We security people think that everybody else is too stupid to get it, and that we have to rescue cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. We can't possibly hold people accountable for gaining new knowledge? Look - cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security vulnerabilities we find today aren't new. People had to program defensively long before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was a security industry. But now that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's a security industry, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 best thing we can do is make writing good code transparent? Pshaw! If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 coders aren't doing things right, raise your standards. If you are or know a programmer, you know cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way to motivate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m - tell cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m it can't be done. That will show you who cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 real programmers are. (But I'm still convinced that a decent blacklist simply cannot be written.)

A previous group I worked with used a set of tools I had written as a benchmark for hiring people. This isn't to say that what I wrote was rocket science - it just took some time, reading, and mostly tinkering. Nobody we hired was able to crack cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 nut in a reasonable amount of time - but we weren't looking for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 people who could figure it out in an hour - cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 people we hired were cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ones who tried - who weren't scared of a challenge - who were convinced it could be done, and who were determined to find a way to do it.

There do exist people with that mindset. The real programmers are those people. And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're not so stupid that you have to make everything invisible to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. They're smart enough that once you make cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 need clear to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y will do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right thing automatically - because it's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 right thing. They're cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ones who will program defensively when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re aren't automated tools around making cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir code defensive without cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m knowing it.

EORant.

0 comments: