Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
github.com/mdigger/mx-http-proxy
Приложение запускается как сервис и позволяет выполнять через REST API команды на удаленном сервере Zultys MX. Для отслеживания событий сервера Zultys MX используется Server-Sent Events API.
Сервер включает в себя описание поддерживаемого API в виде документа в формате OpenAPI 3.0 (HTML view). Так же поддерживается визуальное представление данного документа при обращении к корню сервиса.
POST /login HTTP/1.1
Host: localhost:8000
Content-Type: application/json; charset=utf-8
Content-Length: 144
{
"login":"login",
"password":"password",
"type":"User",
"platform":"iPhone",
"version":"7.0",
"loginCapab":"Audio",
"mediaCapab":"Voicemail|CallRec"
}
HTTP/1.1 200 OK
Server: MX-HTTP-Proxy/0.1.3 (2ce6c32)
X-API-Version: 1.0.2
Access-Control-Allow-Origin: *
Content-Type: application/json; charset=utf-8
Content-Length: 180
{
"token": "81snQUFPMDs7GEye",
"user": "43892780322813134",
"device": "273",
"softPhonePwd": "nfsi8ohraw2ReJtjCuE7f3KyTWc2doUi",
"api": 11,
"mx": "631HC"
}
Все настройки сервиса осуществляются через параметры для запуска.
-port <port>
Задает имя хоста (опционально) и порт, на котором будет отвечать HTTP-сервер.
Так же может быть задано через переменную окружения PORT
.
-mx <mxhost>
Задает адрес сервера Zultys MX. Если порт не указан, то по умолчанию используется порт 7778
.
Так же может быть задано через переменную окружения MX
:
$ export MX=mxhost.connector73.net
Внимание: незащищенное соединение с сервером Zultys MX не поддерживается!
-log <params>
Для вывода лога используется stderr
. Если необходимо переопределить вывод лога в файл, то можно воспользоваться следующим методом:
$ ./mx-http-proxy 2>mx-http-proxy.log
Вы можете задать уровень сообщений для вывода в лог:
all
- выводить все записи логаtrace
- выводить все записи лога, начиная от команд и событий от сервера MXdebug
- выводить все записи лога, начиная с отладочных выводов, но исключая вывод команд и событий сервера MXinfo
- выводить все записи лога, начиная от информационных, но исключая отладочные данныеwarn
- не выводить информационных сообщений лога, а только об ошибках и предупрежденияхerror
- выводить только сообщения об ошибкахnone
- вообще отключить вывод логаТак же можно задать формат вывода лога:
json
- использовать формат JSON для вывода логаconsole
- использовать консольный формат для вывода логаcolor
- использовать консольный формат с цветовым выделением для вывода логаdevelop
- аналогичен формату color
, но значения атрибутов лога выводит с новой строкиПо умолчанию используется консольный формат и выводятся все информационные сообщения, предупреждения, а так же сообщения об ошибках. Отладочные сообщения и команды с событиями сервера MX в лог не выводятся, если это явно не задано.
Можно задать сразу несколько значений параметра лога, указав их через запятую или двоеточие:
./mx-http-proxy -log dev,all
Настройки лога по умолчанию можно изменить для всех приложений, задав их в виде переменной окружения LOG
:
$ export LOG=COLOR
Или только для однократного запуска приложения:
$ LOG=DEV ./mx-http-proxy -mx localhost
Вывод лога в формате JSON позволяет легче разбирать его программным образом:
$ ./mx-http-proxy -log json,all
{"ts":1533494002,"lvl":0,"msg":"service","name":"MX-HTTP-Proxy","version":"dev"}
{"ts":1533494002,"lvl":0,"log":"http","msg":"server","listen":"localhost:8000","tls":false,"url":"http://localhost:8000/"}
Сообщения, относящиеся к командам сервера MX используют тип лога - mx
, а для информации об обработке HTTP-запросов используется - http
. Все остальные выводы обычно не используют префикс:
21:52:50.512539 INFO service name=MX-HTTP-Proxy version=dev date=2018-08-05 build=063525b
21:52:50.512949 INFO [http]: server listen=localhost:8000 tls=false url=http://localhost:8000/
21:53:00.036338 TRACE [mx]: dmtest3: <- 0001 <loginRequest type="User" platform="iPhone" version="7.0" loginCapab="Audio" mediaCapab="Voicemail|CallRec"><userName>dmtest3</userName><pwd>nnke/C/yi/f...U5OVTqg5joXHc=
</pwd></loginRequest>
21:53:00.070054 TRACE [mx]: dmtest3: -> 0001 <loginResponce Code="0" sn="631HC" apiversion="11" ext="273" userId="43892780322813134" softPhonePwd="yTEuJ15RheF2...BogZXzp27fAqc334X" proto="TLS" mxport="5061" clientport="1234" >Login OK</loginResponce>
21:53:00.070779 DEBUG store connection login=dmtest3 token=m_r3PY2i1jkxNo6W
21:53:00.071176 INFO [http]: POST /login code=200 user=dmtest3 size=180 duration=144.83142ms gzip=false
21:53:01.821825 TRACE [mx]: dmtest3: <presence from="0" status="Available" mxStatus=""></presence>
21:53:01.822540 DEBUG sse user=dmtest3 event=presence data={"presence":"Available"}
Данный сервис доступен в виде образов Docker:
$ docker pull mdigger/mx-http-proxy
$ docker run --rm \
-p 8000:8000 \
-e MX=631hc.connector73.net \
mdigger/mx-http-proxy -log all,color
По адресу /debug/vars
доступны описания некоторых метрик сервиса в формате JSON, которые могут быть использованы для мониторинга.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.