RFC 3514: New Bit Defined for IPv4 Headers 270
RFC 3514
was just released, with a new bit definition for use in the headers of IP packets. Because there are important security implications, anyone coding internet services (on either the client or server end) should probably take a look.
A couple of mirrors (Score:5, Informative)
Mirror 2 [shat.net]
To lighten the load.
Re:Nasty! (Score:5, Informative)
No link necessary. Matt's Script archive is well-known among Perl programmers as one of the densest collections of hole-ridden crappy code on the net.
There's even a project [sourceforge.net] to write secure, well-written clones of his scripts so the poor bastards stuck with his can drop-in something that won't allow remote exploits on their machine. :-)
April 1st RFCs are always the most important... (Score:5, Informative)
Potentially devastating Y10k problem [rfc-editor.org]
Lifesaving method to temporarily reroute ip in cause of equipment failure [rfc-editor.org]
Protocol to guarantee software engineer productivity and efficiency [rfc-editor.org]
Addressing ipv6 with incredible bandwidth savings [rfc-editor.org]
Planning ahead to Star Trek technology with current protocols and infrastructure [rfc-editor.org]
I don't even know what this one is about... [rfc-editor.org]
And many, many more. Any self-respecting network engineer should be especially familiar with all April 1st RFCs, in my opinion...
Re:ROFL (Score:3, Informative)
Actually, "today" (1 April) is also the 13th anniversary of RFC1149.
Check out its majesty: ftp://ftp.rfc-editor.org/in-notes/rfc1149.txt [rfc-editor.org]
People were so much more creative back in 1990. ;-)
Re:Why computers crash, by Dr. Seuss (Score:4, Informative)
http://people.cornell.edu/pages/elz1/clocktower/D
The whole thing was created by Gene Ziegler. He gives a pretty good history of the poem as well as the full thing, which most people don't post.
Previous April 1 RFCs (Score:4, Informative)
Back to the RFCs: the list above doesn't seem exhaustive. I found some more: 12 networking truths RFC [ibiblio.org], telnet randomly lose option [ibiblio.org] and Hyper Text Coffee Pot Control Protocol [ibiblio.org]
Linux 2.4.20 patch (Score:2, Informative)
Enjoy! :-)
Full text, ftp server slashdotted (Score:3, Informative)
Request for Comments: 3514 AT&T Labs Research
Category: Informational 1 April 2003
The Security Flag in the IPv4 Header
Status of this Memo
This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.
Copyright Notice
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract
Firewalls, packet filters, intrusion detection systems, and the like often have difficulty distinguishing between packets that have malicious intent and those that are merely unusual. We define a security flag in the IPv4 header as a means of distinguishing the two cases.
1. Introduction
Firewalls CBR03 , packet filters, intrusion detection systems, and the like often have difficulty distinguishing between packets that have malicious intent and those that are merely unusual. The problem is that making such determinations is hard. To solve this problem, we define a security flag, known as the "evil" bit, in the IPv4 RFC791 header. Benign packets have this bit set to 0; those that are used for an attack will have the bit set to 1.
1.1. Terminology
The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in RFC2119
2. Syntax
The high-order bit of the IP fragment offset field is the only unused bit in the IP header. Accordingly, the selection of the bit position is not left to IANA.
The bit field is laid out as follows:
0
+-+
|E|
+-+
Currently-assigned values are defined as follows:
0x0 If the bit is set to 0, the packet has no evil intent. Hosts, network elements, etc., SHOULD assume that the packet is harmless, and SHOULD NOT take any defensive measures. (We note
that this part of the spec is already implemented by many common desktop operating systems.)
0x1 If the bit is set to 1, the packet has evil intent. Secure systems SHOULD try to defend themselves against such packets. Insecure systems MAY chose to crash, be penetrated, etc.
3. Setting the Evil Bit
There are a number of ways in which the evil bit may be set. Attack applications may use a suitable API to request that it be set. Systems that do not have other mechanisms MUST provide such an API; attack programs MUST use it.
Multi-level insecure operating systems may have special levels for attack programs; the evil bit MUST be set by default on packets emanating from programs running at such levels. However, the system MAY provide an API to allow it to be cleared for non-malicious activity by users who normally engage in attack behavior.
Fragments that by themselves are dangerous MUST have the evil bit set. If a packet with the evil bit set is fragmented by an intermediate router and the fragments themselves are not dangerous, the evil bit MUST be cleared in the fragments, and MUST be turned back on in the reassembled packet.
Intermediate systems are sometimes used to launder attack connections. Packets to such systems that are intended to be relayed to a target SHOULD have the evil bit set.
Some applications hand-craft their own packets. If these packets are part of an attack, the application MUST set the evil bit by itself.
In networks protected by firewalls, it is axiomatic that all attackers are on the outside of the firewall. Therefore, hosts inside the firewall MUST NOT set the evil bit on any packets.
Because NAT RFC3022 boxes modify packets, they SHOULD set the evil bit on such packets. "Transparent" http and email proxies SHOULD set the evil bit on their reply packets to the innocent client host.
Some hosts scan other hosts in a fashion that can alert intrusion detection systems. If the scanning is part of a be