무료 보안 도구는 풍성, 실제 사용은 빈약

무료 보안 도구는 풍성, 실제 사용은 빈약
Photo by Kvnga / Unsplash
💡
Editor's Pick
- 루비 언어 생태계의 무료 스캐너인 브레이크맨
- 루비 프레임워크인 레일즈 7.2부터는 브레이크맨 자동 탑재
- 사실 모든 언어에 비슷한 도구들이 존재...활용해야

2010년대 초반 스타트업 붐을 타고 날아올랐던 루비(Ruby)는, 비록 전성기가 지나긴 했지만 여전히 강력한 프로그래밍 언어다. 그런 루비를 활용해 웹 애플리케이션을 만들고자 할 때 사용되는 프레임워크인 ‘루비 온 레일즈(Ruby on Rails, 혹은 그냥 ‘레일즈’)’ 역시 아직까지 많은 사용자들을 거느리고 있다. 

최근 어느 언어를 주력으로 사용하는 개발자이든 상관없이 코드 내 다양한 취약점이 유입되는 것을 막는 게 점점 더 중요한 일로 여겨지고 있다. 보안에 있어 비교적 강력한 편에 속한다는 루비 언어와 레일즈 프레임워크를 능숙하게 다루는 개발자도 마찬가지다. 특히 특정 언어를 보다 간편하고 빠르게 구사할 수 있게 해 주는 프레임워크(예: 레일즈, 스프링, 장고 등)를 사용하는 개발자들의 경우 워낙 프레임워크가 작업을 쉽게 만들어주는 만큼 ‘보안도 알아서 잘 해 줄 거야’라는 착각에 빠지기 쉽다. 

그래서 필요한 게 개발자 자신이 짠 코드 혹은 지금 다루고 있는 코드를 검사해주는 도구다. 개발자로서는 발견하기 힘든 취약점과 공격 루트를 찾아주는 도구가 있으면, 개발자들 손에서부터 좀 더 튼튼하고 안전한 결과물이 나올 수 있을 것이다. 

💡
여기서 잠깐!
개발자와 보안 전문가는 둘 다 프로그래밍을 할 수 있고 코드도 해독할 수 있지만, 하는 일과 사고방식이 전혀 다르다. 개발자는 사업적 확장과 수익 창출을 목표로 삼고 각종 로직과 성능을 만들어내거나 강화한다. 따라서 자신이 만든 코드를 테스트 한다고 했을 때 기능성을 위주로 살핀다. 정상 경로만 확인하는 것이다. 하지만 해커들은 그런 정상 경로의 틀을 벗어나는 방법들을 연구하고, 그렇게 함으로써 개발자가 전혀 의도하지 못한 코드 활용법을 연구한다. 그런 해커들의 눈으로 취약점을 찾아내는 게 보안 전문가다. 즉 개발자의 의도나 정상 활용 방법은 염두에 없다. 어떻게 해야 예외를 만들고, 변칙적으로 움직이며, 오류를 일으킬지를 고민한다.

브레이크맨, 무료 보안 스캐너

레일즈를 자주 사용하는 개발자들이라면 브레이크맨(Brakeman)을 버릇처럼 사용하는 것이 코드 강화에 큰 도움이 될 수 있을 것으로 보인다. 브레이크맨은 저스틴 콜린스(Justin Collins)라는 개발자가 2010년에 만든 정적 분석 도구다. 레일즈 생태계 최초의 정적 보안 도구라고도 할 수 있다. 콜린스는 처음부터 브레이크맨을 오픈소스로 공개했다. 브레이크맨은 애플리케이션을 실제 실행하지 않고, 소스코드 자체만을 분석해 취약점을 탐지해내는 기능을 가지고 있다.

브레이크맨은 루비의 패키지 관리 시스템인 루비젬스(RubyGems)를 통해 설치할 수 있으며, 누구나 자유롭게 사용할 수 있다. 오픈소스로 풀린 덕에 브레이크맨은 현재 수천 개의 루비 및 레일즈 프로젝트에서 사용되고 있으며, 사용자가 많아지면서 기능도 발전해 현재 최초 버전보다 훨씬 다양한 취약점을 탐지할 수 있게 됐다. 레일즈가 업데이트 되고, 레일즈 생태계를 공략하는 공격자들의 수법에 따라 브레이크맨도 지속적으로 업데이트 됐다.

브레이크맨의 상업 버전도 존재한다. 브레이크맨 프로(Brakeman Pro)라고 하며, 현재 보안 기업 시놉시스(Synopsys)가 인수해 판매하고 있다. 하지만 대부분의 개발자들에게는 오픈소스 버전의 브레이크맨도 충분하다. 

그래서인지 루비 온 레일즈 7.2 버전(2024년 10월 출시)부터 브레이크맨이 기본 탑재되기 시작했다. 이는 매우 중대한 소식이다. 개발자들이 자발적으로 보안 도구를 수동으로 설치해 개발과 보안 점검을 동시에 하기는 힘들기 때문이다. 레일즈라는 개발 프레임워크에 보안 도구가 미리 탑재돼 있다는 건, 개발자가 보안 도구를 수동으로 설치해야 한다는 의미를 가지고 있고, 따라서 개발자의 ‘보안 강화 행위’를 북돋는 것이기도 하다. 개발자들에게 보안을 잔소리처럼 강조하는 것 외에, 개발자들의 편의성을 높여줌으로써 보안에의 참여도를 높이는 것도 현명한 방법일 수 있다.

브레이크맨, 어떤 취약점 잘 찾나?

브레이크맨은 SQL 주입 취약점을 가장 잘 찾아낸다. 그 다음 XSS 취약점, 명령 주입 취약점, 매개변수 대량 바인딩 취약점, CSRF 취약점 등도 곧잘 탐지하는 편이다. 레일즈로 만들어진 애플리케이션들에 자주 나오는 유형의 취약점들이라는 걸 감안하면 브레이크맨이 왜 긴 시간 인기를 누려왔는지를 쉽게 이해할 수 있다. 

반대로 잘 못찾는 취약점들도 존재한다. 브레이크맨이 정적 도구이기 때문에 런타임에만 발현되는 취약점의 경우, 탐지 확률이 낮아진다. 또한 환경 설정이나 서버 구성, 배포와 관련된 옵션 관련 문제들도 잘 탐지하지 못한다. 이 때문에 브레이크맨이 기본 탑재된 버전의 레일즈를 사용한다고 해서 모든 취약점들로부터 안전하다고 착각하는 건 되려 위험할 수 있다.

그렇기 때문에 브레이크맨의 약점을 보완할 만한 오픈소스 도구를 같이 쓰는 게 효과 면에서는 훨씬 좋다. 루비 환경에서도 쓸 수 있는 동적 분석 도구 중 대표적인 건 OWASP ZAP이다. 가장 대표적인 오픈소스 동적 분석 도구로, 실행 중인 웹 애플리케이션을 자동으로 크롤링 해 공격 시뮬레이션을 실시함으로써 시험한다. OWASP Top  10에 선정된 취약점들을 자동으로 찾아주기도 한다. 

💡
여기서 잠깐!
오픈소스를 논할 때 빼놓을 수 없는 것 중 하나가 OWASP이다. 보안 진단을 돕는 다양한 소프트웨어를 개발해 오픈소스로 풀고, 취약점 관련 소식은 물론 보안 지식도 모두에게 공개하는 활동을 하는 단체가 바로 OWASP이기 때문이다. 이런 OWASP의 서울 챕터는 매달 정기 세미나를 개최한다. 지난 12월에는 OWASP Top 10 최신 버전을 발표했고, 새해 1월에는 AI 보안의 현재와 미래를 다룰 예정이다. 행사는 오픈소스처럼 누구에게나 열려 있어 보안에 관심이 있다면 무료로 참여 가능하다. 1월 27일 서울 강남구 새롬빌딩 6층에서 오후 7시에 시작한다.

개발자들이 기억해야 할 것

루비를 자주 사용하는 개발자라면 제일 먼저 ‘레일즈 7.2 이상 버전을 사용하는 게 안전하다’는 것부터 기억해야 한다. 다만 오해하지 말아야 할 것은, 레일즈 7.2 이상 버전을 사용한다고 해서 브레이크맨이 자동으로 모든 취약점을 다 찾아주는 게 아니라는 것과, 설사 브레이크맨을 잘 작동시켜 코드 내 취약점을 빠짐없이 찾아냈다 하더라도 동적 분석을 같이 해야 더 완전한 결과를 얻어낼 수 있다는 것이다.

다른 언어를 주력으로 쓰는 개발자들의 경우도 브레이크맨에 해당하는 도구들을 조사해 가장 알맞은 것을 찾아 써 버릇 해야 한다. 예를 들어 자바 환경에는 스팟벅스(SpotBugs)나 OWASP 디펜던시체크(OWASP Dependency-Check) 등이 있고, 파이선 환경에는 밴딧(Bandit)과 세이프티(Safety)가 대표적이다. 자바스크립트에는 이에스린트(ESLint)가, PHP에는 삼(Psalm) 혹은 엑사캣(Exakat)이 있다. 최근 언어인 고에는 고섹(gosec)이 있고, 오래된 언어인 C 계열에는 클랙타이디(clang.tidy) 혹은 씨피피체크(Cppcheck)가 추천할 만하다. 오픈소스로 풀린 보안 도구는 이미 풍성한데, 그 풍성함을 제대로 누리지 못하기 때문에 생기는 보안 사고들이 너무 많다. 

개발을 진행함에 있어서 보안 도구의 ‘활용’은 더 이상 선택으로 남아 있어서는 안 된다. 돈을 낼 필요도 없이, 마음만 먹으면 가져다 쓸 수 있는 강력한 도구들이 이렇게 많은 상황에서, 개발자들이 언제까지나 보안 취약점으로 남아 있어서도 안 된다.🆃🆃🅔

by 문가용 기자(anotherphase@thetechedge.ai)


[OWASP 시리즈] OWASP Top10 2025 A04, 암호 기술을 넘어 ‘암호 사용 실패’를 묻다
💡Editor Pick - ‘암호 기술을 적용했는가?‘보다 중요한 건 ‘암호 기술을 어떻게 사용했는가?’ - 보다 높은 보안성을 위한 암호 알고리즘 사용 방법 고민 필요 OWASP Top10 2025에서 A04로 분류된 Cryptographic Failures는 2021년 A02와 동일한 명칭을 유지하고 있지만, 그 내부를 들여다보면 문제를 바라보는 시선이 달라졌음을 알 수 있다. 더 이상
[TE머묾] 믿고 싶은 대로 믿는 사람들의 믿음을 건드리는 믿음
💡Editor’s Pick - 보안은 만병 통치약 아니라고 아무리 설명해도 - 제로트러스트는 솔루션 이름이 아니라고 아무리 설명해도 - NIST 프레임워크 초안은 실용서가 아니라고 아무리 설명해도 믿음이란 얼마나 강력한 것인가. 보안과 IT 업계를 관찰자 입장에서만 10년 넘게 보아온 입장에서 절로 나올 수밖에 없는 말이다. 단, 이것은 특정 종교나 철학, 사상과 관련된 발언이

Read more

가장 ‘핫’한 인공지능 도구 둘, 멀웨어 배포처로 활용돼

가장 ‘핫’한 인공지능 도구 둘, 멀웨어 배포처로 활용돼

💡Editor's Pick - 인공지능 도구 클로드코드와 몰트봇, 악성코드 유포 - 인공지능이 스킬을 자동으로 다운로드 받아 설치한다는 사실 악용 - 공격자는 단일 인물 혹은 세력...신원 파악은 아직 현 시점 인공지능 업계에서 가장 많은 관심을 받고 있는 도구인 클로드코드(Claude Code)와 몰트봇(Moltbot)이 악성코드 유포에 악용됐다는 사실이

By 문가용 기자
음악 레이블 빅3와 스포티파이, 안나스아카이브 고소

음악 레이블 빅3와 스포티파이, 안나스아카이브 고소

💡Editor's Pick - 얼마 전 스포티파이에서 8600만 곡 가져간 안나스아카이브 - 스포티파이와 빅3가 뭉쳐 이들 고소 - 현재 안나스아카이브는 침묵 중...가처분 명령만 내려져 책과 논문 등을 불법으로 모아 배포하는 사이트인 안나스아카이브(Anna’s Archive)가 갑자기 음악에 손을 댔다가 세계 거대 음악 엔터테인먼트 회사들로부터 집중 공격을 받기

By 문가용 기자
무기 정교하게 가다듬은 북한, 한국은 비상

무기 정교하게 가다듬은 북한, 한국은 비상

💡Editor's Pick - 북한의 래버린스천리마, 세 그룹으로 나뉘어 - 기존 래버린스천리마에 암호화폐 탈취 전문 그룹 두 개 - 늘 그랬듯, 한국을 공격 훈련장이자 실험 무대로 활용할 듯 북한의 악명 높은 해킹 그룹 래버린스천리마(Labyrinth Chollima)가 세 개의 조직으로 분파했다고 보안 기업 크라우드스트라이크(CrowdStrike)가 분석했다. 크라우드스트라이크는 이

By 문가용 기자
[모집] 더테크엣지의 ‘테크 영어 루틴’인 톡섹을 공개합니다

[모집] 더테크엣지의 ‘테크 영어 루틴’인 톡섹을 공개합니다

💡Editor's Pick - TTE TalkSec이라는 소그룹 영어 모임, 곧 시작 - 프로그램의 목적은 영어 그 자체라기보다 영어 정복 '루틴' - 이른 아침 혹은 저녁 늦게...양자택일 얼마 전 저희 더테크엣지에서는 ‘테크와 보안 분야의 영어를 같이 익히는 모임’에 대해 공지를 올렸습니다. 대략의 얼개만 공개한 상황에서 적잖은

By 문가용 기자