리눅스 트로이 목마를 탐지하고 제거하는 방법?


16

나는 최근에 이것을 다시 우연히 발견했다.

예, 신뢰할 수없는 출처에서 임의의 PPA / 소프트웨어를 추가하면 문제가 발생한다는 것을 알고 있습니다. 나는 그렇게하지 않지만 많은 사람들이한다 (많은 Linux 블로그와 타블로이드는 시스템을 손상 시키거나 여전히 악화되어 보안을 손상시킬 수 있음을 경고하지 않고 멋진 앱을위한 PPA 추가를 장려합니다.)

트로이 목마 또는 악성 응용 프로그램 / 스크립트를 어떻게 탐지하고 제거 할 수 있습니까?


askubuntu.com/questions/13265/ 에서 같은 질문을했습니다 (여기서 3 분 후). 이것이 위반 사항 인 경우 알려 주시면 그 중 하나를 삭제하겠습니다.
iamsid

답변:


20

일반적인 레시피는 없습니다. 시스템이 알 수없는 트로이 목마에 감염된 경우 다시 설치할 수 있습니다.

트로이 목마가 특정 방식으로 작동한다는 것을 알고 있다면 (예를 들어, 트로이 목마가 커널을 감염시키지 않는다는 것을 알고있는 경우) 복구하는 데 덜 거친 방법이있을 수 있습니다. 그러나 그것은 트로이 목마가 어떻게 행동하는지 아는 것에 전적으로 달려 있습니다. 컴퓨터에 동의없이 스팸을 보내는 등의 증상 만있는 경우 일반적인 방법은 없습니다. 트로이 목마 탐지기는 트로이 목마 디자이너보다 똑똑해야합니다 (행운). 트로이 목마에 관한 한, 탐지 및 숨기기는 총기 및 갑옷과 같습니다. 기술적 인 확대가 있으며 어느 당사자도 본질적인 이점이 없습니다 (숨은 사람이 먼저 출발하지만).

많은 시스템에는 안전한 배포 채널이 있습니다. 예를 들어, apt 기반 도구 (apt-get, aptitude, synaptic, software center 등)를 사용하여 Ubuntu 리포지토리에서 패키지를 설치하면 도구는 Ubuntu가 신뢰하는 사람이 패키지에 서명 (검증)했는지 확인합니다. (대부분의 배포판에는 비슷한 메커니즘이 있습니다.) PPA에서 패키지를 설치할 때 PPA 소유자가 패키지를 검사 했으므로 PPA 소유자를 신뢰할 이유가없는 경우 도움이되지 않습니다.

트로이 목마와 백도어에 대해서는 Ken Thompson 의 Turing 상 강의 인 Trusting on Trusting Trust를 읽어 보시기 바랍니다 . 요약하자면, 그는 로그인 프로그램을 컴파일 할 때 비밀 암호로 로그인 할 수있는 코드를 추가하도록 컴파일러를 변경했습니다. 그런 다음 컴파일러가 자체 컴파일 될 때 백도어를 추가하는 코드를 삽입하도록 컴파일러를 변경했습니다. 그런 다음 전체 시스템 (특히 로그인 프로그램과 컴파일러)을 다시 컴파일했습니다. 마침내 그는 컴파일러 소스를 원래의 의심 할 수없는 소스로 복원했습니다. 다시, 켄 톰슨의 기사를 읽으십시오 . 그런 다음 David Wheeler의 반론을 읽을 수도 있습니다 . 아마도 Bruce Schneier 의 블로그 기사를 통해 가장 잘 이해할 수있을 것 입니다.


설명 답변과 해당 기사 추천에 +1 : 내 지식을 넓혔습니다. 감사합니다.
iamsid

7

이 기사에서 설명하는 "트로이 목마"를 올바르게 이해하면 "정상"맬웨어로 "정상"방식으로 발견 할 수 없습니다. 이 IRCd는 사용되기 전까지는 정상적으로 작동 했으므로 관리자는 다음과 같은 경우에만이 보안 허점을 찾을 수있었습니다.

"실제"Linux 맬웨어는 Linux 또는 AV LiveCD Rescue Disk 용 AV 소프트웨어에서도 탐지되므로이 소프트웨어를 사용하여 컴퓨터를 검사 할 수 있습니다. SecureList 목록 에서 볼 수 있듯이 Linux에는 이름이 1941 개의 항목이 있으며 해당 소프트웨어는 Kaspersky 소프트웨어에서 감지해야합니다. 이 목록을 간단히 살펴보면 많은 DDoS 도구 및 공격에 대한 항목이 자동으로 확산되지 않고 공격 도구로만 사용될 수 있음을 알 수 있습니다 (유해하지 않음).

크래커에 의해 설치된 백도어 / 루트킷을 검사하기 위해 파일 체크섬을 검사하는 도구를 사용할 수 있습니다 (클린 시스템에서 파일 및 체크섬 목록을 생성하고 서버 소프트웨어 업데이트 후 업데이트해야 함). 체크섬이 잘못된 모든 새 파일 또는 파일이 의심됩니다. 체크섬 및이를 생성하는 도구 목록은 읽기 전용 매체에 있어야합니다 (크래커는 예를 들어 잘못된 체크섬을 표시하는 자체 버전의 경우 md5sum도 변경할 수 있음). 맬웨어를 찾는 이러한 방법은 소프트웨어가 매일 업그레이드되지 않는 '안정적인'시스템에서 사용될 수 있습니다.

netstat로컬로 실행 하여 네트워크 트래픽을 확인 하여 일부 맬웨어를 탐지 할 수 있지만 시스템이 감염된 경우 표시된 데이터 netstat도 변경 될 수 있습니다. 이 경우 일부 솔루션은 다른 컴퓨터 (예 : 라우터)에서 네트워크 트래픽을 모니터링하여 인터넷으로 전송되는 트래픽을 확인하는 것입니다.


4

SELinux 및 AppArmor는 트로이 목마 / 루트킷 및 기타 감염 예방을 위해 존재합니다. SELinux의 경우를 더 잘 알고 있습니다. SELinux를 사용하면 시스템에 설치 한 모든 프로세스 (데몬 포함)에 대한 컨텍스트를 제공합니다. 또한 컨텍스트와 함께 작업하고 일치하도록 파일 시스템에 레이블을 지정합니다. 프로세스가 해당 컨텍스트 내에없는 작업을 시도하면 메시지가 표시되고 SELinux가 적용 모드 인 경우 조치를 완료 할 수 없습니다.
이 방법으로 ircd 트로이 목마가 ps 명령이나 다른 것을 덮어 쓰려고한다면 (트로이 목마 / 루트킷 / 웜이 탐지를 피하는 일반적인 전략), 그렇게 할 수 없습니다. 그리고 당신은 통보받을 것입니다.
구성하기는 어렵지만 현재 내 컴퓨터는 SELinux를 적용한 상태로 작업하고 있으며 Fedora 랩탑 2 대는 데스크탑을 필요로하는 번거 로움없이 할 수 있습니다.
내 홈 서버조차도 이제 시행 모드에 있습니다.
또 다른 전략은 정기적 인 루트킷 감지기 실행으로 중요한 명령의 체크섬을 계산하고 기본 명령의 변경 사항에 대해 알려줍니다.
SELinux 및 rkhunter 사용 가능 (클래 마브 바이러스 백신)을 모두 사용합니다.

문안 인사


2

또 다른 응답자는 "hiders"(스텔스 맬웨어)가 "detector"보다 본질적인 이점이 있다고 주장했습니다. 동의하지 않습니다. 이는 맬웨어 탐지를 위해 서명 또는 휴리스틱에 의존하는 탐지 방법으로 제한되는 경우에 해당됩니다. 그러나 맬웨어를 탐지하는 또 다른 방법이 있습니다 : 알려진 제품 확인. Tripwire, AIDE 등은 디스크의 파일을 확인할 수 있습니다. Second Look 은 실행중인 커널 및 프로세스를 확인할 수 있습니다. Second Look은 메모리 포렌식을 사용하여 운영 체제, 활성 서비스 및 응용 프로그램을 직접 검사합니다. 메모리의 코드를 Linux 배포 공급 업체에서 릴리스 한 코드와 비교합니다. 이런 방식으로 루트킷과 백도어에 의한 악의적 인 수정 사항과 실행중인 권한이없는 프로그램 (트로이 목마 등)을 즉시 찾아 낼 수 있습니다.

(공개 : 저는 Second Look의 수석 개발자입니다.)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.