Програмын кодын сул талыг олохын тулд энгийн хэрэгслийг хэрхэн ашиглах вэ

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

Програмын кодын сул талыг олохын тулд энгийн хэрэгслийг хэрхэн ашиглах вэ
Эх сурвалж: Unsplash (Маркус Списке)

Туршилт нь програм хангамж хөгжүүлэх амьдралын мөчлөгийн чухал хэсэг юм. Туршилтын олон төрөл байдаг бөгөөд тус бүр өөрийн гэсэн асуудлыг шийддэг. Өнөөдөр би кодонд аюулгүй байдлын асуудлуудыг олох талаар ярихыг хүсч байна.

Мэдээжийн хэрэг, програм хангамж хөгжүүлэх орчин үеийн бодит байдалд процессын аюулгүй байдлыг хангах нь чухал юм. Нэгэн цагт DevSecOps гэсэн тусгай нэр томъёо хүртэл гарч ирсэн. Энэ нэр томъёо нь програмын эмзэг байдлыг олж илрүүлэх, арилгахад чиглэсэн хэд хэдэн процедурыг хэлнэ. Стандартын дагуу эмзэг байдлыг шалгах тусгай нээлттэй эхийн шийдлүүд байдаг OWASP, энэ нь эх кодын эмзэг байдлын янз бүрийн төрөл, зан төлөвийг тодорхойлдог.

Аюулгүй байдлын асуудлыг шийдвэрлэх өөр өөр аргууд байдаг, тухайлбал статик хэрэглээний аюулгүй байдлын тест (SAST), динамик хэрэглээний аюулгүй байдлын тест (DAST), интерактив програмын аюулгүй байдлын тест (IAST), програм хангамжийн найрлагын шинжилгээ гэх мэт.

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

Би статик кодын шинжилгээнд анхаарлаа төвлөрүүлж, бүх зүйлийг практик дээр харуулахын тулд энгийн нээлттэй эхийн хэрэгслийг ашиглах болно.

Яагаад би статик кодын аюулгүй байдлын дүн шинжилгээ хийх нээлттэй эхийн хэрэгслийг сонгосон юм

Үүнд хэд хэдэн шалтгаан бий: нэгдүгээрт, та бусад хөгжүүлэгчдэд туслахыг хүсдэг ижил төстэй хүмүүсийн нийгэмлэгийн боловсруулсан хэрэгслийг ашиглаж байгаа тул энэ нь үнэ төлбөргүй юм. Хэрэв та жижиг баг эсвэл стартаптай бол кодын баазынхаа аюулгүй байдлыг шалгахын тулд нээлттэй эхийн программ хангамж ашиглан мөнгө хэмнэх сайхан боломж байна. Хоёрдугаарт, энэ нь таныг тусдаа DevSecOps багийг ажилд авах шаардлагагүй болгож, зардлыг тань бууруулна.

Сайн нээлттэй эхийн хэрэгслүүдийг уян хатан байдалд тавигдах шаардлагыг харгалзан үргэлж бий болгодог. Тиймээс тэдгээрийг өргөн хүрээний ажлыг хамарсан бараг ямар ч орчинд ашиглаж болно. Хөгжүүлэгчид төсөл дээрээ ажиллаж байхдаа ийм хэрэгслийг аль хэдийн барьсан системтэйгээ холбох нь илүү хялбар байдаг.

Гэхдээ таны сонгосон хэрэгсэлд байхгүй функц хэрэгтэй байх тохиолдол гардаг. Энэ тохиолдолд та түүний кодыг салгаж, түүнд суурилсан өөрийн хэрэглүүрийг өөрт хэрэгтэй функцээр хөгжүүлэх боломжтой.

Ихэнх тохиолдолд нээлттэй эхийн програм хангамжийг хөгжүүлэхэд олон нийт идэвхтэй нөлөөлдөг тул өөрчлөлт хийх шийдвэрийг маш хурдан бөгөөд тодорхой гаргадаг: нээлттэй эхийн төслийг боловсруулагчид хэрэглэгчдийн санал хүсэлт, тэдний тайланд тулгуурладаг. олсон алдаа болон бусад асуудлууд.

Кодын аюулгүй байдлын шинжилгээнд Graudit ашиглах

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

Энд бид ашиглах болно Graudit, энгийн командын мөрийн хэрэгсэл нь бидэнд кодын сан дахь эмзэг байдлыг олох боломжийг олгодог. Энэ нь өөр өөр хэлийг дэмждэг боловч тэдгээрийн багц хязгаарлагдмал хэвээр байна. Graudit нь GNU лицензийн дагуу нэг удаа гарсан grep хэрэгсэл дээр суурилсан.

Статик кодын шинжилгээний ижил төстэй хэрэгслүүд байдаг - Аюулгүй байдлын Rough Auditing Tool (RATS), Securitycompass Web Application Analysis Tool (SWAAT), алдаа илрүүлэгч гэх мэт. Гэхдээ Graudit нь маш уян хатан бөгөөд техникийн хамгийн бага шаардлага тавьдаг. Гэсэн хэдий ч танд Graudit-ийн шийдэж чадахгүй байгаа асуудал байж магадгүй юм. Дараа нь та өөр сонголтуудыг эндээс хайж болно энэ жагсаалтад.

Бид энэ хэрэгслийг тодорхой төсөлд нэгтгэх эсвэл сонгосон хэрэглэгчдэд ашиглах боломжтой болгох эсвэл бүх төслүүддээ нэгэн зэрэг ашиглах боломжтой. Энд бас Graudit-ийн уян хатан байдал гарч ирдэг. Тиймээс эхлээд репо клон хийцгээе:

$ git clone https://github.com/wireghoul/graudit

Одоо Graudit-д командын форматаар ашиглах симбол холбоос үүсгэцгээе

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

.bashrc (эсвэл таны ашиглаж байгаа ямар ч тохиргооны файл)-д өөр нэр нэмье:

#------ .bashrc ------
alias graudit="~/bin/graudit"

Дахин ачаалах:

$ source ~/.bashrc # OR
$ exex $SHELL

Суулгалт амжилттай болсон эсэхийг шалгацгаая:

$ graudit -h

Хэрэв та үүнтэй төстэй зүйлийг олж харвал бүх зүйл сайхан байна.

Програмын кодын сул талыг олохын тулд энгийн хэрэгслийг хэрхэн ашиглах вэ

Би одоо байгаа төслүүдийнхээ нэгийг туршиж үзэх болно. Хэрэгслийг ажиллуулахын өмнө миний төсөл бичигдсэн хэлтэй харгалзах мэдээллийн санг дамжуулах шаардлагатай. Мэдээллийн сангууд ~/gradit/signatures хавтсанд байрладаг:

$ graudit -d ~/gradit/signatures/js.db

Тиймээс би төслөөсөө хоёр js файлыг туршиж үзсэн бөгөөд Graudit миний кодын эмзэг байдлын талаарх мэдээллийг консол дээр харуулав.

Програмын кодын сул талыг олохын тулд энгийн хэрэгслийг хэрхэн ашиглах вэ

Програмын кодын сул талыг олохын тулд энгийн хэрэгслийг хэрхэн ашиглах вэ

Та төслүүдээ ижил аргаар туршиж үзэх боломжтой. Та янз бүрийн програмчлалын хэлнүүдийн мэдээллийн сангийн жагсаалтыг харж болно энд.

Graudit-ийн давуу болон сул талууд

Graudit нь олон програмчлалын хэлийг дэмждэг. Тиймээс энэ нь өргөн хүрээний хэрэглэгчдэд тохиромжтой. Энэ нь ямар ч үнэ төлбөргүй эсвэл төлбөртэй аналогуудтай өрсөлдөх чадвартай. Төсөлд сайжруулалт хийгдсээр байгаа нь маш чухал бөгөөд олон нийт зөвхөн хөгжүүлэгчдэд төдийгүй уг хэрэгслийг олохыг оролдож буй бусад хэрэглэгчдэд тусалдаг.

Энэ нь хэрэг болохуйц хэрэглүүр боловч сэжигтэй кодын асуудал юу болохыг яг таг тодорхойлж чадахгүй. Хөгжүүлэгчид Graudit-ийг үргэлжлүүлэн сайжруулсаар байна.

Гэхдээ ямар ч тохиолдолд иймэрхүү хэрэгслийг ашиглахдаа кодонд гарч болзошгүй аюулгүй байдлын асуудлуудад анхаарлаа хандуулах нь ашигтай байдаг.

Эхэлж байна…

Энэ нийтлэлд би эмзэг байдлыг олох олон аргуудын нэгийг л авч үзсэн - static application security testing. Статик кодын шинжилгээ хийх нь хялбар боловч энэ нь зөвхөн эхлэл юм. Кодын баазынхаа аюулгүй байдлын талаар илүү ихийг мэдэхийн тулд та бусад төрлийн тестийг програм хангамж хөгжүүлэх амьдралын мөчлөгтөө нэгтгэх хэрэгтэй.

Сурталчилгааны эрх

Найдвартай VPS Тарифын төлөвлөгөөний зөв сонголт нь тааламжгүй асуудлаас болж хөгжлөөс бага сатаарах боломжийг олгоно - бүх зүйл алдаагүй, маш өндөр ажиллах хугацаатай ажиллах болно!

Програмын кодын сул талыг олохын тулд энгийн хэрэгслийг хэрхэн ашиглах вэ

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх