콘솔 로그인이 정품인지 확인하는 방법?


13

Windows에서는 Ctrl+ Alt+ Del를 눌러 로그인 창을 표시하는 인터럽트를 발생 시킬 수 있습니다 .

Linux 컴퓨터의 콘솔에 로그온 할 때 :이 로그인이 실제 로그인인지 또는 자격 증명을 도용하기 위해 조롱 한 것인지 어떻게 알 수 있습니까?

답변:


14

시스템의 다른 일반 사용자로부터 보호 받기를 원한다고 가정하면 (적대자가 루트 액세스 권한이 있고 모든 베팅이 해제 된 경우) 원칙적으로 안전한주의 키를 사용할 수 있습니다 .

운영 체제의 보안주의 키는 트로이 목마 암호 캡처 프로그램으로부터 보호하기 위해 제공되는 보안 도구입니다. 로그인 응용 프로그램으로 위장 할 수있는 모든 프로그램을 죽일 수있는 확실한 방법입니다. 사용자는 시스템에 로그인하기 전에이 키 시퀀스를 입력하도록 지시해야합니다.

( Linux 2.4.2 SAK (Secure Attention Key) 처리, Andrew Morton, 2001 년 3 월 18 일 )

이와 관련된 U & L 질문이 흥미로울 수 있습니다. 시스템에서 SAK (Secure Attention Key)를 찾고 비활성화 할 수 있습니까?


X 서버를 켠 상태에서 SAK를 활성화하면 어떻게됩니까?
Incnis Mrsi

@IncnisMrsi : 나는 그것을 시도했다; 것 같다 대략 당신이 것을 해제하지 않은 가정 Ctrl + Alt + 백 스페이스에 해당. 그래도 조금 더 버그가있는 것처럼 보였지만 구체적인 내용을 기억할 수는 없습니다.
케빈

나는 내 vtty에서 자주 그것을 쳤다. 그리고 얼마 후, 로그인이 돌아 오지 않았다. 버그가 있지만 실제로 매일 유용한 SysRq의 경우 +1입니다.
Max Ried

@Kevin : 따라서 사용자가 tty ≠ 7에서 합법적 인 X 서버 (적어도 PC에서 euid = 0 임)를 실행 한 경우 해당 구성에서 SAK가 비활성화 된 경우 커널 문서가 주장하는 것처럼 SAK를 물리 칠 수 없습니까? 에뮬레이트 된 GUI DM이 실행된다고 가정합니다.
Incnis Mrsi

@ IncnisMrsi : 실제로 그것이하는 일은 세션의 모든 것을 죽이고 "올바른"것을 다시 시작하는 것이라고 생각 합니다. tty = 7이면 새로운 X를 얻습니다 login. 그렇지 않으면을 얻습니다 . 그놈과 같은 멋진 DE는 아무데도 죽지 않기 때문에 버그가 있습니다. 그러나 공격자가 euid = 0이면 이미 잃어버린 것입니다.
케빈

2

우선, Windows 의 Ctrl+ Alt+ Del로그인 창에 대해 확신 할 수 있다고 확신하지 못합니다. 이는 바이러스 / 트로이 목마의 역할을 방해하여 방해를 일으켜 구현하는 것이 가능합니다.

둘째, 이러한 메커니즘이 Windows / Linux에서 모두 구현되면 관리자 권한이 반드시 손상되었음을 의미합니다.

리눅스에서 누군가가 가짜 셸을 작성하여 프롬프트를 표시하고 자격 증명을 잡는 경우 해당 신호가 트릭을 발견하지 못하면 기본 Ctrl+ C또는 Ctrl+ Z로 충분할 수 있습니다. 잘못된 자격 증명을 여러 번 입력하면 일반 타이머 동작과의 편차를 확인할 수 있습니다.

다른 콘솔 사이를 전환하면 트릭을 발견 할 확률이 높아집니다.

그러나 어떤 경우에도 로그인 프롬프트 / 창에 대한 모든 종류의 신뢰성 시스템에서 100 % 확신 할 수는 없습니다.


0

ctrl+ alt+ F1... F7를 사용 하여 다른 tty로 가서 거기에서 로그인 할 수 있습니다 . ctrl+ z또는 ctrl+를 사용할 수도 있습니다 c. 그러나 누군가이 방법을 사용하여 로그인 및 비밀번호를 도용하려고 시도하는 경우 여전히 사기를 당할 가능성이 있습니다. 사용중인 OS, 누가 액세스했는지, 어떤 종류의 액세스 권한을 가지고 있는지에 따라 다릅니다.

일반적으로 100 % 확신 할 수는 없지만 누군가가 그렇게했다면 이미 루트 액세스 권한이 있다고 가정하므로 로그인 데이터는 그에게 의미가 없습니다.


3
그러한 함정을 설정한다면 모든 프로그램에서 프로그램을 실행해야합니다. 컨트롤 키로 액세스하는 사람들은 특히 안전하지 않습니다.
John WH Smith

페어 포인트; 이것이 내 마음에 온 최고의 것입니다.
MatthewRock

마술 sysrq가 당신을 도울 수 있습니까?
Max Ried

0

콘솔에 물리적으로 액세스 할 수있는 사용자 (루트도 아님)는 그러한 사기를 할 수 있습니다.

로그인 ssh 로컬로 로그인하려는 가상 콘솔에서 작동하는 프로세스를 확인하십시오. 여부는이다 getty또는 다른 합법적 인 디스플레이 관리자 (A TUI 청각 장애에 대한)? UID = 0입니까?

둘 중 하나라도 거짓이면 호스트 이름 login: 배너가 확실히 위조됩니다. 그러나 주정부 답변이 이미 작성되었으므로 이미 자신의 특권을 에스컬레이션 한 범죄자에 대해서는 도움이되지 않습니다 root.


-1

짧은 대답 : 말할 수 없습니다.

그러나 login prompt 명령이 교체 된 경우 공격자는 시스템에 대한 루트 액세스 권한이 있음을 의미합니다. 이 경우에도 다음을 수행 할 수 있습니다.

  • 비밀번호를 도용하기 위해 키로거를 설치했습니다. 고유 한 암호를 사용하여 문제를 완화 할 수 있으므로 공격자가 사용하는 다른 온라인 서비스에 액세스 할 수 없습니다.
  • 비밀번호를 변경하기 만하면 컴퓨터에서 귀하 또는 다른 사용자로 로그인하거나 귀하 또는 다른 사람의 파일에 액세스하십시오.

따라서 로그인 프롬프트가 합법적인지 여부를 걱정하는 것이 문제가됩니다.

일반적으로 손상된 것으로 생각되는 시스템에 로그인해서는 안됩니다.


8
로그인 프롬프트의 동작을 모방하는 프로그램을 디자인하고 루트 권한없이 모든 TTY에서 (나 자신처럼) 실행할 수 있습니다. 올바르게 수행하면 실제 프롬프트와 프로그램의 출력을 구별하여 자격 증명을 입력 할 수 없습니다. 그러나, 당신을 인증하기 위해서는 루트 권한이 필요합니다 (트랩을 완전히 투명하게 만드십시오). 로그인이 실패하고 오타가 발생하지 않았다고 확신하면 ... 트랩되었다고 가정 할 수 있습니다 늦었지만).
John WH Smith

6
설치하지 않았습니다. 당신은 단순히 자신의 계정을 사용하여 모든 터미널에 로그인하고 가짜 로그인을 실행합니다. 그 후에 터미널을 사용하려고 시도하는 사용자 login는 루트로 실행되는 프로그램이 아니라 가짜 프롬프트가 사용자로 실행됩니다. 실제 login프로그램이 실제로 손상 되었다고 가정하지는 않습니다 .
John WH Smith

7
@ dr01. 정상적으로 로그인하십시오. 당신이있는 거 준비가 당신을 시작할 때 ~/bin/fakelogin, 사용 exec ~/bin/fakelogin은 (어떤 이유) 종료 할 때 사용자 계정으로 로그 아웃하고 프롬프트 실제 로그인이 다른 사용자에게 표시되도록.
roaima

3
일반적으로 프롬프트에서 비밀번호를 도용하려고 시도하면 비밀번호를 기록하고 "잘못된 로그인"이라고 쓴 다음 프로그램을 종료하십시오. 따라서를 사용하여 인증 할 필요가 없습니다 $euid=0.
Ned64

1
왜 다운 보트인가?
dr01
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.