애플 보안 요건 강화 코앞인데··· "iOS 앱 97%, 아직 준비 안돼"

IDG News Service
애플이 iOS 앱의 인터넷 연결에 더 강화된 보안 요건을 적용할 것이라고 예고한 시점이 불과 1달도 안남았지만, 앱 개발업체는 아직도 이에 대한 준비가 되지 않은 것으로 나타났다.


Image Credit: Martyn Williams

이번 조사는 보안 업체 앱토리티(Appthority)가 실시했다. 기업 환경에서 널리 사용되는 iOS 앱 200개를 대상으로, 애플의 ATS(App Transport Security) 요건을 얼마나 준수하는 지를 검토했다. ATS는 iOS 9부터 기본 적용된 것으로 모든 앱의 인터넷 통신에서 암호화된 HTTPS(HTTP over SSL/TLS) 연결을 사용하도록 강제한다. 업계 표준 암호화 프로토콜과 알려진 취약점이 없는 암호 알고리즘을 사용하도록 하는 내용도 포함돼 있다.

ATS가 등장하기 전까지는 앱 개발업체가 서드파티 프레임워크를 이용해 HTTPS를 적용했다. 그러나 SSL/TLS 설정 작업이 까다로워 적용 과정에서 오류가 발생하는 일이 잦았다. 이것은 결국 보안을 취약하게 해 프로토콜이 트래픽 스누핑이나 중간자 공격(man-in-the-middle attacks)을 제대로 막지 못하는 이유가 되기도 했다.

현재의 iOS는 앱에서 ATS의 일부만 쓸 수 있도록 허용하고 있다. 특정 연결에서만 사용할 수도 있다. 그러나 애플은 지난 6월 WWDC 행사에서 이를 변경할 것임을 분명히 했다. 올해 내에 앱 스토어를 통해 유통되는 모든 앱에서 ATS를 활성화하도록 강제할 것이라고 밝혔다. 강제하는 방법은 운영체제 수준에서 이뤄지지 않는다. 앱 스토어 등록과정에서 ATS가 활성화됐는지 확인한다. 단, 개발업체가 정당한 근거를 제시하면 'ATS 예외'를 적용받을 수 있다. 이런 과정 없이는 앱 스토어를 통해 앱을 판매, 배포할 수 없다.

이번 조사결과를 보면, 앱토리티 연구자가 분석한 앱 200개 중 193개, 97%에서 ATS의 일부만 사용했거나 혹은 임의로 'ATS 예외'를 적용한 것으로 나타났다. 연구팀은 "분석한 상위 200개 iOS 앱 중 166개(83%)가 ATS 요건 일부를 사용하지 않았다. Info.plist 파일에 'NSAllowsArbitraryLoads' 속성을 활성화하는 방법을 사용했다. 이들 앱 전부가 네트워크 연결에 ATS를 사용하지 않는 것은 아니다. 업체에 따라 ATS가 다른 모든 연결에 작동하지 않도록 허용하면서 자사 도메인 연결에서는 이를 지원하도록 설정할 수 있다"라고 설명했다.

모든 인터넷 연결에 HTTPS를 사용하지 않는 앱 중에는 유명 앱이 다수 포함됐다. 페이스북, 트위터, 링크드인, 페이스북 메신저, 스카이프, 바이버, 왓츠앱, 폭스 뉴스, CNN, BBC, 넷플릭스, ESPN, 훌루, 판도라, 아마존 클라우드 플레이어, 워드, 엑셀, 파워포인트, 원노트 등이다. 플래시라이트, QR 코드 리더, 게임 같은 앱도 마찬가지였다.

민감한 데이터를 전송하지 않는 일부 인터넷 연결에서는 HTTPS가 필요없다는 주장도 있다. 그러나 앱토리티 연구팀은 200개 앱 중에서 기기 ID, 이메일 주소, 물리 주소, 주소, 지리정보 등을 전송한 앱을 10개 찾아냈다. 이들 중에는 심지어 패스워드나 비밀 키를 암호화하지 않은 HTTP 링크로 보내는 경우도 있었다.

한편 앱 개발업체가 모든 인터넷 연결에 ATS를 사용하지 않고 앱 스토어 등록 과정에서 'ATS 예외'를 요구하는 이유는 여러 가지이다. 예를 들어 많은 앱이 개발업체의 서버는 물론 서드파티 광고, 시장조사, 애널리틱스, 이미지와 비디오 호스팅 서비스 등과 통신한다. 이러한 외부 연결에 HTTPS를 사용하는 것은 앱 개발업체의 통제권을 벗어나는 것이다.

이 때문에 ATS는 상세한 예외를 제공한다.'NSAllowsArbitraryLoadsInMedia'가 대표적인데, 이를 이용하면 다른 연결은 암호화하면서도 비디오나 오디오 콘텐츠만 HTTP로 스트리밍할 수 있다. 그러나 앱토리티의 분석에 따르면, 개발업체는 이런 문제를 다룰 때 모든 연결에 대해 ATS를 해제하는 'NSAllowsArbitraryLoads'를 더 선호한다.

실제로 앱토리티는 ATS 예외를 적용하기 위해 'NSAllowsArbitraryLoadsInMedia'나 'NSAllowsArbitraryLoadsInWebContent' 속성을 사용하는 앱은 발견하지 못했다. 애플의 새로운 보안 요건이 적용되면 이런 상황은 바뀔 것으로 보인다.

ATS를 사용하는 앱 상당수는 관련 보안 기능도 꺼놓은 것으로 나타났다. 예를 들어 ATS 내에서 활성화할 수 있는 'Certificate Transparency' 기능을 사용한 앱은 단하나도 없었다. 더구나 이들 중 7개는 SSL 인증서 검증 기능까지 꺼놨다. 46개는 인증서 피닝을 사용하지 않았고, 38개 앱은 전방향 비밀성(Forward Secrecy)을 비활성화했다. 8개 앱은 TLS 1.2를 기본으로 설정한 ATS와 달리 TLS 프로토콜 버전 1.0 또는 1.1을 허용하고 있었다.

앱토리티 연구팀 관계자는 "기업 환경에서 iOS 앱의 데이터가 상당 부분이 암호화되지 않고 있다. 애플이 이런 앱을 앱 스토어에 등록하도록 허용하면 이런 데이터 관련된 보안 위협이 커질 것이다. 이는 기업에게 2가지 점에서 시사하는 바가 크다. 하나는 이런 위험에 대한 가시성을 확보해야 한다는 것이고, 다른 하나는 이런 예외를 가진 앱과 관련된 위험을 관리해야 한다는 것이다"라고 말했다. ciokr@idg.co.kr