Аливаа зүйлийн давуутай шинж чанар нь нөгөө талаасаа сул тал болж байдаг жишээ олон бий. Тухайлбал вэб аппликейшны хувьд хаанаас ч хэзээ ч хандаж, ашиглаж болдог давуу тал нь, хэн дуртай нэгэнд ямар нэг гажууд хэлбэрээр хандах боломжыг олгодог. Ийм учраас эхлээд гаднах нууцлалыг хангаад дараа нь дотрох зүйлсээ хийдэг.
Аппликейшны байгаа серверийнхээ орчний нууцлалыг хангалгүйгээр яаж ч сайн хийгээд нэмэргүй. Серверийн хувьд дараах зүйлсийг анхаарах хэрэгтэй.
Сервер
- Серверийн үйлдлийн системийн шинэчлэлийг цаг тухайд нь хийж байх. Мөн үйлдлийн системийн чухал багц програм хангамжуудыг ч байнга шинэчилж байх хэрэгтэй. Харгалзах и-мэйл листүүдэд нь бүртгүүлчих юм бол амар байдаг.
- Хэрэггүй буюу ашигладаггүй сэрвисүүдийг зогсоох эсвэл бүр устгах. Жишээ нь Windows дээр бол Messenger, Fax service, Net logon гэх мэт. Юникс дээр бол apmd, lpd, sendmail, telnet, finger гэх мэт
- Үйлдлийн систэмийг ашиглагддаггүй хэрэглэгчийг устгах. Тухайлбал windows дээр guest хэрэглэгчийг идэвхгүй болгох. Мөн хэрэглэчдийн нууц үгийг тогтмол хугацаанд солиж байхаар тохируулах, хамгийн багадаа 8 ч юмуу тэмдэгт байхаар зааж өгөх.
- Файл болон директоруудад хандах эрхийг(file permission) нарийн чанд тавьж өгөх. Системийн файлууд, директоруудыг сайтар нууцлаж хамгаалах хэрэгтэй.
- Логуудыг сайтар төлөвлөж тохируулах. Лог файлын үүсэх байрлал, хуучин логууд устгах хугацаа гэх мэт. Мөн лог дээр бичигдэх байгаа үзэгдлүүдийг автоматаар шинжилж, хэвийн бус зүйл илэрвэл мэйлээр ч юмуу мэдэгддэг байвал тун сайн.
- Сүлжээний тохиргоонд TCP/IP түвшинд боломжын хирээр шүүлтүүр тавьж өгөх. Хэрэггүй портуудыг хаах, iptables дээр сэжигтэй пакетуудыг оруулахгүй байх гэх мэтээр тохируулж болдог.
Аппликейшны сервер
- Аппликейшн сервер буюу вэб серверээ байнга шинэчилж засварыг цаг тухайд нь хийж явах.
- Аппликейшн серверийг ажиллуулах хэрэглэгчийн нэрийг логин хийж чадахааргүй байлгах. мөн хязгаарлагдмал эрхтэйгээр тохируулж өгөх. Тухайлбал вэб аппликейшны директориос бусад дирэктор луу хандах эрхгүй байлгаж болно.
- Хэрэглэгдэхгүй нэмэлт боломжуудыг идэвхгүй болгох. Тухайлбал CGI програм ажиллуулахыг зогсоох, мөн HTTP ийн PUT, TRACE, DELETE зэрэг мэтодуудыг идэвхгүй болгох гэх мэт.
- Вэб серверийн нэр болон хувилбарын дугаар, алдааны мэдээлэл зэргийг нуух. Ингэснээр гаднаас халдагчид сэрвэрийн програм хангамж болон бусад мэдээлэл дээр тулгуурлан онгорхой цоорхойг хайхаас сэргийлнэ.
Хөгжүүлэлт /Development/
Ингээд ерөнхийдөө сэрвэр болон бусад програм хангамжуудын тохиргоог боломжын хэмжээнд хамгаалж чадсан гэж үзвэл бид аппликейшнээ хийхдээ анхан шатанд юуг анхаарвал зохихыг авч үзье. Програмд гаднаас орж ирэх өгөгдлийг зөв байгаа эсэхийг шалгах хэрэгтэй.
- SQL Injection.
- OS Command Injection.
- Directory traversal
- Параметр болон hidden field дээр хуурамч утга тавиж ашиглах.
- Cross Site Scripting(XSS).
- Шиншлэх.
- Cross Site Request Forgeries(CSRF).
Багаж/Tool/
Вэб аппликейшн хөгжүүлэлтийн үед нууцлалын тал дээр анхаарах зүйлс дээр дурдсан хэдээр тогтохгүй. Нууцлал хамгаалалтыг хангана гэдэг нь чанарыг сайжруулж байна гэсэн үг бөгөөд хэдий чанартай хийнэ төдий чинээ хөлс хүч, цаг хугацаа зарцуулагдана. Хөлс хүч, цаг хугацааг бага байлгаад өндөр чанартай хийнэ гэдэг хэцүү ч, сайн багаж хэрэгсэл, багцуудыг ашигласнаар нууцлалыг боломжын хэмжээнд байлгаж болно. Тухайлбал олны танил болсон Struts хэмээх MVC фрэймворкын Validator нь гаднаас орж ирэх өгөгдлийг дажгүй сайн шүүдэг. Вэб аппликейшнээ хэвээр орхиод Web Application Firewall(WAF) -оор гаднаас орж ирэх халдлагыг хаах бас боломжтой. Жишээ нь Apache вэб серверт зориулагдсан ModSecurity гэдэг нээлттэй эх бүхий WAF байдаг. Гэхдээ энэ тохиолдолд тухайн WAF-ийг суурилуулах, хэрэглэж тохируулж сурхаас эхлээд нэмэлт ажлууд гарна. Эдгээр ажлууд нь вэб аппликейшн дээрээ засвар оруулахаас хямд байвал хэрэглэх нь зүйтэй.