리눅스 칠점이 특수 파일 속임수 방지 플래그 추가

2026년 05월 21일 게시됨 | 스페인어에서 번역됨

다음 리눅스 커널 버전 7.2에는 openat2 시스템 호출을 위한 OPENAT2_REGULAR 플래그가 포함됩니다. 이 기능을 통해 프로그램은 일반 파일만 열 수 있도록 보장하여, 예상치 못한 블로킹 동작과 보안 취약점을 유발할 수 있는 /dev/null이나 FIFO와 같은 특수 장치로 리디렉션되는 것을 방지할 수 있습니다.

리눅스 커널 컴파일 과정, OPENAT2_REGULAR 플래그가 녹색 코드로 강조 표시된 openat2 시스템 호출을 보여주는 프로그래머 터미널, 방패 아이콘에 의해 끊어지는 파일 리디렉션을 나타내는 상징적 사슬, 빨간색 X 표시로 차단된 경로로 표시된 악성 FIFO 파이프 및 /dev/null 장치 노드, 체크 표시가 빛나는 일반 파일 아이콘, 기술 일러스트레이션 스타일, 매트릭스 같은 코드 비가 내리는 어두운 터미널 배경, 극적인 파란색과 주황색 조명, 배경의 초정밀 회로 기판 트레이스, 포토리얼리스틱 엔지니어링 시각화

커널에서 OPENAT2_REGULAR가 작동하는 방식 🛡️

OPENAT2_REGULAR 플래그는 openat2 호출에서 필터 역할을 합니다. 활성화되면 커널은 열기를 허용하기 전에 대상 파일이 일반 파일 유형(S_IFREG)인지 확인합니다. 파일이 블록 장치, FIFO 또는 소켓인 경우 작업은 EISDIR 또는 EPERM 오류와 함께 실패합니다. 이 확인은 심볼릭 링크를 확인한 후에 이루어지며, 링크를 사용하여 특수 장치를 가리키는 공격의 통로를 차단합니다. 이 구현은 사용자 파일을 처리하는 애플리케이션을 보호하기 위해 UAPI 그룹에서 요청했습니다.

/dev/null과 장난꾸러기 FIFO에 대한 걱정은 이제 안녕 😅

지금까지 믿음직한 프로그램은 파일을 열었는데 FIFO라서 영원히 데이터를 기다리게 하거나, 더 나쁘게는 /dev/null이 아무 말 없이 모든 출력을 삼켜버리는 상황에 처할 수 있었습니다. OPENAT2_REGULAR를 사용하면 이러한 걱정은 사라집니다. 파일이 일반 파일이 아니면 커널이 거절하고 개발자는 수 시간의 디버깅 시간을 절약할 수 있습니다. 마치 디스크 입구에 필터를 설치하여 가짜가 아닌 진짜 파일만 통과시키는 것과 같습니다.