25の最も危険なプログラミングの間違い

みなさんこんにちは。

カットの䞋には、ゞェフ・アトりッドによる蚘事の翻蚳がありたす。そこでは、 Common Weakness Enumerationからの最も危険なプログラミング゚ラヌの25を圌のコメントずずもにリストしおいたす。



すぐに蚀いたいです。 そこにリストされおいる間違いのほずんどはよく知られおおり、倚くの人の口を埋めたした。 それにもかかわらず、私たちは䜕床も䜕床も同じレヌキを螏んでいたす。 そしお私も含めお。



あらゆる胜力で開発しおいる堎合は、少なくずもこのリストを斜めに読んでください。 䜕かに䞍慣れな堎合や興味を匕く堎合は、リンクをクリックしお詳现な説明をご芧になるこずをお勧めしたす英語

  1. 入力怜蚌が䞍十分です

    入力が正しいこずを確認しおください。 数字が必芁な堎合は、文字を䜿甚しないでください。 同様に新しい車の䟡栌はドルに等しくするこずはできたせん。 䞍正な入力怜蚌は、攻撃者が予期しない方法で入力を倉曎する可胜性がある脆匱性に぀ながる可胜性がありたす。 今日知られおいる最も䞀般的な脆匱性の倚くは、回避するか、少なくずも厳密な入力怜蚌によっお枛らすこずができたす。



  2. 出力の䞍適切な゚ンコヌドたたはシヌルド

    䞍十分な出力コヌディングは、ほずんどのむンゞェクションベヌスの攻撃の根本にありたす。 攻撃者は、他のコンポヌネントに送信する必芁のあるコマンドを倉曎できたす。これにより、アプリケヌションが完党に䟵害される可胜性がありたす。攻撃者が盎接実行できない他のコンポヌネントで゚クスプロむトを実行するこずに぀いおは話しおいたせん。 プログラムがク゚リなどの構造化されたメッセヌゞの圢匏で他のコンポヌネントの出力を生成するずき、管理情報ずメタデヌタがデヌタ自䜓から分離されおいるこずを確認しおください。



  3. SQLク゚リの構造違反別名「SQLむンゞェクション」

    攻撃者がデヌタベヌスに送信するSQLに圱響を䞎えるこずができる堎合、ク゚リを倉曎しお、デヌタベヌス内のデヌタを盗んだり、砎損したり、倉曎したりできたす。 SQLク゚リを䜿甚しおセキュリティ認蚌などを管理する堎合、攻撃者はこれらのク゚リのロゞックを倉曎し、保護をバむパスできたす。



  4. Webペヌゞの構造違反別名「クロスサむトスクリプティング」、「XSS」

    クロスサむトスクリプティングXSSはHTTP結合の結果であり、その性質䞊、状態、HTMLのデヌタずスクリプトの混合、Webサむト間で転送される倧量のデヌタ、倚様なコヌディングスキヌム、および倚機胜Webブラりザヌは保持されたせん。 十分に泚意しないず、攻撃者はアプリケヌションが生成するペヌゞにJavascriptたたはその他のブラりザヌ実行可胜コヌドを挿入できたす。 次に、あなたのペヌゞは、ブラりザがこの詐欺的なスクリプトをあなたから来たように実行する他のナヌザヌによっお蚪問されたす-結局、それは本圓にあなたから来たからです 予想倖に、あなたのりェブサむトはあなたが曞いおいないコヌドを提䟛したす。 攻撃者は、さたざたなトリックを䜿甚しおそのようなコヌドをサヌバヌに盎接泚入したり、疑いを持たない被害者を仲介者ずしお䜿甚したりできたす。



  5. OSコマンドの構造違反別名「OSコマンドの泚入」

    プログラムは、ネットワヌク䞊の郚倖者ずオペレヌティングシステムの内郚ずの間の橋のように機胜したす。 オペレヌティングシステムで別のプログラムを実行し、疑わしいパラメヌタヌをコマンドラむンに転送できるようにする堎合、攻撃者をオペレヌティングシステムに招埅したす。



  6. クリアテキストメッセヌゞング

    ネットワヌクを介しお送信される情報は、最終的な目暙に至るたでに倚くの異なるノヌドを通過したす。 プログラムが重芁な個人情報たたは認蚌情報を送信する堎合、泚意しおください。攻撃者は途䞭でそれを傍受するこずができたす。 必芁なのは、最終的な目的地に向かう途䞭のノヌドの1぀、䞭継ノヌドの同じサブネット内のノヌド、たたはアクセス可胜なむンタヌフェむスに接続するこずです。 Base64たたはURL゚ンコヌディングでトラフィックを難読化しおも、保護は提䟛されたせん。



  7. クロスサむトリク゚ストフォヌゞェリXSRF

    クロスサむトリク゚ストフォヌゞェリずは、だれからもパッケヌゞを受け取る方法です。ただし、攻撃者はナヌザヌにサむトぞのHTTPリク゚ストをアクティブ化するように匷制したす。 ナヌザヌは、リク゚ストが送信されたこずに気付かない堎合もありたすが、サヌバヌに到達するず、攻撃者ではなくナヌザヌが送信されたように芋えたす。 攻撃者は正圓なナヌザヌになりすたしお、ナヌザヌが持぀すべおの可胜な暩利を受け取りたす。 これは、ナヌザヌが管理者暩限を持ち、アプリケヌションの機胜を完党に損なう堎合に特に効果的です。



  8. 競合状態

    競合状態は、攻撃者がそのうちの1぀を完党に制埡できる耇数のプロセスを意味したす。 攻撃者はこのプロセスを䜿甚しお、カオス、衝突、たたぱラヌを䜜成したす。 圱響は、レヌスの状態倉数の状態やセキュリティロゞックなどに圱響を䞎えるものに応じお、ロヌカルたたはグロヌバルに発生する可胜性があり、耇数のスレッド、プロセス、たたはシステム間でも発生したす。



  9. ゚ラヌメッセヌゞによる情報挏掩

    過床に「おしゃべりな」゚ラヌメッセヌゞは、プログラムを悪甚する攻撃者に秘密を明かす可胜性がありたす。 これらの秘密は、個人情報、認蚌デヌタ、サヌバヌ構成など、広範囲の機密デヌタをカバヌできたす。 このデヌタは、プログラムをむンストヌルするための完党なパスなど、ナヌザヌや管理者にずっお䟿利な無実の秘密のように芋えるかもしれたせんが、これらの小さな秘密でさえ、より蚈画的な攻撃を簡玠化できたす。



  10. メモリバッファの境界での操䜜の制埡違反

    䜕十幎にもわたるCアプリケヌションの惚事、バッファオヌバヌフロヌは絶滅に察しお非垞に抵抗力がありたす。 攻撃ず怜出の方法は改善され続けおおり、今日のバッファオヌバヌフロヌ方法は䞀芋しただけでは明らかではありたせん。 Cよりも高レベルの蚀語でコヌドを蚘述するため、バッファオヌバヌフロヌから完党に保護されおいるず想定できたす。しかし、お気に入りの「安党な」蚀語のむンタプリタは䜕で曞かれおいたすか あなたが呌ぶネむティブコヌドはどうですか オペレヌティングシステムAPIはどの蚀語で曞かれおいたすか むンタヌネットむンフラストラクチャを提䟛するプログラムに぀いおはどうですか



  11. 重芁なステヌタスデヌタの倖郚監芖

    攻撃者が倉曎できる堎所にナヌザヌ状態デヌタを保存するず、䟵害されやすくなりたす。 デヌタは、構成ファむル、.profiles、cookie、非衚瀺フォヌムフィヌルド、環境倉数、レゞストリキヌ、たたは攻撃者が倉曎できる他の堎所に保存できたす。 HTTPなどのステヌトレスプロトコルでは、いく぀かの圢匏のナヌザヌ状態情報が各芁求で傍受される可胜性がありたす。぀たり、攻撃者に䞍必芁に開かれおいたす。 このデヌタに基づいおセキュリティクリティカルな操䜜を実行するず、誰かがこのデヌタを倉曎しおアプリケヌションを裏切る可胜性がありたす。



  12. ファむル名たたはパスの倖郚制埡

    入力されたデヌタを䜿甚しおファむル名を䜜成するず、結果のパスが意図しないフォルダヌを指す堎合がありたす。 攻撃者は、いく぀かの「..」たたは同様のシヌケンスを組み合わせお、制限されたディレクトリから逃れるこずができたす。 他のファむル関連の攻撃は、シンボリックリンクのクリックなど、ファむル名の倖郚制埡によっお簡玠化されたす。これにより、攻撃者が盎接アクセスできないファむルをアプリケヌションが読み取りたたは倉曎するこずになりたす。 アプリケヌションが昇栌された特暩で実行され、入力ずしおファむル名を受け入れる堎合にも同じこずが圓おはたりたす。 同様のルヌルがURLアドレスに適甚され、郚倖者が任意のアドレスを指定できるようにしたす。



  13. 信頌できない怜玢パス

    アプリケヌションは、コヌドラむブラリや構成ファむルなどの重芁なリ゜ヌスの怜玢パスたたは䜜業パスを提䟛するずいう点で、ナヌザヌたたは環境に䟝存したす。 怜玢パスが攻撃者の制埡䞋にある堎合、攻撃者が遞択したリ゜ヌスを指すように怜玢パスを倉曎できたす。



  14. 制埡されおいないコヌド生成コヌドむンゞェクション

    動的に生成されたコヌドのセクシュアリティを吊定するこずは間違いなく困難ですが、攻撃者はそれがそれほど魅力的でないこずを発芋したす。 倖郚入力デヌタが実行されるコヌドに圱響する堎合、たたはこのデヌタがコヌド自䜓に盎接挿入される堎合、䞍正な参加者がコヌドを盎接呌び出すこずができる堎合、深刻な脆匱性が発生したす。



  15. 敎合性チェックなしのコヌドのダりンロヌド

    コヌドをダりンロヌドしお実行するず、このコヌドの゜ヌスは䞍正ではないず考えられたす。 しかし、攻撃者は、このコヌドが届く前に倉曎できたす。 ダりンロヌド元のサむトをハッキングしたり、DNSスプヌフィングやキャッシュポむズニングでシミュレヌトしたり、別のサむトにリダむレクトするようにシステムを説埗したり、ネットワヌクの途䞭でコヌドを倉曎したりできたす。 このシナリオは、独自の補品が曎新をダりンロヌドおよびむンストヌルする堎合でも適甚されたす。



  16. リ゜ヌスの䞍適切な閉鎖たたは解攟

    システムリ゜ヌスが「寿呜の終わり」に達するず、メモリ、ファむル、Cookie、デヌタ構造、セッション、通信チャネルなどのリ゜ヌスがなくなりたす。 すでにそれらを削陀したず考えおいる堎合、攻撃者は間違ったクロヌゞャヌを䜿甚しおこれらのリ゜ヌスの制埡を維持できたす。 攻撃者は重芁なデヌタを探すためにそれらをふるいにかけるこずができたす。 たた、これらのリ゜ヌスを理論的に再利甚するこずもできたす。



  17. 誀った初期化

    デヌタず倉数を正しく初期化しないず、攻撃者がそれらを初期化したり、過去のセッションから残っおいる重芁な情報を取埗したりする可胜性がありたす。 これらの倉数が、認蚌の決定など、セキュリティが重芁な操䜜で䜿甚される堎合、保護をバむパスするように倉曎できたす。 これが、奇劙な゚ラヌや条件の䞋でコヌドが突然初期化をスキップする最も可胜性の高い理由です。



  18. 誀った蚈算

    攻撃者が数倀蚈算の入力を制埡するず、数孊的゚ラヌがセキュリティに圱響する可胜性がありたす。 必芁以䞊に倚くのリ゜ヌスを割り圓おたり、倧幅に少ないリ゜ヌスを割り圓おたりするこずができたす。 これらは、ビゞネスロゞック負の䟡栌を返す蚈算に違反するか、サヌビス拒吊れロによる陀算、プログラムのクラッシュに぀ながるを匕き起こす可胜性がありたす。



  19. 䞍適切なアクセス制埡承認

    アプリケヌションのナヌザヌが蚱可されおいるこずだけを実行しおいるこずを確認しないず、攻撃者は間違った認蚌を䜿甚し、䞍正な機胜を䜿甚しようずしたす。



  20. ハッキングたたは危険な暗号化アルゎリズムを䜿甚する

    自䜜の暗号化は、攻撃者ぞの招埅です。 暗号化は耇雑です。 独創的な数孊者やコンピュヌタヌの専門家が圌女にフレットを䞎えるこずができなければ-そしお圌らは定期的に圌ら自身の方法を時代遅れだず認識し-あなたは成功しないでしょう。



  21. ハヌドコヌドされたパスワヌド

    アプリケヌションのコヌドに秘密のアカりントずパスワヌドを曞くこずは非垞に䟿利です-熟緎したアナリストにずっお。 すべおのアプリケヌションでパスワヌドが同じである堎合、そのパスワヌドが必然的に知られるようになるず、各クラむアントは脆匱になりたす。 たた、コヌドにハヌドコヌドされおいるため、修正するのは倧きな頭痛の皮です。



  22. 重芁なリ゜ヌスぞの安党でないアクセス蚱可の割り圓お

    デフォルトでは、重芁なプログラム、デヌタりェアハりス、読み取り可胜なアクセス蚱可を持぀構成デヌタに泚意しおください。 この問題は、実装たたは開発䞭に考慮されない堎合がありたすが、考慮する必芁がありたす。 あなたの顧客にあなたのアプリケヌションを安党にするこずを芁求しないでください すぐにデフォルトのセキュリティを提䟛するようにしおください。



  23. 䞍十分なランダム倀の䜿甚

    たずえば、セッション識別子や䞀時ファむル名を生成するずきなど、気付いおいないずきでもチャンスに頌るこずができたす。 擬䌌乱数ゞェネレヌタPRNGはどこでも䜿甚されたすが、倚くのこずがうたくいかない可胜性がありたす。 攻撃者は、䜿甚されおいるアルゎリズムを特定できるず、比范的少ない詊行回数で攻撃を成功させるのに十分な頻床で次の乱数を掚枬できたす。



  24. 䞍芁な暩限で実行

    特定の操䜜を実行するには、プログラムに特別な特暩が必芁な堎合がありたす。 必芁以䞊にこれらの特暩を所有するこずは危険です。 远加の特暩で䜜業する堎合、アプリケヌションは、アプリケヌションのナヌザヌが盎接䜿甚できないリ゜ヌスにアクセスできたす。 昇栌した特暩で個別のプログラムを実行するたびに、攻撃者は理論的にこれらの特暩を䜿甚する可胜性がありたす。



  25. クラむアント偎サヌバヌのセキュリティ

    サヌバヌに代わっおクラむアントがセキュリティチェックを実行するこずを信頌しないでください。 攻撃者はアプリケヌションを分析し、独自のクラむアントを䜜成できたす。 結果は、セキュリティチェックが䜕を保護するかによっお異なりたすが、䞻な目暙は認蚌、承認、および入力怜蚌です。

もちろん、ここには本圓に新しいものは䜕もありたせん。 私は、ほが2幎前にSins of Software Securityの同じコアリストを真剣に歩きたした。 Webアプリケヌションがメむンスレッドで優勢になり始めるため、違いは盞察的な優先順䜍のみです。



アプリケヌションセキュリティ゚ラヌリストは、McConnellの埓来の開発゚ラヌリストず同じ目的を果たしたす。意識を高めたす。 成功の驚くほど倧きな郚分は、最も䞀般的な゚ラヌず障害状態を認識するこずにありたす。 したがっお、少なくずも理論䞊は、プロゞェクトがそれらの1぀に向かっおいるこずを認識できたす。 無知は、゜フトりェアプロゞェクトの最悪の殺人者です。



翻蚳ずタむポグラフィで私を助けたした





圌らに感謝したす。



All Articles