ricardo
내 시스템에 문제를 일으키는 사용자인 사용자에 대해 제한된 사용자 계정을 설정하고 있습니다 . 나는 그에게 sudo
때때로 필요한 프로덕션 디렉토리 사용 권한을 부여하고 싶습니다 . 나는 내 파일 /etc/sudoers
에서 다음 규칙을 고려하고 있습니다 .
ricardo ALL=(root) NOPASSWD: /bin/mkdir
이 규칙만 사용하면 Ricardo가 의도적으로 또는 의도치 않게 시스템을 깨뜨릴 수 있을까요?
답변1
나는 이와 같은 공격이 작동할 것이라고 생각합니다. 여기서 "무언가"는 rootfs가 설치된 후 로드하려고 시도할 커널 모듈입니다.
$ sudo mkdir -m 777 /lib/modules/`uname -r`/a
$ cp evil.ko /lib/modules/`uname -r`/a/«something».ko
또한 모듈에 선언된 별칭에 따라 다른 이름을 사용할 수 있습니다. 나는 다음 커널 업데이트에서 발생하는 depmod가 실행될 때까지 로드되지 않을 것이라고 생각합니다. 따라서 mkdir
최근 sudo 로그에 표시되지 않습니다.
/etc에는 디렉토리의 모든 파일을 읽는 작업이 많으며 때로는 재귀적으로 수행됩니다. 더 나쁜 것은 이러한 디렉토리 중 일부는 기본적으로 존재하지 않으며 이에 대해 배울 수 있는 유일한 방법은 해당 디렉토리를 사용하는 프로그램의 맨페이지, 초기화 스크립트 등을 읽는 것입니다. 더 나쁜 것은 일부는 이전 버전과의 호환성이 더 이상 사용되지 않으며 더 이상 문서화되지 않을 수도 있다는 것입니다.
편집하다:더 많은 디렉토리가 떠오릅니다. 다음 위치에 있습니다 /usr/local
.
/usr/local/lib/perl/5.14.2
(Perl 버전에 따라 다르므로perl -V
알아보세요.)File
거기에 하위 디렉터리를 만들고Find.pm
. 이제 누군가가 이를 사용할 때마다File::Find
공격자의 버전을 사용하게 됩니다. 마찬가지로 에도 동일한 작업을 수행합니다Getopt::Long
. 시스템 유틸리티는 일반적으로 Perl로 작성되므로 루트 권한을 제공할 수 있습니다. (노력하다ack-grep --color -a 'use.+::' /usr/sbin | less -R
)- Python, Ruby 등에도 비슷한 디렉토리가 있다고 생각합니다. 시스템 유틸리티도 Python으로 작성되었습니다.
- 어떤 사람들은
/usr/local/include
.
답변2
답변3
그를 chroot 감옥으로 리디렉션해야 합니다. 또는 소규모 가상 머신의 경우 한 시간에 한 번씩 충돌이 발생할 수 있다는 것이 더 좋습니다. 귀하가 해야 할 일은 새 사본을 제공하는 것뿐입니다.
답변4
쓰기 액세스 권한이 있는 디렉터리를 생성할 수 있기 때문에 가능성이 존재합니다. 사용자는 원하는 대로 새 디렉터리에 mkdir -m 777 blah
쓸 수 있습니다. ricardo
구성, 스크립트 또는 모듈을 로드하기 위해 디렉토리 트리를 반복하는 다른 사용자로 이미 실행 중인 시스템 프로세스가 있어야 합니다. 그런 다음 사용자는 자신만의 항목을 추가하여 로드하거나 실행할 수 있습니다. 내 첫 번째 생각은 PHP 또는 CGI를 수행할 수 있는 웹 서버를 실행하는 경우입니다. 그런 다음 해당 사용자로 스크립트를 실행할 수 있습니다. 나는 더 많은 실제 사례, 특히 root
그것이 확실하다고 확신하는 사례를 생각하려고 노력하고 있습니다.
ssh는 이러한 상황을 포착하는 데몬의 예입니다. .ssh
디렉토리가 없는 사용자를 위해 디렉토리를 생성하고 authorized_hosts
적절한 위치에 자신의 파일을 저장하는 경우 . sshd
디렉터리 권한이 너무 개방적이어서 공개 키를 무시합니다.
많은 프로그램이 제대로 처리하지 못하는 파일이 존재할 것으로 예상되는 디렉터리(예: 임시 tmp 또는 스왑 파일)를 생성하면 문제가 발생할 수 있습니다.
많은 cgroup을 생성할 수 있지만, cgroup으로 아무 작업도 수행하지 않는 것 같습니다. 최소한 시스템을 무릎꿇게 만들 수는 있습니다. 256M 상자에는 약 10,000개의 cgroup이 필요합니다.OOM 킬러sshd를 제거하세요.
-m
환경 옵션 mkdir
과 UMASK를 조절하면 sudo
또 번거로워지는 것 같아요.