수동 보안 테스트란 무엇인가?
수동 보안 테스트는 숙련된 펜테스터(침투 테스터)가 자신의 전문 지식과 경험을 바탕으로 애플리케이션의 취약점을 직접 찾아내는 과정입니다. DAST(동적 애플리케이션 보안 테스트) 도구만으로는 발견할 수 없는 취약점이 존재합니다. 대표적으로 인가(Authorization) 결함이나 비즈니스 로직 결함처럼 애플리케이션의 맥락과 흐름에 대한 깊은 이해가 필요한 영역인데, 이러한 취약점은 오직 숙련된 펜테스터만이 찾아낼 수 있습니다.
보안 테스트를 수행하는 이유
보안 테스트의 핵심 목표는 시스템에 잠재한 위협과 취약점을 사전에 식별하는 것입니다. 이를 통해 시스템은 외부 공격이나 해킹으로부터 보호받으면서도 안정적으로 운영될 수 있습니다.
왜 수동 테스트가 필요한가?
수동 테스트에서는 QA 팀이 직관과 경험에 기반해 즉각적인 판단을 내릴 수 있습니다. 코드와 화면의 각 요소를 자유롭게 탐색하고 원하는 방식으로 검증할 수 있어, 자동화 테스트보다 실행 비용이 적게 들고 더 신속한 피드백을 얻을 수 있는 경우가 많습니다.
수동으로 진행되는 테스트와 그 예시
수동 테스트는 자동화 도구나 스크립트 없이 사람이 테스트 케이스를 직접 실행하는 방식입니다. 테스터가 최종 사용자 관점에서 애플리케이션을 조작하며, 요구사항 명세서에 정의된 대로 기능이 정상적으로 동작하는지 확인합니다. 이때 테스트 계획서(Test Plan) 문서가 전체 테스트 수행의 가이드 역할을 하여, 모든 테스트 범위가 빠짐없이 커버되도록 돕습니다.
보안 테스트는 언제 실시해야 할까?
가장 이상적인 시점은 시스템이 더 이상 지속적으로 변경되지 않는, 프로덕션(실서비스) 배포 직전입니다. 운영 환경에 배포하기 전에 시스템이나 소프트웨어를 테스트하는 것이 업계의 모범 사례로 꼽힙니다.
수동 보안 테스트 vs 자동 보안 테스트, 어느 쪽이 나은가?
로직 취약점은 자동화 도구로 테스트하기 매우 어렵습니다. 보안 이슈를 정확히 식별하려면 애플리케이션의 범위와 데이터 흐름을 이해해야 하는데, 수동 테스트는 테스터가 취약점의 종류와 상황에 맞춰 자신만의 익스플로잇(공격 시나리오)을 설계할 수 있다는 강력한 장점이 있습니다.
보안 테스트는 어떻게 수행되는가?
비즈니스 특성과 소프트웨어 환경에 맞춘 커스텀 스크립트로 스캔을 자동화할 수도 있습니다. 반면 고급 수동 보안 테스트는 암호화 기능 평가, 사용자 권한 통제 검증, 숨겨진 중첩 취약점을 찾기 위한 애플리케이션 심층 분석처럼 엄격하고 세밀한 테스트 케이스를 직접 설계·수행하는 방식으로 진행됩니다.
소프트웨어 보안 테스트의 주요 점검 항목
- 접근 통제(Access Control) 관리 점검
- 동적 분석(Dynamic Analysis, 침투 테스트)
- 정적 코드 분석(Static Code Analysis)
- 서버 접근 통제 검증
- 진입·통과·출구 지점(Entry/Egress/Exit Point) 분석
- 세션(Session) 관리 점검
- 비밀번호 정책 및 관리 체계 확인
- 무차별 대입(Brute Force) 공격 대응 검증
수동 테스트의 기본 기법과 절차
체계적인 수동 테스트는 다음 단계로 진행됩니다.
1. SRS(소프트웨어 요구사항 명세서)를 검토해 요구사항을 파악합니다.
2. 테스트 계획을 명확하게 수립합니다.
3. 문서에 명시된 모든 요구사항이 테스트 케이스에 포함되도록 작성합니다.
4. QA 리더에게 테스트 케이스 리뷰를 요청합니다.
5. 테스트 케이스를 실행하고 결함(버그)을 탐지합니다.
성능 테스트도 수동으로 가능한가?
성능 테스트 역시 수동으로 수행할 수 있습니다. 먼저 테스트가 이루어질 환경을 분석하고, 측정할 성능 지표(Performance Metrics)를 정의합니다. 이후 테스트 환경을 구성하고 테스트 설계를 구현한 뒤 테스트를 실행합니다. 마지막으로 결과를 분석·보고하고, 필요시 재분석 후 재테스트를 반복해 성능 병목을 개선합니다.
결론: 수동 테스트가 주는 가치
자동화 테스트는 시간을 절약하고 빠른 결과를 얻는 데 유용하지만, 수동 테스트는 문제를 개념적·감각적으로 훨씬 깊이 이해할 수 있게 해줍니다. 배포 전에 테스터가 최종 사용자처럼 애플리케이션의 핵심 기능을 직접 검증하면, 자동화 도구가 놓치는 결함과 기능 문제까지 발견할 수 있습니다. 자동화와 수동 테스트를 상황에 맞게 병행하는 것이 가장 효과적인 보안 품질 확보 전략입니다.