데이터베이스 테스트 – 보안

데이터베이스 보안 테스트는 보안 메커니즘의 허점을 찾고 데이터베이스 시스템의 취약성 또는 약점을 찾기 위해 수행됩니다.

데이터베이스 보안 테스트의 주요 목표는 시스템의 취약점을 찾아 내고 잠재적 인 침입자로부터 데이터와 리소스를 보호하는지 여부를 확인하는 것입니다. 보안 테스트는 정기적으로 수행 될 때 잠재적 인 취약성을 효과적으로 식별하는 방법을 정의합니다.

다음은 데이터베이스 보안 테스트를 수행하는 주요 목표입니다.

  • Authentication
  • Authorization
  • Confidentiality
  • Availability
  • Integrity
  • Resilience

데이터베이스 시스템의 위협 유형

SQL 주입

악성 SQL 문이 데이터베이스 시스템에 삽입되고 데이터베이스 시스템에서 중요한 정보를 얻기 위해 실행되는 데이터베이스 시스템에서 가장 일반적인 유형의 공격입니다. 이 공격은 사용자 응용 프로그램 구현의 허점을 이용합니다. 이를 방지하려면 사용자 입력 필드를 신중하게 처리해야합니다.

데이터베이스의 권한 상승

이 공격에서 사용자는 이미 데이터베이스 시스템에 일부 액세스 권한이 있으며 데이터베이스 시스템에서 일부 무단 활동을 수행 할 수 있도록이 액세스 권한을 더 높은 수준으로 올리려고합니다.

서비스 거부

이러한 유형의 공격에서 공격자는 합법적 인 사용자가 데이터베이스 시스템 또는 응용 프로그램 리소스를 사용할 수 없도록 만듭니다. 응용 프로그램은 응용 프로그램, 때로는 전체 시스템을 사용할 수 없게 만드는 방식으로 공격을받을 수도 있습니다.

데이터에 대한 무단 액세스

또 다른 유형의 공격은 애플리케이션 또는 데이터베이스 시스템 내의 데이터에 대한 무단 액세스를 확보하는 것입니다. 무단 액세스에는 다음이 포함됩니다.

  • 사용자 기반 애플리케이션을 통한 데이터 무단 액세스
  • 타인의 접근을 감시하여 무단 접근
  • 재사용 가능한 클라이언트 인증 정보에 대한 무단 액세스

신원 스푸핑

ID 스푸핑에서 해커는 사용자 또는 장치의 자격 증명을 사용하여 네트워크 호스트에 대한 공격을 시작하고 데이터를 도용하거나 데이터베이스 시스템에 대한 액세스 제어를 우회합니다. 이 공격을 방지하려면 IT 인프라 및 네트워크 수준의 완화가 필요합니다.

데이터 조작

데이터 조작 공격에서 해커는 데이터를 변경하여 이점을 얻거나 데이터베이스 소유자의 이미지를 손상시킵니다.

데이터베이스 보안 테스트 기술

침투 테스트

침투 테스트는 보안 허점을 찾아 잠재적으로 컴퓨터 시스템, 기능 및 데이터에 대한 액세스 권한을 얻으려는 의도로 컴퓨터 시스템에 대한 공격입니다.

위험 찾기

위험 찾기는 손실 유형 및 취약성 발생 가능성과 관련된 위험을 평가하고 결정하는 프로세스입니다. 이는 다양한 인터뷰, 토론 및 분석을 통해 조직 내에서 결정됩니다.

SQL 주입 테스트

애플리케이션 필드에서 사용자 입력을 확인하는 작업이 포함됩니다. 예를 들어 ','또는 ';'과 같은 특수 문자를 입력합니다. 사용자 응용 프로그램의 모든 텍스트 상자에 허용되지 않아야합니다. 데이터베이스 오류가 발생하면 일부 쿼리에 사용자 입력이 삽입되어 응용 프로그램에서 실행됨을 의미합니다. 이 경우 애플리케이션은 SQL 인젝션에 취약합니다.

이러한 공격은 공격자가 서버 데이터베이스의 중요한 정보에 액세스 할 수 있으므로 데이터에 큰 위협이됩니다. 웹 애플리케이션에 대한 SQL 삽입 진입 점을 확인하려면 일부 사용자 입력을 수락하여 데이터베이스에서 직접 MySQL 쿼리가 실행되는 코드베이스에서 코드를 찾습니다.

대괄호, 쉼표 및 인용 부호에 대해 SQL 주입 테스트를 수행 할 수 있습니다.

암호 크래킹

이것은 데이터베이스 시스템 테스트를 수행하는 동안 가장 중요한 검사입니다. 중요한 정보에 액세스하기 위해 해커는 암호 해독 도구를 사용하거나 일반적인 사용자 이름 / 암호를 추측 할 수 있습니다. 이러한 일반적인 암호는 인터넷에서 쉽게 사용할 수 있으며 암호 크래킹 도구도 자유롭게 존재합니다.

따라서 테스트시 암호 정책이 시스템에 유지되고 있는지 확인해야합니다. 은행 및 금융 애플리케이션의 경우 모든 중요 정보 데이터베이스 시스템에 엄격한 암호 정책을 설정해야합니다.

데이터베이스 시스템의 보안 감사

보안 감사는 필요한 표준을 준수하는지 여부를 결정하기 위해 정기적으로 회사의 보안 정책을 평가하는 프로세스입니다. 비즈니스 요구 사항에 따라 다양한 보안 표준을 따라 보안 정책을 정의한 다음 해당 표준에 대해 설정된 정책을 평가할 수 있습니다.

가장 일반적인 보안 표준의 예는 ISO 27001, BS15999 등입니다.

데이터베이스 보안 테스트 도구

OS 및 애플리케이션 검사를 테스트하는 데 사용할 수있는 다양한 시스템 테스트 도구가 출시되어 있습니다. 가장 일반적인 도구 중 일부는 아래에서 설명합니다.

Zed 공격 프록시

웹 애플리케이션의 취약점을 찾기위한 침투 테스트 도구입니다. 광범위한 보안 경험을 가진 사람들이 사용하도록 설계되었으므로 침투 테스트를 처음 사용하는 개발자 및 기능 테스터에게 이상적입니다. Windows, Linux, Mac OS에서 일반적으로 사용됩니다.

파로스

쿠키 및 양식 필드를 포함하여 서버와 클라이언트 간의 모든 HTTP 및 HTTPS 데이터는 이러한 스캐너를 사용하여 가로 채고 수정할 수 있습니다. 크로스 플랫폼, Java JRE / JDK 1.4.2 이상에서 사용됩니다.

사회 엔지니어 툴킷

오픈 소스 도구이며 시스템 요소가 아닌 인간 요소가 공격을받습니다. 공격 코드가 포함 된 이메일, 자바 애플릿 등을 보낼 수 있습니다. Linux, Apple Mac OS X 및 Microsoft Windows에 권장됩니다.

가다랑어

이 도구는 사이트에서 취약점을 검색하는 데 사용됩니다. 도구에서 생성 된 보고서는 전문 웹 애플리케이션 보안 평가의 기초 역할을합니다. Linux, FreeBSD, MacOS X 및 Windows에서 선호됩니다.

Vega

웹 애플리케이션에서 SQL 주입, 교차 사이트 스크립팅 (XSS) 및 기타 취약성의 인스턴스를 찾는 데 사용되는 오픈 소스, 다중 플랫폼 웹 보안 도구입니다. Java, Linux 및 Windows에서 선호됩니다.

와피 티

Wapiti는 웹 애플리케이션의 웹 페이지를 스캔하고 데이터를 삽입 할 수있는 스크립트와 양식을 확인하는 오픈 소스 및 웹 기반 도구입니다. Python으로 빌드되었으며 파일 처리 오류, 데이터베이스, XSS, LDAP 및 CRLF 삽입, 명령 실행 감지를 감지 할 수 있습니다.

웹 스카라 베

Java로 작성되었으며 HTTP / HTTPS 프로토콜을 통해 통신하는 애플리케이션을 분석하는 데 사용됩니다. 이 도구는 주로 직접 코드를 작성할 수있는 개발자를 위해 설계되었습니다. 이 도구는 OS에 종속되지 않습니다.