fbpx

Зиаа программ хөгжүүлэгчдээ наашаа сууцгаагаарай. Программ хөгжүүлэгчдэд мэдээллийн аюулгүй байдал хэр чухал болох талаар багахан мэдээлэл хүргэе.

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

Мэдээллийн аюулгүй байдал (Information Security) гэдэг нь мэдээллийг хадгалах, дамжуулах, боловсруулах бүхий л үе шатанд нь зөвшөөрөлгүй хандалт, ашиглалт, задрал, өөрчлөлт, устгалаас хамгаалах цогц арга хэмжээ, бодлого, технологи, үйл ажиллагааны нийлбэр ойлголт юм. Энэ нь зөвхөн техник хэрэгсэлтэй холбоотой ойлголт биш бөгөөд хүн, процесс, технологи гэсэн гурван үндсэн бүрэлдэхүүнд тулгуурладаг.

  • Нууцлал (Confidentiality) – Мэдээлэлд зөвхөн эрх бүхий хэрэглэгч нэвтрэх

  • Бүрэн бүтэн байдал (Integrity) – Мэдээлэл санаатай болон санамсаргүйгээр өөрчлөгдөхгүй байх

  • Боломжит байдал (Availability) – Мэдээлэл, систем тасалдалгүй ажиллах

Эдгээр зарчмыг бодитоор хэрэгжүүлэгч гол этгээд нь программ хөгжүүлэгч юм.

Зиаа тэгвэл аюулгүй код бичихэд юу юу мэддэг байх ёстой талаар мэдээлэл өгье.

Аюулгүй код бичих (Secure Coding) гэдэг нь программ хангамжийг боловсруулах явцад болзошгүй халдлага, эмзэг байдал, буруу ашиглалтаас урьдчилан сэргийлж кодын түвшинд хамгаалалт хийх үйл ажиллагааг хэлнэ. Орчин үеийн кибер халдлагын ихэнх нь системийн архитектур бус, кодын жижиг алдааг ашигладаг тул аюулгүй код бичих нь программ хөгжүүлэгчийн үндсэн чадвар аль хэдийнээ болжээ.

1. Аюулгүй код бич!!

  • Хэрэглэгчийн мэдээллийг хамгаалах
  • Системийн бүрэн бүтэн байдлыг хадгалах
  • Халдлагаас үүдэх эрсдэлийг бууруулах
  • Программын найдвартай ажиллагааг хангах

Өөрөөр хэлбэл, аюулгүй код нь зөвхөн “ажилладаг” бус, аюулгүй ажилладаг байх ёстой.

2. Оролт, гаралтын өгөгдлийг заавал шалгадаг байг (Input Validation)

  • Хэрэглэгчээс ирж буй бүх өгөгдлийг шалгах
  • Зөвшөөрөгдөх утгын хүрээг тогтоох
  • Тусгай тэмдэгт, скрипт оруулахыг хязгаарлах

3. Нэвтрэлт ба зөвшөөрөл (Authentication & Authorization)

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

  • Нууц үгийг plaintext хэлбэрээр хадгалахгүй байх
  • Hash + Salt ашиглах
  • Role-based access control (RBAC) хэрэглэх
  • Token-ийн хугацаа, хүчингүй болголтыг зөв удирдах

5. Алдааны зохистой менежмент (Error Handling)

Алдааны мэдээлэл буруу дамжвал халдагчид хэрэгтэй мэдээлэл өгч болзошгүй.

  • Хэрэглэгчид ерөнхий алдааны мэдээлэл харуулах
  • Дотоод алдааны мэдээллийг лог дээр хадгалах
  • Stack trace-ийг ил харуулахгүй байх

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

  • HTTPS ашиглах
  • Encryption алгоритм зөв сонгох
  • Hashing болон Encryption ялгааг ойлгож хэрэглэх

Тэгвэл хөгжүүлэгчид маань ямар мэдлэгтэй чадвартай байвал чанартай систем бүтээх мэргэжилтэн болж чаддаг вэ гэвэл…

  • Secure Software Development Lifecycle (SSDLC)
  • Authentication & Authorization механизм
  • Encryption, Hashing, Token
  • OWASP Top 10 эмзэг байдал
  • API болон Cloud security

Хэрвээ аюулгүй байдлыг үл тоомсорловол юу болох вэ?

Мэдээллийн аюулгүй байдлыг хангаагүйгээс үүдэн олон улсын томоохон байгууллагууд олон сая долларын хохирол амсаж байсан жишээ цөөнгүй. Энэ нь хөгжүүлэлтийн явцад аюулгүй байдлыг хойш тавих нь урт хугацаандаа илүү их зардал, эрсдэл дагуулдаг шүү.

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

Leave a Reply