매일 업데이트
2023-08-10 21:10 5 min

침투 테스트의 단계는 무엇입니까?

정보 시스템 보안 강화를 위한 침투 테스트

완벽하게 안전한 시스템은 존재하지 않습니다. 사이버 공격의 위협이 증가함에 따라, 정보 시스템의 취약점을 사전에 파악하고 개선하는 것이 중요해졌습니다. 이러한 목적을 위해 설계된 특수 테스트 절차가 바로 침투 테스트(Penetration Testing), 줄여서 페네트레이션 테스트 또는 모의 해킹이라고 불립니다. 이는 잠재적인 사이버 공격에 대비하여 정보 시스템의 모든 구성 요소를 정밀하게 검사, 평가 및 강화하는 과정을 의미합니다. 기업들은 시스템의 보안 결함을 발견하기 위해 버그 바운티 플랫폼을 활용합니다. 사이버 보안 전문가인 모의 해커들은 이러한 버그 바운티 제도를 통해 합법적으로 조직의 취약점을 찾아내고 공개합니다. 그렇다면 이 과정은 어떻게 진행될까요?

1. 수동적인 정보 수집 및 분석

버그 바운티와 침투 테스트의 첫 단계는 테스터가 대상 시스템에 대한 정보를 수집하는 것입니다. 다양한 공격 및 테스트 방법이 존재하므로, 침투 테스터는 수집한 정보를 바탕으로 가장 적합한 테스트 방법을 결정하고 우선순위를 설정해야 합니다.

이 단계에서는 대상 시스템의 인프라에 대한 핵심 정보, 예를 들어 도메인 이름, 네트워크 블록, 라우터, IP 주소 등을 파악하는 작업이 포함됩니다. 또한, 공격 성공 가능성을 높일 수 있는 모든 관련 정보, 예를 들어 직원 정보나 전화번호 등도 수집해야 합니다.

공개된 소스에서 얻은 데이터는 놀랍게도 중요한 정보를 제공할 수 있습니다. 따라서 윤리적 해커는 대상 기관의 웹사이트 및 소셜 미디어 플랫폼을 포함한 다양한 소스를 적극적으로 활용해야 합니다. 이러한 정보를 세심하게 수집함으로써, 테스터는 성공적인 버그 바운티 노력을 위한 기초를 다지게 됩니다.

대부분의 조직에서는 버그 바운티 기간 동안 침투 테스터에게 다양한 규칙을 적용합니다. 이러한 규칙을 준수하는 것은 법적인 측면에서 매우 중요합니다.

2. 능동적인 정보 수집 및 스캔

침투 테스터는 IP 범위 내에서 작동하는 능동 및 수동 장치를 탐지합니다. 이는 일반적으로 버그 바운티 기간 동안 수동 정보 수집을 통해 수행됩니다. 수동 수집 과정에서 얻은 정보를 바탕으로, 침투 테스터는 필요한 테스트의 우선순위를 결정하고 정확하게 정의해야 합니다.

이 단계에서 해커는 운영 체제(OS), 열린 포트, 서비스 정보, 그리고 실제 시스템의 버전 정보를 파악해야 합니다.

만약 버그 바운티를 요청한 조직에서 침투 테스터에게 네트워크 트래픽을 합법적으로 모니터링할 수 있는 권한을 부여한다면, 시스템 인프라에 대한 훨씬 더 많은 핵심 정보를 수집할 수 있습니다. 그러나 대부분의 조직에서는 이러한 권한 부여를 꺼리는 경향이 있습니다. 이러한 상황에서는 침투 테스터가 설정된 규칙을 엄격히 준수해야 합니다.

3. 분석 및 테스트 단계

이 단계에서 침투 테스터는 대상 애플리케이션이 다양한 침입 시도에 어떻게 반응하는지 파악한 후, 활성 상태로 감지된 시스템에 직접 연결을 시도하고 질의를 보냅니다. 즉, 윤리적 해커가 FTP, Netcat, Telnet과 같은 서비스를 활용하여 대상 시스템과 상호작용하는 단계입니다.

때로는 실패할 수도 있지만, 이 단계의 주된 목적은 정보 수집 단계에서 얻은 데이터를 시험하고 기록하는 것입니다.

4. 조작 및 익스플로잇 시도

침투 테스터는 이전 단계에서 수집한 모든 데이터를 단 하나의 목표를 위해 종합합니다. 즉, 실제 악의적인 해커처럼 대상 시스템에 대한 접근 권한을 획득하려고 시도하는 것입니다. 이 단계가 중요한 이유는, 버그 바운티 설계 과정에서 침투 테스터는 적대적인 해커의 관점에서 생각해야 하기 때문입니다.

이 단계에서 침투 테스터는 대상 시스템에서 실행되는 운영 체제(OS), 열린 포트, 해당 포트에서 제공되는 서비스 및 버전을 바탕으로 적용 가능한 익스플로잇 기법을 활용하여 시스템 침투를 시도합니다. 웹 기반 포털 및 애플리케이션은 방대한 코드와 라이브러리로 구성되어 있어 악의적인 해커에게 공격 가능성이 더욱 높아집니다. 따라서 숙련된 침투 테스터는 모든 가능성을 고려하고, 주어진 규칙 내에서 허용되는 모든 공격 벡터를 구현해야 합니다.

시스템을 손상시키지 않고, 흔적을 남기지 않으며, 기존의 익스플로잇 방법을 성공적으로 활용하여 시스템에 침입하기 위해서는 상당한 전문 지식과 경험이 필요합니다. 따라서 침투 테스트의 이 단계는 매우 중요합니다. 공격 과정에서 포렌식 컴퓨팅 팀이 개입할 필요가 있다면, 사이버 공격자가 남긴 흔적을 추적해야 합니다.

5. 권한 상승 시도

시스템의 보안 강도는 가장 취약한 연결 고리에 의해 결정됩니다. 윤리적 해커가 시스템에 접근하게 되면, 일반적으로 낮은 권한을 가진 사용자로 시스템에 로그인하게 됩니다. 이 단계에서 침투 테스터는 운영 체제 또는 환경의 취약점을 이용하여 관리자 수준의 권한을 획득하는 것을 목표로 합니다.

획득한 추가 권한을 이용하여, 최종적으로 도메인 관리자 또는 데이터베이스 관리자와 같이 가장 높은 수준의 사용자 권한을 확보하여 네트워크 환경의 다른 장치를 점유하는 것을 목표로 해야 합니다.

6. 보고 및 발표

침투 테스트 및 버그 바운티 단계가 완료되면, 침투 테스터 또는 버그 헌터는 대상 시스템에서 발견한 보안 취약점, 후속 조치, 그리고 취약점을 악용할 수 있었던 방법들을 자세한 보고서와 함께 조직에 제출해야 합니다. 보고서에는 스크린샷, 샘플 코드, 공격 단계, 그리고 이러한 취약점으로 인해 발생할 수 있는 결과와 같은 정보가 포함되어야 합니다.

최종 보고서에는 각 보안 취약점을 완화하는 방법에 대한 해결책 제안도 포함되어야 합니다. 침투 테스트의 민감성과 독립성은 반드시 유지되어야 합니다. 윤리적 해커는 이 단계에서 얻은 기밀 정보를 절대 공유해서는 안 되며, 잘못된 정보나 이 정보로 인해 발생할 수 있는 피해를 방지해야 합니다.

침투 테스트가 중요한 이유는 무엇일까요?

침투 테스트의 궁극적인 목표는 공격자의 관점에서 시스템 인프라가 얼마나 안전한지를 평가하고, 발견된 모든 취약점을 해결하는 것입니다. 또한 조직의 보안 상태에서 취약점을 식별하는 것 외에도, 보안 정책의 효과를 측정하고, 보안 문제에 대한 직원 인식을 테스트하며, 기업 내 사이버 보안 원칙이 얼마나 잘 적용되고 있는지를 판단하는 데에도 중요합니다.

침투 테스트의 중요성은 점점 더 커지고 있습니다. 기업 구조 및 개인 애플리케이션의 인프라 보안을 분석하려면, 자격을 갖춘 윤리적 침투 테스터의 지원을 받는 것이 필수적입니다.

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.