web application security testing guide
좋은 이메일 공급자는 무엇입니까
웹 애플리케이션에 저장된 엄청난 양의 데이터와 웹에서 트랜잭션 수가 증가함에 따라 웹 애플리케이션에 대한 적절한 보안 테스트가 날마다 매우 중요 해지고 있습니다.
이 도움말에서는 웹 사이트 보안 테스트에서 사용되는 주요 용어와 테스트 접근 방식에 대해 자세히 알아 봅니다.
학습 내용 :
보안 테스트 란 무엇입니까?
보안 테스트 여부를 확인하는 프로세스입니다 기밀 데이터는 기밀로 유지되는지 여부 (즉, 개인 / 실체에 노출되지 않으며 사용자는 수행 권한이있는 작업 만 수행 할 수 있습니다.
예를 들어 사용자가 다른 사용자에게 웹 사이트의 기능을 거부 할 수 없거나 의도하지 않은 방식으로 웹 애플리케이션의 기능을 변경할 수 없어야합니다.
보안 테스트에 사용되는 몇 가지 주요 용어
계속 진행하기 전에 웹 애플리케이션 보안 테스트에서 자주 사용되는 몇 가지 용어에 익숙해지는 것이 유용 할 것입니다.
'취약점'이란 무엇입니까?
이것이 웹 애플리케이션의 약점입니다. 이러한 '약점'의 원인은 응용 프로그램의 버그, 주입 (SQL / 스크립트 코드) 또는 바이러스의 존재 때문일 수 있습니다.
'URL 조작'이란 무엇입니까?
일부 웹 응용 프로그램은 URL에서 클라이언트 (브라우저)와 서버간에 추가 정보를 전달합니다. URL의 일부 정보를 변경하면 때때로 서버에서 의도하지 않은 동작이 발생할 수 있으며이를 URL 조작 .
'SQL 주입'이란 무엇입니까?
이것은 웹 애플리케이션 사용자 인터페이스를 통해 SQL 문을 서버에서 실행되는 일부 쿼리에 삽입하는 프로세스입니다.
'XSS (Cross-Site Scripting)'란 무엇입니까?
사용자가 웹 애플리케이션의 사용자 인터페이스에 HTML / 클라이언트 측 스크립트를 삽입하면이 삽입이 다른 사용자에게 표시되며 다음과 같이 표시됩니다. XSS .
'스푸핑'이란 무엇입니까?
가짜와 유사한 웹 사이트 또는 이메일의 생성을 스푸핑 .
권장 보안 테스트 도구
# 1) Acunetix
네트워크 보안 키 불일치 란 무엇입니까
Acunetix 엔드-투-엔드 웹 애플리케이션 보안 스캐너입니다. 조직의 보안에 대한 360도 뷰를 제공합니다. SQL 인젝션, XSS, Weak Password 등과 같은 6500 가지 유형의 취약점을 탐지 할 수 있습니다. 복잡한 다단계 양식을 스캔하기 위해 고급 매크로 기록 기술을 사용합니다.
이 플랫폼은 직관적이고 사용하기 쉽습니다. 전체 스캔과 증분 스캔을 예약하고 우선 순위를 지정할 수 있습니다. 내장 된 취약성 관리 기능이 포함되어 있습니다. Jenkins와 같은 CI 도구의 도움으로 새 빌드를 자동으로 스캔 할 수 있습니다.
# 2) Kiuwan
SDLC의 모든 단계에서 코드의 취약성을 찾아 수정합니다.
Kiuwan OWASP, CWE, SANS 25, HIPPA 등을 포함한 가장 엄격한 보안 표준을 준수합니다.개발 중 즉각적인 피드백을 위해 Kiuwan을 IDE에 통합하십시오. Kiuwan은 모든 주요 프로그래밍 언어를 지원하고 주요 DevOps 도구와 통합됩니다.
=> 무료로 코드 스캔
보안 테스트 접근 방식
웹 애플리케이션의 유용한 보안 테스트를 수행하려면 보안 테스터가 HTTP 프로토콜에 대한 충분한 지식을 가지고 있어야합니다.
클라이언트 (브라우저)와 서버가 HTTP를 사용하여 통신하는 방법을 이해하는 것이 중요합니다.
또한 테스터는 최소한 SQL 주입 및 XSS의 기본 사항을 알고 있어야합니다.
바라건대, 웹 애플리케이션에 존재하는 보안 결함의 수가 많지 않을 것입니다. 그러나 필요한 모든 세부 정보와 함께 모든 보안 결함을 정확하게 설명 할 수 있으면 확실히 도움이 될 것입니다.
웹 보안 테스트 방법
# 1) 암호 크래킹
보안 테스트는 웹 애플리케이션 “비밀번호 크래킹”으로 시작될 수 있습니다. 응용 프로그램의 비공개 영역에 로그인하기 위해 사용자 이름 / 암호를 추측하거나 동일한 암호 크래커 도구를 사용할 수 있습니다. 일반적인 사용자 이름 및 암호 목록은 오픈 소스 암호 크래커와 함께 사용할 수 있습니다.
웹 응용 프로그램이 복잡한 암호를 적용하지 않는 경우 ( 예를 들어 알파벳, 숫자 및 특수 문자 또는 최소한 필요한 수의 문자 포함) 사용자 이름과 비밀번호를 해독하는 데 오래 걸리지 않을 수 있습니다.
사용자 이름이나 암호가 암호화되지 않고 쿠키에 저장되면 공격자는 다른 방법을 사용하여 쿠키와 사용자 이름 및 암호와 같이 쿠키에 저장된 정보를 훔칠 수 있습니다.
자세한 내용은 ' 웹 사이트 쿠키 테스트 ”.
# 2) HTTP GET 메서드를 통한 URL 조작
테스터는 애플리케이션이 쿼리 문자열의 중요한 정보를 전달하는지 여부를 확인해야합니다. 이는 애플리케이션이 HTTP GET 메소드를 사용하여 클라이언트와 서버간에 정보를 전달할 때 발생합니다.
정보는 쿼리 문자열의 매개 변수를 통해 전달됩니다. 테스터는 쿼리 문자열의 매개 변수 값을 수정하여 서버가이를 수락하는지 확인할 수 있습니다.
HTTP GET 요청을 통해 사용자 정보는 인증 또는 데이터 가져 오기를 위해 서버로 전달됩니다. 공격자는 필요한 정보를 얻거나 데이터를 손상시키기 위해이 GET 요청에서 서버로 전달되는 모든 입력 변수를 조작 할 수 있습니다. 이러한 상황에서 응용 프로그램 또는 웹 서버의 비정상적인 동작은 공격자가 응용 프로그램에 침입 할 수있는 통로가됩니다.
# 3) SQL 주입
확인해야 할 다음 요소는 SQL 주입입니다. 텍스트 상자에 작은 따옴표 (‘)를 입력하면 응용 프로그램에서 거부해야합니다. 대신 테스터가 데이터베이스 오류를 발견하면 사용자 입력이 일부 쿼리에 삽입 된 다음 애플리케이션에서 실행됨을 의미합니다. 이 경우 애플리케이션은 SQL 인젝션에 취약합니다.
SQL 주입 공격은 공격자가 서버 데이터베이스에서 중요한 정보를 얻을 수 있으므로 매우 중요합니다. 웹 애플리케이션에 대한 SQL 삽입 진입 점을 확인하려면 일부 사용자 입력을 받아 데이터베이스에서 직접 MySQL 쿼리가 실행되는 코드베이스에서 코드를 찾습니다.
SQL 시험 질문 및 답변 pdf
사용자 입력 데이터가 데이터베이스를 쿼리하기 위해 SQL 쿼리로 제작 된 경우 공격자는 SQL 문 또는 SQL 문의 일부를 사용자 입력으로 삽입하여 데이터베이스에서 중요한 정보를 추출 할 수 있습니다. 공격자가 응용 프로그램을 성공적으로 중단하더라도 브라우저에 표시되는 SQL 쿼리 오류에서 공격자는 원하는 정보를 얻을 수 있습니다.
사용자 입력의 특수 문자는 이러한 경우 적절하게 처리 / 이스케이프되어야합니다.
# 4) 크로스 사이트 스크립팅 (XSS)
테스터는 웹 애플리케이션에서 XSS (사이트 간 스크립팅)를 추가로 확인해야합니다. 모든 HTML 예를 들어 또는 모든 스크립트 예를 들어 응용 프로그램에서 수락해서는 안됩니다. 그렇다면 응용 프로그램은 크로스 사이트 스크립팅의 공격을 받기 쉽습니다.
공격자는이 방법을 사용하여 피해자의 브라우저에서 악성 스크립트 또는 URL을 실행할 수 있습니다. 교차 사이트 스크립팅을 사용하여 공격자는 JavaScript와 같은 스크립트를 사용하여 쿠키에 저장된 사용자 쿠키 및 정보를 훔칠 수 있습니다.
많은 웹 애플리케이션은 유용한 정보를 얻고 다른 페이지의 일부 변수에이 정보를 전달합니다.
예를 들어 http://www.examplesite.com/index.php?userid=123 &질문 = xyz
공격자는 일부 악성 입력 또는 브라우저에서 중요한 사용자 / 서버 데이터를 탐색 할 수있는 '& query'매개 변수를 쉽게 전달할 수 있습니다.
중대한: 보안 테스트 중에 테스터는 다음 사항을 수정하지 않도록 매우주의해야합니다.
- 응용 프로그램 또는 서버 구성
- 서버에서 실행되는 서비스
- 애플리케이션에서 호스팅하는 기존 사용자 또는 고객 데이터
또한 프로덕션 시스템에서는 보안 테스트를 피해야합니다.
결론
보안 테스트의 목적은 웹 애플리케이션의 취약성을 발견하여 개발자가 애플리케이션에서 이러한 취약성을 제거하고 무단 작업으로부터 웹 애플리케이션과 데이터를 안전하게 만들 수 있도록하는 것입니다.
추천 도서 => SAST / DAST / IAST / RASP의 차이점
이 기사에 대한 의견 / 제안을 자유롭게 공유하십시오.