본문 바로가기

QA 업무

[Netsparker] 보안 취약점 점검 도구

[사진1]

Netsparker란?

 

웹 애플리케이션 보안 스캐너

웹 애플리케이션과 서비스의 취약점을 식별하는 데 도움을 줍니다.

이 도구는 SQL 인젝션, (크로스사이트 스크립팅(XSS)- 셀레니움으로도 할 수 있음) 등 OWASP Top Ten 리스트에 정의된 다양한 보안 문제를 자동으로 스캔하여 찾아냅니다.

주요 기능

  1. 자동 스캐닝: Netsparker는 취약점 탐지를 자동화하여 수작업 테스트의 필요성을 줄입니다.
  2. 증명 기반 스캐닝: 발견된 취약점의 증거를 제공하여 보안 팀이 문제의 심각성과 영향을 이해하는 데 도움을 줍니다.
  3. 지속적인 스캐닝: 사용자는 정기적으로 스캔을 예약하여 보안 상태를 모니터링하고 관리할 수 있습니다.
  4. 통합 기능: 다양한 개발 및 보안 도구와 통합되어 기존 프로세스 내에서 원활한 워크플로를 제공합니다.
  5. url만 입력하면 OWASP TOP 10이나 XSS, SQL Injection, 가이드에 맞춰져 있어서 URL입력 후 클릭하면 보고서가 나오게 됨

단점 : 비용(천만원?!)

사용 사례 

  • 개발 팀: 웹 애플리케이션이 개발 주기 동안 안전한지 확인하기 위해 사용합니다.
  • 보안 전문가: 기존 애플리케이션의 보안 평가 및 감사를 수행하는 데 유용합니다.

new, 스케쥴 등등 존재하는 데, 보통은 new로 하면 됨 , URL입력 -> 보고서(사진1)가 나오게 됨 (유튜브 화면 캡처)
운영체제 선택, 리눅스 윈도우 환경 둘 다 체크 후 Next (유튜브 화면 캡처)
DB Server도 모두 다 체크 후 Next 버튼 클릭 (유튜브 화면 캡처)



*보고서 분석

검사 결과 (유튜브 화면 캡처)

 

보통의 경우 : 자기가 알아서 찾아줌, SQL 문을 URL, 로그인 입력필드에 다 넣음

사용자가 보기에는 GUI로 보지만 Netsparker로 보면 코드로 보기 때문에 자동으로 다 넣음(SQL 문을)
못 찾는 경우 : 자기가 아이디, PW 필드를 지정하면 (id값을 따오는 지, CSS값을 따오는지는 모르겠지만 따와줌)
- out-of-version : 바이러스가 버전에 따라서 접근할 수 있는지 없는지 중요하므로 최신버전으로 업데이트 해야 된다 -> (틀린 정보일수도 있음)
- 어떤 것을 보고 판단을 했는지 확인 가능함

- 보고서를 이 도구가 맞게 보안성 테스트를 했는지를 판단 후, 맞다면 개발자한테 문의 후 수정 요청
- 노란색 : 우선순위가 Medium, Low 

- 파란색 : 경고 

약한 암호가 사용됨을 확인할 수 있음
어떻게 조치를 취해야 하는지 까지 나타남

- 로그인 ID/PW CSS/WS정보 분석

- 결과값 가지고 직접 SQL Injection, XSS도 해보고, 개발자하고 소통도 하고

보안성 도구의 프로세스를 발전시켰다. 

직접 해본 결과, 검사 속도가 엄청 느려서 답답함을 느낌, 대부분 Netsparker pc는 별도로 있다고 함(보안성 테스트 전용 pc가 있으면 좋을 듯함)

 

누락된 X 프레임 옵션 해더

 

 

- Netsparker는 조직이 보안 조치를 강화하고 PCI DSS 또는 ISO 27001과 같은 표준 준수를 보장하는 데 인기가 있습니다.

 

대책 이 페이지가 모든 사람이 액세​​스 할 수 있도록 의도되어있는 경우, 어떤 조치를 취할 필요가 없습니다. 그렇지 않으면 이 헤더를 설정하고 외부 도매인을 허용하기 위하여 아래의 서로 아키텍처에 대한 가이드 라인을 따르십시오. 아파치 서버 설정(보통 httpd.conf 또는 apache.conf에 위치)의 <directory>, <location>, <files> 또는<virtualhost> 섹션 또는.htaccess 파일 내에 다음 라인을 추가하십시오.Header set Access-Control-Allow-Origin "domain"IIS6 Open Internet Information Service (IIS) Manager 당신이 CORS를 활성화 하고 싶은 사이트를 우클릭하고 속성으로 가십시오. HTTP 헤더 탭으로 변경 사용자 정의 HTTP 헤더 섹션에서 추가를 클릭합니다 헤더 이름으로 Access-Control-Allow-Origin를 입력 헤더값으로 domain을 입력하십시오. IIS7 응용 프로그램이나 사이트의 루트에 있는 Web.config 파일에 다음 XML을 병합하십시오 :<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.webserver> <httpprotocol> <customheaders> <add name="Access-Control-Allow-Origin" value="domain" /> </customheaders> </httpprotocol> </system.webserver> </configuration>

=> GPT 해석 보기

 

더 자세한 정보는 Netsparker 공식 웹사이트를 방문

 

 

*기업용 sw, 사용 방법 유튜브 참고

*ISO/IEC 25023을 표준

  소프트웨어 제품의 품질을 측정하기 위한 국제 표준

  시스템 및 소프트웨어 제품 품질 요구사항 및 평가 (SQuaRE) - 품질 측정 요소에 관한 내용을 다룸.

  이는 소프트웨어와 시스템의 품질 속성을 평가하고, 이를 측정하기 위한 지표를 정의한 표준


Salting이란?

주로 데이터 보안 및 암호화 분야에서 사용되는 기법

해시 함수와 결합하여 암호화된 비밀번호를 저장할 때 보안을 강화하는 데 사용

Salting의 기본 아이디어는 사용자 비밀번호에 무작위 데이터를 추가(즉, 'salt' 추가)하여 해시를 생성하는 것입니다.

주요 특징

  1. 해시 함수: Salting은 비밀번호를 해시할 때 사용됩니다. 해시 함수는 임의의 길이 데이터를 고정된 길이의 데이터로 변환하는 함수입니다. 해시 값은 원본 데이터로부터 쉽게 복구할 수 없도록 설계되었습니다.
  2. 무작위성: Salt는 무작위로 생성된 데이터로, 각 사용자마다 고유한 값을 갖습니다. 이는 같은 비밀번호가 여러 사용자에게 사용될 때, 각 사용자의 해시 값이 다르게 만들어지도록 합니다.
  3. 보안 강화: Salting은 여러 가지 공격으로부터 보호합니다. 예를 들어, 동일한 비밀번호가 여러 사용자에게 사용될 경우, salt가 다르기 때문에 해시 값이 달라지므로, 해시 테이블을 이용한 공격(예: 레인보우 테이블 공격)으로부터 방어할 수 있습니다.

예시

예를 들어, 사용자의 비밀번호가 "password123"라고 가정하고, 무작위로 생성된 salt가 "abc123"일 때, 해시는 다음과 같이 생성될 수 있습니다:

  • Salted 비밀번호: "abc123password123"
  • 해시 함수 적용: hash("abc123password123")

이렇게 생성된 해시는 데이터베이스에 저장되며, 로그인 시 사용자가 입력한 비밀번호에 동일한 salt를 추가하여 해시를 비교합니다.

결론

Salting은 데이터 보안에서 비밀번호 저장을 안전하게 만들기 위한 효과적인 방법

이를 통해 해시 값이 동일하더라도 원본 비밀번호가 다르게 보일 수 있도록 하여, 해킹이나 데이터 유출의 위험을 줄여줌.

1234 / 562234312312 비밀번호로 설정된 암호값이 aes-16인지 아니면, 평문인데 여기에 솔팅값을 넣은 건지 해커는 모름. 따라서 보안성 강화를 위해 솔팅값을 넣는 것이 중요하다.

 

=> 글자수가  256자, 512자인 경우 뒤에 16자 또는 32자 salting값을 넣게 되어 257자(한자리만 추가)만 되어도 헷갈림
=> salting 앞에 넣을수도 있고 뒤에 넣을수도 있어서 경우의 수가 굉장히 많아짐
=> 앞에 한자리냐, 뒤에 한 자리냐 256자인데 몇 자를 더 추가했느냐 512자가 aes-512, 256 모른다


Netsparker와 비슷한 도구

1. Fiddler

2. Burp Suite

  • Burp Suite는 웹 애플리케이션 보안 테스트를 위한 종합 도구
  • 페네트레이션 테스터(Penetration Tester)들에게 널리 사용
  • 자동화된 스캔 도구뿐만 아니라 수동 테스트를 위한 다양한 기능도 제공하여, 취약점 발견과 분석에 적합
  • 범용성이 굉장히 넓음
  • 주요 기능: 웹 애플리케이션의 취약점 스캐닝, 트래픽 분석, SQL 인젝션, XSS 탐지, 강력한 페이로드 생성 및 분석 기능

3. Wireshark (네트워크 분석 및 모니터링을 위한 오픈 소스 도구)

  • 네트워크 트래픽을 실시간으로 캡처하고 분석하는 데 사용
  • 네트워크 엔지니어, 보안 전문가, 그리고 IT 관리자가 네트워크의 성능과 보안을 확인하고 문제를 진단하는 데 사용
    • 주요 기능
      • 네트워크 패킷 캡처: Wireshark는 네트워크 상의 패킷을 실시간으로 캡처하여 상세한 정보를 분석할 수 있습니다.
      • 프로토콜 분석: 다양한 네트워크 프로토콜을 지원하며, 각 패킷의 상세한 헤더와 데이터를 분석합니다.
      • 네트워크 트래픽 모니터링: 실시간 네트워크 트래픽을 모니터링하고 특정 패킷이나 통신의 흐름을 추적할 수 있습니다.
      • 필터링 및 검색: 특정 트래픽만을 선택적으로 분석할 수 있도록 강력한 필터링 기능을 제공합니다.
      • 그래픽 인터페이스: 직관적인 그래픽 인터페이스를 통해 비전문가도 쉽게 사용할 수 있으며, 캡처한 데이터를 다양한 형식으로 저장하고 공유할 수 있습니다.
  • 사용 사례
    • 네트워크 문제 해결: 지연, 연결 끊김 등 네트워크 관련 문제를 진단하고 해결
    • 보안 분석: 의심스러운 트래픽이나 해킹 시도를 탐지하고 분석
    • 프로토콜 개발: 새롭게 개발된 네트워크 프로토콜의 테스트 및 분석

Wireshark는 강력하면서도 사용자 친화적인 네트워크 분석 도구로, 많은 보안 및 네트워크 전문가들에게 필수적인 툴로 자리잡았습니다.

4. avalanche(포트를 사용해서 부하테스트 자동화 도구)


*OWASP TOP 10이란?

웹 애플리케이션 보안에서 가장 흔히 발생하는 취약점 목록을 제시하는 **비영리 단체 OWASP(Open Web Application Security Project)**에서 발표하는 가이드라인

이 리스트는 웹 애플리케이션 보안 전문가들이 주기적으로 업데이트하며, 보안 취약점의 심각성, 발생 빈도, 잠재적 영향 등을 고려해 선정됩니다.

주요 목표는 개발자, 보안 전문가, 기업들이 보안 문제에 대해 인식하고 이를 방지하기 위한 조치를 취할 수 있도록 돕는 것

OWASP Top 10 (2021 버전 기준)

  1. Broken Access Control (취약한 접근 제어): 권한 없는 사용자가 민감한 데이터에 접근하거나 특정 기능을 사용할 수 있는 문제.
  2. Cryptographic Failures (암호화 실패): 민감한 데이터를 보호하지 못하거나 안전하지 않은 암호화 방법을 사용하는 경우.
  3. Injection (인젝션): 공격자가 SQL, NoSQL, OS 명령어 등을 삽입하여 시스템을 손상시키는 공격.
  4. Insecure Design (불안전한 설계): 보안 설계나 보호 메커니즘이 부족한 시스템.
  5. Security Misconfiguration (보안 설정 오류): 기본 설정 사용, 잘못된 보안 설정으로 인한 취약점.
  6. Vulnerable and Outdated Components (취약하거나 오래된 구성 요소): 패치되지 않은 소프트웨어 또는 취약점이 있는 라이브러리 사용.
  7. Identification and Authentication Failures (인증 및 식별 실패): 비정상적인 인증 과정 또는 약한 비밀번호 정책으로 인한 취약점.
  8. Software and Data Integrity Failures (소프트웨어 및 데이터 무결성 실패): 서명되지 않거나 무결성이 확인되지 않은 코드 또는 데이터 사용.
  9. Security Logging and Monitoring Failures (보안 로깅 및 모니터링 실패): 보안 관련 사건이 감지되지 않거나 로그가 적절히 관리되지 않음.
  10. Server-Side Request Forgery (SSRF): 서버가 신뢰하지 않는 외부 리소스에 HTTP 요청을 보내는 취약점.

'QA 업무' 카테고리의 다른 글

[CI/CD]Jenkins  (0) 2024.11.11
[Katalon Studio] 캐털런 스튜디오  (3) 2024.11.11
[Linux] 우분투 설치  (3) 2024.08.08
Putty 사용법 - 1  (0) 2024.07.29
Linux 로그 확인 - 1  (0) 2024.07.28