
스냅이 16.04 LTS로 출시되면블로그 게시물잘 알려진 Linux 커널 기여자이자 핵심 OS 개발자인 Matthew Garrett은 다음과 같이 말했습니다.
...스냅은 제한 없이 실행되며 거의 전체 시스템에 액세스할 수 있습니다.
스냅의 목적이 전체 시스템에서 앱을 격리하는 것이라면 왜 시스템에 액세스하여 무제한으로 실행할 수 있습니까? 버그 보고서를 제출해야 합니까? 이 문제를 해결하기 위해 어떤 조치를 취할 예정입니까?
답변1
이는 특히 X11을 사용하는 스냅과 관련이 있습니다. 즉, 스냅은~ 아니다unity7
제한 없이 실행되지만 스냅 제한에 X에 대한 액세스가 포함된 경우에는 X에 대한 액세스 권한이 있습니다. 또는 인터페이스 를 사용하지 않는 스냅은 포함되지 않습니다 x11
. 해당 블로그 게시물에 설명된 문제는 X의 잘 알려진 제한 사항이며 대체 기술(예: Mir)이 개발되는 이유 중 하나입니다.
구스타보 니에마이어(Gustavo Niemeyer)는 다음과 같은 글을 썼습니다.이 문제를 논의하는 좋은 블로그 게시물. 나는 후손과 완전성을 위해 여기에 인용하겠습니다.
보안에 관심이 있는 사람이라면 X11이 실제로는 보안 프로토콜이 아니라는 점을 알게 될 것입니다. 우리가 애플리케이션에 이 권한을 전달할 때 여러 가지 시스템 남용이 발생할 수 있습니다. home과 같은 다른 인터페이스는 사용자의 $HOME 디렉토리에 있는 숨기지 않은 모든 파일(점으로 시작하지 않는 파일)에 대한 스냅 액세스를 제공합니다. 이는 악성 애플리케이션이 개인 정보를 훔쳐 네트워크를 통해 전송할 수 있음을 의미합니다(가정). 또한 네트워크 플러그도 정의합니다).
일부 사람들은 이것이 사실이라고 놀랄 수도 있지만, 이는 소프트웨어 플랫폼으로서의 Snap과 Snappy의 역할에 대한 오해입니다. Ubuntu 아카이브에서 소프트웨어를 설치하는 것은 Ubuntu 및 Debian 개발자에 대한 신뢰의 표시입니다. 각각의 아카이브에서 Google의 Chrome 또는 MongoDB 바이너리를 설치하면 이는 해당 개발자에 대한 신뢰의 표시입니다(이러한 개발자는 시스템에 루트가 있습니다!). Snappy는 개인 파일, 웹 카메라, 마이크 등에 대한 소프트웨어 액세스 권한을 부여한 후에는 이러한 허용량을 악의적으로 사용하지 않을 것이라고 믿어야 하기 때문에 이러한 신뢰의 필요성을 제거하지 않습니다.
이 그림에서 Snappy를 제한하는 요점은 Linux 세계에서 우리 모두가 배운 것과 동일한 절차적 관리 외에도 명확하고 관찰 가능한 방식으로 무엇이 허용되고 누구에게 허용되는지 정확하게 제어할 수 있는 소프트웨어 생태계를 활성화하는 것입니다. , 대신에. 사람들이 시스템의 모든 관련 리소스를 사용하지 못하게 하면 문제를 해결하는 대신 덜 안전한 메커니즘을 통해 동일한 소프트웨어를 사용하도록 강요할 뿐입니다.
그리고 오늘 우리가 가지고 있는 것은 시작에 불과합니다. 이러한 인터페이스는 곧 리소스 선택(예: 어떤 직렬 포트?)을 포함하여 훨씬 더 풍부해지고 더 세분화될 것이며, 그 중 일부는 더 안전한 선택(예: Unity 8)을 위해 완전히 사라질 것입니다.
답변2
문제는 스냅이 아니라 보안을 크게 고려하지 않고 설계된 30년 된 기술인 X11에 있습니다.
"문제를 해결"하려면 X11을 제거하면 됩니다. 서버와 같이 이것이 없는 시스템은 지금 당장 스냅 격리의 이점을 누릴 수 있습니다. 새로운미르xserver를 대체하게 될 이 제품은 아마도 조만간 X11의 보안 문제를 해결할 것으로 예상됩니다.
Matthew Garrett의 글을 읽으시면 더욱 좋습니다.블로그 게시물당신의 호기심을 충족시키기 위해. 그것은 말한다:
여기서 문제는 X11 윈도우 시스템입니다. X에는 다양한 수준의 애플리케이션 신뢰에 대한 실제 개념이 없습니다. 모든 응용 프로그램은 다른 응용 프로그램에서 키 입력을 받도록 등록할 수 있습니다. 모든 애플리케이션은 입력 스트림에 가짜 키 이벤트를 삽입할 수 있습니다. 강력한 보안 정책에 의해 제한되는 애플리케이션은 간단히 다른 창에 입력할 수 있습니다. 개인 데이터에 액세스할 수 없는 애플리케이션은 세션이 유휴 상태가 될 때까지 기다렸다가 제한되지 않은 터미널을 연 다음 컬을 사용하여 데이터를 원격 사이트로 보낼 수 있습니다. Ubuntu 데스크탑이 여전히 X11을 사용하는 한 Snap 형식은 의미 있는 보안을 거의 제공하지 않습니다.