보안 도구들은 비싸지만, 비싼 도구만 보안을 강력하게 해 주는 건 아니다. 오픈소스 중에도 충분히 좋은 것들을 찾아낼 수 있다. 오늘은 프로그램의 코드 분석과 취약점 분석을 도와주는 도구들을 몇 가지 추천해 본다.

 

 

보안 전문가들이 업무를 제대로 수행하려면 다양한 도구들이 필요하다. 물론 도구들이 있어야만 보안이 제대로 성립된다는 건 아니지만, 빈손으로 조직의 안전을 요구할 수는 없다. 보안 담당자들을 돕는 도구들 중 오픈소스로 풀렸으면서도 유용한 것들이 제법 존재한다. 그 중 다음 몇 가지 도구들이 추천할 만하여 적어 본다.
 

[이미지 = utoimage]

 


독시즌(Doxygen)
독시즌은 문서 생성기의 일종으로, 인기 높은 프로그래밍 언어들을 다양하게 지원한다. 사용자들은 독시즌을 통해 출처 파일들로부터 코드 구조를 추출하고, 코드 요소들 간의 관계성들을 파악할 수 있게 된다. 코드를 시각화 하여 보여준다고 생각하면 어느 정도 독시즌에 대해 이해할 수 있을 것이다. 때문에 대단히 복잡한 코드 베이스를 통합적으로, 보다 깊이 이해하는 데에 도움이 된다. 코드의 논리적 흐름을 분석하는 데에도 유용하고, 따라서 여러 가지 오작동에 대한 검사와 분석도 할 수 있게 해 준다.

이 때문에 복잡하고 용량이 큰 코드 베이스를 시각적으로 점검할 수 있고, 간과해 왔던 부분들을 정확히 짚어내 꼼꼼하게 파헤칠 수 있게 해 준다. 예를 들어 리눅스 수도 명령어가 어떤 방식으로 작동하는지 궁금하다면 독시즌을 통해 이해도를 높일 수 있다. 옥시즌의 코드는 여기(https://github.com/doxygen/doxygen)서 열람이 가능하다.

Z3
Z3는 소프트웨어 분석, 확인, 퍼징 실험을 위한 도구다. C/C++, 파이선 등 다양한 프로그래밍 언어들을 지원한다. 몇 가지 특수하게 정의된 제약 조건을 만족시키는 해결책을 여러 가지로 시도해 볼 수 있도록 해 준다. 따라서 입력값 확인과 관련된 조건들을 확인하는 데에 유용하며, 이를 통해 제작자 혹은 개발자가 원치 않았던 결과가 야기되는 것을 방비할 수 있다.

수동으로 코드를 점검하고, 퍼징 테스트를 함으로써 문제가 될 수 있는 상태들을 미리 파악할 수 있지만 Z3를 사용한다면 보다 광범위한 수학적, 논리적 확인까지도 할 수 있게 된다. 즉 수동으로 하는 검사에 더하여 보다 깊고 넓은 검사 결과까지도 산출할 수 있다는 것이다. 코드의 일부분만을 따로 떼어 검사함으로써 버퍼 오버플로우나 정수 오버플로우, 부적절한 메모리 접근과 같은 잠재적 문제들도 파악하는 데 도움을 준다. 역시 깃허브(https://github.com/Z3Prover/z3)에서 열람이 가능하다.  [기사 더보기]

 

 

[출처 : 보안뉴스(www.boannews.com)]

[기자 : 문가용 기자((globoan@boannews.com))]