2021년 검증된 9가지 침투 테스트 방법: 비즈니스 보안 강화
침투 테스트의 중요성
오늘날 기업 환경에서 보안은 가장 흔한 이슈가 되었습니다. 매일 해커들이 컴퓨터 시스템을 침입해 중요한 정보를 탈취했다는 소식을 접합니다.
2019년 미국에서만 1,473건의 데이터 유출 사고가 보고되었으며, 1억 6,400만 개 이상의 민감한 기록이 노출되었습니다. 2020년 상반기에는 540건의 데이터 유출이 발생했습니다. (Statista 보고서)
보안 취약점과 약점을 탐지하기 위해 많은 대기업이 자사 시스템에 대해 승인된 모의 사이버 공격을 수행합니다. 이것이 바로 침투 테스트(줄여서 펜 테스트)입니다. 기본적으로 사이버 해커가 악용하기 전에 보안 취약점과 약점을 식별하고 가능한 한 빨리 수정하는 것이 목적입니다.
더 구체적으로 침투 테스트는 실제 공격 시나리오를 시뮬레이션하여 안전하게 보안 격차를 찾아내고 악용함으로써, 궁극적으로 정보 유출, 자격 증명 탈취, 기타 유해한 비즈니스 결과로 이어질 수 있는 위험을 사전에 차단합니다.
침투 테스트는 펜 테스팅 도구를 이용해 사내에서 수행하거나 침투 테스트 제공업체에 아웃소싱할 수 있습니다. 프로세스는 일반적으로 보안 전문가가 대상 네트워크를 열거하여 취약한 장치나 계정을 탐지하는 것으로 시작합니다. 이는 네트워크의 모든 장치를 스캔하여 실행 중인 서비스가 있는 열린 포트를 찾는 것을 의미합니다.
침투 수준은 보안 테스터가 대상 시스템에서 탐색하려는 작업 유형에 따라 달라집니다. 따라서 테스터는 가장 관련성 높은 펜 테스트 유형에 대한 충분한 지식을 갖추어야 합니다.
침투 테스트는 수행 방식과 대상 자산 및 구성 요소에 따라 분류할 수 있습니다. 이 개요 기사에서는 강도 높고 침투적인 방식으로 설계된 다양한 침투 테스트 유형을 설명합니다.
사용 방법에 따른 침투 테스트 분류
1. 블랙 박스 테스팅
- 테스트 케이스를 즉시 설계 가능
- 특정 유형의 결함 탐지 가능
블랙 박스 침투 테스트에서 테스터는 클라이언트의 애플리케이션, 네트워크 구성, 또는 내부 정보에 전혀 접근할 수 없습니다. 필요한 정보를 추출하기 위해 모든 정찰을 직접 수행합니다.
이 테스트는 외부 네트워크에서 악용 가능한 시스템의 약점을 파악합니다. 이러한 약점 발견은 대상 네트워크 내에서 현재 실행 중인 프로그램과 시스템을 동적으로 검사하는 데 의존합니다.
테스터는 자동화된 스캐닝 소프트웨어와 다양한 수동 침투 테스트 기법에 익숙해야 합니다. 시스템 구성이나 애플리케이션 소스 코드에 대한 사전 지식이 없으므로, 블랙 박스 테스터는 개인적 관찰을 바탕으로 대상 네트워크의 자체 맵을 구축할 수 있어야 합니다.
제한된 지식으로 인해 시스템의 모든 취약점을 찾는 것이 불가능합니다. 이것이 이 테스트 유형의 주요 단점입니다. 테스터가 모든 경계를 뚫지 못하면 내부 취약점은 발견되지 않은 채로 남습니다.
그러나 서버 구성 실수, 입출력 검증 오류 등 특정 유형의 결함은 발견할 수 있습니다. 효율적으로 더 많은 취약점을 탐지하고 해결하려면 블랙 박스 테스트 방법론을 다른 테스트 도구와 결합해야 합니다.
블랙 박스 침투 테스트를 위한 다양한 도구가 시장에 나와 있습니다. 예를 들어 Wapiti는 임시 데이터를 주입하여 웹 애플리케이션의 잠재적 책임을 분석합니다.
2. 화이트 박스 테스팅
- 더 포괄적
- 코드 최적화 및 숨겨진 보안 문제 탐지 가능
이름에서 알 수 있듯 화이트 박스 침투 테스트는 블랙 박스 테스트의 정반대입니다. 테스터는 아키텍처 문서, 소스 코드, 기타 시스템 정보에 완전히 접근할 수 있습니다.
테스터는 사용 가능한 방대한 데이터를 샅샅이 뒤져 잠재적 약점을 탐지합니다. 정적 및 동적 코드 분석기와 디버거를 모두 사용할 수 있습니다.
테스터가 시스템에 대한 완전한 지식을 가지고 있기 때문에, 어떤 모듈을 먼저 테스트할지, 어떤 특정 소프트웨어를 사용할지 결정하는 데 더 많은 시간이 소요됩니다.
JUnit, PyUnit, Selenium은 가장 인기 있는 오픈소스 화이트 박스 테스트 도구입니다. 예를 들어 Selenium은 다양한 브라우저와 플랫폼에서 웹 애플리케이션을 검증하는 데 사용됩니다.
3. 그레이 박스 테스팅
- 더 적은 비용과 노력으로 더 중요한 취약점 식별
- 설계자 관점이 아닌 사용자 관점에서 테스트 수행
이것은 블랙 박스와 화이트 박스 침투 테스트의 결합입니다. 그레이 박스 펜 테스터는 데이터베이스 및 설계 문서 등 시스템 내부에 대한 일부 지식을 보유합니다. 이 제한된 지식으로 더 나은 테스트 데이터와 테스트 케이스를 만들며 테스트 계획을 수립할 수 있습니다.
이 테스트 유형은 블랙 박스 평가에 비해 시스템 보안에 대한 더 효율적이고 집중적인 평가를 제공합니다. 애플리케이션의 부적절한 사용이나 코드 구조의 결함을 식별할 수 있습니다. 더 구체적으로 복잡한 시스템의 모든 계층에 집중하여 컨텍스트별 오류를 발견합니다.
그레이 박스 테스트는 기능 테스트, 웹 애플리케이션, 웹 서비스, 보안 평가, GUI에 더 적합합니다. Burp Suite는 잠정적인 불안전한 지점을 공격하여 애플리케이션 취약점을 악용하는 인기 있는 그레이 박스 테스트 도구 중 하나입니다.
세 가지 테스트 기법의 차이점
| 블랙 박스 침투 테스트 |
그레이 박스 침투 테스트 |
화이트 박스 침투 테스트 |
| 시스템 내부 작동에 대한 지식이 필요 없음 |
시스템 내부 작동에 대한 부분적 지식 필요 |
시스템 내부 작동에 대한 완전한 지식 필요 |
| 숨겨진 오류 발견이 매우 어려움 |
숨겨진 오류 발견이 어려움 |
숨겨진 오류 발견이 쉬움 |
| 클로즈드 박스 테스트 또는 데이터 주도 테스트라고도 함 |
투명 테스트라고도 함 |
클리어 박스 테스트, 구조적 테스트, 코드 기반 테스트라고도 함 |
| 가장 적은 시간 소요 |
어느 정도 시간 소요 |
가장 포괄적이고 시간 많이 소요 |
| 입출력 검증 오류 발견에 최적 |
데이터 도메인 및 시스템 설계 테스트에 최적 |
알고리즘, 코드 구조, 내부 경계 테스트에 최적 |
| 최종 사용자, 개발자, 테스터가 수행 |
독립 테스터와 개발자가 수행 |
테스터와 개발자가 수행 |
대상 구성 요소에 따른 침투 테스트 분류
1. 네트워크 서비스 테스팅
- 네트워크 및 데이터 유출 방지
- 네트워크 및 시스템 보안 보장
네트워크 침투 테스트 프로세스는 다양한 악의적 방법을 사용하여 네트워크 보안을 검사함으로써 애플리케이션과 시스템의 보안 취약점을 발견하는 것을 포함합니다.
일반적으로 테스터는 악용 가능한 네트워크, 호스트, 시스템, 장치(스위치, 라우터 등)를 식별하여 약점을 밝혀냅니다. 네트워크에는 외부와 내부 접근 지점이 모두 있으므로, 외부에서 원격으로 그리고 클라이언트 현장에서 로컬로 테스트를 수행하는 것이 필수적입니다.
이를 통해 테스터는 조직이 직면한 위험 수준과 보안 결함을 해결하고 수정하는 방법을 이해할 수 있습니다. 위험도에 따라 테스트에서 다른 네트워크 영역을 대상으로 할 수 있습니다. 예를 들어:
- 상태 분석 테스트
- 방화벽 구성 테스트
- 방화벽 우회 테스트
- DNS 공격
이 테스트에서 조사되는 가장 일반적인 프로토콜은 다음과 같습니다:
- 단순 메일 전송 프로토콜 (SMTP)
- 파일 전송 프로토콜 (FTP)
- 보안 셸 (SSH)
- MySQL 및 SQL Server
시스템 크기와 복잡성에 따라 네트워크 침투 테스트 완료까지 1~4주가 소요될 수 있습니다. 테스터는 프로젝트 범위를 설정한 후에만 자세한 견적을 제공할 수 있습니다.
2. 웹 애플리케이션 펜 테스팅
웹 앱 펜 테스트 수행 단계
- 설계 및 구성의 취약점 식별
- 침입자 위치 파악 및 차단
많은 웹 애플리케이션이 민감한 정보를 보유하므로 항상 안전하게 유지해야 합니다. 이를 위한 한 가지 방법은 소프트웨어 개발 수명 주기(SDLC)의 일부로 웹 앱 침투 테스트를 포함하는 것입니다.
펜 테스트를 통해 데이터베이스, 백엔드 네트워크, 소스 코드를 포함한 전체 웹 애플리케이션과 구성 요소 전반의 취약점을 쉽게 파악할 수 있습니다. 이는 개발자가 약점과 오류를 정확히 찾아내고 우선순위를 정해 완화 방안을 마련하는 데 도움이 됩니다.
이 테스트는 대상 웹 앱에 대한 데이터 수집, 호스트 네트워크 매핑, 주입 또는 변조 공격의 모든 가능한 지점 검사를 포함합니다. 웹 앱 펜 테스트를 수행하는 주된 이유는 다음과 같습니다:
- 알려지지 않은 취약점 탐지
- 라우터, 방화벽 등 공개 노출 구성 요소 점검
- 가능한 공격에 대한 가장 취약한 경로 파악
- 정보 유출로 이어질 수 있는 허점 탐색
- 기존 보안 정책의 효과 검증
수동 및 자동 웹 앱 침투 테스트를 위한 다양한 도구가 시장에 나와 있습니다. Vega, Veracode, Zap 등은 빠른 테스트를 위한 가장 일반적인 도구들입니다.
3. 무선 펜 테스팅
- 무선 네트워크의 현실적인 보안 태세 파악
- 취약점 및 보안 정책/절차 해결
무선 침투 테스트는 비즈니스 WiFi에 연결된 모든 장치 간의 연결을 탐지하고 분석하는 것을 포함합니다. 여기에는 노트북, 스마트폰, 태블릿, 프린터, 기타 사물인터넷(IoT) 장치가 포함됩니다.
다양한 무선 프로토콜과 무선 액세스 포인트를 테스트하여 보안 허점을 발견합니다. 일반적으로 테스터가 무선 신호 범위 내에 있어야 장치에 접근할 수 있으므로 이러한 테스트는 클라이언트 현장에서 수행됩니다.
대부분의 경우 MAC 필터링 부족과 불충분한 네트워크 접근 제어로 인해 WiFi 액세스 포인트에서 취약점이 발견됩니다. 이러한 문제가 실제로 발생하기 전에 보안 태세의 효과를 테스트하고 의도하지 않은 약점을 노출하는 것이 중요합니다.
해커가 악용할 수 있는 무선 기술이 WiFi만 있는 것은 아닙니다. 블루투스 장치, 블루투스 저전력 장치, 그리고 Z-wave, DECT(무선 전화) 등 대중에게 덜 알려진 여러 기술도 공공장소에서 발견됩니다.
4. 클라이언트 사이드 침투 테스팅
- 클라이언트 사이드 소프트웨어의 보안 잘못된 구성 탐지
- 인바운드 및 아웃바운드 네트워크 트래픽 적절히 제어
이는 테스터가 웹 브라우저, Adobe Acrobat, 이메일 클라이언트, Macromedia Flash 등 클라이언트 사이드 애플리케이션 프로그램의 취약점을 악용하는 내부 펜 테스트입니다.
특정 간격으로 이러한 테스트를 수행해야 한다는 규칙은 없지만, 새로운 IT 인프라나 클라이언트 사이드 애플리케이션이 추가되거나 기존 인프라가 변경될 때 기업은 펜 테스트를 수행해야 합니다.
대부분의 클라이언트 사이드 취약점은 노트북이나 데스크톱에 설치된 패치되지 않은 소프트웨어로 인해 발생합니다. 일부 공격자는 업데이트 과정을 가로채 원래 업데이트와 함께 악성 코드를 전송하기도 합니다.
USB 장치도 악성 파일이나 실행 코드에 감염될 수 있습니다. 피해자가 USB를 자신의 기기에 연결하는 즉시 이 파일들이 자동으로 실행됩니다. 크로스 사이트 스크립팅, 폼 하이재킹, 클릭재킹, HTML 인젝션, 열린 리다이렉션은 가장 일반적인 클라이언트 사이드 보안 공격입니다.
이 때문에 직원의 취약성과 네트워크가 클라이언트 사이드 공격을 인식하고 대응하는 능력을 테스트하는 것이 중요합니다.
5. 외부 침투 테스팅
- 회사 경계 시스템의 보안 평가
- 애플리케이션 계층 및 네트워크 계층 평가 모두 포함
외부 침투 테스트는 일반적으로 대상 시스템이나 네트워크에 대한 사전 접근 권한 없이 공격자의 관점에서 테스트합니다. 이는 공격자가 이미 손상된 시스템에 발판을 마련한 상태에서 수행되는 내부 펜 테스트와 다릅니다.
외부 펜 테스트에서 테스터는 외부 자산에서 발견된 취약점을 활용하여 내부 네트워크에 접근을 시도합니다. 인스코프 자산에 대한 정찰을 수행하여 범위 내의 모든 자산에 대한 데이터를 수집합니다.
이 데이터에는 열린 포트, 취약점, 비밀번호 공격을 위한 직원 정보 등이 포함될 수 있습니다. 일단 경계가 뚫리면 외부 침투 테스트의 목적이 달성되며, 테스터는 내부 펜 테스트로 진행합니다.
참고: 개발자를 위한 30가지 유용한 버그 추적 도구
6. 사회 공학
- 의심하지 않는 직원을 속여 회사 보안 침해 유도
- 인간 심리를 악용해 기밀 데이터 획득
사회 공학은 인간 상호작용을 통해 이루어지는 광범위한 악의적 활동을 지칭합니다. 애플리케이션이나 네트워크의 약점이 아닌 인간의 실수에 의존하므로, 멀웨어 기반 침입보다 예측하기 어렵고 탐지하기 힘듭니다.
이러한 테스트는 회사의 직원을 속여 민감한 정보를 유출하게 함으로써 기밀 데이터를 획득하려는 시도를 포함합니다. 이는 원격 테스트 또는 물리적 테스트를 통해 달성될 수 있습니다.
참고: 15가지 최고의 테스트 데이터 생성 도구
원격 테스트는 직원에게 피싱 이메일을 보내거나 거짓 경고나 허위 위협으로 장치를 공격하는 것을 포함합니다. 반면 물리적 테스트에는 테일게이팅, 사칭, 쓰레기통 뒤지기, 물리적 위협 등이 포함됩니다.