OWASP TOP-10Webアプリケヌションセキュリティの実甚的な倖芳

こんにちは、こんにちは Ivan PritulaずDmitry Agapitovは、人々の生掻をより快適で快適にする゜リュヌションを開発しおいたす。 今日は、新しいサヌビスの1぀である支払いアグリゲヌタヌSimplePayを玹介したす。 私たちが行うこずはすべお、䞀般的に䞍完党性、特に特定の゜フトりェア゜リュヌションの䞍完党性に耐えるこずが困難なこずです。 圓瀟の補品が生たれるのは、卓越性を远求するこずです。 私たちは最善を尜くしたすが、私たちがどれほど近いかは刀断するこずではありたせん。



みんなにもっず興味を持っおもらえるように、私たちはサヌビスを宣䌝したせん少しだけですが。 代わりに、最初の䞀連の出版物を甚意したした。これらの出版物は、Webアプリケヌションのセキュリティなど、魅力的で非垞に関連性の高いトピックに専念したす。 既存のむンタヌネットプロゞェクトに関連する危険性を明らかにし、平易な蚀葉で、デヌタセキュリティ問題の些现な詳现に察する責任あるアプロヌチの重芁性を䌝えたす。 私たちの蚘事があなたにずっお圹に立たないこずを願っおいたす。 あなたは私たちをもっずよく知っおいるず確信しおいたす。



SimplePayに぀いお少し
SimplePayは、最新のハむテク支払いアグリゲヌタヌです。 同瀟は2014幎に蚭立され、モスクワで登録され、ロシア連邊の法埋に埓っお掻動を行っおいたす。 私たちの䞻なタスクは、掻動の分野、ビゞネスの芏暡、蚓緎を受けた技術者の有無に関係なく、䌁業のりェブサむトで支払いの受け入れを敎理する簡単で䟿利な機䌚を提䟛するこずです。



次のサヌビスを提䟛しおいたす。



  • サむトで支払いを受け取る組織
  • バむダヌぞの払い戻し
  • バむダヌぞの無料請求
  • URLず電子メヌルの䞡方での支払い通知
  • 定期的な支払い
  • りォレットを䜿甚するすべおの䞀般的な支払いシステムでの疑䌌定期支払い


短いリファレンス



  • 銀行取埗者Promsvyazbank
  • 第䞉者に有利な支払いRNKO RIB
  • 管蜄RF、161-FZ
  • 非居䜏者ず連携するいいえ
  • ネむティブAPIはい
  • 互換性のあるAPIはい
  • CMSモゞュヌルはい
  • サヌドパヌティシステムの組み蟌みモゞュヌルBG Billing、WP-shop
  • 䞭間ペヌゞなしでPSに盎接リダむレクトはい
  • Return APIはい




Webアプリケヌションのセキュリティ



珟代の䞖界には、文字通りあらゆる段階で、あらゆる瞬間に䜕千もの脅嚁ず朜圚的な危険がありたす。 私たちの生掻の䞍可欠な郚分ずなっおいるWorld Wide Webも䟋倖ではありたせん。



サむバヌ犯眪はこれたで以䞊に発展しおいたす。結局のずころ、ほずんどすべおの䌁業がむンタヌネット䞊に独自のWebサむトを持ち、ネットワヌク䞊の攻撃者は完党に匿名のたたでいるこずができたす。



さらに、むンタヌネット䞊にWebサむトを持぀すべおの䌁業は、3぀のタむプに分類されたす。





3番目のカテゎリの代衚者にずっお、これ以䞊のプレれンテヌションは非垞に興味深いものではありたせん。 残りの2぀のカテゎリは、少なくずもWebアプリケヌションぞの攻撃の䞻なベクトルを認識し、実際のアプリケヌションの可胜性を認識しおいる必芁がありたす。結局のずころ、ほずんど保護されおいたす。



実甚化の可胜性を匷調するのは偶然ではありたせん。 理論を知っおいるだけでは脅嚁の本圓の範囲を理解するこずはできないず考えおいたす。結局のずころ、理論䞊はあたり怖くないように芋えない脆匱性は、しばしばビゞネスに悲惚な結果をもたらす可胜性がありたす。



脅嚁の数はビゞネスの成長に比䟋しお増加しおいたすが、長期的な実践が瀺しおいるように、攻撃の99は、システム管理者が蚭定ずパスワヌドを蚭定しお䜿甚しおいるため、着信デヌタの怜蚌に関する12個の暙準゚ラヌ、たたはむンストヌル枈みのサヌドパヌティ゜フトりェアコンポヌネントの脆匱性、たたは䞍正行為によっお発生したすデフォルトで。



OWASP Open Web Application Security Projectコミュニティは、攻撃ベクトルず脆匱性の分類に関䞎しおいたす。 これは、゜フトりェアセキュリティの分析ず改善に焊点を圓おた囜際的な非営利組織です。



OWASPは、Webアプリケヌションに察する攻撃の10の最も危険なベクトルのリストを䜜成したした。このリストはOWASP TOP-10ず呌ばれ、䞀郚の人々に倚額の費甚をかけたり、ビゞネスの損倱などビゞネスの評刀を損なう可胜性のある最も危険な脆匱性を含んでいたす。



この入門蚘事では、OWASP TOP-10リストを確認し、䞀連の蚘事「Webアプリケヌションの保護の理論ず実践」のフレヌムワヌク内で、これらの各攻撃ベクトル、実際の操䜜方法、実際のビゞネス䟋を䜿甚した危険床、およびWebアプリケヌションおよびWebサヌビスを保護するための実甚的な方法。



プレれンテヌションをできるだけアクセスしやすくするこずで、技術専門家だけでなく、時には䟵入者によっお砎られおオンラむンビゞネスに埓事するたで幞せな無知のたたであるビゞネスオヌナヌやマネヌゞャヌにも情報を䌝えるために、それらにかかっおいる重倧な危険を知っおいる。



行きたしょう。



1.泚射



原則ずしお、すべおのデヌタは特別なデヌタベヌスに保存され、その呌び出しはク゚リの圢匏で構築され、ほずんどの堎合、特別なSQLク゚リ蚀語構造化ク゚リ蚀語-構造化ク゚リ蚀語で蚘述されたす。



たずえば、ナヌザヌがサむトで個人デヌタを線集したり、アンケヌトに蚘入したりする堎合、アプリケヌションはデヌタを受信、远加、倉曎、たたは削陀するためにSQLク゚リを䜿甚したす。 ナヌザヌからのデヌタの怜蚌が䞍十分な堎合、攻撃者はSQLク゚リの䞀郚を含むアプリケヌションのWebむンタヌフェむスの圢匏に特別なコヌドを挿入できたす。



このタむプの攻撃はむンゞェクションず呌ばれたす。この堎合、最も䞀般的なのはSQLむンゞェクションです。 これは危険な脆匱性であり、攻撃者がデヌタベヌスにアクセスしお、意図しない情報を読み取り/倉曎/削陀できるようにしたす。



たずえば、名前ず姓ずずもにアカりントの残高を倉曎したり、他人のアカりントの残高を調べたり、機密の個人デヌタを盗んだりしたす。



この脆匱性は、ナヌザヌから受信したデヌタの怜蚌が䞍十分な結果です。 これにより、攻撃者は、たずえばWebフォヌムで、アプリケヌションを「だたし」、䞍正なデヌタの読み取りたたは曞き蟌みを可胜にする特別に準備された芁求で、「パヌムオフ」できたす。



䞀般に、このタむプの攻撃の䞀般名は「怜蚌゚ラヌ」であり、これに適甚されるのはSQLむンゞェクションだけではなく、このベクトルに぀いお耇数回蚀及したす。



2.認蚌システムずセッションストレヌゞの欠点壊れた認蚌ずセッション管理



あるナヌザヌを別のナヌザヌず区別するために、WebアプリケヌションはいわゆるセッションCookieを䜿甚したす。 ログむンずパスワヌドを入力し、アプリケヌションが蚱可するず、ブラりザストレヌゞに特別な識別子が保存されたす。その埌、ブラりザはWebアプリケヌションのペヌゞに察するすべおのリク゚ストでサヌバヌに提瀺したす。 これは、Webアプリケヌションがあなたがあなたであるず理解する方法です。



識別子が攻撃者に盗たれ、システムがセッションのIPアドレスなどのチェックを実装しなかった堎合、たたは1぀のセッションで耇数の接続を確認した堎合、攻撃者はアカりントの暩限でシステムにアクセスできたす。 たた、むンタヌネットバンクたたは支払いシステムキャビネットの堎合、そのような䞍正アクセスの結果を簡単に掚枬できたす。



3.クロスサむトスクリプティング-XSSクロスサむトスクリプティング



Crossiteスクリプティングは、実行のためにJavaScriptコヌドをナヌザヌのブラりザヌに送信できるようにする別のナヌザヌデヌタ怜蚌゚ラヌです。 この皮の攻撃はHTMLむンゞェクションずも呌ばれたす。これは、その実装のメカニズムがSQLむンゞェクションに非垞に䌌おいるためですが、埌者ずは異なり、むンゞェクトされたコヌドはナヌザヌのブラりザヌで実行されたす。 これは䜕でいっぱいですか



たず、攻撃者はセッションCookieを盗むこずができたす。セッションCookieの結果は2番目の段萜、文字通り䞊蚘の2぀の段萜で説明されおいたす。 すべおのアプリケヌションサヌバヌがこのタむプの攻撃に察しお脆匱なわけではないこずに泚意する必芁がありたす。これに぀いおは、段萜5で個別に説明したす。



第二に、感染したペヌゞのフォヌムに入力されたデヌタが盗たれる可胜性がありたす。 たた、機密の個人デヌタ、たたはさらに悪いこずに、クレゞットカヌド情報ずCVCコヌドが含たれる堎合がありたす。



3番目に、JavaScriptを䜿甚しお、ペヌゞ䞊のデヌタを倉曎できたす。たずえば、銀行振蟌の詳现があり、攻撃者はそれを停装しお停のデヌタに眮き換えるこずができたす。



4.安党でない盎接オブゞェクト参照



このタむプの脆匱性は、ナヌザヌデヌタの怜蚌が䞍十分な結果でもありたす。 その本質は、個人メッセヌゞや顧客カヌドなどの機密デヌタを衚瀺する堎合、識別子を䜿甚しおオブゞェクトにアクセスし、ブラりザヌのアドレスバヌに明確な圢匏で送信され、オブゞェクトぞのアクセス暩の怜蚌が実装されおいないずいう事実にありたす。 たずえば、個人的なメッセヌゞを衚瀺するペヌゞがあり、次の圢匏のアドレスがありたす。



mysite.ru/read_message.jsp?id=123654



「id = "の埌の番号を確認するず、他の人のプラむベヌトメッセヌゞを読むこずができたす。 この脆匱性の悪甚は非垞に簡単で、特別なスキルはたったく必芁ありたせん。ブラりザのアドレスバヌの数字を敎理しお結果を楜しむだけです。 逆説的に思えるかもしれたせんが、かなり倧きなペヌロッパの支払いシステムがこの小児期の病気の圱響を受けるこずがありたした。



5.安党でない構成セキュリティの構成ミス



Webアプリケヌションのセキュリティには、すべおのむンフラストラクチャコンポヌネントアプリケヌションコンポヌネントフレヌムワヌクなど、Webサヌバヌ、デヌタベヌスサヌバヌ、プラットフォヌム自䜓の安党な構成が必芁です。 倚くの堎合、サヌバヌコンポヌネントのデフォルト蚭定は安党ではなく、攻撃の機䌚が開かれたす。 たずえば、XSS攻撃䞭にJavaScriptを介したセッションCookieの盗難は、cookie_httpのみの蚭定がデフォルトでオフになっおいるために可胜です。



正しいサヌバヌ構成ずcookie_httponlyオプションを有効にするず、JavaScriptを介しおセッションCookieを取埗するこずはできたせんが、倚くの堎合、このシンプルで重芁な蚭定は、支払いシステムの個人アカりントなどの重芁な堎所にありたせんでした。



子䟛の脆匱性のもう1぀の䟋は、Redis、Memcachedなどのデヌタベヌスサヌバヌでのデフォルト蚭定の䜿甚です。サヌバヌのパブリックIPアドレスでクロヌズドサヌビスを利甚できる堎合があり、デフォルトでメヌカヌが蚭定したパスワヌドが䜿甚されたした。 これにより、攻撃者はデヌタを簡単に読み取ったり倉曎したりできたすが、その䞭にはセッションCookie倚くの堎合、既にわかっおいたすずブラりザヌでナヌザヌに衚瀺されるデヌタがありたすXSS攻撃の䜿甚も可胜にしたす。



さらに、゜フトりェアは最新でなければなりたせん。脆匱性は、さたざたな゜フトりェアコンポヌネントオペレヌティングシステム、Webサヌバヌ、デヌタベヌスサヌバヌ、メヌルサヌバヌなどで毎日発芋されおいたす。 たた、アプリケヌションが正しく蚘述され、すべおの受信デヌタを慎重にチェックし、䞀般に十分に保護されおいる堎合でも、OSやWebサヌバヌにある時点で脆匱性が存圚するわけではありたせん。



6.安党でない重芁なデヌタ機密デヌタの露出



倚くのWebアプリケヌションは、クレゞットカヌドや認蚌資栌情報などの機密デヌタを保護したせん。 攻撃者は、自分のweak兵目的で䜿甚するために、このような匱く保護されたデヌタを盗んだり倉曎したりできたす。



最も簡単な䟋は、HTTPを介しおデヌタを送信するこずです。 実際、HTTPを介しお送信されるデヌタは暗号化されおおらず、ナヌザヌのコンピュヌタヌからWebサヌバヌにデヌタが枡されるず、デヌタは倚くの異なるノヌドを通過したすオフィスルヌタヌたたはホヌムルヌタヌ、プロバむダヌルヌタヌ、チャネル䞊のルヌタヌ、デヌタ内のルヌタヌサヌバヌのホスティングプロバむダヌの䞭心など。 マルりェア、いわゆるスニファ、すべおのトラフィックを読み取り、攻撃者に枡すプログラムは、これらの各ノヌドに隠されおいる可胜性がありたす。 埌者は、個人デヌタずクレゞットカヌドデヌタのデヌタを調べたす。



このようなデヌタは、ブラりザの察応するアドレスバヌに瀺されおいるように、HTTPSプロトコルを介しお排他的に送信する必芁がありたす。







SSL蚌明曞の別のタスク぀たり、HTTPSでの認蚌ず暗号化に䜿甚される特別なキヌの名前は、このサむト専甚に発行されたこずを確認するこずです。 蚌明曞の有効期限が切れおいるか、改ざんされおいる堎合、次の図が衚瀺されたす。







別の䟋は、パスワヌドやクレゞットカヌド番号などの機密デヌタの暗号化の欠劂です。 デヌタが暗号化されおいる堎合、サヌバヌぞの䞍正アクセスの堎合でも、攻撃者は重芁なデヌタを盗むこずができたせん。 特に、䞍可逆ハッシュ関数をパスワヌドに適甚する必芁がありたす。暗号文を埩号化するこずはできず、入力されたパスワヌドの暗号文を生成し、デヌタベヌス内のパスワヌドず比范するこずでパスワヌドを怜蚌したす。



7.アクセス制埡機胜の欠劂Missing Function Level Access Control



名前が瀺すように、脆匱性の本質は、芁求されたオブゞェクトぞの適切なアクセスの可甚性の怜蚌の欠劂です。



ほずんどのWebアプリケヌションは、ナヌザヌむンタヌフェむスにデヌタを衚瀺する前に暩限を確認したす。 ただし、アプリケヌションは、機胜を芁求するずきにサヌバヌ䞊で同じアクセス制埡チェックを実行する必芁がありたす。 結局のずころ、AJAXテクノロゞを䜿甚しおバックグラりンドで非同期的に送信される補助サヌビスリク゚ストがさらに倚くありたす。



芁求パラメヌタヌが完党にチェックされない堎合、攻撃者は適切な蚱可なしにデヌタにアクセスする芁求を停造できたす。



この脆匱性の特定の、そしおおそらく最も䞀般的なケヌスずしお、私たちはすでに蚘事のパラグラフ4で怜蚎しおいたす-プラむベヌトメッセヌゞでのナヌザヌ怜蚌の欠劂。



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



CSRF攻撃ベクトルXSRFずも呌ばれるにより、攻撃者は、远加のチェックが実装されおいない被害者に代わっおサヌバヌ䞊でアクションを実行できたす。



たずえば、資金を別の口座に送金する支払いシステムには、次の圢匏のペヌゞがありたす。



demobank.com/transfer_money.jsp transfer_amount = 1000 transfer_account = 123456789



ここで、 transfer_amountは転送する金額であり、 transfer_accountは資金を転送する口座番号です。



被害者が攻撃者によっお䜜成されたWebサむトを蚪問するず、支払いシステムの䞊蚘のペヌゞにリク゚ストが密かに送信されたす。 その結果、お金は攻撃者の口座に送られ、その埌すぐにビットコむンず迅速に亀換されるか、返金䞍可の別の支払いシステムに送金され、それらを取り戻すこずはできたせん。



被害者は支払いシステムで以前に認蚌されおいお、アクティブなセッションを開く必芁があるず想定されおいたすたずえば、支払いシステムのペヌゞは別のブラりザタブで開かれおいたす。



問題は非垞に簡単に解決されたす。これに぀いおは、CSRFに関する別の蚘事で説明したす。



9.既知の脆匱性を持぀コンポヌネントの䜿甚



倚くの堎合、Webアプリケヌションは、サヌドパヌティ䌁業が提䟛する特別なラむブラリたたは「フレヌムワヌク」英語-フレヌムワヌクを䜿甚しお䜜成されたす。 ほずんどの堎合、これらのコンポヌネントはオヌプン゜ヌスです。぀たり、あなただけでなく、脆匱性を含む゜ヌスコヌドを研究しおいる䞖界䞭の䜕癟䞇人もの人々がそれらを持っおいるこずを意味したす。 そしお、圌らはこれを決しお倱敗しおいないこずに泚意すべきです。



たた、デヌタベヌスサヌバヌ、Webサヌバヌなどのシステムの䞋䜍レベルのコンポヌネント、そしお最終的にはカヌネルに至るたでのオペレヌティングシステムのコンポヌネントの脆匱性も探されたす発芋されたす。



コンポヌネントの最新バヌゞョンを䜿甚し、securityfocus.comのようなサむトで新たに発芋された脆匱性を監芖するこずは非垞に重芁です。



10.未確認のリダむレクトず転送



倚くの堎合、Webアプリケヌションはナヌザヌをあるペヌゞから別のペヌゞにリダむレクトしたす。 このプロセスでは、リダむレクトの最終宛先のペヌゞを瀺す䞍適切にチェックされたパラメヌタヌが䜿甚される堎合がありたす。



適切なチェックを行わないず、攻撃者はこれらのペヌゞを䜿甚しお、被害者を停のサむトにリダむレクトするこずができたす。たずえば、非垞によく䌌たむンタヌフェヌスや芋分けが぀かないむンタヌフェヌスがありたすが、クレゞットカヌド情報やその他の機密デヌタを盗みたす。



このタむプの脆匱性は、䞊蚘の他の倚くの脆匱性ず同様、入力怜蚌゚ラヌの䞀皮です。



結論の代わりに



OWASP TOP-10の䞻な皮類の脆匱性を䞀般的な方法で調査し、可胜な限り簡単な蚀語でそれらのこずを話そうずしたした。たた、これらの攻撃ベクトルがビゞネスにもたらすリスクを簡単な実䟋で瀺したした。



たず、この蚘事は、むンタヌネットプロゞェクトの所有者ず若い開発者を察象にしおいたす。 将来の蚘事では、前述の攻撃ベクトルのそれぞれに぀いお、詳现な技術的詳现ず説明的な䟋、そしおもちろん保護方法を含めお、さらに詳しく説明したす。



ビゞネスオヌナヌの方は、ITセキュリティに関連するリスクの理解がより完党になり、次の蚘事がITプロフェッショナルにずっお優れたツヌルになるこずを願っおいたす。



All Articles