Linux
MySQL 在 AWS AMI 上被黑:“付費取回數據”——這怎麼可能,下次如何避免?
今天早上我注意到我在 EC2 實例上託管的一些網站無法正常工作。當我驗證MySql數據庫時,它被消滅了!:( 我發現的唯一一件事是只有一條記錄告訴我我被黑客入侵了,如果我想找回我的數據就需要付費 :D ……無論如何。
他們是如何設法進入我的數據庫的?我現在應該採取哪些步驟來保護我的實例/數據庫?
這是我的 MySql 日誌,如果有人能看一下並告訴我一些關於:
2017-03-18 15:27:19 14056 [Note] InnoDB: Shutdown completed; log sequence number 5692547 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'PERFORMANCE_SCHEMA' 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'BLACKHOLE' 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'CSV' 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'MEMORY' 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'MyISAM' 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'MRG_MYISAM' 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'sha256_password' 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'mysql_old_password' 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'mysql_native_password' 2017-03-18 15:27:19 14056 [Note] Shutting down plugin 'binlog' 2017-03-18 15:27:19 14056 [Note] /usr/libexec/mysql56/mysqld: Shutdown complete 2017-03-18 15:27:20 12178 [Note] Plugin 'FEDERATED' is disabled. 2017-03-18 15:27:20 12178 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-03-18 15:27:20 12178 [Note] InnoDB: The InnoDB memory heap is disabled 2017-03-18 15:27:20 12178 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-03-18 15:27:20 12178 [Note] InnoDB: Memory barrier is not used 2017-03-18 15:27:20 12178 [Note] InnoDB: Compressed tables use zlib 1.2.8 2017-03-18 15:27:20 12178 [Note] InnoDB: Using Linux native AIO 2017-03-18 15:27:20 12178 [Note] InnoDB: Using CPU crc32 instructions 2017-03-18 15:27:20 12178 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2017-03-18 15:27:20 12178 [Note] InnoDB: Completed initialization of buffer pool 2017-03-18 15:27:20 12178 [Note] InnoDB: Highest supported file format is Barracuda. 2017-03-18 15:27:20 12178 [Note] InnoDB: 128 rollback segment(s) are active. 2017-03-18 15:27:20 12178 [Note] InnoDB: Waiting for purge to start 2017-03-18 15:27:20 12178 [Note] InnoDB: 5.6.35 started; log sequence number 5692547 2017-03-18 15:27:20 12178 [Note] RSA private key file not found: /var/lib/mysql//private_key.pem. Some authentication plugins will not work. 2017-03-18 15:27:20 12178 [Note] RSA public key file not found: /var/lib/mysql//public_key.pem. Some authentication plugins will not work. 2017-03-18 15:27:20 12178 [Note] Server hostname (bind-address): '*'; port: 3306 2017-03-18 15:27:20 12178 [Note] IPv6 is available. 2017-03-18 15:27:20 12178 [Note] - '::' resolves to '::'; 2017-03-18 15:27:20 12178 [Note] Server socket created on IP: '::'. 2017-03-18 15:27:20 12178 [Note] Event Scheduler: Loaded 0 events 2017-03-18 15:27:20 12178 [Note] /usr/libexec/mysql56/mysqld: ready for connections. Version: '5.6.35' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL) 2017-03-18 16:06:17 12178 [Warning] IP address '27.18.88.215' could not be resolved: Name or service not known 2017-03-18 18:29:03 12178 [Warning] Hostname 'thinkdream.com' does not resolve to '14.192.9.41'. 2017-03-18 18:29:03 12178 [Note] Hostname 'thinkdream.com' has the following IP addresses: 2017-03-18 18:29:03 12178 [Note] - 103.206.122.114 2017-03-18 18:38:36 12178 [Warning] IP address '117.44.26.66' could not be resolved: Name or service not known 2017-03-18 19:37:22 12178 [Warning] IP address '49.4.143.152' could not be resolved: Name or service not known 2017-03-18 21:24:57 12178 [Warning] IP address '49.4.135.14' could not be resolved: Name or service not known 2017-03-18 22:03:15 12178 [Warning] IP address '171.221.233.50' could not be resolved: Name or service not known 2017-03-18 22:36:58 12178 [Warning] IP address '182.18.72.116' could not be resolved: Name or service not known 2017-03-18 23:05:57 12178 [Warning] IP address '146.0.72.199' could not be resolved: Name or service not known 2017-03-18 23:05:57 12178 [Warning] IP address '146.0.72.199' could not be resolved: Name or service not known 2017-03-18 23:51:04 12178 [Warning] IP address '49.4.142.104' could not be resolved: Name or service not known 2017-03-19 00:18:55 12178 [Warning] IP address '222.187.224.190' could not be resolved: Name or service not known 2017-03-19 00:22:02 12178 [Warning] IP address '49.4.135.189' could not be resolved: Name or service not known 2017-03-19 01:26:56 12178 [Warning] IP address '182.18.72.82' could not be resolved: Name or service not known 2017-03-19 01:49:36 12178 [Warning] IP address '118.193.165.12' could not be resolved: Name or service not known 2017-03-19 01:52:47 12178 [Warning] IP address '107.179.126.47' could not be resolved: Name or service not known 2017-03-19 01:55:14 12178 [Warning] IP address '49.4.142.189' could not be resolved: Name or service not known 2017-03-19 04:27:45 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:27:54 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:28:06 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:28:15 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:28:15 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:28:26 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:28:38 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:28:56 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:29:15 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:29:33 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:30:13 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:30:44 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:31:17 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:32:05 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:32:22 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:32:58 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 04:32:59 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 05:23:02 12178 [Warning] IP address '113.108.21.16' could not be resolved: Name or service not known 2017-03-19 07:18:40 12178 [Warning] IP address '61.177.139.252' could not be resolved: Name or service not known 2017-03-19 07:18:40 12178 [Warning] IP address '61.177.139.252' could not be resolved: Name or service not known 2017-03-19 08:59:45 12178 [Warning] IP address '49.4.142.178' could not be resolved: Name or service not known 2017-03-19 12:28:36 12178 [Warning] IP address '107.179.45.19' could not be resolved: Name or service not known 2017-03-19 15:47:23 12178 [Warning] IP address '103.37.45.166' could not be resolved: Name or service not known 2017-03-19 16:33:18 12178 [Warning] IP address '61.160.194.88' could not be resolved: Name or service not known 2017-03-19 18:09:59 12178 [Warning] IP address '139.196.18.68' could not be resolved: Name or service not known 2017-03-19 18:10:44 12178 [Warning] IP address '117.41.229.53' could not be resolved: Name or service not known 2017-03-19 21:00:33 12178 [Warning] IP address '182.18.72.81' could not be resolved: Name or service not known 2017-03-19 21:31:10 12178 [Warning] IP address '123.249.45.172' could not be resolved: Name or service not known 2017-03-19 21:40:05 12178 [Warning] IP address '123.249.27.92' could not be resolved: Temporary failure in name resolution 2017-03-19 21:52:52 12178 [Warning] Host name 'hostby.chnet.se' could not be resolved: Name or service not known 2017-03-20 00:33:24 12178 [Warning] IP address '122.114.224.10' could not be resolved: Temporary failure in name resolution 2017-03-20 00:41:00 12178 [Warning] IP address '106.111.128.184' could not be resolved: Name or service not known 2017-03-20 02:44:32 12178 [Warning] IP address '49.4.142.177' could not be resolved: Name or service not known
安全組規則顯示你為所有人打開了3306,很危險。
- 不允許從任何地方到 3306 的流量。
- 限制 3306 對已知 IP 的訪問,更好的選擇是通過 VPN 限制它的訪問。
- 添加日誌監控工具,以在出現任何惡意流量時通知您。
- 如果您的設置較小,請使用 Monit 監控日誌。
- MySQL 中嚴格的使用者策略。
還有很多其他的東西可以用來保護 MySQL。但最好從這些開始。
為了防止這種情況再次發生,您應該做的第一件事是替換您擁有的每個 MySQL 實例。
雖然我建議您不要考慮為數據付費,但如果必須,請保留一個實例,以便您取回該數據,然後儘快轉儲,檢查並重新檢查該轉儲,然後將其導入全新安裝.
如果您有能力不檢索數據,請將所有內容燒毀並重新開始。
@ xs2rashid的建議絕對是好的。當然考慮不允許任何您不需要的訪問 - 即將所有內容列入白名單,而不是使用黑名單。
我還建議您確保在節點上執行 mysql_secure_installation,並使用密碼管理器(例如 KeePass)生成強密碼。最好還是使用 CA/PKI - cfssl可以輕鬆生成您需要的證書。
您可能還想使用 fail2ban 來幫助阻止任何可疑事件(如何使用 Fail2ban 設置 MySQL 監控?),以防止網路保護中的錯誤。
您還將 SSH 暴露給世界,這意味著您幾乎肯定希望確保您使用公鑰身份驗證,禁止 root 登錄,並儘可能限制對 SSH 的訪問/登錄(例如限製網路訪問,並限制哪些使用者/允許組登錄)。
我傾向於認為您可能會從閱讀適合您的發行版的CIS 基準中受益,並考慮至少應用他們的一些建議。