Penetration тест

**Penetration test** гэдэг нь гадна болон дотоодын хорт санаатай этгээдийн дайралтыг дуурайлган үзүүлэх замаар компьютерын систем болон сүлжээний хамгаалалтыг үнэлэх арга юм. Аюулгүй байдлын үнэлгээ болон эмзэг байдлын үнэлгээ нь сүлжээний эмзэг байдлыг илрүүлэх болон арилгахад хангалттай биш байдаг тул Пенитрэшин тестийг хийдэг. Ердийн эмзэг байдлын шалгалт нь сул талыг орхигдуулах талтай. Пенитрэшин тест нь сүлжээний администратор, IT менежер, удирдлагуудад сүлжээнд гарч болзошгүй зөрчлийг илрүүлэхэд туслах болно.                                                                                 

## Аюулгүй байдлын үнэлгээ 
Байгуулага бүр сүлжээнийхээ нөөцийн аюулгүй байдлын түвшинг үнэлэхдээ янз бүрийн аюулгүй байдлын үнэлгээ ашиглана. Байгууллага өрийнхөө нөхцөл байдалд тохирсон үнэлгээний аргыг сонгох шаардлагатай. Удирдах хүн нь аюулгүй байдлын үнэлгээний өөр өөр төрөл болон ур чадварыг эзэмшсэн байх ёстой. Тиймээс пенитрэшин тестийг хийгчид сайтар туршлагатай байх ёстой. Аюулгүй байдлын үнэлгээний ангилалд **аюулгүй байдлын аудит**, **эмзэг байдлын үнэлгээ**, **пенитрэшин тест** болон **ёс зүйтэй хакердах** зэрэг орно.
                                                       
### Аюулгүй байдлын аудит 
Мэдээллийн технологийн аюулгүй байдлын аудит нь ихэвчлэн сүлжээг загварчлах, хэрэгжүүлэх болон аюулгүй байдлыг удирдахад ашиглагдах хүмүүс болон үйл явцад анхаарлаа хандуулдаг. Байгууллагын суурь үзүүлэлт нь үйл явц, бодлого байдаг. IT-гийн аюулгүй байдлын суурь үзүүлэлтэд аудитор ба байгууллагын аюулгүй байдлын бодлого болон журам  орно.

Компьютер нь систем болон програмын аюулгүй байдлын аудитын техникийн үнэлгээг **гараар** болон **автоматаар** хийдэг.

Та дараах арга техникийг ашиглан гараар үнэлгээ хийж болно:

Ажилчнаас ярилцлага авах

Програм болон үйлдлийн системүүдийн хандалтын хяналтыг харах

Системийн физик хандалтанд дүн шинжилгээ хийх

Та дараах арга техникийг ашиглан автоматаар үнэлгээ хийж болно:

Аудитын тайлан гаргах 

Хяналтын болон мэдээллийн файлын өөрчлөлт(monitoring and reporting)

### Эмзэг байдлын үнэлгээ 
Эмзэг байдлын үнэлгээн нь аюулгүйн эмзэг байдлыг тодорхойлоход тусална.Эмзэг байдлын үнэлгээг хийхийн тулд та маш их ур чадвартай мэргэжлийн байх ёстой.Үнэлэхдээ хакерууд(гадны), хуучин ажилтнууд, дотоод ажилтнууд гэх мэт тодорхойлж болно. 

#### **3.Пенитрэшин тест:** 
Пенитрэшин тест нь гадна болон дотоодын хорт санаатай этгээдийн дайралтыг дуурайлган үзүүлэх замаар компьютерын систем болон сүлжээний хамгаалалтыг үнэлэх арга юм.Пенитрэшин тест нь төрөл бүрийн эмзэг байдлын түвшинг тодорхойлоход танд тусалдаг.Пенитрэшин тест нь байгууллагын аюулгүй байдлын загварын нүх цоорхойг харуулдаг үйл ажилгаа гэж үзэж болно. Энэ тест нь учирсан аюулыг сэргээн засах болон бизнесийн тасралтгүй ажиллагааны төлөвлөлтөнд тань тусалж чадна.

### Эмзэг байдлын үнэлгээ 
Эмзэг байдлын үнэлгээ нь аюулгүй байдлын үндсэн төрөл юм. Энэ үнэлгээ нь сүлжээг шалгаж мэдэгдэж байгаа аюулгүй байдлын сул талыг олоход тусална.Эмзэг байдалыг шалгах хэрэгсэлийн тусламжтайгаар IP –идэвхжсэн төхөөрөмж, үйлдлийн систем мөн програмуудын сүлжээний сегментүүдийг хайх боломжтой. Эмзэг байдалд шалгалт хийгчид нь компьютерийн ажиллаж байгаа OS хувилбар, IP протокол, TCP / UDP портуудыг сонсох болон компьютер дээр суулгасан програмууд гэх мэтчилэн төхөөрөмжийн тохиргоонуудыг олж тогтоох чадвартай байдаг.
Нийтлэг аюулгүй байдлын алдаануудад муу нууц үг бүхий бүртгэлүүд, сул зөвшөөрөл бүхий файл болон хавтас, устаж болох хэрэгтэй програмууд, програмуудын тохиргоондох  нийтлэг алдаануудыг тодорхойлж болно. Эмзэг байдлын шалгалт хийгчид нь систем болон сүлжээний төхөөрөмжүүдийг нийтлэг халдлага хийж шалгах боломжтой.ЖН:Dos

Нөхцөл байдлаас хамаарч эмзэг байдлын шалгалт хийгчид нь хоёр төрөл байна:
**Сүлжээнд суурилсан** болон **хост дээр тулгуурласан**.

**Сүлжээнд суурилсан** шалгалт хийгчид нь гаднаас эмзэг байдлыг илрүүлэхийг оролддог. Ихэвчлэн алсын систем, гадны байгууллага болон эрх бүхий хэрэглэгчийн хандалтыг хэлнэ.Сүлжээнд суурилсан скан хийгчид нь нээлттэй портыг, програмын аюулгүй байдал болон буфер дүүргэх гэсэн аргуудыг ашиглан системийг шалгадаг.

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

### Яагаад Пенитрэшин тест хийдэг вэ? 
Пенитрэшин тест нь систем болон сүлжээний аюулгүй байдлыг үнэлэхэд маш чухал үүрэг гүйцэдгэдэг. Энэ нь халдагчид нүх цоорхойг олоход тусална.  Пенитрэшин тест нь сүлжээний аюулгүй байдлын цоорхойг харуулж бас эрсдлийг үнэлж өгдөг. 

### Та пенитрэшин тестийн тусламжтайгаар юу хийж чадах вэ? 
•	Та байгууллагын мэдээллийн хөрөнгөд тулгарч буй аюул заналыг тодорхойлох болно.

•	Байгууллагын IT-ийн аюулгүй байдлын зардлыг бууруулна

•	Байгууллагын  аюул байдлын үнэлгээг, журам, зураг төсөл, хэрэгжүүлэлтыг нарийвчлан гаргана.

•	Салбарын журмын Гэрчилгээг хадгалж болно(BS7799, HIPAA гэх мэт)

•	Та хууль эрх зүйд нийцсэн хамгийн сайн практикийг нэвтрүүлэх болно

•	Энэ тест нь аюулгүй  байдлын хамгаалалт, хяналтын үр ашгийг үнэлэх болно

•	Галт хана, рутер, вэб сервер гэх мэтчилэн сүлжээний аюулгүй байдлын төхөөрөмжүүдийн үр ашгийг үнэлнэ.

•	Програм хангамж, техник хангамж эсвэл сүлжээний дизай зэрэг одоо байгаа дэд бүтцийг шинэчлэхэд ашиглаж болно.

## Penetration testing -ийн үе шатууд 
Penetration test –нь гурван үе шаттай байна.

### Халдлагын өмнөх үе шат 
Энэ үе шат нь боломжийнхоо хирээр их мэдээлэл цуглуулах дээр анхаарлаа хандуулж байна.

### Халдлагын үе шат 
Халдлагын үе шат - өмнөх цугласан мэдээлэл дээр тулгуурлан стратеги боловсруулна. Стратеги боловсруулхасаа өмнө ямар халдлага хийхээ сонгоно. 

### Халдлагын дараах үе шат 
Энэ үе шат нь туршилтын үйл явцын чухал хэсэг юм. Шалгагч сүлжээг анхны байдалд нь оруулж сэргээх хэрэгтэй .

## Пенитрэшин тестийн төрөл 
### Гадаад тест 
Гадаад тест нь нийтэд хүртээмжтэй мэдээлэл,сүлжээний үйл ажилгааны үе шат болон аюулгүй байдлын төхөөрөмжүүд дүнээр дүн шинжилгээ хийдэг. Гадаад пенитрэшин тест нь сүлжээ болон системийн аюул заналыг тодорхойлно. Халдагч нь зохих эрхийг ашиглан систем хандах ямар нэгэн гадны халдлага хийж болно

### Дотоод тест 
Дотоод тест компанийн компьютер болон төхөөрөмжүүд дээр тест хийдэг. Дотоод тест гадаад тестэй адил аргыг ашигладаг ба энэ нь аюулгүй байдалыг илүү уян хатан харах гэж үздэг. Тестийг хэд хэдэн сүлжээний хандалтын цэгээт болон физик болон логик сегментэд гүйцэтгэж болно. ===

•	Black box  test-zero knowledge testing(Тэг мэдээлэлтэй тест)

•	Gray box test-partial knowledge testing(Хэсэг мэдээлэлтэй тест)

•	White box test-complete kowledge testing(Бүрэн мэдээлэлтэй тест)

•	Announced testing

•	Unannounced testing

### Black box 
Энэ төрлийн  аудитор харилцагч талаас бага мэдээллийг хүлээн авна.Энэ нь мэдээллийн системийн байдлийг дуурайлган  мэдэгдэхгүйгээр гаднаас нь дайралт хийх арга юм.

### Grey box 
Grey box нь Black box –оос өөр юм. Энэ тест нь эрх бүхий этгээдтийн өмнөөс  халдлага хийхийг хэлнэ.Жишээ нь: Аудитор нь системд хандах боломжит нэвтрэх нууц үгийг олж авна.

### White box 
Энэ төрлийн аудитор нь суурь өгдөл болон системийн мэдээлэлдээр шалгалт хийнэ.Ихэнх тохиолдолд сүлжээний диаграм,эх код болон IP хаяглалтад тест хийнэ.

## Penetration testing –ийг удирдах арга замууд 
•	Мэдээлэл цуглуулах 
 
•	Дайралтын төлөвлөгөө боловсруулах 
 
•	Эмзэг байдлыг тодорхойлох 
 
•	Дайралт/Penetration testing 
 
•	Мэдээлэх 
 
### Нэвтрэх аргууд 
•	Buffer overflow 
 
•	Dos 
 
•	Packet sniffers 
 
•	Social engineering 
 
•	Hacking E-mail 

•	Remote Code Execution 

### Buffer Overflow 
Буфер дүүргэх гэдэг нь буферын авч чадах хэмжээнээс илүү өгөгдлийг буфер руу хийхэд үүснэ .Энэ алдаа нь массивын хэмжээнээс оруулсан мэдээлэл хэтэрсэн эсэхийг шалгадаггүй С хэл дээр тодорхойлдог.C хэл хэлдээр массив нь статик эсвэл динамикаар зарлагддаг. Статик хувьсагч нь өгөгдлийн сегментийн хэсэгт ачаалж эхлэх явцад санах ойн хэсгийг авч ажилна.  

strcpy (char *dest, const char *src) 

strcat (char *dest, const char *src)  

gets (char *s) 

scanf ( const char *format, ... ) 

printf (conts char *format, ... )...Голдуу доорх функцуудыг ашиглаж буфер дүүргэдэг. 

### DoS 
Dos дайралт нь ерөнхийдөө веб серверийг унагаах эсвэл урсгалыг үерлүүлэх зорилготой. Dos дайралт нь дотроо маш олон төрөл байдаг .
Distributed Dos: Dos , D-Dos 2-ын ялгаа нь smurf ашиглаж нэг хотоос дайрвал Dos болно. Олон Zombie зэрэг ашиглаж дайрвал D-Dos болно. 

Zombie болгоход дараах шаардлагуудыг хангасан байх хэрэгтэй . 

Таныг хянах зорилготой PC руу орох боломжтой 

IP ID – indetification number-г мэдэх хэрэгтэй. 

Бусад хүмүүстэй маш бага мэдээлэл солилцдог байх хэрэгтэй 

Dos дайралт нь дотроо хоорондоо бага зэрэг ялгаатай маш олон төрөл байдаг Жн: 
* Ping of Death 
* Teardrop 
* Ping Flooding 
* Amplification 
* SYN-Flooding 
* Port scan 
* Stealth SYN scan 
* FIN /X-Mas/Null-Scan 
* Spoof 
* Idle-Scan 
* Shroud Proactive гэх мэт цаана нь олон төрөл байна. 

#### Packet Sniffers 
Packet sniffing гэдэг нь сүлжээгээр дамжиж байгаа өгөгдөлд хяналт тавин,тагнах техологи юм. Packet sniff нь сүлжээний алдаануудыг илрүүлэхэд хэрэглэгддэг боловч энэ нь хэн нэгэн чиний e-mail-ийн нууц үг эсвэл internet account-г илрүүлэх боломжийг олгодог . Тиймээс дамжуулж байгаа өгөгдөлд securing /encrypting маш чухал.

### Social Engineering 
Social engineering гэдэг бол хүмүүсийн бусдад итгэх итгэл болон хайнга байдлыг ашигладаг нэгэн арга юм .Хүмүүс ямар нэг чухал мэдээлэл бүхий форм бөглөхдөө, найдвартай байдлыг нь сайн анзаардаггүй. Хэрэгтэй мэдээллээ зүгээр бөглөөд явуулчихдаг , гэтэл заримынх нь цаана хакеруудын бэлдсэн урхи байдаг. 

### Hacking E-mail 
Одоогоор интернетэд e-mail нь ерөнхийдөө SMTP(Simple mail server protocol)-ыг ашиглан илгээгддэг.Энэ нь e-mail –ийн текстэнд шифрлэлт хийгдэхгүй бөгөөд тэнэхээр хэрэглэгч өөрийн нууцлалыг нэмэж хийхгүй бол замаасаа баригдсан e-mail нь хялбархан хэн нэгний олз болно.
Хэрхэн хамгаалах вэ? E-mail нь strong password, агуулгын шифрлэлт эсвэл тоон гарын үсэг гэх мэт аргуудаар хамгаалагдаж болно.

## Penetration testing–д ашигласан програм хангамж  
* Metasploit
* Nessus
* Nmap
* Trojan Attack
* Brute - force Attack
* Vulnerability Scanning

### Trojan Attack 
Хортой кодыг ихэвчлэн и-мэйл эсвэл чат өрөө "Шуурхай захиас"-д хавсралт болгон сүлжээнд илгээн дамжуулна .Тэр код нь файлыг үзэх үед идэвхжиж , таны компьютерт нууцаар сууж таны тухай мэдээллийг хакерт өгөх болно. Trojan horse бол Social engineering -ийн нэг төрөл болдог Жн:"l love you" вирус ба "Anna Kournikova" пормууд нь үүний тод жишээ.

### Brute - force Attack 
Хамгийн түгээмэл мэдэгдэж байгаа нууц үгээр хөөн системд нэвтэрнэ .

### Vulnerability Scanning 
Байгууллагын сүлжээний дэд бүтцэд зорилтот газруудад иж бүрэн шалгалт хийх.

### Metasploit Framework 
Metasploit нь анх нээлттэй эхээр хөгжигдөж гарсан ба сүлжээний нүх цоорхой, сул талыг илрүүлэх зорилгоор бүтээгдсэн.

Rapid7 Metasploit framework худалдаж авж илүү өндөр төвшинд хөгжүүлсэн.

### Nmap 
Nmap гэдэг нь ерөнхийдөө сүлжээ чагнах зориулалттай ба үүнийг ашиглан сүлжээг сканердах, тагнах, тандах гэх мэт үйлдлүүдийг хийж болно.

Гарсан үр дүнгээс нь тухайн сүлжээний аюулгүй байдал, сул тал, эмзэг байдлыг нь мэдэх боломжтой, үүний эсрэгээр шууд тухайн сүлжээрүү довтлох, халдах зэрэг үйлдлүүдийг ч хийдэг. Энэ нь ReMote PC Port Scanner юм.

### Nessus 
Компютерийн аюулгүй байдлын Nessus нь өмчийн бүх талын эмзэг байдлыг шалгадаг програм юм. Үүнийг байгууллагын бус орчинд хувийн байдлаар чөлөөтэй ашиглаж болдог. Зорилго нь шалгагдсан систем дээрх эмзэг байдлыг илрүүлэх юм.

### Metasploit Framework ашиглан exploit хийх алхамууд 
1. Exploit сонгох болон ажиллуулах(тухайн системийн ямар нэг алдааг ашиглан давуу тал олж авч нэвтэрнэ . Windows,Unix/Linux , Mac OS X –д зориулан 800 гаран өөр төрлийн exploit агуулагдаж байдаг)

2. Хамгийн их өртөгддөг эмзэг байдал руу халдах exploit сонгоно.

3. Payload сонгон ажиллуулах(нэвтрэлт амжилттай болсон систем дээр хэрхэн юу хийхийг тохируулах, жишээ нь remote shell , VNC server)

4. Шифрлэх техникийг сонгох (payload-г шифрлэсэнээр IPS-с (халдлагаас уридчилан сэргийлэх систем) баригдахгүй )

5. Exploit ажиллуулах

## Зүүлт Тайлбар  
Ангилал:Мэдээллийн технологийн аюулгүй байдал