이 질문이 여기서 더 나은지 아니면 Apple/Mac 세계에서 더 나은지는 모르겠지만… 괜찮은 답변이 필요합니다.
저는 Applescript를 사용하여 스프레드시트나 데이터베이스의 필드에서 데이터를 추출하고 이를 터미널에 직접 푸시합니다.
echo "thisismydatastring and my saltbits" | openssl aes-256-cbc -k thisismypassword -base64
내 질문: 로그 파일을 필터링하여 비밀번호의 일반 텍스트 인스턴스를 캡처하는 방법이 있습니까?
해커를 예방하는 더 좋은 방법이 있나요?
추신: Pete를 사랑합니다. 귀하가 충분히 똑똑하거나 비열한 사람이라면 기꺼이 내 게시물을 편집하고 최소한 이 질문에 대한 건전한 답변을 제공할 의향이 있을 것입니다.
답변1
비밀번호가 쉘 기록에 표시되는 것을 원하지 않거나 쉘 기록에서 쉽게 얻을 수 없도록 하려면 ps
다음을 수행하십시오.명령줄에 비밀번호를 입력하지 마세요.
대안은 비밀번호를 파일에 넣고 권한을 600으로 설정한 다음 chmod
명령줄에서 비밀번호 대신 사용하는 것입니다.$(cat passwordfile)
시스템의 루트를 신뢰하지 않거나 시스템의 다른 사용자가 루트 권한을 얻을 수 있다고 생각하는 경우 이는 안전하지 않습니다.
예를 들어
/.mysecretpassword
비밀번호를 편집 하고 추가하세요.chmod 600 ~/.mysecretpassword
달리기:
echo "thisismydatastring and my saltbits" | openssl aes-256-cbc -k "$(cat ~/.mysecretpassword)" -base64
마찬가지로 "thisismydatastring and my saltbits"
민감한 내용이라면 명령줄에 입력하지 마세요. 파일에 넣고 openssl
.
openssl
선택적으로 파일 설명자에서 비밀번호를 읽을 수 있습니다. 이는 openssl을 실행하기 위해 래퍼 스크립트를 작성하는 경우 유용합니다.
#!/bin/bash
# use file descriptor 99 for no particular reason. a completely arbitrary choice,
# as long as it's not already in use (probably isn't).
exec 99< ~/.mysecretpassword
openssl aes-256-cbc -base64 -k fd:99
$PATH 어딘가에 저장하고 실행 가능하게 만든 다음 chmod
(스누퍼가 걱정된다면 700이 가장 좋을 것임) 데이터를 여기로 파이프하거나 리디렉션할 수 있습니다. 명령줄에 이름이 지정 $(cat ...)
되지 않으므로 이 방법보다 약간 더 나을 수 있습니다 ~/.mysecretpassword
(따라서 기록에 저장되거나 에 표시되지 않음 ps
).
이 파일 설명자 방법은 여전히 모호함에 의해서만 안전하므로 신뢰할 수 없는 루트 계정이나 루트를 얻을 수 있는 사용자로부터는 안전하지 않습니다.
필요할 때 수동으로 마운트하고(수동으로 비밀번호를 입력하고...키 입력을 기록하는 사람이 없기를 바라면서) 작업이 끝나면 마운트 해제할 수 있는 암호화된 파일 시스템을 사용하여 보안을 약간 향상시킬 수 있습니다. Applescript는 사용자가 Mac을 사용하고 있음을 암시합니다. OS X에서 이 작업을 수행하는 방법은 확실하지 않지만 Linux에서는 시스템에 대한 루트 액세스 권한이 없는 경우 FUSE를 사용할 수 있습니다.
완전히 제어할 수 없거나 다른(아마도 적대적인) 사용자가 있는 시스템에서 암호화 작업을 수행하는 것은 일반적으로 나쁜 생각으로 간주됩니다. (보다 안전한 암호화를 위해서는 네트워크에 연결된 기계에서 수행하지 마십시오. 더 나은 방법은 100피트 깊이의 바닥에 있는 납이 늘어선 방의 패러데이 우리에 있는 네트워크에 연결되지 않은 기계를 사용하는 것입니다. 플로피(USB 장치 대신)를 통해 콘크리트 벙커를 사용하거나 QR 코드를 통해 Base64 암호화된 데이터를 전송합니다. 화면에 QR을 인쇄하거나 표시하고 휴대폰으로 스캔하세요.
더 간단히 말하면, 현재 사용 중인 컴퓨터를 완전히 신뢰할 수 없고 데이터 기밀성이 중요하다고 의심되는 이유가 있다면 암호화에 사용하지 마세요. 실수하는 방법에는 여러 가지가 있지만 완전히 타협하는 데는 단 한 가지만 있으면 됩니다.
그런데, 을 사용하는 경우 bash
다음으로 시작할 수 있습니다.~/.bash_history
앞으로삭제하려는 줄이 보일 때까지 위쪽 화살표를 누른 다음 Ctrl-U다시 입력하고 위쪽 화살표를 눌러 이 셸을 종료할 수 있습니다.
또는 다음을 실행하여 해당 셸 세션의 전체 기록을 지울 수 있습니다.history -c
앞으로해당 쉘을 종료합니다. .bash_history 파일에 저장된 내용은 지워지지 않습니다.
비밀번호나 기타 민감한 데이터가 .bash_history에 저장된 경우 유일한 옵션은 다시 로그인할 때 기록 파일을 삭제하거나 편집하는 것입니다. 참고: 백업되었거나 스냅샷이 생성되었을 수 있습니다. 즉, 복구하기에는 너무 늦었습니다.