보안뉴스 창간 15주년을 축하합니다!!

Home > 전체기사

보안 전문가들의 업무 능력을 향상시켜 줄 오픈소스 도구 4선

  |  입력 : 2021-03-30 19:35
페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기
보안 도구들은 비싸지만, 비싼 도구만 보안을 강력하게 해 주는 건 아니다. 오픈소스 중에도 충분히 좋은 것들을 찾아낼 수 있다. 오늘은 프로그램의 코드 분석과 취약점 분석을 도와주는 도구들을 몇 가지 추천해 본다.

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

[이미지 = utoimage]


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

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

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

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

리브퍼저(LibFuzzer)
요즘 입소문을 타고 인기가 심상치 않은 속도로 올라가고 있는 오픈소스 도구인 리브퍼저를 빼놓을 수 없다. 퍼징 도구들은 보안 연구에 있어서 빼놓을 수 없는 도구들이다. 특히 사용자의 입력값을 갖가지로 실험하는 데에 유용하다. 리브퍼저는 다른 퍼징 도구들과 마찬가지로 시스템을 마비시키거나 느리게 만들 수 있는 입력값을 찾아내며, 실험 대상이 되는 프로그램을 점진적으로 점검하기 위해 추가적인 순열과 치환 값을 적용하기도 한다. 이 페이지(https://llvm.org/docs/LibFuzzer.html)에서 열람이 가능하다.

지코브(Gcov)
마지막으로 추천할 수 있는 도구는 지코브다. ‘코드 커버리지(code coverage)’라는 항목에 분류되는 도구다. 코드 커버리지 도구들은 퍼징 실험 도구들과 궁합이 매우 좋다. 퍼징 도구들은 몇날 며칠이고 연속해서 돌리는데, 이 때의 단점은 사용자가 코드 베이스의 어느 부분까지 검사가 완료되었는지 파악하기가 힘들다는 것이다.

코드 커버리지 도구들은 퍼징 실험이 어느 정도나 진행되었는지 확인할 수 있도록 해 준다. 때문에 중간중간 사용자가 개입해 실험 과정을 조정할 수 있고, 코드 베이스의 어느 부분도 빠지지 않고 모두 확인이 되도록 만들 수 있다. 때문에 퍼징 실험 결과가 보다 확실해지고, 사용자도 그 결과에 대해 보다 높은 자신감을 가질 수 있게 된다. 여기(https://gcc.gnu.org/onlinedocs/gcc/Gcov.html)서 열람이 가능하다.

오픈소스로 보안을 더 강력하게
프로그램을 분석하고 취약점을 찾아내는 부분에 전문성을 가진 보안 전문가들은 항상 새로운 검사 도구들을 찾아 헤맨다. 그런 이들의 필요를 충족시켜 줄 만한 도구들은 오픈소스 커뮤니티에도 꽤나 다양한 모습으로 존재한다. 그러니 보안 전문가들이라면 이따금씩 오픈소스 도구들을 검색해 보는 것이 업무에 도움이 될 것이다. 여기에 소개된 독시즌, Z3, 리브퍼저, 지코브 외에도 쓸만한 것들을 어렵지 않게 찾아낼 수 있을 것이다.

글 : 매기 하우레기(Maggie Jauregui), Intel
[국제부 문가용 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>

  •  
  • 1
  • 페이스북 보내기 트위터 보내기 네이버 밴드 보내기 카카오 스토리 보내기

  •  SNS에서도 보안뉴스를 받아보세요!! 
2021 전망보고서위즈디엔에스 2018파워비즈배너 시작 11월6일 20181105-20200131
설문조사
지난 5일 밤 발생한 카카오톡 장애로 인해 일명 ‘넷플릭스법’에 대한 관심이 다시금 높아지고 있는데요. 통신서비스 품질 유지 의무를 부과하고 있는 기업 가운데 가장 안정적인 서비스를 제공하는 부가통신사업자는 어디라고 생각하시나요?
네이버
카카오
웨이브
넷플릭스
구글
페이스북