웹사이트 검색

CentOS/RHEL 7에서 하드 및 심볼릭 링크를 보호하는 방법


Linux에서 하드 링크와 소프트 링크는 매우 중요한 파일을 참조하며, 제대로 보호되지 않으면 해당 파일의 모든 취약점이 악의적인 시스템 사용자나 공격자에 의해 악용될 수 있습니다.

일반적인 취약점은 심볼릭 링크 경쟁입니다. 이는 프로그램이 안전하지 않게 파일(특히 임시 파일)을 생성하고 악의적인 시스템 사용자가 해당 파일에 대한 심볼릭(소프트) 링크를 생성할 수 있는 경우 발생하는 소프트웨어의 보안 취약점입니다.

추가 읽기: Linux에서 하드 및 심볼릭 링크를 만드는 방법

이것은 실제로 발생합니다. 프로그램은 임시 파일이 존재하는지 확인하고, 존재하지 않는 경우 파일을 생성합니다. 그러나 파일을 확인하고 생성하는 사이의 짧은 시간 동안 공격자가 파일에 대한 심볼릭 링크를 생성하여 액세스가 허용되지 않을 수 있습니다.

따라서 프로그램이 유효한 권한으로 실행되면 공격자가 생성한 것과 동일한 이름을 가진 파일을 생성하며 문자 그대로 공격자가 액세스하려는 대상(링크된) 파일을 생성합니다. 따라서 이는 공격자에게 루트 계정에서 중요한 정보를 훔치거나 시스템에서 악성 프로그램을 실행할 수 있는 경로를 제공할 수 있습니다.

따라서 이 문서에서는 CentOS/RHEL 7 배포판에서 악의적인 사용자나 해커로부터 하드 및 심볼릭 링크를 보호하는 방법을 보여 드리겠습니다.

CentOS/RHEL 7에는 아래 설명된 대로 일부 조건이 충족되는 경우에만 링크를 생성하거나 프로그램에서 따라갈 수 있도록 허용하는 중요한 보안 기능이 있습니다.

하드 링크의 경우

시스템 사용자가 링크를 생성하려면 다음 조건 중 하나를 충족해야 합니다.

  • 사용자는 자신이 소유한 파일에만 연결할 수 있습니다.
  • 사용자는 먼저 연결하려는 파일에 대한 읽기 및 쓰기 액세스 권한을 가지고 있어야 합니다.

심볼릭 링크의 경우

프로세스는 고정 비트가 있는 누구나 쓸 수 있는(다른 사용자가 쓸 수 있음) 디렉터리 외부의 링크만 따라갈 수 있습니다. 그렇지 않으면 다음 중 하나가 true여야 합니다.

  • 심볼릭 링크를 따르는 프로세스는 심볼릭 링크의 소유자입니다.
  • 디렉토리의 소유자는 심볼릭 링크의 소유자이기도 합니다.

하드 및 심볼릭 링크에 대한 보호 활성화 또는 비활성화

중요한 점은 기본적으로 이 기능은 /usr/lib/sysctl.d/50-default.conf 파일의 커널 매개변수를 사용하여 활성화된다는 것입니다(값 1은 활성화를 의미함). ).

fs.protected_hardlinks = 1
fs.protected_symlinks = 1

그러나 어떤 이유로든 이 보안 기능을 비활성화하려는 경우; 아래 커널 옵션을 사용하여 /etc/sysctl.d/51-no-protect-links.conf라는 파일을 만듭니다(0 값은 비활성화를 의미함).

파일 이름(51-no-protect-links.conf)에서 51을 기록해 두십시오. 기본 설정을 재정의하려면 기본 파일 다음에 읽어야 합니다.

fs.protected_hardlinks = 0
fs.protected_symlinks = 0

파일을 저장하고 닫습니다. 그런 다음 아래 명령을 사용하여 위의 변경 사항을 적용합니다(이 명령은 실제로 각각의 모든 시스템 구성 파일에서 설정을 로드합니다).

sysctl --system
OR
sysctl -p  #on older systems

다음 기사를 읽어 볼 수도 있습니다.

  1. Linux에서 Vim 파일을 비밀번호로 보호하는 방법
  2. Linux에서 중요한 파일을 IMMUTABLE(변경 불가능)으로 만드는 5가지 'chattr' 명령

그게 다야! 아래 피드백 양식을 통해 이 주제와 관련된 질문을 게시하거나 생각을 공유할 수 있습니다.