본문 바로가기

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

공개SW 소식

흔해진 오픈소스, 안전하게 사용하는 방법

OSS 게시글 작성 시각 2016-04-15 19:41:22 게시글 조회수 3385

2016년 04월 14일 (목)  


ⓒ CIO Korea, Tim Greene | Network World


IT업체들의 소프트웨어 공급망을 자세히 살펴보고 이들이 사용하는 소프트웨어 생애주기 프로그램의 성숙도에 관해서도 확인해야 한다.


앨리게이터. 이미지 출처 : Flickr/seanlriley/REMIXED


4월 5일 오픈소스 취약점 데이터베이스(Open Source Vulnerability Database)가 폐쇄됐다. OSVD는 정기적으로 엄청난 양의 무료 기성 코드를 새 소프트웨어에 주입하는 개발자들에게 또 다른 보안 문제를 일으킨 것으로 알려졌다.


이름에서 알 수 있듯이 OSVD는 비 상업적인 개발자들이 알려진 취약성에 대한 (무료) 패치를 찾을 수 있는 데이터베이스였다.


OSVD 이외에 다른 취약성 저장소가 남아 있지만, OSVD의 폐쇄로 기업이 소프트웨어를 자체 개발할 때 오픈소스 코드를 사용하는 방법과 관련된 문제 중 하나가 두드러지게 나타났다. 일단 앱에 통합된 후에는 차후에 발견되는 취약성을 해결하기 위해 절대로 업데이트 되지 않을 수 있다.


이는 심각한 문제다. 기업 개발자를 위해 오픈소스 소프트웨어 보안에 주력하는 신생벤처인 소스클리어(SourceClear)의 CEO 마크 커피는 “모두가 오픈소스를 사용한다"며 "코드의 90%가 그들이 만들지 않은 것일 수 있다"고 우려를 표했다.


오픈소스 코드 취약성 제거를 돕는 자동화 플랫폼 업체인 블랙덕(Black Duck)의 전략 부사장 마이크 피팅거는 “실제 이 수치가 75%에 가까울 수 있지만 여전히 중요하다”고 말했다.


다른 업체들도 비슷한 서비스를 제공하고 있다. 대표적인 업체로 화이트소스(WhiteSource)가 있는데 이 업체는 OSVD에서 컴파일된 상업적 정보 사용을 취급하고 있다. 화이트소스는 고객사 앱에서 오픈소스 구성요소를 발견하고 진행 중인 소프트웨어 프로젝트에 취약한 코드가 추가되거나 고객의 기존 소프트웨어에 영향을 끼치는 새 취약성이 나타나면 경고한다.


회사가 소프트웨어를 신속하게 개발할 것을 요구할 경우 개발자들은 오픈소스 코드를 많이 사용하게 된다. 바로 사용할 수 있고 때로는 무료인 데다 관련 커뮤니티를 이미 심사한 것이기 때문에 믿고 사용하는 것이다. 피팅거는 이러한 긴급성으로 어떤 오픈소스 소프트웨어의 어떤 버전을 사용하는지에 관한 기록이 없는 경우가 많아 기업 보안 전문가들이 자체 앱이 얼마나 취약한지 파악할 때 추측에 의존할 수밖에 없다고 지적했다.


개발자들이 자동화된 방식으로 어떤 오픈소스 코드를 사용하는지 기록하지 않는 한, 이런 정보를 차후에 컴파일링하면 기본적으로 추측에 의존할 수밖에 없다. 그는 "개발팀의 기억에 의존할 수밖에 없게 된다"고 말했다.


공격자들은 이러한 오픈소스 코드 사용에 관해 잘 알고 있다. 그들은 누가 어떤 코드에 기여하고 누구의 코드에 문제가 있었는지 확인하기 위해 깃허브(Github)를 모니터링한다. 커피는 자신을 팔로우(Follow)하는 사람들을 팔로우하면서 이들이 개발하고 있는 것을 파악하고 깃허브에서 발견한 취약한 코드 중 일부를 사용하기를 기도한다고 밝혔다.


최근 한 자바스크립트(JavaScript) 개발자가 자신의 소프트웨어 패키지 중 하나의 이름 사용과 관련해 제기된 문제에 대해 비난을 받자 공개 레지스트리에서 자신의 모든 오픈소스 기여분을 철회한 일이 있었다. 그 결과 해당 개발자가 제공한 오픈소스를 사용했던 다른 개발자들에게 광범위한 문제를 일으켰다.


그 반향이 엄청나서 해당 레지스트리인 npm은 해당 코드 개발자의 바람과는 달리 가장 큰 문제를 일으켰던 11줄짜리 코드 1개를 재공개했다.


최소한 이 경우에는 문제가 해결됐다. 하지만 새 소프트웨어에서 일반적인 오픈소스 코드 재사용에 관한 기본적인 문제는 여전히 남아 있다.




오픈소스만의 문제가 아니다


 이 문제는 상용 소프트웨어로도 확대되고 있으며, 커피는 SW업체들이 높은 기준을 맞춰야 한다고 주장했다. 이들은 자사 소프트웨어에 어떤 오픈소스가 있는지 공개하고 추적하며 새 취약성이 발견되면 패치를 공개해야 한다는 것이다.


복잡한 애플리케이션에서 소프트웨어 공급망을 계속해서 추적하는 것은 중요하다. 지난달, 연구원들은 네트워크화된 의료 공급 캐비닛에서 마이크로소프트 윈도우 XP(Microsoft Windows XP), 시만텍 pc애니웨어(Symantec pcAnywhere), SAP 크리스탈 리포트(Crystal Reports) 8.5를 포함하여 그 스택에 통합돼 있는 써드파티의 소프트웨어로 1,400개 이상의 취약성을 발견했다.


추적은 매우 중요하기 때문에 이달 말 FDA(Food and Drug Administration)는 의료 기기에 관한 최종 규제 초안, 그리고 의료 기기가 출하된 후 나타나는 소프트웨어 취약성에 대처하는 방법을 수립할 예정으로 알려졌다.


코드 보안 문제는 인기 있는 네트워크 장비로도 확대될 수 있으며 보안 장비도 마찬가지다. 지난해 12월 주니퍼는 자사의 넷스크린(NetScreen) 장비에서 백도어(Backdoor)가 발견되었으며 승인되지 않은 코드가 운영체제에 주입됐다고 공개해 논란이 됐다. 최소한 일반에게 그 방법론은 여전히 미스터리하다. 분명 알려지지 않은 당사자들이 의도적으로 백도어를 설치하면서 원하는 대로 사용할 수 있게 되었지만 악용할 수 있는 취약성은 형편없는 코드 작성, 부적절한 품질 확보, 순수한 오류의 결과일 수 있다.


상황에 관한 조사에는 코드가 어디서 발생했으며 누가 작성했는지 등 커피가 말하는 코드 유전학에 관한 조사가 수반되어야 한다. 둘 다 파악하여 어떻게 발생했으며 유전학으로 추가적인 위협이 드러나는지를 판단해야 한다. 커피는 "악의를 가진 개발자가 문제일 수 있다"며 "그런 경우 그 개발자가 손을 댄 곳이 또 있는지 확인해 봐야 한다"고 강조했다.


소프트웨어 보안의 기본 중 하나지만 패치를 무시하거나 좀 더 편리한 시점까지 연기하는 경우가 많다. IP 아키텍츠(IP Architects)의 사장 존 파이론티는 네트워크 관리자가 패치를 소홀히 하는 경향에 관해 잘 알고 있는 공격자들에게 기회가 생기는 것이라고 말했다.


월별로 발견되는 약점을 다루는 마이크로소프트의 패치 튜즈데이(Patch Tuesday)를 예로 들어보자. 많은 조직이 즉시 패치를 적용하지 않기 때문에 패치 튜즈데이 대회가 생겨난 것이다. 그는 "마이크로소프트 패치를 얼마나 빨리 역설계할 수 있느냐가 관건이다"고 말했다. 공격자들은 패치가 어떤 결함을 수정하는지 파악하고 이를 악용할 수 있는 수단을 개발한 후 패치가 되기 전에 공격할 취약한 시스템을 찾는다.


파이론티는 주니퍼 넷스크린의 경우 해당 장비를 사용하는 많은 고객이 패치를 설치하지 않았으며 오랫동안 그렇지 않을 가능성이 크다고 전했다. 그에 따르면, 수년 동안 사용하게 된다.


따라서 위험을 낮추기 위한 방법은 다음과 같다.


• 구매하는 소프트에어의 오픈소스 또는 써드파티를 파악한다.


• SW업체가 사용하는 컴포넌트의 건전성을 지속해서 모니터링하는 방법과 그 결함을 해결하는 방법을 문서로 작성하도록 요청한다. 요람에서 무덤까지 모드를 모니터링하는 소프트웨어 개발 라이프사이클 프로그램은 얼마나 성숙한가?


• 사용 중인 상용 써드파티 라이브러리가 존재하는 경우 해당 업체와 결함이 있는 컴포넌트를 패치하는 SLA를 체결했나?


• 상용 소프트웨어 개발자는 정적 및 동적 분석과 위협 모델링을 이용해 소프트웨어의 생존 능력을 평가하는가?


• 앱이 기업에 얼마나 필수적이며 영향을 끼치는 자원의 가치를 기준으로 어떤 애플리케이션을 모니터링하고 가장 최신으로 유지할지에 관한 우선순위를 정한다.


기업들은 픽스가 공개되는 대로 자사의 소프트웨어를 업그레이드하고 패치하는 일관된 프로그램을 수립하고 유지해야 한다. 피팅거는 "보안은 수명이 짧다"며 "오늘날의 스캔은 훌륭하지만 상황이 바뀔 수 있다"고 말했다.


그리고 애플리케이션을 구매할 때 기업들은 공급망 보안, 사용하는 코드의 심사 방법, 수백 명의 고객들을 대상으로 제품을 패치하기 위해 어떤 프로그램이 있는지 등에 관해 개발자들에게 질문해야 한다. 피론티는 "우리가 소프트웨어 업체들에 대한 기대치를 높여야 한다"고 주장했다.



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


[원문출처 : http://www.ciokorea.com/news/29287?page=0,0]

맨 위로
맨 위로