애플이 수주일 내 배포할 맥OS 카탈리나의 최신 업데이트(10.15.4)에서 '커널 확장(kernel extensions, KEXTs)'을 제거한다. 향후 맥OS 개발자는 '시스템 확장(system extensions)'이란 새 API를 활용해야 한다.
최근 미국 지디넷에 따르면, 애플은 향후 맥OS 카탈리나 10.15.4 업데이트에서 커널확장을 제거하고, 시스템확장만 남긴다.[애플 지원 페이지 바로가기]
맥OS 10.15.4 버전 사용자는 커널확장을 사용하는 앱에 대해 '바람직하지 않은 API를 포함한 소프트웨어'란 알람을 받게 된다. 또 사용자가 개발자에게 알리도록 요청한다.
애플은 작년 세계개발자대회(WWDC)2019 행사에서 맥OS의 커널확장을 제거하고, 시스템확장을 새로 도입할 계획이라고 밝혔다. 그 첫단계로 맥OS 카탈리나(10.15.0)에 커널확장과 시스템확장이 함께 들어갔다. 네번째 업데이트에 이르러 애플의 계획이 완전히 실행되는 것이다.
커널확장과 시스템확장은 맥OS에 설치되는 앱이 OS의 기본기능으로 작동하게 해주는 API다.
맥OS용 백신소프트웨어, 방화벽, VPN 클라이언트, DNS 프록시, USB드라이버 등이 커널확장을 사용해 만들어진다.
커널확장과 시스템확장의 기본 목적은 동일하다. 단, 커널 확장이 앱의 코드를 맥OS 커널에서 실행한다면, 시스템확장은 '유저스페이스'에서 더 세밀하게 제어된 상태로 코드를 실행한다.
애플이 커널확장 대신 시스템확장을 도입하려는 이유는 보안 때문이다.
맥OS 보안전문가 패트릭 워들은 최근 지디넷과 인터뷰에서 "애플의 관점에서 (시스템확장은) 맥OS 보안 개선을 위한 주요 단계"라고 설명했다.
그는 "써드파티 커널확장은 맥OS 공격자에게 매력적인 공격 경로 역할을 한다"고 덧붙였다.
커널확장을 보안취약점으로 활용하거나, 악성 앱을 안전한 것으로 포장해 설치하게 할 수 있다는 의미다. 이미 맥OS에서 커널확장을 악용한 보안공격 사례가 여러차례 있었다.
패트릭 워들은 "수많은 보안 메커니즘이 커널에서 채택 혹은 강제된다"고 말했다.
시스템확장을 사용하면 사용자모드에서 쓰이기 때문에 커널 단의 공격이 어려워진다. 워들은 "시스템확장은 커널에서 작동하지 않기 때문에 커널 노출을 통한 커널모드 접근이 불가능해진다"며 "애플은 기본적으로 보안 이유 때문에 모든 것을 커널 바깥에 두길 바란다"고 설명했다.
시스템확장이라 해도 내재된 단점이 없지 않다. 워들은 "애플의 시도에 바람직하지 않은 측면도 있다"고 지적했다.
먼저 앱을 커널 밖으로 내보내는 건 개발자의 자유를 침해하는 게 된다. 애플은 시스템확장을 통해 맥OS의 제어권을 더 많이 갖게 된다. 애플이 맥OS도 iOS처럼 강력하게 통제한다는 것이다.
지금까지 맥OS는 개발자와 사용자의 소유에 가까웠다. 맥OS에 없는 특정 기능이 없으면, 개발자는 앱을 만들어 커널확장으로 맥OS의 빈공간을 채울 수 있었다.
다른 문제는 맥OS 보안툴의 커널 의존성이다. 현존하는 맥OS 보안 툴은 커널확장을 통해 사용자 맥 구성요소 전반에 완전히 접근할 수 있었다. 시스템확장을 사용하게 되면, 악성코드 탐지 즉시 작동정지시키는 기능을 제공할 수 없게 된다.
관련기사
- 애플, 맥OS에 성능 가속 '프로 모드' 추가2020.02.10
- 맥OS 카탈리나에서 개발자를 놀래킨 변화2020.02.10
- 애플, iOS→맥OS 앱 변환툴 '프로젝트 카탈리스트' 공개2020.02.10
- 애플, WWDC 2019서 iOS 13·맥OS 카탈리나 등 발표2020.02.10
그동안 무료 맥OS 보안툴을 다수 선보였던 패트릭 워들은 "애플이 써드파티 보안툴에 필요한 사용자모드 프레임워크를 다수 제공한다"며, 애플이 바로 가지치기에 들어가진 않을 것이란 의견을 전했다.
현시점에 애플이 시스템확장에 커널확장 수준의 자유도와 역량을 제공할 지 불확실하다. 다만 맥OS 개발자가 슬슬 시스템확장으로 전환해야 하는 시점이란 점은 분명하다.