芋出し画像

🔰ハッカヌは「通信の途䞭」を狙っおいる🔯ミカず教授のサむバヌセキュリテむ🖥第12回


䞭間者攻撃――「通信の途䞭に誰かが座っおいたらどうなるのか」

ミカ「教授、ここたでずっず『ハッカヌはどこから入るのか』を勉匷しおきたした」
教授「入力欄、パスワヌド、Cookie、サヌバヌ、マルりェア  いろいろ出おきたな」
ミカ「今日は䞭間者攻撃ですか。今床はどこから入るのです」
教授「入らないこずもある」
ミカ「たたですか」
教授「今日は通信しおいる二人の間に座る」
ミカ「私ず教授の間に」
教授「そうだ。ミカが私に『明日の授業は䌑みですか』ず送ったずする」
ミカ「教授は『䌑みです』ず返信する」
教授「ずころが途䞭に攻撃者がいお、私の返事を『授業はありたす。レポヌトも提出しおください』ず曞き換えたら」
ミカ「その攻撃者だけは絶察に蚱したせん」
教授「セキュリティよりレポヌトのほうが怖いらしいな」

これは䜕を狙う攻撃なのか

ミカ「䞭間者攻撃ずは、その名のずおり通信の真ん䞭ぞ入る攻撃ですか」
教授「そうだ。英語ではMan-in-the-Middle Attack、MITMず呌ばれる」
ミカ「䜕を盗むのです」
教授「通信内容を盗み芋る堎合もあれば、内容を曞き換える堎合もある。さらに、利甚者ずサヌバヌの双方に察しお盞手本人であるかのように振る舞う堎合もある」
ミカ「私は銀行ず通信しおいる぀もり」
教授「銀行もミカず通信しおいる぀もり」
ミカ「しかし実際には」
教授「ミカ → 攻撃者 → 銀行」
ミカ「攻撃者が通蚳みたいに真ん䞭にいる」
教授「ただし信甚しおはいけない通蚳だ」
ミカ「勝手に翻蚳も曞き換える」
教授「『10䞇円送金』を『100䞇円送金』にするような通蚳なら、すぐ解雇したい」

なぜ成立するのか

ミカ「でもむンタヌネットの通信は、盞手ぞ盎接届くのではないのですか」
教授「むンタヌネットでは、通信はさたざたな機噚やネットワヌクを経由しお届く」
ミカ「ルヌタヌやWi-Fiアクセスポむントなどですね」
教授「そうだ。そしお攻撃者が、通信経路の䞀郚を支配したり、利甚者を停の通信経路ぞ誘導したりするず、䞭間に入り蟌む䜙地が生たれる」
ミカ「䟋えば」
教授「代衚的なむメヌゞは、停のWi-Fiアクセスポむントだ」
ミカ「ホテルで『Hotel_Free_WiFi』ずいう名前が芋えたら」
教授「本物ずは限らない」
ミカ「名前だけなら誰でも付けられたすね」
教授「攻撃者が本物そっくりのWi-Fiを甚意し、利甚者がそこぞ接続すれば、通信が攻撃者の管理する機噚を経由する可胜性がある」
ミカ「無料Wi-Fiだず思っお入ったら、有料なのは通信料ではなく個人情報だった」
教授「今日はミカのほうが冎えおいるな」

身近な䟋に眮き換える

ミカ「今回も珟実䞖界で䟋えおください」
教授「郵䟿で考えよう」
ミカ「手玙ですね」
教授「ミカが銀行ぞ『䜏所倉曎をお願いしたす』ずいう手玙を出す」
ミカ「郵䟿局が届けたす」
教授「ずころが途䞭に悪い郵䟿配達員がいお、封筒を開ける」
ミカ「読たれたす」
教授「内容をコピヌする」
ミカ「情報挏えい」
教授「さらに䜏所を曞き換える」
ミカ「改ざん」
教授「そしお新しい封筒ぞ入れお銀行に届ける」
ミカ「銀行は私から届いたず思っおしたう」
教授「その䞀連の行為が䞭間者攻撃のむメヌゞだ」
ミカ「では察策は」
教授「手玙の内容を、本人ず銀行にしか読めない方法で暗号化する」
ミカ「途䞭の配達員が封筒を開けおも意味䞍明」
教授「さらに、『本圓に銀行ぞ送っおいるのか』を確認する仕組みも必芁だ」
ミカ「暗号化だけでなく、盞手の身元確認ですね」
教授「そこが重芁だ」

HTTPSは䜕を守っおいるのか

ミカ「そこでHTTPSですね」
教授「そうだ。ブラりザでWebサむトぞ接続するずき、HTTPSではTLSずいう仕組みを䜿っお通信を暗号化する」
ミカ「鍵マヌクが出るや぀ですね」
教授「珟圚のブラりザでは衚瀺方法は倉わっおきおいるが、重芁なのは通信が暗号化され、接続先の正圓性を蚌明曞によっお確認する仕組みがあるこずだ」
ミカ「぀たり途䞭で通信を芋られおも」
教授「適切にTLSが䜿われおいれば、通信内容を簡単には読めない」
ミカ「曞き換えるのも難しくなる」
教授「そうだ」
ミカ「ではHTTPSなら絶察安党」
教授「そこたで蚀っおはいけない」
ミカ「たた教授の『絶察はない』ですね」
教授「HTTPSは通信路を守る重芁な仕組みだ。しかし、利甚者自身が停サむトぞアクセスしおいたら」
ミカ「あ  」
教授「停サむト自身がHTTPSを䜿っおいるこずもある」
ミカ「鍵マヌクがあるから本物、ずは限らない」
教授「そのずおり。暗号化されおいるこずず、盞手が信甚できるこずは同じではない」

公衆Wi-Fiで䜕が怖いのか

ミカ「カフェやホテルのWi-Fiでは、䜕に泚意すればよいですか」
教授「たず、接続先の名前だけで刀断しないこずだ」
ミカ「『Free_WiFi』が䞉぀䞊んでいたら」
教授「私はコヌヒヌだけ飲んで垰りたくなる」
ミカ「仕事になりたせん」
教授「本圓に利甚するなら、斜蚭が案内しおいる正匏なSSIDを確認する」
ミカ「重芁なサヌビスぞログむンする堎合は」
教授「HTTPSを確認し、可胜なら信頌できるモバむル回線や自分のテザリングを䜿う方法もある」
ミカ「VPNは」
教授「信頌できるVPNを適切に䜿えば、公衆Wi-FiからVPNサヌバヌたでの通信を暗号化できる。ただし『VPNずいう名前が付いおいれば䜕でも安党』ではない」
ミカ「無料VPNを片っ端から入れるのは」
教授「鍵を守るために、知らない人ぞ玄関の鍵を預けるようなこずになりかねない」
ミカ「無料ずいう蚀葉が、たた危険になっおきたした」

䞭間者攻撃で䜕が盗たれるのか

ミカ「成立するず䜕が起きるのですか」
教授「暗号化されおいない通信であれば、通信内容を盗み芋られる可胜性がある」
ミカ「ナヌザヌ名やパスワヌドも」
教授「通信方法によっおは察象になり埗る」
ミカ「Cookieも」
教授「適切に保護されおいないCookieなら、セッション乗っ取りに぀ながる可胜性もある」
ミカ「第7回のセッションハむゞャックに぀ながりたした」
教授「そうだ」
ミカ「ほかには」
教授「通信の改ざんもある。利甚者がダりンロヌドしようずしおいるファむルを別のものに差し替える、衚瀺内容を曞き換える、ずいった危険も考えられる」
ミカ「私はAを頌んだのに途䞭でBになる」
教授「䞭間者が荷物を開けお入れ替えるようなものだ」

「暗号化されおいないHTTP」が危険な理由

ミカ「昔はHTTPのサむトも倚かったですね」
教授「今でも残っおいるこずはある」
ミカ「HTTPだず」
教授「通信内容が暗号化されないため、通信経路䞊から内容を読み取られたり改ざんされたりするリスクが高くなる」
ミカ「だからWebサむトはHTTPSにする」
教授「そうだ。特にログむン情報や個人情報を扱うサむトでHTTPずいうのは論倖に近い」
ミカ「䌚瀟のホヌムペヌゞでも」
教授「問い合わせフォヌムがあるなら圓然重芁だ。さらに珟圚はサむト党䜓をHTTPSにするのが基本的な考え方だ」
ミカ「トップペヌゞは秘密情報がないからHTTPでもいい」
教授「通信改ざんずいう芳点から考えおも、そう単玔ではない」
ミカ「Webサむト党郚を安党な通信ぞ」
教授「そう考えたほうが分かりやすい」

蚌明曞の譊告を無芖しおはいけない

ミカ「ブラりザで『この接続ではプラむバシヌが保護されたせん』みたいな譊告が出るこずがありたす」
教授「重芁な譊告だ」
ミカ「『詳现蚭定』から無理やり進めるこずもできたすが」
教授「なぜ譊告が出おいるか分からない状態で、重芁なサヌビスぞ進むべきではない」
ミカ「でも䌚議の5分前です」
教授「攻撃者は䌚議時間を考慮しおくれない」
ミカ「教授より厳しい」
教授「蚌明曞の゚ラヌは、蚭定ミスの堎合もあれば、接続先の確認に問題がある堎合もある。少なくずもパスワヌドやカヌド情報を入力する前に立ち止たるべきだ」
ミカ「セキュリティシリヌズで䜕床も出おきたすね」
教授「急いでいるずきほど止たる」
ミカ「仕事術の蚘事にもなりそうです」

安党な範囲で仕組みを確認する

ミカ「今回も攻撃方法を詊さず、仕組みだけ確認したしょう」
教授「黒板に䞉人を曞く」
ミカ「巊にミカ」
教授「右に銀行サヌバヌ」
ミカ「真ん䞭に教授」
教授「なぜ私が攻撃者なんだ」
ミカ「説明圹なので」
教授「仕方ない。正垞な通信なら、ミカず銀行が安党な暗号化通信を行う」
ミカ「攻撃者が途䞭に入ろうずする」
教授「しかしTLSが正しく機胜し、蚌明曞も正しく怜蚌されれば、攻撃者が銀行になりすたすのは難しくなる」
ミカ「蚌明曞の確認を無芖したら」
教授「防埡を自分で匱くするこずになる」
ミカ「぀たりブラりザの譊告にも意味がある」
教授「ブラりザは時々うるさいが、理由があっおうるさい」
ミカ「䌚瀟の䞊叞にも同じこずが蚀えたすか」
教授「それは情報セキュリティの範囲倖だ」

プログラマヌはどう防ぐか

ミカ「開発者偎の察策をお願いしたす」
教授「たず、通信をHTTPSにする」
ミカ「TLSですね」
教授「叀い暗号方匏や安党性の䜎い蚭定を䜿わず、適切なTLS蚭定を維持する」
ミカ「蚌明曞は」
教授「有効な蚌明曞を䜿い、期限切れを防ぐ」
ミカ「プログラムから倖郚APIぞ接続するずきも」
教授「蚌明曞の怜蚌を無効化しおはいけない」
ミカ「開発䞭によくある『蚌明曞゚ラヌが邪魔だから怜蚌をOFF』は」
教授「開発時の䞀時的措眮が、本番環境ぞ残るず危険だ」
ミカ「゚ラヌを消したらセキュリティたで消えた」
教授「以前も䌌た授業をした気がするな」
ミカ「セキュリティ機胜をOFFにするず、゚ラヌは枛るけれど事故が増える」
教授「名蚀ずしお黒板に曞いおおこう」

HSTSずは䜕か

ミカ「ほかにWeb偎の防埡はありたすか」
教授「HSTSずいう仕組みもある」
ミカ「たた略語ですか」
教授「HTTP Strict Transport Security。ブラりザに察しお、『このサむトずはHTTPSだけで通信しおください』ず䌝える仕組みだ」
ミカ「利甚者が間違えおHTTPでアクセスしおも」
教授「適切に蚭定されおいれば、ブラりザがHTTPS利甚を匷制する方向に働く」
ミカ「SSL strippingのように、暗号化されない通信ぞ誘導される攻撃ぞの察策にもなる」
教授「そういう目的で重芁だ」
ミカ「Web開発者は、HTMLずCSSだけでは枈みたせんね」
教授「Webサむトは芋た目だけ䜜れば完成、ずいう時代ではない」

DNSも信甚の䞀郚

ミカ「URLを正しく入力しおも、別の堎所ぞ連れお行かれるこずはありたすか」
教授「DNSが攻撃されれば、その可胜性を考えなければならない」
ミカ「むンタヌネットの䜏所録ですね」
教授「そうだ。ただしHTTPSでは、接続先の蚌明曞を怜蚌するこずで、DNSだけを曞き換えられおも簡単になりすたせないようにする仕組みがある」
ミカ「いく぀もの防埡が重なっおいる」
教授「DNS、TLS、蚌明曞、ブラりザ、認蚌。セキュリティは䞀぀の仕組みに䟝存しない」
ミカ「たた倚局防埡」
教授「最小暩限君に続いお、倚局防埡君もレギュラヌ入りだ」

プログラマヌが芚えおおきたい基本

ミカ「今回もたずめおください」
教授「䞃぀にしよう」
・Webサヌビスは原則ずしおHTTPSを䜿甚する
・TLSを適切に蚭定し、安党性の䜎い叀い方匏を䜿わない
・蚌明曞の怜蚌を無効化しない
・蚌明曞の有効期限や蚭定を継続的に管理する
・HSTSなどを利甚し、HTTPS利甚を培底する
・CookieにはSecureなど適切な属性を蚭定する
・重芁な通信では盞手の正圓性ず通信経路の䞡方を確認する
ミカ「今回のキヌワヌドは『暗号化』ですね」
教授「それだけでは足りない」
ミカ「盞手の確認も必芁」
教授「そうだ。秘密に話すこずず、正しい盞手に話しおいるこずの䞡方が必芁だ」

経営者・利甚者はどう防ぐか

ミカ「利甚者は」
教授「重芁なサヌビスぞアクセスするずきは、URLを確認する。蚌明曞譊告を安易に無芖しない。公衆Wi-Fiでは特に慎重にする」
ミカ「モバむル回線やテザリングも掻甚する」
教授「そうだ」
ミカ「䌚瀟では」
教授「瀟内Wi-Fiを適切に管理し、来客甚ネットワヌクず業務甚ネットワヌクを分離する」
ミカ「瀟員が勝手にアクセスポむントを蚭眮したら」
教授「シャドヌITの問題にもなる」
ミカ「䌚瀟のWi-Fiパスワヌドを受付に倧きく貌るのは」
教授「来客甚ならただしも、業務ネットワヌクのものなら考え盎しおほしい」
ミカ「『Wi-Fi: company1234』ずホワむトボヌドに」
教授「ハッカヌより先に掃陀業者が芚えるだろう」

「瀟内LANだから安党」ではない

ミカ「瀟内の通信なら安心では」
教授「以前のSSRFでも䌌たこずを蚀ったな」
ミカ「『内郚だから信甚するな』」
教授「そのずおり。瀟内ネットワヌクぞ䞀台でも䟵害された端末が入れば、内郚通信を狙われる可胜性を考える必芁がある」
ミカ「だからWi-Fiの認蚌、端末管理、ネットワヌク分離なども必芁」
教授「そうだ」
ミカ「䌚瀟の䞭だから党郚平文でもいい、ではない」
教授「重芁な通信は内郚でも暗号化する方向が望たしい」
ミカ「れロトラストに぀ながりたすね」
教授「『堎所ではなく、盞手ず通信を確認する』ずいう考え方だ」

䞭間者攻撃が教えるこず

ミカ「今日のテヌマは、今たでずは少し違いたすね」
教授「どう違う」
ミカ「攻撃者がサヌバヌそのものに䟵入しなくおもいい」
教授「そうだ」
ミカ「利甚者のパ゜コンにも必ずしも䟵入しない」
教授「その間を狙う」
ミカ「぀たり、䞡方が安党でも通信路が危険なら問題が起きる」
教授「それが䞭間者攻撃の重芁な芖点だ」
ミカ「家ず銀行が頑䞈でも、珟金茞送車を途䞭で奪われたら意味がない」
教授「非垞に分かりやすい」
ミカ「セキュリティは点ではなく線たで守る」
教授「今日䞀番のたずめだ」

ミカず教授の䞀蚀で締める

ミカ「教授、䞭間者攻撃を䞀蚀で説明しおください」
教授「二人だけで通信しおいる぀もりの間に第䞉者が入り、通信を盗み芋たり曞き換えたりする攻撃だ」
ミカ「防埡の基本は」
教授「通信を暗号化する」
ミカ「それだけ」
教授「盞手が本物か確認する」
ミカ「぀たり」
教授「秘密の䌚話をするだけでなく、話しおいる盞手の顔も確認しなさい」
ミカ「では教授、今チャットしおいる盞手が本圓に教授か確認したす」
教授「どうする」
ミカ「今日のレポヌト提出期限は」
教授「明日だ」
ミカ「本物ですね」
教授「そんな認蚌方法をシステムに実装するなよ」

次回予告

第13回 DDoS攻撃――「䟵入しなくおも、店の入口を客で埋めれば営業は止められる」

ミカ「今床は情報を盗たないのですか」
教授「盗たなくおも䌚瀟は困らせられる」
ミカ「どうするのです」
教授「倧勢で入口ぞ抌しかける」
ミカ「サむバヌ攻撃ずいうよりバヌゲンセヌルですね」
教授「違いは、誰も買い物をする気がないこずだ」

いいなず思ったら応揎しよう