메인메뉴로 이동 본문으로 이동

컨텐츠 내용

  1. 고객센터
  2. OSS뉴스

OSS뉴스

OSS뉴스 조회 페이지
오픈소스가 개발의 대세! 이왕이면 취약점 점검받은 버전으로 관리자 / 2020.01.14

오픈소스가 개발의 대세! 이왕이면 취약점 점검받은 버전으로

 

오픈소스 통한 사고 연속해 발생해...입력 값 검사하지 않고, 비밀번호 처리 못하고
시큐어 코딩이 개발자들 사이에서 기본적이면서 표준적인 행위로서 자리를 잡아야

 

오픈소스 프로젝트들에서 민감한 정보들이 계속해서 새나오고 있다고 한다. 소프트웨어 보안 전문 업체인 딥코드(DeepCode)가 수천 만 개의 커밋(commit)들을 스캔한 결과 4가지 유형의 취약점들이 특히 문제가 되고 있다는 것을 발견할 수 있었다고 발표했다.

 

특히 문제가 되고 있는 취약점 유형은 가장 심각한 것에서 덜 심각한 것 순서대로 다음과 같다.
1) 입력되는 데이터 검사 및 처리 기능 부재
2) 안전하지 못한 비밀번호 처리
3) 약한 암호화 알고리즘
4) 정보 숨김 장치 부재

딥코드의 CEO인 보리스 파스칼레브(Boris Paskalev)는 “시큐어 코딩의 중요성이 개발자들에게 꾸준하게 강조되어야 한다”고 말한다. “이 네 가지 취약점이 자신이 만든 코드에 있다고 한다면, 어떤 개발자라도 문제가 되는 오픈소스를 쓰지 않거나 고치고 싶을 겁니다. 다만 그런 문제가 있음을 잘 모르고, 어떻게 확인하고 방지하는지를 잘 모르는 게 문제죠.”

작년 한 해 NVD에 등록된 소프트웨어 보안 취약점은 17300개 이상으로 역대 최고치를 기록했다. 여기에는 다음과 같은 요소들이 작용한 것으로 분석된다.
1) 소프트웨어 보안 연구 활성화
2) 개발되는 소프트웨어의 수량 증가
3) 취약점을 보고하고 알리는 데 있어 더 개방된 태도
4) 취약점 보고 절차의 향상(더 용이해짐)

이러한 이유들 때문에 취약점의 수가 갑자기 뛰어오른 건 2017년부터다. 2016년 NVD에 등록된 취약점에 비해 갑자기 두 배 이상 높은 14645개가 한 해 동안 기록된 것이다. 그리고 2018년과 2019년에도 비슷한 증상이 연속으로 나타났다.

1만 개가 훌쩍 넘는 취약점들을 모두 살펴본다는 것은 아무리 큰 보안 팀이라고 해도 불가능하다. 그러니 우선순위를 정해 탐구해야 할 취약점을 선택하고 결정해야 한다. 누군가는 NVD에 저장된 CVE를 위주로 보안을 점검하고, 누군가는 CWE 목록을 선호한다. 취약점 관리 체제마다 장단점이 존재한다.

그럼에도 보안 구멍을 제 때에 메운다는 건 개발자들에게 있어 커다란 난제다. 소프트웨어 보안 전문 업체인 베라코드(Veracode)가 8만 5천여 개의 애플리케이션들을 실험하고 분석한 바에 의하면 “기업들은 오픈소스를 스캔해서 알아낸 취약점들 중 56%만 겨우 수정할 뿐”이라고 한다.

파스칼레브는 “개발자들이 오픈소스 리포지터리와 커밋, 프로젝트 등을 스캔할 때 ‘가장 중요한 취약점 목록’을 커닝 페이퍼처럼 사용하는 경향이 있다”며 “이는 대단히 현명한 행동”이라고 칭찬한다. “대형 오픈소스 프로젝트들이라면 대부분 ‘흔한 취약점’이라고 하는 것들을 몇 가지 가지고 있습니다. 따라서 목록을 참조해 스캔을 하는 게 효율적일 수 있습니다. 그냥 맹목적으로 스캔만 하면 효과가 그리 좋지 않습니다.”

딥코드 측에서도 취약점들을 분류해 목록을 만든다. 그러나 ‘가장 흔한 취약점 목록’과는 거리가 멀다. “기업들 입장에서 가장 중요할 수 있는 취약점들을 순위대로 분류했습니다. 1위는 날싸와 시간 값이 임의로 변경되는 것이고, 그에 따라 변수가 잘못 적용되는 것입니다. 그러나 이런 오류나 취약점은 프로그램 자체에 큰 영향을 주지는 않습니다. 딥코드 내부적으로는 취약점들을 200개의 항목으로 분류하고 있으며, 그 중 가장 충격이 심한 것들을 추려서 발표하고 있습니다.”

소프트웨어가 외부로 배포되기 전 코딩 오류나 취약점을 찾아내기 위해서는 자동화 도구가 필수적이라고 파스칼레브는 강조한다. “소프트웨어에 투입되는 요소들이 갈수록 많아지고 있고, 그런 식으로 조립되어 완성되는 소프트웨어의 수도 많아지고 있죠. 개발 속도가 크게 오르고 있기도 하고요. 그런 때 사람이 수작업으로 코드를 하나하나 살펴볼 수는 없습니다.”

그러면서 그는 “자동화 툴을 사용한다면, 스캔이나 오류 탐지가 쉬워지고, 그래서 상당히 주기적으로 스캔을 할 수 있게 된다”고 말한다. “가장 좋은 건 지속적으로 확인하는 겁니다. 그래야 오류를 최대한 빨리 확인하고 조치를 취할 수 있게 됩니다.”

한편 경영진들도 개발자들이 보안에 신경을 쓰도록 ‘문화 형성’에 기여를 해야 한다. “시큐어 코딩을 해야만 하는 분위기를 형성해야 하죠. 그것이 업무 윤리의 표준이 되도록 장려하고 북돋아야 합니다. 때론 벌을 줘야 할 때도 있습니다. 아직도 많은 개발자들이 이미 완성되고 배포까지 된 앱에서 취약점을 찾아냅니다. 상당히 늦은 단계이며, 비용도 많이 듭니다. 회사 입장에서는 시큐어 코딩, 즉 개발 단계에서 취약점을 발견해 고치는 게 훨씬 이득입니다.”

 

[출처] https://www.boannews.com/media/view.asp?idx=85725&kind=3 (보안뉴스)