Webサーバーユーザーにアプリコードを書き換えさせない
アップロードフォルダではスクリプトを実行させない
コンテナイメージを読み取り専用にする
Webルートへファイル改ざん監視を導入する
www-dataやnginxユーザーからのシェル起動を検知する
Webプロセスからcurl、wget、bash、shが起動されたら警告する
一時領域からの実行を監視する
Djangoでアップロードファイルを扱う場合は、アップロード先を静的配信専用にし、Python、PHP、JSP、CGIなどとして実行されない構成にします。
侵害後のC2通信やトンネル確立を防ぐため、サーバーからインターネットへの通信を必要最小限に制限します。
許可:
OS更新
Dockerレジストリ
DNS
NTP
必要な外部API
監視・バックアップ先
原則拒否:
任意IPへのTCP 443
任意IPへのUDP 8080
不明なSOCKS通信
未申請の外部SSH
すべての443番通信を許可すると、攻撃者は通常のHTTPSに紛れてC2通信を行えます。
次の添付ファイルを重点的に制限します。
.lnk
.vbs
.js
.jse
.wsf
.hta
.msi
.scr
.iso
.img