Ips

  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Ips as PDF for free.

More details

  • Words: 7,170
  • Pages: 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, rpm, source, windows installer

Чөлөөт болон нээлттэй эх

Linux, BSD-based HIDS, NIDS, DIDS OSes, Solorais, Mac OS боловч IPS болгон X, HP-UX, IRIX өргөтгөх боломжтой.

Untangle

2003

6.1(2009)

Чөлөөт болон нээлттэй эх

Gnome lokkit HLBR

-

1.0

boot cd, windows installer Rpm, source

2005

1.6(2008)

Rpm, source

Windows, Өөртөө HIPS, NIPS агуулсан debian суурьт үйлдлийн систем Gnome-ийг дэмждэг HIPS бүх үйлдлийн систем Linux HIPS

GeSwall

2006

2.8 (2009)

Winpooch

2004

windows installer 0.6.6 (2007) windows installer

Чөлөөт болон нээлттэй эх Чөлөөт болон нээлттэй эх Чөлөөт Чөлөөт болон нээлттэй эх

Windows

HIPS

Windows

HIPS

Хүснэгт 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/customguide/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.14.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-ийн Зураг 2.6.2.а

direcotory-т нь бичих эрхийг нэмнэ. Дараах командаар бичих эрх нэмж 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] 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 Use Rules File -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.а”-д үзүүлснээр Snort суусан хостийг hub-ийн аль нэг портонд

Router

Hub Snort

холбоход тухайн hub-аар дамжиж байгаа бүх пакетуудад шинжилгээ хийх боломжтой болно.

Зураг Host

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

Access point

“Зураг 2.6.3.б”-д үзүүлснээр hub ашигласан сүлжээтэй адилаар snort бүхий хост нь access point-той холбогдсон бол тухайн access point-оор дамжих пакетыг шинжлэх

Snort

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

холболтыг “Зураг ашигласан.

hub

www.mnfedora.org

2.6.3.г”-д үзүүлсэн байдлаар холбож “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 ture Address ress

Last

unclassified

3532 (16%)

1

32

67

83

2008-11-26 17:06:5

2008-12-03 21:45:20

unclassified

162 (1%)

1

8

16

2

2008-11-26 15:23:25

2008-12-13 15:51:58

misc-activity

16950 (76%)

1

13

312

588

2008-11-26 14:16:37

2008-12-13 17:22:07

bad-unknown

5 (0%)

1

1

1

1

2008-11-26, 04:24

2008-11-26, 04:24

system-call-detect

1 (0%)

1

1

1

1

2008-11-26 17:01:46

2008-11-26 17:01:46

attempted-admin

700 (3%)

1

4

150

2

2008-11-29 13:07:06

2008-12-13 16:56:21

shellcode-detect

467 (2%)

1

7

5

2

2008-11-29 13:07:06

2008-12-13 16:32:11

web-application-activity

134 (1%)

1

6

40

2

2008-11-29 13:07:06

2008-12-13 14:28:12

web-application-attack

13 (0%)

1

2

5

2

2008-11-29 13:07:17

2008-12-11 11:29:15

attempted-recon

48 (0%)

1

4

7

9

2008-12-03 05:21:51

2008-12-12 19:27:26

misc-attack

192 (1%)

1

2

41

2

2008-12-03 23:48:31

2008-12-13 16:56:21

policy-violation

10 (0%)

1

1

2

1

2008-12-12 15:02:21

2008-12-13 17:18:51

successful-recon-limited

1 (0%)

1

1

1

1

2008-12-13 05:12:10

2008-12-13 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 application Web application attack

297

Attemptedinformationleak

15

67

74

35

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

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

Attempted administrator privilege gain Executable code was detected

690

Access to a potentially vulnerable Web application Web application attack

537 60

Attempted information leak policy-violation

3

Information leak

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

Snort host

илалтгаалсан

e Fir

tra ffic

Snortsam host

e rul

Ne two rk

ll wa

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/snortsam2.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.81.fc10.i386, pcre-static-7.8-1.fc10.i386, libpcap-0.9.8-3.fc10.i386, libpcap-devel-0.9.83.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-src2.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 DROP all -- 10.0.5.59

destination 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 файлыг ачааллаж sidblock.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 DROP tcp -- 10.2.3.4 dpt:http Chain FORWARD (policy ACCEPT) target prot opt source DROP tcp -- 10.2.3.4 dpt:http Chain OUTPUT (policy ACCEPT) target prot opt source

destination 10.0.5.112

tcp

destination 10.0.5.112

tcp

destination

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

4.2 Бодит халдлагын үр дүн Snort.org-оос татсан rule-ийг ашиглан snort болон snortsam-ийг 2009/03/102009/05/13 хооронд ажиллуулаад нийт блоколсон үр дүнг “Хүснэгт 4.2.а” болон “Зураг 4.2.а”-д үзүүлэв. 38

Signature ID Блоклогдсон тоо

Тайлбар

469 483 486

390 2886 13104

524 1070 1248 1384 1497 1852 2049 2050 2410

214 3354 1872 702 468 156 858 1404 1248

2381

588

ICMP PING NMAP ICMP PING CyberKit 2.2 Windows ICMP Destination Unreachable Communication with Destination Хост is Administratively Prohibited BAD-TRAFFIC tcp port 0 traffic WEB-MISC WebDAV search access WEB-FRONTPAGE rad fp30reg.dll access MISC UPnP malformed advertisement WEB-MISC cross site scripting attempt WEB-MISC robots.txt access SQL ping attempt MS-SQL version overflow attempt WEB-PHP IGeneric Free Shopping Cart page.php access WEB-MISC Checkpoint Firewall-1 HTTP parsing format string vulnerability attempt

Хүснэгт 4.2.а

WEB-FRONTPAGE rad fp30reg.dll access, 1872

ICMPDestination Unreachable Communication with Destination Хост is Administratively Prohibited, 13104

BAD-TRAFFICtcp port 0 traffic, 214

MISCUPnPmalformed 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

ICMPPING CyberKit 2.2 Windows, 37

WEB-MISCCheckpoint Firewall1 HTTPparsing format string vulnerability attempt, 588

MS-SQLversion overflow attempt, 1404 WEB-PHPIGenericFree Shopping Cart page.php access, 1248

Зураг 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-withcontent.html

41

Related Documents

Ips
November 2019 60
Ips
May 2020 48
Ips
October 2019 53
Ips
June 2020 34
Ips 5
October 2019 53
Cover Ips
October 2019 60