Computer >> 컴퓨터 >  >> 네트워킹 >> 네트워크 보안

PHP 백도어 및 웹 셸이란 무엇입니까? 제거하는 방법은 무엇입니까?

요즘 PHP는 Prestashop, WordPress, Magento 등과 같은 거의 모든 인기 있는 CMS를 구동하는 주요 엔진입니다. 이 서버 측 스크립팅 언어는 오늘날 인터넷 웹사이트의 거의 80%를 구동할 정도로 인기가 있습니다. 그러나 PHP를 사용하는 사이트는 하나의 익스플로잇이 모든 사이트에서 작동할 수 있기 때문에 해커의 표적이 되기도 합니다. 종종 영리한 기술이 배후에서 악의적으로 작동하도록 배포됩니다. PHP 웹 셸 백도어는 귀하의 웹사이트를 비밀리에 감염시키도록 설계된 악성 스크립트 또는 프로그램 중 하나입니다.

PHP 웹 셸 백도어란 무엇이며 왜 감염되나요?

PHP 웹 셸 백도어는 기본적으로 사이트에서 다양한 악성 작업을 수행하도록 설계된 악성 스크립트 및 프로그램입니다. 단순 웹 셸은 명령 기반 스크립트입니다. PHP 웹 셸을 사용하면 공격자가 PHP 서버의 관리를 원격으로 관리할 수 있습니다. 공격자는 인터넷의 URL을 사용하여 액세스할 수 있습니다. 더 복잡한 웹 셸도 메모리에 직접 액세스할 수 있습니다.

PHP 백도어 및 웹 셸이란 무엇입니까? 제거하는 방법은 무엇입니까?

종종 이러한 감염은 지속적인 액세스를 유지하도록 설계되었기 때문에 정리 후에도 다시 발생합니다. 대부분의 백도어는 탐지를 피하기 위해 다양한 난독화 기술을 사용합니다. 일부는 메모리에 직접 숨기기 위해 복잡한 알고리즘을 구현하기도 합니다.

PHP 웹 셸이 웹사이트에 상주할 수 있는 방법에는 여러 가지가 있습니다. 그러나 이 감염을 허용하는 몇 가지 일반적인 보안 문제:

  • 약하거나 기본 비밀번호입니다.
  • 무제한 PHP 파일 업로드
  • 무효화된 입력을 허용하는 PHP 사이트의 잘못된 코딩
  • 오래된 PHP 버전입니다.
  • 부적절한 PHP 구성.
  • 민감한 파일의 약한 파일 권한
  • 부적절한 오류 보고 및 코드 공개.

관련 문서 – PHP의 보안 문제 해결

PHP 웹 셸 백도어는 무엇을 할 수 있습니까?

일반 PHP 웹 셸 백도어를 사용하면 공격자가 관리자처럼 PHP 서버에서 명령을 실행할 수 있습니다. 때때로 공격자는 권한 상승을 시도할 수도 있습니다. 이 셸을 사용하여 공격자는 다음을 수행할 수 있습니다.

  • 서버에 있는 모든 유형의 데이터에 액세스합니다.
  • 귀하의 서버를 사용하여 암호화폐를 채굴할 수 있습니다.
  • 서버를 공격자의 지시에 따라 대량의 스팸을 차단하는 봇으로 전환할 수 있습니다.
  • 그리고 더 많은 악의를 품을 수 있습니다!

관련 기사 – 궁극의 PHP 보안 사례 및 맬웨어 제거 가이드

PHP 웹 셸 백도어:코드 분석

일반 PHP 웹 셸 백도어는 다음 단계를 통해 작동합니다.

첫 번째 단계는 시스템 변수를 초기화하는 것입니다. 그렇게 하는 동안 웹 셸은 탐지를 피하기 위해 오류가 인쇄되지 않도록 합니다. 이것은 x_die를 생성하여 수행됩니다. 기능. 오류가 발생할 때마다 이 기능을 통해 문제에 대한 메시지를 전달합니다. 그런 다음 이 함수는 PHP의 die() 함수를 사용하여 현재 스크립트를 종료합니다.

PHP 백도어 및 웹 셸이란 무엇입니까? 제거하는 방법은 무엇입니까?

다음 단계는 웹 셸이 PHP 서버에서 명령을 실행할 수 있는지 확인하는 것입니다. 이를 위해 일반 PHP 웹 셸은 exec(), system()와 같은 PHP의 다양한 실행 기능을 확인합니다. 등

PHP 백도어 및 웹 셸이란 무엇입니까? 제거하는 방법은 무엇입니까?

그런 다음 PHP 웹 셸은 시스템 구성을 확인하고 웹 셸에서 변경할 수 있는지 확인합니다. 구성 기능이 없는 경우 단순히 'can not config ' 메시지 x_di e() 기능.

PHP 백도어 및 웹 셸이란 무엇입니까? 제거하는 방법은 무엇입니까?

그런 다음 PHP 서버에서 안전 모드도 확인합니다. PHP의 안전 모드는 종종 공유 서버에 배포됩니다. 특정 파일을 연 프로세스가 검증된 사용자에 의해 실행되고 있는지 검증하는 기능입니다. 안전 모드가 활성화된 경우 웹 셸이 더 이상 실행을 중지합니다.

if(x_ini_get('safe_mode')){x_die('실행할 수 없음:안전 모드 활성화');}

이 모든 조건이 충족되면 웹 셸은 Windows 시스템의 Superfetch 서비스를 사용하여 명령을 실행합니다.

PHP 백도어 및 웹 셸이란 무엇입니까? 제거하는 방법은 무엇입니까?

PHP 웹 셸 백도어:탐지 및 정리

  1. 모든 PHP 파일의 소스 코드를 보고 일반 PHP 웹 셸 백도어에 감염되었는지 확인합니다.
  2. 수동으로 검색하기 어려운 경우 Grep 를 사용하세요. 명령 .
  3. grep 명령을 사용하여 다음 코드로 폴더 내의 웹 셸 코드 덤프를 검색합니다.
    grep -r "dump of web shell" /folderToSearch/
  4. 이 방법을 사용하면 일반 웹 셸을 감지할 수 있습니다. 그러나 이 방법은 한 가지 유형의 일반 웹 셸만 검색할 수 있으므로 고유한 제한 사항이 있습니다.
  5. 다른 웹 셸을 검색하려면 소스 코드를 알아야 합니다. 이 문제를 극복하기 위해 GitHub에서 무료로 제공되는 웹 셸 감지 도구를 사용할 수 있습니다.
  6. PHP 웹 셸을 감지하기 위해 의심스러운 HTTP 요청이 있는지 로그를 확인하는 것을 잊지 마십시오. 웹 셸을 찾으면 삭제하십시오.
  7. PHP 웹 셸 덤프가 민감한 파일에서 발견되는 경우 주석 처리하고 전문가에게 추가 멀웨어 제거 및 분석을 요청하십시오.

PHP 웹 셸 백도어:완화

  1. PHP 버전을 최신 상태로 유지하십시오.
  2. 기본 비밀번호나 약한 비밀번호를 사용하지 마세요.
  3. 사이트 구성이 잘못되었는지 항상 확인하십시오.
  4. 파일 권한을 777로 설정하면 누구나 파일을 편집할 수 있으므로 절대 설정하지 마세요!
  5. PHP 파일을 개발하는 동안 안전한 코딩 방법을 따르십시오.
  6. PHP 사이트의 취약점을 발견하기 위해 포괄적인 침투 테스트로 이동합니다.

결론

웹 셸을 삭제하는 것만으로는 사이트를 보호하기에 충분하지 않습니다. 공격자는 여전히 사이트의 취약점을 사용하여 새 셸을 업로드할 수 있습니다. 일반 사용자의 경우 이 취약점을 감지하는 것이 쉽지 않을 수 있습니다. 따라서 보안 솔루션을 사용하여 이 프로세스를 자동화하는 것이 좋습니다.

Astra Security의 자동화된 멀웨어 스캐너는 클릭 한 번으로 수많은 PHP 웹 셸과 멀웨어를 탐지합니다. 또한 Astra Security 방화벽은 웹 사이트를 모니터링하고 다가오는 보안 위협을 차단합니다. 필요에 따라 계획을 선택하고 지금 시작하십시오!