ኣብ ሓደ እዋን ከም ዓሚቕ ክእለት ዝሓትት ጻዕርታት ዝቑጸር ዝነበረ ምምዕባልን ፕሮግራሚንግን ሶፍትዌር፡ ሕጂ ብዝኾነ ተፈጥሮኣዊ ቋንቋ ዝጥቀም ሰብ ክገብሮ ይኽእል እዩ። ቅድሚ ሕጂ ንኽምዕብል መዓልታት ወይ ኣዋርሕ ዝወስድ ዝነበረ ባህሪ ሕጂ ሳላ ካብ AI ሞዴል ዝመጽእ ኮድ ኣብ ደቓይቕ ወይ ሰዓታት ክምዕብል ይኽእል። ንኣብነት OpenAI Codexን Google BERTን ኣብ ፕሮግራሚንግ ዌብ ብሎግስ፣ Stack overflow questions ወዘተ ዝሰልጠኑ እዮም።
እዞም በላሕቲ ሞዴላት ብናይ ሒሳብ ተኽእሎታት ኣቢሎም ኮድ ዝፈጥሩ እንትኾኑ ምትላልን ናይ ሓሶት ሓበሬታ ከም ዘቕርቡን እውን ይፍለጡ። ብኣካዳሚያውያን ዝተገብረ መጽናዕቲ ከም ዝሕብሮ፡ ምፍጣር ኮድ AI ቀንዲ ጠንቂ ላዕለዎት 10 ተቓላዕነት ምዃኑን ዳርጋ 40% ኮድ ናይ ጸጥታ ስሕተት ከም ዘለዎን ይሕብር ። ብዙሓት ካብቶም ፍሉጣት ተጻወትቲ ምስ ሓደስቲ ኣቕረብቲ SaaS ኮይኖም፡ ንኣቕርቦታቶም ዝያዳ በሊሕ ንምግባር AI ይጥቀሙ ኣለዉ። SaaS ፕሮግራመርስ እውን፣ ብዛዕባ AI-based SaaS tools ዝያዳ ኣፍልጦ ክህልዎም ኣለዎ።
ደረጃታት ፕሮግራሚንግን ጽሬት ኮድን ምኽታል ድሕነት ሶፍትዌር ይውስን። ግን፡ ሞዴላት AI ኣብ ነፍሲ ወከፍ ኣብ ኢንተርነት ዝርከብ ቁሩብ ሓበሬታ ይስልጥኑ። እቲ ናይ ኮድ ጽሬት፡ ተኣማንነት፡ ድሕነትን ካልእን ካብቲ ብሰብኣውያን ኣዳለውቲ ዝፍጠር ክፈላለ ይኽእል እዩ። ኣብ ኣብነታት ምዕባለ መርበብ ሓበሬታ ዝሰልጠነ ሞዴል፡ ንኣብነት ድኹም ኣሰራርሓታት ምጽዳቕ ዳታ ክሕዝ ይኽእል። እዚ ናይ ምጽዳቕ ዘይምህላው እቲ ሞዴል ተመሳሳሊ ድኹም ኣሰራርሓ ዝኽተል ኮድ ኣብ ዘመንጩሉ እዋን ናብ ናይ ጸጥታ ጉዳያት ከስዕብ ይኽእል።
ዓቐን ብዘየገድስ (ሚልዮን ወይ ቢልዮን መለክዒታት) እቶም ሞዴላት ምትላል ከም ዝገብሩን ዘይቅኑዕ ትንበያታት ከም ዝገብሩን ይፍለጡ። ሓደ ልሙድ ዲቨሎፐር ነቲ ሓደ AI ዘፍርዮ ኮድ ምስ ረኣየ፡ ነቲ ረቂቕ ግን ከኣ ከቢድ ናይ ጸጥታ ተቓላዕነት ክስሕቶ እዩ። ይኹን እምበር ንሓደ ብዛዕባ ዲዛይንን ቅዲ ምዕባለን ምሉእ ኣፍልጦ ንዘለዎ ዲቨሎፐር፡ ጉድለታት ካብ ምልላይ ርሒቖም ክለሳ እዮም። ዲቨሎፐራት ነዞም ቅዲታት ተጠቒሞም ተቓላዕነት ክረኽቡን ምስ ብሉጻት ኣሰራርሓታት ድሕነት SaaS ክሰማምዑን ይኽእሉ ።
ዘመናዊ ማዕቀፋትን ቤተ-መጻሕፍትን ንመደምደምታን ምጽዳቕን ኣብ መተሓላለፊ/enum ኣዝዮም ይምርኮሱ። እዚ ድማ እቲ ኮድ ስርሑ ብትኽክል ከም ዝሰርሕን ድሕንነት ከም ዝጽዕንን የረጋግጽ። ብAI ዝፍጠር ኮድ እንተዘይኣመሪሕናዮ ኣይግምትን እዩ። ዋላ ድሕሪ ጥንቁቕ ምልክት ምሕንጻጽ፡ ዘይምስምማዕ ዓይነትን ምትግባር ምጽዳቕን ምስቲ ናይ ኣጠቓቕማ ጉዳይ ዘይክሰማማዕ ይኽእል። ዘይምስምማዕ ኮድ ንምድላይን ንምእራምን፡ ዲቨሎፐራት ብዛዕባ ናይ ዓውዲን ቢዝነስን ጠለባት ኣጸቢቖም ክፈልጡ ኣለዎም።
def reciprocal(user_input): # Insecure implementation with no type inference or validation result = 100 / user_input return result
ፕሮግራማት ነገራት ብህዝባዊ/ብሕታዊ/ሕሉው መንገዲ ይካፈሉ። ላዕለዎት ደረጃ ፋንክሽንን ክፍልታትን ስሌታት ንምፍጻም ብቐጥታ ንህዝባዊ/ዝተሓለዉ ተቐያየርቲ ብምብጻሕ ኩነታት ነገራት ይወርሱ። ኣብ ኣተገባብራ ወይ ኣፈፃፅማ ሓደ ነገር ብጌጋ እንተተገይሩ ናይ ድሕንነት ወይ ኣፈፃፅማ ዕንቅፋት ብቐሊሉ ከጋጥም ይኽእል እዩ። 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
ኣገልግሎታት ብመንገዲ መርበብ ሓበሬታ ሓበሬታ ይካፈሉን ይቕበሉን። ኣብዚ ቅንያት እዚ ውሑስ ምትእስሳርን ኣተሓሕዛ ዳታን ንዕውትነት ኣብ ደበና ዝተመርኮሰ ስርዓታት ወሳኒ ኮይኑ ጸኒሑ እዩ። ኣብ ትካላት ብዝተዘርግሐ መርበባት ዳታ ኣቢልካ ስሱዕ ዳታ ኣብ ምንባብ፣ ምምስራሕን ምክፋልን፣ ዳታ ምቁራጽ ንምክልኻል ድልዱል ፕሮቶኮላትን ናይ ጸጥታ ሜላታትን ክህልዉ ኣለዎም። 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"})
ኣብዚ ናይ ሎሚ ሳይበር ተሃዋሲ ዓለም፡ ስጡም
# 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})
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 ዝፍጠር ኮድ ውሑስን ምስ ደረጃታት ዝሰማማዕን ንምግባር ክንጥቀመሉ ንኽእል ኢና፤
ነቲ ኮድ ክሳብ ክንደይ ብጥንቃቐ ንገምግሞን ኦዲት ንገብሮን ብዘየገድስ፡ ናይ ሰብ ጌጋ ዕድል ኩሉ ግዜ ኣሎ። ኣብ ማንዋል ኦዲት ጥራይ ምጽጋዕ እኹል ኣይኮነን ምኽንያቱ ገለ ኣቐዲሞም ዝተነጸሩ ፍተሻታት ክህልዉና ስለዘለዎም ነቲ ኮድ ናብ ስርዓተ ምቁጽጻር ስሪት ምስ ኣተወ ብቕልጡፍ ክፍትኖን ከረጋግጾን ይኽእል። PR ክለዓል ከሎ ብኣውቶማቲክ ናይ ጸጥታን ጽሬትን ምፍታሽ ዘካይድ ናይ Github action ካብ ምውሳኽ ዝሓሸ ምፍታሽ እንታይ ኣሎ።
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”)
ዓበይቲ ሞዴላት ቋንቋ ንSaS ዲቨሎፐራት ብተፈጥሮኣዊ ምልክታት ኮድን ሓበሬታን ንምፍራይ ኣዝዮም ጠቐምቲ መሳርሒታት እዮም። ይኹን እምበር ሓደጋታት ድሕንነት ዘስዕቡ ኮይኖም ሓደ ሓደ ግዜ ድማ ንጠለባት ትካል ዘይሰማማዕ ኣፈፃፅማ ዘይብሉ ኮድ የቕርቡ። SaaS ዲቨሎፐራት ነዞም መሳርሒታት ክጥቀሙን ብAI ዝፍጠር ኮድ ንናይ ሓቂ ህይወት ኣጠቓቕማ ጉዳያት ኣብ ምትግባርን ኣዝዮም ጥንቁቓት ክኾኑ ኣለዎም። እዚ ግብራዊ መምርሒ ኣብቶም ዝፍጠሩን ኣብ ጸጥታዊ ኣቃውማ ዝጸልዉን ረቛሒታት ዘተኮረ ኮይኑ፡ ነዞም ብድሆታት ብኸመይ ከም ዝሰግሮም ዘርኢ እዩ።