WordPress SQL 주입: 공격을 방지하는 도구 및 기술
게시 됨: 2020-09-24
SQL 인젝션은 WordPress 데이터베이스를 조작하기 위해 널리 사용되는 해킹 기술이었습니다. 요즘 XSS(Cross Site Scripting)가 인기가 있으며 WordPress 사이트를 해킹하는 최고의 방법이 되었습니다.
이 가이드에서는 WordPress SQL Injection의 기본 사항과 이를 제거하는 방법에 대해 설명합니다. 다음 파트에서는 Cross Site Scripting에 대해 다룰 것입니다. 시작하자!
- SQL 인젝션이란?
- SQL 주입 공격의 진입점
- SQL 주입 공격이 흔한 이유는 무엇입니까?
- SQL 주입은 어떻게 작동합니까?
- WordPress에서 SQL 주입을 방지하는 방법
- Tip#1 SQL 인젝션 취약점 스캔
- Tip#2 업데이트, 업데이트, 업데이트!
- 팁#3 WordPress 테마 및 플러그인
- 팁#4 신뢰할 수 있는 양식 플러그인 사용
- Tip#5 워드프레스 버전 숨기기
- Tip#6 데이터베이스 접두사 변경
- Tip#7 항상 백업을 하세요
팁#8 로그 유지 - 팁#9 방화벽 사용
- Tip#10 불필요한 데이터베이스 기능 제거
- 자주 묻는 질문
- 마지막 말!
SQL 인젝션이란?
SQL 주입은 백엔드 코딩의 허점의 결과입니다. 공격자는 SQL 명령을 실행할 수 있는 악성 코드를 삽입하여 입력 필드를 쉽게 남용할 수 있으며 데이터베이스의 데이터를 생성, 검색, 업데이트 및 삭제할 수 있습니다.
SQL은 웹 개발에서 데이터베이스에 가장 널리 사용되는 언어인 Structured Query Language 의 약어입니다. 다음은 SQL을 사용하는 가장 인기 있는 데이터베이스 엔진입니다.
SQL을 사용하는 데이터베이스
시장에는 많은 데이터베이스 소프트웨어가 있습니다. 인기 있는 것들은 다음과 같습니다:
- 신탁
- MySQL
- SQL 서버
- PostgreSQL
- 몽고DB 등
보시다시피 MySQL은 목록에서 두 번째입니다. SQL만 사용하는 WordPress는 WWW의 35% 이상을 차지했으며 공격자에게 가장 매력적인 표적이 되었습니다.

SQL 주입 공격의 진입점
모든 입력 필드는 SQL 주입 공격의 가장 일반적인 진입점으로 간주됩니다. Layman의 용어로 우리는 다음과 같이 말할 수 있습니다.
- 가입 양식
- 로그인 양식
- 문의 양식
- 사이트 검색
- 피드백 필드
- 쇼핑 카트
SQL 주입 공격이 흔한 이유는 무엇입니까?
여기에는 여러 가지 이유가 있을 수 있지만 가이드를 작성하면서 가장 일반적으로 생각나는 것은 다음과 같습니다.
- 대부분의 웹사이트 데이터베이스는 SQL을 기반으로 합니다.
- WordPress – 가장 널리 사용되는 CMS는 데이터베이스에 SQL을 사용합니다.
- 거의 모든 웹사이트에는 방문자로부터 정보를 수집하기 위한 입력 필드가 있습니다.
- 모든 웹사이트에는 SQL Injection 진입점이 하나 이상 있습니다.
- SQL 주입 스캔 도구는 온라인에서 쉽게 사용할 수 있습니다.
- 악용하는 데 기술적 복잡성이 필요하지 않습니다.
SQL 주입은 어떻게 작동합니까?
예를 들어 전화 번호를 입력해야 하는 문의 양식이 있습니다. 제한된 숫자만 적절한 형식으로 입력해야 하는 것과 같은 특정 기준이 있어야 합니다.
입력 유효성 검사를 모르는 대부분의 개발자는 이 필드를 일반 텍스트로 설정할 수 있습니다. 즉, 악성 코드가 될 수 있는 모든 문자열도 입력할 수 있습니다. 일부 변경된 SQL 쿼리를 사용하여 관리자 사용자 이름과 암호를 요청할 수 있습니다.
WordPress SQL 주입 예제
간단한 Google 검색으로 많은 SQL Injection 취약점을 찾을 수 있습니다. 하지만 오늘은 실제 사례를 공유하겠습니다. 게임 산업만 보면 됩니다. 실제로 많은 SQL 주입 공격은 가장 크고 가장 수익성이 높은 산업 중 하나인 비디오 게임에 초점을 맞춥니다.
게다가 과거에 해커는 블로그, 전자 상거래 상점 및 일부 대기업의 개별 웹사이트도 공격했습니다.
이것은 2017년 9월에 보고된 또 다른 WordPress 취약점의 예입니다. WordPress Core는 이 취약점의 직접적인 영향을 받지 않았지만 WordPress 플러그인 및 테마에 영향을 미치지 않도록 하는 패치(WordPress 4.8.3)가 릴리스되었습니다. .
위 취약점의 배후인 Anthony Ferrara는 WPBD SQL Injection, 이것이 WordPress 사이트에 미치는 영향 및 모든 WordPress 사용자에 대한 예방 조치에 대한 광범위한 가이드를 작성했습니다.
WordPress 사이트를 보호하는 확실한 방법은 없습니다. 사실 워드프레스 보안 플러그인도 과거에 영향을 받은 적이 있습니다. 2014년에 가장 인기 있는 보안 플러그인 중 하나가 SQL 주입을 허용하는 두 가지 취약점을 시연했습니다.
WordPress에서 SQL 주입을 방지하는 방법
앞서 말했듯이 해킹 시도를 완전히 없앨 수 있는 방법은 없습니다. 그러나 해킹의 위험을 최소화할 수 있습니다. 이러한 공격을 방지하는 데 도움이 될 수 있는 가장 일반적인 방법은 다음과 같습니다.
더 나은 성능과 보안을 찾고 계십니까?
WooCommerce 웹사이트를 무료로 Cloudways로 마이그레이션하십시오.
Tip#1 SQL 인젝션 취약점 스캔
WordPress 사이트를 스캔하는 여러 온라인 도구를 찾을 수 있습니다. WordPress 사이트 URL을 입력하고 발견된 취약점 검색을 시작하기만 하면 됩니다.
- WordPress 보안 스캔 – WordPress 사이트의 기본 취약점을 확인합니다. 고급 스캔은 프리미엄 업그레이드로 사용할 수 있습니다.
- Sucuri SiteCheck – WordPress 사이트에서 알려진 멀웨어, 블랙리스트 상태, 오류 및 사이트가 오래된 경우 확인할 수 있습니다.
- WPScan – 개인이 무료로 사용할 수 있는 자체 호스팅 취약점 스캐너입니다. 상업적 사용을 위해 유료 라이선스를 받을 수도 있습니다.
스캔 보고서를 실행하면 WordPress 보안을 개선하기 위해 집중해야 하는 영역을 정확히 확인할 수 있습니다.
Tip#2 업데이트, 업데이트, 업데이트!
모든 WordPress 사용자에게 가장 중요합니다! WordPress 코어, 테마 및 플러그인을 포함한 모든 것을 최신 상태로 유지하십시오.

워드프레스 코어
공식 워드프레스 통계에 따르면 워드프레스 사이트의 29.3% 만이 최신 버전(5.5.x)을 사용하고 있습니다. 모든 이전 버전은 취약할 수 있으며 해킹을 당할 수 있습니다. 위의 SQL Injection 취약점 예에서 최신 버전 이하의 모든 사이트가 발견된 취약점에 취약함을 알 수 있습니다. 귀하의 사이트가 해킹당했다면 책임을 져야 할 사람이 누구인지 알기를 바랍니다!

PHP 버전
WordPress의 백엔드인 PHP는 지난 몇 년 동안 많이 개선되었습니다. 많은 패치와 성능 지향적인 변경이 이루어졌습니다. 하지만 여전히 워드프레스 사용자의 23% 이상 이 워드프레스에서 SQL 인젝션의 요인 중 하나가 될 수 있는 PHP 7.2 를 사용하고 있습니다. 최신 버전의 PHP는 7.4입니다.
참고: WordPress 호스팅이 최신 버전의 PHP를 지원하지 않는 경우 호스트를 Cloudways와 같은 최신 버전의 PHP를 지원하는 관리형 WordPress 호스팅으로 즉시 전환해야 합니다.

팁#3 WordPress 테마 및 플러그인
워드프레스의 SQL 인젝션을 포함한 취약점의 대부분은 워드프레스 코어가 아닌 플러그인과 테마에서 발견되었습니다. 업데이트, 수정 사항을 주시하고 그에 따라 조정하십시오.
테마와 플러그인이 정기적으로 업데이트되지 않으면 WordPress 사이트에 물음표가 표시될 수 있습니다. 항상 자주 업데이트되는 테마/플러그인을 사용하세요.
참고: 업데이트를 수행하기 전에 WordPress 코어, 테마 및 플러그인 간의 호환성을 확인하여 사이트가 정상적으로 작동하는지 확인하십시오. 테스트하기 위해 라이브 웹 사이트의 복사본을 만든 다음 WordPress 스테이징 환경에서 호환성을 확인할 수 있습니다.
팁#4 신뢰할 수 있는 양식 플러그인 사용
비즈니스 또는 간단한 블로그를 운영하는 경우 등록 양식, 로그인 양식, 문의 양식 등과 같은 양식의 중요성을 알아야 합니다. WordPress 저장소에서 사용할 수 있는 플러그인이 많기 때문에 가장 좋은 플러그인을 찾기가 어렵습니다. 따라서 검색 범위를 좁히기 위해 최고의 WordPress Form 플러그인 목록을 작성했습니다.
참고: 플러그인을 선택하기 전에 이전에 발견된 취약점과 해결 방법을 확인하는 것을 잊지 마십시오.
Tip#5 워드프레스 버전 숨기기
항상 WordPress 버전을 공개적으로 표시하지 않는 것이 좋습니다. 이 정보를 공개적으로 사용하면 공격자가 특정 버전의 알려진 취약점을 쉽게 악용할 수 있습니다.
WordPress 버전을 숨기려면 코드 줄 아래를 복사하여 활성 테마의 functions.php 파일에 붙여넣으면 됩니다.
remove_action('wp_head', 'wp_generator');
Tip#6 데이터베이스 접두사 변경
WordPress를 설치할 때 기본적으로 데이터베이스 접두사는 " wp_ "로 설정됩니다. 대부분의 WordPress 사용자는 무시하고 기본 설정으로 설치합니다. SQL 주입 기술을 사용하여 데이터베이스 테이블을 추측하는 것이 더 쉬워집니다.
WordPress가 이미 설치되어 있어도 걱정하지 마십시오. WordPress에서 데이터베이스 접두사를 변경하는 방법에 대한 훌륭한 가이드가 있습니다.
Tip#7 항상 백업을 하세요
백업은 SQL Injection과 직접적인 관련이 없을 수 있습니다. 그러나 해킹 된 사이트를 복구하는 데 도움이 될 수 있습니다. WordPress 백업은 두 가지 방법으로 저장할 수 있습니다.
- 로컬 백업 : 자동 및/또는 수동으로 생성되고 호스팅 제공업체에 있는 백업입니다. 공유 호스팅을 사용하는 경우 로컬 백업을 유지하지 않는 것이 좋습니다. 서버가 손상되면 백업도 손실될 수 있습니다. 그러나 서버가 Cloudways와 같은 좋은 손에 있다면 WordPress에 대한 로컬 백업을 유지할 수 있습니다.
- 오프사이트 백업: 자동 및/또는 수동 백업이 생성되어 Google Drive, Dropbox, Amazon S3 등과 같은 원하는 오프사이트 저장 위치로 전송됩니다. WordPress 사이트를 백업하기 위한 광범위한 가이드를 작성했습니다.
팁#8 로그 유지
Sucuri의 공동 설립자인 Dre Armeda는 다음과 같이 말했습니다.
사람들은 WordPress의 가장 큰 보안 문제이며 앞으로도 계속될 것입니다.
즉, 자신의 몫을 해야 합니다. 변경 사항을 주시하고 WordPress 사이트에서 일어나는 모든 일을 기록해야 합니다. 귀하 및/또는 공격자가 수행한 변경 사항을 추적하여 그에 따라 조치를 취하는 데 도움이 됩니다.
확실히 당신을 도울 훌륭한 WordPress 보안 감사 로그 플러그인이 있습니다! 또한 호스팅 공급자는 모든 로그를 보관합니다. 가끔씩 로그를 계속 읽으십시오.
팁#9 방화벽 사용
가장 중요하고 중요한 것 중 하나는 고객 데이터를 안전하게 보호하는 방화벽을 사용하는 것입니다. 이 외에도 구독 패키지와 같은 다양한 요소를 기반으로 사용자 액세스 수준을 정의할 수도 있습니다. Cloudways를 사용하는 경우 걱정할 필요가 없습니다. 모든 Cloudways 호스팅 서버는 악성 트래픽을 필터링하고 침입자를 차단하는 OS 수준 방화벽으로 보호됩니다.
Tip#10 불필요한 데이터베이스 기능 제거
데이터베이스 불필요한 데이터베이스 기능 및 콘텐츠를 제거하는 가장 효과적인 기술 중 하나입니다. 잠재적인 SQL 주입 공격에 더 취약합니다. 이를 방지하려면 데이터베이스를 표준화하고 사이트를 더 좋고 똑똑하게 만드십시오.
자주 묻는 질문
Q: SQL 인젝션이란 무엇입니까?
A: SQL 인젝션은 백엔드 코딩의 허점으로 인한 결과입니다. 공격자는 SQL 명령을 실행할 수 있는 악성 코드를 삽입하여 입력 필드를 쉽게 남용할 수 있으며 데이터베이스의 데이터를 생성, 검색, 업데이트 및 삭제할 수 있습니다.
Q: WordPress SQL 주입 예제는 무엇입니까?
A: 오랫동안 발생하고 있는 또 다른 WordPress 취약점의 예는 2017년 9월에 보고되었습니다. WordPress Core는 이 취약점의 직접적인 영향을 받지 않았지만 WordPress 플러그인에 영향을 미치지 않도록 하는 패치(WordPress 4.8.3)가 릴리스되었습니다. 및 테마.
Q: SQL 주입은 무엇을 합니까?
A: SQL 인젝션은 워드프레스 데이터베이스를 조작하기 위해 가장 기본적이고 널리 사용되는 해킹 기술입니다. 요즘 XSS(Cross Site Scripting)가 인기가 있으며 WordPress 사이트를 해킹하는 최고의 방법이 되었습니다.
마지막 말!
앞서 말했듯이 WordPress 사이트를 보호하는 확실한 방법은 없습니다. 해킹을 당할 가능성은 항상 존재하며 이는 코어, 테마 및 플러그인의 취약성 때문일 수 있습니다. 그렇기 때문에 항상 업데이트할 것을 권장합니다! SQL 주입은 지난 몇 년 동안 많이 제어되었습니다.
어떤 종류의 WordPress SQL 주입 공격에 직면했다면 경험과 제거 방법을 공유하십시오. 다른 WordPress 사용자에게 도움이 될 것이라고 확신합니다.
