새로운 Sysctl 노드를 통해 Linux 7.3에서 AF_ALG "악몽"이 더욱 제한됨
요약
Linux 커널 전문가 Eric Biggers가 보안 취약점 방지를 위해 AF_ALG 기능을 제한하는 새로운 sysctl 노드인 'af_alg_restrict' 도입을 추진합니다. 이 패치는 Linux 7.3에 포함될 예정이며, 권한에 따라 알고리즘 허용 목록을 차등 적용하여 보안성을 높입니다.
핵심 포인트
- AF_ALG의 보안 취약점 및 유지보수 어려움 해결 목적
- af_alg_restrict sysctl을 통한 기능 제한 및 비활성화 지원
- 권한 유무에 따른 알고리즘 허용 목록(allowlist) 차등 적용
- Linux 7.3 사이클에 병합될 예정
AF_ALG "악몽"이 새로운 Sysctl 노드를 통해 Linux 7.3에서 더욱 제한됨

Google의 Linux 암호화 전문가 Eric Biggers는 Linux 커널에서 AF_ALG의 기능을 기본적으로 더욱 제한하기 위해 새로운 af_alg_restrict sysctl 노드를 도입하고 있습니다. 하지만 사용자 공간 (user-space) 프로그램에서 실제로 AF_ALG에 의존하는 사용자라면, 이 sysctl을 조정하는 것이 제한 없는 접근을 허용하는 편리한 방법이 될 수 있습니다. 반대로, af_alg_restrict는 AF_ALG를 완전히 비활성화하는 데에도 사용될 수 있습니다.
Eric Biggers는 이 af_alg_restrict sysctl 옵션을 추가하는 패치에서 다음과 같이 설명합니다:
"AF_ALG는 빈번한 취약점의 원인이자 유지보수의 악몽 (maintenance nightmare)입니다. 이는 사용자 공간에 노출되어서는 안 될 훨씬 더 많은 기능을 노출하며, 특히 권한이 없는 프로세스 (unprivileged processes)에 더욱 그러합니다. 최근의 익스플로잇 (exploits)은 사용자 공간 접근에는 전혀 용도가 없는 "authencesn"과 같은 커널 내부 구현 세부 사항을 표적으로 삼았습니다.
다행히도 사용자 공간 암호화 라이브러리 (crypto libraries)가 존재하기 때문에, 실제로는 AF_ALG가 거의 사용되지 않습니다. 그리고 사용되는 경우에도 일부 기능만이 사용되는 것으로 알려져 있으며, 많은 사용자가 이미 권한 (capabilities)을 보유하고 있는 것으로 알려져 있습니다. 예를 들어 iwd는 CAP_NET_ADMIN을 필요로 하며 알려진 알고리즘 목록을 가지고 있습니다.
따라서, 보유한 권한에 따라 기본적으로 허용되는 알고리즘 세트를 제한하도록 하겠습니다.
다음과 같은 의미를 가진 sysctl /proc/sys/crypto/af_alg_restrict을 추가합니다:
0: 제한 없음 (unrestricted)
1: 제한된 기능 (limited functionality)
2: 완전히 비활성화 (completely disabled)
기본값을 1로 설정하여, 권한이 없는 프로세스에는 알고리즘 허용 목록 (allowlist)을 활성화하고, 권한이 있는 프로세스에는 약간 더 긴 허용 목록을 적용합니다.
이 목록은 향후 수정될 수 있음을 유의하십시오. 하지만 iwd 및 bluez와 같은 일반적인 사용 사례는 이미 고려되었습니다. 저는 iwd가 기본값 1에서도 여전히 작동함을 테스트했습니다."
따라서 적어도 Intel의 IWD 무선 데몬 (wireless daemon)은 당분간은 기본 설정 상태에서도 여전히 작동할 것입니다. 이들이 AF_ALG를 기본적으로 비활성화하는 설정으로 언제 전환할지, 그리고 커널 코드베이스에서 최종적으로 언제 제거될지는 지켜봐야 할 것입니다.
이 af_alg_restrict sysctl 패치는 현재 "cryptodev" Git 코드에 포함되어 있으며, 이에 따라 올해 말 Linux 7.3 사이클에 병합될 것으로 예상됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기