Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

AppArmor로 격리한 Firefox tarball 버전, 자동 업데이트 문제 해결 가이드

몇 주 전, 저는 AppArmor 강화 도구의 기본 개념과 작동 방식을 소개하고, Firefox 브라우저를 격리·강화하는 실전 예제를 다룬 글을 발표했습니다. 다만 여기서 말하는 Firefox는 일반적인 패키지 버전이 아니라, Mozilla 공식 사이트에서 직접 내려받을 수 있는 tarball(tar 아카이브) 버전입니다. 내려받고, 압축을 풀고, 실행하기만 하면 되는 그 버전이죠.

여기까진 순조로웠습니다. Kubuntu에 기본 포함된 AppArmor 프로필(템플릿)을 활용해 약간의 수정만 거치면, 홈 디렉터리에서 실행되는 Firefox tar 버전을 위한 맞춤형 규칙 세트를 만들 수 있었습니다. 그런데 한 가지 문제가 남아 있습니다. 바로 기본 설정으로는 자동 업데이트가 불가능하다는 점입니다. 이번 글에서 이 문제를 해결해 보겠습니다.

AppArmor로 격리한 Firefox tarball 버전, 자동 업데이트 문제 해결 가이드

문제의 정체

상황을 정리해 보겠습니다. Firefox tar 버전은 Windows에서 흔히 보던 방식처럼 스스로 업데이트하는 기능을 갖추고 있습니다. 브라우저가 업데이트를 내려받고, 재시작하면 끝입니다. 별도로 재설치할 필요 없이, 처음 압축을 푼 위치(예: ~/firefox/)에서 계속 브라우저를 실행하면 됩니다.

그러나 AppArmor 프로필이 적용된 상태에서는 브라우저가 자동 업데이트를 수행하지 못합니다(위 스크린샷 참고). 업데이트가 있다는 알림은 뜨지만, 결국 수동으로 내려받아야 하죠. 물론 몇 가지 우회 방법이 있습니다.

  • AppArmor 규칙 임시 제거: 규칙을 제거한 뒤 브라우저를 재시작하면 Firefox가 자동 업데이트됩니다. 하지만 매번 번거롭고, 업데이트 후에는 규칙을 다시 적용해야 합니다.

sudo apparmor_parser -R "Firefox tar 버전 프로필 이름"

  • 수동 업데이트: 공식 사이트에서 최신 tarball을 내려받아 기존 폴더 위에 덮어쓰거나, 압축을 푼 뒤 파일들을 Firefox 설치 폴더로 복사하는 방법입니다. 이 과정은 Firefox 사용자 프로필(북마크, 설정 등)에는 영향을 주지 않습니다.

tar -xvf "tarball 파일명"
cp -ar "압축 해제 폴더"/* "Firefox 설치 폴더"/

하지만 이런 방법들은 어디까지나 임시방편일 뿐입니다. 좀 더 근본적인 해결책이 필요합니다.

해결 방법

진짜 해결책은 AppArmor 프로필을 하나씩 들여다보며 어떤 규칙이 충돌을 일으키는지 파악하는 것입니다. 프로필의 각 줄은 특정 동작을 선택적으로 허용하거나(예: 읽기는 허용하되 쓰기는 차단), 특정 리소스 접근을 완전히 거부하는 규칙입니다. 명시적으로 작성되지 않은 동작은 프로필이 허용하지 않습니다.

기본 프로필에는 Firefox 설치 디렉터리 내부의 파일과 폴더에 대한 쓰기를 거부하는 규칙이 포함되어 있습니다. Firefox가 /usr 같은 시스템 디렉터리에 설치되는 일반적인 환경이라면 당연한 조치이지만, tarball 버전처럼 독립된 경로에 설치해 사용하는 경우에는 자동 업데이트와 충돌하게 됩니다.

deny @{MOZ_LIBDIR}/** w,

이 규칙을 주석 처리한 뒤 프로필을 다시 로드하면 끝입니다:

sudo apparmor_parser -r "프로필 이름"

AppArmor로 격리한 Firefox tarball 버전, 자동 업데이트 문제 해결 가이드

AppArmor로 격리한 Firefox tarball 버전, 자동 업데이트 문제 해결 가이드

마무리하며

이렇게 아주 작은 변경 하나만으로 Firefox tarball 버전의 자동 업데이트 기능을 되찾을 수 있습니다. 물론 보안에 민감한 분이라면 설치 폴더에 쓰기 권한을 여는 것이 마음에 걸릴 수 있고, 필요할 때마다 수동 업데이트를 선택하는 것도 나름의 방법입니다. 하지만 편의성을 유지하면서도 AppArmor 강화의 핵심 보호 기능은 그대로 누리고 싶다면, 이 방법이 현실적인 타협점이 됩니다. 다만 열어준 권한이 가져올 잠재적 위험은 항상 염두에 두세요.

이 가이드가 AppArmor와 Firefox 자동 업데이트 관련 궁금증을 푸는 데 도움이 되었기를 바랍니다. 그리고 아직 끝이 아닙니다. 다음 글에서는 D-Bus를 다루며, 특히 Firefox가 KDE/Plasma 통합 기능을 사용할 수 있도록 하는 데 필요한 규칙을 살펴볼 예정입니다. KDE에 국한된 이야기처럼 들릴 수 있지만, 어떤 브라우저 통합 기능에도 적용할 수 있도록 범용적으로 작성하겠습니다. 그럼 다음 시간에 만나요!