メむヘム-プログラムの脆匱性を怜出しお修正できるマシン

このプログラムは、倫理的なハッキング自動化に特化したDARPA Cyber​​ Grand Challengeで1䜍になりたした







2011幎、投資家のMark Andrissenが「プログラムは䞖界を食い物にする」 ず蚀ったずき、この考えは新鮮でした。 ゜フトりェアが私たちの生掻のあらゆる偎面に浞透しおいるこずは明らかです。 医療機噚やロボモヌビルなどの耇雑な電子機噚から、むンタヌネットや枩床蚈に接続された電球などの最も単玔なものたで、゜フトりェアが私たちを囲んでいたす。



そしおこれは、これたでにないほどこの゜フトりェアに察する攻撃に察しお脆匱であるこずを意味したす。



毎幎、 1,110億行のコヌドが既存のプログラムに远加され、それぞれが新しい朜圚的な目暙ずしお機胜したす。 調査䌚瀟Cyber​​security Venturesの創蚭者兌線集長のスティヌブモヌガンは、これたで知られおいなかった脆匱性業界が「れロデむ脆匱性」ず呌ぶものを通じおコミットされたシステムハッキングは、2021幎たでに米囜で毎日発生するものの、2015幎には毎週発生するず予枬しおいたす。



この問題を解決するために、カヌネギヌメロン倧孊の同僚ず私は、゜フトりェアを自動的に安党にするこずができるテクノロゞヌを䜜成するのに10幎近く費やしたした。 その埌、2012幎にForAllSecureを蚭立しお、補品を䞖界に玹介したした。 私たちは宣蚀したこずを実行できるこずを蚌明するだけでよく、これは競争ぞの参加ずいう圢で行いたした。





The Magnificent Seven2016幎にラスベガスで開催されたCyber​​ Grand Challengeの決勝戊の芳客の前で、競合するコンピュヌタヌが茝きたす。



2016幎に早送りしたす。私たちのグルヌプは、ラスベガスのホテルのトむレに集たり、爪を噛んで、競争に負けたず確信しおおり、準備に数千時間かかりたした。 これはDARPAサむバヌグランドチャレンゞCGCであり、米囜防総省の高床な研究プロゞェクトによっお組織された倚くのむベントの1぀2000幎代初期に開催されたロボットカヌコンペティションなどで、囜家の安党を確保するための技術的なブレヌクスルヌを刺激したした。 CGCが発生したのは、DARPAが、米囜がサむバヌ攻撃を撃退するのに十分な人やツヌルを持っおいない日が来るかもしれないず認識したためです。



サむバヌセキュリティの戊堎にはハむテクに粟通したハッカヌがいたすが、その䞭で最も優れおいるのは、゜フトりェアの匱点を創造的に利甚しお組織の防埡に䟵入できる人たちです。 独自の目的でこれを行う犯眪者はブラックハットハッカヌず呌ばれ、倚くの堎合、スクリプトキディ、既補のプログラムを䜿甚する人々が、たずえば2016幎にむンタヌネットボットネットで起こったような混乱を匕き起こすツヌルを䜜成したす物事はむンタヌネットを介しお倧芏暡な攻撃を開始し、普通の人々の家の監芖カメラにアクセスしたした。 逆に、倫理的、たたはホワむトハットのハッカヌは、スキルを䜿甚しおこのような攻撃を防ぎたす。 しかし、倫理的ハッカヌはすべおの゜フトりェアを保護するのに十分ではありたせん。商甚䞖界では急速に成長しおいる゜フトりェアの数はもちろん、囜家的および䞖界的なセキュリティに䞍可欠な共通のむンフラストラクチャおよび軍事プラットフォヌムは蚀うたでもありたせん。



2014幎、DARPAはCyber​​ Grand Challengeを発衚したした。これは、゜フトりェアの匱点を発芋、怜蚌、修正できるAIシステムの開発の実珟可胜性をテストする2幎間のプロゞェクトです。 2015幎には、100のチヌムが事前審査段階に入りたした。 2016幎には、そのうち7人が最終決定に至りたした。そこでは、掚論が可胜なシステムを提瀺する必芁がありたした。問題に気付くだけでなく、その起源に぀いおも掚枬するシステムです。 チャンピオンは200䞇ドル、2䜍ず3䜍-100䞇ドルず750,000ドルを受け取りたす。



DARPAがこれらの詳现を発衚した埌、同僚ず私はすぐに、これが自動サむバヌセキュリティシステムが単玔な理論䞊のおもちゃではないこずを瀺す絶奜の機䌚であるこずに気付きたした。 ForAllSecureに぀いお話したずき、゜リュヌションの実甚性に぀いお懐疑的な芋方を垞にしおいたした。 私たちは、10幎にわたっお取り組んできたので、競争に勝぀必芁があるず刀断したした。



倧孊での私たちの研究は、単玔な仮定から始たりたした。人々は、賌入した゜フトりェアを安党にテストする方法を必芁ずしおいたす。 もちろん、プログラマはセキュリティの問題を排陀するためにあらゆる努力をしたすが、圌らの䞻なタスクはより簡単です。圌らは補品を時間通りにリリヌスし、それが必芁なこずをするこずを保蚌する必芁がありたす。 問題は、ハッカヌが゜フトりェアにすべきでないこずをさせる方法を芋぀けるこずです。



今日、゜フトりェアセキュリティの分野でのベストプラクティスには、゜ヌスコヌドを確認しお朜圚的な匱点を特定するための特別なツヌルの䜿甚が含たれたす。 このプロセスは、倚くの停陜性結果を生み出したす-実際には匱くない堎所をマヌクしたす-したがっお、人はそれらのすべおを調べお、それぞれをチェックする必芁がありたす。 ゚ラヌ怜出の速床を向䞊させるために、䞀郚の䌁業は、1回限りの分析を行うか、バグ怜玢プログラムに参加しお有料の倫理的ハッカヌに䟝存し、芋぀かったバグの数ず重倧床に察しお支払いたす。 しかし、最も成功した䌁業だけが最高品質のプログラムをテストする䜙裕がありたす。 そしお、さたざたなオヌプン゜ヌスコンポヌネントやサヌドパヌティのその他の䜜業が最終補品に含たれおいる堎合にのみ、問題はより耇雑になりたす。



このコンテストでは、倫理的なハッカヌの䜜業を自動化するメむヘムシステムを玹介したした。 圌女は、考えられる匱点を指摘しただけでなく、これらの脆匱性を悪甚し、匱点を蚌明したした。 これもCGCの重芁なポむントでした-脆匱性の蚌拠を瀺し、有効な゚クスプロむトを䜜成するこずが勝利ポむントを獲埗する方法の䞀郚でした。 たた、メむヘムはスケヌリング可胜なマシンであるため、このような分析は人間がアクセスできない速床で実行できたす。





メむヘムは、6瀟のラむバルず同様、氎冷が必芁でした。 しかし、消費量ず気枩に関する統蚈は、メむヘムが他よりも積極的に働いたこずを瀺したした。



私たちはメむヘムの創蚭に取り組み、倧孊で私たちが開発した既成の゜フトりェア分析システムを持ち、プログラムテキストの正匏な分析に基づいおいたす。 この方法は、プログラムが進むこずができる各パスを蚘述する数匏ず比范できたす。぀たり、絶えず分岐する分析ツリヌを発行したす。 そのようなツリヌはすぐに倧きくなりすぎお䜜業できなくなる可胜性がありたすが、ツリヌ党䜓をいく぀かのブランチに枛らすいく぀かのパスを削陀する賢い方法を考え出したした。 その埌、残りのブランチをさらに詳しく調べるこずができたす。



シンボリック実行は、プログラムのロゞック党䜓を衚す方皋匏たずえば、x + 5 = 7を䜜成し、この方皋匏を解きたす。 この戊略を別の゜フトりェア分析方法であるfuzzingず比范しお、ランダムな倀をドロップしようずしおプログラムに送り蟌もうずするず、停止に至った脆匱性ず意図的な攻撃での䜿甚方法をすでに特定できたす。 ファゞングは、方皋匏の倀が真になるたでランダムデヌタを導入し、x = 2を決定したす。



どちらのアプロヌチにも独自の長所がありたすが、長幎ファゞングには実装の容易さず入力デヌタの凊理速床ずいう利点がありたした。 シンボリックパフォヌマンスは、それを飌いならすこずができる誰にずっおも巚倧で未開発の可胜性に満ちおいたした。 2010幎に䜜成を開始したメむヘムシステムでは、䞡方のアプロヌチを組み合わせるこずでこれを達成できたした。



ファゞングずは、どのような入力デヌタがプログラムを新しい方法で動䜜させるこずができるかに぀いお、十分な情報に基づいた仮定を立おお、実際にこの結果に぀ながるデヌタの皮類を远跡しようずする詊みです。 シンボリック実行は、どの特定の入力デヌタが゚クスプロむトの䜜成に圹立぀かを正匏に掚枬するよう数孊者に䟝頌する詊みです。 いく぀かの゚ラヌは玠早い掚枬で芋぀けるのが最適であり、他の゚ラヌは数孊的アプロヌチを䜿甚しお芋぀けるのが最も良いこずがわかりたした。 したがっお、䞡方の方法を䞊行しお䜿甚するこずにしたした。 シンボリック実行は、プログラムの䞀郚の順次調査に深く入り蟌み、コヌドのこの郚分を実行する入力を提䟛したす。 次に、システムはこのデヌタをファゞングプログラムに枡したす。ファゞングプログラムはこのセクションのコヌドを非垞に迅速に攻撃し始め、脆匱性を排陀したす。



もう1぀のメむヘム機胜は、テキストファむル、぀たり゜ヌスコヌドを勉匷しおいる人々ずは異なり、バむナリコヌドを盎接操䜜したす。 これは、システムが開発者の助けを借りずにプログラムを分析できるこずを意味したす。これは、゜ヌスコヌドが芋぀からないサヌドパヌティの開発者によっお䜜成されたコンポヌネントを含むプログラムの堎合に非垞に重芁です。 しかし、元のコヌドずは異なり、機胜も論理倉数もデヌタ抜象化もないため、バむナリコヌドに぀いお刀断するこずは困難です。 バむナリコヌドには、メモリず固定長ビットベクトルが1぀ず぀しかありたせん-効率的なデヌタストレヌゞ構造です。 このようなコヌドを䜿甚するには、マシンである必芁がありたす。たた、このような制限で機胜するマシンを䜜成するには、゚ンゞニアは本圓に熱心に取り組む必芁がありたした。



脆匱性を特定した埌、メむヘムは実甚的な゚クスプロむトを生成したす-ブラックハットハッカヌがクラックに䜿甚できるようなコヌド。 目暙は、゚クスプロむトを䜿甚しおオペレヌティングシステムぞの特暩アクセスを取埗できるこずを実蚌するこずです。 その結果、Mayhemは、ほずんどのコヌド分析ツヌルが行うように、起こりうる問題を蚘録するだけでなく、絶察的な確実性で脆匱性を特定したす。



2014幎、Debianディストリビュヌションに含たれるすべおのプログラムでMayhemをテストしたした。Debianディストリビュヌションは、仕事甚のコンピュヌタヌやサヌバヌで䞖界䞭で䜿甚されおいるLinuxの人気バヌゞョンです。 メむヘムは、ほが14,000のナニヌクな脆匱性を発芋し、リストを250の新しいものに絞り蟌み、最高の優先床に倀したした。 MayhemをAmazonクラりド内の倚くのサヌバヌに拡匵し、実際には人間の介入を必芁ずしないため、テスト党䜓に1週間かかりたした。 最も重芁な発芋をレビュヌのためにDebianコミュニティに送りたした。 研究プロゞェクトを営利䌁業にしようず決めた理由の1぀は、開発者ずこのような芏暡で協力し、膚倧な数の脆匱性を探しお数千のプログラムを分析したいずいう願望でした。





メむヘムプロゞェクトチヌムForAllSecureの゚ンゞニアは、閉䌚匏で頭脳を背景にポヌズをずりたす。 この蚘事の著者であるDavid Bramleyは、巊から3番目の最前列にいたす。



2015幎6月3日、100人以䞊の参加者が予遞ラりンドに参加し、それぞれが既知の脆匱性を有する131のナニヌクなタスクを䞎えられたした。 最も倚くのポむントを獲埗した7぀のチヌム脆匱性ずパッチを芋぀けるために発行されたは、サむバヌグランドチャレンゞの決勝戊に進みたした。 ForAllSecureは、ポむントで2番目に終わった参加者の達成を2倍以䞊に増やしたした。 そしお、この短い喜びの瞬間はすぐに、本圓のプレッシャヌが今しか始たっおいないこずに気づきたした



メむヘム技術に基づいた完党に自埋的なサむバネティック意思決定システムを䜜成するタスクは、非垞に困難な䌁業であるこずが刀明したした。 特に、DARPAは1幎間の開発をサポヌトするのに十分な資金を7人のファむナリストに割り圓おたずいう事実のおかげで、これをなんずかするこずができたした。 テクノロゞヌの䞻芁コンポヌネントには、実行可胜プログラムを比范的理解しやすく分析しやすい蚀語に翻蚳するツヌルのセット、脆匱性を芋぀けお悪甚するためのアクティブなツヌル、欠陥のあるバむナリコヌドのパッチを自動的に䜜成するための保護ツヌル、および䜜業を効率的に調敎するためのプログラムがありたす。



決勝に向けお、2぀の重倧な困難に盎面したした。 たず、Mayhemが脆匱性の怜玢を凊理した方法には満足しおいたしたが、パッチの効果が十分ではないように思われたした。 競争では、実際には、この問題の解決策よりも倚くのプロセッサヌ時間を浪費するパッチを远加するこずは意味がありたせん。 そのため、消費量を5以䞋に増やす自動パッチを远加するシステムで非垞に長い時間を費やしたした。



第二に、勝利戊略が必芁でした。 脆匱性を発芋し、そのパッチを䜜成したずしたす。 おそらく、プログラムの速床が䜎䞋しすぎた堎合、すぐにロヌルバックしないでください。 堎合によっおは、埅぀だけの䟡倀があり、最埌の手段ずしおのみパッチを適甚しおください。 プログラムにい぀パッチを適甚するかを決定する゚キスパヌトシステムを開発したした。



2016幎8月5日に決勝が行われたラスベガスのボヌルルヌムにチヌムが入るず、巚倧なステヌゞ䞊に点滅ラむトのある7぀の巚倧なラックがあり、その䞋には参加者のコンピュヌタヌを冷华する180トンの氎が入ったタンクがありたした。 参加者は競技開始の前倜にマシンを準備する必芁があり、DARPAはマシンぞのすべおのアクセスを遞択したした。 車はむンタヌネットから遮断され、䞀般的には倖界から遮断されたした。 メむヘムの動䜜を監芖し、システムの電力消費ず枩床を芳察するだけで、統蚈は各ラックの暪に衚瀺されたした。 メむヘムは垞にラむバルよりも積極的に働きたした。そしお、これが良い兆候であるこずを望みたした。



ほが100ラりンドの間、競合するシステムは新しいプログラムを受け取り、わずか数分で脆匱性のコヌドを分析し、保護に必芁なパッチを発行する必芁がありたした。 各ラりンドのポむントは、マシンが脆匱性の存圚を芋぀けお蚌明する胜力、およびパッチの有効性に぀いお䞎えられたした。





広いマヌゞンによる勝利メむヘムは倧きなマヌゞンを䜜るこずに成功し、その埌、第40ラりンド埌に萜ちたした。 しかし、チヌムは競争の最埌たでこのギャップに぀いお䜕も知りたせんでした。



プレれンテヌションをより面癜くするために、䞻催者は倧䌚の最埌にのみ最終ポむントを通知するこずにしたした。 ぀たり、このプロセスでは、勝者か敗者かがわからず、Mayhemが発芋した脆匱性に関するメッセヌゞを送信するだけでした。 しかし、競技開始から数時間埌、第40ラりンド埌、メむヘムがメッセヌゞの送信を停止したこずが明らかになりたした。 プログラムがクラッシュしたした。



最悪の悪倢が珟実になっおいるように思えたので、私たちの内偎のすべおが瞮小したした。 オヌガナむザヌにプログラムを再開する機䌚を求めたしたが、これを蚱可したせんでした。 そしお、競争の半分しか完了しなかったため、恥ずべき敗北の準備を始めたした。



䞻催者は競技の終わりに状況に぀いおコメントし始めたした。矎しい芖芚化により、各チヌムのマシンがプログラムでセキュリティ問題を芋぀けお修正した方法が、人々がそれに費やす月たたは幎ず比范しお数秒で瀺されたした。 ホヌルには5,000人以䞊が出垭し、ゲストの解説者-倩䜓物理孊者および有名なハッカヌ-が圌らの関心を高めたした。 敗北を発衚し、画面䞊の情報で確認する準備をしたした。



しかし、各ラりンドの埌に远加されたポむントを芋お、突然、メむヘムの最初のギャップが1䜍を維持するのに十分であるこずに気付きたした。 最終ラりンドの結果が発衚された埌、たるで山が肩から萜ちたかのようです。 勝ちたした。



DARPAプログラムのディレクタヌであるマむクりォヌカヌは、この自埋的なサむバヌ防衛のデモは、゜フトりェアセキュリティの䞖界における「革呜のほんの始たり」に過ぎないず述べたした。 圌は結果をラむト兄匟の最初のフラむトず比范したした。ラむト兄匟は遠くたで飛ぶこずはしたせんでしたが、倧陞暪断フラむトぞの道を瀺したした。



これたでのずころ、ForAllSecureは、新しいサヌビスの最初のバヌゞョンを、米囜政府、ハむテクおよび航空宇宙䌁業を含む初期の顧客に販売しおいたす。 この段階で、サヌビスは基本的に、問題が存圚するかどうかを刀断したす。問題はその埌、人間の専門家によっお修正されたす。 かなり長い間、メむヘムのようなシステムは人々、セキュリティの専門家ず協力しお、゜フトりェアの䞖界をより安党な堎所にするでしょう。 しかし、遠い将来、マシンむンテリゞェンスはこのタスクに単独で察凊できるず考えおいたす。



All Articles