WIPIVERSE

클램 안티바이러스

클램 안티바이러스(ClamAV, Clam AntiVirus)는 악성코드, 바이러스, 트로이 목마 등 다양한 유형의 보안 위협을 탐지하는 오픈소스 크로스플랫폼 안티바이러스 툴킷이다. 주로 리눅스와 유닉스 계열 운영체제의 서버 환경에서 이메일 첨부 파일이나 웹 콘텐츠의 악성 코드를 검사하는 용도로 널리 사용된다.

개발 역사

클램 안티바이러스는 폴란드의 대학생이었던 토마슈 코임(Tomasz Kojm)이 2002년 5월 8일에 첫 버전(0.10)을 공개하면서 시작되었다. 당시 목표는 이메일 서버에서 스팸 및 악성 첨부 파일을 걸러내 인터넷을 더 안전하게 만드는 것이었다. 이후 2007년 소스파이어(Sourcefire)가 이 프로젝트를 인수했고, 2013년 시스코 시스템즈(Cisco Systems)가 소스파이어를 인수하면서 현재는 시스코의 사이버 보안 부문인 탈로스(Talos) 산하에서 개발과 유지 관리가 이루어지고 있다.

주요 특징과 구성 요소

클램 안티바이러스는 GPL(일반 공중 사용 허가서) 라이선스로 배포되며, 개인 사용자와 기업·공공기관 등 단체 사용자 모두에게 무료로 제공된다. 소스 코드도 공개되어 있다.

이 소프트웨어는 다음과 같은 구성 요소를 포함한다.

  • clamscan: 명령줄 기반의 바이러스 검사 도구
  • clamd: 확장 가능한 멀티스레드 방식의 데몬(상주 프로세스)
  • freshclam: 바이러스 데이터베이스를 자동으로 업데이트하는 도구
  • clamonacc: 실시간 파일 접근 검사 기능(On-Access Scanning)을 담당하는 애플리케이션

바이러스 데이터베이스는 일반적으로 최소 4시간마다 갱신되며, 2017년 기준으로 약 576만 개 이상의 바이러스 시그니처를 보유한 것으로 보고된 바 있다.

지원 플랫폼

클램 안티바이러스는 원래 유닉스용으로 개발되었으나, 이후 AIX, BSD, HP-UX, 리눅스, macOS, OpenVMS, Tru64 UNIX, 솔라리스, 하이쿠(Haiku) 등 다양한 운영체제로 포팅되었다. 마이크로소프트 윈도우용으로는 버전 0.97.5부터 공식적으로 빌드 및 실행이 지원된다. 윈도우 환경에서는 클램윈(ClamWin)이나 이뮤넷(Immunet)과 같은 별도의 프런트엔드 프로그램을 통해 클램 엔진을 활용할 수 있다.

주요 사용 용도

클램 안티바이러스의 가장 대표적인 사용처는 메일 서버에서 서버 측 이메일 바이러스 검사기로 활용되는 것이다. 그 외에도 파일 서버, 웹 서버에 업로드된 파일의 검사, SAMBA 공유 파일의 스캔, 프록시 서버를 통과하는 데이터 패킷 검사 등 서버 환경에서 다양하게 사용된다. macOS 서버의 경우 버전 10.4부터 이메일 서비스의 바이러스 검사에 클램 엔진을 포함하고 있다.

실시간 검사 기능

리눅스 시스템에서 커널 3.8 이상을 사용하는 경우 클램 안티바이러스는 'On-Access Scanning'이라는 실시간 보호 기능을 제공한다. 이 기능은 커널의 fanotify API를 이용하여 악성으로 판정된 파일에 프로세스가 접근하는 것을 차단한다. 버전 0.102.0부터 실시간 검사 기능은 clamd 데몬에서 분리되어 clamonacc라는 별도의 애플리케이션으로 제공된다. 기본적으로 실시간 검사는 '통지만' 모드로 동작하며, 특정 파일에 대한 접근을 실제로 차단하지는 않는다.

성능 평가 및 한계

클램 안티바이러스는 여러 독립 기관의 성능 평가에서 상용 안티바이러스 제품에 비해 탐지율이 상대적으로 낮은 것으로 나타났다. 2008년 AV-TEST의 비교 평가에서는 주문형(on-demand) 탐지, 오탐(false positive) 회피, 루트킷 탐지 분야에서 낮은 점수를 받았다. 2011년 섀도서버(Shadowserver)의 6개월 테스트에서는 테스트된 모든 바이러스의 약 75.45%를 탐지하여 5위를 기록했다. 2022년 스플렁크(Splunk)의 연구에서는 일반적인 악성코드 대비 약 59.94%의 전체 탐지 효율을 보였다. 다만 DOC, DOCX, ELF, EXE 등 특정 파일 형식과 특정 악성코드 유형(트로이 목마, 봇넷)에서는 상대적으로 좋은 탐지 성능을 나타냈다.

또한 클램 안티바이러스는 감염 파일의 치료 기능이 없으며, 감염 파일의 삭제나 격리 기능만 제공한다. 이는 이 소프트웨어가 본래 데스크톱 사용자용이 아닌 메일 서버 등에서 악성 첨부 파일을 차단하는 용도로 설계되었기 때문이다.

비공식 데이터베이스

클램 안티바이러스 엔진에는 공식 데이터베이스 외에도 여러 비공식 시그니처 데이터베이스가 존재한다. 산시큐리티(Sanesecurity)와 세큐리트인포(SecuriteInfo.com) 등이 대표적이며, 주로 시스템 관리자가 이메일 메시지를 필터링하는 용도로 활용한다. 이 비공식 데이터베이스는 주로 피싱 이메일 탐지 등에 유용하지만, 전통적인 악성코드 탐지보다 오탐률이 높을 수 있다.

그래픽 인터페이스

클램 안티바이러스 자체는 그래픽 사용자 인터페이스(GUI)를 포함하지 않고 명령줄 환경에서 실행되는 것이 기본이다. 다만 다양한 플랫폼에서 제3자가 개발한 GUI가 존재한다. 리눅스용으로는 ClamTk와 KlamAV가 있고, macOS용으로는 ClamXav가 있으며, 윈도우용으로는 ClamWin, Immunet 등이 있다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기