Ref: https://www.blognone.com/node/150163
- ประเด็นคือ axios โดยวาง trojan ไว้ ซึ่งมันจะทำงานเมื่อ axios ที่ติด malware ทำงานมันจะติดตั้ง plain-crypto-js เพิ่มเข้าไป ใน projecct และ แล้วไปควานหาข้อมูลที่สำคัญทุกอย่างใน .env แล้วส่งข้อมูลออกไปให้ ผู้ไม่ประสงค์ดี remote access trojan (RAT) นำไปใช้เจาะระบบท่านต่อไป และมันจะถอน lib plain-crypto-js ออกไปแบบเนียนๆ เลย
- axios ที่โดน version 1.14.1 และ 0.30.4
- เราจะตรวจสอบใน container เราอย่างไรล่ะทีนี้
Solved
วิธีแรกรันจาก host แม่ได้เลย
$ docker exec mynode_name_container npm ls axios
วิธ๊ที่สอง เข้าไปใน container ก่อนแล้วรันคำสั่งและ exit ออกมา
$ docker exec -it mynode_name_container sh
- แล้วรันคำสั่งตรวจสอบ ใน container ต่อได้โดย
# npm ls axios
/usr/src/app # npm ls axios
nodeslide@1.0.0 /usr/src/app
`-- axios@1.xx.2
- แบบนี้รอดคับ
- หรือ yarn โดย
# yarn list --pattern axios
วิธีที่สามลองตรวจสอบดูว่า โปรเจคมี plain-crypto-js ติดตั้งไว้หรือไม่
# npm ls plain-crypto-js
- ถ้าผลลัพธ์ได้ -- (empty) ก็โชคดีไป
กรณีโดนแล้ว
- ให้ไป revoke token key ของ บริการที่เราเรียกใช้ใน project ที่มีใน .env ก่อนเลย แล้ว invoke ใหม่
- จากนั้น ไปแก้ไข package.json แล้ว แก้ axios version ไปใช้ตัวใหม่ล่าสุด ที่ไม่ใช่ 1.14.1 และ 0.30.4 แล้วบันทึกไฟล์ให้เรียบร้อย
sudo nano ./package.json
- ลบ folder ชื่อ node_mudules และ ไฟล์ package.lock.json ออก
sudo rm -rf ./node_modules && sudo rm ./package.lock.json
- แล้วติดตั้ง lib ใหม่
sudo npm install