• Home
  • 윈도우호스팅
  • SQL Injection 보안강화

최근 웹 보안 취약성을 이용하여 취약한 웹 서버의 데이터베이스를 손상시키는
SQL Injection 공격으로 인한 피해 사례가 늘어나고 있어 심각한 문제가 되고 있습니다.


검색 엔진을 통해 공격 대상을 수집하고, 취약한 웹 서버와 연계된 데이터베이스의 모든 테이블에 악성 스크립트를 삽입하는 유형이 많으며,
이는 자동으로 설계된 SQL Injection툴을 이용하여 보안에 취약한 서버들의 데이터 베이스를 주 타켓으로 공격하는 것이 특징입니다.

SQL Injection 공격을 받은 웹사이트는 데이터가 손상되는 피해를 입게 될 뿐만 아니라, 악성 스크립트가 실행되어 특정 웹사이트로의 연결 또는 악성코드를 내려 받게 될 수 있어 악용될 소지가 많습니다. 그와 더불어 공격방식도 쿠키를 이용하는 등 점점 진화해 가고 있어 웹 방화벽만으로 공격을 차단하는 데 한계가 있어, 추가적으로 웹서버가 아닌 SQL Server에서도 공격을 막을 수 있도록 추가적인 대책이 필요한 상황입니다.

신규 신청 고객의 경우 기존 사용자에게 부여하였던 dbo 권한을 제공하지 않습니다.
대신 db_datareader, db_datawriter, db_dlladmin 권한이 부여됩니다.

또한 sysobjects와 syscolumns를 추가적으로 MSSQL 2005에서는 sys.tables, sys.objects, sts.all_objects, sys.columns 개체에 대해
사용자에게 부여되었던 SELECT 권한을 제공하지 않습니다.

권한 설정 비교
일반 호스팅 닷넷피아
SELECT 권한 허 용 제 한
sys.tables
sys.objects
sys.all_objects
sys.columns
허 용
허 용
허 용
허 용
제 한
제 한
제 한
제 한
dbo 권한
허 용 제 한

※ 닷넷피아는 고객이 원하는 권한을 직접 회원전용사이트에서 관리할 수 있도록 권한 제어 기능을 제공합니다.
※ SELECT, dbo의 권한 제한으로 테이블에 대한 접근 권한을 막음으로써 테이블 및 칼럼 목록을 해커가 얻을 수 없도록 하는 강점을 가집니다.

회원 전용 사이트 [호스팅 계정 관리 > 계정정보] 메뉴의 [DB 서버 정보] 탭에 버튼이 추가되었습니다.

여기서 개체(테이블, 뷰, 저장프로시져 등)의 소유자를 「dbo ↔ 사용자」로 전환할 수 있습니다.
또한 사용자의 권한을 「일반사용자권한 ↔ dbo권한」로 전환하는 기능도 제공합니다.

사용자는 필요한 경우 자신에게 dbo 권한을 부여할 수 있지만, 이는 SQL Injection 공격에 취약하게 됨을 의미합니다!


※dbo 권한 이란?
- 데이터베이스 내의 모든 동작을 수행할 수 있는 내재된 권한을 갖고있습니다. (보안에 취약합니다.)
- sysobjects, stscolumns 등의 시스템테이블 SELECT 권한이 있습니다.

※일반 사용자 권한 이란?
- CREATE, DROP, SELECT, INSERT, UPDATE등의 쿼리 실행 권한만을 갖고 있습니다. (보안에 비교적 안전 합니다.)
- sysobjects, stscolumns 등의 시스템테이블 SELECT 권한이 제한 됩니다.

기존 이용 고객들의 경우 일괄적으로 sysobjects와 syscolumns 개체에 대해 사용자에게 부여되었던 SELECT 권한을 거부하도록 변경했습니다.
그러나 dbo 권한을 제거하는 것이 아니기 때문에 공격자가 거부했던 권한을 다시 줄 수 있는 문제가 있습니다.

dbo 권한을 빼기 위해서는 위에 설명한 페이지에서 더욱 쉽게 작업 하실 수 있습니다.

이 정책으로 인해 테이블 등 개체의 목록을 가져올 수 없기 때문에 MSSQL 2000에서 엔터프라이즈매니저(EM)나 MSSQL 2005의 SQL Server Management Studio의 사용에 일부 제한이 있으니 업무에 참고하시기 바랍니다.