답변:
"루트가 아닌 사용자 계정이 손상 될 가능성을 제외하고"는 다소 클 수 있기 때문에 보안 문제라고 생각합니다.
그러나 그 이상의 위험이 증가합니다. 예를 들어, 당신은 지금 이론적 자신을 하나의 화면 소켓 디렉토리의 권한을 변경할 수있는 악용 최대 연 ( /var/run/screen
내 시스템에, 그러나 때때로 /tmp
사용된다). 이 악용은 이제 루트를 얻는 경로를 가지게되며 그렇지 않은 경우도 있습니다.
sudo
당신이하지 않고 각 명령에 사용하도록 스스로 훈련 할 수 있다면 다른 장점이 있습니다 sudo su -
. 원격으로 로깅하지 않는 한 의미있는 보안을 향상 시키지는 않지만 수행 한 작업을 추적하는 작업을 기록합니다. 또한 모든 권한이 부여 된 세션으로 전환하지 않고 각 명령에 대해 의도적 인 에스컬레이션을 요구하여 사고를 예방합니다.
화면 세션에 루트 셸이 있고 (분리 또는 암호로 보호되거나 screen
실행 되지 않음) 실행 파일이 setxid가 아닌 경우 권한을 얻은 공격자는 해당 셸에서 명령을 실행할 수 있습니다. 다른 것이 없으면 화면 프로세스 를 찾아서 할 수 있습니다 .
screen이 setuid 또는 setgid이고 세션이 분리되어 암호로 보호 된 경우 원칙적으로 해당 쉘에서 명령을 실행하려면 화면 암호가 필요합니다. 이 원칙을 지키면 계정 만 손상된 사람은 트로이 목마를 설치하고 암호를 입력 할 때까지 기다려야합니다. 그러나 공격 표면 (즉, 버그 또는 구성 오류로 인해 문제가 발생할 수있는 곳의 수)은 불편합니다. 기본 시스템 보안 기능 외에도 다음을 신뢰합니다.
"당신을 물지 않는 다른 기능": 예, 모호합니다. 그러나 항상 보안 문제입니다. 당신은 이것을 단지 평범한 소망의 생각으로 무시하고 싶을 수도 있지만, 정말로 모든 것을 생각 했습니까? 예를 들어…
터미널 장치에 쓸 수있는 한 해당 쉘의 입력에 데이터를 주입 할 수 있습니다. 내 컴퓨터의 화면 기본 구성에서 :
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와 같은 전용 보안 도구는 취약점이 적습니다.
sudo
.