beginners guide web application penetration testing
침투 테스트 일명 Pen Test는 웹 애플리케이션에 가장 일반적으로 사용되는 보안 테스트 기술입니다.
웹 애플리케이션 침투 테스트는 민감한 데이터에 액세스하기 위해 내부 또는 외부 적으로 무단 공격을 시뮬레이션하여 수행됩니다.
웹 침투를 통해 최종 사용자는 해커가 인터넷에서 데이터에 액세스 할 수있는 가능성을 찾고 이메일 서버의 보안을 찾고 웹 호스팅 사이트와 서버가 얼마나 안전한지 알 수 있습니다.
이제이 기사의 내용을 다루겠습니다.
월드 오브 워크래프트 PVP 개인 서버
(영상 출처 )
이 침투 테스트 튜토리얼에서는 다음을 다루려고했습니다.
- 웹 애플리케이션 테스트를위한 Pentest의 필요성,
- Pentest에 사용할 수있는 표준 방법론,
- 웹 애플리케이션 Pentest에 대한 접근 방식,
- 수행 할 수있는 테스트 유형은 무엇입니까?
- 침투 테스트를 수행하기 위해 취해야 할 단계,
- 테스트에 사용할 수있는 도구,
- 일부 침투 테스트 서비스 제공 업체 및
- 웹 침투 테스트를위한 일부 인증
권장되는 취약점 검색 도구 :
# 1) 넷 파커
Netsparker는 사용하기 쉽고 자동화 된 웹 애플리케이션 보안 테스트 플랫폼으로 웹 사이트에서 실제 및 악용 가능한 취약성을 식별하는 데 사용할 수 있습니다.
=> 최고의 Netsparker 침투 테스트 도구를 사용해보세요
#두) Kiuwan
SDLC의 모든 단계에서 코드의 취약성을 찾아 수정합니다.
Kiuwan은 OWASP, CWE, SANS 25, HIPPA 등을 포함한 가장 엄격한 보안 표준을 준수합니다. 개발 중 즉각적인 피드백을 위해 Kiuwan을 IDE에 통합하십시오. Kiuwan은 모든 주요 프로그래밍 언어를 지원하고 주요 DevOps 도구와 통합됩니다.
=> 무료로 코드 스캔학습 내용 :
- 침투 테스트가 필요한 이유는 무엇입니까?
- 웹 침투 테스트 방법론
- 웹 침투 테스트 유형
- 웹 펜 테스트 접근 방식 :
- 최고 침투 테스트 도구
- 최고의 침투 테스트 회사
- 일부 침투 테스트 인증 :
- 결론
- 추천 도서
침투 테스트가 필요한 이유는 무엇입니까?
보안에 대해 이야기 할 때 가장 일반적인 단어는 취약점 .
처음에 보안 테스터로 일하기 시작했을 때 저는이 취약점이라는 단어를 자주 혼동했습니다. 많은 분들이 제 독자들이 같은 배에 빠질 것이라고 확신합니다.
모든 독자의 이익을 위해 먼저 취약성과 펜 테스트의 차이점을 명확히 할 것입니다.
그래서, 무엇입니까 취약점 ? 취약점은 시스템을 보안 위협에 노출시킬 수있는 시스템의 결함을 식별하는 데 사용되는 용어입니다.
취약점 스캔 또는 펜 테스트?
취약성 검색을 통해 사용자는 애플리케이션의 알려진 약점을 찾아 내고 애플리케이션의 전체 보안을 수정하고 개선하는 방법을 정의 할 수 있습니다. 기본적으로 보안 패치가 설치되어 있는지, 시스템이 공격을 어렵게 만들도록 적절하게 구성되어 있는지 확인합니다.
Pen Tests는 주로 실시간 시스템을 시뮬레이션하고 권한이없는 사용자가 시스템에 액세스 할 수 있는지, 그렇다면 어떤 손상이 발생할 수 있는지, 어떤 데이터에 어떤 데이터 등이 있는지 사용자가 알아낼 수 있도록 도와줍니다.
따라서 취약성 스캔은 보안 프로그램을 개선하고 알려진 취약점이 다시 드러나지 않도록하는 방법을 제안하는 탐지 제어 방법이며, 펜 테스트는 시스템의 기존 보안 계층을 전체적으로 볼 수있는 예방 제어 방법입니다.
두 가지 방법 모두 중요성이 있지만 테스트의 일부로 실제로 예상되는 것에 달려 있습니다.
테스터로서 테스트를 시작하기 전에 테스트 목적을 명확히하는 것이 중요합니다. 목표가 명확하다면 취약성 스캔 또는 펜 테스트를 수행해야하는지 매우 잘 정의 할 수 있습니다.
웹 앱 펜 테스트의 중요성과 필요성 :
- Pentest 알려지지 않은 취약점을 식별하는 데 도움이됩니다.
- 전체 보안 정책의 효과를 확인하는 데 도움이됩니다.
- 방화벽, 라우터 및 DNS와 같이 공개적으로 노출 된 구성 요소를 테스트하는 데 도움이됩니다.
- 사용자가 공격을 할 수있는 가장 취약한 경로를 찾을 수 있습니다.
- 민감한 데이터의 도난으로 이어질 수있는 허점을 찾는 데 도움이됩니다.
현재 시장 수요를 살펴보면 모바일 사용이 급격히 증가하여 공격의 주요 잠재력이되고 있습니다. 모바일을 통해 웹 사이트에 액세스하면 공격이 더 자주 발생하여 데이터가 손상되기 쉽습니다.
따라서 침투 테스트는 해킹이나 데이터 손실의 걱정없이 사용자가 사용할 수있는 안전한 시스템을 구축하는 데 매우 중요합니다.
웹 침투 테스트 방법론
방법론은 테스트를 수행하는 방법에 대한 일련의 보안 업계 지침에 불과합니다. 테스트에 사용할 수있는 잘 확립되고 유명한 방법론과 표준이 있지만 각 웹 애플리케이션은 수행 할 테스트 유형이 다르기 때문에 테스터는 시장에서 사용할 수있는 표준을 참조하여 자신 만의 방법론을 만들 수 있습니다.
보안 테스트 방법 및 표준 중 일부는 다음과 같습니다.
- OWASP (웹 애플리케이션 보안 프로젝트 열기)
- OSSTMM (오픈 소스 보안 테스트 방법론 매뉴얼)
- PTF (침투 테스트 프레임 워크)
- ISSAF (정보 시스템 보안 평가 프레임 워크)
- PCI DSS (결제 카드 산업 데이터 보안 표준)
테스트 시나리오 :
다음은 테스트의 일부로 테스트 할 수있는 몇 가지 테스트 시나리오입니다. 웹 애플리케이션 침투 테스트 (WAPT) :
- 교차 사이트 스크립팅
- SQL 주입
- 손상된 인증 및 세션 관리
- 파일 업로드 결함
- 캐싱 서버 공격
- 잘못된 보안 구성
- 교차 사이트 요청 위조
- 암호 크래킹
목록을 언급했지만 테스터는 위의 기존 표준을 기반으로 맹목적으로 테스트 방법론을 만들어서는 안됩니다.
여기에예내가 왜 그렇게 말하는지 증명하기 위해.
전자 상거래 웹 사이트에 대한 침투 테스트를 요청 받았다고 생각하면 이제 전자 상거래 웹 사이트의 모든 취약점을 XSS, SQL 주입 등과 같은 OWASP의 기존 방법을 사용하여 식별 할 수 있는지 생각해보십시오.
전자 상거래는 다른 웹 사이트와 비교할 때 매우 다른 플랫폼 및 기술에서 작동하기 때문에 대답은 아니오입니다. 전자 상거래 웹 사이트에 대한 펜 테스트를 효과적으로 수행하기 위해 테스터는 주문 관리, 쿠폰 및 보상 관리, 지불 게이트웨이 통합 및 콘텐츠 관리 시스템 통합과 같은 결함을 포함하는 방법론을 설계해야합니다.
영화 4k에 대한 대체 스트리밍 영화 사이트
따라서 방법론을 결정하기 전에 테스트 할 웹 사이트 유형과 최대 취약점을 찾는 데 도움이되는 방법을 확인하십시오.
웹 침투 테스트 유형
웹 응용 프로그램은 두 가지 방법으로 침투 테스트를 수행 할 수 있습니다. 내부 또는 외부 공격을 시뮬레이션하도록 테스트를 설계 할 수 있습니다.
# 1) 내부 침투 테스트 –
이름에서 알 수 있듯이 내부 펜 테스트는 LAN을 통해 조직 내에서 수행되므로 인트라넷에서 호스팅되는 웹 응용 프로그램 테스트가 포함됩니다.
이는 기업 방화벽 내에 존재하는 취약점이 있는지 알아내는 데 도움이됩니다.
우리는 항상 공격이 외부에서만 발생할 수 있다고 믿으며 많은 시간의 내부 Pentest가 간과되거나 그다지 중요하지 않습니다.
기본적으로 여기에는 내부 보안 정책 및 암호를 알고 있지만 내부 보안 정책 및 암호를 알고있는 불만을 품은 직원 또는 계약자에 의한 악의적 인 직원 공격, 사회 공학 공격, 피싱 공격 시뮬레이션, 사용자 권한을 사용한 공격 또는 잠금 해제 된 터미널의 오용이 포함됩니다.
테스트는 주로 적절한 자격 증명없이 환경에 액세스하고
#두) 외부 침투 테스트 –
이러한 공격은 조직 외부에서 수행되는 공격이며 인터넷에서 호스팅되는 웹 애플리케이션 테스트를 포함합니다.
테스터는 내부 시스템을 잘 모르는 해커처럼 행동합니다.
자바 목록을 만드는 방법
이러한 공격을 시뮬레이션하기 위해 테스터에게는 대상 시스템의 IP가 제공되고 다른 정보는 제공되지 않습니다. 그들은 공개 웹 페이지를 검색 및 스캔하고 대상 호스트에 대한 정보를 찾은 다음 발견 된 호스트를 손상시켜야합니다.
기본적으로 테스트 서버, 방화벽 및 IDS가 포함됩니다.
웹 펜 테스트 접근 방식 :
3 단계로 진행할 수 있습니다.
# 1) 계획 단계 (테스트 전)
테스트를 시작하기 전에 수행 할 테스트 유형, 테스트 수행 방법, QA에 도구에 대한 추가 액세스가 필요한지 여부 등을 결정하는 것이 좋습니다.
- 범위 정의 – 이는 테스트 작업을 시작하기 전에 테스트 범위를 정의하는 기능 테스트와 동일합니다.
- 테스터에게 문서 가용성 – 테스터에게 웹 아키텍처, 통합 지점, 웹 서비스 통합 등을 자세히 설명하는 문서와 같은 모든 필수 문서가 있는지 확인합니다. 테스터는 HTTP / HTTPS 프로토콜 기본 사항을 알고 있어야하며 웹 애플리케이션 아키텍처, 트래픽 차단 방법에 대해 알고 있어야합니다.
- 성공 기준 결정 – 사용자 요구 사항 / 기능 요구 사항에서 예상 결과를 도출 할 수있는 기능 테스트 사례와 달리 펜 테스트는 다른 모델에서 작동합니다. 성공 기준 또는 테스트 케이스 통과 기준을 정의하고 승인해야합니다.
- 이전 테스트의 테스트 결과 검토 – 이전에 테스트를 수행 한 적이 있다면 테스트 결과를 검토하여 과거에 존재했던 취약점과 해결을 위해 어떤 수정 조치를 취했는지 이해하는 것이 좋습니다. 이것은 항상 테스터에 대한 더 나은 그림을 제공합니다.
- 환경 이해 – 테스터는 테스트를 시작하기 전에 환경에 대한 지식을 얻어야합니다. 이 단계는 테스트를 수행하기 위해 비활성화해야하는 방화벽 또는 기타 보안 프로토콜에 대한 이해를 제공해야합니다. 테스트 할 브라우저는 일반적으로 프록시를 변경하여 수행되는 공격 플랫폼으로 변환되어야합니다.
# 2) 공격 / 실행 단계 (테스트 중) :
웹 침투 테스트는 인터넷 제공 업체의 포트 및 서비스에 대한 제한이 없어야한다는 사실을 감안하면 어느 위치에서나 수행 할 수 있습니다.
- 다른 사용자 역할로 테스트를 실행해야합니다. 테스터는 다른 권한을 가진 사용자에 대해 시스템이 다르게 동작 할 수 있으므로 다른 역할을 가진 사용자로 테스트를 실행해야합니다.
- 악용 후 처리 방법에 대한 인식 – 테스터는 1 단계의 일부로 정의 된 성공 기준을 따라 악용을보고해야하며, 테스트 중에 발견 된 취약성을보고하는 정의 된 프로세스를 따라야합니다. 이 단계는 주로 테스터가 시스템이 손상되었음을 발견 한 후 수행해야 할 작업을 파악하는 것과 관련됩니다.
- 테스트 보고서 생성 – 적절한보고없이 수행 된 모든 테스트는 조직에 큰 도움이되지 않으며 웹 애플리케이션의 침투 테스트의 경우도 마찬가지입니다. 테스트 결과가 모든 이해 관계자와 올바르게 공유되도록하기 위해 테스터는 발견 된 취약점, 테스트에 사용 된 방법론, 심각도 및 발견 된 문제의 위치에 대한 세부 정보가 포함 된 적절한 보고서를 작성해야합니다.
# 3) 사후 실행 단계 (테스트 후) :
테스트가 완료되고 모든 관련 팀과 테스트 보고서가 공유되면 모두가 다음 목록을 작성해야합니다.
- 수정 제안 – 펜 테스트는 취약점을 식별하는 것만으로 끝나서는 안됩니다. QA 구성원을 포함한 관련 팀은 테스터가보고 한 결과를 검토 한 다음 수정 사항에 대해 논의해야합니다.
- 취약점 재 테스트 – 수정 조치를 취하고 구현 한 후 테스터는 수정 된 취약점이 재 테스트의 일부로 나타나지 않았는지 확인하기 위해 다시 테스트해야합니다.
- 정리 – Pentest의 일부로 테스터는 프록시 설정을 변경하므로 정리를 수행하고 모든 변경 사항을 되돌려 야합니다.
최고 침투 테스트 도구
이제 전체 기사를 이미 읽었으므로 이제 웹 애플리케이션에 대한 침투 테스트를 수행하는 방법과 방법에 대해 훨씬 더 잘 알고 있다고 생각합니다.
침투 테스트를 수동으로 수행 할 수 있습니까? 아니면 도구를 사용하여 자동화하여 항상 발생합니까? 의심 할 여지없이 여러분 대부분이 자동화라고 생각합니다. :)
자동화가 속도를 높이고, 수작업으로 인한 실수를 피하고, 뛰어난 적용 범위 및 기타 여러 이점을 방지하기 때문에 사실이지만 Pen Test에 관한 한 몇 가지 수동 테스트를 수행해야합니다.
수동 테스트는 비즈니스 로직과 관련된 취약점을 찾는 데 도움이되어 오탐을 줄입니다.
도구는 많은 오탐을 일으키는 경향이 있으므로 실제 취약점인지 확인하려면 수동 개입이 필요합니다.
또한 읽으십시오 - Acunetix WVS (Web Vulnerability Scanner) 도구를 사용하여 웹 애플리케이션 보안을 테스트하는 방법
테스트 작업을 자동화하기위한 도구가 만들어졌습니다. 아래에서 Pentest에 사용할 수있는 도구 목록을 찾으십시오.
더 많은 도구를 보려면 - 모든 침투 테스터를위한 37 개의 강력한 펜 테스트 도구
최고의 침투 테스트 회사
서비스 제공 업체는 조직의 테스트 요구에 맞는 서비스를 제공하는 회사입니다. 그들은 일반적으로 다양한 테스트 영역에서 탁월한 전문성을 보유하고 있으며 호스팅 된 테스트 환경에서 테스트를 수행 할 수 있습니다.
다음은 침투 테스트 서비스를 제공하는 일부 선도 기업입니다.
- PSC (결제 보안 준수)
- Netragard
- Securestate
- CoalFire
- HIGHBIT 보안
- Nettitude
- 360
- NetSPi
- ControlScan
- 스코 즈 미노 티
- 2 | 초
- 보안 평가
- 보안 감사 시스템
- Hacklabs
- CQR
일부 침투 테스트 인증 :
웹 앱 침투 인증에 대한 인증을 받고 싶다면 아래 인증을 선택할 수 있습니다.
- OSWE (공격적인 보안 웹 전문가)
- GWAPT (GIAC 웹 애플리케이션 침투 테스터)
- CWAPT (인증 된 웹 앱 침투 테스터)
- eWPT (elearnSecurity 웹 애플리케이션 침투 테스터)
결론
이 튜토리얼에서는 웹 애플리케이션에 대한 침투 테스트가 수행되는 방법에 대한 개요를 제공했습니다.
이 정보로 침투 테스터는 취약성 테스트를 시작할 수 있습니다.
이상적으로는 침투 테스트가 안전한 소프트웨어를 만드는 데 도움이 될 수 있습니다. 비용이 많이 드는 방법이므로 빈도를 1 년에 한 번 유지할 수 있습니다.
침투 테스트에 대한 자세한 내용은 아래 관련 기사를 참조하십시오.
- 웹 애플리케이션의 보안 테스트를위한 접근 방식
- 침투 테스트 – 샘플 테스트 케이스가 포함 된 완벽한 가이드
- 응용 프로그램 보안을 테스트하는 방법 – 웹 및 데스크톱 응용 프로그램 보안 테스트 기술
아래에서 Pentest에 대한 의견이나 경험을 공유하십시오.