파일 포함 공격이란 무엇입니까?
게시 됨: 2023-03-31모든 도구는 좋은 의도나 나쁜 의도로 사용될 수 있으며 파일 포함도 마찬가지입니다. 파일 포함은 사이트 전체에서 코드를 유지 관리하고 기능을 확장하기 쉽게 만드는 프로그래밍 방법입니다. 파일 포함 공격은 PHP가 단일 웹 페이지를 만들기 위해 여러 개별 파일의 코드를 통합하고 실행하는 유효한 방법으로 파일 포함을 사용하는 방식을 남용합니다. PHP는 WordPress에서 사용하는 언어이므로 WordPress 및 기타 PHP 애플리케이션은 적절한 보안 조치가 손상되거나 불완전하거나 부재할 때 파일 포함 취약성이 발생하기 쉽습니다.
파일 포함 공격에 대한 이 전체 가이드에서는 해커가 잘못된 사용자 입력 삭제 및 유효성 검사를 악용하여 맬웨어를 주입하고 잘못된 명령을 보내 WordPress 사이트에 침입하는 방법을 살펴봅니다.
워드프레스 파일 포함 공격이 어떻게 발생하는지, 웹사이트가 피해를 입지 않도록 보호하기 위해 무엇을 할 수 있는지 배우게 됩니다.
파일 포함이란 무엇입니까?
파일 포함은 많은 파일을 하나의 스크립트 또는 웹 페이지에 포함하여 기능을 추가하거나 디자인 템플릿을 재사용하거나 여러 페이지에서 콘텐츠를 공유하는 개발 기술입니다.
파일 포함이 절대적으로 필요합니다. 개발자는 일반적으로 다음과 같은 목적으로 사용합니다.
- 디자인과 기능의 일관성을 보장하기 위해 웹 사이트의 모든 페이지에 공통적인 머리글 및 바닥글 파일을 포함합니다.
- 웹 사이트 또는 웹 응용 프로그램 전체의 주요 기능에 대한 스크립트 및 라이브러리를 포함합니다.
- 데이터베이스 연결 정보 및 API 키와 같은 애플리케이션 설정이 포함된 구성 파일을 포함합니다.
- 이미지, 비디오, 텍스트 또는 웹 페이지의 기타 콘텐츠와 같은 콘텐츠를 포함합니다.
- URL 매개변수로 전달된 사용자 입력을 기반으로 동적 콘텐츠를 생성하는 기능을 포함합니다. 예를 들어 사용자는 특정 출력을 생성하기 위해 양식을 제출할 수 있습니다.
파일 포함 유형
파일 포함 기술을 사용하여 개발자는 정적 또는 동적으로 웹 페이지에 파일과 스크립트를 추가할 수 있습니다.
정적 파일 포함을 사용하면 개발자는 URL(Uniform Resource Locator) 또는 로컬, 즉 동일한 서버에 저장된 파일 경로를 참조하여 동일한 텍스트 또는 코드를 여러 페이지에서 재사용할 수 있습니다. 정적 파일 포함을 통해 테마는 여러 웹 페이지에서 동일한 머리글, 바닥글 또는 탐색 메뉴 코드를 사용할 수 있습니다.
동적 파일 포함은 런타임 시 사용자 입력을 허용합니다. 사용자는 특정 파일의 경로를 전달하여 원하는 출력을 나타냅니다. 일반적으로 사용자 입력은 URL 또는 양식 제출에서 매개변수로 전달됩니다. 예를 들어, 사용자는 언어 드롭다운 선택 목록에서 "영어"를 선택할 수 있습니다. 그러면 /page.php?language=english
와 같이 URL을 변경하여 현재 페이지의 영어 버전으로 이동합니다. 누군가가 " english
"를 원격 파일의 URL로 바꾼 경우, 이를 방지하기 위한 검사가 없다면 대상 사이트에 백도어 및/또는 기타 맬웨어로 웹 셸을 주입할 수 있습니다.
WordPress에서 파일 포함은 어떻게 구현됩니까?
WordPress와 같이 PHP로 작성된 모든 동적 웹 애플리케이션은 파일 포함을 안전하게 사용할 수 있습니다. PHP로 작성된 애플리케이션에서 개발자는 include
및 require
문을 사용하여 파일 포함을 수행합니다. 개발자는 두 문을 모두 사용하여 한 PHP 스크립트의 내용을 다른 스크립트에 삽입합니다. 이것은 코드가 서버에서 실행되기 전에 발생합니다.
워드프레스 핵심 파일 중 일부를 보면 대부분 다른 핵심 스크립트를 참조합니다. 모두 함께 로드되면 사이트 구조를 구축하고 방문자가 요청한 개별 웹 페이지를 생성합니다. 기본 index.php
WordPress 환경과 테마 템플릿인 wp-load.php
및 template-loader.php
각각 로드하는 wp-blog-header.php
참조합니다.
WordPress 코어와 함께 플러그인 및 테마도 파일 포함을 사용하여 필요한 작업을 수행합니다. 그러나 수만 개의 WordPress 플러그인을 사용할 수 있지만 모두 WordPress 코어만큼 잘 테스트되지는 않았습니다.
파일 포함은 개발자가 적절하게 보호하지 않을 때 심각한 보안 위험을 초래합니다. 사용 중인 코드가 사용자 입력의 유효성을 검사하고 삭제하지 않으면 해커가 이를 악용할 수 있습니다. 그들은 그것을 사용하여 맬웨어를 설치하고 민감한 정보를 훔칠 수 있습니다. 귀하 또는 귀하의 고객일 수 있습니다!
파일 포함 공격이란 무엇입니까?
LFI(로컬 파일 포함) 또는 RFI(원격 파일 포함)의 두 가지 유형의 파일 포함 공격이 가능합니다.
파일 포함 공격은 더 광범위한 주입 공격 클래스의 일부입니다. 여기에는 SQL 주입(SQLi), 교차 사이트 스크립팅(XSS) 및 명령 포함 공격이 포함됩니다. 해커는 입력 취약점을 악용하여 버퍼 오버플로 공격과 같은 다른 유형의 공격을 할 수 있습니다.
로컬 및 원격 파일 포함 공격
특정 기능을 활성화하기 위해 동적 파일 포함에 의존하는 웹 사이트 및 웹 애플리케이션은 원격 파일 포함 공격과 로컬 파일 포함 공격 모두에 노출될 수 있습니다.
로컬 파일 포함(LFI)
로컬 파일 포함 공격은 대상 웹 사이트 또는 웹 응용 프로그램과 동일한 서버에 있는 파일을 주입할 수 있습니다. LFI 공격은 종종 일반적으로 제한된 파일에 대한 액세스 권한을 얻을 수 있습니다. LFI 공격에서 포함된 파일은 대상이 되는 로컬 응용 프로그램 서버에 이미 존재해야 합니다. LFI 공격에서 악의적인 행위자는 중요한 파일을 읽거나 더 민감한 정보에 액세스하거나 임의의 명령을 실행할 수 있습니다.
로컬 파일 포함 공격은 누군가가 대상 웹 사이트 외부의 중요한 데이터에 액세스하도록 허용할 수도 있습니다. 여기에는 /etc/passwd
와 같은 서버 구성 파일이나 wp-config.php
와 같은 다른 웹사이트의 구성 파일이 포함됩니다. 그러나 대상 파일은 권한이 없는 사용자가 읽을 수 있어야 한다는 점에 유의해야 합니다. 예를 들어 Linux 시스템의 /etc/passwd
파일은 루트가 소유하지만 파일 권한이 644로 설정되어 있고 다른 모든 시스템 사용자는 볼 수 있습니다.
파일 시스템을 탐색하기 위해 공격자는 ../../../
와 같은 디렉터리 경로 순회 시퀀스를 조작하여 현재 작업 디렉터리 외부의 파일에 액세스하는 기술인 디렉터리 순회를 사용합니다.
RFI(원격 파일 포함)
원격 파일 포함 공격은 다른 서버에서 호스팅되는 파일을 호출하는 웹 사이트 및 애플리케이션을 대상으로 합니다. 공격자는 원격 파일 포함을 악용하여 다른 곳에서 호스팅되는 악성 코드를 이용할 수 있습니다. 대상 서버에 취약점이 존재해야 하지만 공격자는 이를 악용하여 다른 곳에서 호스팅되는 악성 코드를 실행합니다.
원격 파일 포함 공격에서 해커는 웹 애플리케이션의 "동적 파일 포함" 명령을 이용합니다. 해커는 URL 및 매개변수 값과 같은 사용자 입력을 허용하는 웹 애플리케이션을 악용하여 적절한 삭제 없이 "파일 포함" 메커니즘에 전달할 수 있습니다. 이러한 유형의 취약성에서 공격자는 웹 애플리케이션을 악용하여 악성 스크립트가 있는 원격 파일을 포함할 수 있습니다.
WordPress 파일 포함 공격이 발생하는 이유는 무엇입니까?
워드프레스 사이트는 인터넷의 43%를 차지하므로 공격자의 큰 표적입니다. 2022년 WordPress 취약성 연간 보고서에 따르면 작년에 발견된 모든 WordPress 취약성의 90% 이상이 플러그인과 테마에 있었습니다. 일반적으로 매주 20~50개의 플러그인에서 적어도 하나의 새로운 보안 결함이 보고되었습니다.
최근 보안 연구원들은 유명한 OceanWP 테마에서 파일 포함 취약점을 발견했습니다. OceanWP에는 50만 명이 넘는 활성 사용자가 있습니다. (주간 WordPress 취약점 보고서에서 이를 보고했습니다.) OceanWP가 취약점을 신속하게 패치했지만 수백만 개의 WordPress 사이트에서 여전히 오래된 코드를 사용하는 동안 해커가 이를 악용할 시간이 있었습니다.
WordPress 파일 포함 공격을 탐지하는 방법
웹 사이트 속도를 크게 저하시킬 수 있는 서비스 거부 공격이나 사람들을 웹 사이트에서 사기성 리소스로 이동시키는 악의적인 리디렉션과 달리 파일 포함 공격은 감지하기 어렵습니다. 그 이유는 간단합니다. 해커는 파일 포함을 진입점으로 사용하여 맬웨어를 업로드하고 추가 공격을 수행합니다. 파일 포함은 더 눈에 띄는 손상에 대한 조용한 경로입니다. 따라서 해커가 웹 사이트에 악성 코드를 주입하거나 민감한 정보에 액세스할 때 거의 알아차리지 못할 가능성이 큽니다.
이것은 우리에게 중요한 결론을 가져다줍니다. 웹 사이트 보안은 공격 표면을 작게 만들고 강화하는 것부터 시작해야 합니다. 이렇게 하면 해커가 파일 포함 공격, SQL 및 명령 주입, XSS(교차 사이트 스크립팅)와 같은 주입 공격의 원인이 되는 입력 취약성을 악용하는 것을 방지할 수 있습니다.
WordPress 파일 포함 공격을 방어하는 방법은 무엇입니까?
WordPress를 대상으로 하는 사이버 공격이 증가함에 따라 WordPress 웹사이트 보안이 그 어느 때보다 중요해졌습니다. WordPress 파일 포함 공격을 방어하려면 입력 취약성 및 임의 코드 실행을 악용할 가능성을 제한하는 다각적인 접근 방식이 필요합니다. 선제적 및 사후적 보안 조치의 조합을 채택하는 경우 이를 수행할 수 있습니다.
다음은 파일 포함 공격으로부터 웹 사이트를 보호하기 위한 상위 3가지 WordPress 보안 권장 사항입니다.
모든 소프트웨어를 최신 상태로 유지
WordPress 코어, 테마, 플러그인 및 확장 프로그램을 포함한 모든 소프트웨어를 최신 상태로 유지하는 것은 사이트의 공격 표면을 줄이는 데 중요합니다. 새로운 취약점이 매일 등장하므로 해커가 이를 악용할 기회를 주지 마십시오. 보안 패치를 설치하고 사용 가능한 즉시 업데이트하십시오.
정기적으로 업데이트하는 습관을 들이거나 자동 업데이트를 활성화하여 웹 사이트에서 취약한 코드가 실행되지 않도록 합니다. iThemes Security Pro는 WordPress 코어, 플러그인 및 테마 업데이트를 처리할 수 있습니다.
iThemes Security Pro는 웹사이트에서 사용 중인 소프트웨어의 새 버전을 자동으로 검색합니다. 버전 관리 시스템은 모든 보안 패치 및 업데이트가 제공되는 즉시 설치되도록 합니다. 또한 iThemes는 서버 인프라에서 오래된 소프트웨어를 실행 중인 경우 경고합니다. 예를 들어 수명 종료 날짜가 지난 PHP 버전이나 취약한 MySQL 서버를 사용하는 경우 iThemes Pro가 경고합니다.
제어할 수 있는 여러 WordPress 사이트가 있는 경우 iThemes Sync Pro는 모든 사이트를 관리할 수 있는 단일 인터페이스를 제공합니다. Sync는 또한 고급 가동 시간 모니터링 및 SEO 피드백을 제공합니다.
PHP에서 원격 파일 포함 비활성화
PHP 환경에서 allow_url_fopen
옵션이 활성화된 경우 웹 사이트가 외부 URL에서 원격 파일을 참조할 수 있습니다. 이는 원격 파일 포함 공격의 위험을 증가시킬 수 있습니다. allow_url_fopen
비활성화하면 누군가 WordPress 웹사이트의 원격 위치에서 로드된 악성 코드를 실행할 가능성이 효과적으로 제거됩니다.
PHP 전역 구성에서 allow_url_fopen
비활성화하거나 개별 웹 폴더용으로 생성된 로컬 .user.ini
또는 php.ini
파일에서 allow_url_fopen
0
으로 설정하여 비활성화할 수 있습니다. 아래와 같이 phpinfo()
함수를 사용하여 간단한 PHP 정보 페이지를 생성하여 PHP 환경에서 옵션이 비활성화되어 있는지 확인할 수 있습니다.
WordPress 보안 헤더 구현
콘텐츠 보안 정책(CSP) 및 Set-Cookie와 같은 HTTP 응답 헤더는 워드프레스 웹사이트에 대한 파일 포함 및 기타 삽입 공격에 대한 방어 계층을 추가할 수 있습니다.
WordPress 보안 헤더를 사용하면 신뢰할 수 있는 소스, 스크립트 및 로드할 수 있는 기타 콘텐츠 목록을 만들어 원격 파일 포함 및 XSS(교차 사이트 스크립팅) 공격이 발생할 수 있는 벡터를 줄이거나 차단할 수 있습니다. 다른 모든 출처는 거부됩니다. 또한 HTTP 응답 헤더는 CSRF(교차 사이트 요청 위조) 및 클릭재킹에 대한 보호 기능을 추가하는 데 도움이 될 수 있습니다.
iThemes Security Pro로 인젝션 공격으로부터 WordPress 사이트 보호
SQL 및 명령 주입과 함께 파일 포함 공격은 WordPress 사이트의 보안을 목표로 하는 가장 일반적인 공격 벡터를 만듭니다. WordPress는 높은 수준의 애플리케이션 보안을 입증하지만 열악한 보안 관행과 결합된 고도로 맞춤화된 사이트는 입력 취약성을 악용하는 삽입 공격에 WordPress 웹사이트를 노출시킬 수 있습니다.
매일 증가하는 WordPress 플러그인 및 테마에서 새로운 취약점이 발견됩니다. 일반적으로 빠르게 패치되지만 시기 적절한 업데이트가 부족하고 오래된 소프트웨어에 의존하면 WordPress 웹 사이트가 해커의 쉬운 대상이 될 수 있습니다. 오늘날 웹사이트 보안은 그 어느 때보다 중요합니다. 사이버 공격의 증가는 아무리 경계심이 강한 웹사이트 소유자라도 사이트를 보호하기 위한 사전 조치를 취하지 않으면 해커의 희생양이 될 수 있음을 의미합니다.
iThemes Security Pro는 가장 정교한 사이버 공격으로부터 웹 사이트를 보호하기 위해 최고의 WordPress 보안 사례를 채택할 수 있는 강력한 WordPress 보안 솔루션입니다. 고급 파일 무결성 모니터링, 취약성 검색 및 자동 공격 완화 기능을 갖춘 iThemes Security Pro는 WordPress 사이트를 보호하는 효과적이고 안정적인 방법을 찾고 있다면 탁월한 선택입니다.
WordPress 보안 및 보호를 위한 최고의 WordPress 보안 플러그인
WordPress는 현재 모든 웹사이트의 40% 이상을 지원하므로 악의적인 의도를 가진 해커의 손쉬운 표적이 되었습니다. iThemes Security Pro 플러그인은 WordPress 보안에서 추측을 제거하여 WordPress 웹사이트를 쉽게 보호하고 보호할 수 있도록 합니다. WordPress 사이트를 지속적으로 모니터링하고 보호하는 상근 보안 전문가가 있는 것과 같습니다.
Kiki는 정보 시스템 관리 학사 학위를 가지고 있으며 Linux 및 WordPress에서 2년 이상의 경험을 가지고 있습니다. 그녀는 현재 Liquid Web 및 Nexcess의 보안 전문가로 일하고 있습니다. 그 전에 Kiki는 Liquid Web Managed Hosting 지원 팀의 일원으로 수백 명의 WordPress 웹 사이트 소유자를 도왔고 자주 발생하는 기술적 문제를 배웠습니다. 글쓰기에 대한 그녀의 열정은 사람들을 돕기 위해 그녀의 지식과 경험을 공유할 수 있게 합니다. 기술 외에도 Kiki는 우주에 대해 배우고 실제 범죄 팟캐스트를 듣는 것을 즐깁니다.