SEAR과 Apple 팀이 iOS 보안에서 정말 훌륭하게 일해 주고 있다는 생각임, 이 점에서 큰 칭찬을 보내고 싶음
하드웨어 레벨부터 모든 스택 전체에 보안 기능을 심는 노력도 멋지고, 실제로 ITW(현실 공격) 익스플로잇을 살펴보고 이를 막는 방법도 계속 연구함
예를 들어 PPL 같은 기능을 도입해봤지만 완벽하지 않다는 결론이 나면 과감히 버리고 새로운 기법을 찾아감
Apple은 수직 통합 구조라 이런 일이 Android에 비해 훨씬 수월함. Android에선 하드웨어 업체(QC, Mediatek)에 협업 요청을 하고, linux 커널, AOSP, LLVM upstream 등 여러 단계를 거쳐야 함
Pointer Authentication Codes(PAC)도 좋은 사례임. Apple은 “우리가 해보자”는 자세로 자체 LLVM 브랜치를 유지하며 도입했고, 실제로 ITW 기반 공격을 보완해 문제를 해결함
나는 Apple 제품을 사는 이유가 단순히 보안과 프라이버시가 뛰어나기 때문만이 아니라, Apple이 이런 기능을 돈벌이를 위해 반드시 해야만 하는 일이 아님에도 불구하고 열정을 갖고 진심으로 추진하기 때문임
실제론 마케팅 홍보를 넘어, 닥터 jailbreaking 커뮤니티 최고의 해커를 보안팀에 영입하고, Private Relay, 프라이빗 메일, trusted compute, multi-party inference 등 혁신을 가져옴
물론 Apple의 위선적인 태도에 문제도 분명 있음. 예를 들어 VPN 허용(Apple 서버로 가는 트래픽은 예외), 프라이버시 보장 기본값(와이파이 콜링이나 “journaling suggestions”은 제외) 등은 아쉬움
사실상 Apple과 일부 통신 파트너로부터는 보안이 되지 않는다는 조건이 붙긴 하지만, 그래도 Google은 “Google 또는 Google 광고 구매자 외 모두에게 안전합니다”라는 느낌이라 Apple이 훨씬 앞서 있다고 생각함
엄청난 공학적 노력을 들인 후에도, iMessage에는 의심스러운 코드가 커널에서 실행되는 경로가 여전히 남아있고, 이로 인해 0-click 익스플로잇이 계속 존재함
이런 노력이 가져오는 또 다른 장점은, Apple이 보안을 강화한 새 프로세서에서 코드 경로가 한 번이라도 실행되면 모든 플랫폼의 보안이 자연스럽게 높아진다는 점임
이론적으로 정적 분석만으로는 잡기 힘든 문제도 더 쉽게 포착할 수 있고, 단순한 크래시 외에 더 깊은 인사이트도 얻을 수 있음
Google도 사실 몇 년 전부터 MTE를 추가할 수 있었지만, Android 인증의 일환으로 OEM 강제 적용을 원하지 않았음
OS 업데이트와 마찬가지로 비슷한 역사가 반복되는 셈임
현재 Apple이 보안에 신경쓰는 이유는 사용자를 보호하려는 목적만은 아님
본질적으로 사용자가 승인받지 않은 소프트웨어를 직접 실행하거나 탈옥 같은 행위를 어렵게 만들어, App Store 독점을 유지하기 위해서임
결국 사용자의 이익이 아닌 회사의 이익을 우선으로 한다고 봄
iOS 보안에 대해 읽을 때마다 항상 그 복잡성에 놀람
하드웨어 단계, 커널 단계, 다양한 샌드박싱 기법 등 상당한 레이어가 쌓여 있음
이런 구조가 “과거의 신뢰를 가정한 설계에 덧댄 임시방편”인지 궁금함
처음부터 다시 설계한다면 더 단순하게 만들 수 있는지, 실제로 그렇게 설계된 운영체제(OS)가 존재하는지 궁금함
취약점은 플랫폼에서 다양한 사용 사례를 지원할수록 피할 수 없음
이에 대응하는 방법이 바로 다층 방어(Defence-in-depth)임
iOS는 MacOS를 기반으로 하고, MacOS는 NeXT, 그 뿌리는 Unix임
처음부터 낮은 사용자 신뢰를 염두에 두고 설계됨
시대에 따라 사용자를 신뢰하는 정도도 달라졌고, 최근에는 항상 연결된 네트워크 기능과 Spectre 이후의 새로운 위협 등 점점 복잡해졌음
역사적 설계 결정에 대한 임시방편이라는 질문에 답하자면, 그렇다고 생각함
Unix 보안 모델과 C 언어 기반 시스템 프로그래밍의 한계를 보완하는 노력의 결과임
만약 처음부터 새롭게 설계한다면 capability architecture 등을 적용해 복잡성을 줄일 수 있겠지만, POSIX 호환성 문제 때문에 실제로는 대부분 학술/취미로만 존재하고 있음
완전히 새로운 모델로 가면 기존 Unix 프로그램 대부분을 곧바로 버려야 하기 때문에 실질적 도입은 매우 어려움
seL4는 속도가 빠르고 보안성이 뛰어나며 공식적으로 검증된 마이크로커널 구조임
높은 수준의 접근 제어, 가상 머신 지원 등 탁월함 seL4 마이크로커널 아키텍처 설명 글
그러나 “나머지 부분”이 빠져있어서, 실제 운영체제라기보단 연구용에 가깝다고 생각함
둘 다 시도해볼 수 있지 않을까 생각함
"하드웨어 보안"에도 고유한 신뢰전제가 있지만, 결국엔 하드코딩된 소프트웨어일 뿐이라 복잡성이 높아질수록 버그 발생 가능성도 같이 커짐
이번 Hexacon Ivan Krstić Keynote에서 Apple이 버그 바운티 프로그램을 강화한다고 발표했음 관련 공식 블로그
정기 업데이트나 앱 실행 시 평문(암호화되지 않은) 연결 문제가 아직 해결됐는지 궁금함 관련 참고 자료
Hacker News 의견
SEAR과 Apple 팀이 iOS 보안에서 정말 훌륭하게 일해 주고 있다는 생각임, 이 점에서 큰 칭찬을 보내고 싶음
하드웨어 레벨부터 모든 스택 전체에 보안 기능을 심는 노력도 멋지고, 실제로 ITW(현실 공격) 익스플로잇을 살펴보고 이를 막는 방법도 계속 연구함
예를 들어 PPL 같은 기능을 도입해봤지만 완벽하지 않다는 결론이 나면 과감히 버리고 새로운 기법을 찾아감
Apple은 수직 통합 구조라 이런 일이 Android에 비해 훨씬 수월함. Android에선 하드웨어 업체(QC, Mediatek)에 협업 요청을 하고, linux 커널, AOSP, LLVM upstream 등 여러 단계를 거쳐야 함
Pointer Authentication Codes(PAC)도 좋은 사례임. Apple은 “우리가 해보자”는 자세로 자체 LLVM 브랜치를 유지하며 도입했고, 실제로 ITW 기반 공격을 보완해 문제를 해결함
나는 Apple 제품을 사는 이유가 단순히 보안과 프라이버시가 뛰어나기 때문만이 아니라, Apple이 이런 기능을 돈벌이를 위해 반드시 해야만 하는 일이 아님에도 불구하고 열정을 갖고 진심으로 추진하기 때문임
실제론 마케팅 홍보를 넘어, 닥터 jailbreaking 커뮤니티 최고의 해커를 보안팀에 영입하고, Private Relay, 프라이빗 메일, trusted compute, multi-party inference 등 혁신을 가져옴
물론 Apple의 위선적인 태도에 문제도 분명 있음. 예를 들어 VPN 허용(Apple 서버로 가는 트래픽은 예외), 프라이버시 보장 기본값(와이파이 콜링이나 “journaling suggestions”은 제외) 등은 아쉬움
사실상 Apple과 일부 통신 파트너로부터는 보안이 되지 않는다는 조건이 붙긴 하지만, 그래도 Google은 “Google 또는 Google 광고 구매자 외 모두에게 안전합니다”라는 느낌이라 Apple이 훨씬 앞서 있다고 생각함
엄청난 공학적 노력을 들인 후에도, iMessage에는 의심스러운 코드가 커널에서 실행되는 경로가 여전히 남아있고, 이로 인해 0-click 익스플로잇이 계속 존재함
이런 노력이 가져오는 또 다른 장점은, Apple이 보안을 강화한 새 프로세서에서 코드 경로가 한 번이라도 실행되면 모든 플랫폼의 보안이 자연스럽게 높아진다는 점임
이론적으로 정적 분석만으로는 잡기 힘든 문제도 더 쉽게 포착할 수 있고, 단순한 크래시 외에 더 깊은 인사이트도 얻을 수 있음
Google도 사실 몇 년 전부터 MTE를 추가할 수 있었지만, Android 인증의 일환으로 OEM 강제 적용을 원하지 않았음
OS 업데이트와 마찬가지로 비슷한 역사가 반복되는 셈임
현재 Apple이 보안에 신경쓰는 이유는 사용자를 보호하려는 목적만은 아님
본질적으로 사용자가 승인받지 않은 소프트웨어를 직접 실행하거나 탈옥 같은 행위를 어렵게 만들어, App Store 독점을 유지하기 위해서임
결국 사용자의 이익이 아닌 회사의 이익을 우선으로 한다고 봄
iOS 보안에 대해 읽을 때마다 항상 그 복잡성에 놀람
하드웨어 단계, 커널 단계, 다양한 샌드박싱 기법 등 상당한 레이어가 쌓여 있음
이런 구조가 “과거의 신뢰를 가정한 설계에 덧댄 임시방편”인지 궁금함
처음부터 다시 설계한다면 더 단순하게 만들 수 있는지, 실제로 그렇게 설계된 운영체제(OS)가 존재하는지 궁금함
취약점은 플랫폼에서 다양한 사용 사례를 지원할수록 피할 수 없음
이에 대응하는 방법이 바로 다층 방어(Defence-in-depth)임
iOS는 MacOS를 기반으로 하고, MacOS는 NeXT, 그 뿌리는 Unix임
처음부터 낮은 사용자 신뢰를 염두에 두고 설계됨
시대에 따라 사용자를 신뢰하는 정도도 달라졌고, 최근에는 항상 연결된 네트워크 기능과 Spectre 이후의 새로운 위협 등 점점 복잡해졌음
역사적 설계 결정에 대한 임시방편이라는 질문에 답하자면, 그렇다고 생각함
Unix 보안 모델과 C 언어 기반 시스템 프로그래밍의 한계를 보완하는 노력의 결과임
만약 처음부터 새롭게 설계한다면 capability architecture 등을 적용해 복잡성을 줄일 수 있겠지만, POSIX 호환성 문제 때문에 실제로는 대부분 학술/취미로만 존재하고 있음
완전히 새로운 모델로 가면 기존 Unix 프로그램 대부분을 곧바로 버려야 하기 때문에 실질적 도입은 매우 어려움
seL4는 속도가 빠르고 보안성이 뛰어나며 공식적으로 검증된 마이크로커널 구조임
높은 수준의 접근 제어, 가상 머신 지원 등 탁월함
seL4 마이크로커널 아키텍처 설명 글
그러나 “나머지 부분”이 빠져있어서, 실제 운영체제라기보단 연구용에 가깝다고 생각함
둘 다 시도해볼 수 있지 않을까 생각함
"하드웨어 보안"에도 고유한 신뢰전제가 있지만, 결국엔 하드코딩된 소프트웨어일 뿐이라 복잡성이 높아질수록 버그 발생 가능성도 같이 커짐
이번 Hexacon Ivan Krstić Keynote에서 Apple이 버그 바운티 프로그램을 강화한다고 발표했음
관련 공식 블로그
정기 업데이트나 앱 실행 시 평문(암호화되지 않은) 연결 문제가 아직 해결됐는지 궁금함
관련 참고 자료