보안 전문가들의 업무 능력을 향상시켜 줄 오픈소스 도구 4선
보안 전문가들이 업무를 제대로 수행하려면 다양한 도구들이 필요하다. 물론 도구들이 있어야만 보안이 제대로 성립된다는 건 아니지만, 빈손으로 조직의 안전을 요구할 수는 없다. 보안 담당자들을 돕는 도구들 중 오픈소스로 풀렸으면서도 유용한 것들이 제법 존재한다. 그 중 다음 몇 가지 도구들이 추천할 만하여 적어 본다.
[이미지 = 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, 리브퍼저, 지코브 외에도 쓸만한 것들을 어렵지 않게 찾아낼 수 있을 것이다.
이 포스팅이 문제가 될시 삭제 하겠습니다
댓글 없음:
참고: 블로그의 회원만 댓글을 작성할 수 있습니다.