2012-08-29 3 views
2

리눅스 커널 (net/ipv4/inet_fragment.c)에서 IPv4 조각 관리자에 대한 질문을하고 싶습니다. 구조체 inet_frags (include/net/inet_frag.h)에 "rnd"필드가 있는지 이해할 수 없습니다.이 필드는 분명히 난수로 채워집니다. 내 IPv4 스택이 내 패킷을 무작위로 재구성 할 것으로 기대하지 않습니다 ^^.왜 리눅스 IPv4 스택에 난수가 필요합니까?

PLZ를 도와 줄 수 있습니까? 미리 Thx. (커널 3.4.4)

답변

6

구현시 해시를 사용하여 IP 데이터 그램 조각을 저장합니다. 고정 해시 함수가있는 해시 테이블은 서비스 거부가 발생하기 쉽습니다 hash collision attack. 따라서 공격으로부터 보호하기 위해 임의의 시드를 각 해시 함수에 추가합니다.

http://www.iss.net/security_center/reference/vuln/linux-kernel-packets-dos.htm를 참조하십시오

리눅스 커널 TCP/IP 조각 재 조립의 부적절한 취급으로 인한 서비스 거부에 취약합니다. 원격 공격자는 많은 수의 해시 테이블 충돌을 일으킬 수있는 특수하게 조작 된 패킷을 보낼 수 있습니다.이 충돌은 사용 가능한 모든 CPU 리소스를 소모합니다.

+0

매우 명확한 대답에 감사드립니다. – tvuillemin

+0

추가적으로 : 난수가 시작점으로 사용됩니다. 초기 TCP 시퀀스 번호는 예를 들어 [연결 하이재킹] (http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Connection_hijacking)을 방지하기 위해 임의로 선택됩니다. –