You are on page 1of 41

Монгол Улсын Их Сургууль

Мэдээллийн Технологийн Сургууль


Холбооны Технологийн Тэнхим

Сэнгэдоржийн Отгонлхагва

Халдлага эсэргүүцэх систем

Дипломын ажлын тайлан

Удирдсан: . . . . . . . . . . . . . . . . . . . . . ./Г.Гандэмбэрэл/

Улаанбаатар
2009
Агуулга

1 Зорилго.......................................................................................................................3
2 Халдлага илрүүлэх системийн тухай.......................................................................4
2.1 Халдлага гэж юу вэ?...........................................................................................4
2.1.1 Автомат халдлага. (Viruses, Worms болон SQL Slammer)........................5
2.1.2 Хүнээр удирдуулсан халдлага....................................................................5
2.1.3 Scanning vs Compromise..............................................................................6
2.2 Халдлага илрүүлэх системийн ангилал............................................................6
2.2.1 Хостод суулгахад зориулсан халдлага илрүүлэх систем........................7
2.2.2 Сүлжээнд суулгахад зориулсан халдлага илрүүлэх систем....................7
2.2.3 Төвлөрсөн удирдлагатай халдлага илрүүлэх систем................................8
2.3 Халдлага эсэргүүцэх системийн тухай.............................................................9
2.4 Халдлага эсэргүүцэх системийг сонгох...........................................................9
2.5 Snort...................................................................................................................12
2.6 Snort-ийн ерөнхий ажиллагаа..........................................................................13
2.6.1 Snort-ийг суулгах.......................................................................................13
2.6.2 Snort-ийг тохируулах.................................................................................14
2.6.3 Snort-ийг байрлуулах.................................................................................22
2.7 Цуглуулсан alert дахь шинжилгээ...................................................................23
2.8 Alert дахь шинжилгээний үр дүн....................................................................27
3 Snort-ийг халдлага эсэргүүцэх систем болгон өргөтгөх .....................................29
3.1 Snortsam.............................................................................................................29
3.1.1 Snortsam-ийг суулгах ба түүнд зориулан snort-ийг компайлдах...........31
3.1.2 Snortsam-ийг тохируулах..........................................................................34
3.1.3 Snortsam-ийн ажиллагааг шалгах............................................................35
4 Практик судалгаа.....................................................................................................36
4.1 Hping3-ийг ашиглан хийсэн халдлагыг таслан зогсоох................................38
4.2 Бодит халдлагын үр дүн...................................................................................38
5 Дүгнэлт.....................................................................................................................39
6 Ном зүй.....................................................................................................................40

2
1 Зорилго

Өнөө үед мэдээллийн технологийн салбар маш хурдтай хөгжиж байна.


Ар араасаа шил дараалан шинэ технологи, шинэ боломж бий болж байна.
Үүнийгээ дагаад аливаа мэдээлэл болон системд халдах арга технологиуд маш
олон төрөл болон хөгжиж, аюулгүй байдлыг хангах нь улам төвөгтэй болж
байна. Энэ асуудлын нэгэн шийдэл нь төрөл бүрийн халдлагыг таньж хариу
үйдлэл үзүүлэх чадвартай олон дэд хэсгүүдээс бүрдэх халдлага эсэргүүцэх
системийг ашиглах явдал юм. Гэтэл ихэнх байгуулгууд халдлага эсэргүүцэх
системийг өртөг өндөртэй байдаг шалтгаанаас нь болоод олныг худалдан авч
чададгүй. Тийм учираас нэг халдлага эсэргүүцэх систем худалдаж аваад гарцан
дээрээ байрлуулдаг. Энэ нь тухайн сүлжээний гүйцэтгэлийг удаашруулах сөрөг
нөлөөтэй байдаг. Иймд миний бие системийн аюулгүй байдлыг хангах өртөг
багатай сүлжээний гүйцэтгэлийг удаашруулдаггүй халдлага эсэргүүцэх
системийн шийдлийг олж практик нөхцөлд турших ажлыг хийж гүйцэтгэхийг
зорилоо.

3
2 Халдлага илрүүлэх системийн тухай

Халдлагыг илрүүлэхийн тулд тус тусын үүрэгтэй хоорондоо холбогдон


ажиллах програмуудын цуглуулгыг ашиглах замаар илрүүлэх нь үр дүнтэй
байдаг. Ийм програмуудын нийлмэл бүтцийг халдлага илрүүлэх систем гэдэг.
Тухайлбал packet sniffer програмыг ашиглаж сүлжээгээр дамжиж байгаа пакетыг
барьж аван кодыг нь тайлах, барьж авсан пакетын шинж чанар портокол
давтамжийг нь шинжилж үзэх замаар халдлага мөн эсэхийг тодорхойлдог.
Халдлагыг илрүүлэхийн тулд халдлага гэдгийг юу болохыг нь ойлгосон
байх шаардлагатай. Өөрөөр хэлбэл халдлага илрүүлэх систем гэдгийг
тодорхойлохын тулд халдлагыг тодорхойлох шаардлагатай. Ямар нэг системийн
тогтвортой үйл ажиллагаанд нөлөөлөх үйлдлийг таньж тодорхойлох процессыг
халдлага илрүүлэлт гэнэ.

2.1 Халдлага гэж юу вэ?

Аливаа системд хөнөөлтэй үйл ажиллагаа явуулж байгаа болон, хөнөөл


учруулах нөхцлийг бүрдүүлж буй үйлдлийг халдлага гэнэ. Халдлагыг ерөнхийд
нь дараах хоёр төрөлд ангилж болно.
• Автомат халдлага. Энэ төрлийн халдлагыг virus болон worm зэрэг
хөнөөлтэй програмууд хийж гүйцэтгэдэг.
• Хүнээр удирдуулсан халдлага. Энэ төрлийн халдлагыг тодорхой
арга барилыг судалсан хүн тухайн хугацаанд халдалтыг удирдах
замаар хийж гүйцэтгэнэ.

4
2.1.1 Автомат халдлага. (Viruses, Worms болон SQL Slammer)

Worm болон virus-үүд нь системд сөрөг нөлөөлөл үзүүлдэг идэвхитэй


үйл ажиллагаа явуулдаг хөнөөлтэй програмууд бөгөөд халдага илрүүлэх
системийг ашиглан тодорхой түвшинд хүртэл тэдгээр хөнөөлтэй програмуудыг
илрүүлэх боломжтой.
Virus нь аль нэг програмын кодонд хавсрагдаж зөөгдөж, ачаалагдах
замаар хөнөөлтэй үйл ажиллагаа явуулдаг бол worm нь өөрөө бие даан
сүлжээгээр тарж хөнөөлтэй үйл ажиллагаа явуулдаг. Нийтлэг шинж чанар нь
өөрийгөө хувилж системд сөрөг нөлөөтэй үйлдлүүдийг хийдэг. Virus болон
Worm-уудын дэвшилтэт хувилбар нь polymorphic буюу илрүүлэх програмаас
зайлс хийхийн тулд шинж чанараа өөрчлөх чадвартай болсон.
Worm-ийн жишээ гэвэл 2003 оны нэгдүгээр сарын 25-нд илэрсэн SQL
Slammer worm юм. Уг worm нь Microsoft Structured Query Language (SQL)
серверийн сул талыг ашиглан хөнөөлтэй үйл ажиллагаа явуулдаг. SQL
серверийн 1434 портоор 376 байтын User Datagram Protocol (UDP) портокол
ашиглан дамжуулсан пакет нь buffer overflow халдлага хийдэг.
Worm нь ойролцоогоор 10 минутанд дэлхийгээр тархах боломжтой. Маш
олон серверүүд worm-ийн халдлагад унаж байсан. Тухайлбал дэлхийн 13 root
Domain Name Server-ийн 5 нь worm-ийн халдлагад унаж байсан.

2.1.2 Хүнээр удирдуулсан халдлага

Халдлагыг хүн шууд удирдаж хийж гүйцэтгэх нь тухайн нөхцөлд таарсан


оновчтой халдлага болох магадлалтай байдаг. Ийм төрлийн халдлагын жишээ
бол Wingate POP3 buffer overflow халдлага юм. Уг халдлага нь POP3 daemon-ний
Wingate-ийн сул талыг ашиглан buffer overflow халдлага хийж хэрэглэгчийн
командыг илгээж ажиллуулах оролдогыг хийдэг.

5
2.1.3 Scanning vs Compromise

Маш олон дотоод сүлжээ болон хязгаарлалтгүй интернэт сүлжээнд


нээлттэй портуудыг шалгах эсвэл эмзэг байдлын тандалтыг хийх замаар
боломжит халдлагыг тодорхойлж байдаг. Scanning процесс нь системд шууд
халдалт хийдэггүй. Гэхдээ халдлага хийх төрлөө сонгоход хэрэглэгддэг. Өөрөөр
хэлбэл ихэвчлэн аль нэг систем рүү халдлага хийхээс өмнө тухайн халдлага
хийх системийг шинжилж, судалж боломжит халдлагаа тодорхойлдог. Иймд уг
шалгах процесийг илрүүлснээр халдлага болохоос өмнө урьдчилан сэргийлэх
боломж бүрдэнэ гэсэн үг.
Ерөнхийдөө ийм төрлийн шалгах үйлдлийг хийдэг маш олон төрлийн
хэрэгслүүд байдаг. Тухайлбал google хайх систем, порт шалгагч nmap, эмзэг
байдлыг тандагч nessus зэрэг маш олон төрлийн хэрэгслүүд байдаг. Тэдгээрийг
олж авахад хялбар, өргөн тархсан байдаг.
Харин compromise бол аливаа системд шууд нөлөөлж үйл ажиллагаанд нь
саад болох, тухайн системийг унагаах үйл ажиллагаа юм. Ихэвчлэн scanning
процессын үр дүнг ашиглан хийгддэг.

2.2 Халдлага илрүүлэх системийн ангилал

Ерөнхийд нь халдлага илрүүлэх системийг сүлжээнд учрах халдлагыг


эсвэл ямар нэг хостод учрах халдлагыг шинжилж байгаа болон сүлжээнд
тархсан байдлаар нь гурван төрөл болгон ангилж болно.
• Хостод суулгахад зориулсан халдлага илрүүлэх систем (HIDS).
• Сүлжээнд суулгахад зориулсан халдлага илрүүлэх систем (NIDS).
• Төвлөрсөн удирдлагатай халдлага илрүүлэх систем (DIDS).

6
2.2.1 Хостод суулгахад зориулсан халдлага илрүүлэх систем
Хостод суулгахад зориулсан халдлага илрүүлэх систем нь тухайн хост
дээр суулгагдаж үйлдлийн системийн
төлвийн өөрчлөлт, файл, өгөгдөл,
процессуудыг нь задлан шинжилж
халдлагыг тодорхойлдог систем. Энэ
халдлага илрүүлэх систем нь тухайн хост
дээрх халдлагыг илрүүлэх боломжийг л
олгодог учраас тодорхой тоног
төхөөрөмжөөс гаднах сүлжээний халдалтыг
илрүүлж чадахгүй. Хостод суулгахад

Зураг 2.2.1.aилалтгаалсан зориулсан халдлага илрүүлэх системийн

аюулын нөлөөллөөс зайлс хязгаарлах нөхцөл нь нэгэнт ажиллаж байгаа


системийг хянах явдал байдаг.

2.2.2 Сүлжээнд суулгахад зориулсан халдлага илрүүлэх систем

Сүлжээнд суулгахад зориулсан халдлага илрүүлэх систем нь сүлжээгээр


дамжиж байгаа мэдээлэлд шинжилгээ хийх
боломжтой газар байрлаж тухайн хэсэгт
дамжигдаж байгаа пакетуудыг шинжлэх
замаар сүлжээний халдлагыг илрүүлдэг.
Сүлжээнд суулгахад зориулсан халдлага
илрүүлэх системийг нарийн зохион
байгуулах боломжтой байдаг бөгөөд
хязгаарлах нөхцөл нь сурвасын өргөний
хэмжээ байдаг. Өөрөөр хэлбэл зурвасын
өргөний хэмжээ их байх тусам нэгж
Зураг 2.2.2.aилалтгаалсан
хугацаанд урсах пакетын хэмжээ түүнийг
аюулын нөлөөллөөс зайлс
дагаад их байх боломжтой болж шалгахад төвөгтэй болдог. Энэ асуудлыг
шийдэхийн тулд пакетыг шинжлэх үйл явцыг хялбарчлах aho-corasick,
approximate-string, boyer-moore зэрэг алгоритмуудыг ашигладаг.
7
Сүлжээнд суулгахад зориулсан халдлага илрүүлэх систем нь сүлжээг
хянах боломжтой сүлжээний ачаалал төвлөрсөн газар байрладаг учир сүлжээнд
суулгахад зориулсан халдлага илрүүлэх систем суусан төхөөрөмжийн
сүлжээний карт нь шаардлага хангасан байх шаардлагатай. Тухайлбал тухайн
төхөөрөмж нь олон төрлийн горимд ажиллах боломжтой сүлжээний карт байх
ёстой. Хэрэв сүлжээний карт нь олон төрлийн горимд ажиллахгүй бол зөвхөн
MAC хаягаар удирдуулсан frame-үүдийг сонсож, зөвхөн MAC хаягаар
удирдуулсан frame-үүдийг хүлээн авч дамжуулах болно. Энэ үед бусад frame-
үүдийг хүлээн авч, мөн дамжуулж чадахгүйд хүрнэ. Нэгэнт хүлээн авч чадахгүй
пакетыг шинжлэх нь боломжгүй болно.
Хэрэв сүлжээний карт нь олон горимд ажилладаг бол сүлжээнд суулгахад
зориулсан халдлага илрүүлэх систем нь сүлжээний сегментийн бүх холболтууд
дээр нөлөөлөл үзүүлэхгүйгээр шинжилгээ хийх боломжтой болно. Ингэхийн
тулд сүлжээний төхөөрөмжүүд нь сүлжээнд суулгахад зориулсан халдлага
илрүүлэх системрүү сүлжээний traffic-уудыг дамжуулдаг байхаар
тохируулагдсан байх ёстой. Тухайлбал хүлээж авсан пакетаа бүх портуудаараа
дамжуулдаг hub ашигласан бол аль нэг портонд нь сүлжээнд суулгахад
зориулсан халдлага илрүүлэх системийг суулгасан машиныг холбоход
хангалттай. Хэрэв switch ашигласан бол сүлжээний шинжилгээ хийхэд
зориулсан SPAN port-ийг ашиглаж нэг портоор дамжиж буй сүлжээний traffic-
ийг сүлжээнд суулгахад зориулсан халдлага илрүүлэх систем холбогдсон
портруу хувилан дамжуулж шинжилгээ хийж болно.
Сүлжээнд суулгахад зориулсан халдлага илрүүлэх системийн давуу тал
нь сүлжээнд нөлөөлөл үзүүлэлгүйгээр тухайн сүлжээний traffic-уудыг шинжлэх
боломжтой бөгөөд сүлжээнд суулгахад зориулсан халдлага илрүүлэх систем
бүхий машинаас өөр ямар нэг хост дээрх ачааллыг нэмэгдүүлэхгүй. Мөн
түүнчлэн системийг унагах зорилготой халдлага хийж байгаа халдагчид
халдлага илрүүлэх систем нь ажиллаж байгаа эсэх нь мэдэгдэхгүй.

2.2.3 Төвлөрсөн удирдлагатай халдлага илрүүлэх систем


Хостод суулгахад зориулсан халдлага илрүүлэх систем эсвэл сүлжээнд
суулгахад зориулсан халдлага илрүүлэх системүүд нь сүлжээнд тархсан
8
байдлаар суулгагдаж нэг төв нэгжид
халдлагын тухай мэдээллийг цуглуулж төв
өгөгдлийн санд хадгалдаг системийг
төвлөрсөн удирдлагатай халдлага
илрүүлэх систем гэнэ. Сүлжээний бүх
хэсэгт халдлага илрүүлэх системүүд
тархаж суулгагдсанаар зөвхөн төв
шугмаар урсах traffic болон төв шугмаар
дамжигдахгүй traffic-уудад шинжилгээ
Зураг 2.2.3.aилалтгаалсан хийх боломжтой болохоос гадна
сүлжээний
аюулынхэсгүүдэд шинжилгээ
нөлөөллөөс зайлс хийсэн мэдээллийг нэг дор цуглуулах
боломжтой болно. Ингэснээр сүлжээний системийн администратор нэг дороос
сүлжээг хянахад хялбар болдог.

2.3 Халдлага эсэргүүцэх системийн тухай

Халдлага илрүүлэх системийг халдлагыг таслан зохсоох дэд програмуудаар


өргөтгөсөн системийг халдлага эсэргүүцэх систем гэнэ. Өөрөөр хэлбэл халдлага
илрүүлэх систем халдлагыг тодорхойлсон бол халдлагад нөлөөлөх дэд
програмууд уг үр дүнд харгалзах үйлдлийг гүйцэтгэх замаар халдлагыг таслан
зогсоодог.
Халдлага эсэргүүцэх системийг хаана суулгагдаж байгаагаар нь халдлага
илрүүлэх системтэй адилаар дараах гурав ангилж болно:
• Хостод суулгахад зориулсан халдлага эсэргүүцэх систем (HIPS).
• Сүлжээнд суулгахад зориулсан халдлага эсэргүүцэх систем (NIPS).
• Төвлөрсөн удирдлагатай халдлага эсэргүүцэх систем (DIPS).

2.4 Халдлага эсэргүүцэх системийг сонгох

Нэгэнт сонголт хийх гэж байгаа учир шаардлагаа тодорхойлох нь зүйн

9
хэрэг билээ. Шаардлагыг ажлын зорилгодоо нийцүүлэн дараах байдлаар
тодорхойлсон:
• Сүлжээний гүйцэтгэлийг удаашруулахгүй байх. Гарцан дээр зөвхөн
байрлаж сүлжээгээр дамжих ачааллыг нарийвчан шинжилсний дараа
л дамжуулдаг бол тухайн сүлжээний гарцан дээрх хурдыг багасгана.
• Чөлөөт болон нээлттэй эх бүхий програм хангамж байх. Энэ нь
халдлага эсэргүүцэх системийг маш бага зардлаар ашиглах боломж
олгоно. Өөрөөр хэлбэл халдлага эсэргүүцэх системийг худалдаж авах
зардал гаргахгүй байх боломж бүрдэнэ.
• Чөлөөт болон нээлттэй эх бүхий үйлдлийн системүүдийг дэмждэг
байх. Нэгэнт л халдлага эсэргүүцэх системийг худалдаж авахгүй байх
учир зардал хэмнэх талаасаа мөн үйлдлийн системийг нь худалдаж
авахгүй байх нь тохиромжтой.
• Сүлжээнд тархсан байдлаар ажиллаж төвлөрсөн удирдлагатай буюу
DIPS байдлаар ажиллах боломжтой байх. Энэ нь систем
администратор тухайн сүлжээг нэг дороос хянахад маш хялбар болгох
сайн шийдэл юм.
• Хөгжүүлэлт сайн хийгддэг байх ёстой. Хөгжүүлэлт сайн хийгддэг
байх нь тухайн халдлага эсэргүүцэх системийг сайн гэж бүрэн дүүрэн
нотлохгүй ч гэсэн нэлээд нөлөөтэй хүчин зүйл мөн. Учир нь халдлага
хийх арга технологиуд маш хурдацтай хөгжиж байгаа учир түүнээс
хамгаалах технологи нь мөн хурдан хөгждөг байх ёстой

Төслийн Эхэлсэн Сүүлд Суулгах Чөлөөт эсвэл Дэмждэг үйлдлийн HIPS/NIPS/DIPS


нэр он гарсан боломж нээлттэй эх систем
хувилбар бүхий

10
Snort 1998 2.8.3.2 Repository, Чөлөөт болон Linux, BSD-based HIDS, NIDS, DIDS
rpm, source, нээлттэй эх OSes, Solorais, Mac OS боловч IPS болгон
windows X, HP-UX, IRIX өргөтгөх боломжтой.
installer

Untangle 2003 6.1(2009) boot cd, Чөлөөт болон Windows, Өөртөө HIPS, NIPS
windows нээлттэй эх агуулсан debian суурьт
installer үйлдлийн систем
Gnome - 1.0 Rpm, source Чөлөөт болон Gnome-ийг дэмждэг HIPS
lokkit нээлттэй эх бүх үйлдлийн систем
HLBR 2005 1.6(2008) Rpm, source Чөлөөт болон Linux HIPS
нээлттэй эх
GeSwall 2006 2.8 (2009) windows Чөлөөт Windows HIPS
installer
Winpooch 2004 0.6.6 (2007) windows Чөлөөт болон Windows HIPS
installer нээлттэй эх
Хүснэгт 2.4.а

1. Snort (http://www.snort.org/). Snort нь халдлага илрүүлэх систем боловч


халдлагад хариу үйлдэл үзүүлэх дэд хэсгүүдээр өргөтгөх замаар халдлага
эсэргүүцэх систем болгох боломжтой. 2009 оны 4 сарын 24-нд snort-2.8.4.1
хувилбар нь гарсан бөгөөд 2009 оны 5 сарын 13-нд snort-2.8.5.beta хувилбар
нь гарсан. Олон төрлийн үйлдлийн системийг дэмждэг ба GPLv2 лицензтэй
хостод болон сүлжээнд суулгах ба төвлөрсөн удирдлагатай болгох
боломжтой халдлага илрүүлэх систем.
2. Untangle (http://www.untangle.com/). 2009 оны 4 сарын 8-нд Untangle-6.1.0
хувилбар нь гарсан. Windows үйлдлийн систем дээр exe файлнаас суулгагдах
боломжтой байдаг боловч Debian сууртай үйлдлийн системийг өөртөө
агуулсан учраас бие дааж ажиллах чадвартай, GPLv2 лицензтэй хостод
болон сүлжээнд суулгахад зориулсан халдлага эсэргүүцэх систем.
3. Lokkit. (http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-
guide/s1-basic-firewall-gnomelokkit.html). Lokkit нь gnome хэрэглэгчдийн
график интерфэйст зориулсан GPLv2 лицензтэй хостод суулгахад зориулсан
халдлага эсэргүүцэх систем.
4. HLBR (http://sourceforge.net/projects/hlbr). 2005 оны 12 сарын 16-нд анхны
хувилар нь гараад хамгийн сүүлд 2008 оны 4 сарын 24-нд HLBR-1.6
хувилбар нь гарсан linux үйлдлийн системийг дэмждэг хостод болон
сүлжээнд суулгахад зориулсан халдлага эсэргүүцэх систем.
5. GeSwall (http://www.gentlesecurity.com/). 2005 оны 11 сарын 17-аас
хөгжүүлэлт нь эхлээд 2009 онд 2.8 хувилбар нь гарсан freeware лицензтэй.

11
Зөвхөн windows үйлдлийг дэмждэг хостод суулгахад зориулсан халдлага
эсэргүүцэх систем.
6. Winpooch (http://sourceforge.net/projects/winpooch/). Windows үйлдлийн
системд зориулсан, GPLv2 лицензтэй, 2004 оны 11 сарын 11-нд хөгжүүлэлт
нь эхлээд 2007 оны 4 сарын 23-нд winpooch-0.6.6 хувилбар нь гарсан зөвхөн
windows үйлдлийн системийг дэмждэг хостод суулгахад зориулсан халдлага
эсэргүүцэх систем.
Эдгээрээс миний гаргасан шаардлагуудад хамгийн их нийцэж байгаа буюу
хөгжүүлэлт сайн хийгдэж байгаа төвлөрсөн удирдлагатай болгож тохируулах
боломжтой нь snort байсан учир энэ халдлага илрүүлэх системийг сонгож эхлээд
халдлага илрүүлэх систем байдлаар нь ажиллуулаад дараа нь түүнийгээ
халдлагад хариу үйлдэл үзүүлэх дэд хэсгүүдээр өргөтгөн халдлага эсэргүүцэх
систем болгож ашиглахаар болсон.

2.5 Snort

Snort бол signature-based NIDS учраас халдагчийн дамжуулж буй


пакетуудын шинж чанар дээр нь тулгуурлан халдлагыг тодорхойлдог. Халдлага
мөн гэдгийг болон төрлийг нь тодорхойлохдоо Rule-үүдийн цуглуулгыг
ашигладаг.
Snort нь дотроо packet sniffer, packet логger, Network-based Interusion
Detection System гэсэн үндсэн гурван функцыг агуулсан орчин үеийн
хамгаалалтын application юм. Snort нь логfiles-ийг удирдах бичих олон арга
замуудыг дэмждэг, Snort ажиллаж байх үед багцуудыг барих, хөнөөлтэй traffic
илэрсэн бол системийн админд мэдэгдэх маш өргөн боломжтой програмуудаар
өргөжүүлэх боломжтой. Snort-ийг маш олон төрлийн бүтцээр зохион байгуулах
боломжтой байдаг учраас тухайн байгууллагад зориулсан бүтцийг гаргахад
хялбар байдаг.
Snort нь зөвхөн TCP/IP протокол дээр шинжилгээ хийхээс гадна бусад
маш олон сүлжээний протокол дээр шинжилгээ хийх боломжтой. Тухайлбал
Novell-ийн IPX протокол дээр шинжилгээ хийх боломжтой.
Snort нь мөн маш олон төрлийн үйлдлийн систем дээр суулгах
боломжтой нээлттэй эх бүхий програм хангамж юм. Тухайлбал Linux, FreeBSD,
12
NetBSD, OpenBSD, Windows, Solaris, MacOS X, MkLinux, PA-RISC HP-UX зэрэг
үйлдлийн системүүд дээр ажиллах боломжтой.

2.6 Snort-ийн ерөнхий ажиллагаа

Unix төст системд libpcap буюу windows системд winpcap гэх сүлжээний
траффикийг тодорхой форматтайгаар файлд хадгалдаг application programming
interface ашиглан пакетуудыг барьдаг. Тухайлбал Snort нь packet sniffing горимд
пакетыг уншиж байх үедээ pcap (Packet CAPture library)-ийг ашиглан
ProcessPacket функцийг дуудаж ажиллуулан пакетыг бүтцээр нь задална. Дараа
нь IDS горимонд шилжин уг пакетыг шалгаж үнэлгээ дүгнэлт өгнө. Эцэст нь
packet-логging горимд шилжин гаралтын plug-in-уудыг дуудаж ажиллуулах
замаар alert-уудыг үүсгэдэг.

Snort нь Ethernet, 802.11,Token


Ring, FDDI, Cisco HDLC, SLIP,
PPP, and OpenBSD’s PF зэрэг
OSI model-ийн хоёрдугаар
түвний frame-ийг задлах
боломжтой бөгөөд түвшин
болгонд ялгаатай задлах
функцуудыг ашигладаг.
Тухайлбал “Зураг 2.6.a”-д

Зураг 2.6.aилалтгаалсан аюулын үзүүлсэнчлэн Ethernet frame-

нөлөөллөөс зайлс хийнэ.үлэх. Ингэснээр ийг задлахдаа DecodeEthPkt


функцэд уг frame-ийг дамжуулж frame-ийн өгөгдөл, эх болон очих MAC хаяг,
дараагийн түвшний төрөл зэргийг ялгах боломжтой.

2.6.1 Snort-ийг суулгах

Snort-ийг windows систем дээр суулгахдаа www.snort.org татаж аваад


step-to-step байдлаар суулгаж болно харин unix төст системүүд дээр эх кодыг нь
13
татаж аваад компайл хийх, rpm пакежийг нь татаж аваад суулгах боломжтой.
Харин fedora project-д snort-ийг fedora-д зориулан тохиргоо хийсэн кодыг
бэлдсэн байдаг учир snort-ийг fedora дээр yum install командаар суулгах
боломжтой байдаг. Иймд snort-ийг зөвхөн халдлага илрүүлэх систем байдлаар
ажиллуулх тохиолдолд yum install командаар суулгах нь тохиромжтой. Snort-ийн
бүх холбоотой пакежуудыг суулгах бол “yum install snort*” гэсэн командаар
суулгаж болно. Харин зөвхөн mysql өгөгдлийн санд alert болон лог-уудаа
хадгалдаг байхаар ашиглах бол yum install “snort snort-mysql” гэсэн командаар
суулгах нь тохиромжтой. Ингэсэн тохиолдолд мэдээж зөвхөн snort нь mysql
өгөгөдлийн сантай холбогдох гарахлтын plugin-тайгаа л сууна гэсэн үг.

[root@localхост /]# yum install snort*

Installed: snort.i386 0:2.8.1-4.fc9 snort-bloat.i386 0:2.8.1-4.fc9 snort-mysql.i386


0:2.8.1-4.fc9 snort-mysql+flexresp.i386 0:2.8.1-4.fc9 snort-plain+flexresp.i386
0:2.8.1-4.fc9 snort-postgresql.i386 0:2.8.1-4.fc9 snort-postgresql+flexresp.i386
0:2.8.1-4.fc9 snort-snmp.i386 0:2.8.1-4.fc9 snort-snmp+flexresp.i386 0:2.8.1-
4.fc9
Dependency Installed: libprelude.i386 0:0.9.17.2-1.fc9 mysql-libs.i386
0:5.0.51a-1.fc9 postgresql-libs.i386 0:8.3.4-1.fc9
Complete!

2.6.2 Snort-ийг тохируулах

Халдлагыг зөв тодорхойлох болон хэрэгцээтэй мэдээллээ цуглуулах нь


Snort-ийг хэр зэрэг тухайн системд тохирсон оновчтой тохируулга хийхээс
хамаарна. Иймд Snort-ийг тохируулахдаа rule сонгох, ямар горимд ажиллуулах
өгөгдлийн сан ашиглах эсгийг оновчтой байдлаар сонгох шаардлагатай.
Snort-ийн үндсэн тохиргооны файл нь fedora-ийн хувьд

14
/etc/snort/snort.conf файл байдаг. Энэ файл дотор rule-үүдийг тодорхойлох, гадаад
болон дотоод сүлжээг ялгах, өгөгдлийн сантай холбох, server-үүдийн хаягийг
заах (тухайлбал dns query-ийг alert болгож гаргахгүйн тулд dns server ямар
хаяган дээр байгааг тодорхойлдог) зэрэг үндсэн тохиргоог хийдэг.

Rule нэмэх

Snort нь орж ирсэн пакетыг хөнөөлтэй үйл ажиллагаа явуулах пакет мөн
гэдгийг танихын тулд rule-ийг ашигладаг. Rule-үүдийг хэрхэн тохиромжтой
бичсэнээс халдлага илрүүлэх систем нь халдлагыг оновчтой тодорхойлж alert
гаргах нь хамаарна. Иймд rule-үүдийг зөв сонгох нь чухал байдаг.
Rule-ийг өөрийн системд тохиромжтой байдлаар бичих шаардлагатай
байдаг боловч Snort-ийг хөгжүүлдэг багаас зөвлөмж болгож өөрсдийнх нь
гаргадаг rule-үүдийг албан ёсны сайтандаа үнэгүй татах боломжтойгоор
байрлуулсан байдаг. Гэхдээ тухайн сайтад бүртгэгдээгүй хэрэглэгчид нэмэлт
сайжруулалт хийгддэгүй rule-үүдийг л татах боломжтой, бүртгэгдсэн
хэрэглэгчид нь шинэ гарсан rule-үүдийг 30 хоногийн дараанаас татах боломжтой
болно, бүртгэгдээд төлбөр төлсөн хэрэглэгчид болон хөгжүүлэгчид нь шинэ
rule-ийг гарсан дариуд нь авах боломжтой байдаг. Шинэ rule гарахаараа
бүртгэгдсэн хэрэглэгчдийн и-мэйл хаягаар нь мэдэгддэг.
Өөрийн тодорхойлсон болон татаж авсан rule-үүдийг ашиглахын тулд
snort-ийн үндсэн тохиргооны файлд оруулах шаардлагатай. Өөрөөр хэлбэл snort-
ийн үндсэн тохиргооны файлд rule-ийг тодорхойлж байгаа бичлэгийг нэмэх
эсвэл snort-ийн албан ёсны сайтаас татаж авсан rule-үүд байрлах замыг зааж өгч
include командаар сонгосон rule-үүдийг үндсэн тохиргооны файлд оруулах
шаардлагатай.
Анхны утгаараа snort-ийн үндсэн тохиргооны файлд “var RULE_PATH
/etc/snort/rules” гэсэн байдлаар rule-үүдийн байрлах замыг тодорхойлсон байдаг.
Иймд татаж авсан rule-үүдийг /etc/snort/rules хавтсанд хуулаад үндсэн
тохиргооны файл дээр include командаар оруулснаар тухайн rule-ийг ашиглах
боломжтой болно. Тухайлбал scan хийхийг шалгадаг rule-ийг татаж аваад
/etc/snort/rules хавтсанд хуулсан байлаа гэхэд /etc/snort/snort.conf файлд дараах

15
бичлэгийг нэмэх ёстой.
include $Rule_PATH/scan.rule

Deamon хэлбэрээр ажиллуулах тохиргоо

Системийн администратор тухайн хугацаанд snort-ийг команд ашиглан


ажиллуулна гэдэг нь администратор командыг хийж ажиллуулж байгаа season-
оо хаахад snort мөн ажиллахгүй болох учир энэ тохиромжгүй үйлдэл бөгөөд
deamon хэлбэрээр ажиллуулах нь тохиромжтой. Тухайлбал snort суулгасан
машин унтарч ассан ч ажилладаг байхаар тохируулах үед энэ тохиргоо нь
хэрэглэгэдэнэ.
/etc/init.d/snortd файл дотор snort-ийг deamon хэлбэрээр ажиллахад
шаардагдах тохиргоонуудыг хийнэ. Тухайлбал service-ийг ачааллахад snort нь
ямар option-той ажиллах вэ гэдгийг тохируулна. “-D” option нь daemon горимонд
ажиллана гэдгийн заана, “-u” ямар хэрэглэгчийн эрхээр ажиллана гэдгийг заана.
Тухайлбал /etc/init.d/snortd файлыг доор үзүүлсэн байдлаар тохируулж болно.
case "$1" in
start)
echo -n "Starting snort: "
cd /var/лог/snort
daemon /usr/sbin/snort -D $SNORT_OPTIONS -u $USER -g $GROUP \
-i $INTERFACE -c /etc/snort/snort.conf
touch /var/lock/subsys/snort
echo
;;
stop)
echo -n "Stopping snort: "
killproc snort
rm -f /var/lock/subsys/snort
echo
;;
restart)
$0 stop
$0 start
;;
status)
status snort
;;
16
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0

Өгөгдлийн санд холбох тохиргоо

Snort нь пакетыг барьж аваад хадгалах замаар их хэмжээний лог болон


alert-ийг үүсгэдэг учир тэгдээрийг файлд хадгалсан байдлаар нь удирдан
зохицуулах нь төвөгтэй байдаг энэ байдлыг шийдвэрлэхийн тулд өгөгдлийн
сантай холбож тэдгээр лог болон alert-ийг ангилан хадгалдаг. Энэ ажилдаа Snort-
ийг mysql-тэй холбож лог болон alert-уудыг нь өгөгдлийн санд хадгалдаг
болгосон.
Ингэхийн тулд mysql-ийг суулгасан байх шаардлагатай. Хэрэв суулгаагүй
бол fedora дээр yum install командаар суулгах боломжтой.
#yum install mysql mysql-server

Installed: mysql-server.i386 0:5.0.51a-1.fc9

, mysql-5.0.51a-1.fc9.i386
Mysql-ийг суулгасний дараа mysql-ээ demon хэлбэрээр ажиллуулах
# service mysqld start
Mysql admin-ий нууц үгийг тохируулах
# mysqladmin -u root password [нууц үг]
Mysql рүү root хэрэглэгчийн эрхээр нэвтрэх
# mysql -u root -p
Snort-д зориулан лог болон alert-ийг хадгалдаг өгөгдлийн сан үүсгэх
mysql> CREATE DATABASE snort;

Query OK, 1 row affected (0.12 sec)


Snort-ийн өгөгдлийн санд хандах хэрэглэгчийг үүсгэх болон тухайн
хэрэглэгчийн тухайн өгөгдлийн санд хандах эрх болон нууц үгийг нь
тодорхойлох
mysql> grant all privileges on snort.* to snortusr@"localхост" identified

17
by 'нууц үг';

Query OK, 0 rows affected (0.00 sec)


Өмнө хийсэн командыг идэвхижүүлэх.
mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)


Үүсгэсэн өгөгдлийн сандаа лог болон alert хадгалахад хэрэглэгдэх
хүснэгтүүдийг нэмэх. Yum install командаар snort-ийг суулгах үед
/usr/share/doc/snort-2.8.1/create_mysql файл хуулагдсан байдаг. Уг файл дахь
хүснэгтүүдийг өгөгдлийн санд дараах командаар оруулж болно.
#mysql -u root -p < /usr/share/doc/snort-2.8.1/create_mysql snort
Snort-ийг өгөгдлийн сантай холбохдоо үндсэн тохиргооны файл дээр нь
дараах бичлэгийг нэмнэ. Энэ бичлэг нь snort-ийг өгөгдлийн сантайгаа
холбогдоход нь хэрэглэгдэх тохиргоо бөгөөд өмнө нь суулгасан snort-mysql
plugin-ийг тохируулж байна гэсэн үг. Тухйалбал лог эсвэл alert-ийн алийг нь
хадгалыг заах, өгөгдлийн сангийн төрөл (mysql, mssql, postgremysql-ийн аль нь
гэдгийг), өгөгдлийн санд хандахад хэрэглэгдэх хэрэглэгчийн нэр болон нууц үг
зэргийг тодорхойлсон байна. Тухайлбал дараах байдлаар бичиж оруулна.
output database: лог, mysql, user=snort password=нууц үг dbname=snort

хост=localхост

Веб интерфэйстэй холбох

Snort-ийн command line интерфэйсийг хэрэглэх нь өргөн боломжтой


байдаг боловч хэрэглэхэд төвөгтэй байдаг. Иймд веб интерфэйс холбож
өгөгдлийн санд хадгалагдсан лог болон alert-ууд дээр задлан шинжилгээ хийх
боломжтой.
Snort-д холбох боломжтой base болон acid зэрэг веб интерфэйс буюу php
site-ууд байдаг. Энэ туршилтийн ажиллаараа би base-ийг суулгасан. Учир нь base
18
нь acid-аас илүү хэрэглэх өргөн боломжтой байдаг. Тухайлбал acid нь alert-уудыг
цагийн бүсээр нь ангилж үзүүлдэггүй.
Php хуудсуудыг ажиллуулахдаа apache болон php-ийг суулган ажиллуулж
болно. Тэдгээрийг fedora дээр мэдээж дараах байдлаар yum install командаар
суулгаж болно.
#yum install httpd php php-mysql
Веб интерфэйсийг холбохын тулд дараах php site-уудыг татаж авна.
Base:

http://sourceforge.net/project/showfiles.php?group_id=103348&package_id=128846
&release_id=617636
ADODB: http://phplens.com/lens/dl/adodb453.tgz
Эдгээр нь adodb*.tgz болон base.tar.gz файлууд байх бөгөөд тэдгээрийг
задлаад веб сервер ажиллаж байгаа directory-т хуулна. Тухайлбал дараах
командуудыг ашиглан хуулж болно.
$tar -xvzf ~/adodb453.tgz
$mv ~/adodb453 /var/www/html/adodb
$tar -xvf ~/base-1.4.1.tar.gz
$mv ~/base-php4 /var/www/html/base
Эдгээр php хуудсуудыг apache-гаар ажиллуулахын тулд permision-ийг нь
тохируулна. Гэхдээ энд owner нь apache group нь apache гэж тохируулсан байгаа
нь жишээ бөгөөд аюулгүй байдал талаа анхаарахын тулд apache-ийн default
хэрэглэгч болох apache-г owner нь болгон тохируулахгүй байхыг зөвлөж байна.
Гэхдээ суулгах тухайн вэб сэйтыг суулгахад apache хэрэглэгч нь base-ийн үндсэн
тохиргооны файлд өөрчлөлт хийх учир permission-ийг нь apache хэрэглэгч write
эрхтэй байхаар тохируулсан байх шаардлагатай. Харин суулгасныхаа дараа write
эрхгийг нь болиулах нь зөв хувилбар мөн.
#chown -R apache:apache /var/www/html/base
#chown -R apache:apache /var/www/html/adodb
Base хуудсыг анх ажиллуулахад
“зураг 2.6.2.a”-д үзүүлсэн байдлаар
directory-т бичих эрх байхгүй байна
гэсэн алдаа заах учир base-ийн
direcotory-т нь бичих эрхийг нэмнэ.
Зураг 2.6.2.а
Дараах командаар бичих эрх нэмж

19
болно.
#chmod o+w /var/www/html/base
Permision-ийг зөв тохируулсны дараа 5-н алхам дамжаад base-ийг
ашиглах боломжтой болно.
Нэгдүгээр алхамд “Зураг 2.6.2.б”-д
үзүүлснээр хэлээ тохируулах болон
өгөгдлийн сантайгаа холбогдож
Зураг 2.6.2.б
ажилладаг ADODB-ийн замыг зааж
өгнө.
Хоёрдугаар алхамд “Зураг 2.6.2.в”-д
үзүүлсэн байдлаар өгөгдлийн сангийн
төрөл, нэр, серверийн хаяг, порт,
холбогдох нэр нууц үг зэрэг өмнө
тохируулж байсан тохиргоонуудыг
Зураг 2.6.2.в оруулна.

Гуравдугаар алхамд “Зураг 2.6.2.г”-д


үзүүлснээр base хуудсуудыг үзэхэд
authentication хийдэг болгох
Зураг 2.6.2.г тохиргооны хэсэг. Энд Administrator
хэрэглэгчийн нэр, нууц үг зэрэг мэдээллүүдийг оруулна.
Дөрөвдүгээр алхамд “Зураг 2.6.2.д”-д үзүүлснээр өгөгдлийн санд нэмэлт

Зураг 2.6.2.д
хүснэгтүүдийг үүсгэх хэсэг. Тэдгээр хүснэгтүүд нь халдлагад шинжилгээ хийхэд
хэрэглэгдэнэ. “Create BASE AG” товчлуур дээр товшиж тэдгээр хүснэгтүүдийг
үүсгэнэ.
Тавдугаар алхамд “Зураг 2.6.2.е”-д үзүүлснээр үндсэн хуудасруу шилжиж уг
хуудсыг шалгана.

20
Зураг 2.6.2.е
Snort-ийг турших

Snort командаар snort-ийг ажиллаж байгаа эсэхийг шалгана. Snort


командыг ажиллуулахад дараах мэдээлэл гарч байвал snort ажиллаж байна гэсэн
үг.
$ snort
,,_ -*> Snort! <*-
o" )~ Version 2.8.1 (Build 28)
'''' By Martin Roesch & The Snort Team: http://www.snort.org/team.html
(C) Copyright 1998-2008 Sourcefire Inc., et al.
Using PCRE version: 7.8 2008-09-05

USAGE: snort [-options] <filter options>


Options:
-A Set alert mode: fast, full, console, test or none (alert file alerts only)
"unsock" enables UNIX socket логging (experimental).
-b Лог packets in tcpdump format (much faster!)
-B <mask> Obfuscated IP addresses in alerts and packet dumps using CIDR mask
-c <rules> Use Rules File <rules>
-C Print out payloads with character data only (no hex)
-d Dump the Application Layer
-D Run Snort in background (daemon) mode
-e Display the second layer header info
-f Turn off fflush() calls after binary лог writes

Snort командыг “-v” оption-той ажиллуулж packet sniffer горимонд


ажиллаж байгаа эсэхийг шалгана. Хэрэв зөв ажиллаж байвал тухайн хостын
хүлээн авсан болон дамжуулж байгаа, тухайн хостоор дамжиж байгаа пакетууд
харагдана. Хэрэв decode хийж харахыг хүсвэл “d” option ашиглана.
# snort -v
Not Using PCAP_FRAMES
12/15-00:29:26.815460 10.0.5.217:137 -> 10.0.5.255:137
UDP TTL:128 TOS:0x0 ID:31 IpLen:20 DgmLen:96
Len: 68

21
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

12/15-00:29:27.565365 10.0.5.217:137 -> 10.0.5.255:137


UDP TTL:128 TOS:0x0 ID:32 IpLen:20 DgmLen:96
Len: 68
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+

2.6.3 Snort-ийг байрлуулах

Snort нь Network-based Intrusion Detection System учир шинжилгээ хийх


сүлжээний пакетууд дамжих байрлалд буй хост дээр суусан байх шаардлагатай.
Өөрөөр хэлбэл snort нь тухайн сүлжээнд шинжилгээ хийхийн тулд пакетын
урсгал төвлөрсөн газар байрлах ёстой. Тухайлбал snort суусан машин нь төв
тухайн сүлжээний төв шугамд холбогдсон байвал тухайн сүлжээгээр дамжиж
байгаа пакетуудад шинжилгээ хийхэд тохиромжтой.

Hub ашиглан холбогдсон сүлжээний хувьд “Зураг 2.6.3.а”-д


Router
үзүүлснээр Snort суусан хостийг hub-ийн аль нэг портонд
Hub холбоход тухайн hub-аар дамжиж байгаа бүх пакетуудад
Snort

шинжилгээ хийх боломжтой болно.


Зураг
Host

2.6.3.aилалтга
Wireless access point ашиглан холбогдсон сүлжээний хувьд
Router

“Зураг 2.6.3.б”-д үзүүлснээр hub ашигласан сүлжээтэй


адилаар snort бүхий хост нь access point-той холбогдсон бол
Access point

Snort
тухайн access point-оор дамжих пакетыг шинжлэх
Host

Зураг 2.6.3.б боломжтой болно.


илалтгаалсан
Switch ашигласан сүлжээний хувьд “Зураг 2.6.3.в”-д үзүүлснээр snort суусан
хост руу сүлжээгээр дамжиж байгаа пакетуудыг дамжуулахын тулд port mirror
хийх буюу нэг портоор дамжиж байгаа frame-үүдийг snort суусан хостын
холбогдсон порт руу хувилж дамжуулдаг болгоно. Тухайлбал үүний cisco-ийн
managed switch-д span порт тохируулах замаар хэрэгжүүлж болно.

22
Router

Switch

Snort

Host

Зураг 2.6.3.в Internet


Дээрх холболтуудын алийг нь ч
илалтгаалсан
ашиглаж болох боловч туршилтын ажилдаа тэдгээрээс
хамгийн хямд өртөгтэй холболт болох hub ашигласан
Router
холболтыг “Зураг 2.6.3.г”-д үзүүлсэн байдлаар холбож
ашигласан. hub
“Mnfedora.org” нэртэй хост нь
www.mnfedora.org web сайтыг ажиллуулж байгаа веб
сервер бөгөөд энэхүү ажилд веб серверт учрах
Snort
халдлагын тухай мэдээллийг цуглуулах зорилгоор “Зураг
Mnfedora.org

2.6.3.г”-д үзүүлсэн Зураг 2.6.3.г физик холболтыг үүсгэсэн.

2.7 Цуглуулсан alert дахь шинжилгээ

Туршилтийн ажлын хугацаанд “Зураг 2.7.а”-д үзүүлсэн байдлаар нийт


22153 alert илэрсэн бөгөөд тэдгээр нь “Хүснэгт 2.7.а”-т үзүүлсэн 12 төрөлд
хуваагдаж байна. Эдгээр alert-уудын 11% нь tcp, 2% нь udp, 87% icmp портокол
ашигласан бөгөөд 1-ээс бага хувь нь portscan хийсэн traffic байна. Нийт MUIS-
ийн дотоод сүлжээ болон гадаад сүлжээнээс 544 ip хаягнаас 715 төрлийн
портоор халдсан гэдгийг тодорхойлох alert цугларсан.

Зураг 2.7.а илалтгаалсан аюулын нөлөөллөөс зайлс хийнэ.үлэх. Ингэснээр


байглийн хүчин зүйлсээс г.эл р эдэг нь мэдэгдсэн.энт халдлага болсны

23
Classification Total # Sensor # Signa Source Dest. Add First Last
ture Address ress
unclassified 3532 (16%) 1 32 67 83 2008-11-26 2008-12-03
17:06:5 21:45:20
unclassified 162 (1%) 1 8 16 2 2008-11-26 2008-12-13
15:23:25 15:51:58
misc-activity 16950 (76%) 1 13 312 588 2008-11-26 2008-12-13
14:16:37 17:22:07
bad-unknown 5 (0%) 1 1 1 1 2008-11-26, 2008-11-26,
04:24 04:24
system-call-detect 1 (0%) 1 1 1 1 2008-11-26 2008-11-26
17:01:46 17:01:46
attempted-admin 700 (3%) 1 4 150 2 2008-11-29 2008-12-13
13:07:06 16:56:21
shellcode-detect 467 (2%) 1 7 5 2 2008-11-29 2008-12-13
13:07:06 16:32:11
web-application-activity 134 (1%) 1 6 40 2 2008-11-29 2008-12-13
13:07:06 14:28:12
web-application-attack 13 (0%) 1 2 5 2 2008-11-29 2008-12-11
13:07:17 11:29:15
attempted-recon 48 (0%) 1 4 7 9 2008-12-03 2008-12-12
05:21:51 19:27:26
misc-attack 192 (1%) 1 2 41 2 2008-12-03 2008-12-13
23:48:31 16:56:21
policy-violation 10 (0%) 1 1 2 1 2008-12-12 2008-12-13
15:02:21 17:18:51
successful-recon-limited 1 (0%) 1 1 1 1 2008-12-13 2008-12-13
05:12:10 05:12:10
Хүснэгт 2.7.а
Эдгээр төрлүүдээс 53-н төрлийн signature бүхий alert илэрсэн бөгөөд
тэдгээрээс онцлох хэд signature нь:
• port scan. 136 тохиолдол илэрсэн. Нээлттэй порт байгаа эсгийг шалгадаг.
Эмзэг байдлын тандалт хийж байна. Өөрөөр хэлбэл аль нэг портоор
ажиллаж байгаа application-ий хувилбар, ажиллаж байгаа үйлдлийн
системийн төрөл, халдлага хийх боломжийг шалгана.
• SHELLCODE base64 x86 NOOP. 1655 тохиолдол илэрсэн. X86
architecture-тай процессорт зориулсан assembly хэл дээр бичигдсэн shell
код. “Buffer-overflow” болон “format-strings” аргуудыг ашиглан системд
хэрэглэгчийн командуудыг нэвтрүүлдэг.
• WEB-MISC Chunked-Encoding transfer attempt. 35 тохиолдол илэрсэн.
Веб сервер ажилладаг дурын үйлдлийн систем дээр ажиллах боломжтой.
Веб серверлүү privileged хэрэглэгчийн эрхээр баталгаажаагүй холболт
тогтоох зорилготой. Ихэвчлэн серверийг унагаах зорилгоор хэрэглэдэг.
• SPECIFIC-THREATS Microsoft SPNEGO ASN.1 library heap corruption
24
overflow attempt. 35 тохиолдол илэрсэн. Windows NT 4.0, 2000, xp
үйлдлийн системүүдийн MSASN1.DLL, LSASS.EXE, CRYPT32.DLL
зэрэг сангуудаас биелүүлэх боломжтой кодуудыг биелүүлж тухайн
машины нөөцийг их хэмжээгээр зарцуулах зорилготой. Өөрөөр хэлбэл
ихэвчлэн DoS дайралтын аргад хэрэглэдэг.
• SPECIFIC-THREATS ASN.1 constructed bit string. 35 тохиолдол илэрсэн.
MSASN1.DLL сангийн кодыг биелүүлж heap-based buffer overflow
дайралт хийхэд хэрэглэдэг.
• WEB-MISC WebDAV search access. 32 тохиолдол илэрсэн. IIS 5.0-д
зориулагдсан DoS дайралтыг хэрэгжүүлэхэд ашигладаг.

Халдлагын төрлүүдийн тоон харьцаа


Attemptedadministrator privilegegain
1623
Executablecode wasdetected
1274
Accessto apotentially vulnerableWeb
297 application
Web application attack

Attemptedinformationleak

15 67 74 35
Зураг 2.7.б

Тэдгээр халдлагын төрлүүдийн харьцааг “Зураг 2.7.б”-д үзүүлэв.

Халдлагын төрөлд харгалзах эх хаягийн


харьцаа
Attempted administrator
privilege gain
Executable code was detected
690
Access to a potentially
537 vulnerable Web application
Web application attack

60 Attempted information leak

policy-violation

Information leak
3 9 8 9

Зураг 2.7.в

Source ip хаяг нь олон байгаа халдлагыг тодорхойлохын тулд “Зураг


2.7.в”-д үзүүлсэн харьцуулалтыг хийсэн. Энд “attempted administrator privilege
gain” халдлага нь хамгийн олон газрааас хийгддэг гэдэг нь харагдаж байна (690

25
өөр эх хаягнаас). Дараа нь “executablecode was detected” халдлага орж байна.

Зураг 2.7.в

“Зураг 2.7.в”-д халдлага хийсэн хаягийн тоон хамаарлыг үзүүлсэн. Энд


74.55.158.66 хаягнаас хамгийн халдлага илэрсэн. Уг хаягийг whois командаар
харахад:
# whois 74.55.158.66
...
network:IP-Network:74.55.158.64/28
network:IP-Network-Block:74.55.158.64 - 74.55.158.79
network:Organization-Name:WebsiteWelcome
network:Organization-City:Boca Raton
network:Organization-State:FL
network:Organization-Zip:33496
network:Organization-Country:USA
...
Гэсэн үр дүн гарсан. Өөрөөр хэлбэл Америкийн Boca Raton хотоос халдлага
хийсэн байсан.

26
Зураг 2.7.г

“Зураг 2.7.г”-д халдлага хийсэн цагийн харьцааг үзүүлсэн. Энд 14 цагт 4080
халдлага хийгдсэн байгаа нь харагдаж байна гэхдээ шөнө хийгдсэн халдлага нь
бага биш байгаа гэдэг нь мөн харагдаж байна.

Зураг 2.7.е

Зураг 2.7.д

“Зураг 2.7.д” болон “Зураг 2.7.е”-д халдлагат өртсөн портуудыг хооронд


нь харьцуулан үзүүлсэн. 80-р портоор хамгийн их халдлага илэрсэн байгаа нь
харагдаж байна.

2.8 Alert дахь шинжилгээний үр дүн

27
“Зураг 2.7.б”-д үзүүлснээр attempted administrator privilege gain (1274
тохиолдол), executable code was detected (1623 тохиолдол), access to a potentially
vulnerable web application (297 тохиолдол) халдлагууд хамгийн их байгаа нь
ажилгагдаж байна. Эдгээр нь бүгд зэрэглэл өндөртэй халдлагууд бөгөөд аль нэг
нь амжиллтай болвол тухайн веб сервийн тогтвортой үйл ажиллагаа алдагдах ба
зарим өгөгдлүүдээ эсвэл тохиргоонуудыг дахин сэргээх боломжгүй болж
болзошгүй. Иймд аюулгүй байдлыг зайлшгүй сайжруулах шаардлагатай гэсэн үг
ба гэнтийн ослоос хамгаалах төлөвлөгөө (disaster recovery plan) байх
шаардлагатай. Энд гэнтийн ослоос хамгаалах төлөвлөгөөн дотроо өгөгдлийг
нөөцлөх бүтэц үүсгэх шаардлагатай ба аюулгүй байдлын түвшинг аль болох
сайжруулах нь тулгамдсан асуудал болоод байна гэдэг нь тодорхой байна.
Тэдгээр халдлагууд нь “Зураг 2.7.г”-д үзүүлснээр цагийг бүсэд хязгаарлагдахгүй
байгаа нь системийн администратор тухайн халдлагыг таслан зогсоох нь маш
төвөгтэй болж байна. Шөнийн цагаар учрах халдлага нь өдрийн цагаар учрах
халдлагатай харьцуулахад бага байгаа хэдий ч тоон хэмжээ нь их байна. Иймд
дан ганц сүлжээний администратор тухайн халдлагыг таслан зогсооно гэдэг маш
төвөгтөй, администратор халдлагыг таслан зогсоолоо ч гэсэн харьцангүй удаан
үйл ажиллагаа явуулах учир нэгэнт илрээд байгаа халдлагуудыг автоматаар
таслах зогсоодог болгох зайлшгүй шаардлагатай гэдэг нь харагдаж байна. “Зураг
2.7.д” үзүүлснээр вэб сервер учраас 80-р портоор хамгийн их халдлага учирч
байгаа нь харагдаж байгаа хэдий ч бусад портоор халдлага ирж байгаа нь
харагдаж байна. Иймд вэб серверийн аюулгүй байдлыг хангах нь зөвхөн дан
ганц веб серверийн (apache, IIS, …) болон өгөгдлийн сангийн (mysql, ms-sql,
oracle, …)-ийн аюулгүй байдлыг тооцсон сайн тохиргоо, кодыг нь сайтар аудит
хийсэн вэб сайт (php, asp, ... гэх мэт хэлүүд дээр бичигдсэн сайтууд) байсан ч
гэсэн системрүү хандах өөр өргөн боломжуудыг тооцсон аюулгүй байдлыг
хангах шаардлагатай гэдэг нь харагдаж байна. Өөрөөр хэлбэл тэдгээр аюулгүй
байдлыг хангах наад захын шаардлагуудыг хангахаас гадна аюулгүй байдлыг
хангах цогц хамгаалалт болох халдлага эсэргүүцэх систем мөн шаардлагатай
гэдэг нь харагдаж байна.

28
3 Snort-ийг халдлага эсэргүүцэх систем болгон өргөтгөх

Snort-ийн хамгийн сүүлийн хувилбар нь snort-2.8.3.3 (snort-2.8.4 beta


хувилбар нь гарсан) бөгөөд харин одоогоор fedora үйлдлийн систем дээр yum
install командаар суулгах боломжтой хамгийн сүүлийн хувилбар нь snort-2.8.1-5
байна.
Одоогоор snort-ийг халдлага эсэргүүцэх систем болгон өргөтгөх ажлыг
хийдэг доорх 5 төсөл байна.
• Snort_inline
• Fwsnort
• Snortsam
• Guardian
• Snort2c

Snort_inline: Хамгийн сүүлийн хувилбар нь snort_inline-2.6.1.5 (2007.05.09)


бөгөөд OSI загварын 3-4,7 –р түвшинд халдлагыг таслан зогсоох боломжтой.
Өөрөөр хэлбэл халдлагыг ip хаяг, порт, протоколоор нь хязгаарлах
боломжтойгоос гадна packet replace хийх боломжтой.
Fwsnort: Хамгийн сүүлийн хувилбар нь fwsnort-1.0.5 (2008.08.21) бөгөөд
OSI 3,4 –р түвшинд халдлага эсэргүүцэх боломжтой. Snort-2.3.3 болон өмнөх
хувилбаруудтай нь холбогдож ажилладаг.
Snortsam: Хамгийн сүүлийн хувилбар нь snortsam-2.57 (2008.11.05 patched)
бөгөөд OSI 3,4-р түвшинд халдлага эсэргүүцэх боломжтой. Snort-2.8.3.1 болон
өмнөх хувилбаруудтай нь холбогдож ажиллах боломжтой.
Guardian: Хамгийн сүүлийн хувилбар нь guardian-1.7 бөгөөд хөгжүүлэлт нь
зогссон.
Snort2c: Хамгийн сүүлийн хувилбар нь Snort2c-0.2 (2005.02.29) бөгөөд
хөгжүүлэлт нь зогссон.

3.1 Snortsam

29
Snortsam нь snort-ийн халдлагыг тодорхойлоод гаргасан alert-уудыг нь
ашиглаад халдлагыг таслан зогсоодог ба snort суусан хост (цаашид snort хост
гэж ярьна)-оос өөр хост дээр суулгагдаж snort хост болон firewall бүхий хост

Зураг 3.1.1. илалтгаалсан аюулын нөлөөллөөс зайлс


буюу router төхөөрөмжүүдтэй
хийнэ.үлэх. Ингэснээрхолбогдож ажиллах
байглийн хүчин боломжтой.
зүйлсээс г.эл р Snortsam
эдэг нь нь
“Зураг 3.1.1.а”-д үзүүлсэн байдлаар snort-ийн гаралтын утгууд болох alert-уудад
харгалзах firewall rule-үүдийг үүсгэж firewall-руу дамжуулж халдлагыг ip хаяг,
портын дугаар, протоколоор нь блоколдог.
Snortsam нь “Зураг 3.1.1.б”-д үзүүлсэн snortsam хост болон snort хост-
хоёрын хооронд дамжуулах мэдээллээ twofish алгоритмоор кодолж аюулгүй
байдлаа хангадаг бөгөөд олон snort суусан хостоос ирэх alert-д харгалзах firewall
rule-үүдийг үүсгэх боломжтой. Мөн түүнчлэн халдлага болгоны шинж чанар
(signature)-т харгалзах блоклох хугацааг тодорхойлж, блоклохгүй хостуудыг
тодорхойлох, лог үүсгэх (лог үүсгэх 3-н өөр түвшин байдаг), төрөл бүрийн
firewall (pix, ciscoacl, cisconullroute, ipf, ipchains, iptables, ebtables, ipfw2)-д
зориулан rule үүсгэх боломжтой.
Snortsam нь сүлжээнд байршихдаа “Зураг 3.1.1.б”-д үзүүлсэн байдлаар
snort хост дээр ажиллаж байгаа snort-ийн гаралтын үр дүн болох alert-уудыг
хүлээж авах боломжтой snortsam хост дээр суулгагдсан байна. Мөн snortsam
хост нь snort хостоос хүлээн авсан alert-д харгалзах firewall rule-ийг үүсгэж
router рүү дамжуулах боломжтой газар байралсан байх ёстой. Мөн “Зураг
3.1.1.б”-д үзүүлсэн байдлаар сүлжээний бүтэц үүсгэн snort болон snortsam-ийг
ашиглан халдлага эсэргүүцэх системийг ажиллуулж болохоос гадна snortsam-
ийг snort суусан хост дээр давхар суулгаж ашиглаж болно. Snort болон snortsam

30
суусан хост нь routing хийдэг байсан ч бас болно. Өөрөөр хэлбэл халдлага
эсэргүүцэх системийн дэд хэсгүүдийг сүлжээнд тахасан байдлаар эсвэл нэг хост
дээр байршуулж ашиглах боломжтой.

3.1.1 Snortsam-ийг суулгах ба түүнд зориулан snort-ийг компайлдах

Snortsam нь одоогоор snort-2.8.3.2 болон өмнөх хувилбартай нь


холбогдож ажиллах боломжтой байгаа бөгөөд fedora core 10 дээр суулгаж болж
байна. Мөн snort-ийг snortsam-тай холбогдож ажилладаг болгохын тулд snort-
ийн кодонд alert-уудыг нь snortsam суусан хоструу илгээдэг гаралтын plugin
нэмж дахин компайлдах шаардлагатай. Иймд snort-2.8.3.2 –ийн эх кодыг татаж

IPS

IDS

Зураг 3.1.1.
Alerts

илалтгаалсан
Snortsam host Snort host
ffic
Fir

tra
e
wa

rk
ll

two
rul

Ne
e

Network traffic Network traffic

Router
авах шаардлагатай.

Санамж: Доор үзүүлсэн команд бүрийг дарааллаар нь хийхийг миний


зүгээс зөвлөж байна.

Snort-2.8.3.2-ийн эх кодыг компайлдах.


Snort, snortsam, snortsam-patch-н эх кодуудыг хадгалах хавтсанд шилжэх.
# cd /home/OL/Snort
31
Дараах командаар snort-2.8.3.2-ийн эх кодыг www.snort.org сайтаас татаж
авах боломжтой.
# wget http://www.snort.org/dl/snort-2.8.3.2.tar.gz
Дараах командаар snort-ийн кодонд alert-уудыг нь snortsam-руу илгээх
гаралтын plugin нэмэх patch-ийг www.snortsam.net сайтаас татаж авах
боломжтой.
# wget http://www.snortsam.net/files/snort-2.8-plugin/snortsam-
2.8.3.diff

Snort-ийг компайлдахад automake болон autoconf пакежууд, pcre болон


libpcap функцийн сангууд, libtool команд шаардлагатай. Иймд yum install
командаар тэдгээрийг суулгаж болно. Энэ үед automake-1.10.1-2.noarch,
autoconf-2.63-1.fc10.noarch, pcre-7.8-1.fc10.i386 already, pcre-devel-7.8-
1.fc10.i386,
pcre-static-7.8-1.fc10.i386, libpcap-0.9.8-3.fc10.i386, libpcap-devel-0.9.8-
3.fc10.i386, libpcapnav-0.8-2.fc10.i386, libpcapnav-devel-0.8-2.fc10.i386,
libtool-1.5.26-4.fc10.i386 пакежууд сууна.
# yum install automake autoconf pcre pcre-devel pcre-static libpcap
libpcap-devel libpcapnav libpcapnav-devel libtool
Татаж авсан эх кодоо дараах командаар задлаж болно.
# tar -xvf snort-2.8.3.2.tar.gz
Snort-2.8.3.2 –ийн эх код бүхий хавтсан шилжиж байгаад компайлдах нь
тохиромжтой. Дараах командаар шилжинэ.
# cd snort-2.8.3.2
Snort-ийн эх кодонд гаралтын plugin нэмэх patch-ийг ажиллуулахдаа
дараах командыг хэрэглэж болно.
# patch -p1 -i ../snortsam-2.8.3.diff
Aclocal-ийг хэрэглэхийн тулд libprelude.m4 файлыг /usr/share/aclocal/
хавтсанд хуулна. Дараах командаар хуулж болно.
# cp m4/libprelude.m4 /usr/share/aclocal/
Aclocal, autoheader, automake, autoconf-уудыг дараах командуудаар
ажиллуулж болно.
# aclocal

32
# autoheader
# automake --add-missing
# autoconf
Make командар компайлдах үед ar болон libtool командууд дээр алдаа
зааж байсан учир Makefile.in файл доторх 82, 126-р мөрүүдийг засах
шаардлагатай. “vi” засварлагчийг ашиглаж тухайн файлыг засварлаж болно.
# vi Makefile.in
82 AR = ar
126 LIBTOOL = libtool
Одоо configure командаар компайл хийх тохиргоог хийх боломжтой. Мөн
mysql-тэй холбогдох гаралтын plugin-ийг цуг суулгаж болно.
# ./configure --with-mysql
Шууд make командыг ажиллуулахад заримдаа алдаа гардаг учир эхлээд
make clean командыг ажиллуулвал тохиромжтой.
# make clean
Одоо make болон make install командуудаар суулгах боломжтой.
# make
# make install
Компайл хийх явцад тохиргооны файлууд хуулагдаагүй бол дараах
командуудаар /etc/snort хавтсыг үүсгэж дотор нь snort-ийн тохиргооны
файлуудыг хуулж болно.
# mkdir /etc/snort
# cp etc/unicode.map /etc/snort/
# cp etc/reference.config /etc/snort/
# cp etc/sid-msg.map /etc/snort/
# cp etc/gen-msg.map /etc/snort/
# cp etc/classification.config /etc/snort/
# cp etc/snort.conf /etc/snort/
Компайл хийхэд анхны утгаараа snort.conf файл дотор snort-ийн халдлага
шалгахад ашигладаг rule-үүдийг хадгалсан замыг буруу заасан байх боломжтой
учир дараах командаар 110, 111-р мөрүүдийг засварлаж болно.
# vi /etc/snort/snort.conf
110 var RULE_PATH rules

33
111 var PREPROC_RULE_PATH preproc_rules

Snortsam-ийг суулгах.
Одоогоор snortsam-ийн хамгийн сүүлийн хувилбар нь snortsam-2.57
байгаа учир дараах командаар эх кодыг нь татаж авч болно.
# wget http://www.snortsam.net/files/snortsam/snortsam-src-
2.57.tar.gz
Snortsam-ийг дараах командаар задлаж болно.
# tar -xvf snortsam-src-2.57.tar.gz
Snortsam-ийг суулгахдаа кодууд байгаа хавтсанд шилжвэл тохиромжтой.
Дараах командаар шилжиж болно.
# cd snortsam
Snortsam-ийг одоо wakesnortsam.sh файлыг ажиллуулаад суулгах
боломжтой.
# ./makesnortsam.sh
Компайл хийгдсэн учир binary файлуудыг нь /usr/local/bin хавтас руу
хуулж ашиглах нь тохиромжтой. Дараах командаар хуулж болно.
# cp snortsam* /usr/local/bin
Мөн тохиргооны файлыг нь /etc хавтсанд хуулж ашиглавал тохиромжтой.
Дараах командаар хуулж болно.
# cp conf/snortsam.conf.sample /etc/snortsam.conf

3.1.2 Snortsam-ийг тохируулах

Snortsam суусан болон snort суусан хостууд нь хоорондоо дамжуулах


мэдээллээ twofish алгоритмоор кодолж аюулгүй байдлаа хангахаас гадна аль нэг
портоор баталгаажуулдаг.
Баталгаажуулах портоо сонгохдоо өөр service уг портыг ашиглаж байгаа
эсгийг шалгах ёстой. Дараах командаар шалгаж болно.
# netstat -an | grep 4525
4524 портыг ашиглах бол iptables-т зөвшөөрч өгөх ёстой. Доорх байдлаар
тохируулж болно. Гэхдээ аюулгүй байдны үүднээс мөн эх хаягийг нь давхар
зааж өгөх нь тохиромжтой. Мэдээж эх хаяг нь snort хостын хаяг байна.
34
# iptables -I INPUT -p tcp --dport 4524 -j ACCEPT
Snortsam-ийн үндсэн тохиргооны файлийг нь суулгах явцад /etc хавтсанд
хуулсан учир доорх командаар тохируулж болно.
# vi /etc/snortsam.conf
# Баталгаажуулахад шаардагдах default нууц үгийг энд тохируулна
defaultkey snortpassword
# Баталгаажуулах портыг энд заана
port 4525
# Alert дамжуулах хостыг энд заана
accept 10.0.0.161
# Лог хадгалах файлыг энд заана
логfile /var/лог/snort/snortsam.лог
# Snortsam service-ийг сонсох хаягийг нь энд заана
bindip 10.0.0.161
# iptables ашиглах бол энд заана
iptables eth0 sysлог.info
# Лог хадгалах түвшинг энд тодорхойлно. 1,2,3 –н аль нэг нь байна.
# Хамгийн дэлгэрэнгүй лог үүсгэх түвшин нь 3.
логlevel 3

Snort-ийн үндсэн тохиргооны файлд snortsam руу alert дамжуулдаг болгох


тохиргоог хийх шаардлагатай. Дараах командаар тохиргооны файлыг засварлаж
болно.
#vi /etc/snort/snort.conf
# alert илгээх хостын хаяг, порт болон баталгаажуулах нууц үгийг
# тохируулна.
Output alert_fwsam: 10.0.0.161:4525/snortpassword

3.1.3 Snortsam-ийн ажиллагааг шалгах

Snort-ийн /etc/snort/rules/local.rule файлд доор үзүүлсэн байдлаар ямар ч


хаягнааас ирэх веб хүсэлтийг 999999 signature бүхий attempted-admin төрлийн
testing гэсэн халдага гэж таниад 60 секунд блоклодог байхаар туршилтын rule
35
бичээд шалгаж болно.

alert tcp any any -> 10.0.0.161 80 (msg:"testing"; classtype:attempted-admin;


sid: 999999; fwsam: src, 1 minutes;)

snort болон snortsam-ийг ажиллуулаад 10.0.5.59 гэсэн хаягнаас веб үзэх


оролдлого хийхэд iptables-т 10.0.5.59 хаягийг блоколсон rule нэмэгдсэн эсгийг
шалгахад:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP all -- 10.0.5.59 anywhere

Chain FORWARD (policy ACCEPT)


target prot opt source destination
DROP all -- 10.0.5.59 anywhere

Chain OUTPUT (policy ACCEPT)


target prot opt source destination

болж 10.0.5.59 хаягийг блоклож байна.


Snortsam-ийн snortsam.лог файлд хадгалагдсан логийг шалгахад дараах
үр дүн мөрүүд орсон байна:
2009/02/23, 13:12:56, 10.0.0.161, 3, snortsam, Accepted
connection from 10.22.1.69.
2009/02/23, 13:12:56, 10.0.0.161, 3, snortsam, Adding sensor
10.0.0.161 to list.
2009/02/23, 13:13:12, 10.0.0.161, 3, snortsam, Accepted
connection from 10.0.0.161.
2009/02/23, 13:13:12, 10.0.0.161, 2, snortsam, Blocking хост
10.0.5.59 completely for 60 seconds (Sig_ID: 999999).
2009/02/23, 13:13:12, -, 3, iptables, Info: Blocking ip 10.0.5.59
2009/02/23, 13:13:12, -, 3, iptables, Info: Command /sbin/iptables -I
FORWARD -i eth0 -s 10.0.5.59 -j DROP Executed Successfully
2009/02/23, 13:13:12, -, 3, iptables, Info: Command2 /sbin/iptables
-I INPUT -i eth0 -s 10.0.5.59 -j DROP Executed Successfully
2009/02/23, 13:13:12, -, 3, iptables, Info: Command /sbin/iptables -I
FORWARD -i eth0 -d 10.0.5.59 -j DROP Executed Successfully
Иймд уг халдлагыг таслан зогсоож болж байна.

4 Практик судалгаа

Бодит халдлагыг таслан зогсоож энгийн хэрэглэгчдийг блоклохгүй байгаа


36
эсгийг шалгах практик судалгаа хийсэн.
Ингэхдээ www.snort.org сайтад бүртгүүлж бүртгэгдсэн хэрэглэгчид л татах
эрхтэй rule-үүдийг авч ашиглах ба тэдгээр rule-үүд дэхь signature болгонд
харгалзах блоклох хугацааг тодорхойлж snort болон snortsam-ийг ажиллуулсан.
Signature болгонд харгалзах блоклох хугацааг snortsam-ийн sid-block.map
файлд тодорхойлох ба уг файлыг үүсгэхдээ secure.redsphereglobal.com-оос
create-sidblock.pl файлыг татаж аваад ажиллуулах замаар үүсгэх боломжтой.
Ингэхдээ дараах командыг ашиглаж болно. (snortsam-ийг суулгасан хост дээр)
# wget https://secure.redsphereglobal.com/data/jj/create-sidblock-
.pl.gz
Татаж авсан файл нь “gz” өргөтгөлтэй шахсан файл байдаг учир дараах
командаар задалж болно.
# gunzip create-sidblock.pl.gz
Ямар хугцаагаар блоклохоо create-sidblock.pl файлын 112-р мөрөнд
засвар хийх замаар тохируулж болно. Ингэхдээ дараах командаар засварлаж
болно.
# vi create-sidblock.pl
112 $sidmap{$sid} = "$sid: src[conn],30min;";

Хугацаагаа тохируулсан бол create-sidblock.pl файлыг ачааллаж sid-


block.map файлыг үүсгэж болно.
# ./create-sidblock.pl /etc/snort/rules/ > /etc/snort/sid-block.map
sid-block.map файл үүссэн эсгийг шалгахдаа дараах командыг ашиглаж
болно.
# vi /etc/snort/sid-block.map

105: src[conn],30min;
108: src[conn],30min;
109: src[conn],30min;
110: src[conn],30min;
...
14780: src[conn],30min;
14781: src[conn],30min;
Одоо snort болон snortsam-ийг ажиллуулаад халдлагыг эсэргүүцэж байгаа
эсгийг шалгах боломжтой болсон. Дараах командаар snort-ийг ажиллуулж
болно. Санамж: snort-ийн кодонд alert_fwsam гэсэн гаралтын plugin нэмсэн
байгаа учир alert горимд ажиллуулгүй.
# snort –c /etc/snort/snort.conf –i eth0
Snortsam нь тохиргооны файлаа уншихдаа анхны утгаараа /etc/snortsam.conf
замаас уншдаг учир дараах командаар ажиллуулж болно.

37
# snortsam

4.1 Hping3-ийг ашиглан хийсэн халдлагыг таслан зогсоох

Халдлага хийх хост дээр hping3 пакежийг суулгаж (fedora-д implement


хийгдсэн байдаг учир “yum install hping3” командаар суулгах боломжтой)
халдага эсэргүүцэх систем бүхий хост руу дараах командыг ашиглан DoS
халдлага хийж болно. (Доорх командаар халлдлага эсэргүүцэх систем
ажиллуулаагүй веб сервер лүү халдлага хийхэд ойролцоогоор 2MB орчим
пакетын урсгалаар веб сервер дээрх apache service ажиллахгүй болж байсан.
Өөрөөр хэлбэл халдлага хийгдэж байх үед дурын хостоос уг веб серверийн
вебийг үзэж чадахгүй болж байсан.)
# hping3 -i u1 -S -p 80 –a 10.2.3.4 10.0.0.161
Халдлага эсэргүүцэх систем маань халдлагыг таслан зогсоож байгаа эсгийг
iptables-т rule нэмэгдэж байгаа эсгээр нь мэдэж болно. Дараах командаар шалгаж
болно.
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- 10.2.3.4 10.0.5.112 tcp
dpt:http

Chain FORWARD (policy ACCEPT)


target prot opt source destination
DROP tcp -- 10.2.3.4 10.0.5.112 tcp
dpt:http

Chain OUTPUT (policy ACCEPT)


target prot opt source destination
Халдлага эсэргүүцэх систем ажиллаж байгаа веб сервер лүү hping3-аар DoS
халдлага хийж байх үед дурын хостоос веб сервер дээрх веб хуудсыг үзэж болж
байна.

4.2 Бодит халдлагын үр дүн

Snort.org-оос татсан rule-ийг ашиглан snort болон snortsam-ийг 2009/03/10-


2009/05/13 хооронд ажиллуулаад нийт блоколсон үр дүнг “Хүснэгт 4.2.а” болон
“Зураг 4.2.а”-д үзүүлэв.
38
Signature ID Блоклогдсон Тайлбар
тоо
469 390 ICMP PING NMAP
483 2886 ICMP PING CyberKit 2.2 Windows
486 13104 ICMP Destination Unreachable
Communication with Destination Хост is
Administratively Prohibited
524 214 BAD-TRAFFIC tcp port 0 traffic
1070 3354 WEB-MISC WebDAV search access
1248 1872 WEB-FRONTPAGE rad fp30reg.dll access
1384 702 MISC UPnP malformed advertisement
1497 468 WEB-MISC cross site scripting attempt
1852 156 WEB-MISC robots.txt access
2049 858 SQL ping attempt
2050 1404 MS-SQL version overflow attempt
2410 1248 WEB-PHP IGeneric Free Shopping Cart
page.php access
2381 588 WEB-MISC Checkpoint Firewall-1 HTTP
parsing format string vulnerability
attempt
Хүснэгт 4.2.а

WEB-FRONTPAGE rad
ICMPDestination Unreachable fp30reg.dll access, 1872
Communication with
Destination Хост is
Administratively Prohibited, BAD-TRAFFICtcp port 0 traffic, MISCUPnPmalformed
13104 214 advertisement, 702

WEB-MISCcross site scripting


attempt, 468

WEB-MISCrobots.txt access,
ICMPPING CyberKit 2.2
Windows, 2886 SQLping attempt,156
858

ICMPPING NMAP, 390 MS-SQLversion overflow


attempt, 1404
WEB-PHPIGenericFree
Shopping Cart page.php access,
WEB-MISCCheckpoint Firewall-
1248
1 HTTPparsing format string
ICMPPING CyberKit 2.2 vulnerability attempt, 588
Windows, 37

Зураг 4.2.а

WEB-MISCWebDAV search
access, 3354

5 Дүгнэлт

Практик судалгааны ажлын үр дүнд hping3 пакежийг ашиглан “hping3


-i u1 -S -p 80 –a 10.2.3.4 10.0.0.161” командаар халдлага хийхэд
веб серверийг хэвийн ажиллагааг доголдуулж болж байсан бол. Уг веб серверт
39
халдлага эсэргүүцэх системийг хэрэглэхэд халдлагыг таслан зогсоож болж
байсан. Мөн “Хүснэгт 4.2.а” болон “Зураг 4.2.а”-д үзүүлсэн халдлагуудыг
таслан зогсоосон учир чөлөөтэй болон нээлттэй эх бүхий халдлага эсэргүүцэх
системийг ашиглах нь өртөг бага зарцуулан аюулгүй байдлыг хангах шийдэл
болох нь харагдаж байна.
Уг халдлага эсэргүүцэх системийг ашиглах нь сүлжээгээр дамжих энгийн
мэдээллүүдийн дамжих хурданд нөлөөлөхгүй байгаа учир гарцан дээр
ашигласан ч сүлжээний гүйцэтгэлийг бууруулахгүй болох нь тодорхой байна.
www.mnfedora.org серверт уг халдлага эсэргүүцэх системийг ашиглахад
хэвийн үйл ажиллагаанд нь нөлөөлөхгүй байна.
Snort-ийг суулгасан хост дээрээс www.mnfedora.org серверлүү чиглэх
халдлагуудыг таслан зогсоох удирдлагыг хийх боломжтой байгаа нь системийн
администраторын ажлыг хөнгөвчилж байна.

6 Ном зүй

• Network Intrusion Detection 3rd Edition. David Dwyer, Stephanie Wall


• Snort 2.1 Intrusion Detection System, Second Edition. Andrew R. Baker,

40
Brian Caswell, Mike Poor (2004)
• Snort IDS and IPS toolkit (2007)
• http://doc.emergingthreats.net/bin/view/Main/SnortSam
• http://global-security.bлогspot.com/2008/04/block-bad-oss-ips-with-
content.html

41

You might also like