여러분, 컴퓨터에 백신 깔아서 쓰시나요? 저는 맥이든, 윈도우든 요즘은 별도의 안티바이러스나 멀웨어 프로그램을 안 쓰고 있긴 합니다. 이게 과연 안전한 건가에 대해서는 늘 이슈들이 있죠. 운영체제의 기본 보안 환경이 탄탄해지고, 최신 보안 위협에도 대비가 잘 되기 때문에 별도의 보안 도구가 필요 없다는 입장과 여전히 우리가 모르는 악성코드, 멀웨어가 숨어서 작동할 수 있으니 말이죠.
여전히 스미싱, 랜섬웨어 같은 건 공격도 늘고 규모도 계속 늘어나고 있긴 해요. 뭔가 부주의를 비집고 들어올 수 있는 여지는 많이 있다는 거죠. 그런데 여기에는 하나의 패턴이 있습니다. 뭘 깔게 하는 거죠.
저는 기본적으로는 일하는 데에 쓰는 컴퓨터에는 딱 처음에 필요한 앱들만 깔고 그 외에는 일체 깔지 않는 편이에요. 금융 거래 같은 것도 아이폰을 주로 쓰는 이유가 앱 여러개를 거치지 않고 앱 하나에 모든 게 패키징되기 때문에 잘 알지 못하는 보안 앱을 근거로 악성코드가 숨어 들거나 또 깔려 있어도 보안 프로그램인가? 하고 넘어갈 여지가 적습니다. 결국 뭔가가 내 의도와 관계 없이 깔리는 데에서 공격이 시작되거든요. 아무리 원하는 것이 있어도 설치 버튼은 신중하게 눌러야 합니다. 아참, 그리고 구독, 좋아요 버튼은 지금 바로 눌러주셔도 좋습니다.
다행인 것은 그래도 OS들이 갖고 있는 보안 정책들이 꽤 앞서가고 있기 때문에 적어도 개인용 컴퓨터에서는 바이러스나 일상적인 악성코드 피해는 많이 줄었어요. 내가 모르는 앱이 함부로 깔리거나, 또 그냥 앱이 아니라 아예 컴퓨터의 터미널을 열어서 직접 코드를 실행시켜버리는 경우들도 있습니다. 이제 그냥 평범한 앱을 가장하기는 어려워졌다는 이야기이고, 다르게 보면 우리가 더 뭔지 모르는 경로로 뭔가가 깔리고 작동하게 될 수 있다는 이야기입니다.
제가 최근에 맥북 프로를 리뷰하면서 터미널을 많이 썼거든요. 터미널은 직접적으로 컴퓨터에게 명령을 내릴 수 있는 창구에요. 시커먼 화면에 명령어를 치면 됩니다. 일반적으로 우리가 쓰는 앱들은 특정 역할을 하도록 기능과 접근 권한 같은 걸 모아 놓은 건데, 이 터미널은 아무 것도 없어보이지만 사실상 컴퓨터를 거의 끝까지 다룰 수 있어요. 오래 전 도스 시절에는 우리가 컴퓨터를 거의 이렇게 썼죠. 지금은 뭔가 아주 특수하고 조금 깊이 뭔가를 건드릴 때나 이 터미널을 쓰죠.
몇몇 분들이 제가 맥에 LLM을 어떻게 설치하고 테스트했는지 궁금해 하셨는데, 보통 요즘은 LLM이나 특정 AI 모델을 쉽게 깔아서 쓸 수 있는 도구들이 있어요. 마치 MP3 플레이어 앱을 깔고 음원 파일을 올려서 음악을 듣는 것 같죠. 하지만 터미널에서 직접 설치할 수도 있고, 저는 또 코드를 통해서 특정 명령을 엄청나게 많이 반복시켜서 성능 차이를 보려고 했거든요.
그러니까 직접 프로그램 코드를 짜고, 중요한 모델을 설치하고, 그걸 반복해서 실행해서 결과를 데이터로 만들어서 보여주는 하나의 앱을 만들어 넣은 건데 이걸 다르게 보면 누군가가 또 이렇게 들어와서 보이지 않게 뒤에서 뭔가를 할 수 있어요. 종종 어떤 앱들이 설치되고 나서 추가적으로 권한이나 백그라운드로 뭔가를 설치하기 위해서 자동으로 터미널을 열고 미리 정해진 명령어를 주루룩 치고 휙 닫혀버리는 경우들이 있거든요.
문제는 이런 코드를 읽을 수 있는 개발자가 아니면 이게 뭐가 지나갔는지 알 수가 없다는 거에요. 일단 이런 게 좀 의심되면 전체를 긁어서 GPT나 제미나이 같은 AI 앱에 물어보시면 좋아요. 그런데 이번에 맥OS 26.4가 나오면서 뭔가 터미널에 시스템을 건드리는 명령어가 입력되면 경고를 띄워줍니다. 이거 진짜 할거야? 너 이거 뭐하는 건지 알고 실행하려는 거야?라고 하는 거죠.
사실 일반 이용자들은 맥에서, 또 윈도우에서도 그렇지만 터미널을 쓸 이유가 거의 없습니다. 가장 많이 쓰게 되는 게 불법 복제나 라이선스 우회 같은 걸 할 때 쓰는 경우들이 더 많죠. 물론 터미널을 꼭 건드려야 하는 정상적인 앱들도 없는 건 아니지만 특히 불법 복제나 다운로드 주체가 명확하지 않은 앱에서는 조심할 필요가 있어요.
이게 누군가에게는 불편할 수도 있어요. 특히 개발자 분들은 터미널에서 명령어를 쓸 일들이 아주 많은데, 이 때마다 ‘너, 이 코드 위험해’라고 경고하면 엄청 불편하겠죠. 그래서 이건 머신러닝으로 맥을 쓰는 패턴을 통해서 판단이 이뤄진다고 해요. 터미널을 얼마나 사용하는지, 어떤 코드를 쓰는지, 개발자 도구와 어떻게 활용하는지 등 터미널을 주어진 목적대로 잘 쓰는 이용자라고 받아들여지면 경고를 띄우지 않습니다.
하지만 그렇다고 해도 시스템을 공격할 수 있는 악성 코드는 모두에게 경고를 합니다. 공격 패턴은 지속적으로 업데이트되고 로컬 AI를 통해서 검증되기 때문에 터미널 입력 내용이 외부로 유출되지도 않습니다.
이것 외에도 맥OS 26.4에는 보안 패치가 좀 더 적극적으로 적용되기도 합니다. 위협의 가장 중요한 창구가 되는 사파리 같은 앱은 거창하게 ‘나 업데이트해요’가 아니라 백그라운드에서 수시로 자동 업데이트가 이뤄집니다. 이건 크롬 같은 방식과 비교해볼 수 있겠죠.
요즘 맥OS의 보안 관련 내용도 좀 더 살펴보죠. 보안은 소프트웨어적인 것도 중요한데 요즘은 또 하드웨어 공격도 많이 이뤄지거든요. CPU나 메모리 같은 요소들의 취약점을 공격하기도 하고, 칩을 떼어내거나 변조하기도 하죠. 맥이 이런 부분들을 많이 이야기하고 그에 대한 대비들을 많이 하는 편입니다. 물론 이런 건 개인용 컴퓨터에 대한 보안보다는 기업용이나 전문가들을 공격하는 경우들이 많긴 하죠.
하지만 맥은 같은 제품으로 학생부터 직장인, 전문가 그룹까지 쓰기 때문에 애플은 이 전체적인 보안 정책을 하드웨어, 운영체제, 소프트웨어 전체로 관리하고 있거든요. 대표적인 게 메모리 무결성입니다.
최근에 M5와 A19 프로세서에 들어오면서는 메모리 무결성을 강화했어요. 이 메모리 공격은 C나 C++처럼 하드웨어에 접근 권한이 많은 프로그래밍 언어들이 메모리 관리를 놓치는 경우들이 종종 있어요. 프로그램들이 필요할 때 메모리를 쓰고, 필요 없을 때는 반납해야 하거든요. 그런데 그걸 제대로 하지 못하고 특정 프로세스가 메모리를 계속 쥐고 있는 경우들이 생기는데 이걸 이용해서 항상 메모리 일부를 확보해놓고 거기에서 계속해서 공격을 합니다.
조금 더 복잡하게 들어가자면 이게 일반적으로는 포인터 변조로도 통합니다. 우리가 C언어를 공부할 때 제일 속썩이는 게 포인터죠. 실제로 앱이 실행되고 난 뒤에 메모리에서 이 포인터를 삭제해야 하는데, 그게 지워지기 전에 악성코드가 스윽 그 자리를 차지하는 거에요. 그러면 뭐가 문제인지 모른 채로 악성코드가 돌게 되는 식입니다. 이건 맥 뿐 아니라 오랫동안 윈도우고, 리눅스고 가장 많이 쓰이는 공격 방법 중 하나거든요.
그래서 운영체제 단의 보안 장치들이 메모리가 엉뚱한 프로세스를 통해서 뭘 하고 있는지를 계속 살피는, 소프트웨어적인 방법이 고도화되었어요. 하지만 그냥 정상적인 프로세스의 이름과 공간을 그대로 두고 그 안에 내용만 악성코드로 바꾸면 알기가 너무 어렵잖아요. 심지어 용량도 그대로 맞춥니다.
M5, 그리고 A19에 들어간 메모리 무결성 아키텍처는 이 부분을 하드웨어로 검증하는 단계를 거칩니다. 핵심은 메모리를 잘게 쪼개고 그 단위마다 밖에서는 읽을 수 없는 태그를 넣습니다. 그리고 프로그램이 메모리를 할당받을 때 이 비밀 태그를 같이 받습니다. 이 태그를 실제 메모리를 쓸 때 맞춰보는 거에요. 호텔 건물에는 들어가도 방 열쇠가 있어야 방에 침입할 수 있는 것과 비슷한 방법이에요.
이런 방법이 당연한 거 아니냐라고 생각할 수 있는데, 모든 보안이 그렇듯이 이것도 결국 키를 발급하고 맞춰보고 다시 반납받고 하는 모든 과정들도 프로세스이기 때문에 그게 성능에 영향을 끼쳐요. 특히 메모리는 그 접근 속도가 실제 우리가 애플리케이션을 쓰는 성능에 영향을 끼치는데, 방에 들어가는 사람마다 다 열쇠를 하나하나 확인하면 당연히 병목이 생기듯이 성능이 확 떨어질 수 있습니다. 이걸 칩 안에 넣어서 성능 저하를 막는 거에요.
또 재밌는 게 애플의 레이저 랩이라는 게 있거든요. 이건 소프트웨어가 아니라 하드웨어의 부분부분의 온도와 전압 변화를 읽는 거에요. 맥을 놓고, 막 특정 기법으로 공격을 합니다. 메모리도 공격하고, CPU도 공격하고 막 공격을 하면 그 결과는 컴퓨터가 우리가 기대하지 않은 의도하지 않은 일을 하게 되겠죠? 정보를 빼돌린다거나, 암호를 걸어서 파일을 압축한다거나 그런 식으로요. 그럼 결국 프로세서가 더 많은 일을 하고, 전력을 더 많이 쓰고, 열도 많이 나게 됩니다.
그 흐름을 정밀 기기를 써서 물리적으로 읽는 거에요. 원래 이 정도 일을 하면 이 정도 전력과 열이 나는데, 그 패턴이 조금 다르다는 걸 읽을 수도 있고, 어떤 공격이 들어오면 맥에, 또 칩에 어떤 부분이 열이 나는지를 알면 그런 외부적인 요소들을 바탕으로도 공격받고 있다는 걸 파악할 수 있게 되는 거죠.
한편으로 이렇게 복잡한 걸 우리가 알아야 해? 라고 생각할 수도 있어요. 사실 몰라도 된다고 봅니다. 그걸 안전하게 해주는 게 플랫폼의 역할이고, OS의 역할이고, 기기 제조사의 역할입니다. 애플이 보안에 더 안전하다..라는 인식이 있것도 사실 이런 부분을 칩부터 OS, 그리고 앱스토어의 앱 관리정책까지 묶어서 보기 때문에 덜 위험하다..정도로 볼 수 있는 겁니다.
윈도우는 안전하지 않나, 안드로이드는 안전하지 않나..할 수도 있지만 이 OS들도 충분히 안전하지만 일단 하드웨어적으로 칩을 통한 보안이 상대적으로 어렵기 때문에 기업용 제품들을 제외하고는 별도의 보안 칩을 넣기가 쉽지 않은 게 현실이에요. 그래서 개인용과 기업용이 다르고, 제조사마다 다를 수 있기 때문에 이게 쉽지 않은 거에요. 그래도 윈도우11에서는 프로세서의 보안 정책이 뒤처지면 아예 설치를 못하도록 막기도 했는데, 범용 OS는 이런 식의 정책이 꽤 적지 않은 혼란을 일으킬 수도 있거든요. 왜 내 컴퓨터는 윈도우11이 안되나… 이걸 우회하는 방법은 뭔가.. 이런 게 이야기가 되는 거죠.
앱 마켓에 대한 것도 늘 논란이 되긴 하지만 저는 개방형 앱마켓은 장점보다 단점이 더 많다고 생각합니다. 결국에 현대의 보안 이슈는 기기에 뭔가를 깔면서 시작되는데, 그게 보통은 우회해서 설치하는 경우에 그 빈틈이 생깁니다. 앱을 다운로드받을 수 있는 곳을 딱 정하고, 그 외에서는 아예 앱을 설치하지 못하도록 하면 그 스토어만 잘 관리하면 되죠. 뭐 관리가 잘 되는 서드파티 스토어를 인정할 수는 있겠지만 일반 이용자들에게는 일원화되는 게 쉽고 안전하다고 보거든요.
결국 보안은 시스템 전체 환경 안에서 아주 작은 빈틈 하나를 노리게 되는 건데, 그 상당수는 이제 사람이 되고 있어요. 그래서 적극적인 보안 경고와 어느 정도의 샌드박스 같은 것들이 중요하고, 애플은 그걸 하드웨어부터 OS, 소프트웨어까지 모두 하니까 그 빈틈을 하나의 관점으로 볼 수 있는 거고, 윈도우나 안드로이드는 그 자유도를 얻는 만큼 약간의 책임이 더해지는 것 뿐입니다. 이 OS들도 정해진 규칙 안에서 안전하게 쓰면 보안 문제는 없다고 해도 지나치지 않습니다. 경고, 검증되지 않은 앱을 설치하시겠습니까?라고 한다면 일단 경계하는 것만 지켜도 보안 문제의 많은 부분들을 해소할 수 있어요. 그럼 여러분 모두 컴퓨터 안전하게 쓰시고, 가끔은 이렇게 보안도 한번씩 생각해주세요.
