Thursday, May 26, 2005

Marcus Ranum on Proxies, Deep Packet Inspection

I asked security guru Marcus Ranum if he would mind commenting on using proxies as security devices. I will publish his thoughts in my new book Extrusion Detection, but he's allowed me to print those comments here and now. I find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m very interesting.

"The original idea behind proxies was to have something that interposed itself between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 networks and acted as a single place to 'get it right' when it came to security. FTP-gw was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first proxy I wrote, so I dutifully started reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RFC for FTP and gave up pretty quickly in horror. Reading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RFC, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was all kinds of kruft in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re that I didn't want outsiders being able to run against my FTP server. So cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first generation proxies were not simply an intermediary that did a 'sanity check' against application protocols, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y deliberately limited cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 application protocols to a command subset that I felt was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 minimum that could be done securely and still have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protocol work.

For example, while writing FTP-gw I realized that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PORT command would cause a blind connection from TCP port 20 to anyplace, over which data would be transferred. Port 20 was in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 privileged range and I was able to predict an 'rshd' problem so I quietly emailed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 guys at Berkeley and got cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to put a check in ruserok() to forestall cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attack. I also added code to make sure that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client couldn't ask cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 server to send data to any host ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than itself, forestalling FTP PORT scanning. So I 'invented' 'FTP bounce' attacks in 1990 by preventing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m with my proxy.

There are several ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r examples of where, in implementing proxies, I was horrified to see gaping holes in commonly-used application protocols, and was able to get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m fixed before cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y were used against innocent victims. Since cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proxies implemented cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bare minimum command set to allow an application protocol to work, a lot of attacks simply failed against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proxy because it only knew how to do a subset of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protocol. When cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hackers started searching for vulnerabilities to exploit in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 internet applications suite, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y often found holes in seldom-used commands or in poorly tested features of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RFC-compliant servers. But often, when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y tried cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir tricks against cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proxy all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y'd get back was: 'command not recognized'.

The proxy gave a single, controllable, point where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se fixes could be installed.

The problem with proxies is that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y took time and effort and a security-conscious analyst to write cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m and design cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. And sometimes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proxy ran up against a design flaw in an application
protocol where it couldn't really make any improvement to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 protocol. The first reaction of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proxy firewall vendors was to tell cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir customers, 'well, protocol XYZ is so badly broken that
you just can't rely on it across an untrusted network.' This was, actually, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correct way (from a security standpoint) to solve cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem, but it didn't work.

Around cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet was becoming a new media phenomenon, a bunch of firewalls came on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 market that were basically smart packet filters that did a little bit of layer-7 analysis. These 'stateful firewalls' were very attractive to end users because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y didn't even TRY to 'understand' cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 application protocols going across cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, except for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 minimum amount necessary to get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data through.

For example, one popular firewall from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 early 90's managed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 FTP PORT transaction by looking for a packet from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 client with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PORT command in it, parsing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 PORT number and address out of it, and opening that port in its rulesbase. Fast? Certainly. Transparent to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end user? Totally. Secure? Hardly. But cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se 'stateful firewalls' sold very well because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y offered cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 promise of high performance, low end-user impact, and enough security that an IT manager could
say cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y'd tried.

There are a few vendors who have continued to sell proxy firewalls throughout cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 early evolution of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet, but most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proxy firewalls are long gone. Basically, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 customers
didn't want security; cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y wanted convenience and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appearance of having tried. What's ironic is that a lot of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attacks that are bedeviling networks today would never have gotten through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 early proxy firewalls. But, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end user community chose convenience over security, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y wound up adopting a philosophy of preferring to let things go through, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n violently slamming cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 barn door after cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 horse had exited.

Proxies keep cropping up over and over, because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y are fundamentally a sound idea. Every so often someone re-invents cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 proxy firewall - as a border spam blocker, or a 'web firewall' or an 'application firewall' or 'database gateway' - etc. And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se technologies work wonderfully. Why? Because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're a single point where a security-conscious programmer can assess cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 threat represented by an application protocol, and can put error detection, attack detection, and validity checking in place.

The industry will continue to veer back and forth between favoring connectivity and favoring security depending on which fad is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ascendant. But proxies are going to be with us for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 long term, and have been steadfastly keeping networks secure as all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 newfangled buzzword technologies ('stateful packet inspection,' 'intrusion prevention,' 'deep packet inspection') come - and go."

This is a report he wrote for a client, but he's sharing it with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world. If you're looking for some cynical digital security artwork to grace your cubicle, check out Marcus' media outlet.

No comments: