2016.07.11

"취약점 탐지율 고작 2%"··· '버그 탐색' SW의 불편한 진실

Katherine Noyes | IDG News Service
많은 기업은 소프트웨어 코드의 오류를 잡아내기 위해 관련 제품과 서비스에 매년 수백만 달러씩을 사용한다. 그러나 이런 비싼 상용 버그 탐지 툴이 잡아내는 것은 전체 보안 취약점 중 단 2%에 불과한 것으로 나타났다.


Image Credit: MIT News

그동안 소프트웨어 엔지니어는 보안 취약점이 될 수 있는 코드 속 오류를 없애기 위해 버그 탐지 툴을 사용해 왔다. 이런 툴은 보통 얼마나 많은 버그를 찾았는지를 결과 보고서로 알려준다. 잡아내지 못한 버그가 얼마나 되는지는 알려주지 않는다. 그래서 이런 툴이 말하는 '버그 탐지 성공률'은 아무도 진실을 알 수 없는 '알려진 수수께끼'였다.

뉴욕대 텐던 공대의 연구도 여기서 시작했다. 연구팀은 MIT 링컨 연구소, 노스이스턴대학 등과 함께 이들 버그 탐지 툴이 얼마나 많은 보안 취약점을 놓치고 있는지 확인해 보기로 했다. 연구팀은 이를 위해 'LAVA(Large-Scale Automated Vulnerability Addition)'라고 불리는 기술을 개발했다. 프로그램 소스 코드에 대량의 보안 취약점을 인위적으로 추가해 버그 감지 툴이 이를 정상적으로 감지하는지 알아보는 것이다.

뉴욕대 텐던 컴퓨터 공학과 교수 브랜든 돌란 가빗은 "버그 탐색기를 평가하는 유일한 방법은 프로그램 내의 버그 수를 조작하는 것이다. 우리가 LAVA를 통해 하려는 것도 정확하게 바로 이 작업이다"라고 말했다.

구체적으로 보면 LAVA는 아직은 버그 속성을 더 많이 가진 보안 취약점을 코드에 삽입한다. 모든 작업은 자동으로 진행되므로 수작업 비용을 줄이고 보안 취약점을 별도로 개발할 필요도 없다. LAVA는 실제 프로그램 소스 코드의 특정 부분을 매우 현실적인 보안 취약점으로 바꾼다. 일반적인 제어부와 데이터 흐름에 연관된 것이므로 프로그램 실행 과정 전체에 영향을 준다. 단, 전체 프로그램이 다운되는 것을 피하기 위해 입력 부분의 작은 부분만 수정한다.

연구팀은 이렇게 소스 코드를 수정한 후 기존의 주요 버그 탐지 툴을 실행해 봤다. 이들은 주로 퍼징(fuzzing)과 기호실행(symbolic-execution) 접근법을 사용하는 툴이다. 그 결과 LAVA가 만들어 낸 버그의 단 2%만 감지한 것으로 나타났다.

연구팀은 곧 여러 버그 탐지 툴 간의 공개 비교 테스트도 진행할 예정이다. 버그 탐지 툴 개발업체와 다른 연구자가 LAVA를 이용해 연구 결과를 검증할 수 있도록 하기 위해서다. 돌란 가빗은 "이 부문에서 이 정도 규모로 비교 테스트를 한 것은 이번이 처음이다. 업체와 고객은 버그 탐지 성공률에서 누가 가장 앞서는 지 알 수 있고, 이 과정을 거친 탐지 툴은 성능이 더 좋아질 것이다"라고 말했다.

이번 연구 결과는 최근 열린 IEEE 보안 및 프라이버시 심포지엄 행사에서 공개됐다. 실험에 대한 더 자세한 내용은 행사 홈페이지에서 자료를 다운로드해 확인할 수 있다. ciokr@idg.co.kr



2016.07.11

"취약점 탐지율 고작 2%"··· '버그 탐색' SW의 불편한 진실

Katherine Noyes | IDG News Service
많은 기업은 소프트웨어 코드의 오류를 잡아내기 위해 관련 제품과 서비스에 매년 수백만 달러씩을 사용한다. 그러나 이런 비싼 상용 버그 탐지 툴이 잡아내는 것은 전체 보안 취약점 중 단 2%에 불과한 것으로 나타났다.


Image Credit: MIT News

그동안 소프트웨어 엔지니어는 보안 취약점이 될 수 있는 코드 속 오류를 없애기 위해 버그 탐지 툴을 사용해 왔다. 이런 툴은 보통 얼마나 많은 버그를 찾았는지를 결과 보고서로 알려준다. 잡아내지 못한 버그가 얼마나 되는지는 알려주지 않는다. 그래서 이런 툴이 말하는 '버그 탐지 성공률'은 아무도 진실을 알 수 없는 '알려진 수수께끼'였다.

뉴욕대 텐던 공대의 연구도 여기서 시작했다. 연구팀은 MIT 링컨 연구소, 노스이스턴대학 등과 함께 이들 버그 탐지 툴이 얼마나 많은 보안 취약점을 놓치고 있는지 확인해 보기로 했다. 연구팀은 이를 위해 'LAVA(Large-Scale Automated Vulnerability Addition)'라고 불리는 기술을 개발했다. 프로그램 소스 코드에 대량의 보안 취약점을 인위적으로 추가해 버그 감지 툴이 이를 정상적으로 감지하는지 알아보는 것이다.

뉴욕대 텐던 컴퓨터 공학과 교수 브랜든 돌란 가빗은 "버그 탐색기를 평가하는 유일한 방법은 프로그램 내의 버그 수를 조작하는 것이다. 우리가 LAVA를 통해 하려는 것도 정확하게 바로 이 작업이다"라고 말했다.

구체적으로 보면 LAVA는 아직은 버그 속성을 더 많이 가진 보안 취약점을 코드에 삽입한다. 모든 작업은 자동으로 진행되므로 수작업 비용을 줄이고 보안 취약점을 별도로 개발할 필요도 없다. LAVA는 실제 프로그램 소스 코드의 특정 부분을 매우 현실적인 보안 취약점으로 바꾼다. 일반적인 제어부와 데이터 흐름에 연관된 것이므로 프로그램 실행 과정 전체에 영향을 준다. 단, 전체 프로그램이 다운되는 것을 피하기 위해 입력 부분의 작은 부분만 수정한다.

연구팀은 이렇게 소스 코드를 수정한 후 기존의 주요 버그 탐지 툴을 실행해 봤다. 이들은 주로 퍼징(fuzzing)과 기호실행(symbolic-execution) 접근법을 사용하는 툴이다. 그 결과 LAVA가 만들어 낸 버그의 단 2%만 감지한 것으로 나타났다.

연구팀은 곧 여러 버그 탐지 툴 간의 공개 비교 테스트도 진행할 예정이다. 버그 탐지 툴 개발업체와 다른 연구자가 LAVA를 이용해 연구 결과를 검증할 수 있도록 하기 위해서다. 돌란 가빗은 "이 부문에서 이 정도 규모로 비교 테스트를 한 것은 이번이 처음이다. 업체와 고객은 버그 탐지 성공률에서 누가 가장 앞서는 지 알 수 있고, 이 과정을 거친 탐지 툴은 성능이 더 좋아질 것이다"라고 말했다.

이번 연구 결과는 최근 열린 IEEE 보안 및 프라이버시 심포지엄 행사에서 공개됐다. 실험에 대한 더 자세한 내용은 행사 홈페이지에서 자료를 다운로드해 확인할 수 있다. ciokr@idg.co.kr

X