GNU/Linux는 매우 안전한 운영 체제이지만 많은 사람들이 잘못된 보안 감각에 빠지게 됩니다. 그들은 안전한 환경에서 일하기 때문에 아무 일도 일어나지 않을 것이라는 잘못된 생각을 가지고 있습니다. Linux 환경에는 악성 코드가 거의 존재하지 않는 것이 사실이지만 Linux 설치가 궁극적으로 손상될 가능성은 여전히 매우 높습니다. 다른 것이 없다면 루트킷 및 기타 유사한 공격의 가능성을 고려하는 것은 시스템 관리의 중요한 부분입니다. 루트킷은 제3자 사용자가 올바르게 액세스할 수 없는 컴퓨터 시스템에 액세스한 후 사용하는 도구 세트를 의미합니다. 그런 다음 이 키트를 사용하여 정당한 사용자가 알지 못하는 사이에 파일을 수정할 수 있습니다. 숨기기 해제 패키지는 손상된 소프트웨어를 신속하게 찾는 데 필요한 기술을 제공합니다.
Unhide는 대부분의 주요 Linux 배포판의 리포지토리에 있습니다. sudo apt-get install unhide와 같은 패키지 관리자 명령을 사용하면 Debian 및 Ubuntu 버전에 강제로 설치하기에 충분합니다. GUI 액세스 권한이 있는 서버는 Synaptic Package Manager를 사용할 수 있습니다. Fedora 및 Arch 배포판에는 자체 패키지 관리 시스템을 위해 사전 구축된 unhide 버전이 있습니다. 숨기기 해제가 설치되면 시스템 관리자는 이를 여러 가지 방법으로 사용할 수 있습니다.
방법 1:무차별 프로세스 ID
가장 기본적인 기술은 각 프로세스 ID를 무차별 대입하여 사용자에게 숨겨진 것이 없는지 확인하는 것입니다. 루트 액세스 권한이 없으면 CLI 프롬프트에서 sudo unhide brute -d를 입력합니다. d 옵션은 보고되는 오탐지 수를 줄이기 위해 테스트를 두 배로 늘립니다.
출력은 매우 기본적입니다. 저작권 메시지 다음에 unhide를 클릭하면 수행되는 검사에 대해 설명됩니다. 다음과 같은 줄이 있을 것입니다:
[*]fork()를 사용하여 PIDS에 대해 무차별 대입을 사용하여 스캔 시작
그리고 또 다른 말:
[*]pthread 기능을 사용하여 PIDS에 대해 무차별 대입을 사용하여 스캔 시작
다른 출력이 없다면 걱정할 필요가 없습니다. 프로그램의 brute 서브루틴이 무엇이든 발견하면 다음과 같은 내용을 보고합니다:
숨겨진 PID를 찾았습니다:0000
4개의 0은 유효한 숫자로 대체됩니다. 단순히 일시적인 프로세스라고 읽는다면 이는 오탐일 수 있습니다. 깨끗한 결과가 나올 때까지 테스트를 여러 번 실행해 보세요. 추가 정보가 있는 경우 후속 확인이 필요할 수 있습니다. 로그가 필요한 경우 -f 스위치를 사용하여 현재 디렉터리에 로그 파일을 만들 수 있습니다. 최신 버전의 프로그램에서는 이 파일을 unhide-linux.log라고 부르며 일반 텍스트 출력 기능을 제공합니다.
방법 2:/proc 및 /bin/ps 비교
대신 unhide를 지시하여 /bin/ps 및 /proc 프로세스 목록을 비교하여 Unix 파일 트리의 두 개별 목록이 일치하는지 확인할 수 있습니다. 뭔가 잘못된 것이 있으면 프로그램은 비정상적인 PID를 보고합니다. Unix 규칙은 실행 중인 프로세스가 이 두 목록에 ID 번호를 표시해야 한다고 규정합니다. sudo unhide proc -v를 입력하여 테스트를 시작합니다. v를 선택하면 프로그램이 장황 모드로 전환됩니다.
이 메소드는 다음과 같은 프롬프트를 반환합니다:
[*]/proc 통계 스캔을 통해 숨겨진 프로세스 검색
비정상적인 상황이 발생하면 이 텍스트 줄 뒤에 표시됩니다.
방법 3:Proc 및 Procfs 기술 결합
필요한 경우 실제로 /bin/ps 및 /proc Unix 파일 트리 목록을 비교하는 동시에 /bin/ps 목록의 모든 정보를 가상 procfs 항목과 비교할 수도 있습니다. 이는 Unix 파일 트리 규칙과 procfs 데이터를 모두 확인합니다. 이 테스트를 수행하려면 sudo unhide procall -v를 입력하세요. 모든 /proc 통계를 스캔하고 다른 여러 테스트를 수행해야 하므로 시간이 꽤 걸릴 수 있습니다. 이는 서버의 모든 항목이 코파제틱인지 확인하는 훌륭한 방법입니다.
방법 4:procfs 결과를 /bin/ps와 비교
이전 테스트는 대부분의 애플리케이션에 너무 복잡하지만 편의를 위해 proc 파일 시스템 검사를 독립적으로 실행할 수 있습니다. sudo unhide procfs -m을 입력하면 이러한 검사와 -m을 추가하여 제공되는 몇 가지 추가 검사를 수행합니다.
이 테스트는 여전히 다소 복잡한 테스트이므로 시간이 걸릴 수 있습니다. 세 개의 개별 출력 라인을 반환합니다:
명령에 -f를 추가하면 이러한 테스트로 전체 로그를 생성할 수 있다는 점을 명심하세요.
방법 5:빠른 검사 실행
심층 검사에 신경 쓰지 않고 빠른 검사만 실행해야 하는 경우 이름에서 알 수 있듯이 빠르게 실행되는 sudo unhidequick를 입력하기만 하면 됩니다. 이 기술은 proc 목록과 proc 파일 시스템을 검사합니다. 또한 /bin/ps에서 수집된 정보와 시스템 리소스 호출을 통해 제공된 정보를 비교하는 검사를 실행합니다. 이는 단일 출력 라인을 제공하지만 불행하게도 오탐의 위험이 증가합니다. 이전 결과를 이미 검토한 후 다시 확인하는 것이 유용합니다.
출력은 다음과 같습니다:
[*]시스템 호출, proc, dir, ps 결과 비교를 통해 숨겨진 프로세스 검색
이 검사를 실행한 후 여러 임시 프로세스가 나타나는 것을 볼 수 있습니다.
방법 6:역방향 스캔 실행
루트킷을 스니핑하는 탁월한 기술에는 모든 ps 스레드를 확인하는 작업이 포함됩니다. CLI 프롬프트에서 ps 명령을 실행하면 터미널에서 실행되는 명령 목록을 볼 수 있습니다. 역방향 스캐닝은 ps 이미지가 유효한 시스템 호출을 나타내는 각 프로세서 스레드를 확인하고 procfs 목록에서 조회할 수 있는지 확인합니다. 이는 루트킷이 무언가를 죽이지 않았는지 확인하는 좋은 방법입니다. 이 검사를 실행하려면 sudo unhide reverse를 입력하기만 하면 됩니다. 매우 빠르게 실행되어야 합니다. 프로그램이 실행되면 가짜 프로세스를 찾고 있음을 알려야 합니다.
방법 7:/bin/ps와 시스템 호출 비교
마지막으로 가장 포괄적인 검사에는 /bin/ps 목록의 모든 정보를 유효한 시스템 호출에서 가져온 정보와 비교하는 작업이 포함됩니다. 이 테스트를 시작하려면 sudo unhide sys를 입력하세요. 다른 것보다 실행하는 데 더 오랜 시간이 걸릴 가능성이 높습니다. 매우 다양한 출력 행을 제공하므로 -f log-to-file 명령을 사용하면 찾은 모든 내용을 더 쉽게 되돌아볼 수 있습니다.
저자 소개
케빈 애로우
Kevin Arrows는 10년 이상의 업계 경험을 보유한 경험이 풍부하고 지식이 풍부한 기술 전문가입니다. 그는 MCTS(Microsoft Certified Technology Specialist) 인증을 보유하고 있으며 최신 기술 개발에 대한 최신 정보를 얻으려는 깊은 열정을 가지고 있습니다. Kevin은 소프트웨어 개발, 사이버 보안, 클라우드 컴퓨팅과 같은 분야에서 자신의 전문 지식과 지식을 보여주면서 광범위한 기술 관련 주제에 대해 광범위하게 글을 썼습니다. 기술 분야에 대한 그의 공헌은 동료들로부터 널리 인정받고 존경받고 있으며, 복잡한 기술 개념을 명확하고 간결하게 설명하는 능력으로 높은 평가를 받고 있습니다.