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

WordPress, Joomla, CodeIgniter 웹사이트 해킹? 원인은 ionCube 위장 악성코드일 수 있습니다

700개가 넘는 WordPress와 Joomla 웹사이트가 정상적인 ionCube 인코딩 파일로 위장한 악성코드에 감염된 것으로 확인되었습니다. 공격자들은 이 위장 기법을 이용해 웹 서버에 은밀하게 침투하고 있으며, CodeIgniter 기반 사이트 역시 피해를 입은 것으로 나타났습니다.

ionCube란 무엇인가?

ionCube는 오랜 역사를 지닌 강력한 PHP 인코더로, PHP 인코딩·암호화·난독화·라이선싱 기능을 통해 소스 파일을 보호하는 데 널리 사용됩니다. 라이선스 비용이 발생하기 때문에 일반적으로 악의적인 목적으로 활용되는 경우는 드물지만, 공격자들은 자신들의 악성코드를 ionCube로 인코딩된 파일처럼 보이게 위장하는 우회 경로를 찾아냈습니다.

이 악성코드는 해커가 취약한 웹사이트에 백도어를 설치할 수 있도록 허용하며, 결과적으로 해당 사이트 이용자들의 데이터 유출로 이어질 수 있습니다.

ionCube 악성코드 감염 징후

보안 연구진은 무해해 보이는 파일명을 가진 7,000개 이상의 가짜 ionCube 파일이 PHP 서버에서 실행되고 있는 것을 발견했습니다. 정상적인 ionCube 파일은 코드가 몇 줄에 불과하지만, 가짜 파일은 그렇지 않다는 점이 첫 번째 차이점입니다.

또한 모든 정상 ionCube 파일은 ioncube.com 도메인을 참조하지만, 가짜 파일에는 이러한 참조가 없습니다. 더불어 실제 파일과 달리 가짜 파일에서는 PHP 닫기 태그(<?php ... ?>) 이후 영숫자 문자와 개행 문자로만 구성된 코드 블록이 발견되었습니다.

감염 현황 조사 결과

조사 결과 총 700여 개의 감염 사이트에서 7,000개가 넘는 감염 파일이 확인되었습니다. 'diff98.php', 'wrgcduzk.php' 같은 PHP 파일은 의심스러운 난독화 파일로, 정상적인 ionCube 인코딩 파일과 거의 구분하기 어려울 만큼 유사하게 만들어져 있었습니다.

가짜 ionCube 파일을 디코딩하면 그 안에 ionCube 악성코드가 숨겨져 있는 것을 알 수 있습니다. 이론적으로 주입된 악성코드는 PHP가 실행되는 웹 서버 기반의 어떤 웹사이트든 감염시킬 수 있습니다.

감염 시 대응 방법

다양한 변종 악성코드가 존재하기 때문에 가짜 ionCube 파일과 정상 파일을 구분하는 것이 쉽지 않을 수 있습니다. 특히 개발자가 ionCube 인코딩 파일을 설치한 적이 없는데도 서버에서 해당 파일이 발견된다면, 감염되었을 가능성이 매우 높습니다. 한 사이트에서 최대 100개에 달하는 미세하게 다른 변종이 발견되는 경우도 흔합니다. 아울러 PHP 버전 간 교차 호환성이 낮아 악성코드로서의 활용 범위는 제한적입니다.

그럼에도 불구하고 ionCube 악성코드는 충분히 차단할 수 있습니다. 연구진은 관리자들에게 ionCube 인코딩 파일의 존재 여부를 침해 지표(IOC)로 점검할 것을 권장합니다. 감염이 확인될 경우 위협을 완전히 제거하기 위해 사이트 전체 스캔이 필수적이며, 추가적인 방어를 위해 웹 애플리케이션 방화벽(WAF) 도입을 병행해야 합니다.

핵심 대응 체크리스트

  • 서버에 설치한 적 없는 ionCube 인코딩 파일 존재 여부 확인
  • PHP 파일의 닫기 태그 이후 이상한 코드 블록 검사
  • 정상 ionCube 파일의 ioncube.com 도메인 참조 여부 비교
  • 감염 확인 시 사이트 전체 스캔 및 악성 파일 완전 제거
  • 웹 애플리케이션 방화벽(WAF) 설치로 재감염 방지

무료로 제공되는 개발자용 시큐어 코딩 실무 체크리스트를 다운로드하여 사이트가 코딩 보안의 모든 요소를 준수하도록 점검하세요.

이러한 온라인 위협으로부터 웹사이트를 더욱 확실하게 보호하려면 Astra 웹 방화벽 설치를 권장합니다.