>

저는 RedHat EL 서버 스택에 대한 액세스를 외부 검색 도구에 제공하라는 요청을 받았으며 옵션은 아닙니다. 이 도구를 사용하려면 sudo를 통해 명령 목록에 액세스해야합니다. 이들 중 대부분은 간단한 목록이거나 하나의 옵션으로 잠글 수 있습니다. 그러나 sudo/usr/bin/find도 필요합니다.

분명히 find는 -exec와 friends를 통해 명령을 실행하고 임의의 파일을 삭제할 수 있기 때문에 이것에 대해 마음에 들지 않습니다. 무제한 루트 액세스 권한을 부여하는 것만 큼 좋습니다.

간단한 sudo 명령 별칭이 경로 (첫 번째 인수)에 와일드 카드를 포함해야하므로 후속 인수도 허용되므로 도움이 될 것이라고 생각하지 않습니다. sudo로 실행할 때/usr/bin/find에서 안전하지 않은 명령을 비활성화하는 것이 가능/가능한가요?

요약하면 :

  • 정상적인 검색이 이루어 지도록하십시오 (예 :

    /usr/bin/sudo /usr/bin/find /some/path/or/other -mtime +3 -print
    /usr/bin/sudo /usr/bin/find /home -executable -ls
    
    
  • exec/execdir/delete의 사용 차단 : 예 :

    /usr/bin/sudo /usr/bin/find /some/path/or/other -name '*' -type f -exec /bin/rm -f {} \;
    /usr/bin/sudo /usr/bin/find / -ctime -1 -delete
    
    
  • 답변 # 1

    sudo 를 통해 명령에 대한 액세스를 제공해야한다고 언급했습니다. 따라서 sudo 를 만들기 위해 확실히 할 수 있습니다  규칙을 해결하려면 더 유해한 의도가 필요합니다. 다른 RBAC 구현의 기본 거부 위치에서 특정 액세스를 허용하지 않고 주어진 후 액세스를 잠그려고 시도하기 때문에 작업에 완벽한 도구는 아닙니다.

    무단 액세스 권한을 가진 감사자를 절대 신뢰하지 않습니다. 그들의 임무는 보안 프로필을 시도하고 취약점을 밝히는 것입니다. 시스템을 더 안전하게 만들수록 시스템과 사악한 당사자 모두 잠금 장치를 선택하기가 더 어려워집니다.

    와이즈 비즈 이후  규칙을 순서대로 적용하고 실행할 수있는 명령으로 시작한 다음 다양한 옵션을 해당 명령으로 제한하는 규칙을 추가합니다. 당신은 sudo 를 수정할 수 있습니다  다음과 같은 파일을 사용하십시오 :

    sudoers
    
    

    이것은 감사자가 -exec, -execdir, -ok, -okdir 또는 -delete로 실행하지 않고 찾기를 실행할 수있게합니다. 당신은 또한 %auditor ALL = /usr/bin/lsattr, /usr/bin/find, ! /usr/bin/find *-exec*, ! /usr/bin/find *-ok*, ! /usr/bin/find *-delete* 차단을 고려할 수도 있습니다 -fprint  그리고 -fprintf  콘텐츠로 파일을 덮어 쓸 수있는 조건 자

    -fls 와 같은 명령도 차단합니다.  또는 find no-execution.txt .

    find . -name '*-ok*'
    
    

    좋은 sudoers 프로파일을 설정하고 유지하는 것은 일종의 PITA이지만, 특히 컴플라이언스 환경에서 노력할 가치가 있다고 생각합니다.

  • 답변 # 2

    일부 부분을 제공해야하는 경우 대신 LOGGING에 중점을 둡니다. 루트로 에스컬레이션 할 수있는 신뢰할 수있는 사용자 액세스- "sudo su"변형을 사용하여 로깅을 이스케이프 처리하는 것은 더 이상 사용되지 않으며 악의적 인 작업으로 간주됩니다.

    부분적으로 신뢰할 수있는 사용자로 제한되는 원격 로그 서버에 로그하고, 로그 서버가 감시중인 컴퓨터에 대한 지속적인 네트워크 연결을 모니터링하도록합니다 (따라서 네트워크를 중단하여 로그 항목을 간단하게 억제 할 수는 없음)

    tom@evil:~$ sudo id uid=0(root) gid=0(root) groups=0(root),999(lightsd) tom@evil:~$ sudo find . -mtime -50 . ./.bashrc ./.kshrc ./.bash_history ./.bash_logout ./.profile tom@evil:~$ sudo find . -mtime 5 -exec ls -la {} \; Sorry, user tom is not allowed to execute '/usr/bin/find . -mtime 5 -exec ls -la {} ;' as root on localhost. tom@evil:~$ sudo find . -mtime -5 -name .kshrc -delete Sorry, user tom is not allowed to execute '/usr/bin/find . -mtime -5 -name .kshrc -delete' as root on localhost.

  • 이전 cpu usage - 여러 스레드와 병렬로 프로그램 실행
  • 다음 filesystems - / proc/partitions 해석