سالمیت کی نگرانی اُس سوال کا جواب دیتی ہے جس کا جواب نہ اینٹی وائرس دیتا ہے نہ فائروال: اس سرور پر پچھلے ہفتے سے کیا بدلا۔ دستخط اسکینر معلوم بری چیزیں ڈھونڈتا ہے؛ AIDE برائی کے بارے میں کچھ نہیں جانتا، وہ صرف جانتا ہے کہ یہ فائل کل مختلف تھی۔ اور کسی موجود فائل کے آخر میں جوڑے گئے پچھلے دروازے کو ڈھونڈنے کے لیے یہی واحد کارگر طریقہ ہے۔

AIDE دو کمانڈوں سے نصب ہوتا ہے۔ اسے یوں مرتب کرنا کہ اس کی رپورٹیں پڑھی جائیں، مشکل تر حصہ ہے — اور عموماً یہی اسے مار دیتا ہے: پہلی رپورٹ دس ہزار سطروں کے ساتھ آتی ہے، دوسری کو کوئی کھولتا ہی نہیں، اور ایک مہینے بعد وہ کام مٹا دیا جاتا ہے۔

تنصیب اور پہلا ڈیٹابیس

sudo apt install aide aide-common
sudo aideinit

ابتدائی عمل چند منٹ سے آدھے گھنٹے تک لیتا ہے: ہر فائل کے لیے ہیش نکالے جاتے ہیں۔ نتیجہ کام کے ڈیٹابیس کے ساتھ .new لاحقے کے ساتھ رکھا جاتا ہے، اور اسے کام میں لانا پڑتا ہے:

sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

اور اس کے بعد جانچ یوں چلتی ہے:

sudo aide --check

رپورٹ پڑھنے کے قابل رہے، اس کے لیے کیا خارج کریں

ترتیبات /etc/aide/aide.conf اور ڈائریکٹری /etc/aide/aide.conf.d/ میں رہتی ہیں۔ Debian کی معیاری ترتیب حد سے زیادہ جانچتی ہے، اور پہلا کام یہ ہے کہ وہ سب ہٹا دیا جائے جو مسلسل خود بدلتا رہتا ہے:

  • /var/log — ہر سیکنڈ بدلتا ہے؛
  • پورا /var/lib — ڈیٹابیس، پیکجوں کی حالت، سروسز کی حالت؛
  • /var/cache، /tmp، /proc، /sys، /run؛
  • سائٹ کی اپ لوڈ اور کیش ڈائریکٹریاں — ان کا مواد زائرین بدلتے ہیں۔

اور سخت ترین ترتیبات کے ساتھ جانچنے کے قابل ایک تنگ فہرست ہے:

  • /bin، /sbin، /usr/bin، /usr/sbin — نظام کی قابلِ عمل فائلیں؛
  • /lib، /usr/lib — لائبریریاں؛
  • /etc — ترتیبات؛
  • /root/.ssh اور آپ کے صارفین کی .ssh ڈائریکٹریاں؛
  • سائٹ کا کوڈ، مگر اپ لوڈ اور کیش ڈائریکٹریوں کے بغیر۔

پیمانہ: ایک عام روزانہ رپورٹ ایک اسکرین میں سما جانی چاہیے۔ اگر وہ لمبی ہو تو استثناء ناکافی ہیں اور اسے پڑھنا چھوڑ دیا جائے گا۔

ڈیٹابیس کہاں رکھیں

ایک اہم نکتہ جو اکثر رہ جاتا ہے۔ اگر کسی اور کے پاس root ہو تو فائل بدل کر فوراً AIDE کا ڈیٹابیس تازہ کر دینا اس کے لیے کچھ بھی نہیں — اور اس کے بعد کی جانچ بتائے گی کہ سب ٹھیک ہے۔ اسی مشین پر پڑا ہوا اور قابلِ تحریر ڈیٹابیس صرف حادثات سے حفاظت کرتا ہے۔

ایک سرور کے لیے معقول کم سے کم:

  • ہر تازہ کاری کے بعد ڈیٹابیس دوسری مشین پر نقل کریں اور جانچ اسی نقل کو رکھ کر چلائیں؛
  • یا کم از کم ڈیٹابیس کا چیک سم الگ محفوظ رکھیں اور جانچ سے پہلے اس کی تصدیق کریں:
sha256sum /var/lib/aide/aide.db

اتنا سادہ اقدام بھی خاموش تبدیلی کو ایک نمایاں واقعے میں بدل دیتا ہے۔

ڈیٹابیس کی تازہ کاری ایک شعوری عمل ہے

جائز تبدیلیوں کے بعد — نظام کی تازہ کاری، سائٹ کے نئے نسخے کی تنصیب — ڈیٹابیس دوبارہ بنایا جاتا ہے:

sudo aide --update
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

اور یہ کب کیا جاتا ہے، اہم ہے۔ درست: رپورٹ پڑھیں، یقین کر لیں کہ ہر تبدیلی قابلِ وضاحت ہے، اور تب تازہ کریں۔ غلط، اور بہت عام: رپورٹیں صاف نکلتی رہیں اس لیے aide --update کو شیڈول پر چلانا۔ دوسری صورت میں نظام چلتا ہے، رپورٹیں آتی ہیں، اور تبدیلیاں عین اُسی لمحے معمول کے طور پر درج ہو جاتی ہیں جب وہ واقع ہوتی ہیں — یعنی سارا مقصد ختم ہو گیا۔

شیڈول اور بوجھ

پیکج aide-common خود ایک روزانہ کام نصب کر دیتا ہے۔ جانچ چند منٹ ڈسک اور پروسیسر پر بوجھ ڈالتی ہے، اس لیے اسے کسی پرسکون گھڑی میں اور کم ترجیح کے ساتھ چلانا چاہیے:

0 4 * * * ionice -c3 nice -n19 /usr/bin/aide --check

رپورٹ کیسے پڑھیں

تین حصے: جوڑی گئی، مٹائی گئی اور بدلی گئی فائلیں۔ اور ہر تبدیلی کے لیے یہ بتایا جاتا ہے کہ ٹھیک ٹھیک کیا مختلف ہے: مواد، اجازتیں، مالک، وقت۔

اور سب سے پہلے کس پر ردعمل دیں:

  • تازہ کاری کی کھڑکی سے باہر /bin، /sbin، /usr/bin میں کسی بھی فائل کی تبدیلی؛
  • نظامی ڈائریکٹریوں میں نئی فائلیں؛
  • authorized_keys، /etc/passwd، /etc/sudoers، /etc/crontab اور /etc/cron.d میں تبدیلیاں؛
  • نمودار ہونے والی فائل /etc/ld.so.preload — وہ کبھی خود سے نہیں آتی۔

apt upgrade کے فوراً بعد سو بدلی ہوئی فائلیں معمول کی بات ہیں، اور رپورٹ کا وقت اس کی تصدیق کرتا ہے۔ مگر بغیر کسی تازہ کاری کے بدھ کے دن /usr/bin میں تین بدلی ہوئی فائلیں رک کر جانچنے کی وجہ ہیں۔

AIDE اور debsums

یہ اوزار ملتے جلتے مسئلے حل کرتے ہیں، مگر ان کا معیار مختلف ہے۔ AIDE آپ ہی کے عکس سے موازنہ کرتا ہے — اس لیے وہ کسی بھی فائل کی تبدیلی دیکھتا ہے، بشمول سائٹ کے کوڈ کے۔ debsums ڈسٹری بیوشن کے پیکجوں کے چیک سم سے موازنہ کرتا ہے — اس لیے وہ بغیر کسی پیشگی تیاری کے بدلی ہوئی نظامی فائلیں دیکھ لیتا ہے، مگر پیکجوں سے باہر جو کچھ آپ نے نصب کیا اس کے بارے میں کچھ نہیں جانتا۔ دونوں رکھنا معقول ہے؛ عملاً پہلے عموماً debsums آتا ہے، کیونکہ اسے نہ ترتیبات درکار ہیں نہ ڈیٹابیس۔

اور ان میں ایک مشترکہ کمزوری بھی ہے: رپورٹ میل سے آتی ہے، اور میل گم ہو جاتی ہے۔ لہٰذا اہم یہ نہیں کہ جانچ چلی بلکہ یہ کہ ایسی جگہ ہو جہاں اس کا تازہ ترین نتیجہ نظر آئے۔ یہ کیسا لگتا ہے، نیچے ڈیمو صفحہ دکھاتا ہے۔