본문 바로가기
기술

소프트웨어 보안, 새로운 관점이 필요한 시기

by 더쇼트 2016. 3. 28.



 컴퓨터가 등장하면서부터, 소스 코드 버그는 늘 존재해왔습니다. 그리고 버그는 해킹과 보안사고의 주된 원인이었습니다. 현재 우리의 삶과 비즈니스를 보면 소프트웨어는 뗄레야 뗄 수 없는 관계가 되었습니다. 이는 곧 소프트웨어의 버그 하나가 20년 전에 비해 훨씬 더 큰 파괴력을 내재하고 있다는 의미입니다.


 주니퍼(Juniper), 포티넷(Fortinet), AMX, 소캣(Socat), 리눅스 민트(Linux Mint), 브이테크(VTech)는 네트워크와 인터넷 관련 서비스 회사들입니다. 최근 그들이 제공하는 제품 소스 코드의 취약점이 공격당하여 수백만명의 유저들의 개인정보와 보안이 위험에 처했었습니다.


 이러한 현실은 소스 코드 보안 기술이 다른 기술의 발전에 비해 뒤쳐진다는 것을 반영하면서, 소스 코드 보안에 대한 관점과 인식을 달리할 필요성이 있다는 것을 의미합니다. 즉, 소프트웨어가 출시되기 전에 중대한 취약점과 결함을 찾아낼 수 있는 방법이 필요합니다.


 작년 11월 중순에 장난감 제조 회사인 브이테크의 웹사이트가 해킹을 당했습니다. SQL 인젝션을 이용한 이 해킹으로 5백만 명 이상의 개인정보가 유출되었습니다. SQL 인젝션을 이용한 웹 서버 해킹은 하찮은 수준의, 그다지 위험한 공격 형태는 아닌 것으로 치부되어 왔습니다. 


 더 최근에는, 지난 2월에 리눅스 민트를 배포하는 웹 사이트가 해킹된 적이 있습니다. 해커들은 백도어 버전의 OS를 만들어 리눅스 민트 사이트에 몰래 바꿔치기 해 놓았습니다. 그 사실이 알려졌을 땐 이미 수천 개의 감염된 카피본이 배포된 상태였습니다.


 작년 12월, 주니퍼 네트워크는 자사의 소프트웨어에 두 개의 의심스러운 백도어를 발견했다고 밝혔습니다. 이 백도어는 방화벽을 뚫고, 암호화된 데이터를 복호화할 수 있는 백도어였습니다. 그러한 상태로 몇 달이 방치되었기에, 해킹으로 인한 피해는 추정이 불가할 정도였습니다. 주니퍼의 주 고객은 AT&T, 버라이즌, 나토, 미국 정부였다는 점을 고려한다면 이 해킹의 피해자 수는 백만명 단위를 가볍게 상회할 것입니다.


 음향/영상 콘트롤러 장치를 제조하는 AMX도 이번달 초, 오스트리아 리서치 펌인 SEC 컨설트의 보고에 따르면 백도어 프로그램이 NX-1200 콘트롤러 제품에 심어져있었다고 밝혔습니다. AMX측에서는 보수유지를 위한 프로그램이라고 주장했지만, 관리자 권한으로 제품에 원격 접속이 가능했습니다. AMX의 제품들은 미국 정부와 미군에서 폭넓게 사용 중입니다.


 이 모든 사례를 보면, 해킹을 통해서 발견된 취약점과 버그들은 단순한 것들이었습니다. 하지만 공격 당하기 전에는 쉽게 찾아내기 어려웠습니다. 개발 단계에서 적절치 못한 프로그래밍 실무와 프로그래밍 툴이 원인이라고 볼 수 있습니다.


 소스 코드 보안 강화를 위한 전통적인 방법은 보안 감시 전문가를 고용하는 것이었습니다. 어플리케이션 코드를 충분히 숙독하고 테스트를 하여 취약점을 찾아내고 보완하는 것이었습니다. 이 작업에 사용되는 툴은 개발자가 아닌, 오로지 보안 감시자에게만 적합한 툴이었습니다. 또한 이러한 프로세스와 툴은 규모가 큰 소프트웨어 개발 회사에만 적용될 수 있었습니다. 


 이러한 방법은 많은 문제점이 있습니다. 전통적인 방법 하에서, 테스트 단계 이전에는 보안과 관련된 프로세스가 없고, 주기적으로 여러번 또는 심지어 단 한번만 이루어지는 보안 점검에만 의존해야 합니다. 그리고 테스트 단계에서는 소스 코드 전체가 아니라 특정 몇몇 부분만 검토하는 경우가 많습니다. 이러한 방법으로는 소스 코드가 완전히 안전하다고 할 수 없습니다.


 게다가 이러한 접근법은 경제적으로도 좋은 방법이 아닙니다. 개발 단계가 끝난 상태에서 버그를 고친다는 것은 개발 단계에 비해 시간과 비용이 더 많이 듭니다. 또한 출시일자가 임박하기라도 한다면 개발사와 유통사는 예정된 테스트를 생략해버리는 버릇이 있습니다.


 소스 코드 보안을 성공적으로 하기 위해서는 전사적이고 사용이 쉬워야 합니다. 소프트웨어 개발 단계서부터 개입이 가능해야 할 것이고, 리소스나 예산을 크게 잡아먹지 않는 수준이어야 합니다. 이번에 새롭게 소개하는 코드 보안 툴들은 개발자로 하여금 코딩 단계에서 보안 취약점을 찾아낼 수 있도록 합니다. 


 버그스카우트(bugScout)과 버그블라스트(bugBlast)는 스페인 사이버 보안 스타트업인 벅구루(Buguroo)에서 출시한 테스트 툴입니다. 창업자이자 CTO인 파블로 데 라 리바 페레주엘로(Pablo de la Riva Ferrezuelo)는 이 두 어플리케이션에 대해 이렇게 말했습니다."버그스카우트는 SAST(static application security testing, 정적 어플리케이션 보안 테스트) 툴입니다. 약간의 보안 지식이 있는 프로그래머나, 약간의 프로그래밍 지식이 있는 보안 전문가나, 또는 그 중간쯤에 있는 그 누구든 사용할 수 있는 프로그램입니다."


 버그스카우트는 개발 환경과 개발 중인 소스 코드를 지속적으로 분석해 줍니다. 페레주엘로는 기존에 있는 SAST 툴들에 대해 "많은 긍정 오류(false positive)를 범할 뿐만 아니라 숙련된 보안 전문가를 필요로 한다" 라고 평가했습니다. 또한 "이 제품을 사용하면 취약점을 확인하는 프로세스를 개발 초기단계에 부터 적용할 수 있기 때문에 개발 비용을 절약할 수 있다" 라고 설명했습니다.


 버그스카우트의 자매품인 버그블라스트는 차세대 어플리케이션 보안 관리 플랫폼입니다. 여러 취약점 테스트 도구들, 호스팅 인프라, 서드파티 서비스 제공자들을 통합하여 공격 위협과 수상한 패턴들을 개발단계와 생산단계에서 잡아냅니다. 


 미국의 LGS 이노베이션은 코드가디언(CodeGuardian) 솔루션을 내놓았습니다. CEO인 케빈 켈리는 "코드가디언은 현재 보안 솔루션이 커버하지 못하는 보안 공백을 메꾸어 줄 것"이라고 설명했습니다. 코드가디언은 기존에 출시된 네트워크 제품들에 임베드 되어 보안 취약점을 제거하고 탑재된 소프트웨어의 소스 코드를 보호해 줍니다. 이 솔루션은 네트워크의 취약점과 백도어를 찾아내고 제거하기 위한 독자적인 기술을 사용합니다. 또한 분산 기술을 통해 한 소프트웨어에 여러 바이너리 이미지를 생성/배포하여 동일 모델 제품들을 한꺼번에 공격할 가능성을 차단합니다. 


 코드가디언은 이미 알카텔-루슨트(Alcatel-Lucent) 엔터프라이즈 사의 네트워크 장비에 탑재된 소프트웨어에 적용되어 있습니다.


 네트워크 장치의 공급과 소프트웨어 공급의 급증은 해커들에게 다방면의 공격 기회를 주고 있습니다. 사물인터넷 시대가 도래하면서 가정과 기업의 네트워크는 더 큰 도전을 받게 될 것입니다. 이러한 도전을 이겨내기 위해서는 소스 코드 보안에 대한 새로운 관점이 요구되며, 피해를 입기전에 미리 위협을 제거할 수 있는 솔루션이 필요할 것입니다.


출처: http://goo.gl/a5wEfS