質問に対する具体的な回答については、https://magento.stackexchange.com/a/72700/361を参照してください
バックグラウンド
第一に、特定のエクスプロイトはありません -現時点でラウンドを行っている一連の記事があり、ソース記事を誤読し誤解しています。
元の記事は、単に言った(と私は言い換えています)
ハッカーが Magentoファイルにアクセスできた場合、ハッカーは顧客から情報を取得できます。
重要な部分は、実際にサーバーにアクセスしてファイルを変更する必要があるハッカーです。
パニックにならないでください... これは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が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は、ログインとタップの点で素晴らしいため、サーバーが何をしているのかを完全に把握できます。
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
は最も簡単なツールです。
例えば。バックアップがローカルで使用可能な場合は、次のことを実行できます。これにより、2つのディレクトリがドライランで比較され、差分パッチリストが作成されます。
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/
しかし、これらの新しい記事は新しいエクスプロイトについて言及しているのではなく、ハッカーがカード所有者情報を取得できるように歴史的なエクスプロイト(またはその他の攻撃ベクトル)をどのように活用しているのかを単に示しています。
ソース