리눅스 커널의 보안 허점: io_uring을 악용한 은밀한 루트킷 공격 가능성
최근 리눅스 커널 인터페이스인 io_uring
의 보안 허점이 발견되어 기업 보안 솔루션을 우회하고 은밀하게 작동하는 루트킷 공격의 가능성이 제기되었습니다. 이 취약점은 보안 모니터링 도구들이 io_uring
인터페이스를 제대로 감시하지 못하는 데서 비롯됩니다.
io_uring이란 무엇인가?
`io_uring`은 리눅스 시스템이 저장 장치와 더욱 빠르고 효율적으로 통신할 수 있도록 설계된 커널 인터페이스입니다. 2019년 리눅스 5.1 버전에서 처음 도입되었으며, 현대 컴퓨터가 대량의 정보를 처리하는 데 도움을 줍니다. 하지만 대부분의 보안 도구들이 기존의 시스템 호출(syscall) 감시에만 집중하고 `io_uring`을 통한 활동은 간과하는 경향이 있습니다.
io_uring의 위험성
`io_uring`은 61가지 이상의 다양한 작업을 지원하며, 여기에는 읽기/쓰기, 네트워크 연결 생성 및 수락, 파일 권한 수정 등이 포함됩니다. 이러한 다양한 기능은 악의적인 목적을 위해 악용될 수 있는 위험한 사각지대를 만듭니다. 실제로 구글은 안드로이드와 크롬OS에서 `io_uring`을 기본적으로 비활성화했을 정도로 위험성을 인지하고 있습니다.
PoC 루트킷 ‘Curing’의 등장
보안 연구 기관 ARMO는 이러한 취약점을 증명하기 위해 'Curing'이라는 PoC(Proof-of-Concept) 루트킷을 개발했습니다. 'Curing'은 원격 서버에서 명령을 가져와 임의의 코드를 실행할 수 있으며, 시스템 호출 후킹을 우회하여 탐지를 피할 수 있습니다. ARMO는 이 루트킷을 여러 런타임 보안 도구에 테스트한 결과, 대부분의 도구가 'Curing'을 탐지하지 못했습니다.
보안 솔루션의 무력화 가능성
ARMO의 연구 결과에 따르면, 'Falco'는 'Curing'을 전혀 탐지하지 못했으며, 'Tetragon' 역시 기본 설정으로는 탐지하지 못했습니다. 'Tetragon' 개발팀은 모든 곳에 후킹을 설정할 수 있는 유연성을 제공하기 때문에 취약하다고 보지 않는다는 입장을 밝혔지만, ARMO는 익명의 상용 프로그램에 대한 테스트에서도 `io_uring`을 악용한 악성 코드가 탐지되지 않았다고 주장했습니다.
보안 전문가의 조언
이번 발견은 리눅스 시스템 보안에 대한 중요한 경고 신호입니다. 보안 전문가들은 기업들이 `io_uring` 인터페이스를 포함한 시스템 활동을 면밀히 감시하고, 최신 보안 패치를 적용하여 잠재적인 위협에 대비해야 한다고 강조합니다. 또한, 보안 도구 개발자들은 `io_uring`을 활용한 공격을 탐지할 수 있도록 도구를 개선해야 할 것입니다.
맺음말
리눅스 커널의 보안 허점을 이용한 공격은 심각한 결과를 초래할 수 있습니다. io_uring
의 잠재적인 위험성을 인지하고, 적극적인 보안 조치를 통해 시스템을 보호하는 것이 중요합니다. 보안 담당자는 최신 정보를 지속적으로 확인하고, 발생 가능한 위협에 선제적으로 대응해야 할 것입니다.