"สิ่งที่ต้องลอง"
สุ่มตัวอย่าง / poking รอบ ๆ
- โอกาสในการค้นหาผู้กระทำผิด: 50%
- นี่คือสิ่งที่สมมติว่าคุณรู้ว่าคุณกำลังดูอะไรอยู่
ดูที่ตำแหน่งต่อไปนี้สำหรับคำสั่งที่ผิดปกติ / ไม่คาดคิด:
~/bin
ของผู้ใช้แบบโต้ตอบใด ๆ
ps -ef
(เหมือนรูท) สำหรับทุกสิ่งที่คุณไม่รู้ว่ามันคืออะไร
crontab -e
เพื่อแก้ไขไฟล์crontab
(ตาราง cron) เพื่อตรวจสอบว่ามันถูกเรียกใช้เป็นงาน cron ทุก ๆ X นาที / ชั่วโมง / วัน
~/.profile
หรือ~/.bashrc
ของผู้ใช้ใด ๆ
/usr/local/bin
สำหรับไฟล์ใด ๆ ที่ไม่ได้เป็นส่วนหนึ่งของแพ็คเกจที่จัดการ
/opt
- อินสแตนซ์ของภาษาสคริปต์: bash, java, perl, python, ruby และอื่น ๆ - ที่คุณยังไม่ได้เริ่มหรือมี
PPID
(parent PID) ที่ps
ไม่นำต้นไม้ไปสู่กระบวนการที่คุณคุ้นเคยและรู้จัก ไม่ได้ทำมัน
- ดูว่าพวกเขาตั้งชื่อไฟล์สคริปต์ / ไฟล์ที่เรียกใช้งานได้เช่นเดียวกับไดเรกทอรี:
find / -iname \*nightly\*
(อาจส่งคืนผลบวกปลอมจำนวนมากดังนั้นการเพิ่มอาจ| less
จะเป็นการระมัดระวัง)
มีวิธีอื่น ๆ อีกมากมายที่พวกเขาสามารถทำได้เช่นจากเซิร์ฟเวอร์แอปพลิเคชัน Java สคริปต์ Perl CGI ฯลฯ แต่สิ่งเหล่านี้เป็นการเริ่มต้น
Hackish Quick-n-Dirty วิธีการสำรวจความน่าเชื่อถือแบบกึ่ง
- โอกาสในการค้นหาผู้กระทำผิด: 95%
- ความยาก: ง่าย (เพียงแค่เรียกใช้สคริปต์นี้ฉันแฮ็คด้วยกันใน 5 นาที)
nohup lsof -r 2 +D /var/www/html/nightlybackup 2>&1 | gzip > nightlybackup-writers.txt.gz &
ในระยะสั้น:
nohup
ป้องกันไม่ให้บรรทัดคำสั่งออกเมื่อคุณปิดเทอร์มินัลหรือเซสชัน SSH
lsof
"แสดงรายการไฟล์ที่เปิด" และทำซ้ำในไดเรกทอรี ( +D
) ซ้ำๆ เรื่อย ๆ ( -r
) และรีเฟรชทุก 2 วินาที
- gzip ผลลัพธ์ในกรณีที่คุณได้รับมากเพื่อป้องกันการกรอกดิสก์ของคุณอย่างรวดเร็ว
- คุณสามารถดูผลลัพธ์ได้ด้วย
zless
คำสั่ง
คำสั่งนี้อาจมีผลกระทบต่อประสิทธิภาพอย่างมีนัยสำคัญโดยเฉพาะอย่างยิ่งใน (1) เมล็ดเก่าหรือ (2) ระบบที่ใช้ HDD ดังนั้นให้เรียกใช้เป็นเวลาสั้น ๆ และพิจารณาว่าใช้ CPU / ดิสก์มากแค่ไหนและถ้ามันมากเกินไปให้ฆ่ากระบวนการ
คุณจะต้องปล่อยให้มันทำงานในช่วงเวลาที่กระบวนการสำรองข้อมูลทุกคืนดำเนินการ โดยทั่วไปจะเป็นกรณีของกลไกใด ๆ ที่สามารถตรวจจับโปรแกรมนี้ได้อย่างน่าเชื่อถือ
สุดยอดสวิสกองทัพบก
- โอกาสในการค้นหาผู้กระทำผิด: 99.999999%
- ความยาก: สุดขีด (ต้องใช้ความรู้ระดับผู้พัฒนาระบบปฏิบัติการหรือได้รับโชคดีและคัดลอกสคริปต์ที่สร้างไว้ล่วงหน้าตามที่คุณต้องการ)
ทั้งDTraceและSystemTapเป็นเครื่องมือที่ดีที่สุดสำหรับการตรวจสอบระบบสำหรับรูปแบบเฉพาะของกิจกรรม DTrace นั้นดีกว่า arguably แต่หลายคนคิดว่ามันเป็นการโยนหรือ SystemTap นั้นดีกว่าเพราะมันเป็น "native" ของ Linux (DTrace ถูกเพิ่มเข้ามาในภายหลังหลังจากถูกออกแบบมาสำหรับ Solaris)
คุณสามารถสร้างคำสั่ง / สคริปต์ DTrace หรือ SystemTap เพื่อดักจับผู้ที่กำลังเขียนเส้นทางใด ๆ ในไดเรกทอรีนั้น นี่เป็นตัวอย่างที่ผิดพลาดบนเซิร์ฟเวอร์พร้อมกับการเชื่อมโยงที่มีประโยชน์ในการฆ่าของDTrace หนึ่งสมุทร จากนั้นเพียงแค่ให้มันทำงานในพื้นหลัง (เช่นผ่านscreen
หรือnohup
) และรอจนกว่าการสำรองข้อมูลตีและคุณจะได้รับชื่อกระบวนการและ PID
ถ้าคุณไม่มีรูทคิทและรูทคิทนั้นถูกออกแบบมาเพื่อปกปิดกิจกรรมของมันจาก DTrace / SystemTap และสมมติว่าคุณได้รับคำสั่ง DTrace หรือ SystemTap แล้วสิ่งนี้จะพบสิ่งที่กำลังทำอยู่ แต่มันก็เป็นวิธีที่ยากที่สุด