분리 된 화면 세션에서 루트 쉘을 실행하는 것이 안전합니까? 가능성 (비밀번호 노출, ssh 키 손상

분리 된 스크린 세션 내에서 루트 쉘을 실행하는 보안에 대해 궁금합니다. 나는 일반적으로 이것을하지 않습니다.

루트가 아닌 사용자 계정이 손상 될 가능성 (비밀번호 노출, ssh 키 손상 등)을 제외하고, 분리해야하는 암호로 보호 된 화면 세션에 대한 다른 입력 벡터가 있습니까? 세션이 비활성으로 간주됩니까?



답변

“루트가 아닌 사용자 계정이 손상 될 가능성을 제외하고”는 다소 클 수 있기 때문에 보안 문제라고 생각합니다.

그러나 그 이상의 위험이 증가합니다. 예를 들어, 당신은 지금 이론적 자신을 하나의 화면 소켓 디렉토리의 권한을 변경할 수있는 악용 최대 연 ( /var/run/screen내 시스템에, 그러나 때때로 /tmp사용된다). 이 악용은 이제 루트를 얻는 경로를 가지게되며 그렇지 않은 경우도 있습니다.

sudo당신이하지 않고 각 명령에 사용하도록 스스로 훈련 할 수 있다면 다른 장점이 있습니다 sudo su -. 원격으로 로깅하지 않는 한 의미있는 보안을 향상 시키지는 않지만 수행 작업을 추적하는 작업을 기록합니다. 또한 모든 권한이 부여 된 세션으로 전환하지 않고 각 명령에 대해 의도적 인 에스컬레이션을 요구하여 사고를 예방합니다.


답변

화면 세션에 루트 셸이 있고 (분리 또는 암호로 보호되거나 screen실행 되지 않음) 실행 파일이 setxid가 아닌 경우 권한을 얻은 공격자는 해당 셸에서 명령을 실행할 수 있습니다. 다른 것이 없으면 화면 프로세스 를 찾아서 할 수 있습니다 .

screen이 setuid 또는 setgid이고 세션이 분리되어 암호로 보호 된 경우 원칙적으로 해당 쉘에서 명령을 실행하려면 화면 암호가 필요합니다. 이 원칙을 지키면 계정 만 손상된 사람은 트로이 목마를 설치하고 암호를 입력 할 때까지 기다려야합니다. 그러나 공격 표면 (즉, 버그 또는 구성 오류로 인해 문제가 발생할 수있는 곳의 수)은 불편합니다. 기본 시스템 보안 기능 외에도 다음을 신뢰합니다.

  • 암호를 확인하려면 화면을 확인하십시오.
  • 다른 방법으로 세션에 액세스하지 못하게하는 화면.
  • OS 액세스 제어 메커니즘을 올바르게 사용하는 화면 (예 : 파이프에 대한 권한)
  • 커널 ptrace 보안 점검을 올바르게 수행합니다 (이 취약점은 빈번한 취약점입니다).
  • 어리석은 짓을하지 않는 셸.
  • 당신을 물지 않는 다른 기능.

“당신을 물지 않는 다른 기능”: 예, 모호합니다. 그러나 항상 보안 문제입니다. 당신은 이것을 단지 평범한 소망의 생각으로 무시하고 싶을 수도 있지만, 정말로 모든 것을 생각 했습니까? 예를 들어…

터미널 장치에 쓸 수있는 한 해당 쉘의 입력에 데이터를 주입 할 수 있습니다. 내 컴퓨터의 화면 기본 구성에서 :

printf '\ekfoo\017bar\e\\' >/dev/pts/33
printf '\e[21t' >/dev/pts/33

이것은 ␛]lfoobar␛l쉘의 입력 스트림에 삽입 됩니다. \ek응용 프로그램 (또는 터미널 장치에 쓸 수있는 모든 것)이 창 제목을 설정하고 ( 화면 설명서“이름 지정 창”섹션 참조 ) \e[21t터미널이 응용 프로그램의 표준 입력에 제목을보고하게하는 제어 순서입니다 ( screen은이 순서를 문서화하지는 않지만 그것을 구현합니다; xterm control sequence listCSI Ps ; Ps ; Ps ; t 에서 찾을 수 있습니다 . 실제로 적어도 screen 4.0.3에서는 모든 제어 문자가보고 된 제목에서 제거되므로 쉘은 읽습니다. ( 편집 명령에 구속되지 않는다고 가정 ) 개행 문자가 없으므로 공격자는 실제로 그런 식으로 명령을 실행할 수는 없지만 다음과 같은 명령을 입력 할 수 있습니다.lfoobar␛]chmod u+s /bin/sh 많은 공간과 가능성이있는 프롬프트가 뒤 따릅니다.

Screen은 여러 가지 유사한 위험한 제어 시퀀스를 구현하지만 취약점의 잠재력이 무엇인지 모르겠습니다. 그러나 지금까지 스크린 세션 암호로 제공되는 보호 기능이 그다지 크지 않다는 것을 알 수 있습니다. sudo와 같은 전용 보안 도구는 취약점이 적습니다.


답변

화면으로 생성 된 파이프는 소유자 만 액세스 할 수 있으므로 보안 문제가되어서는 안됩니다.