본문으로 건너뛰기

© 2026 Molayo

Phoronix헤드라인2026. 05. 20. 01:35

Linux 7.2, 보안 프로그램의 속임수 방지를 위한 "OPENAT2_REGULAR" 도입 예정

요약

Linux 7.2 커널에 보안 프로그램의 속임수를 방지하기 위한 'OPENAT2_REGULAR' 플래그가 도입될 예정입니다. 이 플래그는 지정된 경로가 일반 파일(regular file)인 경우에만 파일을 열도록 제한하여, 장치 노드나 FIFO 등을 이용한 보안 우회 및 블로킹 I/O 문제를 방지합니다.

핵심 포인트

  • OPENAT2_REGULAR 플래그는 경로가 일반 파일일 때만 접근을 허용하여 보안 프로그램의 속임수 방지를 지원함
  • 장치 노드(/dev/null, /dev/zero 등)를 일반 파일로 오인하여 발생하는 블로킹 I/O 및 무한 데이터 읽기 문제를 예방함
  • 일반 파일이 아닌 경우 -EFTYPE 에러 코드를 반환하며, O_DIRECTORY와 결합 시 -EINVAL을 반환함
  • Linux 7.2 머지 윈도우(6월 중순 예상)에 포함될 예정임

Linux 7.2, 보안 프로그램의 속임수 방지를 위한 "OPENAT2_REGULAR" 도입 예정

openat2 시스템 호출 (system call)을 위한 OPENAT2_REGULAR 플래그.

"OPENAT2_REGULAR"가 그리 흥미롭게 들리지 않을 수도 있지만, 이 새로운 플래그는 보안 프로그램이 속는 것을 방지하는 데 중요한 역할을 합니다. 이 플래그가 전달되면, 지정된 경로가 일반 파일 (regular file)인 경우에만 파일을 열며, 특수 장치 파일 (special device file)이나 파일 시스템 상의 다른 비관습적인 파일은 열지 않습니다.

지난주 "vfs-7.2.openat.regular" Git 브랜치에 대기열에 추가된 패치(patch)는 다음과 같이 설명합니다:

"이 플래그는 해당 경로가 일반 파일일 경우에만 열어야 함을 나타냅니다. 이는 일반 파일을 다루고 있다고 생각하면서 특수한 의미론 (semantics)을 가진 장치 노드 (device nodes)를 여는 속임수에 빠지는 것을 피하고자 하는 보안 프로그램 작성에 유용합니다. 이는 uapi-group에서 요청한 기능입니다.

경로가 일반 파일을 참조하지 않을 경우, 이전에 도입된 EFTYPE 에러 코드가 반환됩니다. 예를 들어, 플래그 파라미터에 OPENAT2_REGULAR를 포함하여 /dev/null 경로에 대해 openat2를 호출하면 -EFTYPE를 반환합니다.

O_CREAT와 함께 사용될 경우, 일반 파일이 생성되거나, 경로가 이미 존재한다면 일반 파일인 경우에만 열립니다. 그렇지 않으면 -EFTYPE가 반환됩니다.

OPENAT2_REGULAR가 O_DIRECTORY와 결합되면, 디렉토리이면서 동시에 일반 파일인 경로를 여는 것은 논리적으로 맞지 않으므로 -EINVAL이 반환됩니다."

UAPI Group은 원하는 경우에만 일반 파일을 열 수 있도록 하는 이러한 커널 기능에 대한 요청에서 다음과 같이 상세 사례를 기술했습니다:

"사용 사례 (Use-Case): 이는 일반 파일을 다루고 있다고 생각하면서 특수한 의미론을 가진 장치 노드를 여는 속임수에 빠지는 것을 피하고자 하는 보안 프로그램 작성에 매우 유용할 것입니다. 이는 많은 장치 노드(또는 FIFO까지도)가 기본적으로 블로킹 I/O (blocking I/O, 또는 심지어 블로킹 open()까지!)를 수반하기 때문에 특히 관련이 깊으며, 이는 "빠른" 디스크 I/O를 기반으로 하는 일반 파일에서 기대하는 동작이 아닙니다. 읽어야 할 데이터가 무한할 것이라고 예상하지 못한 채 file://dev/zero를 가리키게 된 단순한 웹 브라우저의 구현을 생각해 보십시오."

Linux에서 파일을 열 때 사용할 이러한 플래그 (flag)가 추가되기까지 2026년이 되어서야 했다는 점은 꽤 논리적이면서도 약간은 놀라운 일입니다.

앞으로 몇 주 동안 발생하는 문제나 우려 사항이 없다면, 다른 VFS (Virtual File System) 변경 사항들과 함께 이 기능이 "7.2" 브랜치에 포함됨에 따라, OPENAT2_REGULAR가 6월 중순 Linux 7.2 머지 윈도우 (merge window)에 제출될 것으로 예상됩니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Phoronix의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0