귀하의 질문에 대한 구체적인 답변은 /magento//a/72700/361을 참조 하십시오.
배경
첫째, 특정 악용은 없습니다. 현재 기사를 잘못 읽고 이해 한 일련의 기사가 있습니다.
원래의 기사는 , 단지 말했다 (내가 의역하고 있습니다)
해커 가 Magento 파일에 액세스 할 수 있으면 고객의 정보를 캡처 할 수 있습니다
핵심은 해커가 실제로 서버에 액세스하고 파일을 수정해야하는 부분입니다.
당황하지 마십시오 ... 이것은 마 젠토에만 해당되는 것이 아닙니다.
정보 캡처 측면에서, 다른 웹 사이트 / 플랫폼보다 Magento에만 해당되는 것은 없습니다. 해커가 파일에 액세스하면 게임이 효과적으로 끝납니다. 원하는 정보를 캡처 할 수 있습니다.
지불 처리 업계의 PCI 보안 표준을 준수하는 우수한 보안 정책을 유지하는 것이 최선의 방법이며 궁극적으로 수행해야하는 최소한의 방법입니다. https://www.pcisecuritystandards.org /documents/Prioritized_Approach_for_PCI_DSS_v3_.pdf
상점 강화
해커의 표면 공격 영역을 크게 줄이거 나 적어도 침입자가 들어 오면 진행 속도를 늦추는 상점의 측면을 실제로 잠글 수 있습니다.
권한 잠금
필수 디렉토리 ( /var
및 /media
)에 쓰기 만 허용하도록 문서 루트에 대한 권한을 제한 할 수 있습니다.
이것이 기본적으로 MageStack 에서 수행하는 작업입니다 .
echo -n "Fixing ownership"
chown -R $SSH_USER:$WEB_GROUP $INSTALL_PATH && echo " ... OK" || echo " ... ERROR"
INSTALL_PATH="/path/to/public_html"
chmod 750 $INSTALL_PATH
find $INSTALL_PATH -type d ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing file permissions"
find $INSTALL_PATH -type f ! -perm 740 -exec chmod 740 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing cron permissions"
find $INSTALL_PATH/*/cron.sh -type f ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var file permissions"
chmod -R 760 $INSTALL_PATH/*/media $INSTALL_PATH/*/var && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var directory permissions"
find $INSTALL_PATH/*/media $INSTALL_PATH/*/var -type d ! -perm 770 -exec chmod 770 {} \; && echo " ... OK" || echo " ... ERROR"
INSTALL_PATH,SSH_USER,WEB_GROUP
적합하게 조정하십시오 . 중요한 것은 SSH_USER
PHP가 웹 서버 프로세스에 사용하는 사용자와 동일하지 않다는 것 입니다. 그렇지 않으면 본질적으로 웹 서버에 대한 완전한 쓰기 액세스를 제공해야합니다 (모든 이점을 완화 함).
관리자 / 다운로더 액세스 잠금
MageStack에서 이것을 설정합니다. ___general/x.conf
set $magestack_protect_admin true;
set $magestack_protect_downloader true;
Nginx에서는 이것을 사용할 수 있습니다.
location ~* ^/(index.php/)?admin{
satisfy any;
allow x.x.x.x;
auth_basic "Login";
auth_basic_user_file /microcloud/data/domains/x/domains/x/___general/.htpasswd;
deny all;
location ~* \.(php) {
include fastcgi_params;
}
try_files $uri $uri/ /admin/index.php ;
}
여기 에 .htpasswd
파일 을 준비하는 방법에 대한 약간의 문서가 있습니다.
cron.sh
프로세스 랩
cron / admin 사용을 위해 전용 시스템을 사용하는 다른 호스팅 제공 업체를 접했습니다. 즉, cron.sh
파일 을 수정 하면 cron / admin에서 원격 코드 실행에 액세스 할 필요가 없습니다. 위조 루트에서 올바른 사용자로 프로세스를 마무리하면 프로세스를 잠글 수 있습니다.
게시 할 코드가 너무 많지만 여기 에 스크립트가 있습니다 . MageStack에만 해당되지만 덜 우아한 서버 구성에서 사용하도록 조정할 수 있습니다. :)
감사, 감사, 감사
Linux는 로깅 및 활용 측면에서 환상적이며 서버가 수행하는 작업에 대한 완전한 통찰력을 제공합니다.
MageStack의 환상적인 기능은 모든 종류의 액세스 및 파일 변경 사항을 매일 기록 하는 감사 도구 입니다. 여기에서 로그를 찾을 수 있습니다.
/microcloud/logs_ro
|-dh[0-9]+
|---access-YYYY-MM-DD.log.gz
|---backup-YYYY-MM-DD.log.gz
|---magescan-YYYY-MM-DD.log.gz
|---php-differential-YYYY-MM-DD.log.gz
|-acc[0-9]+
|---access-YYYY-MM-DD.log.gz
MageStack을 사용하지 않는 경우 rsync
가장 간단한 도구 인 자체 호스팅 제공 업체와 함께이 중 일부를 아주 쉽게 복제 할 수 있습니다 .
예 : 백업이 로컬에서 사용 가능한 경우 다음을 수행 할 수 있습니다. 이것은 두 디렉토리를 건식 실행하고 diff 패치 목록을 생성합니다.
rsync -na /path/to/public_html/ /path/to/backup/public_html/ > change.log
grep -E '\.php$' change.log | while read FILE; do
diff -wp /path/to/public_html/$FILE /path/to/backup/public_html/$FILE >> php-differential.log
done
PHP 변경은 너무 드물기 때문에 매일 (또는 매일 여러 번) 실행되도록 예약하고 PHP 파일 변경이있을 경우 이메일로 알려줄 수 있습니다.
요약해서 말하자면
- 변경 사항을 추적하기 쉬운 버전 관리를 사용하십시오.
- SSL 인증서 만 있으면 사이트를 안전하게 만들 수 없습니다.
- 보안을 고려하기 위해 해킹되기를 기다리지 마십시오
- 결제 게이트웨이 제공 업체 (정보 캡처 대)로 리디렉션한다고해서 PCI 준수를 피할 수 있다는 의미는 아니지만 여전히 준수해야합니다.
- 사전 예방 적, 안전 및 철저한 관리-모듈 코드를 설치하기 전에 확인하고, 매일 PHP 파일을 확인하고, 로그를 검토하고, FTP / SSH 액세스를 확인하고, 정기적으로 비밀번호를 변경하십시오.
고객은 모든 개인 정보를 전달할 때 엄청난 신뢰를 받고 있습니다. 안전한 비즈니스를 운영하지 않아서 그 신뢰를 배신하면 고객의 관습과 미래의 모든 관습을 잃게됩니다.
PCI 포렌식 조사는 엄청나게 비싸고 시간이 많이 걸리며 궁극적으로 카드 결제를 다시 할 수 없게 될 위험이 있습니다. 자신을 그 자리에 두지 마십시오!
패치 받기
요즘 Magento에서 원격 코드 실행을 허용하는 패치를 포함한 일련의 패치가 수정되었습니다. https://www.magentocommerce.com/products/downloads/magento/에서 가져올 수 있습니다.
그러나이 새로운 기사는 새로운 익스플로잇을 언급하는 것이 아니라 해커가 과거의 익스플로잇 (또는 다른 공격 경로)을 활용하여 카드 소지자 정보를 캡처 할 수있는 방법을 설명하고 있습니다.
출처