paint-brush
តើលេខកូដដែលបង្កើតដោយ AI របស់អ្នកពិតជាមានសុវត្ថិភាពមែនទេ?ដោយ@danielcrouch
ប្រវត្តិសាស្ត្រថ្មី។

តើលេខកូដដែលបង្កើតដោយ AI របស់អ្នកពិតជាមានសុវត្ថិភាពមែនទេ?

ដោយ Daniel7m2025/03/19
Read on Terminal Reader

យូរ​ពេក; អាន

កូដដែលបង្កើតដោយ AI គឺជាមូលហេតុនាំមុខគេសម្រាប់ភាពងាយរងគ្រោះកំពូលទាំង 10 ហើយជិត 40% នៃកូដមានកំហុសសុវត្ថិភាព។ ម៉ូដែល AI ត្រូវបានបណ្តុះបណ្តាលលើគ្រប់ព័ត៌មានតូចៗដែលមាននៅលើអ៊ីនធឺណិត។ គុណភាពកូដ ភាពជឿជាក់ សុវត្ថិភាព និងច្រើនទៀតអាចខុសគ្នាពីអ្វីដែលបង្កើតដោយអ្នកអភិវឌ្ឍន៍មនុស្ស។
featured image - តើលេខកូដដែលបង្កើតដោយ AI របស់អ្នកពិតជាមានសុវត្ថិភាពមែនទេ?
Daniel HackerNoon profile picture
0-item

ការអភិវឌ្ឍន៍កម្មវិធី និងការសរសេរកម្មវិធី ដែលធ្លាប់ត្រូវបានចាត់ទុកថាជាកិច្ចខិតខំប្រឹងប្រែងដែលត្រូវការជំនាញស៊ីជម្រៅ ឥឡូវនេះអាចធ្វើឡើងដោយនរណាម្នាក់ដែលប្រើភាសាធម្មជាតិ។ មុខងារ​ដែល​ប្រើ​ពេល​ច្រើន​ថ្ងៃ ឬ​ច្រើន​ខែ​ក្នុង​ការ​អភិវឌ្ឍ ឥឡូវ​អាច​ត្រូវ​បាន​បង្កើត​ក្នុង​ប៉ុន្មាន​នាទី ឬ​ច្រើន​ម៉ោង​ដោយសារ​កូដ​ពី​គំរូ AI។ ឧទាហរណ៍ OpenAI Codex និង Google BERT ត្រូវ​បាន​បណ្តុះបណ្តាល​លើ​ការ​សរសេរ​កម្មវិធី​ប្លុក​បណ្ដាញ សំណួរ​លើស​ជង់។ល។


គំរូឆ្លាតវៃទាំងនេះបង្កើតកូដតាមរយៈប្រូបាប៊ីលីតេគណិតវិទ្យា ខណៈពេលដែលពួកវាត្រូវបានគេស្គាល់ផងដែរដើម្បីបំភ័ន្ត និងបង្ហាញព័ត៌មានមិនពិត។ ការស្រាវជ្រាវដែលធ្វើឡើងដោយអ្នកសិក្សាអះអាងថា ការបង្កើតកូដ AI គឺជាមូលហេតុនាំមុខគេសម្រាប់ភាពងាយរងគ្រោះកំពូលទាំង 10 ហើយ ជិត 40% នៃកូដមានកំហុសសុវត្ថិភាព ។ អ្នកលេងឈានមុខគេជាច្រើន រួមជាមួយនឹងអ្នកផ្តល់សេវា SaaS ថ្មីកំពុងប្រើប្រាស់ AI សម្រាប់ការធ្វើឱ្យការផ្តល់ជូនរបស់ពួកគេកាន់តែឆ្លាតវៃ។ អ្នកសរសេរកម្មវិធី SaaS ក៏ត្រូវតែមានចំណេះដឹងបន្ថែមអំពីឧបករណ៍ SaaS ដែលមានមូលដ្ឋានលើ AI ។

អ្វី​ដែល​ធ្វើ​ឱ្យ​កូដ​ដែល​បង្កើត​ដោយ AI មិន​មាន​សុវត្ថិភាព?

ការធ្វើតាមស្តង់ដារកម្មវិធី និងគុណភាពកូដកំណត់សុវត្ថិភាពកម្មវិធី។ ប៉ុន្តែម៉ូដែល AI ត្រូវបានបណ្តុះបណ្តាលលើគ្រប់ព័ត៌មានដែលមាននៅលើអ៊ីនធឺណិត។ គុណភាពកូដ ភាពជឿជាក់ សុវត្ថិភាព និងច្រើនទៀតអាចខុសគ្នាពីអ្វីដែលបង្កើតដោយអ្នកអភិវឌ្ឍន៍មនុស្ស។ ឧទាហរណ៍ គំរូដែលបានបណ្តុះបណ្តាលលើឧទាហរណ៍នៃការអភិវឌ្ឍន៍គេហទំព័រអាចមានការអនុវត្តសុពលភាពទិន្នន័យមិនល្អ។ ការខ្វះសុពលភាពនេះអាចនាំឱ្យមានបញ្ហាសុវត្ថិភាពនៅពេលដែលគំរូបង្កើតកូដដែលទទួលយកការអនុវត្តមិនល្អដូចគ្នា។

5 សូចនាករដែលណែនាំកូដមានចំណុចខ្សោយសុវត្ថិភាព

មិនថាទំហំ (រាប់លាន ឬពាន់លានប៉ារ៉ាម៉ែត្រ) ម៉ូឌែលត្រូវបានគេដឹងថាធ្វើឱ្យមានការយល់ច្រលំ និងធ្វើការទស្សន៍ទាយមិនត្រឹមត្រូវ។ នៅពេលដែលអ្នកអភិវឌ្ឍន៍ធម្មតាឃើញកូដដែល AI ផលិត ពួកគេនឹងខកខាននូវភាពងាយរងគ្រោះផ្នែកសុវត្ថិភាពដ៏ធ្ងន់ធ្ងរ។ ទោះជាយ៉ាងណាក៏ដោយ សម្រាប់អ្នកអភិវឌ្ឍន៍ដែលមានចំណេះដឹងពេញលេញអំពីការរចនា និងលំនាំនៃការអភិវឌ្ឍន៍ កំហុសគឺជាការពិនិត្យឡើងវិញដែលនៅឆ្ងាយពីការកំណត់អត្តសញ្ញាណ។ អ្នកអភិវឌ្ឍន៍អាចប្រើប្រាស់គំរូទាំងនេះ ដើម្បីស្វែងរកភាពងាយរងគ្រោះ និងស្របតាម ការអនុវត្តល្អបំផុតសុវត្ថិភាព SaaS

1. Type Inference and Input Validations are not enforced

ក្របខ័ណ្ឌ និងបណ្ណាល័យទំនើបពឹងផ្អែកយ៉ាងខ្លាំងលើចំណុចប្រទាក់/enum សម្រាប់ការសន្និដ្ឋាន និងសុពលភាព។ នេះធានាថាលេខកូដបំពេញការងាររបស់ខ្លួនបានត្រឹមត្រូវ និងដាក់សុវត្ថិភាព។ កូដដែលបង្កើតដោយ AI នឹងមិនសន្និដ្ឋានទេ លុះត្រាតែយើងដឹកនាំវា។ សូម្បីតែបន្ទាប់ពីបង្កើតប្រអប់បញ្ចូលដោយប្រុងប្រយ័ត្នក៏ដោយ ក៏ការវាយបញ្ចូលមិនត្រូវគ្នា និងការអនុវត្តសុពលភាពអាចមិនត្រូវគ្នានឹងករណីប្រើប្រាស់នោះទេ។ ដើម្បីកំណត់ទីតាំង និងកែប្រែភាពមិនស៊ីគ្នានៃកូដ អ្នកអភិវឌ្ឍន៍ត្រូវតែដឹងយ៉ាងច្បាស់អំពីតម្រូវការដែន និងអាជីវកម្ម។


 def reciprocal(user_input): # Insecure implementation with no type inference or validation result = 100 / user_input return result

2. ស្ថានភាពមិនស្តង់ដារ និងការចែករំលែកបរិបទរវាងថ្នាក់/វត្ថុ

កម្មវិធីចែករំលែកវត្ថុនៅក្នុងវិធីសាធារណៈ/ឯកជន/ការពារ។ មុខងារលំដាប់ខ្ពស់ និងថ្នាក់ទទួលមរតកស្ថានភាពវត្ថុដោយការចូលប្រើអថេរសាធារណៈ/ការពារដោយផ្ទាល់ ដើម្បីអនុវត្តការគណនា។ ប្រសិនបើមានអ្វីមួយត្រូវបានធ្វើមិនត្រឹមត្រូវនៅក្នុងការអនុវត្ត ឬការអនុវត្ត ការជាប់គាំងសុវត្ថិភាព ឬការអនុវត្តអាចនឹងកើតឡើងយ៉ាងងាយ។ អ្នកអភិវឌ្ឍន៍ SaaS ត្រូវតែអនុវត្តតក្កវិជ្ជាគ្រប់គ្រងស្ថានភាព និងបរិបទរបស់ពួកគេឱ្យបានត្រឹមត្រូវ ហើយពិនិត្យមើលវាសម្រាប់ការប្រើប្រាស់ត្រឹមត្រូវ និងសុវត្ថិភាព។


 class InsecureClass: def __init__(self, owner, balance, password): self.owner = owner # Public attribute self._balance = balance # Protected attribute self.__password = password # Private attribute # Public def def get_balance(self): return self._balance # Protected def def _update_balance(self, amount): self._balance += amount # Private def def __validate_password(self, input_password): return self.__password == input_password # Insecure def exposing private data def insecure_password_exposure(self): return self.__password

3. ការអនុវត្តខ្សោយនៃការគ្រប់គ្រងទិន្នន័យ និងការចែករំលែកបច្ចេកទេស

សេវាកម្មចែករំលែក និងទទួលព័ត៌មានតាមបណ្តាញ។ សព្វថ្ងៃនេះ ការតភ្ជាប់ប្រកបដោយសុវត្ថិភាព និងការគ្រប់គ្រងទិន្នន័យមានសារៈសំខាន់ចំពោះភាពជោគជ័យនៃប្រព័ន្ធផ្អែកលើពពក។ នៅពេលអាន ដំណើរការ និងចែករំលែកទិន្នន័យរសើបលើអង្គការតាមរយៈបណ្តាញទិន្នន័យដែលបានចែកចាយ ពិធីការ និងបច្ចេកទេសសុវត្ថិភាពត្រូវតែមាននៅក្នុងកន្លែងដើម្បីការពារ ការស្ទាក់ចាប់ទិន្នន័យ ។ ដោយប្រើ AI អ្នកអភិវឌ្ឍន៍ SaaS ត្រូវអនុវត្តគ្រប់ទិដ្ឋភាពទាំងអស់នៃស្ថាបត្យកម្មនៅក្នុងកម្មវិធីពេញលេញ។


 #Insecure Data Sharing @app.route("/user/<int:user_id>", methods=["GET"]) def get_user(user_id): user = users.get(user_id) if user: return jsonify(user) # All user data exposed, including secrets # Insecure Data Handling @app.route("/update_email", methods=["POST"]) def update_email(): data = request.json() user_id = data.get("user_id") new_email = data.get("new_email") if user_id in users: users[user_id]["email"] = new_email # No validation of new_email return jsonify({"message": "Email updated successfully"})

4. អាថ៌កំបាំងមិនគ្រប់គ្រាន់ និងការដោះស្រាយការផ្ទៀងផ្ទាត់

នៅ​ក្នុង​ពិភព​ដែល​រសើប​តាម​អ៊ីនធឺណិត​នា​ពេល​បច្ចុប្បន្ន​នេះ តឹង ការអនុវត្ត RBAC គឺជាកត្តាចាំបាច់សម្រាប់ការគ្រប់គ្រងការចូលប្រើប្រាស់ ដើម្បីទទួលបានអត្តសញ្ញាណ ខណៈពេលដែលរក្សាបាននូវភាពឯកជន និងការអនុលោមតាមច្បាប់។ នៅពេលដែលកូដត្រូវបានបង្កើតដោយ LLM តាមលំនាំដើមវានឹងមានយន្តការដែលភ្ជាប់ និងផ្ទៀងផ្ទាត់ជាមួយអ្នកផ្តល់ការផ្ទៀងផ្ទាត់ជាមួយនឹងការអនុវត្តជាមូលដ្ឋាន។ ដំណោះស្រាយសាមញ្ញមិនគ្រប់គ្រាន់ដើម្បីរក្សាសុវត្ថិភាពជាមួយនឹងការគំរាមកំហែងតាមអ៊ីនធឺណិតដែលកំពុងកើតមាននោះទេ។ ខណៈពេលដែលការបន្ថែមមុខងារផ្ទាល់ខ្លួន អ្នកអភិវឌ្ឍន៍ត្រូវតែសាកល្បងឱ្យបានហ្មត់ចត់ ដើម្បីធានាសុវត្ថិភាព និងការគ្រប់គ្រងការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវត្រូវបានអនុវត្តយ៉ាងខ្លាំង។


 # Insecure authentication @app.route("/login", methods=["POST"]) def login(): data = request.json() email = data.get("email") password = data.get("password") for user_id, user in users.items(): if user["email"] == email and user["password"] == password: return jsonify({"message": "Login successful", "user_id": user_id})

5. ភាពអាស្រ័យហួសសម័យជាមួយនឹងការប្រើប្រាស់មុខងារដែលមិនគាំទ្រ

កម្មវិធី AI កំពុងត្រូវបានដឹកនាំដោយបណ្ណាល័យ និងក្របខ័ណ្ឌដែលធ្វើឡើងដោយសហគមន៍ និងប្រភពបើកចំហ។ មនុស្សគាំទ្របច្ចេកវិទ្យាថ្មីដោយប្រើឧបករណ៍ដែលជោគជ័យទាំងនេះ និងបង្កើតថ្មី។ ទិន្នន័យដែលម៉ូដែលទាំងនេះត្រូវបានបណ្តុះបណ្តាលគឺមិនទាន់សម័យទេ ហើយសមត្ថភាពម៉ូដែលត្រូវបានបង្កក ហើយចំណេះដឹងរបស់ពួកគេក៏ដូចគ្នាដែរ។ ជាមួយនឹងការអភិវឌ្ឍន៍បច្ចេកវិទ្យា មុខងារជាច្រើននឹងលែងប្រើ ហើយបណ្ណាល័យមួយចំនួននឹងមិនពាក់ព័ន្ធនឹងតម្រូវការបច្ចុប្បន្នទេ។ អ្នកអភិវឌ្ឍន៍ SaaS មានភារកិច្ចពិនិត្យ និងប្រើប្រាស់ភាពអាស្រ័យដែលមានសុពលភាព ដើម្បីធានាបាននូវមុខងារ និងសុវត្ថិភាព។


 import md5 # Outdated library def insecure_hash_password(password): # Insecure password hashing done using the deprecated MD5 algorithm. return md5.new(password).hexdigest()

គន្លឹះដើម្បីធ្វើឱ្យកូដដែលបង្កើតដោយ AI មានសុវត្ថិភាពក្នុងការប្រើប្រាស់

សមត្ថភាពសរសេរកូដកម្រិតខ្ពស់នៃ Large Language Models គឺដោយសារតែការគណនាគណិតវិទ្យាយ៉ាងទូលំទូលាយរបស់ពួកគេ។ មិនចាំបាច់មានបច្ចេកទេសប្រឌិតដើម្បីធ្វើឱ្យវាអនុលោមតាមស្តង់ដារសុវត្ថិភាព និងកម្មវិធី។ យើងអាចប្រើការត្រួតពិនិត្យសាមញ្ញទាំងនេះដើម្បីធ្វើឱ្យកូដដែលបង្កើតដោយ AI មានសុវត្ថិភាព និងអនុលោមតាមស្តង់ដារ៖


  1. ការពិនិត្យកូដជាមួយក្រុមសន្តិសុខ និងស្ថាបត្យកម្មគួរតែជាផ្នែកស្តង់ដារនៃវដ្តជីវិតរបស់អ្នក។
  2. រួមបញ្ចូលជំហាន សាកល្បងសុវត្ថិភាពស្វ័យប្រវត្តិ និងសុពលភាពនៅក្នុងឧបករណ៍ត្រួតពិនិត្យកំណែ។
  3. រួមបញ្ចូលការត្រួតពិនិត្យភាពអាស្រ័យ និងអនុលោមភាពនៅក្នុង KPIs សាកល្បង។
  4. ទទួលយកស្ថាបត្យកម្ម Zero-Trust ជាមួយនឹងឧបករណ៍សាកល្បងសុវត្ថិភាពឋិតិវន្ត និងថាមវន្ត។
  5. អានុភាពការអនុវត្ត DevSecOps និងស្រមោល AI ។

ដោះស្រាយកូដដែលបង្កើតដោយ AI ដែលមិនមានសុវត្ថិភាពជាមួយនឹងសកម្មភាព Github សាមញ្ញ

មិនថាយើងពិនិត្យ និងធ្វើសវនកម្មកូដដោយប្រុងប្រយ័ត្នប៉ុណ្ណានោះទេ ឱកាសនៃកំហុសរបស់មនុស្សគឺតែងតែមាន។ ការពឹងផ្អែកទាំងស្រុងលើសវនកម្មដោយដៃគឺមិនគ្រប់គ្រាន់ទេ ដោយសារយើងត្រូវមានការត្រួតពិនិត្យដែលបានកំណត់ជាមុនមួយចំនួនដែលអាចសាកល្បង និងធ្វើឱ្យកូដមានសុពលភាពភ្លាមៗនៅពេលដែលវាចូលទៅក្នុងប្រព័ន្ធគ្រប់គ្រងកំណែ។ ការត្រួតពិនិត្យអ្វីដែលប្រសើរជាងការបន្ថែមសកម្មភាព Github ដែលដំណើរការសុវត្ថិភាព និងការត្រួតពិនិត្យគុណភាពដោយស្វ័យប្រវត្តិនៅពេលដែល PR ត្រូវបានលើកឡើង។


 name: Simple Security Checks for AI generated Code on: push: branches: - main pull_request: branches: - main jobs: security-and-quality-check: runs-on: ubuntu-latest Steps: - name: Repository checkout uses: actions/checkout@v3 - name: Python setup uses: actions/setup-python@v4 with: python-version: ">=3.9" - name: Dependency installation run: | python -m pip install --upgrade pip pip install bandit pytest - name: Identifying insecure libraries and patterns run: | echo "Checking for insecure patterns..." if grep -r "md5.new(" .; then echo "ERROR: Insecure MD5 hashing detected. Use hashlib.sha256 or bcrypt instead." exit 1 fi echo "No insecure patterns detected." - name: Scanning for security vulnerabilities run: | echo "Running Bandit security scanner..." bandit -r . - name: Running unit tests run: | echo "Running unit tests..." pytest test/unit --cmodopt=local - name: Notifying on failure if: failure() run: | send_slack_notification(“Unsafe code merge detected, fix immediately”)

សេចក្តីសន្និដ្ឋាន

គំរូភាសាធំគឺជាឧបករណ៍ដ៏មានប្រយោជន៍សម្រាប់អ្នកអភិវឌ្ឍន៍ SaaS ដើម្បីបង្កើតកូដ និងព័ត៌មានជាមួយនឹងការជម្រុញធម្មជាតិ។ ទោះយ៉ាងណាក៏ដោយ ពួកវាបង្កហានិភ័យផ្នែកសុវត្ថិភាព ហើយជួនកាលផ្តល់លេខកូដមិនដំណើរការ ដែលមិនសមនឹងតម្រូវការរបស់សហគ្រាស។ អ្នកអភិវឌ្ឍន៍ SaaS ត្រូវតែមានការប្រុងប្រយ័ត្នខ្លាំងនៅពេលប្រើប្រាស់ឧបករណ៍ទាំងនេះ និងអនុវត្តកូដដែលបង្កើតដោយ AI សម្រាប់ករណីប្រើប្រាស់ក្នុងជីវិតពិត។ ការណែនាំជាក់ស្តែងនេះផ្តោតលើកត្តាដែលកើតឡើង និងមានឥទ្ធិពលលើឥរិយាបថសុវត្ថិភាព ខណៈពេលដែលបង្ហាញពីរបៀបដើម្បីជំនះឧបសគ្គទាំងនេះ។

L O A D I N G
. . . comments & more!

About Author

Daniel HackerNoon profile picture
Occasional Thoughts on Coding, Security, and Management

ព្យួរស្លាក

អត្ថបទនេះត្រូវបានបង្ហាញនៅក្នុង...