สำหรับคำตอบเฉพาะสำหรับคำถามของคุณโปรดดูที่/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 โดยไม่จำเป็นต้องเข้าถึง การรวมกระบวนการกับผู้ใช้ที่ถูกต้องใน fakechroot สามารถทำให้บิตนั้นดำเนินต่อไปเพื่อล็อคกระบวนการ
มีรหัสมากเกินไปสำหรับฉันที่จะโพสต์ แต่มีสคริปต์ที่นี่ที่นี่เฉพาะกับ 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
เป็นเครื่องมือที่ง่ายที่สุดในการทำ
เช่น. หากการสำรองของคุณอยู่ในเครื่องคุณสามารถทำสิ่งต่อไปนี้ สิ่งนี้จะเรียกใช้แบบแห้งเปรียบเทียบสองไดเร็กทอรีและสร้างรายการ patch ที่แตกต่างกัน
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/
แต่บทความใหม่เหล่านี้ไม่ได้อ้างถึงการหาประโยชน์ใหม่พวกเขาเพียงแค่ระบุว่าแฮ็กเกอร์ใช้ประโยชน์จากการหาประโยชน์ทางประวัติศาสตร์ (หรือเวกเตอร์โจมตีอื่น ๆ ) เพื่อให้สามารถจับข้อมูลผู้ถือบัตรได้อย่างไร
แหล่งที่มา