ps는 비밀번호를 숨기는 것을 어떻게 알 수 있습니까?


22

증거:

$ ps f
  PID TTY      STAT   TIME COMMAND
31509 pts/3    Ss     0:01 -bash
27266 pts/3    S+     0:00  \_ mysql -uroot -p
25210 pts/10   Ss+    0:00 /bin/bash
24444 pts/4    Ss     0:00 -bash
29111 pts/4    S+     0:00  \_ tmux attach
 4833 pts/5    Ss+    0:00 -bash
 9046 pts/6    Ss     0:00 -bash
17749 pts/6    R+     0:00  \_ ps f
 4748 pts/0    Ss     0:00 -bash
14635 pts/0    T      0:02  \_ mysql -uroot -px xxxxxxxxxxxxxxxx
16210 pts/0    S+     0:01  \_ mysql -uroot -px xxxxxxxxxxxxxxxx

ps는 mysql암호 를 숨기는 방법을 어떻게 알았 습니까? 특정 CLI 속성을 숨기려면이를 자신의 스크립트에 통합 할 수 있습니까?


6
아마 다른 방법이며, mysql마법,하지 않습니다 ps"MySQL의 클라이언트는 일반적으로 자신의 초기화 시퀀스 동안 0으로 명령 줄 암호 인수를 덮어 씁니다."- 최종 사용자 암호 보안에 대한 가이드 라인
manatwork

유익한 문서입니다. 필자의 스크립트에서 cli 인수를 덮어 쓰는 방법에 대해 살펴 보겠습니다.
dotancohen

1
@manatwork 나는 그것을 대답으로 넣을 것입니다. 왜냐하면 그것이 정확히 일어나고 있기 때문입니다-그것은 mysql과 관련된 보안 문제에 대한 유용한 링크입니다. :)
Drav Sloan

명령 행 인수는 스누핑 할 수 있지만 환경 변수는 안전 합니다.
Gilles 'SO- 악마 그만해'

이에 대한 자세한 정보는 unix.stackexchange.com/q/385339/135943
Wildcard

답변:


23

ps비밀번호를 숨기지 않습니다. mysql과 같은 응용 프로그램은 인수를 덮어 씁니다. 인수가 겹쳐 질 때까지 다른 응용 프로그램에서 인수를 볼 수있는 작은 시간 범위 (높은 시스템로드로 확장 가능)가 있습니다. 다른 사용자에게 프로세스숨기면 도움이 될 수 있습니다. 일반적으로 명령 줄보다 파일을 통해 암호를 전달하는 것이 훨씬 좋습니다.

에서 이 문서 는 C에 대한 설명이 어떻게해야 할 일. 다음 예제는 모든 명령 행 인수를 숨기거나 삭제합니다.

#include <string.h>

int main(int argc, char **argv)
{
    // process command line arguments....

    // hide command line arguments
    if (argc > 1) {
        char *arg_end;    
        arg_end = argv[argc-1] + strlen (argv[argc-1]);
        *arg_end = ' ';
    }

    // ...
}

에서도 봐 /programming/724582/hide-arguments-from-ps/programming/3830823/hiding-secret-from-command-line-parameter-on-unix .


고마워요 나는 그 주장이 변할 수 있다는 것을 몰랐다.
dotancohen

또한 모든 프로그램이 암호를 사용하여이 작업을 수행하지는 않습니다.
ash

이 기사 의 링크 가 깨졌습니다. 사람은 나를 위해 코드를? 설명하기 (왜 코드가 작동, 단지 설정 \0공간?)에 대한 모든 링크 setproctitle()?
schemacs

아니면 대답은 여기에 있습니까?
schemacs

7

MySQL의 프로그램과 명령 행에서 암호를 대체 x코드 줄 :

while (*argument) *argument++= 'x';     // Destroy argument

3
불행히도, 그것은 가능한 한 안전하지 않습니다. 비밀번호의 길이를 알 수 있습니다. \0비밀번호 길이를 찾으려면 추가 정보가 필요하도록 (UB / SEGFAULT없이) 이를 대체하는 것이 좋습니다 .
wizzwizz4
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.