베라코드의 연례 소프트웨어 보안 현황 보고서에서 검사한 애플리케이션의 80%에서 보안 결함이 발견되었다. 이 중 대부분은 수년간 웹 앱에 존재해 온 잘 알려진 문제를 다루고 있다. 아카마이의 최신 인터넷 보안 현황 보고서는 자사 인프라를 통한 트래픽을 분석한 결과 “애플리케이션과 API에 대한 웹 공격이 2023년 1분기와 2024년 1분기 사이에 49% 급증했다”라고 밝혔다. 애플리케이션과 API에 대한 수요가 기하급수적으로 증가하면서 보안 허점을 악용하여 공격 대상의 중요한 데이터에 무단으로 액세스하려는 위협 행위자에게 수익성 높은 표적으로 변모한 것이다.”
지난 수십 년 동안 소프트웨어 개발사는 이러한 추세에 맞서기 위해 시큐어 바이 디자인, 심층 방어, 시프팅 레프트, 데브섹옵스 등 다양한 보안 이니셔티브를 제안해 왔다. 하지만 안전하지 않은 앱의 문제는 여전히 지속되고 있다. 잘못 만들어진 앱 하나가 기업의 전체 네트워크에 침투하여 대규모 데이터 유출을 초래할 수 있기 때문이다.
기업 보안에 중대한 결과를 초래할 수 있는 잘못된 결정을 방지하고 보안 태세를 강화하기 위한 5가지 시작점 및 이를 방지하는 방법을 제안한다.
잘못된 입력 제어
모든 코드 작성은 어떤 데이터 입력이 필요한지 이해하는 것에서 시작된다. 애플리케이션에서 이러한 입력이 어떻게 소비되는지에 주의를 기울이는 것을 의미한다. 이러한 입력에 대한 제어가 거의 없는 경우 크로스 사이트 스크립팅이나 SQL 인젝션 공격이 발생하는데, 이러한 공격(및 기타 익스플로잇)은 느슨한 입력 제어를 이용하기 때문이다.
애플리케이션 보안에 관한 두 번째 책을 집필 중이며 이 주제에 대해 수년간 컨설팅을 해온 타냐 잔카는 “매우 흔한 사례는 입력 유효성 검사가 없거나 잘못된 경우”라고 했다. 스닉도 블로그를 통해 개발자는 “정확한 입력 유효성 검사와 데이터가 구문적으로나 의미적으로 올바른지 확인해야 한다”라고 말했다. 스택호크는“항상 백엔드 입력의 유효성을 검사하고 적절하게 위생 처리해야 한다”라고 밝혔다.
이러한 조언이 잦은 것을 고려할 때, 왜 여전히 적절한 입력 제어 기능이 없는 앱이 있는 것일까? 한 가지 이유는 개발자가 테스트를 간소화하기 위해 컨트롤 없이 앱을 작성하기 시작하고 다시 돌아가서 작업을 검토하는 것을 잊어버리는 경우가 많기 때문이다. 또 다른 이유는 개발자들이 처음부터 보안에 초점을 맞추지 않았기 때문이며, 이것은 시프트 리프트의 기원이기도 하다.
CISA의 최신 베스트 프랙티스에 따르면 제품에서는 매개변수화된 쿼리를 체계적으로 적용하고 명령 입력과 명령 자체의 내용을 분리할 것을 권장하다.
잘못된 인증 및 느슨한 권한
두 번째 일반적인 문제는 애플리케이션의 견고한 인증 및 역할 기반 권한의 부족과 관련이 있다. 새로운 문제는 아니지만, 더 많은 코드를 작성하고 게시하기 위해 서두르는 앱 개발 팀에서 종종 간과하는 문제다. 여기에서는 액세스 규칙을 만들고 잘 파악하고, 다단계 인증(특히 관리자와 관리자를 위한)을 구현하고, 코딩 프로젝트나 리소스에서 기본(또는 부재) 비밀번호를 제거하는 기본 사항이 중요하다.
느슨한 인증의 한 가지 측면은 API 및 암호화 키, 로그인 비밀번호 등 코드에 하드코딩된 자격 증명을 사용하는 실수인 ‘시크릿 스프롤’과 관련이 있다. 깃 가디언(Git Guardian)이 문제를 추적한 결과, 이러한 비밀을 유출하는 거의 모든 침해가 소프트웨어 작성자에게 통지된 후에도 최소 5일 동안 활성 상태로 유지되는 것을 발견했다. 오픈소스 작성자의 1/10이 비밀을 유출했으며, 약 170만 명의 개발자의 잘못된 행동에 해당한다.
이러한 결함을 수정하는 것은 개별 공급업체에서 CISA의 자체 문서에 이르기까지 수많은 모범 사례에 반영되어 있다. 여기서 목표는 각 특정 리소스에 대한 액세스 권한이 실제로 필요한 사람을 파악하고, 그 관계를 주기적으로 모니터링하여 역할이 여전히 유효한지 확인하는 것이다. 또한 데이터 액세스가 더 이상 필요하지 않으면 자격 증명을 제거하고 이러한 자격 증명 및 권한에 대한 정기적인 감사를 수행해야 한다.
잘못된 API 보호 및 열거
API가 확산되고 애플리케이션이 서로 더 많이 연결됨에 따라 개발자는 이 통신 경로를 보호하고 안전하게 사용할 수 있도록 해야 한다. 솔트 시큐리티(Salt Security)가 진행한 2023년 1분기 API 보안 현황 보고서에 따르면 400개 기업 중 거의 모든 기업이 2023년에 운영 API에서 보안 문제를 경험했으며, 그 중 17%는 API 관련 침해 사고를 겪은 것으로 나타났다. OPSWAT의 아담 로커는 “안타깝게도 위협은 계속 증가하고 있으며 잠재적인 공격 서피스도 계속 증가하고 있다”라고 말했다.
지난 달 인터넷 아카이브에서 발생한 3건의 개별 침해 사건은 모두 제대로 보호되지 않은 API 키와 관련된 것이었다. 가트너 수석 애널리스트 데일 코펜은 CSO에게 “공개 자산에 노출된 API는 공격 표면을 증가시키며 악의적인 공격자의 우선 표적이 된다”라고 말했다. “애플리케이션 공격 서피스는 기하급수적으로 증가했으며, 이로 인해 손상된 코드가 서둘러 시장에 출시되고 있다.”
잔카는 “API 게이트웨이 뒤에 숨어 있지 않은 API를 찾는 것은 매우 쉽다. 인터넷에 노출되면 악의적인 누군가가 찾아 악용할 수 있다”라고 경고했다.
업윈드(Upwind.io) CEO 아미람 샤차르는 개발자가 지속적으로 API 취약점을 테스트하고 실시간으로 API 트래픽을 모니터링하여 위협을 식별하고 대응을 간소화해야 한다며 “API 보안은 독립적인 도구가 아니라 전체 클라우드 보안 패키지의 일부가 되어야 한다”라고 강조했다.
F5 2024 애플리케이션 전략 현황 보고서에 따르면 조사 대상 기업의 41%는 개별 앱 수만큼 많은 API를 관리하고 있다. 이들은 AI 구현이 발전하고 더 복잡한 앱이 구축됨에 따라 API의 비율이 계속 증가할 것으로 예상했다.
그러나 API 게이트웨이를 구축하는 것은 전체 API 거버넌스 전략의 한 부분일 뿐이라는 사실을 인터넷 아카이브 개발자는 안타깝게도 깨닫게 되었다. 기업은 전체 API 인프라에 일관되고 종합적인 보안 정책을 적용하고 새로운 위협과 비정상적인 행동에 적응할 수 있어야 한다.
잘못된 도구
이제 도구에 대해 이야기해 보자. 높은 수준의 앱 보안을 유지하기 위한 툴링 과제에는 두 가지 부분이 있다. 첫 번째는 문제를 발견하고 해결하는 데 도움이 되는 올바른 도구 세트를 수집하는 것이다. 이것이 어려운 이유는 범용 보안 도구가 하나도 없기 때문에 도구 선택 시 적용 범위의 공백을 최대한 줄이기 위해 신중한 검토가 필요하기 때문이다.
가트너는 세 가지 종류의 도구를 제안한다.
- API 게이트웨이. 이 도구는 두 가지 주요 작업을 수행한다. 모든 API의 전체 인벤토리를 유지하여 문제 해결을 용이하게 하고, 서드파티 공급업체를 조사하고 의심스러운 활동이 있는지 모든 API를 모니터링하는 데 도움을 준다.
- 코드 스캔 및 테스트 도구 개발자가 코딩 오류를 발견하고 취약점을 식별 및 해결하는 데 도움이 되는 도구다. 이러한 도구는 코드가 작성되는 동안 소프트웨어 공급망을 보호하여 2020년의 솔라윈즈 오리온(SolarWinds Orion) 익스플로잇 같은 재난을 방지하는 데 도움이 된다.
- 소위 웹 애플리케이션 방화벽은 실제로 SQL 인젝션과 같은 공격으로부터 모든 애플리케이션을 보호한다. 일반적으로 상위 프로토콜 수준에서 작동하지만 DDoS나 봇넷과 같은 낮은 수준의 네트워크 기반 공격을 차단하는 데에도 사용할 수 있다.
하지만 개발자가 실제로 배포할 도구를 올바르게 선택할 수 있도록 보안 문화를 이해하는 것이 두 번째 문제다. 이 문제에 대해 지바 싱은 블로그에서“방대한 취약점 목록으로 엔지니어링 기업을 압도하지 않도록 모든 것을 한꺼번에 쇼핑하는 것이 아니라 작은 것부터 시작해야 한다”라고 언급했다. 이러한 취약점을 살펴보고 보호하고자 하는 데이터를 이해하고 우선순위를 정해야 한다. 싱은 많은 기업이 비즈니스 요구 사항에 맞지 않는 솔루션을 선택한다는 사실을 발견했다. 도구를 활용하지 않기 때문에 일상적인 프로세스에 통합되지 않는다.
베라코드가 전하는 메시지는 간단하다. 앱을 자주 검사하고, 다양한 기술을 사용하여 검사하고, 앱이 어떻게 구축되고 수정되는지에 대한 큰 그림을 이해하여 지속적인 수정 작업을 수행해야 한다는 것이다.
코펜이 트래픽 처리 엔진이라고 부르는 여러 카테고리를 결합한 애플리케이션 보안 제품(Barracuda, Imperva, F5 등)이 몇 개 있다. 이러한 통합은 궁극적으로 오탐을 추적하는 데 많은 시간을 소비하는 도구 및 알림의 피로를 없애는 데 도움이 된다. CSO는 “가장 큰 과제는 전반적인 리스크 관리를 제대로 처리하는 것이다. 도구를 간소화하고 가능한 한 여러 도구를 통합해야 한다”라고 요약했다.
자동화의 잘못된 사용
마지막 문제는 자동화를 자주 사용하지 않거나 효과적으로 사용하지 않는 것이다. 아무리 좋은 도구를 사용하더라도 알림이 쌓이고 분석하는 데 시간이 걸릴 수 있다. 생성형 AI는 오탐을 빠르게 식별하고, 즉각적인 주의가 필요한 알림을 연결하며, 신속한 해결책을 제공하여 기업 전반의 보안을 강화할 수 있기 때문에 도움이 된다. 인더스페이스(Indusface) 사장 벤키 순다는 “보안 소프트웨어, 특히 웹사이트 및 API 보호의 가장 큰 문제는 오탐이 만연하다는 점”이라고 말했다.
자동화는 특히 정기적인 침투 및 취약성 테스트를 수행하는 데 도움이 되는 최신 앱 보안 환경에 필수적이다. 이러한 조언에는 오픈 웹 애플리케이션 보안 프로젝트(OWASP)와 CISA를 비롯한 수많은 보안 전문가들이 공감한다
순다는 “AI를 효과적으로 사용하면 오탐을 제거하거나 최소한으로 줄이는 데 도움이 될 수 있으며, 더 많은 기업이 WAF를 사용하여 오탐을 차단하도록 장려할 수 있다”라고 말했다.
또한 AI는 알림 피로를 필터링하고 줄이는 데도 사용할 수 있다. 보안 업체는 빠르게 움직이고 있으며, 현재 많은 툴에 생성형 AI 기능이 향상되고 머신러닝 모델을 사용하여 멀웨어를 발견하고 악성 동향을 파악하는 데 더 빠르게 대응할 수 있는 방법이 제공되고 있다.
이러한 문제에도 불구하고 전반적인 환경은 희망의 조짐을 보인다. 베라코드는 보고서에서 가장 심각한 코딩 결함의 비율이 2016년에 비해 절반으로 줄었다고 밝혔다. 그러나 심각한 코딩 오류는 여전히 남아 있으며, 평균적으로 일반적인 앱에는 작성된 코드의 메가바이트당 42개의 결함이 있다. 여전히 너무 높은 수치다.
잔카는 “전반적으로 상황이 나아지고 있다. 신규 개발자는 오래 전에 교육을 받은 개발자보다 보안에 더 민감한 경향이 있다”라고 말했다.
dl-ciokorea@foundryco.com
Read More from This Article: 애플리케이션 보안을 위협하는 5가지 실수와 해결 방안
Source: News