
tcp_challenge_ack_limit을 무작위화하여 사이드 채널 공격(CVE-2016-5696)을 방지하는 데몬
chackd는 매초마다 커널 파라미터 tcp_challenge_ack_limit을 무작위화하여 사이드 채널 공격을 방지하는 데몬입니다.
최근 발표된 사이드 채널 공격 [1]이 커뮤니티의 큰 주목을 받았습니다. 많은 서버나 스마트폰 장치의 경우 이 공격은 IPv4 연결에 위험한 것으로 간주됩니다. 커널이 다음 버전에서 이 문제를 수정할 것임은 의심의 여지가 없습니다. 그러나 일부 관리자는 특정 이유나 단순한 귀찮음 때문에 커널을 업데이트하지 않을 수 있습니다.
파라미터를 매우 높은 값 [2]으로 조정하면 잘 작동합니다. 그러나 서버 애플리케이션의 경우 불필요한 트래픽 양이 발생할 수 있습니다. 이를 방지하기 위해 chackd 프로그램을 작성했습니다. 이 프로그램은 [1]에 제시된 솔루션을 목표로 파라미터를 설정할 수 있습니다.
chack 데몬은 이 작업을 매우 잘 수행하며 단순하게 유지합니다. 제 이전 개념은 로드 가능한 커널 모듈을 찾는 것이었지만, proc vfs라는 사용자 공간과 커널 공간 사이의 강력한 인터페이스가 있기 때문에 이를 폐기했습니다. proc 파일을 사용하면 간단한 데몬으로 작업을 수행할 수 있습니다.
이것은 challenge_ack_limit 공격으로부터 보호하고자 하지만 커널을 업데이트할 수 없는 관리자에게 유용한 이점을 제공하는 저의 첫 번째 오픈 소스 프로젝트입니다. 컴파일하여 서버에서 실행하기만 하면 됩니다.
이 프로젝트를 "커뮤니티 표준"으로 만들기 위해 커뮤니티의 도움이 필요합니다.
src 파일 내의 TODO 항목을 참고하세요. 원하는 대로 브랜치를 만들어 주세요. 이 프로젝트에서 많은 것을 배우고 싶습니다.
Makefile - Makefile에 대한 바람은 설치, 커널 릴리스 쿼리 등을 포함한 일종의 표준으로 만드는 것입니다.
start_daemon - 데몬을 충돌시킬 수 있는 코드 부분은 모두 수정되어야 합니다.
stop_daemon - 표준에 맞지 않는 코드 부분은 모두 수정되어야 합니다.
init_daemon - 데몬을 충돌시킬 수 있는 코드 부분은 모두 수정되어야 합니다.
main - 주요 파라미터는 간단한 정수로 제공되도록 의도했으며 현재 잘 작동합니다. 그러나 더 나은 처리 방법이 있을 수도 있습니다?
1초 간격의 "sysctl net.ipv4.tcp_challenge_ack_limit"
net.ipv4.tcp_challenge_ack_limit = 222
net.ipv4.tcp_challenge_ack_limit = 227
net.ipv4.tcp_challenge_ack_limit = 191
net.ipv4.tcp_challenge_ack_limit = 178
net.ipv4.tcp_challenge_ack_limit = 229
net.ipv4.tcp_challenge_ack_limit = 167
net.ipv4.tcp_challenge_ack_limit = 189
net.ipv4.tcp_challenge_ack_limit = 229
Bastian Pukallus, 이메일: [email protected]
[1] http://www.cs.ucr.edu/~zhiyunq/pub/sec16_TCP_pure_offpath.pdf
[2] https://www.mail-archive.com/[email protected]/msg705042.html