sudoers
보안 정책(예: 하나 이상의 열거 정의가 포함된 Cmnd_Alias
파일)을 생성하면 시스템 보안이 크게 향상될지 스스로에게 물었습니다.모두디렉터리의 실행 파일 앞에는 SHA-2 체크섬이 붙습니다 /usr/bin
./usr/sbin
신뢰할 수 있는 소스의 패키지로 시스템을 업데이트한 후 보안 정책을 다시 생성하겠습니다.
이것이 좋은 생각인지 나쁜 생각인지에 대한 통찰력이 있습니까?
답변1
나에게는 엄청난 고통처럼 들린다. 나는 또한 보안 측면에서 실제로 아무 것도 얻을 수 없다고 생각합니다. 왜냐하면 (a) 루트로만 작성할 수 있으므로 누군가가 여기에 쓸 수 있다면 아마도 게임이 끝날 것이고 (b) 확인되지 않은 공유 힙을 로드할 수 있기 때문입니다. 도서관.
sudoers 맨페이지에는 이 옵션이 "sudo를 호출하는 사용자가 명령이나 상위 디렉터리에 대한 쓰기 액세스 권한을 갖고 있는 상황에서 유용할 수 있다"고 나와 있습니다. 누가 이 설정을 좋은 아이디어라고 생각했는지 잘 모르겠습니다. 또는 sudo
경쟁 조건 없이 실행하기 전에 체크섬은 어떻습니까?
대신 호스트 기반 IDS(예: samhain, tripwire...)를 사용하는 것이 좋습니다. 이는 누군가가 sudo를 시도하는지 여부에 관계없이 시스템 바이너리(공유 라이브러리 포함)에 대한 모든 변조를 신속하게 감지하고 보고하려고 시도합니다.
답변2
임의의 매개변수를 사용하여 시스템의 바이너리 디렉터리에 있는 거의 모든 바이너리 실행을 허용한다면 거의 확실히 임의 액세스가 허용된 것입니다. 그 외에도 임의의 인수가 있는 편집기, 또는 mv
유사한 쉘 bash
, 유사한 패키지 관리자 또는 파일에 데이터 쓰기를 지원하는 프로그램을 실행하도록 허용하면 누군가가 쉽게 이를 사용하여 허용된 dpkg
사용자가 sudo
. blacklist 명령도 작동하지 않습니다. 명령 실행을 권한 상승으로 전환하는 방법이 너무 많습니다.
sudo를 사용하면 매우 구체적이고 제한된 명령 세트(특정 매개변수 포함)를 허용하거나 모든 명령을 허용해야 합니다.
시스템 파일의 수정 사항을 감지하려면 다른 메커니즘을 사용해야 합니다. 누군가 시스템 바이너리를 수정할 수 있는 충분한 액세스 권한이 있으면 sudoers 파일을 변경할 수도 있는 충분한 액세스 권한이 있을 수 있습니다.
답변3
다른 답변은 문제를 다루고 있습니다. sudoers 파일 내용을 보호하려면 체크섬으로 방지할 수 없는 사항도 고려해야 한다는 점을 지적하고 싶었습니다.
sudoers 파일에 다음이 있고 권한이 낮은 사용자만 Apache 바이너리를 사용하기를 원한다고 가정합니다. (sha-2 체크섬 예제는 내가 만들려는 요점을 복잡하게 만들기 때문에 제공하지 않습니다.)
Cmnd_Alias HTTPD = /etc/sbin/httpd
low_priv_user ALL=(ALL) NOPASSWD: HTTPD
권한이 낮은 사용자가 시도한 경우 오류 로그를 확인하십시오.
sudo /etc/sbin/httpd -t /etc/shadow
그렇습니다. 바이너리 및 관리 방법에 대한 인덱스 체크섬은 제대로 수행되면 이론적으로 보안을 향상시킬 수 있습니다. 그러나 명령 가용성(보안의 세 가지 기반 중 하나)이 더 큰 위험에 처해 있다고 생각합니다. 여전히 호스트의 다른 영역을 보호/강화해야 합니다.
나는 모든 것이 보호하는 자산의 가치와 체크섬 바이너리와 함께 제공되는 관리 오버헤드 및 위험 감소에 달려 있다고 생각합니다.