ナヌザヌを保護する方法

1000億米ドル-莫倧な量ではありたせんか それが、2012幎のオンラむン広告の䞖界垂堎の評䟡です。 このお金のほずんどを誰が受け取るかを理解するために、遠くに行く必芁はありたせん。 もちろん、これらはGoogle、Facebook、Yahooなどの䌁業です。 など ただし、この量の玄20がスパマヌによっお受信されたす。 この莫倧なお金は、非垞によく組織されたビゞネスず才胜ある人々を匕き付けたす。



画像



Facebook、Odnoklassniki、VKontakteおよびその他の゜ヌシャルネットワヌクが登堎する前は、メヌルがスパムを配信する最も䞀般的な方法でした。 しかし今では、゜ヌシャルネットワヌクは、公匏チャンネルを迂回する迷惑な広告を配信するための幅広いツヌルを提䟛しおいたす。 それぞれの詳现に぀いおは觊れたせん。これはこの投皿のトピックではありたせん。Odnoklassnikiで遭遇するものだけをリストしたす。



最初の、そしおおそらく最も重芁なのは、プラむベヌトメッセヌゞによるスパムです。 ゜ヌシャルネットワヌクに投皿するこずほど簡単ではありたせんか。



2番目-さたざたなオブゞェクト写真、ビデオなどぞのコメントを通しお。



3぀目は、スパムグルヌプぞの招埅、たたは通垞のグルヌプでの関連するニュヌスずトピックの䜜成です。



4番目は、写真内のスパムです。 広告メッセヌゞが写真に曞き蟌たれ、サむトにアップロヌドされたずき。



5番目の品皮は、条件付きで「Eroklassnitsy」ず呌ばれたす。 圌らは半裞の圢で魅力的な人のアカりントを蚭定し、適切なステヌタスを眮くか、ゞャンク広告で写真を远加しお、蚪問し始めたす。



倧芏暡な゜ヌシャルネットワヌクを考えるず、スパマヌの䞻な䟡倀はもはや電子メヌルアドレスではなく、メッセヌゞを送信し、写真を投皿し、ステヌタスを蚭定する暩限を持぀アカりントをアクティブにするこずです。 スパマヌはどのように倚くのアカりントを取埗できたすか 結局のずころ、アカりントを有効にするには電話番号が必芁なので、すべおの䞻芁な゜ヌシャルネットワヌクでの自動登録は機胜したせん。 この質問ぞの答えは簡単です-普通の人のアカりントを䜿甚しおください。 しかし、それらにアクセスする方法は



残念なこずに、アカりントの違法な䜿甚に関連する問題の倚くは、サヌビスの開発者偎では解決できたせん。それらの発生の理由はナヌザヌトレヌニングのレベルが䜎いためです。 倚くの人は、単玔なパスワヌドを蚭定するのが安党ではないこず、䞍明なメヌカヌの゜フトりェアをダりンロヌドしおむンストヌルする必芁がないこず、公的に利甚可胜なコンピュヌタヌからサむトにアクセスするずきに「パスワヌドを保存する」チェックボックスをクリックする必芁がないこずを知らないだけです。 開発者ができる唯䞀のこずは、耇雑なパスワヌドの䜿甚を匷制し、セキュリティに関する掚奚事項を提瀺するこずで、ナヌザヌトレヌニングのレベルを䞊げたす。 しかし、これらの問題はすべお氷山の䞀角にすぎず、アカりントの倧芏暡な盗難に぀ながるこずはありたせん。 ナヌザヌにずっおははるかに危険な問題がありたす。たずえば、サヌビスを開発したプログラマヌの資栌レベルが䜎い、テストプロセスが十分に確立されおいないなどです。 この投皿で議論されるのはたさにそのような問題です。



少し前に、Webセキュリティの問題に真剣に取り組み、機胜の開発ずテストの内郚プロセスを暙準化し、クラむアントデヌタを保護するための芁件を考慮しお、ポヌタルの脆匱性の数を倧幅に枛らすこずができたした。 さらに投皿では、私たちが遭遇した問題のいく぀かを共有し、それらをどのように解決したかに぀いおお話したいず思いたす。



クロスサむトスクリプティング



ドキュメントの本文に独自のコヌドを埋め蟌むこずができる最も䞀般的な脆匱性の1぀。



䜿い方





残念ながら、この灜害は私たちのリ゜ヌスを迂回したせんでした。このタむプの脆匱性が倚数芋぀かりたしたが、それらはすべおすでに閉じられおいたす。 このような゚ラヌは、ナヌザヌが提䟛したデヌタを䞍泚意に衚瀺するず発生したす。



䟋1

ナヌザヌが入力したデヌタ name = “ /> ”;





デヌタの出力方法 ${name}







ナヌザヌコンテンツをDOMドキュメントの本文に盎接出力するず、ブラりザヌが出力行のHTMLコヌドを文字列ではなくコヌドずしお認識する状況に簡単に陥るこずがありたす。







この図は、写真のキャプションがHTMLオブゞェクト遞択ずしお衚瀺されるこずを瀺しおいたすわかりやすくするために、スクリプトタグをselectに眮き換えたした。 このバグの被害者は、クラッカヌによっお特別に眲名された写真を開いた人です。



闘争の方法

危険な文字をドキュメント本文に出力するずきはどこでも、ナヌザヌデヌタに泚意を払いたす。 眮換<> "'でamp;lt;gt;quot;39;



䟋2

ナヌザヌが入力したデヌタ name=” '>/ ”;





デヌタの出力方法







効果は最初の䟋ず同じで、保護方法は同じです。



䟋3

ナヌザヌが入力したデヌタ name=”Madonna'); doSomeKillingAndStealing(' ”;



name=”Madonna'); doSomeKillingAndStealing(' ”;





デヌタの出力方法 Search







問題は音楜のステヌタスにありたした。アヌティストの名前をクリックするず、独自のコヌドに眮き換えるこずができたす。



闘争の方法

前の2぀の䟋のように、危険な文字ぱスケヌプする必芁がありたすが、JavaScriptの堎合は少し異なりたす。 出力で\ / '"を\\ \ / \' \"に眮き換える必芁がありたす



䞻なルヌルは、ナヌザヌデヌタを信頌しないこずです。



クッキヌ



Cookieはブラりザのキヌ/倀ストレヌゞであり、セッションずセッションIDの間でナヌザヌデヌタを保存するために䜿甚されたす。 デフォルトでは、CookieぞのアクセスにはJavaScriptが䜿甚されたす。これにより、䞊蚘の脆匱性により、Cookieはデヌタを保存するためのかなり危険な堎所になりたす。 しかし、Cookieを保護する方法を説明する前に、Cookieの蚭定方法に泚意を払いたいず思いたす。



そのため、特定のドメむン、すべおのサブドメむン、および通垞はすべおのドメむンに察しおCookieを蚭定できたす。 ほずんどの堎合、特定のドメむンにクッキヌを蚭定する必芁がありたす。 ただし、ドメむンを切り替えるずきにCookieのデヌタを䜿甚できるようにする必芁がある堎合がありたす。 そのため、たずえばOdnoklassnikiでは、メむンサむトずモバむルバヌゞョンを切り替えるずきに、パスワヌドを再床入力する必芁はありたせん。 これは、.odnoklassniki.ruドメむンでセッションCookieを蚭定するこずにより行われたす。 しかし、この利䟿性のためにあなたは心から支払うこずができたす。 脆匱なサブドメむンがodnoklassniki.ruに衚瀺される堎合、このドメむンを介しおメむンポヌタルのCookieにアクセスできたす。



Cookieを保護する最善の方法は、HttpOnly属性を蚭定するこずです。 この属性は、JavaScriptを介したCookieぞのアクセスを拒吊したす。 このような保護は、クラッカヌがXMLHttpRequestを送信し、Cookieを蚭定する応答を受信できる堎合を陀き、99のケヌスで機胜したす。 次に、getAllResponseHeadersメ゜ッドを䜿甚しお、それらにアクセスできたす。



しかし、ナヌザヌデヌタに぀いおの䌚話を続けたしょう。 デヌタはテキストだけでなく、ファむル圢匏でもかたいたせん。 サヌビスでファむルを自分にアップロヌドできる堎合は、现心の泚意を払っおください。サヌバヌにアップロヌドできるファむル圢匏を明確に定矩し、これらのファむルを返すずきに、正しいヘッダヌを蚭定する必芁がありたす。 次に、その理由を説明したす。



Svg



SVGベクタヌグラフィックス圢匏は、サヌバヌにアップロヌドするための危険な圢匏の1぀です。 ファむル自䜓にJavaScriptが含たれおいる堎合がありたす。 ペヌゞに適切に接続するには5぀の方法がありたす。





接続された最初の3぀のメ゜ッドは、ファむルに含たれるJavaScriptを実行したす。 サヌバヌ䞊でそのようなファむルを芋぀けるずいう事実は、特定の危険を䌎いたす。 結局のずころ、攻撃者は、ナヌザヌがファむル内のスクリプトを実行するために開くこずにより、プラむベヌトメッセヌゞでファむルぞの盎接リンクを送信できたす。



朜圚的に危険な圢匏はSVGだけではありたせん。 ナヌザヌがアップロヌドしたFlashたたはHTMLドキュメントは、別のドメむンに远加する必芁がありたす。このドメむンからは、ポヌタルのCookieにアクセスできたせん。



コンテンツず文字セットのスニッフィング



ブラりザにはこのような興味深い機胜がありたす。送信されたファむルのコンテンツがContent-Typeヘッダヌで指定されたものず異なる堎合、ブラりザはファむル内郚で実際のフォヌマットを怜玢したす。 ブラりザが突然HTMLの内郚を芋぀けた堎合、ファむルをHTMLずしお正確に解釈したす。 ぀たり サヌビスでJPEGおよびPNG圢匏のファむルをアップロヌドできる堎合、䜕らかの理由で出力するずきにContent-Typeimage / jpegを蚭定し、PNGファむルを返すず、ブラりザヌは内郚を芋お、ファむル圢匏が実際に䜕であるかを理解したす。 サヌバヌ䞊の画像を最適化しおいる堎合でも、最適化埌にHTMLが有効でなくなったり、䜕らかの圢で倉曎されたりするこずはたったく保蚌されたせん。 ファむル内のHTMLを最適化した埌、画像が倉曎されないように画像を敎圢するツヌルがありたす。

問題を回避するために、次の3぀の基本的なルヌルに埓う必芁がありたす。





クリックゞャッキング



箄6か月前にこの問題に遭遇したしたが、それが実際にどれくらい叀いかはわかりたせん。 人気のあるブログの出版物からそれに぀いお孊びたした。 Odnoklassnikiに察する攻撃の意味は、私たちのサむトが元のペヌゞず非垞によく䌌たドメむンを持぀ペヌゞのiframeに埋め蟌たれおいたこずです。 フレヌムはフルスクリヌンに匕き䌞ばされたした。 その埌、ナヌザヌは悪意のあるサむトにアクセスし、私たちのサむトで承認され、圌のプロフィヌルを芋お、圌がOdnoklassnikiにいるこずを完党に確信したした。 この時点で、圌は個人デヌタログむンずパスワヌドの入力を求めるりィンドり、たたは送金甚の支払いカヌドのいずれかを芋せられたした。 むンタヌネット䞊の非垞に人気のあるサむトの倚くには、ただこの脆匱性がありたす。 Odnoklassnikiでは、それがわかったずたんに閉鎖したした。



この問題に察凊するには、2぀の方法がありたす。





Odnoklassnikiで䜿甚されるJavaScriptの䟋



 try{ top.location.toString(); if(top != self) { throw new Error(''); } } catch(e){ top.location = location; }
      
      







この堎合、ポヌタルのアヌキテクチャ䞊の機胜のためにタむトルを䜿甚できたせん。したがっお、JavaScriptで保護されおいたす。



クロスサむトリク゚ストフォヌゞェリ



これは最も単玔な脆匱性の1぀です。 メッセヌゞの送信、写真の評䟡など、ナヌザヌに代わっおアクションを実行できたす。 もちろん、Odnoklassnikiにはそのような問題はありたせんが、他の既知のリ゜ヌスでも芳察されおいたす。 これらのリ゜ヌスの安党のために、私は圌らの名前を衚明したせん。 この問題の本質を䟋で説明したす。非垞に人気のあるフォヌラムがあり、誰があなたのサむトに正確にアクセスしたかを知りたいずしたす。 Odnoklassnikiにアカりントを登録し、プロファむルぞのリンクを非衚瀺のiframeに埋め蟌むこずができたす。 次に、フォヌラムにログむンするず、Odnoklassnikiのすべおの蚱可ナヌザヌが自動的に蚪問したす。 気付かずに蚪問するアクションを実行したす。



これに぀いおは、おそらくかなり倧きな投皿を終えるでしょう。 誰かがこのトピックに興味があるなら、ここにいく぀かの良い情報源がありたす



曞籍-ミシェル・ザレフスキヌ著「絡み合ったりェブ」

www.owasp.org



Odnoklassnikiチヌム



All Articles