블로그

SQL 인젝션이 앱 보안의 바퀴벌레인 이유 (그리고 CISO가 이를 완전히 박멸하는 방법)

September 26, 2018
마티아스 마두(Matias Madou) 박사
어두운 녹색 담쟁이덩굴 잎 위에 앉아 있는 긴 더듬이의 밝은 파란색 딱정벌레와 부드러운 녹색 배경.

바퀴벌레는 핵폭발조차 견뎌낼 수 있다는 유명한 이론이 있습니다. 이 이론이 어느 정도 일리가 있긴 하지만, 바퀴벌레는 단순한 신체 구조 덕분에 크기에 비해 생명력이 매우 강하며 대부분의 환경에서 박멸하기가 어렵습니다.

문득 이런 생각이 들었습니다. 만약 디지털 세상에 바퀴벌레와 같은 존재가 있다면, 그것은 바로 코드 내의 SQL 인젝션(SQLi) 취약점일 것입니다. 20년 넘게 알려진 취약점임에도 불구하고, 기업들은 여전히 반복해서 피해를 입고 있습니다. 타겟(Target)을 대상으로 한 막대한 피해를 입힌 공격도 SQL 인젝션의 결과였으며, 선거 해킹 사례 중 일리노이주에서 20만 명의 유권자 기록이 노출된 사건 역시 마찬가지였습니다. 이 사건으로 인해 FBI는 모든 IT 관리자에게 보안 관행을 신속히 강화할 것을 권고했습니다.

임퍼바(Imperva)의 해커 인텔리전스 이니셔티브 보고서에 따르면 2005년부터 2011년까지 발생한 전체 데이터 유출 사고의 83%에 SQLi 공격이 사용되었습니다. 오늘날에도 인젝션 취약점은 OWASP Top 10에서 여전히 1위 위협으로 남아 있습니다. 비교적 단순한 공격임에도 불구하고, 좀처럼 사라지지 않고 있습니다.

상당수의 애플리케이션 보안 스캔에서 여전히 동일한 취약점이 발견된다는 것은 터무니없는 일처럼 보입니다. 우리는 이 취약점이 어떻게 작동하는지, 그리고 어떻게 막아야 하는지도 알고 있습니다. 어떻게 이런 일이 가능할까요? 사실, 우리 소프트웨어 보안에는 개선할 여지가 매우 많습니다.

베라코드(Veracode)의 소프트웨어 보안 현황 보고서(2017년 40만 건의 애플리케이션 스캔 기반)는 놀라운 통계를 보여줍니다. OWASP Top 10 정책을 통과한 애플리케이션은 단 30%에 불과했습니다. 이는 지난 5년간 지속된 현상으로, 새로 스캔한 애플리케이션 3개 중 1개꼴로 SQL 인젝션이 발견되었습니다. 이는 고질적인 문제라는 증거입니다. 우리는 실수로부터 배우지 못하고 있으며, CISO들은 충분한 보안 인력을 확보하는 데 어려움을 겪고 있습니다. 일반적으로 앱 보안(AppSec) 전문가와 개발자의 비율은 1:100으로 매우 부족한 실정입니다.

왜 소프트웨어 보안은 위태로운 상태에 놓여 있을까요?

전문 보안 인력이 부족하다는 것은 비밀이 아니지만, 개발자들이 문제가 발생했을 때 즉시 해결하지 않으며 애초에 취약점을 만들지 않도록 대비하는 능력도 부족하다는 점에 주목해야 합니다. 같은 베라코드 보고서에 따르면, 전체 개발 취약점 중 14.4%만이 문서화된 완화 조치가 이루어졌습니다. 즉, 대부분의 취약점은 개발 단계에서의 완화 조치 없이 제출되었습니다. 취약점의 3분의 1 미만이 90일 이내에 해결되었으며, 42%는 개발 기간 내에 전혀 해결되지 않았습니다.

저는 항상 보안 전문가, CISO, CEO들과 대화를 나누는데, 많은 기업이 해결할 수 없는 취약점의 수(오탐지라는 골칫거리와 더불어)에 너무 좌절한 나머지 스캔 자체를 중단하고, 그저 운에 맡기며 최악의 상황이 오지 않기만을 바라고 있다는 사실을 알게 되었습니다.

왜 앱 보안 전문가들은 이런 상황을 방치하는 걸까요?

오해하지 마십시오. 앱 보안 담당자들은 코드 내의 문제점을 누구보다 잘 알고 있습니다. 결국 그것이 그들을 가치 있는 팀 자원으로 만드는 핵심 역량 중 하나이기 때문입니다. 하지만 그들은 종종 여러 요인에 의해 발목이 잡혀 있습니다.

예를 들어, 앱 보안 관리자가 문제를 발견하고 개발자에게 "코드를 수정할 수 있나요?"라고 물어봅니다. 이 중요한 질문에 대한 답변은 조직마다 다르지만, 일반적으로 개발자는 엄격한 기능 제공 일정을 맞추느라 너무 바빠서 문제를 수정할 시간도, 이를 도울 적절한 도구도 없는 경우가 많습니다. 앱 보안 전문가들은 취약점을 식별할 수는 있지만, 현장에서 이를 직접 수정할 기술이나 권한이 없는 경우가 많습니다.

또한 모든 문제에는 해결책을 찾고, 구현하고, 테스트하는 과정이 필요하다는 점을 깨달아야 합니다. 코드에서 발견된 아주 작은 문제라도 수정하는 데 드는 시간과 자원은 엄청납니다. 소프트웨어에 유입될 수 있는 취약점은 700개가 넘으며, 한 사람이 이 모든 것을 방어하는 것은 불가능합니다. 이러한 이유로 대부분의 기업은 OWASP Top 10만 따르는 데 그칩니다. 그사이 개발자들은 계속해서 기능을 개발하고, 결과적으로 작성하는 코드에 취약점을 계속해서 유입시키고 있습니다.

해결책은 무엇일까요?

간단한 사실은, 우리가 개발자들에게 안전한 코딩을 성공적으로 수행할 수 있는 도구와 교육을 제공하지 않는다는 것입니다. 조직이 개발자에게 적절한 보안 기술을 갖추도록 강제하는 규정은 없으며, 대부분의 대학이나 인턴십 과정에서도 주니어 개발자들이 안전하게 코딩할 수 있도록 준비시키지 않는다는 것이 안타까운 현실입니다.

비행기를 조종하려는 사람에게는 비행이 가능해지기 전까지 교육, 실무 경험, 건강 검진, 안전 지식 및 시험을 보장하는 매우 엄격한 과정이 있습니다. 이러한 광범위한 준비와 기술 검증 없이 하늘을 날게 한다는 것은 상상조차 할 수 없는 일이지만, 코드 작성 분야에서는 매일 이런 일이 벌어지고 있습니다.

우리는 개발자들에게 안전한 코딩 교육을 하는 데 시간을 투자해야 합니다. 하지만 소프트웨어 개발 속도가 빠르고 유능한 개발자와 보안 전문가가 부족한 오늘날의 세상에서, 이는 결코 우선순위가 아닌 것처럼 보입니다. 이제는 대화의 방향을 바꿔야 할 때입니다.

최근 세계경제포럼(World Economic Forum)의 헤드라인은 "보안 없이는 디지털 경제도 없다"라고 강조하며, 보안이 모든 디지털 전환 전략의 핵심 요소가 되어야 한다고 주장했습니다. "보안은 기업을 보호하여 혁신하고 새로운 제품과 서비스를 구축할 수 있게 합니다. 방어적인 역할을 넘어, 보안은 기업에 전략적인 성장 이점을 제공합니다."

보안 코딩 기술과 성과를 향상하면 조직에 강력한 사이버 보호 계층이 추가되어 더 나은 코드를 더 빠르게 작성할 수 있습니다. 개발자가 보안 전문가가 될 필요는 없지만, 사이버 공격에 대한 최전선 방어자로서 긍정적이고 실질적인 역량을 갖추어야 합니다. 개발자는 차세대 보안 및 혁신의 주역이 될 수 있습니다. 그들은 매우 영리하고 창의적인 문제 해결사이며, 일반적으로 자신의 기술을 향상하는 데 열정적입니다. 그들이 마땅히 받아야 할 전문 교육을 통해 강점을 발휘하게 하고, 더 높은 소프트웨어 보안 표준을 위해 노력하십시오.백서를 읽고 자세한 내용을 확인하세요.

비행기를 조종하려면 교육, 실무 경험, 건강 검진, 안전 지식 및 시험을 포함하는 매우 엄격한 과정을 거쳐야 합니다. 이러한 광범위한 준비와 기술 검증 없이 하늘을 나는 것은 상상조차 할 수 없는 일이지만, 코드 작성 분야에서는 매일 이와 같은 일이 벌어지고 있습니다.
태그라인

배포 전 AI 기반 개발 거버넌스 확보

AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.

데모 예약하기
리소스 라이브러리

더 많은 블로그 살펴보기

보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.

전체 보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

하나의 보안 문화: Sage는 어떻게 챔피언 프로그램을 구축했는가

Sage가 유연하고 관계 중심적인 접근 방식을 통해 보안을 강화하고, 200명 이상의 보안 챔피언을 양성하며 실질적인 위험 감소를 달성한 사례를 확인해 보세요.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

2026년 사이버 보안 인식의 달: 기업 방어의 핵심, AI 보안 이해하기

주요 AI 기업 대부분이 안전 가이드라인이 마련될 때까지 AI 개발 속도를 전 세계적으로 늦춰야 한다고 공개적으로 촉구하는 시점에 이르렀지만, 사실 심각한 보안 문제는 이미 현실화되었습니다. 이로 인해 AI 도입에 따른 금전적 비용과 위험 부담이 계속 쌓이면서 수많은 보안 책임자와 경영진이 절박한 상황에 놓였습니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

인에이블러 8: 프로그램 브랜딩

성공적인 보안 코딩 프로그램을 위해서는 훌륭한 콘텐츠 그 이상의 것이 필요합니다. 인에이블러 8에서는 브랜딩을 통해 참여를 누구나 선망하는 위상 중심의 경험으로 바꾸는 방법을 알아봅니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

이제 모든 직원이 AI 사이버 보안의 최전선에 있습니다

엔터프라이즈 기술 환경은 너무 늦기 전까지는 아무도 예상하지 못한 속도로 변화하고 있습니다. 우리는 공식적으로 사람이 직접 작성한 코드와 기본적인 코파일럿 지원의 시대를 지나 '에이전트 기반 개발 수명 주기(ADLC)'의 시대로 진입했습니다. 자율형 AI 에이전트는 여러 기능 전반에 걸쳐 전례 없는 효율성을 약속하지만, 동시에 완전히 새로운 차원의 보안 및 규제 위험을 야기합니다.

더 알아보기

배포 전 AI 기반 개발 보안 확보

소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.

데모 예약하기
항목이 없습니다.