GNU / Linux의 바이러스 : 사실인가 신화인가?

논쟁이 끝날 때마다 바이러스 y GNU / 리눅스 사용자가 나타나는 데 오래 걸리지 않습니다. (일반적으로 Windows) 그것은 무엇을 말하는가:

«Linux에는 이러한 악성 프로그램의 제작자가 거의 아무도 사용하지 않는 운영 체제를 위해 시간을 낭비하지 않기 때문에 바이러스가 없습니다.»

나는 항상 대답했습니다.

"문제는 그게 아닙니다. 그러나 이러한 악성 프로그램의 제작자는 시스템의 첫 번째 업데이트로 수정 될 무언가를 만드는 데 시간을 낭비하지 않을 것입니다. 심지어 24 시간도 채 걸리지 않습니다."

그리고 나는이 훌륭한 기사가 90 번 (2008 년) Todo Linux Magazine에서. 그의 배우 데이비드 산토 오르세로 기술적 방법으로 우리에게 제공 (하지만 이해하기 쉬움) 이유 설명 GNU / 리눅스 이러한 유형의 악성 소프트웨어가 없습니다.

100 % 추천. 이제 그들은이 주제에 대한 확고한 근거없이 말하는 사람을 침묵시킬 설득력있는 자료 이상을 갖게 될 것입니다.

기사 다운로드 (PDF) : 신화와 사실 : 리눅스와 바이러스

편집 :

다음은이 방법으로 읽는 것이 훨씬 더 편하다고 생각하는 필사 된 기사입니다.

================================================== ======================

리눅스와 바이러스에 대한 논쟁은 새로운 것이 아닙니다. 우리는 자주 목록에서 Linux 용 바이러스가 있는지 묻는 이메일을 보게됩니다. 그리고 자동으로 누군가가 긍정적으로 대답하고 그들이 더 인기가 없다면 그것은 Linux가 Windows만큼 널리 퍼지지 않았기 때문이라고 주장합니다. 또한 바이러스 백신 개발자가 Linux 바이러스 버전을 출시한다는 보도 자료도 자주 있습니다.

개인적으로 나는 바이러스가 리눅스에 존재하는지 여부에 대해 메일이나 배포 목록을 통해 다른 사람들과 가끔 토론을했습니다. 그것은 신화이지만, 특히 경제적 이익으로 인해 발생하는 경우 신화 또는 오히려 사기를 철거하는 것은 복잡합니다. 누군가는 리눅스에 이런 종류의 문제가 없다면 그것을 사용하는 사람이 거의 없기 때문이라는 생각을 전달하는 데 관심이 있습니다.

이 보고서를 발행 할 당시 나는 리눅스에서 바이러스의 존재에 대한 명확한 글을 쓰고 싶었을 것입니다. 불행히도 미신과 경제적 이익이 만연하면 결정적인 것을 구축하기가 어렵습니다.
그러나 우리는 논쟁을 원하는 사람의 공격을 무장 해제하기 위해 여기에서 합리적으로 완전한 논쟁을 할 것입니다.

바이러스 란?

우선 바이러스가 무엇인지 정의하는 것으로 시작하겠습니다. 자동으로 복사 및 실행되는 프로그램으로 사용자의 허가 나 알지 못하는 사이에 컴퓨터의 정상적인 기능을 변경하는 것을 목표로합니다. 이를 위해 바이러스는 실행 파일을 코드에 감염된 다른 파일로 대체합니다. 정의는 표준이며 바이러스에 대한 Wikipedia 항목의 한 줄 요약입니다.
이 정의에서 가장 중요한 부분이자 다른 맬웨어와 바이러스를 구별하는 부분은 바이러스가 사용자의 허가 나 지식없이 자체적으로 설치된다는 것입니다. 자체 설치되지 않으면 바이러스가 아닙니다. 루트킷이나 트로이 목마 일 수 있습니다.

루트킷은 사용자 영역 유틸리티에서 특정 프로세스를 숨길 수있는 커널 패치입니다. 즉, 주어진 시간에 실행되는 것을 볼 수있는 유틸리티가 특정 프로세스 또는 특정 사용자를 표시하지 않는 목적을 가진 커널 소스 코드의 수정입니다.

트로이 목마는 유사합니다. 특정 사기 활동을 숨기기 위해 특정 서비스의 소스 코드를 수정 한 것입니다. 두 경우 모두 Linux 시스템에 설치된 정확한 버전의 소스 코드를 얻고, 코드를 패치하고, 다시 컴파일하고, 관리자 권한을 얻고, 패치 된 실행 파일을 설치하고, 서비스를 초기화해야합니다 (트로이 목마의 경우). 또는 운영 체제 완료-
루트킷 –. 우리가 볼 수 있듯이 그 과정은 사소한 것이 아니며 아무도이 모든 것을 "실수로"할 수 없습니다. 둘 다 설치 과정에서 관리자 권한을 가진 사람이 의식적으로 기술적 인 결정을 내리는 일련의 단계를 실행해야합니다.

중요하지 않은 의미 뉘앙스가 아닙니다. 바이러스가 자체적으로 설치 되려면 감염된 프로그램을 일반 사용자로 실행하기 만하면됩니다. 반면에 루트킷이나 트로이 목마를 설치하려면 악의적 인 사람이 시스템의 루트 계정에 직접 들어가서 자동으로 탐지 할 수있는 일련의 단계를 수행해야합니다. 바이러스는 빠르고 효율적으로 퍼집니다. 루트킷이나 트로이 목마는 특별히 우리를 표적으로 삼아야합니다.

Linux에서 바이러스 전파 :

따라서 바이러스의 전송 메커니즘은 바이러스를 실제로 정의하는 것이며 바이러스의 존재를위한 기초입니다. 운영 체제는 효율적이고 자동화 된 전송 메커니즘을 개발하기가 더 쉬울수록 바이러스에 더 민감합니다.

스스로 퍼지기를 원하는 바이러스가 있다고 가정합니다. 프로그램을 시작할 때 일반 사용자가 무고하게 시작했다고 가정합니다. 이 바이러스에는 두 가지 전염 메커니즘이 있습니다.

  • 다른 프로세스의 메모리를 만져서 자신을 복제하고 런타임에 자신을 고정합니다.
  • 파일 시스템 실행 파일을 열고 해당 코드 (payload)를 실행 파일에 추가합니다.

우리가 고려할 수있는 모든 바이러스에는이 두 가지 전송 메커니즘 중 하나 이상이 있습니다. O 둘. 더 이상 메커니즘이 없습니다.
첫 번째 메커니즘과 관련하여 Linux의 가상 메모리 아키텍처와 인텔 프로세서의 작동 방식을 기억해 보겠습니다. 여기에는 0에서 3까지 번호가 매겨진 0 개의 링이 있습니다. 숫자가 낮을수록 해당 링에서 실행되는 코드의 권한이 커집니다. 이러한 링은 프로세서의 상태와 일치하므로 특정 링에있는 시스템에서 수행 할 수있는 작업과 일치합니다. Linux는 커널에 링 3을 사용하고 프로세스에 링 0을 사용합니다. 링 3에서 실행되는 프로세스 코드도없고, 링 3에서 실행되는 커널 코드도 없습니다. 링 80에서 커널에 대한 단일 진입 점 만 있습니다. XNUMXh 인터럽트는 해당 영역에서 점프 할 수 있습니다. 커널 코드가있는 영역에 대한 사용자 코드.

일반적으로 Unix와 특히 Linux의 아키텍처는 바이러스의 확산을 가능하게하지 않습니다.

가상 메모리를 사용하는 커널은 각 프로세스가 자신에게 모든 메모리를 가지고 있다고 믿게 만듭니다. 링 3에서 작동하는 프로세스는 작동하는 링에 대해 구성된 가상 메모리 만 볼 수 있습니다. 다른 프로세스의 메모리가 보호되는 것은 아닙니다. 한 프로세스의 경우 다른 프로세스의 메모리가 주소 공간 밖에 있다는 것입니다. 프로세스가 모든 메모리 주소를 이길 경우 다른 프로세스의 메모리 주소를 참조 할 수도 없습니다.

왜 속일 수 없습니까?
주석 처리 된 내용을 수정하려면-예를 들어 링 0에서 진입 점 생성, 인터럽트 벡터 수정, 가상 메모리 수정, LGDT 수정…-링 0에서만 가능합니다.
즉, 프로세스가 다른 프로세스 나 커널의 메모리를 건드릴 수 있으려면 커널 자체가되어야합니다. 그리고 단일 진입 점이 있고 매개 변수가 레지스터를 통해 전달된다는 사실은 트랩을 복잡하게 만듭니다. 실제로 수행해야하는 작업은 레지스터에 의해 전달되고 이는 어텐션 루틴의 경우로 구현됩니다. .
또 다른 시나리오는 링 0에 대한 문서화되지 않은 호출 수백 건이있는 운영 체제의 경우입니다.이 경우 가능합니다. 트랩을 개발할 수있는 잘못 구현 된 잊혀진 호출이 항상있을 수 있습니다. 단순한 단계 메커니즘은 아닙니다.

이러한 이유로 가상 메모리 아키텍처는 이러한 전송 메커니즘을 방지합니다. 어떤 프로세스도 (루트 권한이있는 사람조차도) 다른 사람의 메모리에 액세스 할 방법이 없습니다. 프로세스가 커널을 볼 수 있다고 주장 할 수 있습니다. 논리 메모리 주소 0xC0000000에서 매핑됩니다. 그러나 실행되는 프로세서 링 때문에 수정할 수 없습니다. 다른 링에 속하는 메모리 영역이기 때문에 트랩을 생성합니다.

"솔루션"은 커널 코드가 파일 일 때 수정하는 프로그램입니다. 그러나 이것들이 다시 컴파일된다는 사실은 불가능합니다. 세계에는 수백만 개의 서로 다른 바이너리 커널이 있으므로 바이너리를 패치 할 수 없습니다. 단순히 재 컴파일 할 때 커널 실행 파일에서 무언가를 넣거나 제거했거나 컴파일 버전을 식별하는 레이블 중 하나의 크기를 변경했거나 (자발적으로도 수행되는 작업) 바이너리 패치를 적용 할 수 없습니다. 대안은 인터넷에서 소스 코드를 다운로드하고, 패치하고, 적절한 하드웨어에 맞게 구성하고, 컴파일하고, 설치하고, 시스템을 재부팅하는 것입니다. 이 모든 작업은 프로그램에 의해 자동으로 수행되어야합니다. 인공 지능 분야에서는 상당히 도전적입니다.
보시다시피, 루트로서의 바이러스조차도이 장벽을 뛰어 넘을 수 없습니다. 남은 유일한 해결책은 실행 파일 간의 전송입니다. 아래에서 볼 수 있듯이 작동하지 않습니다.

관리자로서의 나의 경험 :

XNUMX 년 이상 동안 데이터 센터, 학생 실험실, 회사 등에 수백 대의 컴퓨터에 설치하여 Linux를 관리해 왔습니다.

  • 나는 바이러스에 걸린 적이 없다
  • 나는 누군가를 만난 적이 없다
  • 나는 그에게 일어난 누군가를 만난 사람을 본 적이 없다

나는 리눅스 바이러스를 본 것보다 네스호 괴물을 본 사람을 더 많이 알고있다.
개인적으로 나는 내가 무모하다는 것을 인정하고 자칭 "전문가"가 "Linux 용 바이러스"라고 부르는 여러 프로그램을 시작했습니다. 이제부터는 텍스트를 현명하게 만들기 위해 바이러스라고 부르겠습니다. 바이러스가 가능한지 확인하기 위해 내 컴퓨터에 대한 나의 일반적인 계정 : 주변을 순환하는 bash 바이러스와 파일을 감염시키지 않은 바이러스와 매우 유명 해져 언론에 등장한 바이러스. 나는 그것을 설치하려고했다. 그리고 XNUMX 분의 작업 후, 그의 요구 중 하나가 MSDOS 유형의 파티션에 tmp 디렉토리를 두라는 것을 알았을 때 포기했습니다. 저는 개인적으로 tmp에 대한 특정 파티션을 만들고 FAT로 포맷하는 사람을 모릅니다.
사실, 내가 Linux 용으로 테스트 한 일부 소위 바이러스는 높은 수준의 지식과 루트 암호를 설치해야합니다. 시스템을 감염시키기 위해 우리의 적극적인 개입이 필요한 경우 최소한 "엉뚱한"바이러스로 분류 할 수 있습니다. 또한 어떤 경우에는 UNIX 및 루트 암호에 대한 광범위한 지식이 필요합니다. 자동 설치와는 거리가 멉니 다.

Linux에서 실행 파일 감염 :

Linux에서 프로세스는 유효 사용자 및 유효 그룹이 허용하는 것을 간단히 수행 할 수 있습니다. 실제 사용자를 현금으로 교환하는 메커니즘이있는 것은 사실이지만 다른 것은 거의 없습니다. 실행 파일의 위치를 ​​살펴보면 루트 만 이러한 디렉토리와 포함 된 파일 모두에서 쓰기 권한을 가지고 있음을 알 수 있습니다. 즉, 루트 만 이러한 파일을 수정할 수 있습니다. 이것은 70 년대부터 유닉스에서, 그 기원부터 리눅스에서, 그리고 권한을 지원하는 파일 시스템에서는 다른 동작을 허용하는 오류가 아직 나타나지 않았습니다. ELF 실행 파일의 구조는 알려져 있고 잘 문서화되어 있으므로 기술적으로이 유형의 파일이 다른 ELF 파일에 페이로드를로드 할 수 있습니다. 첫 번째는 두 번째 파일에 대한 읽기, 쓰기 및 실행 액세스 권한이 있습니다. 일반 사용자로서 얼마나 많은 파일 시스템 실행 파일을 감염시킬 수 있습니까?
이 질문에는 간단한 대답이 있습니다. "감염"할 수있는 파일 수를 알고 싶다면 다음 명령을 실행합니다.

$ find / -type f -perm -o=rwx -o \( -perm -g=rwx -group `id -g` \) -o \( -perm -u=rwx -user `id -u` \) -print 2> /dev/null | grep -v /proc

/ proc 디렉토리는 운영 체제의 작동 방식에 대한 정보를 표시하는 가상 파일 시스템이므로 제외합니다. 실행 권한을 가진 파일 유형 파일은 종종 읽고, 쓰고, 실행되는 것처럼 보이는 가상 링크이기 때문에 문제가되지 않으며 사용자가 시도해도 작동하지 않습니다. 우리는 또한 많은 오류를 배제합니다. 특히 / proc 및 / home에는 일반 사용자가 입력 할 수없는 디렉토리가 많기 때문에-이 스크립트는 시간이 오래 걸립니다. 우리의 특별한 경우, 네 사람이 일하는 기계에서 대답은 다음과 같습니다.

/tmp/.ICE-unix/dcop52651205225188
/tmp/.ICE-unix/5279
/home/irbis/kradview-1.2/src
/kradview

출력에는 가상의 바이러스가 실행 된 경우 감염 될 수있는 세 개의 파일이 표시됩니다. 처음 두 개는 시작시 삭제되고 바이러스의 영향을받지 않는 Unix 소켓 유형 파일이고 세 번째는 재 컴파일 할 때마다 삭제되는 개발 프로그램 파일입니다. 실용적인 관점에서 바이러스는 퍼지지 않을 것입니다.
우리가 보는 바에 따르면 페이로드를 확산하는 유일한 방법은 루트가되는 것입니다. 이 경우 바이러스가 작동하려면 사용자에게 항상 관리자 권한이 있어야합니다. 이 경우 파일을 감염시킬 수 있습니다. 하지만 여기에 문제가 있습니다. 감염을 퍼 뜨리려면 다른 실행 파일을 가져 와서 루트로만 컴퓨터를 사용하는 다른 사용자에게 메일을 보내고 프로세스를 반복해야합니다.
일반적인 작업을위한 관리자가되거나 일상적인 많은 응용 프로그램을 실행해야하는 운영 체제에서는 이러한 경우가 될 수 있습니다. 그러나 Unix에서는 시스템을 구성하고 구성 파일을 수정하려면 관리자가되어야하므로 루트 계정이 일일 계정으로 사용하는 사용자 수가 적습니다. 그 이상입니다. 일부 Linux 배포판에는 루트 계정이 활성화되어 있지 않습니다. 대부분의 경우 그래픽 환경에 액세스하면 배경이 강렬한 빨간색으로 바뀌고이 계정을 사용해서는 안된다는 것을 알리는 지속적인 메시지가 반복됩니다.
마지막으로 루트로 수행해야하는 모든 작업은 위험없이 sudo 명령으로 수행 할 수 있습니다.
이러한 이유로 Linux에서 실행 파일은 루트 계정을 공통 사용 계정으로 사용하지 않는 한 다른 사람을 감염시킬 수 없습니다. 바이러스 백신 회사는 Linux 용 바이러스가 있다고 주장하지만 실제로 Linux에서 생성 될 수있는 가장 가까운 것은 사용자 영역의 트로이 목마입니다. 이러한 트로이 목마가 시스템에 영향을 미칠 수있는 유일한 방법은 루트로 필요한 권한으로 실행하는 것입니다. 일반적으로 시스템을 일반 사용자로 사용하는 경우 일반 사용자가 시작한 프로세스가 시스템을 감염시킬 수 없습니다.

신화와 거짓말 :

우리는 Linux에서 바이러스에 대한 많은 오해, 속임수 및 단순한 거짓말을 발견합니다. 같은 잡지에 실린 기사에 매우 불쾌한 Linux 용 바이러스 백신 제조업체의 대표와 얼마 전에 논의 된 내용을 바탕으로 목록을 작성해 보겠습니다.
이 토론은 Linux에서 바이러스의 모든 측면을 다루기 때문에 좋은 참조 사례입니다. 특정 토론에서 논의되었지만 다른 포럼에서 여러 번 반복 된이 모든 신화를 하나씩 검토 할 것입니다.

신화 1 :
"모든 악성 프로그램, 특히 바이러스가 감염되기 위해 루트 권한이 필요한 것은 아닙니다. 특히 다른 실행 파일을 감염시키는 특정 실행 바이러스 (ELF 형식)의 경우".

답변 :
그러한 주장을하는 사람은 유닉스 권한 시스템이 어떻게 작동하는지 모릅니다. 파일에 영향을 미치려면 바이러스가 실행하려는 실행 파일에 대해 읽기 권한 (수정하려면 읽어야 함) 및 수정 내용이 유효하려면 쓰기 권한이 있어야합니다.
예외없이 항상 그렇습니다. 그리고 모든 배포판에서 루트가 아닌 사용자에게는 이러한 권한이 없습니다. 그런 다음 단순히 뿌리가 아니라면 감염이 불가능합니다. 경험적 테스트 : 이전 섹션에서 감염의 영향을받을 수있는 파일 범위를 확인하는 간단한 스크립트를 보았습니다. 컴퓨터에서 실행하면 무시할 수있는 정도이고 시스템 파일과 관련하여 null이 표시됩니다. 또한 Windows와 같은 운영 체제와 달리 일반 사용자가 일반적으로 사용하는 프로그램으로 일반 작업을 수행하기 위해 관리자 권한이 필요하지 않습니다.

신화 2 :
"또한 시스템에 원격으로 들어가기 위해 루트가 될 필요도 없습니다. Slapper의 경우, Apache의 SSL (보안 통신을 허용하는 인증서)의 취약성을 악용하여 2002 년 XNUMX 월에 자체 좀비 머신 네트워크를 생성 한 웜입니다.".

답변 :
이 예는 바이러스가 아니라 웜을 의미합니다. 차이점은 매우 중요합니다. 웜은 인터넷이 자신을 전송하기 위해 서비스를 악용하는 프로그램입니다. 로컬 프로그램에는 영향을주지 않습니다. 따라서 서버에만 영향을줍니다. 특정 기계가 아닙니다.
웜은 항상 매우 적고 발생 빈도는 무시할 수 있습니다. 정말 중요한 세 사람은 인터넷이 무고한 80 년대에 태어 났고 모두가 모두를 신뢰했습니다. 그들이 sendmail, fingerd 및 rexec에 영향을 미쳤다는 것을 기억합시다. 오늘날 상황은 더 복잡합니다. 아직 존재한다는 사실을 부정 할 수는 없지만, 확인하지 않으면 매우 위험합니다. 하지만 지금은 웜에 대한 반응 시간이 매우 짧습니다. 이것은 Slapper의 경우입니다. 웜 자체가 출현하기 두 달 전에 발견되고 패치 된 취약점에서 생성 된 웜입니다.
Linux를 사용하는 모든 사람이 항상 Apache를 설치하고 실행하고 있다고 가정하더라도, 단순히 매월 패키지를 업데이트하는 것만으로도 위험을 감수 할 수 없을 것입니다.
Slapper가 야기한 SSL 버그가 중요했다는 것은 사실입니다. 사실 SSL2와 SSL3의 전체 역사에서 발견 된 가장 큰 버그 였기 때문에 몇 시간 만에 수정되었습니다. 이 문제가 발견되고 해결 된 지 두 달 후에 누군가 이미 수정 된 버그에 대해 웜을 만들었고 이것이 취약점으로 주어질 수있는 가장 강력한 예라고 적어도 안심시킵니다.
일반적으로 웜에 대한 해결책은 바이러스 백신을 구입하여 설치하고 상주하는 데 컴퓨팅 시간을 낭비하는 것이 아닙니다. 해결책은 우리 배포판의 보안 업데이트 시스템을 사용하는 것입니다. 배포판을 업데이트하면 문제가 없습니다. 필요한 서비스 만 실행하는 것도 두 가지 이유에서 좋은 생각입니다. 리소스 사용을 개선하고 보안 문제를 방지합니다.

신화 3 :
"핵심이 무적이라고 생각하지 않습니다. 사실, LRK (Linux Rootkits Kernel)라는 악성 프로그램 그룹이 있는데, 이는 정확히 커널 모듈의 취약점을 악용하고 시스템 바이너리를 대체하는 것을 기반으로합니다.".

답변 :
루트킷은 기본적으로 특정 사용자 및 프로세스가 / proc 디렉토리에 나타나지 않기 때문에 일반적인 도구에서 특정 사용자 및 프로세스의 존재를 숨길 수있는 커널 패치입니다. 정상적인 것은 공격이 끝날 때이를 사용한다는 것입니다. 우선 원격 취약성을 악용하여 시스템에 액세스 할 수 있습니다. 그런 다음 일련의 공격을 수행하여 루트 계정을 가질 때까지 권한을 상승시킵니다. 그들이 할 때의 문제는 탐지되지 않고 우리 컴퓨터에 서비스를 설치하는 방법입니다. 루트킷이 들어오는 곳입니다. 우리가 숨기고 싶은 서비스의 효과적인 사용자가 될 사용자가 생성되고, 그들은 루트킷을 설치하고, 해당 사용자와 해당 사용자에게 속한 모든 프로세스를 모두 숨 깁니다.
사용자의 존재를 숨기는 방법은 바이러스에 유용합니다. 우리는 자세히 논의 할 수 있지만 루트킷을 사용하여 스스로 설치하는 바이러스는 재미있어 보입니다. 바이러스의 역학을 상상해 봅시다 (의사 코드) :
1) 바이러스가 시스템에 들어갑니다.
2) 커널 소스 코드를 찾습니다. 그렇지 않은 경우 그는 직접 설치합니다.
3) 해당 머신에 적용되는 하드웨어 옵션에 대한 커널을 구성합니다.
4) 커널을 컴파일하십시오.
5) 새 커널을 설치하십시오. 필요한 경우 LILO 또는 GRUB 수정.
6) 머신을 재부팅합니다.

단계 (5) 및 (6)에는 루트 권한이 필요합니다. 감염자가 단계 (4)와 (6)을 탐지하지 못하는 것은 다소 복잡합니다. 하지만 재미있는 것은 (2) 단계와 (3) 단계를 자동으로 수행 할 수있는 프로그램이 있다고 믿는 사람이 있다는 것입니다.
무엇보다도 "리눅스 머신이 더 많으면 더 많은 바이러스가있을 것"이라고 말하는 사람을 만나 "바이러스 백신을 설치하고 지속적으로 업데이트"하도록 권장하는 경우 회사와 관련이있을 수 있습니다. 바이러스 백신 및 업데이트를 판매합니다. 의심스러운 사람이 될 수 있습니다.

Linux 용 바이러스 백신 :

Linux에 좋은 바이러스 백신이 있다는 것은 사실입니다. 문제는 바이러스 백신 옹호자들이 주장하는 바를 수행하지 않는다는 것입니다. 그 기능은 맬웨어 및 바이러스에서 Windows로 전달되는 메일을 필터링하고 SAMBA를 통해 내 보낸 폴더에서 Windows 바이러스의 존재를 확인하는 것입니다. 따라서 시스템을 메일 게이트웨이 또는 Windows 시스템 용 NAS로 사용하면 보호 할 수 있습니다.

Clam-AV :

GNU / Linux의 주요 바이러스 백신 : ClamAV에 대해 이야기하지 않고 보고서를 완료하지 않을 것입니다.
ClamAV는 시장에서 구할 수있는 대부분의 Unix 용으로 컴파일되는 매우 강력한 GPL 바이러스 백신입니다. 스테이션을 통과하는 메일 메시지에 대한 첨부 파일을 분석하고 바이러스를 필터링하도록 설계되었습니다.
이 애플리케이션은 sendmail과 완벽하게 통합되어 회사에 메일을 제공하는 Linux 서버에 저장 될 수있는 바이러스를 필터링 할 수 있습니다. 디지털 지원과 함께 매일 업데이트되는 바이러스 데이터베이스가 있습니다. 데이터베이스는 하루에 여러 번 업데이트되며 활기차고 흥미로운 프로젝트입니다.
이 강력한 프로그램은 RAR (2.0), Zip, Gzip, Bzip2, Tar, MS OLE2, MS 캐비닛 파일, MS CHM (HTML COprinted) 및 MS SZDD와 같은 더 복잡한 형식의 첨부 파일에서도 바이러스를 분석 할 수 있습니다. .
ClamAV는 또한 mbox, Maildir 및 RAW 메일 파일과 UPX, FSG 및 Petite로 압축 된 Portable Executable 파일을 지원합니다. Clam AV 및 spamassassin 쌍은 Unix 메일 서버로부터 Windows 클라이언트를 보호하는 완벽한 쌍입니다.

결론

Linux 시스템에 취약점이 있습니까? 대답은 확실히 그렇습니다.
올바른 생각을 가진 사람은 그것을 의심하지 않습니다. Linux는 OpenBSD가 아닙니다. 또 다른 것은 Linux 시스템이 제대로 업데이트 된 취약점 창입니다. 자문 해 본다면 이러한 보안 허점을 활용하고이를 악용 할 수있는 도구가 있습니까? 네,하지만 이것들은 바이러스가 아니라 악용입니다.

이 바이러스는 Windows 방어자에 의해 항상 Linux 결함 / 문제로 간주되어 왔으며 실제 바이러스의 존재를 복잡하게 만드는 몇 가지 더 많은 어려움을 극복해야합니다. 재 컴파일 된 커널, 많은 애플리케이션의 여러 버전, 많은 배포판, 그렇지 않은 것 자동으로 사용자에게 투명하게 전달됩니다. 현재 이론상의 "바이러스"는 루트 계정에서 수동으로 설치해야합니다. 그러나 그것은 바이러스로 간주 될 수 없습니다.
제가 항상 학생들에게 말했듯이 : 저를 믿지 마세요. 머신에 루트킷을 다운로드하여 설치합니다. 더 많은 정보를 원하면 시장에 나와있는 "바이러스"의 소스 코드를 읽어보십시오. 진실은 소스 코드에 있습니다. "자체로 선포 된"바이러스가 코드를 읽은 후에도 계속 이름을 지정하는 것은 어렵습니다. 그리고 코드를 읽는 방법을 모르는 경우 권장하는 단일 보안 조치입니다. 루트 계정은 시스템 관리에만 사용하고 보안 업데이트를 최신 상태로 유지하는 것입니다.
그래야만 바이러스가 침입 할 수 없으며 웜이 침입하거나 누군가가 여러분의 컴퓨터를 성공적으로 공격 할 가능성은 거의 없습니다.