Home > 전체기사
점점 더 안전해지는 파이어폭스, 공격 경로 두 가지 추가 삭제
  |  입력 : 2019-10-16 19:39
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기
about: 페이지에 삽입되어 있는 인라인 스크립트를 전부 패키징 하고
eval()이라는 자바스크립트 함수와 관련된 기능과 매커니즘 삭제하고


[보안뉴스 문가용 기자] 모질라가 자사가 개발한 파이어폭스(Firefox) 브라우저에서의 코드 주입 공격 가능성을 낮추기 위한 조치를 취했다. 인라인 스크립트나 eval()과 같은 함수들을 삭제하는 등 잠재적으로 위험할 수 있는 요소들을 삭제했다고 한다.

[이미지 = iclickart]


이러한 코드 단위 변경 때문에 가장 먼저 영향을 받는 건 파이어폭스에 자동으로 탑재된 about: 페이지들이다. 이는 브라우저의 내부 상태와 관련된 인터페이스 기능이다. 가장 널리 알려진 건 about:config로, 파이어폭스 사용자들 중 브라우저 커스터마이징을 하고자 하는 사람들이 주로 사용한다.

about: 페이지들은 HTML과 자바스크립트를 사용해 구축된다. 그렇기 때문에 일반 웹 페이지들이 가지고 있는 취약점들을 똑같이 갖게 된다. 코드 주입 공격에 안전하지 못한 것도 마찬가지이다. 그렇다는 건 공격자가 about: 페이지에 코드를 주입함으로써, 원래는 안전해야 하는 페이지에서 코드를 실행할 수 있게 된다는 뜻으로, 사용자인 것처럼 임의의 행동을 취하는 상황까지도 연출할 수 있다.

그래서 모질라는 모든 인라인 이벤트 핸들러들의 코드를 새로 작성했다고 한다. 그 과정에서 모든 인라인 자바스크립트 코드를 패키지 된 파일들로 옮겼다. 파이어폭스 브라우저 내에 존재하는 45개의 about: 페이지들 전부에 이 같은 조치가 이뤄지고 적용됐다. “그 결과 파이어폭스에 강력한 콘텐츠 보안 정책(CSP)을 적용할 수 있게 됐습니다. 주입된 자바스크립트 코드가 실행되는 걸 막을 수 있는 정책이죠.”

모질라의 기술 수석인 크리스토프 케르슈보머(Christoph Kerschbaumer)는 “앞으로 자바스크립트 코드는 패키지 된 리소스에서부터 로딩되기만 할 것”이라고 설명했다. “그렇게 하려면 내부의 chrome: 프로토콜을 사용해야만 합니다. 그런 상태에서 about: 페이지들에서 인라인 스크립트를 사용하지 못하게 함으로써 임의 코드 주입 및 실행 가능성을 전부 차단했습니다.”

그 다음 주요한 변화는 자바스크립트 함수 중 하나인 eval()에 적용됐다. eval()은 같은 보안 컨텍스트 내에서 임의의 문자열을 확인하고 실행하는 데 사용된다. 런타임으로 생성된 코드와 넌스크립트 위치에 저장된 코드의 실행을 가능케 하기에 유용하기도 하지만, 코드 주입을 통한 공격 표면을 높이기도 한다.

“저희 모질라는 파이어폭스를 겨냥한 공격 가능성을 조금이라도 더 낮추기 위해 eval()의 사용을 권고하지 않습니다. 또한 eval()과 관련되어 있거나 비슷한 종류의 함수들을 시스템 권한 컨텍스트에서 사용하지 못하도록 전부 삭제했습니다. 또한 파이어폭스 코드베이스의 부모 프로세스에서도 삭제했습니다.” 케르슈보머의 설명이다.

이런 변경 사항들을 적용하며 모질라는 eval()을 호출하는 요소가 코드베이스 바깥에도 존재함을 발견할 수 있었다고 한다. “사용자들이 자신들의 자바스크립트를 브라우저 컨텍스트에서 실행할 수 있도록 해놓은 매커니즘 때문입니다.”

케르슈보머는 “예전에 사용자들의 편의를 위해 도입했던 기능이지만, 이제는 보안 위험 가능성을 높이는 요소로 인식되고 있다”며 “매커니즘 자체를 삭제했다”고 발표했다. “대신 사용자들은 다른 방법을 통해 같은 효과를 누릴 수 있습니다. 또한 eval() 함수 자체가 사라진 것도 아닙니다.”

eval()은 앞으로도 계속해서 알려지지 않은 eval() 인스턴스가 실행될 때마다 모질라 보안 팀에 해당 사실을 전달하도록 설정됐다. 보안 팀은 이러한 알림 메시지를 받은 후 감사와 평가를 시작할 것이라고 한다.

3줄 요약
1. 파이어폭스, 공격 경로 두 가지 차단.
2. 하나는, about: 페이지들의 인라인 스크립트를 패키지화 시킨 것.
3. 둘은, eval()과 관련된 함수들과 관련 매커니즘을 삭제한 것.

[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

  •  
  • 0
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기


  •  SNS에서도 보안뉴스를 받아보세요!! 
모니터랩 파워비즈 6개월 2020년6월22~12월 22일 까지넷앤드 파워비즈 진행 2020년1월8일 시작~2021년 1월8일까지위즈디엔에스 2018파워비즈배너 시작 11월6일 20181105-20200131
설문조사
코로나19 팬더믹 이후, 가장 기승을 부리고 있는 사이버 공격 유형은 무엇이라고 보시나요?
랜섬웨어
피싱/스미싱
스피어피싱(표적 공격)/국가 지원 해킹 공격
디도스 공격
혹스(사기) 메일
악성 앱
해적판 소프트웨어
기타(댓글로)