
IDOR (Insecure Direct Object Reference)

А.Номин-Эрдэнэ
Багш


А.Номин-Эрдэнэ
Багш

Өдөр бүр бид олон төрлийн вебсайт, аппликейшн ашигладаг. Сошиал сүлжээнд нэвтрэх, онлайн банкны үйлчилгээ авах, интернетээр худалдан авалт хийх, сургалтын системээс дүнгээ харах зэрэг үйлдлүүд бидний өдөр тутмын амьдралын нэг хэсэг болжээ.
Эдгээр үйлчилгээг ашиглахдаа бид өөрсдийн мэдээллийг зөвхөн өөрсдөө харах боломжтой гэж итгэдэг. Учир нь систем нэвтрэх нэр, нууц үг шаарддаг, зарим тохиолдолд нэмэлт баталгаажуулалт ч хийдэг.
Гэвч нэвтрэх хамгаалалттай байна гэдэг нь тухайн систем бүрэн аюулгүй гэсэн үг биш.
Тухайлбал, та сургуулийнхаа цахим системд нэвтэрч, өөрийн дүнгийн мэдээллийг харж байна гэж төсөөлөөд үзье. Харин хэн нэгэн URL хаяг дахь таны оюутны дугаарыг өөр дугаараар сольсноор бусад оюутны дүнг харах боломжтой байвал яах вэ?
Энэ бол IDOR (Insecure Direct Object Reference) буюу веб аппликейшний хандалтын эрхийн шалгалт хангалтгүй байгаагаас үүсдэг эмзэг байдлын нэг жишээ юм.
1. IDOR гэж юу вэ?
IDOR нь Insecure Direct Object Reference гэсэн англи үгийн товчлол бөгөөд вебсайт эсвэл аппликейшн хэрэглэгчийн хүссэн мэдээлэл, файл, өгөгдөлд хандах эрхийг зохих ёсоор шалгаагүй үед үүсдэг аюулгүй байдлын эмзэг байдал юм.
Энгийнээр хэлбэл, систем таныг хэн болохыг таньж байгаа боловч таны хандах гэж буй мэдээлэл үнэхээр танд хамааралтай эсэхийг шалгахгүй байна гэсэн үг.
Жишээлбэл, онлайн худалдааны вебсайтаас өөрийн захиалгын мэдээллийг харахад дараах URL ашиглагддаг гэж үзье.
Өөрийн захиалгын мэдээлэл
https://example.com/orders/1001
Өөр хүний захиалгын дугаараар өөрчилсөн хүсэлт
https://example.com/orders/1002
Энд 1001 нь таны захиалгын дугаар гэж бодъё. Харин 1002 болгон өөрчлөхөд өөр хэрэглэгчийн захиалгын мэдээлэл харагдаж байвал системд IDOR эмзэг байдал байж болзошгүй.
Энэ тохиолдолд халдагч нууц үг тайлах эсвэл системийн хамгаалалтыг хүчээр эвдэх шаардлагагүй. Харин сервер тухайн хүсэлтийг зөвшөөрөх эсэхээ зохих ёсоор шалгаагүйгээс бусдын мэдээлэлд хандах боломж үүсэж байна.
2. IDOR хэрхэн ажилладаг вэ?

Вебсайт хэрэглэгч бүрийн мэдээллийг ялгахын тулд ID буюу давтагдашгүй танигч ашигладаг.
Жишээлбэл, нэг хэрэглэгч 1001, нөгөө хэрэглэгч 1002 гэсэн дугаартай байж болно. Энэ нь өөрөө аюулгүй байдлын алдаа биш бөгөөд мэдээллийн сан дахь өгөгдлийг ялган таних энгийн арга юм.
Харин асуудал нь тухайн ID-г ашиглан мэдээлэл хүсэх үед сервер зөвшөөрлийг шалгахгүй байгаад оршино.
IDOR эмзэг байдал дараах байдлаар илэрч болно.
Хэрэглэгч өөрийн бүртгэлээр системд нэвтэрнэ.
Систем хэрэглэгчийн хүссэн мэдээллийг ID-гаар нь хайж олно.
Хэрэглэгч хүсэлт доторх ID-г өөрчилнө.
Сервер тухайн мэдээлэлд хандах эрхийг шалгахгүйгээр хариу буцаана.
Үүний үр дүнд өөр хэрэглэгчийн мэдээлэл зөвшөөрөлгүй харагдаж болзошгүй.
Гэхдээ IDOR зөвхөн URL дахь тоог өөрчлөхтэй холбоотой биш. Энэ төрлийн эмзэг байдал нь API хүсэлт, файлын нэр, баримт бичгийн ID болон бусад өгөгдлийн танигчаар дамжин илэрч болно.
Гол асуудал нь ID-г өөрчилж болдогт бус, өөрчилсөн ID-д хамаарах мэдээллийг авах эрхтэй эсэхийг сервер шалгахгүй байгаад оршино.
3. IDOR ямар эрсдэл үүсгэдэг вэ?
IDOR эмзэг байдлын үр дагавар нь тухайн систем ямар мэдээлэл хадгалж, ямар үйлдэл хийх боломж олгож байгаагаас хамаарна.
Хувийн мэдээлэл алдагдах
Хэрэглэгчийн нэр, утасны дугаар, цахим шуудан, хаяг болон бусад хувийн мэдээлэл зөвшөөрөлгүй этгээдэд ил болж болзошгүй.
Нууц баримт бичигт хандах
Байгууллагын гэрээ, нэхэмжлэх, тайлан, хэрэглэгчийн хувийн файл зэрэг хязгаарлагдмал мэдээлэлд зөвшөөрөлгүй хандах эрсдэл үүснэ.
Мэдээлэл өөрчлөх, устгах
Зарим тохиолдолд бусдын профайл, захиалга эсвэл бусад өгөгдлийг зөвшөөрөлгүй өөрчлөх, устгах боломж үүсэж болно.
Жишээлбэл, байгууллагын ажилтнуудын цалингийн мэдээллийг веб системээр харуулдаг гэж төсөөлье. Хэрэв нэг ажилтан өөрийн цалингийн мэдээллийн ID-г өөрчлөхөд бусад ажилтны мэдээлэл харагдаж байвал энэ нь байгууллагын мэдээллийн нууцлалд ноцтой эрсдэл учруулна.
Үүнээс гадна хэрэглэгчдийн итгэл буурах, байгууллагын нэр хүндэд сөргөөр нөлөөлөх, мэдээлэл хамгаалахтай холбоотой хууль, зохицуулалтын асуудал үүсэх зэрэг үр дагаварт хүрч болзошгүй.
4. HTTPS ашигладаг вебсайт IDOR эмзэг байдалтай байж болох уу?
Тийм. Болно.
Олон хүн браузерын хаягийн мөрөнд цоожны тэмдэг харагдаж, https:// гэсэн хаяг ашиглагдаж байвал тухайн вебсайт бүрэн аюулгүй гэж ойлгодог.
Гэвч HTTPS нь хэрэглэгч болон серверийн хооронд дамжиж буй мэдээллийг шифрлэж хамгаалахад чиглэдэг.
Харин IDOR нь тухайн хэрэглэгч мэдээлэлд хандах эрхтэй эсэхийг сервер зөв шалгаж байгаа эсэхтэй холбоотой.
Тиймээс HTTPS ашигладаг, нэвтрэх нэр болон нууц үг шаарддаг вебсайт ч IDOR эмзэг байдалтай байх боломжтой.
Энэ нь кибер аюулгүй байдал зөвхөн нэг хамгаалалтын технологиос хамаардаггүйг харуулдаг.
5. IDOR эмзэг байдлаас хэрхэн сэргийлэх вэ?
IDOR-оос сэргийлэх хамгийн үр дүнтэй арга бол сервер талд хандалтын эрхийн шалгалтыг зөв хэрэгжүүлэх явдал юм.
Нэгдүгээрт, хүсэлт бүрд хандалтын эрхийг шалгах хэрэгтэй.
Хэрэглэгч мэдээлэл харах, засварлах, устгах хүсэлт илгээх бүрд сервер тухайн үйлдлийг хийх эрхтэй эсэхийг баталгаажуулах шаардлагатай.
Хоёрдугаарт, зөвхөн frontend хамгаалалтад найдаж болохгүй.
Вебсайтын товчлуурыг нуух эсвэл тодорхой хуудсыг хэрэглэгчид харуулахгүй байх нь хангалттай хамгаалалт биш. Учир нь серверийн хүсэлтийг өөр аргаар илгээх боломжтой байдаг.
Гуравдугаарт, таамаглахад төвөгтэй ID ашиглаж болно.
Дараалсан тоон ID-ийн оронд UUID зэрэг танигч ашигласнаар бусад мэдээллийн ID-г таахад хүндрэл учруулж болно. Гэхдээ энэ нь хандалтын эрхийн шалгалтыг орлох хамгаалалт биш.
Дөрөвдүгээрт, аюулгүй байдлын тест тогтмол хийх шаардлагатай.
Хөгжүүлэлтийн болон туршилтын орчинд өөр өөр эрхтэй хэрэглэгчийн бүртгэл ашиглан зөвшөөрөлгүй хандалт үүсэж байгаа эсэхийг шалгах нь чухал.
Мөн байгууллагууд ажилтнуудаа аюулгүй хөгжүүлэлтийн зарчимд сургах, кодын хяналт хийх, илэрсэн эмзэг байдлыг цаг тухайд нь засварлах хэрэгтэй.
6. Энгийн хэрэглэгчид юуг анхаарах вэ?
IDOR нь үндсэндээ хөгжүүлэгч болон систем хариуцагчдын шийдвэрлэх ёстой аюулгүй байдлын асуудал юм.
Гэсэн хэдий ч энгийн хэрэглэгчид дараах зүйлсийг ойлгож байх нь чухал.
Вебсайтад нэвтрэх хамгаалалт байгаа нь бүх мэдээлэл бүрэн хамгаалагдсан гэсэн баталгаа биш.
Хувийн мэдээллээ оруулж буй платформын найдвартай байдал, нууцлалын бодлогод анхаарах хэрэгтэй.
Системийн алдаа анзаарсан тохиолдолд бусдын мэдээлэлд зөвшөөрөлгүй хандах, түүнийг хадгалах эсвэл түгээхээс зайлсхийх шаардлагатай.
Болзошгүй эмзэг байдлыг тухайн байгууллагын албан ёсны сувгаар хариуцлагатайгаар мэдээлэх нь зөв алхам юм.