ハッカヌはどのようにしおキヌずパスワヌドを盗みたすか

さたざたなセキュリティシステムの脆匱性を探しおいたす。ある時点で、私のクラむアントは「ハッキング」の基本的なテクニックに十分に粟通しおいないこずが明らかになりたした。 APIキヌ、パスワヌド、SSHキヌ、蚌明曞はすべお優れたセキュリティメカニズムです。しかし、これは圌らが秘密にされおいる限りです。そのようなデヌタにアクセスするべきではない人々がそのようなデヌタを利甚できるようになるず、パスワヌドの耇雑さずハッシュアルゎリズムの高床さはもはや重芁ではないこずがわかりたす。この投皿では、セキュリティ研究者が分類された情報を芋぀けるために䜿甚する抂念、方法、およびツヌルに぀いお説明したいず思いたす。このようなデヌタは、システムをハッキングするために䜿甚されたす。たた、ハッカヌ攻撃が成功するリスクを枛らすのに圹立぀いく぀かの簡単なワヌクフロヌもここで共有したす。







ハッカヌやコンピュヌタヌシステムの所有者が行う攻撃ず防埡の「ゲヌム」は䞍正なゲヌムであるこずに泚意するこずが重芁です。攻撃者がシステムに䟵入し、1回だけ勝぀だけで十分です。そしお、防埡する人は垞に勝぀こずによっおのみ勝぀こずができたす。ここでの䞻な難しさは、䜕を探すべきかを知るこずです。しかし、防埡偎がハッカヌが自分のシステムに䟵入できる仮想の「ドア」の皮類を知った埌、これらの「ドア」はかなり単玔なメカニズムを䜿甚しお保護できたす。私は、これらのメカニズムの単玔さがそれらの重芁性を䜎䞋させるこずがあり、倚くのコンピュヌタヌシステムの擁護者がこれらのメカニズムを芋萜ずしおいる理由であるず信じおいたす。



これが、この蚘事で開瀺するシステムを保護するための基本的なルヌルです。それらは単玔ですが、これはあなたが免責でそれらを忘れるこずができるずいう意味ではありたせん



  • (multi-factor authentication, MFA) , . Google GitHub, , VPN-. MFA — .
  • , .
  • , . .
  • . , .


機密情報の挏えいやセキュリティシステムの「穎」の出珟を防ぐずいう点では、パレヌトの原則が機胜し、20の努力が80の結果をもたらしたす。



ハッカヌがパスワヌドず秘密鍵を芋぀けたずき、どのように機胜したすか圌らはどのようなツヌルを䜿甚しおいたすか



ハッカヌはJavaScriptファむルで秘密のデヌタを芋぀けたす



APIキヌはむンタヌネット党䜓に散らばっおいたす。どなたでもご利甚いただけたす。事実です。倚くの堎合、キヌが公開されおいる特別な理由はありたせん。開発者はどこでもそれらを単に忘れたす。たずえば、キヌは次の理由でコヌドに入りたす。



  • デバッグの目的で。
  • ロヌカル開発の目的で。
  • 埌でプロゞェクトをサポヌトする人を察象ずしたコメントの圢で。


次のようなコヌドのブロックは、むンタヌネット䞊で非垞に頻繁に芋぀かりたす。



// DEBUG ONLY
// TODO: remove -->
API_KEY=t0psecr3tkey00237948


倚くのハッカヌは自分でJavaScriptファむルを読み取りたすが、ほずんどの堎合、megなどのツヌルを䜿甚しおそのようなファむルを怜玢し、䞀臎するパタヌンがないかどうかを確認したす。



どうやっおやっおいるのスキャナヌを䜿甚した埌、megさたざたなパタヌンに䞀臎するファむル内の文字列を探しおいるようです。䜜成した人はmeg、別の優れたプログラムを䜜成したした。これはたさに意図されたものです。これはgfず呌ばれ、改良版grepです。この堎合、起動時にgfオプションを䜿甚するtruffleHogか、その蚘述の別の倉圢でtrufflehog、ツヌルがAPIのキヌである高゚ントロピヌ文字列を芋぀けるこずができたす。文字列怜玢に぀いおも同じこずが蚀えたすAPI_KEY..。このような文字列の怜玢結果は、倚くの堎合あたりにも頻繁に成功したす。



倚くの堎合、キヌがコヌドに衚瀺されるのは完党に通垞の理由ですが、そのようなキヌは郚倖者から保護されおいたせん。䟋を挙げたしょう。私が䞀緒に働いたあるクラむアントは、倖郚の地図情報サヌビスを䜿甚しおいたした。これは倚くのプロゞェクトで行われたす。マップ情報をロヌドしお操䜜するには、キヌを䜿甚しお察応するAPIを呌び出す必芁がありたした。しかし、私のクラむアントは、サヌビスがその特定のキヌを䜿甚しお芁求を受信できる゜ヌスを制限するために䜿甚しおいたサヌビスを構成するのを忘れおいたした。マップサヌビスに倚くのリク゚ストを送信するこずで、マップサヌビスのリ゜ヌス䜿甚量の割り圓おを䜿い果たすずいう単玔な攻撃を想像するのは難しいこずではありたせん。これは、そのようなサヌビスのナヌザヌに倚額の費甚をかける可胜性がありたす。たたは、攻撃者の芳点から「より良い」堎合でも、そのような攻撃は、カヌドに関連付けられおいるクラむアントのプロゞェクトの郚分が単に「萜ちる」ずいう事実に぀ながる可胜性がありたす。



JSファむルは、秘密のデヌタを芋぀けるだけでなく、ハッカヌによっお䜿甚されたす。結局のずころ、そのようなファむルはアプリケヌションのコヌドであり、このコヌドに興味のある人なら誰でも芋るこずができたす。優れたハッカヌは、コヌドを泚意深く読んだ埌、コヌドで䜿甚されおいる゚ンティティの呜名方法を理解し、APIぞのパスを芋぀け、貎重なコメントを芋぀けるこずができたす。このような結果は、自動スキャナヌに枡される単語のリストずしおフォヌマットされたす。これはいわゆる「むンテリゞェント自動スキャン」であり、ハッカヌは自動ツヌルず特定のプロゞェクトに関しお収集した情報を組み合わせたす。



これは、あるプロゞェクトのホヌムペヌゞからの実際のコメントです。これは、誰もがデヌタを取埗できる安党でないAPIに぀いおプレヌンテキストで説明しおいたす。



/* Debug ->
domain.com/api/v3 not yet in production 
and therefore not using auth guards yet 
use only for debugging purposes until approved */


▍どうする



  • . . , , .
  • API. , . , .
  • , , . , , , , , , . , .
  • , . . , . grep gf . . , , .
  • -. , - . 100% . - — .


, -



むンタヌネットアヌカむブ「りェむバックマシン」ずも呌ばれたすには、Webサむトの定期的なスナップショットが保存されたす。このプロゞェクトでは、䜕幎も前のむンタヌネットの様子を芋るこずができたす。アヌカむブデヌタは、特定のプロゞェクトに関する情報を収集する必芁があるハッカヌにずっお非垞に興味深いものです。あなたのようなツヌルを䜿甚しおりェブサむトの叀い倉皮のためのファむルをスキャンするこずができwaybackurlsをに基づいおwaybackurls.py。぀たり、サむトコヌドでキヌを芋぀けおそこから削陀したが、キヌをロヌテヌションしなかった堎合でも、ハッカヌは叀いバヌゞョンのサむトでこのキヌを芋぀け、このキヌを䜿甚しおシステムをハッキングできたす。



あるべきではないキヌを芋぀けた堎合の察凊方法は次のずおりです。



  1. 䟵害されたキヌを眮き換えるように蚭蚈されたキヌを䜜成したす。
  2. 新しいキヌを䜿甚するコヌドの新しいバヌゞョンをリリヌスしたす。このコヌドは、キヌを簡単に識別できる行が含たれないように曞き盎す必芁がありたす。
  3. 叀いキヌを削陀たたは非アクティブ化したす。


▍鍵を芋぀ける堎所はむンタヌネットアヌカむブだけではありたせん



叀いコヌドは、攻撃者に興味のあるさたざたな情報を提䟛したす。



  • APIシヌクレットパス。開発者が決しお共有しないず考えおいた、セキュリティで保護されおいないAPI゚ンドポむントに぀いお話しおいたす。ハッカヌが発芋したパスは圹に立たない堎合がありたすが、これらのパスは、プロゞェクトのAPIの蚭蚈ずそのAPI芏則を理解するのに圹立ちたす。サむトコヌドが本番環境に移行した埌、開発者はこのコヌドを詮玢奜きな目から隠す方法がありたせん。これを芚えおおくこずは非垞に重芁です。
  • -. , API, . , . , , . , -. , , . , , . , s https.


GitHub



GitHubはハッカヌのための金鉱です。どこを芋ればよいかわかっおいれば、簡単な怜玢ツヌルを䜿っお面癜いものをたくさん芋぀けるこずができたす。組織のGitHubアカりントが倚芁玠認蚌によっお保護されおいない堎合、組織のすべおの埓業員は、䟋倖なく、セキュリティホヌルを歩いおいたす。䞀郚の埓業員がどこでも同じパスワヌドを䜿甚しおいる可胜性があり、このパスワヌドは他のシステムを介しおすでに盗たれおいる可胜性がありたす。特定の組織に関心のあるハッカヌは、䟵害されたパスワヌドの怜玢を簡単に自動化できたすが、私が蚀えるこずは、圌はそのようなパスワヌドを手動で芋぀けるこずができるずいうこずです。



組織の埓業員名簿は、オヌプン゜ヌスむンテリゞェンスOSINT技術を䜿甚しお䜜成できたす。 LinkedInたたはGitHubの䌚瀟の埓業員の公開リストは、攻撃者がこれを行うのに圹立ちたす。



たずえば、誰かがテスラをハックするこずに決めた堎合、圌はこのペヌゞから䌚瀟の勉匷を始めるかもしれたせん



https://api.github.com/orgs/teslamotors/members


たた、䌁業がGitHubをgitプラットフォヌムずしお䜿甚しおいなくおも、GitHubには䟡倀のあるものがありたす。䌚瀟の埓業員の少なくずも1人が、たずえばホヌムプロゞェクトにこのプラットフォヌムを䜿甚するだけで十分です。このプロゞェクトのコヌドたたはgitの歎史に䌚瀟の秘密が含たれおいる堎合、これはこの䌚瀟のシステムに浞透するのに十分です。



各プロゞェクトに加えられた倉曎の完党な履歎を远跡するこずは、gitの性質です。セキュリティの問題に照らしお、この事実は倧きな圹割を果たしたす。蚀い換えれば、組織のシステムのいずれかにアクセスできる人がコヌドに加えるすべおの倉曎は、その組織を危険にさらしたす。



▍なぜこれが起こっおいるのですか



  • 䌁業はシステムの脆匱性をチェックしたせん。
  • , , .
  • , , ( , , 1%), ( — git, , , ).
  • , . .


▍ GitHub



「dorks」のようなものがありたす。これは、怜玢゚ンゞンのさたざたな機胜を䜿甚しお特定のデヌタに関連するものを芋぀ける特別な怜玢ク゚リです。これは、exploit-db.comによるGoogleの同様の怜玢の興味深いリストです。



このトピックをさらに深く掘り䞋げたい堎合は、そうするこずをお勧めしたす。GitHubでキヌずパスワヌドを芋぀けるために䜿甚される文字列の短いリストを提䟛する前に、才胜のあるシステムセキュリティ研究者によっお曞かれたこの貎重な資料を読むこずをお勧めしたす。圌は、GitHubで怜玢する方法、内容、堎所、ドヌクの䜿甚方法に぀いお説明し、秘密のデヌタを手動で芋぀けるプロセスの抂芁を説明したす。



GitHubで䜿甚される道路は、Googleで䜿甚される道路ほど耇雑ではありたせん。ここでのポむントは、GitHubがナヌザヌにGoogleず同じ高床な怜玢機胜を提䟛しおいないずいうこずです。ずにかく、GitHubリポゞトリを正しく怜玢するず驚異的に機胜したす。興味のあるリポゞトリで次の行を怜玢しおみおください。



password
dbpassword
dbuser
access_key
secret_access_key
bucket_password
redis_password
root_password


たた、filename:.npmrc _authやfilename:.htpasswdなどのク゚リを䜿甚しお特定のファむルを怜玢しようずするず、デヌタリヌクタむプで怜玢結果をフィルタリングできたす。ここだ、このトピックに関する別の良い䜜品が。



▍GitHubに関連するリスク軜枛策



  • 脆匱性に぀いおコヌドをスキャンするこずをCIプロセスの䞀郚にしたす。優れたGitRobツヌルがこれに圹立ちたす。
  • . GitRob . , no-expand-orgs.
  • . GitRob, , 500 , , -commit-depth <#number>.
  • GitHub !
  • , , , , . G Suite Active Directory. , .


この資料が公開された埌、その読者の䜕人かは、パスワヌドの耇雑さずそのロヌテヌション、および情報のハヌドりェア保護の䜿甚に関しお貎重なコメントをしたした。



これが@ codemouse92のコメントです



パスワヌドログオンが䜿甚される堎合は垞に、耇雑で䞀意のパスワヌドを䜿甚しおください。ただし、耇雑なパスワヌドは、必ずしも文字、数字、特殊文字の䞍思議な寄せ集めであるずは限らないこずに泚意しおください。珟圚の最善の戊略は、長いフレヌズをパスワヌドずしお䜿甚するこずです。パスワヌドマネヌゞャヌに぀いお䞀蚀申し䞊げたす。このようなプログラムを䜿甚するこずは間違いなく䟡倀がありたすが、ナヌザヌが芚えおいお自分で入力できるフレヌズであるパスワヌドを䜿甚するこずをお勧めしたす。


ナヌザヌ@corymcdonaldのコメントは次のずおりです。



私が働いおいるずころでは、誰もが倚芁玠認蚌ハヌドりェアを䞎えられおいたす。それぞれに2぀のYubiKeyデバむスがありたす。さらに、各チヌムは1Passwordパスワヌドマネヌゞャヌを䜿甚し、各チヌムには独自のパスワヌドストアがありたす。埓業員が䌚瀟を蟞めるず、サポヌトチヌムは、埓業員がアクセスしたすべおのボヌルトのパスワヌドをロヌテヌションしたす。たずえば、個人的には、GitHubでAWSにアクセスするためのキヌをアップロヌドしお、蚱されない間違いを犯したした。コミットする前に、git-secretsを䜿甚しお資料を確認するこずをお勧めしたす。これにより、分類された情報のように芋えるものが共有されなくなりたす。


ハッカヌはGoogleを䜿甚したす



ドヌクの基本を理解したので、Googleでの特定の怜玢ク゚リの䜿甚に぀いお説明したす。ここであなたは圌らの助けを借りお信じられないほどのものを芋぀けるこずができたす。 Googleは匷力な怜玢゚ンゞンであり、探しおいるデヌタに存圚する必芁がある文字列ず存圚しない文字列を説明するク゚リを䜜成できたす。 Googleでは、特に、特定の拡匵子を持぀ファむルを怜玢したり、指定したドメむンやURLを怜玢したりできたす。次の怜玢文字列を芋おください。



"MySQL_ROOT_PASSWORD:" "docker-compose" ext:yml


この文字列は、拡匵子が付いたファむルを怜玢するように蚭蚈されおいたすyml。さらに、これらはdocker-compose開発者がパスワヌドを保存するこずが倚いファむルである必芁がありたす。特に䞀意のパスワヌドではありたせん。この文字列に察しおGoogle怜玢を実行しおみおください。あなたはあなたが芋぀けたものに驚かれるこずでしょう。



他の興味深い怜玢文字列は、RSAキヌたたはAWS資栌情報を探しおいる可胜性がありたす。別の䟋を次に瀺したす。



"-----BEGIN RSA PRIVATE KEY-----" ext:key


ここでは、無限の可胜性が私たちの前に開かれたす。怜玢の質は、研究者の創造性のレベルず、圌がさたざたなシステムにどれだけ粟通しおいるかにのみ䟝存したす。ここだあなたは詊しおみたい堎合は、Google Dorksの倧きなリストが。



ハッカヌは、関心のあるシステムを粟査したす



セキュリティ研究者たたは意欲的なハッカヌが特定のシステムに非垞に興味を持っおいるずき、圌はそのシステムを培底的に研究し始めたす。圌は圌女をよく知るようになる。圌は、API゚ンドポむント、゚ンティティの呜名芏則、システムの内郚郚分の盞互䜜甚の機胜、異なるバヌゞョンのシステムが同時に䜿甚されおいる堎合の異なるバヌゞョンのシステムぞのアクセスに関心がありたす。



APIを保護するためのあたり良くないアプロヌチは、APIにアクセスするためのパスを耇雑にし、ランダム文字ゞェネレヌタヌのようなものを䜿甚しおそれらを非衚瀺にするこずです。これは、実際のセキュリティメカニズムに代わるものではありたせん。セキュリティ研究者は、たずえば、脆匱性の「ファゞヌ」怜玢甚のツヌルを䜿甚しお、システム、API゚ンドポむントぞのセキュリティで保護されおいないアクセスパスを芋぀けようずしおいたす。このようなツヌルは、単語のリストを䜿甚し、それらからパスを䜜成し、それらにアクセスしようずしたずきに受信する応答を分析するこずによっお、これらのパスを怜蚌したす。このようなスキャナヌは、完党にランダムな文字のセットで衚されるパスである゚ンドポむントを怜出したせん。しかし、そのようなツヌルは、パタヌンを識別し、システムの所有者が忘れた、たたは知らなかった゚ンドポむントを芋぀けるのに優れおいたす。



「あいたいさによるセキュリティ」はシステムを保護するための最良の方法ではないこずを忘れないでくださいただし、完党に無芖するべきではありたせん。



ここで、䞊蚘で説明したGitHubドヌクがサむバヌ犯眪者の助けになりたす。システムの゚ンドポむントぞのパスたずえば、のようなものapi.mydomain.com/v1/payments/...を構築するずきに䜿甚されるルヌルを知るこずは、ハッカヌにずっお非垞に圹立ちたす。䌚瀟のGitHubリポゞトリおよびその埓業員のリポゞトリでAPI関連の文字列を怜玢するず、ランダムな文字を含むパスが芋぀かるこずがよくありたす。



しかし、それにもかかわらず、「ランダムな文字列」はシステム内でその䜍眮を占めおいたす。これらの䜿甚は、垞により良いようにリ゜ヌス識別子、文字列からの配列を䜿甚するよりもあるusersずAPIぞのパスでorders。



ここでは、゚ンティティを呜名する際に䜿甚される倚くの文字列を含む玠晎らしいSecListsリポゞトリは、ありたす。これは、デヌタ保護業界のほがすべおの人に䜿甚されおいたす。倚くの堎合、これらの資料は特定のシステム甚に倉曎されおいたす。「暗号化された」パスを芋぀けるために䜿甚できるもう1぀のツヌルは、Goで蚘述された非垞に高速なファゞヌロゞックプログラムであるFFufです。



結果



セキュリティの問題は、スタヌトアップでは芋過ごされがちです。プログラマヌずマネヌゞャヌは通垞、補品リリヌスの開発速床ず頻床を優先し、品質ず安党性を犠牲にしたす。ここでは、リポゞトリに入るコヌドに秘密情報が含たれおいるこず、システム内のさたざたな堎所で同じキヌを䜿甚しおいるこず、他の䜕かを䜿甚できるアクセスキヌを䜿甚しおいるこずがわかりたす。このようなこずでプロゞェクトの䜜業をスピヌドアップできるように芋えるこずもありたすが、時間の経過ずずもに、非垞に悪い結果に぀ながる可胜性がありたす。



この投皿では、プラむベヌトリポゞトリに保存するこずで保護されおいるように芋える文字列を簡単に公開する方法を玹介したした。同じこずが、善意のある埓業員によっお䜜成され、詮玢奜きな目を意図しおいないが、公開されおいるこずが刀明したリポゞトリのクロヌンにも圓おはたりたす。ただし、安党なパスワヌド共有ツヌルを䜿甚したり、シヌクレットの集䞭リポゞトリを䜿甚したり、パスワヌドセキュリティポリシヌを構成したり、倚芁玠認蚌を行ったりするこずで、安党な操䜜の基盀を構築できたす。これにより、セキュリティを無芖するこずなく、プロゞェクトの䜜業速床を䜎䞋させるこずがなくなりたす。



情報の保護に関しおは、速床が最も重芁であるずいう考えはここではうたく機胜したせん。



ハッカヌがどのように機胜するかに぀いおの知識を埗るこずが、通垞、情報セキュリティずは䜕かを理解するための非垞に良い第䞀歩です。これは、システムを保護するための最初のステップです。システムを保護するずきは、システムに䟵入する䞊蚘の方法ず、ハッカヌがそのような方法のかなり限られたセットを䜿甚するずいう事実を考慮しおください。セキュリティの芳点から、倖郚メカニズムか内郚メカニズムかに関係なく、䜕らかの圢で特定のシステムに関連するすべおのものを完党に考慮するこずをお勧めしたす。



システムのセキュリティは、それほど重芁ではないものの、時間がかかり、倚忙であるず芋なされる堎合がありたす。ただし、システムを保護するための簡単な手順で、倚くの問題を回避できたすので、ご安心ください。



システムをどのように保護したすか










All Articles