Ақша сомасы: 0
Өтінімдер саны: 0
22.12.25 (қоса алғанда)
ақшалай
Идея
Акт міндеттері
Произвольный код
Ақпаратты өңдеу және түрлендіру
Тапсырманың (жобаның) мақсаты мен сипаттамасы
Тапсырыс берушіге бірнеше ондаған репозиторийлер бекітілген (Go, Kotlin, TypeScript, сәл C немного). Қолмен code-review маңызды осалдықтарды түсіруге уақыты жоқ. Бізден статикалық анализаторды жобалау талап етілді: • белгілі бір сыныптың барлық осалдықтарын табуға кепілдік беріледі (SQL инъекциясы, XSS, құпиялардың ағуы); * жалған позитивтер бермейді (0 жалған оң); * шектеулі уақыт ішінде жұмыс істейді (орташа репозиторийге 60 секундқа дейін); * белгілі бір жоба үшін қосымша оқусыз қолдау көрсетілетін тілдердегі кез келген кодқа қолданылады. Басқаша айтқанда, бізден әмбебап "осалдық оракулы"күтілді.
БҚ/АЖ
Қолдау көрсетілетін тілдердің бірінде ерікті p бағдарламасын қарастырыңыз. S(P) семантикалық қасиетін анықтайық:"осал деректер ағыны пайда болатын P орындалуы және X кірістері бар (мысалы, пайдаланушының енгізуімен дайындалмаған SQL сұрауы)". Check(P)алгоритміне Тапсырыс берушінің талабы: • егер S (P) шын болса, check (P) VULNERABLE қайтаруға міндетті; • егер S (P) жалған болса, Check (P) SAFE-ді қайтаруға міндетті; * Check (P) әрқашан соңғы уақытта аяқталады. S қасиеті-бұл бастапқы синтаксистен гөрі бағдарлама мінез-құлқының тривиальды емес семантикалық қасиеті. Есептеу теориясының классикалық нәтижелері (атап айтқанда, күріш теоремасы) кез-келген тривиальды емес семантикалық сипаттама үшін барлық бағдарламалар үшін есепті дұрыс шешетін әмбебап алгоритм жоқ деп тұжырымдайды. Бұл бастапқы талапқа тікелей әсер етеді: әмбебап тексеру(P) қатаң мағынада мүмкін емес.
Шындығында, бізден ерікті бағдарламалар үшін теориялық тұрғыдан шешілмейтін есептер класының шешімдері күтілді. Біз жасай аламыз: * қолдау көрсетілетін тілдер мен код үлгілерін қатаң шектеңіз; * қорытындылардың ықтималдық сипатына жол беру (эвристикалық режим); * статикалық және динамикалық талдауды біріктіруге сүйеніңіз. Бірақ кез келген ықтимал бағдарлама үшін SAFE/VULNERABLE дұрыс жауап беретін әмбебап "осалдық оракулы" болуы мүмкін емес. Бұл бастапқы тапсырманы "іске асыру қиын"емес, түбегейлі шешілмейтін етеді.
Сергеев И. А.