Пайдалар:
- Жасалма интеллектти экинчи көз катары колдонуу жана контекстти берүү менен коддогу OWASP классындагы аялуу жерлерди (инъекция, катуу сыр, мүмкүндүктү башкаруу) белгилөө мүмкүнчүлүгү
- Жасалма интеллект тарабынан жасалган жалган позитивдерди контекст менен жок кылуу жана ар бир табылгага аны ырастабастан, аны чыныгы аялуу катары кароого жол бербөө мүмкүнчүлүгү
- Жасалма интеллект сунуш кылган оңдоо жаңы кемчиликтерди/каталарды киргизип, ар бир патчты карап чыгуу жана тестирлөө дарбазасы аркылуу өткөрүү мүмкүнчүлүгүн таануу
Программалык камсыздоодогу алсыздыктар эң кымбат аялуулардын катарына кирет, анткени алар өнүмдүн ичинде башынан эле камтылган жана миллиондогон колдонуучуларга таратылат. Коопсуз кодду карап чыгуу бул булак кодун сап боюнча окуу жана кемчиликтерди аныктоо процесси — SQL инъекциясы, аутентификациянын аялуулугу, катуу коддолгон сырсөз, туура эмес авторизация — алар өндүрүшкө кирерден мурун. Кол менен жасаганда жай жана чарчайт; Чоң код базасындагы кемчиликти өткөрүп жиберүү оңой.
AI кодду карап чыгууда эки себеп менен күчтүү: код да тил жана AI үлгү таанууда жакшы. AI коддун бир бөлүгүндөгү кооптуу үлгүлөрдү тез белгилей алат (колдонуучунун киргизгенин түздөн-түз суроого киргизүү, шифрленбеген маалыматтарды сактоо, киргизүү валидациясы жок), ар бири эмне үчүн кооптуу экенин түшүндүрүп, оңдоону сунуштайт. Бирок AI коддун бардык операциялык контекстти көрбөйт (киргизүү башка катмарда тазаланышы мүмкүн), ал жок (жалган позитивдүү) кемчиликти ойлоп табышы мүмкүн же чыныгы кемчиликти (жалган терс) өткөрүп жибериши мүмкүн жана эң негизгиси, ал сунуш кылган "оңдоо" жаңы аялуу же мүчүлүштүктөрдү киргизиши мүмкүн. AI - кодду карап чыгууда экинчи көз жана көрсөткүч; Иштеп чыгуучу жана коопсуздук боюнча эксперт табылга чыныгы аялуу экендигин жана оңдоо туура жана коопсуз экендигин чечет.
Кодду карап чыгуу кадамдары
- Көлөмдү жана контекстти бериңиз. Кайсы тилде, кайсы рамкада, бул код киргизүүнү каяктан алат, кайдан чыгарууну берет, кайсы катмарда иштейт? Контекстсиз кодду карап чыгуу жалган позитивдерди жаратат.
- Кооптуу үлгүлөрдү издеңиз. Белгилүү AI аялуу класстарын издөө (мисалы, OWASP Top 10): инъекция, аутентификация, сезимтал маалыматтарды ачыкка чыгаруу, кирүүнү көзөмөлдөө.
- Ар бир табылга негиздүү болсун. Ар бир желек үчүн: кайсы сызык, кайсы аялуу классы, аны кантип пайдаланууга болот, кандай далилдер бар. Негизсиз тыянак олуттуу кабыл алынбайт.
- Жалган позитивди жок кылуу. Киргизүү чындыгында тазаланып жатабы, бул жол чындап эле жеткиликтүүбү — контекст менен текшериңиз.
- Түзөтүүнү текшериңиз. AI тарабынан сунушталган патч чындыгында аялуу жерди жаап, жаңы кемчиликтерди/каталарды киргизбей турганын жана тестирлөөдөн өткөнүн ырастаңыз.
- Адамдын макулдугу. Иштеп чыгуучу + коопсуздук эксперти табылгаларды карап чыгып, оңдоп турат; Ошентип, ал код репозиторийине кирет.
Шарттары: SAST (Статикалык Колдонмонун Коопсуздук тести — баштапкы кодду иштетпестен талдоочу статикалык коопсуздук тести). DAST (Динамикалык — иштеп жаткан тиркемени сырттан текшерген динамикалык тест). OWASP Top 10 - бул веб-тиркемелердин эң кеңири таралган кемчиликтеринин стандарттык тизмеси. Инъекция - бул колдонуучунун киргизгенин буйрук/суроо катары чечмелөөдөн келип чыккан аялуу (мисалы, SQL инъекциясы). Параметрлештирилген суроо киргизүүнү коддон бөлүү аркылуу инъекцияга жол бербөөчү туура ыкма.
Жалпы аялуу класстарынын таблицасы
Аялуу классы
Симптом (коддо)
туура чечим
AIнын тузагы
SQL инъекциясы
Киргизүүнү суроого кошуу
Параметрленген суроо
Санитизацияны этибарга албаса болот
катуу коддуу сыр
Сырсөз/коддогу ачкыч
Жашыруун сейф (склад), env
Жалган оң (үлгү/тест)
Начар аутентификация
Жетишпеген/туура эмес башкаруу
Күчтүү, борборлоштурулган башкаруу
контекстти сагынып
Туура эмес мүмкүндүк башкаруу
Авторизация текшерүүсү жок
Сервер тараптын авторизациясы
Татаал агымды түшүнбөйт
Сезимтал маалыматтарды ачыкка чыгаруу
Сырсөзсүз сактоо/журналдоо
Шифрлөө, маскалоо
Сынчылдыкты биле албайт
Кооптуу сериялаштыруу
Ишенимсиз маалыматтарды сериядан чыгаруу
Коопсуз талдоо
Сейрек үлгү калтырат
үч мини учурлар
1-жагдай - Чыныгы инъекцияны кармоо. Иштеп чыгуучу AI маалыматка жетүү функциясын текшерет. AI колдонуучунун userId мааниси түздөн-түз SQL текстине бириктирилген сызыкты белгилейт жана "бул классикалык SQL инъекциясы, аны параметрленген суроого айлантыңыз" дейт; Үлгү оңдоону камсыз кылат. Иштеп чыгуучу киргизүү башка жерде тазаланбаганын ырастайт, анын чыныгы аялуу экенин текшерет, сунушталган параметрленген суроону ишке ашырат жана тест жазат. AI аялуулугун баса белгиледи; текшерүү жана оңдоо тести иштеп чыгуучудан келген.
2-жагдай - Жалган оң туруктуу сыр. AI файлдагы сырсөз = "test1234" сабын көрүп, "критикалык: катуу коддолгон сырсөз" дейт. Иштеп чыгуучу контекстти текшерет: бул бирдиктин тест файлы, жасалма тест маалыматтары, өндүрүшкө чыгарылбайт жана реалдуу системага өткөрүлбөйт. Табышма жалган оң. Иштеп чыгуучу муну документтештирет, бирок эч кандай чара көрбөйт, анткени бул сыр эмес. Сабак: AI "катуу сыр" белгиси контекст боюнча жок кылынышы керек; Ар бир сап сыр эмес.
3-жагдай - Жаңы кемчиликти оңдоо. AI XSS (сайттар аралык скрипт) аялуулугун оңдоону сунуштайт; бирок ал сунуш кылган код туура эмес жерде киргизүүнү тазалап, башка аймактагы чыгаруу коддоосун өткөрүп жиберет; Натыйжада ажырым толук жабылбайт. Коопсуздук адиси оңдоону карап чыгып, жетишпеген коддоону байкап, аны туура катмарда оңдойт. Сабак: AI сунуш кылган патч автоматтык түрдө коопсуз эмес; Ар бир оңдоо каралып, текшерилет.
Алсыз тездик / Күчтүү тездик
Алсыз билдирүү:
Бул коддо боштук барбы, аны оңдоңуз: [код]
Бул чакырык эч кандай контекстти (тил, алкак, киргизүү булагы) бербейт, негиздеме сурабайт, жалган позитивге шек келтирбейт жана AI тарабынан жасалган оңдоону сокур түрдө кабыл алууга ачык. AI чыныгы алсыздыктын да, жоктун да белгилерин аралаштырды.
Күчтүү билдирүү:
Сиздин ролуңуз: коопсуз кодду карап чыгууда иштеп чыгуучунун ЭКИНЧИ КӨЗҮ болгон жардамчы. Чечим кабыл алуу; түздөн-түз колдонулган оңдоону карап көрөлү. Код: [тилди/алкакты көрсөтүңүз]. Контекст: бул функция [киргизүү булагы: мис. [тышкы HTTP өтүнүчүн] алат, [чыгаруу көздөгөн жерине] жазат. Сиздин тапшырмаңыз: (1) мүмкүн болгон аялуу жерлерди OWASP классы менен белгилеңиз, саптын номерин бериңиз + эмне үчүн кооптуу + кантип пайдалануу керек + ар бири үчүн далилдер, (2) ар бир табылга үчүн жок дегенде 1 жалган оң сценарий жазыңыз (мисалы, киргизүү башка катмарда тазаланган болсо), (3) оңдоону сунуштаңыз, бирок "[карап чыгуу + тест жазуу]" белгиси менен; Ошондой эле оңдоо жаңы кемчиликтерди/каталарды киргизеби же жокпу баалаңыз. Жасалма аялуу кошуу.[код]
Күчтүү тездик контекстти берет, OWASP классын жана далилдерди сурайт, жалган позитив жана оңдоо тобокелдиктери жөнүндө суроолорду берип, адамды карап чыгууга мажбурлайт.
Көчүрүлүүчү тез шаблондор
АЙЫЛДЫКТЫ СКАНА ҮЛГҮСҮ OWASP Топ 10 үчүн [тил/алкак] кодун изилдеңиз. Ар бир мүмкүн болгон табылга үчүн: саптын номери, аялуу классы, эмне үчүн кооптуу, үлгү эксплуатациясы, далилдердин күчү (белгилүү/күмөндүү/алсыз). Контекст: киргизүү [булак], чыгаруу [максат]. Ойдон чыгарылган жыйынтыктарды кошуу; Ишенбесеңиз, "[текшерилиши керек]" деп териңиз. Код: [чаптоо]
ЖАЛГАН ПОЗИТИВДҮҮ ЖОЮЛУП АЛУУ ҮЛГҮСҮ Төмөнкү кодду табуу үчүн чыныгы аялуу ЭМЕС сценарийлерди тизмектеңиз: киргизүү башка катмарда тазаланабы, бул жол жеткиликтүүбү, бул маани тест/үлгүбү, алкак автоматтык түрдө корголгонбу. Ар бирине кантип ырастоо керектигин жазыңыз. Табуу: [чаптоо]
ОҢДОО БААЛОО ҮЛГҮСҮ төмөнкү кемчиликти оңдоону сунуштаңыз; анда өзүңүздүн оңдооңузду сынга алыңыз: (1) ал чындап эле аялуу жерди жаап жатабы, (2) ал жаңы аялуу/ката киргизеби, (3) кандай тест жазуу керек (оң жана терс жагдай), (4) аткаруу/функционалдык таасир. Мен карап чыгып, оңдоону сынайм. Аялуу жери + код: [чаптоо]
Аялуу классы үчүн КООПСУЗДУК ҮЛГӨН ОКУТУУ ҮЛГҮСҮ [мисалы. SQL инъекциясы] салыштырмалуу түрдө бул тилде/алкакта коопсуз терүү үлгүсүн жана жалпы ката үлгүлөрүн көрсөтөт. Жалпы эреже + код үлгүсүн бериңиз; бирок мен аны менин кодумда ишке ашыруудан мурун контекстти сурашыңызды каалайм. Тил/алкак: [жазуу]
Жалпы каталар
- Контекстсиз карап чыгуу. Тилсиз, алкаксыз жана киргизүү/чыгарма контекстсиз, AI чыныгы жана жалган жыйынтыктарды чаташтырат; Сөзсүз контекстти бериңиз.
- Чыныгы алсыздыктын ар бир белгисин жаңылыштыруу. AI жалган позитивдерди чыгарат (сыноо маалыматтары, башка катмарда тазаланган киргизүү); Контекст менен ар бир табылганы электен өткөрүңүз.
- AIнын оңдоосун сокур колдонуу. Сунушталган патч жаңы кемчиликтерди/каталарды киргизиши мүмкүн; текшерүү жана жазуу.
- Жалган негативге ишенүү. AI "аялуулар жок" десе да, критикалык жолдорду өзүңүз карап көрүңүз; Статикалык сканерлөө ар бир кемчиликти аныктай бербейт.
- Сырткы куралга кодду/сырды берүү. Жеке код жана реалдуу сырлар (ачкыч, сырсөз) интеллектуалдык менчик жана аялуу болуп саналат; анонимдөө же корпоративдик, обочолонгон куралдарды колдонуу.
Кеңеш: AI карап чыгуу коду болгондо, эң эффективдүү чыпка ар бир табылга үчүн "далилдердин күчүн" (белгилүү/күмөндүү/алсыз) суроо. "Алсыз" деп белгиленген табылгалардын көбү жалган позитив болуп саналат; энергияңызды "ишенимдүү" адамдарга бөлөсүз.
Эскертүү: AI сунуштаган коопсуздукту оңдоо кампага текшерилбестен кирбеши керек. Туура эмес "оңдоо" кемчиликти ачык калтырып, өндүрүштөгү функционалдык катага алып келиши мүмкүн; Ар бир патч карап чыгуу жана сыноо дарбазасынан өтөт.
Кыскача айтканда
Коопсуз кодду карап чыгуу – алсыздыктарды өндүрүшкө кирерден мурун аныктоонун эң арзан жолу жана код тил болгондуктан, AI бул жерде күчтүү экинчи көзгө айланат: кооптуу схемаларды белгилейт, тобокелдиктерди түшүндүрөт, оңдоолорду сунуштайт. Бирок AI бүт операциялык контекстти көрбөйт, жалган позитивдерди жана жалган негативдерди жаратат жана ал сунуш кылган патч жаңы алсыздыктарды киргизиши мүмкүн. Ошентип, карап чыгуу алты кадамдан турат (контекст, текшерүү, негиздөө, жалган позитивдүү жоюу, оңдоону текшерүү, адамдын жактыруусу) жана чечимди иштеп чыгуучу жана коопсуздук боюнча эксперт кабыл алат. Үч принцип: эч кандай табылга контекстсиз чечмеленбейт, ар бир белги контекст менен жок кылынат, эч кандай оңдоо текшерилбеген сактагычка кирбейт. Ал эми код/сыр эч качан анонимизациясыз тышкы куралга берилбейт.
Колдонмо тапшырмасы
Үлгү кодунун үзүндүсүн алыңыз (же өзүңүздүн кодуңуздан сезимтал бөлүктөрдү алып салуу же аялуу жерлери бар үлгү кодду). AI аны “Аялуу жерлерди сканерлөө” шаблону менен текшерсин; Ар бир табылга үчүн "Жалган позитивдүү жоюу" шаблонун колдонуңуз жана чыныгыларды жок кылыңыз. "Оңдоону баалоо" үлгүсү менен эң олуттуу тыянакты оңдоону алыңыз, аны өзүңүз карап чыгып, бир оң + бир терс сыноо ишин жазыңыз. Канча табылгалар жалган позитив болгонуна көңүл буруңуз.
текшерүү тизмеси
- [ ] Мен кодду карап чыгуудан мурун тилди, негизди жана киргизүү/чыгарма контекстти бердим.
- [ ] Мен саптын номерин, аялуу классын, эксплуатация жолун жана ар бир табылга үчүн далилдерди сурадым.
- [ ] Мен контекст менен жалган позитивдердин ар бир табылгасын текшердим.
- [ ] Мен AIнын оңдоосун сокур түрдө колдонгон жокмун; Мен карап чыгып, тест жаздым.
- [ ] "Аялуу жерлер жок" деген жыйынтыкка карабастан, мен өзүм критикалык жолдорду карап чыктым.
- [ ] Мен кодду/сырларды жашыруун кылдым же корпоративдик обочолонгон куралдарды колдондум.
- [ ] Мен иштеп чыгуучунун + коопсуздук жактыруусу аркылуу ачылыш жана оңдоодон өттүм.