Answers:
有关您问题的具体答案,请参见/magento//a/72700/361
首先,没有特定的漏洞利用 -目前有一系列文章在回合中被误读和误解了原始文章。
在原来的文章只是说(我意译)
如果黑客都能够得到你的Magento文件的访问,就可以从客户获取信息
关键部分是黑客需要实际访问您的服务器并修改文件。
在信息捕获方面,Magento没有比其他任何网站/平台更具体的信息。如果黑客能够访问您的文件,则其有效地结束了游戏-他们将能够捕获他们想要的任何信息。
您可以做的最好的事情(最终是应该做的最少的事情)是维护遵循支付处理行业的PCI安全标准的良好安全策略,您可以在此处找到列表,https://www.pcisecuritystandards.org /documents/Prioritized_Approach_for_PCI_DSS_v3_.pdf
您可以真正锁定商店的各个方面,从而大大减少黑客的表面攻击范围,或者至少在他们设法进入/入侵时减慢其进程
您可以限制对文档根目录的权限,以仅允许写入基本目录(/var
和/media
)
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用于Web服务器进程的用户不是同一用户,否则,您实际上将提供对Web服务器的完全写访问权限(减轻任何好处)。
在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而言,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
是最简单的工具。
例如。如果您的备份在本地可用,则可以执行以下操作。这将对两个目录进行空运行比较,并生成一个差异补丁列表。
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文件更改时通过电子邮件通知您。
当客户传递所有私人信息时,他们将对您产生极大的信任-如果您通过不经营安全的业务而背离了信任,您将失去他们的风俗和所有未来的风俗。
PCI取证调查非常昂贵,费时,并最终冒着您再次可以进行卡付款的能力。永远不要让自己处于这个位置!
最近,Magento发布了一系列补丁,修复了漏洞,其中包括一些允许远程执行代码的漏洞。您可以在这里https://www.magentocommerce.com/products/downloads/magento/获取它们。
但是这些新文章并不是指新的漏洞利用,它们只是在说明黑客如何利用历史漏洞(或任何其他攻击媒介)来捕获持卡人信息。
资料来源
我要添加另一个答案只是因为我的另一个人实际上并没有回答问题-而且肯定不需要再回答该问题了!
最终,你不能。有时会有一些指标使其脱颖而出,
例如。
但是,如果内容不只是纯文本格式,则消化二进制文件的内容以确定内容可能特别困难。
最常见的攻击我见过不涉及纯文本数据写入一个文件.jpg|png|gif|etc
扩展名,他们通常涉及某种编码/加密混淆的数据(例如,base64
或mcrypt
等)。这意味着一个简单的grep将不起作用。
您可以(这绝不是详尽无遗)...
查找异常大文件
find \
/path/to/public_html/skin \
/path/to/public_html/media \
-type f -size +20M 2>/dev/null
查找与CC正则表达式匹配的文件
grep -lE '([0-9]+\-){3}[0-9]{4}|[0-9]{16}' \
/path/to/public_html/skin \
/path/to/public_html/media 2>/dev/null
检查图像文件是否有效
find \
/path/to/public_html/skin \
/path/to/public_html/media -type f \
-regextype posix-egrep -regex '.*\.(jpg|gif|png|jpeg)' |\
xargs identify 1>/dev/null
要么
find \
/path/to/public_html/skin \
-name '*' -exec file {} \; | grep -v -o -P '^.+: \w+ image'
比较安装文件的最简单方法是将核心文件与干净副本进行比较。这不会考虑您的主题文件,但是对于检查安装中的数千个文件有很大帮助。
这个过程真的很简单,
例如。对于Magento 1.7.0.2版本
wget sys.sonassi.com/mage-install.sh -O mage-install.sh
bash mage-install.sh -d -r 1.7.0.2
tar xvfz latest-magento.tar.gz
diff -w --brief -r magento-ce-*/app/code/core app/code/core
diff -w --brief -r magento-ce-*/lib lib
请记住,(令人讨厌的)未修补较旧的Magento版本,因此进行核心差异将导致显示更改。为避免这种情况,请将补丁程序应用于新下载的干净源,然后再进行比较。
很棒的职位,但不幸的是,并非所有事物都是平等的。
当共享托管变得流行时,人们被认为更重要的是不允许人们在同一服务器上查看其他人的内容。在FreeBSD监狱问世之前,这意味着:
这允许帐户所有者修改(然后)HTML文件,同时,Web服务器进程和帐户所有者都无法访问同一台计算机上的其他文件。
这并没有太大改变,针对共享托管量身定制的软件包(CPanel,DirectAdmin,Plex)都使用了这些原则。这意味着主要入口点(Web服务器和/或脚本解释器)可以写入帐户中的任何文件,从而使文件权限无用。
向CC付款提供商通知CC数据是否确实发送到您的服务器,如果是,则以未加密的形式发送给服务器。如今,JavaScript非常强大,并且有付款服务提供商,它们使用客户的JavScript引擎对敏感信息进行加密,然后再传输到服务器。尽管此信息收集器有可能获取会话密钥以及加密的数据(从而能够对其进行解密),但对于收集器来说,它的兴趣就不那么大了,因为收集到的数据更大且机器人的AI更加复杂。
超过15年的Unix,当我看到TripWire的转世时,它仍然带给我怀旧的微笑。Git也是一个很好的工具。与已知的好的版本相比,要少一些,因为它没有考虑添加,因此在这里再次git是一个好的工具,因为站点本地修改比原始安装更频繁。
将downloeader移到文档根目录之外就像安装某种形式的HTTP身份验证一样容易。然后仅在使用时放回去。如果那不切实际,那么我更喜欢根据远程地址而不是另一个用户/密码层将其锁定,尤其是那些以纯文本形式发送密码的用户/密码层。
Web应用程序防火墙可以防止很多问题,而这些问题已经处于攻击的扫描阶段。不幸的是,这些都是昂贵的黑匣子,但存在一些替代方法:
我认为我们涵盖了很多内容,但让我以petpeeve结尾:
停止使用FTP
那里。我说了。在这里开始:https : //wiki.filezilla-project.org/Howto