본문 바로가기

security/해킹 보안

SQL 방화벽이 내장된 오라클 데이터베이스 23C

이제 Oracle Database 23c에 SQL 방화벽이 내장되었습니다.

1990년대 초기에 웹해킹 기술이 발전하기 시작한 이후로 웹 애플리케이션을 통한 다양한 공격기술이 발전되고 사용되어 왔습니다.
웹 해킹을 차단하기 위해서는 근원적으로 시큐어코딩을 적용해야 하지만, 웹 방화벽(WAF)이라는 새로운 솔루션을 통해 방어를 했고,
수년전부터는 시큐어코딩 기술을 이용하여 다양한 애플리케이션에 대한 보안 위협을 차단하고 있습니다.
그럼에도 불구하고 SQL 인젝션 공격과 XSS/CSRF 같은 기술은 여전히 공격의 위험도가 높고 실제 SQL 인젝션의 경우 데이터 노출로 인해 더욱더 민감하다 할 수 있습니다.

SQL 인젝션과 계정 탈취는 공격자가 데이터베이스에 저장된 중요한 데이터에 대한 전체 액세스 권한을 얻기 위해 사용하는 가장 일반적인 두 가지 기술입니다. 사용자 및 개발자 교육이 보안 강화에 도움이 되었지만 여전히 공격자들은 다양한 공격에서 성공적으로 데이터를 탈취하고 있습니다.

어떤 경우, 패키지 또는 레거시 애플리케이션의 경우 애플리케이션 코드를 수정하는 것이 불가능할 수 있고. WAF(웹 애플리케이션 방화벽)는 SQL 인젝션 공격을 차단할 수 있다고 주장하지만, 공격자는 패턴 우회 접근 방식을 이용할 수 있습니다. 
룰 기반의 네트워크 방화벽 및 DB 방화벽은 어느 정도 방어를 할 수 있는 기능을 제공하지만 로컬 및 암호화된 트래픽에는 제공되지 않습니다. 게다가 SQL 쿼리를 완전히 분석하는 데 필요한 전체 런타임 컨텍스트를 제공하지 않습니다.

데이터베이스에 저장되는 데이터의 중요성이 높다는 점을 고려하면, 출처에 상관없이 모든 SQL 트래픽을 예외 없이 종합적으로 검사하는 SQL 방화벽이 필요합니다. 적용 여부는 전체 컨텍스트를 통해 SQL을 이해하는 방화벽의 능력에 달려 있습니다. 이 컨텍스트는 동의어, 개체 이름 또는 동적으로 생성된 이름 및 현재 사용자 컨텍스트를 확인하는 단계를 포함하여 SQL 문을 실행하는 동안 데이터베이스가 구축하는 것입니다. 보안이 실용적이려면 방화벽이 유선 속도로 이상적으로 실행되어야 하며 하나의 데이터베이스뿐만 아니라 여러 데이터베이스에 대한 관리 및 모니터링이 쉬워야 합니다.

Oracle Database 23c의 SQL 방화벽 통합

SQL방화벽을 통합하고, 성능에 최소한의 영향을 미친다고 하네요.

 

Oracle SQl Firewall 은 다은과 같은 장점을 제공한다고 합니다.

- Oracle SQL Firewall은 PL/SQL(Oracle의 SQL에 대한 절차적 확장)을 포함하여 로컬 또는 네트워크, 암호화된 텍스트 또는 일반 텍스트 등 들어오는 모든 데이터베이스 연결과 SQL 문을 검사합니다. 명시적으로 권한이 부여된 SQL만 허용합니다. 다른 모든 SQL의 경우 잘못된 명령문을 기록하고 위반을 발생시킵니다. 이 명령문은 SQL 주입 공격일 수도 있고 권한 있는 사용자가 이전에 실행한 적이 없는 새로운 SQL 문일 수도 있습니다.


- 고객은 승인되지 않은 SQL을 차단할지 아니면 기록만 할지 결정할 수 있으므로 공격 처리 방법에 대한 유연성을 얻을 수 있습니다.

 

- Oracle SQL Firewall은 전체 SQL과 처리 컨텍스트를 평가합니다. 방화벽은 Oracle 데이터베이스 서버 내에서 실행함으로써 SQL 문, 동의어, 동적으로 생성된 개체 이름 및 PL/SQL 단위에서 동적으로 생성된 모든 SQL 문의 인코딩을 쉽게 처리합니다.

 

- Oracle SQL Firewall은 인증된 SQL 문 및 관련 신뢰할 수 있는 데이터베이스 연결 경로의 허용 목록을 사용하는 동시에 나머지는 차단합니다. 애플리케이션 계정에 대해 인증된 SQL 문을 캡처하기만 하면 SQL 방화벽을 훈련할 수 있습니다. 이후 방화벽은 승인되지 않은 SQL 및 잠재적인 SQL 주입 공격을 탐지하고 방지합니다.

 

- Oracle SQL Firewall은 신뢰할 수 있는 IP 주소, 운영 체제 사용자 이름 또는 프로그램 이름에서 오지 않는 연결도 차단할 수 있습니다. 이 기능은 애플리케이션에 대한 허용 목록을 생성하는 동안 즉시 일부 보호 기능을 적용하려는 경우에 유용합니다. 이 기능은 데이터베이스에 대한 모든 직접 액세스가 신뢰할 수 있는 엔드포인트에서만 이루어지도록 보장합니다.

데이터베이스 내부에 Oracle SQL Firewall을 구축하고 구현을 간소화함으로써 Oracle SQL Firewall의 성능 오버헤드는 무시할 수 있으므로 모든 프로덕션 워크로드에 적합합니다. Oracle SQL Firewall은 데이터베이스 내부에 있기 때문에 외부 구성 요소를 배포하거나 관리할 필요가 없으므로 배포가 크게 단순화됩니다.

그림 1은 Oracle SQL Firewall이 Oracle Database 23c 커널 내에서 인라인으로 작동하여 원본에 관계없이 들어오는 모든 SQL 문을 평가하는 방법을 보여줍니다. Oracle SQL Firewall은 규칙 위반을 감지하면 항상 위반 로그를 생성합니다. 그러나 위반하는 SQL 문을 허용하거나 차단하도록 SQL 방화벽을 구성할 수 있습니다.

Oracle SQL Firewall이 내장된 Oracle 데이터베이스용 커널을 보여주는 그래픽입니다.

 


그림 1: Oracle Database 커널에 구축된 Oracle SQL Firewall


Oracle SQL 방화벽 관리


Oracle SQL 방화벽 정책은 애플리케이션 계정이든 직접 데이터베이스 사용자(예: 보고 사용자 또는 데이터베이스 관리자)이든 데이터베이스 계정 수준에서 작동합니다. 이러한 유연성을 통해 데이터베이스 관리자 또는 응용 프로그램 계정부터 시작하여 데이터베이스의 보호 수준을 점진적으로 구축할 수 있습니다.

다양한 방법으로 Oracle SQL Firewall을 관리할 수 있습니다. 독립 실행형 구현이 있고 명령을 통한 관리에 능숙한 경우 SYS.DBMS_SQL_FIREWALL 패키지의 PL/SQL 프로시저를 권장합니다.

UI 기반 관리를 원하거나 여러 Oracle SQL 방화벽을 중앙에서 관리하려는 경우 Oracle Data Safe가 정확한 솔루션 입니다.사용자 및 보안 평가, 활동 감사, 민감한 데이터 검색 및 데이터 마스킹을 위해 이미 Oracle Data Safe를 사용하고 있는 Oracle Data Safe 사용자라면 이제 Oracle SQL 방화벽 관리를 위해 동일한 Data Safe 클라우드 서비스를 사용하고 투자를 보존할 수 있습니다.

Data Safe 통합 콘솔이 SQL 방화벽 관리를 위해 확장되었습니다. 관리자는 콘솔을 사용하여 애플리케이션 계정의 SQL 활동을 수집하고, 수집 진행 상황을 모니터링하고, 캡처된 SQL 활동에서 허용 목록 규칙(허용된 컨텍스트, 허용된 SQL 문)을 사용하여 Oracle SQL 방화벽 정책을 생성하고, SQL 방화벽 정책을 활성화할 수 있습니다. 방화벽 정책이 활성화되면 Data Safe는 자동으로 데이터베이스에서 방화벽 위반 로그를 수집하여 Data Safe에 저장합니다. 그런 다음 그림 2에 표시된 것처럼 해당 로그를 전체 데이터베이스 전체에 대한 온라인 분석 및 보고에 사용할 수 있습니다.

추가 자동화 및 통합을 위해 Data Safe REST API, 소프트웨어 개발자 키트(SDK), CLI 및 Terraform을 사용할 수 있습니다. Oracle SQL Firewall 위반을 경고 및 알림과 통합하기 위해 더 큰 규모의 OCI(Oracle Cloud Infrastructure) 에코시스템을 활용할 수도 있습니다.

그림 2: Oracle Data Safe의 SQL 방화벽 대시보드


인증, 액세스 제어, 암호화 및 감사를 위해 Oracle 데이터베이스 내에서 업계 최고의 데이터베이스 보안 기능을 보완하는 Oracle SQL Firewall은 들어오는 모든 SQL 문을 검사하고 승인된 SQL 문만 허용합니다. Oracle SQL Firewall 솔루션은 Data Safe를 통해 탁월한 보안과 관리 편의성을 제공 한다고 합니다.

Oracle Database 23c에서 Oracle SQL Firewall을 관리하기 위한 Oracle Data Safe 제한적 가용성 프로그램에 참여해 볼 수 있습니다.

정식 출시되기 전에 시험해 보려면 "Oracle SQL Firewall Limited Availability Program"이라는 제목으로 Oracle Data Safe에 서비스 요청을 제출하면 된다고 합니다.

Oracle Database 23c의 Oracle SQL Firewall 데모는 Oracle Database 23c Free에서 SQL Firewall 사용을 참조하세요 . PL/SQL 또는 Oracle Data Safe를 사용하여 SQL 방화벽을 관리할 수도 있다고 하네요. Data Safe를 사용하여 SQL 방화벽을 관리하는 방법에 대한 데모는 Oracle Database 23c의 새로운 보안 기능인 SQL 방화벽 소개를 참조하세요 .