【要約】1日数人の個人サイトが1か月で33万回攻撃されていた — その後 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
個人サイト運営者が、月間33万回に及ぶSSHログイン試行攻撃に直面した。攻撃の継続による管理コストの増大と、移行作業時の設定ファイル放置による情報漏洩のリスクが深刻な課題となった。
- ・ボットによる執拗なログイン試行が止まらず、管理者の疲弊を招く。
- ・移行作業時に残したnginx設定ファイルや作業ログが公開領域に放置されている。
- ・セキュリティ監査用のfindコマンドの探索深度が浅く、不備を見逃している。
// Approach
運営者は、攻撃の被害軽減と設定不備の発見のために、防御策の導入と監査の強化を行った。具体的には、自動遮断ツールの導入、ログの自動集計、および探索範囲を広げたファイル検索を実施した。
- ・fail2banによる攻撃元IPの自動遮断。
- ・cronを用いた月次ログ集計スクリプトの運用。
- ・findコマンドの-maxdepthを4から6へ拡張したファイル探索。
- ・削除前にnginxアクセスログを確認し、実害の有無を判定する手順の徹底。
// Result
対策の結果、攻撃の試行回数は減らないものの、管理者の疲弊を抑える仕組みを構築できた。また、探索深度の改善により、これまで見逃していた機密情報の残骸を特定・排除することに成功した。
- ・fail2banにより導入後1週間で66件のIPを遮断。
- ・depth 5以降に存在したnginx設定ファイルや作業ログを特定。
- ・削除対象ファイルへの外部アクセスがゼロであることをログで確認し、安全に退避・削除を完了。
Senior Engineer Insight
> 本記事は、セキュリティ対策の「実効性」と「監査の精度」という、現場で陥りがちな罠を突いている。fail2banは攻撃を止めるものではなく、管理コストを制御する手段であるという認識は極めて正しい。また、findコマンドのdepth不足による見落としは、大規模環境でも起こり得る致命的なミスだ。自動化と、前提条件(ディレクトリ構造)の再確認が、運用の継続性を担保する鍵となる。