디지털 서비스에 의존하는 조직은 웹사이트와 앱의 취약점을 정기적이고 지속적으로 테스트하는 것을 포함해 웹 애플리케이션 보안 모범 사례를 준수하는 것이 매우 중요합니다. 보안 테스트를 통해 조직은 공격자가 악용하기 전에 웹 앱의 취약점을 조기에 식별하고 해결할 수 있으며, 실제 환경에서도 보안 메커니즘과 통제 수단이 의도한 대로 작동하는지 부하 테스트를 통해 확인할 수 있습니다.
이 블로그 게시물에서는 웹 애플리케이션 보안 테스트의 주요 범주와 각 테스트를 언제, 어떻게 사용해야 하는지 알아봅니다. 웹 앱 보안 테스트 도구의 예시를 살펴보고 웹 앱 보안 모범 사례도 설명합니다. 마지막으로 실용적인 조언과 지침을 담은 유용한 웹 앱 보안 체크리스트를 제공합니다.
““보안 테스트를 통해 조직은 공격자가 악용하기 전에 웹 앱의 취약점을 조기에 식별하고 해결할 수 있습니다.””
웹 애플리케이션 보안 테스트 유형
웹 애플리케이션 보안 테스트에는 크게 세 가지 유형이 있습니다. 정적 애플리케이션 보안 테스트(SAST)는 소스 코드를 분석하여 취약점을 식별하는 반면, 동적 애플리케이션 보안 테스트(DAST)는 애플리케이션이 실행되는 동안 외부 공격 표면(일반적으로 클라이언트 측/프런트엔드)을 스캔하여 취약점을 테스트합니다. 침투 테스트(흔히 펜 테스트라고 함)에서는 사이버 보안 전문가가 실시간 공격을 시뮬레이션하여 잠재적인 보안 취약점을 더욱 심층적으로 파악합니다.
정적 애플리케이션 보안 테스트(SAST)
SAST는 프로그램을 실행하지 않고 애플리케이션의 코드베이스를 분석하여 소프트웨어 개발 수명 주기 초기에 잘 알려진 취약점과 코딩 결함을 식별하므로, 애플리케이션이 프로덕션 환경에 배포되기 전에 문제를 발견하는 데 적합합니다. SAST가 탐지하는 일반적인 취약점에는 데이터가 할당된 메모리 버퍼를 초과하여 충돌이나 코드 실행으로 이어질 수 있는 버퍼 오버플로가 있습니다. 또한 SAST는 정제되지 않은 입력값이 데이터베이스 쿼리에 사용되어 공격자가 데이터를 조작하거나 액세스할 수 있게 되는 SQL 인젝션 결함도 찾아낼 수 있습니다. 다른 사용자가 보는 웹페이지에 악성 스크립트가 삽입되는 크로스 사이트 스크립팅(XSS)도 탐지할 수 있습니다.
DAST와 달리 SAST 도구는 일반적으로 개발 수명 주기 초기에 실행되어 보안 코딩 관행이 준수되고 있는지 확인합니다. 이 단계에서는 오류를 비교적 쉽게 수정할 수 있는 경우가 많습니다. 침투 테스트와 달리 SAST는 일반적으로 사람의 개입을 최소화한 자동화 도구를 통해 수행되며, 지속적 통합 및 지속적 제공(CI/CD) 프로세스의 일부로 실행되는 경우가 많습니다.
SAST 도구는 특정 언어에 맞게 설계되므로 사용하는 프로그래밍 언어를 지원하는 도구를 선택해야 합니다. OWASP(Open Worldwide Application Security Project)는 포괄적인 SAST 도구 목록을 관리합니다.
동적 애플리케이션 보안 테스트(DAST)
DAST는 애플리케이션이 실행되는 동안 이를 분석하여 소스 코드에서는 드러나지 않을 수 있는 런타임 취약점을 식별합니다. DAST는 특정 환경 조건에서만 나타나는 구성 종속적 취약점을 탐지하고, API, 데이터베이스, 서드 파티 서비스 등 외부 시스템과의 상호 작용에서 발생하는 보안 위험을 식별하는 데 도움이 됩니다. 또한 입력값 조작이나 세션 악용과 같은 악의적이거나 예기치 않은 사용자 행동으로 인해 발생하는 취약점도 탐지할 수 있습니다.
SAST와 달리 DAST 도구는 애플리케이션이 프로덕션 환경에서 실행된 후 개발 수명 주기의 후반부에 사용됩니다. DAST는 일반적으로 소스 코드에 접근하지 않고 클라이언트 측에서 애플리케이션을 탐색하고 테스트하여, 취약점을 찾아 악용하려는 공격자의 행동을 모방합니다. DAST는 스테이징 또는 프로덕션과 유사한 환경에서 문제를 식별하는 데 특히 유용하며, SAST와 같은 코드 수준의 테스트 방법을 보완합니다. 또한 DAST는 침투 테스트와도 다릅니다. 일반적으로 사람의 개입을 최소화한 자동화 도구로 수행되며 CI/CD 프로세스의 일부로 지속적으로 실행됩니다.
F5는 F5 Distributed Cloud Web App Scanning을 통해 DAST 유형의 솔루션을 제공합니다. 이 솔루션은 노출된 웹 자산을 자동으로 크롤링, 검색 및 매핑하여 여러 도메인에 걸친 애플리케이션과 서비스의 정확한 인벤토리를 생성함으로써 웹 보안을 간소화합니다. 또한 자동화된 침투 테스트를 수행하고, 일반적인 취약점 및 노출(CVE)과 오래된 소프트웨어 같은 알려진 취약점뿐만 아니라 OWASP Top 10 및 LLM Top 10 위협을 비롯한 알려지지 않은 취약점도 식별합니다. 이러한 선제적 접근 방식은 웹 자산을 포괄적으로 보호합니다. OWASP는 방대한 DAST 도구 목록도 관리합니다.
침투 테스트
침투 테스트는 일반적으로 숙련된 사이버 보안 전문가가 정교한 실제 공격을 모의하여 애플리케이션, 시스템 또는 네트워크의 취약점을 식별하고 악용하는 수동 보안 평가입니다. 침투 테스트는 공격자가 취약점을 어떻게 악용할 수 있는지와 그로 인해 발생할 수 있는 잠재적 영향을 밝혀 조직의 보안 태세에 대한 유용한 인사이트를 제공합니다.
모의 침투 테스트는 자동화 도구가 놓칠 수 있는 정교하거나 복잡한 위협을 찾아내는 데 특히 효과적입니다. 예를 들어 비즈니스 로직 공격은 애플리케이션의 의도된 기능과 프로세스를 악용합니다. 또한 모의 침투 테스트를 통해 공격자가 사람을 조종하여 무단으로 접근하거나 정보를 빼내는 사회 공학 공격의 가능성도 파악할 수 있습니다.
대부분의 조직에서는 SAST 및 DAST와 달리 침투 테스트를 정해진 일정에 따라 수행합니다. 이 테스트는 예산과 보안 요구 사항에 따라 매년, 분기별 또는 매월 수행되는 경우가 많습니다.
침투 테스트는 다양한 전문 도구를 활용해 공격을 시뮬레이션하고 조직의 디지털 환경 전반에서 잠재적인 취약점을 찾아냅니다. 여기에는 도메인의 외부 공격 표면을 파악하고 잠재적인 취약점을 식별하는 웹 애플리케이션 스캐너가 포함됩니다. 또한 네트워크 스니퍼를 사용해 네트워크 트래픽을 모니터링하고 분석하여 무단 활동이나 데이터 노출의 징후를 탐지하며, 웹 프록시를 통해 브라우저와 조직의 웹 서버 간 트래픽을 가로채 검사함으로써 안전하지 않은 데이터 전송과 같은 문제를 식별합니다. 비밀번호 크래킹 도구는 비밀번호 해싱의 강도나 부적절하게 저장된 자격 증명의 보안성을 테스트합니다.
일부 전문 테스트 제품(예: Burp Suite)은 포괄적인 침투 테스트 도구 세트를 제공하지만, 대부분의 침투 테스터는 개별 작업에 가장 적합한 다양한 전문 도구를 사용합니다. 일부 도구는 ‘자동화된 침투 테스트’를 제공한다고 주장하며 수동 침투 테스트보다 경제적인 대안이 될 수 있지만, 예산이 허용하는 범위에서 사이버 보안 전문가에게 종합적인 수동 침투 테스트를 정기적으로 의뢰하는 것이 좋습니다. 또한 수동 테스트 사이의 공백을 메울 수 있는 지속적인 자동 테스트 솔루션을 병행하는 것이 바람직합니다.
또한, F5는 무료 웹 앱 스캔 서비스를 제공합니다 이 서비스는 조직의 웹 애플리케이션 보안 태세를 평가하고 개선하기 위한 첫 단계로 활용할 수 있습니다. 이 대화형 서비스를 통해 모든 도메인의 보안 상태를 파악할 수 있으며, 보안 방어 체계를 강화하기 위한 훌륭한 기반을 마련할 수 있습니다.
웹 애플리케이션 보안 테스트 모범 사례
테스트에 사용할 웹 애플리케이션 보안 테스트 도구의 효과를 극대화하려면 다음 모범 사례를 반드시 따르세요.
소프트웨어 개발 수명 주기 전반에 보안 테스트를 통합하여 취약점을 조기에 자주 발견하세요.
- 다양한 테스트 기법과 도구를 함께 활용하여 포괄적인 테스트 범위를 확보하고 사각지대를 줄이세요.
- CI/CD 파이프라인 내에서 지속적인 테스트를 자동화하세요 모든 코드 변경 시 일관된 보안 검사를 유지할 수 있습니다.
- 정기적으로 심층 침투 테스트 수행하여 정교하거나 간과된 위협을 발견합니다.
- 보안 테스트 도구와 프로세스가 광범위한 취약점을 탐지할 수 있도록 하세요일반적인 코딩 오류부터 다음 전반의 최신 위협을 포함한 복잡한 공격 벡터까지: OWASP API 보안 10대 위험 및 LLM.
웹 애플리케이션 보안 테스트 체크리스트
다음은 SAST, DAST 또는 침투 테스트 중 어떤 방식을 사용하든 웹 애플리케이션 보안 테스트 시 확인해야 할 정보와 취약점 유형을 정리한 유용한 체크리스트입니다. 자세한 내용은 웹 애플리케이션 보안 테스트를 위한 단계별 지침을 폭넓게 제공하는 OWASP 웹 애플리케이션 보안 테스트 가이드를 참조하세요.
범주 설명정보 수집
웹 애플리케이션 프레임워크, 진입점 및 실행 경로를 파악하고 검색 엔진, 웹 콘텐츠 또는 메타파일을 통한 정보 유출이 있는지 확인합니다.구성 및 배포 관리 네트워크 및 애플리케이션 플랫폼 구성, HTTP 메서드, 콘텐츠 보안 정책 및 파일 권한을 테스트합니다.아이덴티티 관리 역할 정의, 계정 프로비저닝 프로세스 및 사용자 이름 정책을 테스트합니다.인증 기본 자격 증명, 인증 우회, 취약한 인증 방식, 계정 잠금 메커니즘 및 비밀번호 변경 기능을 테스트합니다.권한 부여 디렉터리 탐색, 안전하지 않은 직접 객체 참조, 권한 상승 및 OAuth 취약점을 확인합니다.세션 관리 세션 관리 체계와 쿠키 속성을 확인하고, 노출된 세션 변수, 세션 하이재킹 및 크로스 사이트 요청 위조를 테스트합니다.입력값 검증 크로스 사이트 스크립팅, 데이터 삽입(예: SQL 삽입, LDAP 삽입, 코드 삽입 등) 및 서버 측 요청 위조를 테스트합니다.오류 처리 오류 처리를 통해 공격자가 사용 중인 API를 파악하거나, 다양한 서비스 통합 관계를 매핑하거나, DoS를 유발할 수 없도록 합니다.암호화 취약한 전송 계층 보안, 취약한 암호화 및 암호화되지 않은 채널을 통한 민감한 정보 전송을 테스트합니다.비즈니스 로직 비즈니스 로직의 데이터 검증, 요청 위조 가능성, 예기치 않은 파일 형식 업로드 및 결제 기능을 테스트합니다.클라이언트 측 DOM 기반 크로스 사이트 스크립팅, HTML 및 CSS 삽입, 클라이언트 측 URL 리디렉션, 교차 출처 리소스 공유 및 크로스 사이트 플래싱을 테스트합니다.API API 정찰을 수행하고 객체 수준 권한 부여 결함을 테스트합니다.
자세한 내용은 이 솔루션 개요를 참조하세요.
관련 블로그 게시물
성평등을 향한 여정: 사이버 보안 분야에서 성공적인 커리어를 개척하는 방법에 관한 Jenn Gile과의 Q&A
F5의 ‘성평등을 향한 여정’ 시리즈 네 번째 Q&A에서는 Rachael Shah와 NGINX 제품 마케팅 책임자 Jenn Gile이 사이버 보안 직종에 대한 오해를 바로잡고, 사이버 보안 분야의 성별 격차를 해소하기 위한 조언과 그 이점에 대해 이야기합니다.
TLS 검사에서 피터 파커 원칙 다루기
“큰 힘에는 큰 책임이 따른다.” 볼테르와 처칠도 이와 비슷한 말을 남겼지만, 이 문구는 스파이더맨 코믹스에서 벤 삼촌의 말로 가장 널리 알려져 있습니다. 물론 이 문구가 문화적으로 널리 통용되는 이유 중 하나는 TLS 검사를 비롯해 수많은 상황과 주제에 적용할 수 있기 때문입니다.
Venafi와 F5를 통한 머신 아이덴티티 보호
‘머신 아이덴티티’란 간단히 말해 자동화된 프로세스가 자신의 신원을 식별할 수 있도록 하고, 다른 자동화 시스템과 프로세스가 관련 리소스에 적절한 수준의 접근 권한을 부여하도록 하는 방법을 의미합니다. 이 개념 자체는 새로운 것이 아닙니다. 비교적 새로운 점은 이를 구현해야 하는 규모입니다.
마이너와 미니언: 데이터 유출만이 비용을 초래하는 것은 아닙니다
물론 데이터 유출은 더 큰 비용을 초래할 수 있고(적어도 지금은), 실패 사실을 세상에 드러낼 수밖에 없게 합니다(통지 의무가 있으니까요). 하지만 보안을 단순히 데이터 노출 문제로만 봐서는 안 됩니다. 요즘은 데이터가...
내 클라우드에서 나가!
F5의 Jay Kelley가 전하는 최신 소식에는 Microsoft Office 365용 신규 ID 및 액세스 솔루션을 배포할 때 고려해야 할 사항이 정리되어 있습니다.
Shift(웹 앱) 보안 레터
웹 앱 보안을 개발 초기 단계로 앞당기세요. F5 블로그에서 DevOps 파이프라인 초기에 보안을 통합하여 취약점을 예방하고 시간을 절약하는 방법을 알아보세요.
