고수는 '골라' 쓴다··· 알짜배기 오픈소스 보안 프로젝트 19선

InfoWorld

기트허브에는 보안 전문가에게 보물창고다. 수많은 오픈소스 대안이 존재하며 매일 새로운 선택지가 등장하고 있다. 여기 보안 전문가들이 고려할 만한 도구들을 정리했다.


Credit: Antonio Silveira

실시간 유지보수 작업을 수행할 때, 사고 상황에 대처할 때, 또는 신규 프로젝트를 검토할 때, 시스템 관리자들이 으레 택하는 방법은 두 가지 중 하나다. 프로세스 자동화를 위해 스크립트를 작성하거나 수동으로 직접 해버리는 것이다. 그러나 진짜 고수는 기존에 있는 툴 중 적당한 것을 찾아 활용한다.

기트허브(GitHub)에는 800여 가지가 넘는 오픈소스 보안 프로젝트들이 있다. 맬웨어 분석, 침투 테스트, 컴퓨터 및 네트워크 포렌식, 발생 대응(incidence response), 네트워크 모니터링 등 범위도 다양하다. 활용하기에 따라 보안 전문가나 시스템 관리자들에게 긴요한 도구일 수 있는 것들이다.

여기 시스템 및 네트워크 보안 담당자라면 그냥 지나쳐서는 안 될 오픈소스 프로젝트를 소개한다. 편의상 업무 종류별로 프로젝트를 분류했다.

- 침투 테스트 툴
- 다단계 방어 툴
- 네트워크 보안 모니터링
- 사고 대응 및 포렌식 툴
- 리서치 툴 및 취약점 스캐너
 

침투 테스트 툴
침투 테스트는 래피드7의 메타스플로이트 프레임워크(Metasploit Framework) 하나면 고민 끝이다. 메타스플로이트의 광범위한 익스플로잇 라이브러리 덕분에 공격이 발생하기 전에 미리 네트워크 및 DO플리케이션의 보안 상태를 점검할 수 있다.

특히 메타스플로이트의 모듈 구조는 다양한 기기, 장비에 대한 테스팅을 가능케 한다. 알맞은 모듈만 끼워 넣으면 컴퓨터, 전화기, 라우터, 스위치, 산업용 제어시스템, 내장형 기기까지 테스트 할 수 있다. 메타스플로이트는 또 윈도우, 리눅스, 맥, 안드로이드, iOS등 다양한 플랫폼에서 구동시킬 수 있다.

메타스플로이트 만으로도 충분한 기능을 갖추고 있긴 하지만 다른 툴도 알아둬서 나쁠 것 없다. 웹 브라우저 침투 테스트 전용 프로젝트 '브라우저 익스플로이테이션 프레임워크'(BeEF, Browser Exploitation Framework)가 그것이다. BeEF는 클라이언트 사이드의 공격 벡터를 통해 기업이 웹 기반 공격에 얼마나 취약한지 평가하고 공격 발생 시 침투 정도를 예상한다.

미미캣츠(Mimikatz)는 윈도우 기기나 네트워크에 더욱 견고한 발판을 마련해 주는 포스트-익스플로이테이션 툴이다. 미미캣츠의 위력은 텍스트로 된 패스워드, 해쉬, PIN 코드, 메모리 케르베로스 티켓, 가짜 유저 토큰, 엑스포트 인증서, 그리고 침입된 시스템에 저장된 개인 키 등을 추출할 수 있게 해준다는 점이다. 미미캣츠 하나만 사용할 수도 있지만 미터프리터(meterpreter) 스크립트로 메타스플로이트에 포함시켜 이용할 수도 있다.
 

---------------------------------------------------------------
보안 솔루션 인기기사
-> '제법 쓸만한' 오픈소스 모니터링 툴 7종
-> "돈 없이도 할 수 있다" 보안 예산이 부족한 CISO를 위한 성공 전략
-> 네트워크 허점을 구석구석! 무료 취약점 스캐너 6종
-> 깃허브 인기 오픈소스 보안 툴 11선
-> 쓸만한 무료 보안 툴 15선
---------------------------------------------------------------
 다단계 방어(Defense-in-depth) 툴
클라우드플레어(CloudFlare)의 CFSSL은 TLS 인증서 서명, 확인, 번들링에 있어서 가치 ‘만능’이라 표현할만한 프로젝트다. 코맨드 라인 툴이면서 HTTP API 서버이기도 한 CFSSL을 활용하면 커스텀 TLS/PKI 툴을 제작할 수 있으며 다중의 서명 키를 사용할 수 있는 인증 권한을 실행시킬 수 있다. CFSSL은 또 완전한 기능의 TLS 엔드포인트 스캐너를 보유하고 있다. 이를 이용하면 최신 취약점에 대한 서버 구성을 테스트 할 수 있으며 인증 구성 및 파기를 담당하는 패키지를 전송할 수 있다.

실수로 키나 패스워드 같은 중요 데이터를 노출시키는 일은 소프트웨어 개발에서 자주 있는 문제다. 깃로브(Gitrob)를 활용하면 기트허브 리포지토리(repository)에 저장된 중요 파일들을 스캔 할 수 있다. 물론 기트허브에도 내장된 검색 기능이 있지만 깃로브는 기관의 모든 공용 리로지토리 및 멤버 리로지토리 목록을 컴파일링해 스캔 프로세스를 간편화했다는 장점이 있다. 목록을 오가며 파일명과 패턴을 대조하여 중요 정보를 담고 있는 파일을 찾아내준다. 깃로브는 또 모든 정보를 PostgreSQL 데이터베이스에 저장하며 웹 애플리케이션을 통해 검색 결과를 표시하는 기능을 지원한다.

라이니스(Lynis)는 리눅스나 맥 OS X, BSD, 솔라리스와 같은 리눅스 기반 시스템을 위한 보안 심사 및 강화 툴이다. 심층 보안 스캔을 통해 시스템 및 취약 소프트웨어 패키지, 설정 상의 문제를 탐지해 내는 것 외에도 시스템 강화 방안을 추천해준다. 블루 팀에서 자주 사용하는 툴로써 보안 상태 평가, 컴플라이언스 테스팅, 취약점 탐지, 컨피규레이션 관리, 패치 관리 등의 업무를 간편하게 해준다.

국가안전보장국(National Security Agency)의 SIMP(Systems Integrity Management Platform)은 네트워크로 연결된 시스템에 보안 정책 및 표준을 정의 및 적용할 수 있게 해준다. 기업/기관들은 보안 컴플라이언스 기준을 맞추고 오퍼레이션 태스크를 자동화하는 용도로 프레임워크를 이용할 필요가 있다. 레드햇 엔터프라이즈 리눅스(Red Hat Enterprise Linux) 라이선스를 구매해야 이용할 수 있는 SIMP는 네트워크 행동과 관련해 운영 현황과 보안팀의 일탈행위를 보여줄 수 있다.

네트워크 보안 모니터링(Network security monitoring)
브로 네트워크 시큐리티 모니터(Bro Network Security Monitor)는 여러 측면에서 유용하다. 이를 통해 보안 담당자들은 네트워크 상의 모든 기계에 대한 가시성 확보할 수 있고, 네트워크 트래픽 상의 네트워크 패킷을 분석할 수 있다. 애플리케이션 레이어 분석도 가능하다. 또 브로(Bro)의 도메인 특정 스크립팅 언어를 사용하면 사이트 맞춤형 모니터링 정책을 세울 수 있다. 프로젝트 소개 웹사이트에 따르면 브로(Bro)는 대학교, 연구실, 수퍼컴퓨팅 센터 등 과학 연구가 활발한 환경에서 널리 이용되고 있다.

OSSEC는 호스트 기반 침입 탐지 시스템과 로그 모니터링 및 SIEM(security information and event management) 기능을 결합해 리눅스, 맥 OS, 솔라리스, AIX, 윈도우 등 다양한 플랫폼에서 활용할 수 있도록 만들어진 툴이다. 로그 분석, 파일 무결성 확인, 정책 모니터링, 루트킷 탐지, 실시간 알림, 능동적 대응 등의 업무에 이용된다. 소프트웨어 로그에 허가되지 않은 파일 시스템 수정이나 악성 활동이 내장돼 있을 경우 경고 알림을 보내도록 OSSEC를 설정해 둠으로써 컴플라이언스에 대응할 수도 있다.

몰로크(Moloch)는 사고 대응, 네트워크 보안 모니터링, 디지털 포렌식 등에 유용하게 쓰이는 대규모 풀-패킷-캡처 인덱싱 및 데이터베이스 시스템이다. 모든 캡쳐된 네트워크 트래픽에 대해 탐색, 검색, 내보내기를 지원한다는 점에서 기존의 침입 탐지 시스템을 보완하는 측면이 있다. 이 시스템은 트래픽 데이터를 캡처하는 싱글 쓰레드 C 애플리케이션, 유저 인터페이스를 관리하는 Node.js 애플리케이션, 그리고 엘라스틱서치(Elasticsearch) 데이터베이스로 구성돼있다.

사고 대응 및 포렌식(Incident response and forensics) 툴
모질라 디펜스 플랫폼(MozDef)은 실시간으로 보안 사고를 모니터링하고, 이에 대해 보안 담당자가 협력하여 대처할 수 있는 플랫폼을 제공함으로써 사고 대응을 자동화할 수 있게 하는 툴이다. 엘라스틱서치, 미티어(Meteor), 몽고DB를 이용해 사고 대응 및 시각화 측면에서 기존의 SIEM을 확장시켰다. MozDef는 현재 모질라에서 이용되고 있을 정도로 높은 성숙도를 갖췄다.

OS X 오디터(OS X Auditor)는 커널 확장, 시스템 에이전트 및 다이몬, 서드파티 에이전트, 다운로드 파일, 그리고 구동 중인 시스템 상에 설치된 DO플리케이션 등을 분석한다. 포렌식 툴인 OS X 오디터는 격리된 파일, 브라우저 히스토리 및 쿠키, 파일 다운로드, LastSession, HTML 5 데이터베이스 및 로컬스토어, 로그인 데이터, 소셜 및 이메일 계정, 저장된 무선 연결 정보 등 다양한 사용자 정보를 추출해낸다. OS X 오디터는 또 포렌식 조사의 일부로써 다양한 소스에 대응해 개별 파일의 무결성을 확인하는 기능도 지원한다.

 


한편 슬러스 키트(Sleuth Kit)는 마이크로소프트 및 유닉스 시스템에 맞춰서 제작된 툴킷으로 라이브 시스템 상의 증거나 사고 대응 과정에서 생성된 이미지를 식별 및 복원할 수 있게 해준다. 슬러스 키트를 이용하여 파일 콘텐츠를 분석하고, 특정 절차를 자동화 하며, MD5 이미지 무결성을 확인할 수 있다. 라이브러리나 커맨드-라인 툴 콜렉션에 더 가깝다. 툴에 액세스 하려면 슬러스 키트의 그래픽 인터페이스인 오톱시(Autopsy)를 사용해야 한다.

GRR 래피드 리스펀스(GRR Rapid Response)는 리눅스, OS X, 윈도우 클라이언트를 위한 원격 라이브 포렌식 사고 대응 프레임워크다. 목표 시스템에 파이썬 에이전트를 설치해 라이브로 원격 메모리 분석을 할 수 있게 해주며 디지털 포렌식 아티팩츠를 수집하는 한편 CPU, 메모리, I/O 사용에 관한 자세한 시스템 모니터링을 구현한다. GRR은 또한 슬러스 키트를 이용해 필요할 경우 raw 파일 시스템에 접근할 수 있도록 해준다.

리서치 툴 및 취약점 스캐너 (Research tools and vulnerability scanners)
레데어(Radare) 프로젝트는 유닉스와 유사한 역 엔지니어링 프레임워크이자 안드로이드, 리눅스, BSD, iOS, OS X, 솔라리스, 하이쿠(Haiku), 파이어폭스OS, QNX, 32 비트 및 64비트 윈도우에서 운용할 수 있는 커맨드 라인 툴이다. 레데어 프로젝트는 처음에는 포렌식스 툴 및 스크립팅 가능한 16진 커맨드-라인 에디터로 시작했지만 이후 바이너리 코드 분석, 코드 해체, 프로그램 디버깅 및 원격 gdb 서버 연결 라이브러리 및 툴을 추가하며 현재의 모습으로 진화해왔다. 레데어는 인텔기반, ARM, 스파크(Sparc), 파워PC 등 광범위한 아키텍처를 지원한다.

브레이크맨(Brakeman)은 루비(Ruby)용 취약성 스캐너로 애플리케이션 부분 간 데이터 플로우 분석을 가능하게 해준다. 또한 SQL 인젝션, SSL 인증 우회, 정보 노출 취약성 등 웹 애플리케이션 상의 문제 발견에도 도움을 준다. 브레이크맨은 웹사이트 보안 스캐너와 함께 사용되어야 한다.

퀵 안드로이드 리뷰 킷(Qark, Quick Android Review Kit)는 안드로이드 애플리케이션 상의 보안 취약성을 찾아내는 툴이다. 구체적으로는 소스 코드나 패키지 된 APK 상의 취약점을 찾아낸다. 실수로 방출된 컴포넌트, 부적절한 x.509 인증 확인, 데이터 누설, 소스 코드에 내장된 개인 키, 취약하거나 부적절하게 사용된 암호문 등의 문제가 주요 대상이다. 또한 찾아낸 보안 취약점의 성격에 대한 정보를 제공하며 이들 취약점을 공략할 수 있는 컨셉 검증 APK를 생성해 낼 수 있다.

맬웨어 분석에는 쿠쿠 샌드박스(Cuckoo Sandbox)가 유용하다. 2010년 구글의 섬머 오브 코드(Summer of Code) 프로젝트에서 유래한, 자동화 맬웨어 분석 시스템이다. 쿠쿠 샌드박스를 활용하면 수상한 파일을 폭파시키고 고립된 가상 환경에서 그 결과를 모니터링 할 수 있다. API 콜을 추적하고 생성되고 삭제된 모든 파일을 로깅 하는 등 데이터를 분석하여 미심쩍은 파일이 현재 시스템에서 어떤 행동을 하고 있는지 밝혀낸다.

주피터(Jupyter)는 엄밀한 의미에서 보안 전문 프로젝트는 아니지만 공유 노트북 기능 때문에 보안 툴킷에 빠져서는 안 될 감초 같은 프로젝트다. 코드, 시각화 결과물, 코드 해설 등을 셀이 포함된 개별 노트북에서 서로 공유할 수 있다. 주피터의 역량을 강화해 줄 부가적인 툴로는 주피터허브(Jupyterhub), 멀티유저 서버, 디프(diff) 툴, 도커 스택(Docker stack), 오쓰(OAuth) 패키지 등이 있다. ciokr@idg.co.kr