Linux 서버에서 보안 결함 및 맬웨어를 검사하는 11가지 도구

리눅스 시스템은 종종 철통 보안을 자랑하는 것으로 여겨지지만, 여전히 간과할 수 없는 심각한 위협에 노출되어 있습니다.

루트킷, 악성 바이러스, 랜섬웨어, 그리고 다양한 악성 프로그램들은 리눅스 서버를 공격하여 심각한 문제를 야기할 수 있습니다.

운영체제와 관계없이, 서버 보안 조치는 필수 불가결합니다. 주요 기업 및 조직들은 보안을 강화하고, 결함 및 악성코드를 탐지하며, 이를 수정하고 예방하기 위한 다양한 도구들을 개발해 왔습니다.

다행히도, 이러한 과정에 도움을 줄 수 있는 저렴하거나 무료로 이용 가능한 도구들이 존재합니다. 이러한 도구들은 리눅스 기반 서버의 다양한 부분에서 잠재적인 취약점을 찾아낼 수 있습니다.

리니스

리니스(Lynis)는 널리 알려진 보안 도구로, 리눅스 전문가들이 선호하는 선택지 중 하나입니다. 유닉스 및 macOS 기반 시스템에서도 작동하며, 2007년부터 GPL 라이선스 하에 공개된 오픈 소스 소프트웨어입니다.

리니스는 보안 취약점과 구성상의 오류를 식별할 수 있습니다. 하지만 단순한 탐지를 넘어, 발견된 취약점을 수정하기 위한 권장 조치까지 제공합니다. 상세한 감사 보고서를 얻기 위해서는 호스트 시스템에서 직접 실행해야 합니다.

리니스는 별도의 설치 과정이 필요하지 않습니다. 다운로드한 패키지나 tarball 형태를 압축 해제한 후 바로 실행할 수 있습니다. 전체 문서 및 소스 코드 접근을 위해 Git 저장소에서 클론하여 사용할 수도 있습니다.

리니스는 Rkhunter의 개발자인 Michael Boelen이 만들었습니다. 개인 사용자 및 기업용 서비스를 제공하며, 두 경우 모두 탁월한 성능을 자랑합니다.

Chkrootkit

이름에서 짐작할 수 있듯이, Chkrootkit은 루트킷 존재 여부를 확인하는 도구입니다. 루트킷은 권한 없는 사용자가 서버에 접근할 수 있도록 허용하는 악성 소프트웨어입니다. 리눅스 서버를 운영한다면 루트킷은 심각한 문제가 될 수 있습니다.

Chkrootkit은 루트킷을 탐지하는 데 사용되는 가장 인기 있는 유닉스 기반 프로그램 중 하나입니다. ‘strings’ 및 ‘grep’ (리눅스 명령어)과 같은 도구를 활용하여 잠재적인 문제를 감지합니다.

만약 이미 손상된 시스템을 확인해야 한다면, 대체 디렉토리나 복구 디스크에서 실행할 수 있습니다. Chkrootkit의 다른 기능으로는 “wtmp” 및 “lastlog” 파일에서 삭제된 항목을 찾고, 스니퍼 기록 또는 루트킷 설정 파일을 검색하며, “/proc” 또는 “readdir” 프로그램 호출에서 숨겨진 항목을 확인하는 기능이 있습니다.

Chkrootkit을 사용하기 위해서는 서버에 최신 버전을 다운로드한 후 소스 파일을 추출하여 컴파일해야 합니다.

Rkhunter

개발자 Michael Boelen이 2003년에 개발한 Rkhunter(Rootkit Hunter)는 POSIX 시스템에 적합하며 루트킷 및 기타 취약점 탐지에 도움을 줄 수 있는 도구입니다. Rkhunter는 파일(숨겨진 파일 포함), 핵심 디렉토리, 커널 모듈, 그리고 잘못 설정된 권한을 철저히 검토합니다.

정기적인 검사 후, 데이터베이스에 기록된 안전한 파일과 비교하여 의심스러운 프로그램을 찾아냅니다. Bash로 작성되었기 때문에 리눅스 시스템뿐만 아니라 대부분의 유닉스 버전에서 실행이 가능합니다.

ClamAV

C++로 작성된 ClamAV는 바이러스, 트로이 목마 및 기타 다양한 종류의 악성코드를 탐지하는 데 도움을 주는 오픈 소스 백신 프로그램입니다. 완전히 무료로 제공되는 도구이기에, 많은 사용자들이 이메일을 포함한 개인 정보를 검색하여 악성 파일을 찾아내는 데 사용하고 있으며, 서버 측 스캐너로도 중요한 역할을 합니다.

이 도구는 원래 유닉스 환경을 위해 개발되었으나, 현재는 리눅스, BSD, AIX, macOS, OSF, OpenVMS, 그리고 솔라리스에서도 사용할 수 있는 다양한 버전이 존재합니다. ClamAV는 최신 위협에도 대응할 수 있도록 데이터베이스를 정기적으로 자동 업데이트합니다. 명령줄 스캔이 가능하며, 스캔 속도를 향상시키기 위해 확장 가능한 멀티쓰레드 데몬을 제공합니다.

다양한 파일 형식을 통해 취약점을 탐지할 수 있습니다. RAR, Zip, Gzip, Tar, Cabinet, OLE2, CHM, SIS 포맷을 비롯하여, BinHex 및 거의 모든 종류의 이메일 시스템을 포함한 다양한 압축 파일을 지원합니다.

LMD

Linux Malware Detect, 줄여서 LMD라고 불리는 이 도구는 리눅스 시스템을 위한 또 다른 유명한 백신 프로그램으로, 특히 호스팅 환경에서 흔히 발견되는 위협에 중점을 두고 설계되었습니다. 맬웨어 및 루트킷을 탐지할 수 있는 다른 도구와 마찬가지로 LMD는 시그니처 데이터베이스를 사용하여 악성 코드를 식별하고 신속하게 제거합니다.

LMD는 자체 시그니처 데이터베이스에만 의존하지 않고, ClamAV 및 Team Cymru의 데이터베이스를 활용하여 더 광범위한 악성코드를 탐지합니다. 데이터베이스를 업데이트하기 위해 LMD는 네트워크 에지 침입 탐지 시스템에서 위협 데이터를 수집합니다. 이를 통해 현재 공격에 활발하게 사용되는 악성코드에 대한 새로운 시그니처를 생성할 수 있습니다.

LMD는 “maldet” 명령어를 통해 사용할 수 있습니다. 이 도구는 리눅스 플랫폼용으로 특별히 제작되어 리눅스 서버를 편리하게 검사할 수 있습니다.

Radare2

Radare2(R2)는 바이너리를 분석하고 리버스 엔지니어링을 수행하기 위한 프레임워크입니다. 강력한 탐지 능력을 바탕으로, 비정상적인 바이너리를 탐지하고 사용자에게 관리 도구를 제공하여 잠재적인 위협을 무력화할 수 있습니다. NoSQL 데이터베이스인 sdb를 활용하며, 소프트웨어 보안 연구원과 소프트웨어 개발자들이 뛰어난 데이터 시각화 기능으로 선호합니다.

Radare2의 주요 장점 중 하나는 사용자가 정적/동적 분석 및 소프트웨어 악용과 같은 작업을 수행하기 위해 명령줄을 사용할 필요가 없다는 점입니다. 바이너리 데이터에 대한 모든 종류의 연구에 권장되는 도구입니다.

OpenVAS

개방형 취약점 평가 시스템, 또는 OpenVAS는 취약점을 검사하고 관리하는 데 사용되는 호스팅 시스템입니다. 모든 규모의 기업을 위해 설계되었으며, 인프라 내에 숨겨진 보안 문제를 감지할 수 있습니다. 원래 GNessUs로 알려졌으나, 현재 소유자인 Greenbone Networks에 의해 OpenVAS로 이름이 변경되었습니다.

버전 4.0부터 OpenVAS는 NVT(Network Vulnerability Testing) 기반의 지속적인 업데이트를 제공하며(일반적으로 24시간 이내), 2016년 6월 기준으로 47,000개 이상의 NVT가 존재합니다.

보안 전문가들은 OpenVAS의 빠른 스캔 기능과 뛰어난 사용자 정의 기능 때문에 이 도구를 선호합니다. OpenVAS 프로그램은 안전한 악성코드 연구를 위해 독립된 가상 머신 환경에서 사용할 수 있습니다. 소스 코드는 GNU GPL 라이선스 하에 이용 가능하며, 많은 취약점 탐지 도구들이 OpenVAS에 의존하고 있어 리눅스 기반 플랫폼에서 필수적인 프로그램으로 여겨집니다.

Remnux

Remnux는 악성코드 분석을 위해 리버스 엔지니어링 기법을 사용합니다. JavaScript 난독화된 코드 스니펫이나 Flash 애플릿에 숨겨진 다양한 브라우저 기반 문제를 감지할 수 있으며, PDF 파일을 검사하고 메모리 포렌식을 수행할 수 있습니다. 이 도구는 다른 바이러스 탐지 프로그램이 쉽게 검사하기 어려운 폴더나 파일 내부의 악성 프로그램을 탐지하는 데 도움을 줍니다.

디코딩 및 리버스 엔지니어링 기능을 통해 의심스러운 프로그램의 특성을 파악할 수 있으며, 가벼운 도구이므로 교묘하게 숨겨진 악성코드에 잘 탐지되지 않는다는 장점을 가집니다. 리눅스와 윈도우 모두에서 사용할 수 있으며, 다른 스캔 도구와 함께 활용하여 기능을 향상시킬 수 있습니다.

Tiger

1992년 Texas A&M University에서 캠퍼스 컴퓨터의 보안을 강화하기 위해 개발된 Tiger는 현재 Unix 계열 플랫폼에서 널리 사용되는 프로그램입니다. 이 도구의 독특한 점은 단순히 보안 감사 도구일 뿐만 아니라, 침입 탐지 시스템으로도 활용될 수 있다는 점입니다.

이 도구는 GPL 라이선스에 따라 무료로 사용할 수 있습니다. POSIX 도구에 기반하며, 함께 사용하여 서버 보안을 크게 강화할 수 있는 완벽한 프레임워크를 구축할 수 있습니다. Tiger는 쉘 스크립트 언어로 작성되었으며, 이는 뛰어난 효율성의 이유 중 하나입니다. 시스템 상태 및 구성을 확인하는 데 적합하며, 다목적 사용성으로 인해 POSIX 도구를 사용하는 사용자들 사이에서 인기가 높습니다.

Maltrail

Maltrail은 서버 트래픽을 깨끗하게 유지하고 모든 종류의 악의적인 위협을 방지하는 데 도움을 주는 트래픽 탐지 시스템입니다. 이 시스템은 트래픽 소스를 온라인에 게시된 블랙리스트 사이트와 비교하는 방식으로 작동합니다.

블랙리스트 사이트 확인 외에도, Maltrail은 다양한 위협을 탐지하기 위한 고급 휴리스틱 메커니즘을 사용합니다. 선택적인 기능이지만, 서버가 이미 공격받았다고 의심될 때 매우 유용합니다.

서버로 들어오는 트래픽을 감지하고 Maltrail 서버로 정보를 전송하는 센서를 제공합니다. 이 탐지 시스템은 트래픽이 서버와 소스 간에 데이터 교환을 할 만큼 충분한지 확인합니다.

YARA

리눅스, 윈도우, 그리고 macOS를 위해 개발된 YARA (Yet Another Ridiculous Acronym)는 악성 프로그램의 연구 및 탐지에 필수적인 도구입니다. 텍스트나 바이너리 패턴을 사용하여 탐지 과정을 단순화하고 가속화하여 빠르고 효율적인 작업을 가능하게 합니다.

YARA는 여러 추가 기능도 제공하지만, 이를 활용하려면 OpenSSL 라이브러리가 필요합니다. 해당 라이브러리가 없더라도 규칙 기반 엔진을 통해 기본적인 악성코드 연구에 YARA를 사용할 수 있습니다. 악성 소프트웨어를 안전하게 연구하기 위한 Python 기반 샌드박스인 Cuckoo Sandbox에서도 사용이 가능합니다.

최적의 도구 선택 방법

위에서 언급된 모든 도구들은 뛰어난 성능을 제공하며, 특히 리눅스 환경에서 널리 사용되고 있다는 점은 많은 숙련된 사용자들이 그 효과를 입증한다는 것을 의미합니다. 시스템 관리자가 기억해야 할 중요한 점은 각 애플리케이션이 일반적으로 다른 프로그램에 종속적이라는 것입니다. 예를 들어, ClamAV와 OpenVAS가 그 예입니다.

시스템의 요구사항과 취약점이 있는 영역을 정확히 파악하는 것이 중요합니다. 우선 가벼운 도구를 사용하여 주의가 필요한 부분을 먼저 조사하고, 그 다음에 적절한 도구를 사용하여 문제를 해결해야 합니다.