sudo
터미널에서 명령을 실행하거나 내가 사용하는 관리 애플리케이션을 실행한 후 gksudo
잠시(약 5분) 동안 비밀번호를 다시 묻지 않는 것을 확인했습니다 .
이제 내가 사용하고 있는 프로그램 중 하나(루트로 실행되지 않음)에 제로데이 취약점(예: 웹 브라우저 또는 해당 플러그인)이 있다고 가정해 보겠습니다. 공격자는 나를 대신하여 임의의 코드를 실행했습니다.
암호가 만료되어 내 시스템을 장악하기 전에 공격자가 암호 프롬프트를 수행 sudo
하거나 수행하지 않을 수 있습니까?gksudo
답변1
예, 사용자로 코드를 실행하는 공격자는 사용자가 직접 할 수 있는 모든 작업을 수행할 수 있습니다. 심지어 sudo를 실행하고 있다고 생각할 때 실제로 루트 암호를 자동으로 기록하는 공격자의 프로그램을 실행하도록 쉘 프로세스를 변경할 수도 있습니다.
Ptys/ttys 인용아니요여기의 다른 답변과 달리 동일한 사용자가 소유할 때의 보안입니다.
답변2
아니 난 할 수 없어.
sudo는 tty 이름(또는 pty)으로 액세스 토큰을 유지 관리하며 브라우저와 터미널 에뮬레이터는 다른 pty에서 실행되므로 동일한 토큰을 사용하지 않습니다.
이를 찾는 쉬운 방법은 한 터미널에서 sudo를 실행한 다음 다른 터미널에서 다시 실행하는 것입니다. 그러면 비밀번호를 다시 입력하라는 메시지가 표시됩니다(/var/db/sudo 참조).
답변3
"공격자가 비밀번호 프롬프트 없이 sudo 또는 gksudo를 실행하고 비밀번호가 만료되기 전에 내 시스템을 장악할 수 있습니까?"
예.
가장 간단한 공격은 대화형 셸에서 발생하며 키보드에서 나갈 때 화면이 잠기지 않습니다.
걱정된다면 라인을 바꿔보세요
Defaults timestamp_timeout=90
귀하의 경우 /etc/sudoers
시간 제한이 5분으로 변경되었습니다.