본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

안전한 자바를 위한 7단계 방안

OSS 게시글 작성 시각 2013-05-20 18:13:57 게시글 조회수 4448

2013년 05월 16일 (목)

ⓒ ITWorld, Suan Pershke, Arc Seven Technology CSO | Network World



미국 국토안보부의 경고에 따라, 보안 전문가들은 자바 기반 취약점 공격에 대비해 기업 네트워크를 강화해야 한다.


운영체제에 독립적인 인기 프로그래밍 언어 자바(Java)는 컴퓨터, 휴대전화, 프린터, TV, DVD, 가정 방범 시스템, 자동 응답기, 네비게이션 시스템, 게임, 의료기기 등 상상할 수 있는 거의 모든 기기에서 사용된다.


미국 국토안보부의 CERT(Computer Emergency Readiness Team)은 자바와 관련한 여러 보안 지침들을 발행해 온 것에는 트위터(Twitter), 페이스북(Facebook), 애플(Apple), 마이크로소프트(Microsoft)와 같은 업체들을 상대로도 자바 기반의 취약점 공격이 성공한 것과 공격자가 원격으로 악성코드를 실행해 취약 시스템을 침투하는 '제로-데이(zero-day)'에 대한 지속적인 우려때문이다.


현재까지 내려온 그 보안 지침들에서, 국토안보부는 웹 브라우저에서 자바를 비활성화할 것을 추천했다.


이에 대응해 썬(Sun)을 인수하면서 자바를 보유하게 된 오라클(Oracle)은 수많은 패치와 몇몇 예정보다 이른 아웃-오브-밴드(out-of-band)를 공개했고, 최근 패치에선 자바 애플릿의 브라우저 간 조정 방법도 변경했다.


일반적으로, 잠재적 보안 위협 경고는 새로운 것도 아니고, 대부분의 네트워크 보안 관리자들은 이 상황을 일상적인 IT 환경으로 여긴다. 보통의 솔루션은 시스템 패치와 개발업체 지원 업데이트를 설치하고, 베스트 프랙티스를 위한 개발업체의 추천사항을 따르는 것이다.


그러나 이번 사례에서처럼, 제품을 비활성화하거나 삭제하라는 조언이, 개발업체도 아니고 정부기관과 기타 서드파티에서 나왔다는 점은, 조직들에게 이전과는 다른 도전 과제가 된다.


그래서 자신의 네트워크를 자바 기반 취약점 공격으로부터 보호할 수 있는 일곱가지 방안을 소개한다.


자바가 워낙 널리 쓰이기 때문에, 대부분 조직들에서 완전히 자바를 없애는 것은 아마도 생각할 수 없는 조치일 것이다.


그러나 여기 일곱 단계 행동 계획을 준수하면, 완벽한 보안을 보장할 순 없지만, 최소한 보안 의식을 고취하고, 시스템을 단단히 하며, 공격할 수 있는 구멍을 줄임으로써 위협을 최소화하는데 도움이 될 것이다.


1. 충격 분석을 수행하라
우선 조직 내외에서 자바가 어떻게 쓰이고 있는지 알아내는 것이 좋은 첫걸음이다. 자신의 조직이 개발업체, 클라이언트 혹은 일반 대중에 의해 접속가능한 자바 의존적 애플리케이션을 제공하는가?


미리 자바 사용에 제한을 걸어두지 않았다면 대부분의 인터넷 브라우저에서 운영체제의 일부와 여러 인기 애플리케이션 내에서 자바를 찾을 수 있을 것이다.


그리고 수많은 상용화된 소프트웨어 애플리케이션과 오픈 소스 소프트웨어 애플리케이션들이 자바 플랫폼 위에 구축되어 있기 때문에 인기 애플리케이션의 자바가 아마도 가장 큰 미지수가 될 것이다.


해당 앱이 비즈니스에서 중요한 역할을 맡고 있는가? 자바 기반 앱과 플랫폼에 대한 조직의 의존도를 파악하는 일은 위험 제어의 필수적인 전제조건이다.


2. 자바를 항상 업데이트하고 최신 패치를 설치하라
모든 컴퓨터와 기기들을 최신 버전의 자바로 업데이트하는 것은 그 무엇보다도 중요하다. 오라클은 오직 최신 버전만 지원하기 때문에, 이전 버전에선 보안 패치 사용이 불가능하다.


코드 인젝션(code injection) 위험을 줄이기 위해서는, 오라클로부터 직접 업데이트를 받아야 한다. 또한 단순 최신 버전 설치가 꼭 구버전을 삭제하지는 않기 때문에, 구 버전의 자바를 수동으로 삭제하는 것 또한 중요한 절차다.


자바 기반 앱의 활용을 필요할 때만 시작하고 그렇지 않을 때는 꺼둘 수 있는 가상 기기상으로 제한하는 방안을 고려하자.


또한 몇몇 애플리케이션들은 이전 버전의 자바를 사용한다는 점과 이런 일이 최신 버전 업데이트 이후에 발생할 수 있다는 점을 명심해야 한다.


만약 자사의 앱이 구형 버전의 자바에 의존한다면, 이는 훨씬 큰 보안 위험이 되기 때문에 관련된 모든 구형 앱들을 업데이트하거나 교체해야 한다.


3. 자바 제어판 설정을 관리하라
윈도우와 맥 클라이언트 모두에서 사용가능한 자바 제어판(Java Control Panel)에서는 수많은 설정이 가능하다. 제어판을 통해 업데이트 자동화에서부터 보안 설정 관리에 이르기까지, 자바가 어떻게 클라이언트 컴퓨터상에서 구성되는 지를 세분화해 제어할 수 있다.


자동 업데이트는 최신 업데이트를 알려주거나 다운로드 하도록 구성할 수 있지만, 안타깝게도 기업 전반에 걸쳐 자동적으로 업데이트를 설치하는 기능은 현재로썬 없다. 이는 최신 업데이트 적용을 위해 항상 수동 조작이 필요하다는 의미다.


자바 버전 7의 몇몇 마지막 업데이트들은 보안 설정에 있어서 자동적으로 '하이(high)' 보안 설정을 사용하도록 설정되어 있어, 언사인드(unsigned) 혹은 셀프-사인드(self-signed) 애플릿을 실행하기 앞서 사용자에게 상기시켜 준다.


이는 기본 보안 설정이 '미디엄(medium)'으로 되어있던 근래 버전들과의 차이점이다. 자바 제어판에서, 자바를 사용하지 않을 경우 이를 비활성화시킬 수도 있지만, 자바를 재활성화 시킬 때 프롬프트 없이 언사인드와 셀프사인드 애플릿이 허용되어 버린다는 보고도 있다.


4. 웹 브라우저 강화하기
가능한 한 자바를 웹 브라우저에서 비활성화시켜야 한다. 만약 몇 가지 이유로 그럴 수 없을 때는 최소한 자바 애플릿에 대한 원격 접속이라도 비활성화하는 것을 고려하라.


원격 자바 요청을 제한하는 프록시 서버를 사용하는 것도 한가지 솔루션이지만, 로컬에서만 허용하라.


몇몇 IT 운영자들의 또다른 추천사항은, 두 개의 브라우저를 사용해 한 브라우저에는 자바를 활성화시켜 자바가 필수적인 사이트를 방문하는데 사용하고, 다른 브라우저로 그 외 여러가지를 처리하는 것이다.


이 규칙을 기업 전반에 적용시키기는 쉽지 않겠지만, 자바 사이트에 접속하는데 오직 한가지 유형의 브라우저만 허용하고 다른 브라우저는 막는 프록시 규칙을 설정해두면 된다.


5. BYOD 엔드포인트 제어
현재와 같은 BYOD의 시대에서, 기업 네트워크에 연결하기 위해 직원들이 사용하는 많은 개인기기와 씨름하는 것은 그 자체로 상당한 어려움을 만들어낸다.


자바는 모바일 애플리케이션에서 널리 쓰이기 때문에, BYOD 접속이 제공되는 방식 제어에 대한 회사 정책을 수립해야 한다. 안드로이드(Android), iOS, 윈도우 폰(Windows Phone), 블랙베리 10(Blackberry 10) 운영체제를 구동하는, 새로운 '스마트 기기'들은 자바를 탑재하고 있지 않다.


그러나 노키아 40(Nokia 40) 시리즈와 점점 인기를 끌고있는 삼성이 개발한 바다 운영체제는 모두 자바 기반이다. 또한 자바 ME(Java Micro Edition)이 JRE 1.3에 제한되어 있기 때문에, 최신 취약점들이 자바 ME에도 존재하는 지가 불명확하다는 점을 강조하고 싶다.


그러나 엔드포인트 제어 정책을 시행함으로써 기업 네트워크 접속을 최신 업데이트가 적용된 특정 유형의 기기들로만 제한할 수 있다.


도입부에서도 언급했듯, 자바는 프린트, 보안 시스템, 결제 터미널 등 여러 다양한 기기들에서도 사용된다. 자신의 조직 내에서 자바에 의존한 모든 기기들을 식별하고 위험 관리를 위해 개발업체와 밀접하게 협의하라.


이 작업을 위해 조직 크기에 따라 프로젝트 팀을 구성해야 할 수도 있다.


6. 기업 웹사이트와 고객 포털에 대한 자바 충격을 검토하라
기업 웹사이트는 중요한 마케팅 툴이자 종종 전자 상거래를 통한 상당한 매출원이 되기도 한다.


만약 현재 자신의 웹사이트에 자바 애플릿이 사용되고 있다면, 자바를 비활성화한 방문자들이 핵심 웹사이트 기능성을 실행할 수 없게 되는 일을 방지하기 위해, 바로 지금이 변화를 줄 적절한 시기일 수 있다.


또한 일반적인 최종 사용자들을 상대할 때 사용자들이 자바 애플릿뿐 아니라 자바스크립트(Javascript)까지 비활성화한 경우를 볼 수 있을 것이다. 고가용성을 보장하기 위해, 이런 만일의 사태를 위한 탐지 스크립트를 활용하고 필요에 따라 고객들을 재전송시켜야 한다.


7. 자신이 자바 개발자라면, 책임감을 가져라
만약 자신이 자바를 사용하는 개발자라면, 언사인드나 셀프-사인드 앱을 생산해 업계 전반적인 문제를 심화시키지 말아야 한다.


신뢰할 수 있는 인증 기관을 활용해 모든 앱에 사인하고, 자바 개발에 있어서도 다른 업계 베스트 프랙티스를 고수해야 한다. 개발자들이 신뢰할 수 있는 인증 기관 활용을 독려하기 위한 노력으로, 오라클의 자바 7 업데이트 21에서는 언사인드 애플릿 실행의 보안 위협에 대해 사용자에게 더 많은 경고를 한다.


자바 플랫폼용 EAST(Entrust Authority Security Toolkit)과 같은 몇몇 서드파티 솔루션은 자바 개발자들이 암호화와 디지털 서명같은 보안 관련 기능을 그들의 애플리케이션에 추가할 수 있게 해준다.


지속적으로 보안 취약점 드러낸 자바, 세심한 주의가 필요
최근 오라클은 자바 플랫폼의 결함과 취약점을 수정하기 위해 상당한 노력을 기울이고 있다. 그러나 최신 패치가 나오고 나서 몇시간 후에 바로 새로운 취약점 공격이 발견되는 사례도 있을 정도로, 상황은 끝나지 않는 술래잡기 같은 형국이다.


또한 급속한 변화 주기로 인해 다른 연관 문제점들이 일어나고 있다. 몇몇 사용자들은 설정이 '하이' 혹은 '슈퍼 하이'로 되어있음에도 불구하고 윈도우 7 익스플로러 9에서 언사인드 애플릿을 실행할 수 있었다고 보고하기도 했다.


레거시 애플리케이션이 자바 7의 최신판에서 적절히 실행되지 않는다는 문제 제기도 있었다. 한 마디로 많은 자바 플랫폼과 애플리케이션에 대한 보안 우려가 지속되는 가운데 변화는 계속되고 있다고 보면 적당할 것이다. 그렇기에 주의를 더욱 기울일 필요가 있다. 오라클은 이 기사에 대한 논평을 거절했다.




※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
    Copyright ⓒ ITWORLD. 무단전재 및 재배포 금지


[원문출처 : http://www.itworld.co.kr/news/81879]

맨 위로
맨 위로