X11에서의 스냅 보안

X11에서의 스냅 보안

스냅이 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 형식은 의미 있는 보안을 거의 제공하지 않습니다.

관련 정보