2020.03.20

딥코드, C와 C++에도 AI 기반 코드 리뷰 지원

Serdar Yegulalp | InfoWorld
딥코드가 자바, 자바스크립트, 파이썬에 이어 C와 C++ 코드를 추가 지원한다고 발표했다. 딥코드는 머신러닝을 기반으로 코드를 분석해 보안 취약점 및 버그를 찾아내는 클라우드 서비스다. 
 
ⓒGerd Altmann (CC0)

딥코드 자동화 툴은 수천 개의 오픈소스 프로젝트를 학습함으로써 코드가 저장된 호스팅 플랫폼 또는 로컬 리포지토리에 대한 피드백을 제공해 눈길을 끌었던 바 있다. 회사는 해당 툴이 단순히 텍스트가 아닌 실행 중인 소프트웨어라는 맥락적 차원에서 코드를 분석하기 때문에 기존 코드 분석 툴보다 정확하고 상세한 피드백을 제공할 수 있다고 밝혔다. 

딥코드는 소프트웨어 보안 취약점 대부분이 C와 C++ 코드베이스에서 발견된다는 점에서 이번 추가 지원이 큰 효과를 보일 것으로 기대했다. 설명에 따르면 C와 C++은 개발자 실수로 발생되는 문제를 거의 또는 아예 예방하지 못한다. 게다가 C와 C++ 최신 버전은 하위 호환성을 유지하는 데 중점을 둬 보안 취약점에 여전히 노출돼 있다. 
 
딥코드로 찾아낸 코드 결함의 예

회사에 따르면 딥코드의 지식기반은 C와 C++에서 드러나는 많은 문제뿐만 아니라 다른 언어들과 관련한 코딩 스타일 문제, 리소스 유출 문제, 메모리 할당 문제, 날짜 처리 문제, 개발 언어 버전 간 비호환성 문제 등도 아우른다. 

한편 딥코드는 리눅스 커널 분석을 통해 C 코드베이스에서 많은 일반적인 문제들을 발견했다고 전했다. 이를테면 명령행 인자 혹은 환경 변수에서 전달된 확인되지 않은 매개 변수, 사용 후 해제 시 발견되는 취약점(Use After Free, UAF), 널 포인터(Null pointer) 검사 누락 등이다.

이밖에 안전하지 않은 임시 파일 생성 또는 특정 명령이 컴파일 과정에서 최적화돼 의도된 효과가 나타나지 않는 가능성 등 교묘한 문제들도 있다고 회사 측은 덧붙였다. 

딥코드는 첫 출시 당시 자바, 자바스크립트, 타입스크립트, 파이썬을 지원했다. 회사에 따르면 C와 C++ 및 기타 언어에 대한 지원 계획도 예정돼 있었다. 낮은 수준의 기능이 복잡하게 얽혀 있어 C와 C++에 대한 코드 분석을 추가하는 데 3개월가량이 소요됐다고 딥코드는 공식 블로그를 통해 전했다. ciokr@idg.co.kr



2020.03.20

딥코드, C와 C++에도 AI 기반 코드 리뷰 지원

Serdar Yegulalp | InfoWorld
딥코드가 자바, 자바스크립트, 파이썬에 이어 C와 C++ 코드를 추가 지원한다고 발표했다. 딥코드는 머신러닝을 기반으로 코드를 분석해 보안 취약점 및 버그를 찾아내는 클라우드 서비스다. 
 
ⓒGerd Altmann (CC0)

딥코드 자동화 툴은 수천 개의 오픈소스 프로젝트를 학습함으로써 코드가 저장된 호스팅 플랫폼 또는 로컬 리포지토리에 대한 피드백을 제공해 눈길을 끌었던 바 있다. 회사는 해당 툴이 단순히 텍스트가 아닌 실행 중인 소프트웨어라는 맥락적 차원에서 코드를 분석하기 때문에 기존 코드 분석 툴보다 정확하고 상세한 피드백을 제공할 수 있다고 밝혔다. 

딥코드는 소프트웨어 보안 취약점 대부분이 C와 C++ 코드베이스에서 발견된다는 점에서 이번 추가 지원이 큰 효과를 보일 것으로 기대했다. 설명에 따르면 C와 C++은 개발자 실수로 발생되는 문제를 거의 또는 아예 예방하지 못한다. 게다가 C와 C++ 최신 버전은 하위 호환성을 유지하는 데 중점을 둬 보안 취약점에 여전히 노출돼 있다. 
 
딥코드로 찾아낸 코드 결함의 예

회사에 따르면 딥코드의 지식기반은 C와 C++에서 드러나는 많은 문제뿐만 아니라 다른 언어들과 관련한 코딩 스타일 문제, 리소스 유출 문제, 메모리 할당 문제, 날짜 처리 문제, 개발 언어 버전 간 비호환성 문제 등도 아우른다. 

한편 딥코드는 리눅스 커널 분석을 통해 C 코드베이스에서 많은 일반적인 문제들을 발견했다고 전했다. 이를테면 명령행 인자 혹은 환경 변수에서 전달된 확인되지 않은 매개 변수, 사용 후 해제 시 발견되는 취약점(Use After Free, UAF), 널 포인터(Null pointer) 검사 누락 등이다.

이밖에 안전하지 않은 임시 파일 생성 또는 특정 명령이 컴파일 과정에서 최적화돼 의도된 효과가 나타나지 않는 가능성 등 교묘한 문제들도 있다고 회사 측은 덧붙였다. 

딥코드는 첫 출시 당시 자바, 자바스크립트, 타입스크립트, 파이썬을 지원했다. 회사에 따르면 C와 C++ 및 기타 언어에 대한 지원 계획도 예정돼 있었다. 낮은 수준의 기능이 복잡하게 얽혀 있어 C와 C++에 대한 코드 분석을 추가하는 데 3개월가량이 소요됐다고 딥코드는 공식 블로그를 통해 전했다. ciokr@idg.co.kr

X