본 글은 Mozilla 재단에서 제공하는 Mozilla Wiki 웹 사이트의 게시글을 번역한 것입니다. 원 게시글의 라이선스는 CC-BY-SA 3.0 Unported이며, Mozilla Wiki 라이선스 정책 상 CC-BY-SA 3.0 Unported 혹은 이후 버전을 사용할 수 있으므로 이 글은 하단 라이선스 표기와 관계 없이 CC-BY-SA 3.0 Unported로 배포됩니다.
전체 기여자 및 원본 글은 여기에서 확인하실 수 있습니다.

Fission은 Mozilla가 구현한 Firefox의 웹사이트 격리 체계입니다. 사이트 격리는 보안 기능의 일종으로 방대한 범위의 보안 버그로부터 추가적인 보호 기능을 합니다. 사이트 격리는 웹 페이지, 웹 프레임 등을 안전하게 샌드박스에 담아 각각을 격리하여 Firefox의 보안 강화에 기여합니다.

Fission 기능을 가장 쉽게 활성화 혹은 비활성화하는 방법은 다음과 같습니다:

  1. Firefox Nightly의 설정을 엽니다: 이 항목은 햄버거 메뉴(三 처럼 생긴 메뉴)에 위치합니다.
  2. 'Nightly 실험' 메뉴를 선택하세요.
  3. 'Fission (사이트 격리)' 체크박스를 선택하세요.
  4. Firefox Nightly를 재시작하세요.

이 기능은 왜 필요한가요?

웹 보안 체계에서는 웹 사이트나 웹 프레임이 각각 다른 웹 사이트 혹은 프레임의 정보에 접근할 수 없도록 설계되어 있습니다. 하지만, 버그는 존재합니다. Firefox와 Mozilla 보안 팀은 이러한 보안 버그를 방지할 수 있는 최선의 노력에 투자하거나, 혹은 버그가 있다면 찾아내어 출시 전에 수정하기로 하였습니다. 그러나, 버그가 수정되기 전에 어떻게든 개발자나, 분석 및 시험 과정, 혹은 충분히 노련한 해커에게 발견되곤 합니다. 그러면 경우에 따라 웹 페이지를 이용하는 사용자가 현재 접속하고 있는, 혹은 최근에 접속한 사이트의 데이터에 접근하도록 제작하는 일이 발생할 수 있습니다.

예시

만약 https://example.com에 위치한 블로그가 Facebook 좋아요 버튼(ᅟhttps://facebook.com에서 제공하는 프레임)과 트위터 버튼(https://twitter.com에서 제공하는 프레임)을 가지고 있다고 가정해보세요. 사이트 격리가 없다면, 전체 페이지가 한 프로세스에서 실행됩니다. 만약 Firefox의 발견되지 않은 버그가 제공되고 있는 보호 기능에도 불구하고 블로그의 메인 페이지가 프레임 안의 데이터에 접근할 수 있도록 허용하고 있다면, https://example.com의 악성 소유자(혹은 이미 도메인을 훔친 사람)가 이 버그를 이용하여 Facebook과 Twitter 프레임에서 Firefox 사용자를 흉내내어, 가짜 메시지를 발송하거나 개인 메시지[각주:1]를 읽는 등의 목적으로 사용하는 이점을 누릴 수도 있습니다.

사이트 격리가 되면, 이 블로그는 3개의 서로 다른 프로세스에서 구동됩니다. 하나는 https://example.com을 구동하고, 하나는 https://facebook.com을 구동하며, 나머지 하나는 https://twitter.com을 구동하도록 작동합니다. 이러한 프로세스는 각 프로세스가 할 수 있는 제한 내에서 샌드박스화되어 작동합니다. 만약에 https://example.com의 악성 소유자가 발견되지 않은 Firefox의 버그를 이용하여 잇점을 누리고자 할 때, https://example.com을 구동하는 프로세스, https://facebook.com을 구동하는 프로세스, https://twitter.com을 구동하는 프로세스는 이러한 작동과 관련된 어떠한 요청도 수행하지 못하도록 막을 것입니다. 다시 말해, 이 가설 상의 버그는 Facebook이나 Twitter 프레임을 이용하여 Firefox 사용자로 흉내내는 데 더이상 효과를 발휘하지 못하는 것입니다.

연락하실 일이 있다면

Fission 팀은 Mozilla Matrix 서버#fission:mozilla.org 방에서 여러분의 질문에 대답할 준비가 되어 있습니다. (영문)

Fission의 작동을 관찰하는 방법

Firefox Nightly에서, about:processes를 열어 Firefox가 사용하고 있는 프로세스를 확인하실 수 있습니다. Fission의 일부로서, about:processes 기능은 현재 실험 기능입니다.

버그 제보하는 방법

Bugzilla에 Fission 버그를 보고하시려면, 여기를 눌러 Fission 버그 템플릿을 이용하세요. 혹은 버그를 보고하실 때 버그 개요(Summary)에 "Fission"이라는 단어를 포함해주세요. Fission 팀의 버그 담당은 어느 Bugzilla 컴포넌트에 버그를 보고했는지와 상관 없이, 버그를 찾아낼 것입니다.

알려진 문제

  • 몇몇 확장기능이 제대로 동작하지 않습니다. 그러니 동작하지 않는 확장기능을 찾으셨다면 보고 부탁드립니다.
  • Cross-site iframe이 인쇄 시 빈 영역으로 표시됩니다.
  • Cross-site iframe이 스크린샷 촬영 시 빈 영역으로 표시됩니다.
  • Cross-site iframe이 포함된 문서들이 BFC캐시에 접근하지 못합니다.
  • Cross-site iframe에는 세션 기록이 남지 않습니다.
  • 세션 복원 기능이 종종 페이지 상태, 그러니까 예를 들면 페이지 확대, 축소 여부, 스크롤 위치, 혹은 양식 데이터를 복원하지 못합니다.
  • Cross-site iframe을 위한 DevTools(개발자 도구) 지원이 Fission 환경에서 완성되지 않았습니다. (자세히 알아보기)
  • 확장기능이나 서비스 워커를 Fission이 활성화되지 않은 창에서 디버깅할 경우, 충돌이 발생할 수 있습니다.
  • 탭을 많이 열어두면 Linux 환경에서 자원 고갈 현상이 발생합니다. 다음과 같은 사례가 예시입니다:
    • 과도한 메모리 사용
    • 파일 서술어 고갈 문제[각주:2]
    • Linux 환경에서 X11 연결이 안 되는 문제(bug 1635451)

Fission 활성화하기

Fission은 현재 활발하게 개발 중이며, Firefox Nightly에서만 활성화할 수 있습니다.

  1. about:config 페이지에서, "fission.autostart"와 "gfx.webrender.all" 설정을 "true"로 설정하세요. 절대 다른 "fission.*" 혹은 "gfx.webrender.*" 설정을 건들지 마세요.
  2. Nightly를 재시작하세요.

현재 탭에 마우스를 가져다대면, Fission의 활성화 여부를 알 수 있습니다. 만약 가져다댔을 때 나타나는 문구에 "[F]"가 포함되어 있으면, Fission이 활성화되어 있는 것입니다. 백그라운드 탭에 가져다댔을 때에는 "[F]" 문구가 나타나지 않을 수 있는데, 그 원인은 아직 로드되지 않았기 때문입니다.

Fission 비활성화하기

Fission을 사용하던 중 문제에 직면하실 경우, Fission이 아닌 창을 같은 브라우저 세션에서 여실 수 있습니다. 해당 기능은 햄버거 메뉴(三처럼 생긴 메뉴)에 위치한 "새 Non-Fission 창"을 통해 이용하실 수 있습니다. 이는 Fission에 특정된 문제를 밝히거나, fission에 특정된 충돌 현상에 유용합니다. 만약 이렇게 해서 마주친 문제가 해결된다면, Bugzilla에 관련된 내용을 설명하여 보고 부탁드립니다!

Fission을 비활성화하시려면, "fission.autostart" 항목을 "false"로 되돌리시고 Nightly를 재시작하세요.

하위 문서

원문을 참조해주세요.

마지막 업데이트: 2021.04.02 오후 6시 10분
원본 게시글 마지막 업데이트: 2021년 3월 26일 오후 4시 57분

본 게시글에 오역, 오타 등 지적하실 사항이 있다면 주저 마시고 댓글 및 트위터 멘션/DM을 통해 말씀해주세요. 최대한 빠른 시일 내에 수정하겠습니다.
  1. 역자 주: 트위터의 DM이나 Facebook Messenger같은 종류 [본문으로]
  2. 원문은 File descriptor exhaustion issues인데, 정확히 무엇을 의미하는지 불분명합니다. 아시는 분 있으면 댓글로 안내 부탁드립니다. [본문으로]