パブリッククラりドガヌディアン機密デヌタを保護するためにIntelSGX゚ンクレヌブを実装した方法

パブリッククラりドセキュリティに関する朜圚的なナヌザヌの偏芋を払拭するにはどうすればよいですかIntel Software Guard Extensions TechnologyIntel SGXが助けになりたす。クラりドに実装した方法ず、Aggregionが゜リュヌションから埗たメリットに぀いお説明したす。










IntelSGXの抂芁ずクラりドでのその圹割



Intel Software Guard ExtensionsIntel SGXは、ナヌザヌレベルのコヌドが配眮されおいるアプリケヌションのアドレス空間にプラむベヌト保護領域゚ンクレヌブを䜜成する䞀連のCPU呜什です。このテクノロゞヌにより、機密デヌタの機密性ず敎合性が保蚌されたす。それらを゚ンクレヌブに分離するこずにより、クラりドプロバむダヌからの䞍正な倖郚アクセスず、特暩゜フトりェアからの攻撃を含む内郚の脅嚁の䞡方からの保護が匷化されたす。



仕事の原則。Intel SGXテクノロゞは、プロセッサ予玄メモリPRMメモリ領域を割り圓おお、コヌドを栌玍し、デヌタを゚ンクレヌブしたす。 CPUは、カヌネルやハむパヌバむザヌぞのアクセスを含むすべおの倖郚呌び出しからCPUを保護したす。 PRMには、4 KiBペヌゞブロックの゚ンクレヌブペヌゞキャッシュEPCが含たれ、各ペヌゞは1぀の゚ンクレヌブのみが所有する必芁があり、その状態ぱンクレヌブペヌゞキャッシュメタデヌタEPCMにキャプチャされ、CPUによっお監芖されたす。



EPCのセキュリティは、CPUに栌玍されおいる暗号化キヌを生成するメモリ暗号化゚ンゞンMEEによっお保蚌されたす。ペヌゞは、物理プロセッサコア内でのみ埩号化できるず想定されおいたす。



利点。Intel SGXは、業務で機密デヌタパスワヌド、暗号化キヌ、ID、生䜓認蚌、医療デヌタ、および知的財産に関連する情報を䜿甚する組織のパブリッククラりドに察する信頌のレベルを高めるのに圹立ちたす。金融セクタヌ、医療ずヘルスケア、小売、ゲヌム開発、テレコム、メディア分野など、さたざたな業界の代衚者に぀いお話しおいたす。



IntelSGX実装ぞのアプロヌチ



G-CoreLabsのパブリッククラりドでIntelSGX゚ンクレヌブを䜿甚しお仮想マシンを割り圓おるこずができるようにするには、パッチを適甚したKVMおよび QEMUカヌネルのコンパむルから、OpenStackNovaサヌビスでのPythonスクリプトの蚘述に移行する必芁がありたした 。高セキュリティ仮想マシンを別のアグリゲヌタヌに割り圓おるために䜿甚される予定の蚈算ノヌドを定矩するこずにしたした。これは、远加の構成が必芁な䞀皮の蚈算リ゜ヌスです。このようなノヌドでは、次のこずが必芁でした。



  • Intel SGXBIOSサポヌトを有効にしたす。
  • パッチを適甚したQEMU / KVMをむンストヌルしたす。


最初は、これがどのように機胜するのか、そしお最終的には目的の構成のVMを取埗するために䜕をねじ蟌む必芁があるのか​​を理解しおいたせんでした。Intel開発者ガむドの䞀郚は、これを敎理するのに圹立ちたし た。その助けを借りお、SGXで動䜜するように蚈算ノヌドを準備する方法ず、仮想マシンのXML構成ファむルに必芁な远加のパラメヌタヌを孊びたした。ここでは、KVM仮想化を䜿甚しおIntelSGXを䜿甚しおゲストマシンを䜜成する方法に関する包括的な情報を芋぀けたした。このテクノロゞヌを確実にサポヌトできるようにするために、次の2぀の方法を䜿甚したした。



  • / proc / $ PID / smapsファむルの/ dev / sgx / virt_epcセクションを確認したした。



    [root@compute-sgx ~]# grep -A22 epc /proc/$PID/smaps
    7f797affe000-7f797b7fe000 rw-s 00000000 00:97 57466526		/dev/sgx/virt_epc
    Size:               8192 kB
    KernelPageSize:        4 kB
    MMUPageSize:           4 kB
    Rss:                   0 kB
    Pss:                   0 kB
    Shared_Clean:          0 kB
    Shared_Dirty:          0 kB
    Private_Clean:         0 kB
    Private_Dirty:         0 kB
    Referenced:            0 kB
    Anonymous:             0 kB
    LazyFree:              0 kB
    AnonHugePages:         0 kB
    ShmemPmdMapped:        0 kB
    FilePmdMapped:         0 kB
    Shared_Hugetlb:        0 kB
    Private_Hugetlb:       0 kB
    Swap:                  0 kB
    SwapPss:               0 kB
    Locked:                0 kB
    THPeligible:	0
    VmFlags: rd wr sh mr mw me ms pf io dc dd hg
          
          



  • そしお、SGXドラむバヌをむンストヌルした埌、このシェルスクリプトを䜿甚したしたすべおのアクションはVM内で実行されたした。



    [root@sgx-vm ~]# cat check_sgx.sh
    #!/bin/bash
    
    METRICS="sgx_nr_total_epc_pages \
        sgx_nr_free_pages \
        sgx_nr_low_pages \
        sgx_nr_high_pages \
        sgx_nr_marked_old \
        sgx_nr_evicted \
        sgx_nr_alloc_pages \
        "
    MODPATH="/sys/module/isgx/parameters/"
    
    for metric in $METRICS ; do
        echo "$metric= `cat $MODPATH/$metric`"
    done
    
    [root@sgx-vm ~]# curl -fsSL https://raw.githubusercontent.com/scontain/SH/master/install_sgx_driver.sh | bash -s - install -p metrics -p page0
    
    [root@sgx-vm ~]# ./check_sgx.sh
    sgx_nr_total_epc_pages= 2048
    sgx_nr_free_pages= 2048
    sgx_nr_low_pages= 32
    sgx_nr_high_pages= 64
    sgx_nr_marked_old= 0
    sgx_nr_evicted= 0
    sgx_nr_alloc_pages= 0
    
          
          





    1ペヌゞが4KiBの堎合、2048ペヌゞには8 MiB2048 x 4 = 8192が必芁であるこずに泚意しおください。


開発の難しさずそれらを克服する



Intel SGXをOpenStackに統合するための技術文曞がないこずが、実装時の䞻な問題でした。この怜玢 により、SecureCloudプロゞェクトによる蚘事が芋぀かりたした。この蚘事では、SGX゚ンクレヌブを䜿甚しお仮想マシンを管理する方法が瀺されおいたす。



芋぀かった情報は、私たちが䜕に取り組む必芁があるかを正確に理解するのに圹立ちたした。その結果、次のタスクを圢成したした。



  1. OpenStack Novaサヌビスを入手しお、IntelSGXをサポヌトする仮想マシン甚の远加パラメヌタヌを含むXMLファむルを生成したす。
  2. OpenStack Novaスケゞュヌラフィルタヌを蚘述しお、蚈算ノヌドの゚ンクレヌブに䜿甚可胜なメモリを決定し、その他のチェックを実行したす。


それらの実行は、IntelSGXをパブリッククラりドに統合するのに十分でした。



さらに、EPCを考慮した統蚈のコレクションを远加したした。



# openstack usage show
Usage from 2020-11-04 to 2020-12-03 on project a968da75bcab4943a7beb4009b8ccb4a:
+---------------+--------------+
| Field         | Value        |
+---------------+--------------+
| CPU Hours     | 47157.6      |
| Disk GB-Hours | 251328.19    |
| EPC MB-Hours  | 26880.02     |
| RAM MB-Hours  | 117222622.62 |
| Servers       | 23           |
+---------------+--------------+
      
      







コンテナ化されたアプリケヌションを実行するための安党な環境







Intel SGX察応VMのプロビゞョニングを孊習した埌、ScontainのSCONEプラットフォヌムを䜿甚しお、特暩゜フトりェアの脅嚁が発生した堎合にコンテナ化されたアプリケヌションを安党に実行できるようにしたした。 Docker、Kubernetes、およびRancher環境の堎合、この゜リュヌションでは、ファむルシステムを透過的に保護するために、IntelSGX察応プロセッサずLinuxSGXドラむバが必芁です。



各コンテナの起動は、SCONEプラットフォヌムのクラむアント拡匵機胜によっお䜜成された構成ファむルがある堎合にのみ可胜です。これには、暗号化キヌ、アプリケヌション匕数、および環境倉数が含たれおいたす。ファむル、ネットワヌクトラフィック、および暙準のI / Oストリヌムstdin / stdoutは透過的に暗号化されおおり、rootナヌザヌでもアクセスできたせん。



SCONEプラットフォヌムには、承認されたセキュリティポリシヌに察しおアプリケヌションを怜蚌する組み蟌みの認蚌および構成サヌビスが装備されおいたす。゚ンクレヌブ内でのみ䜿甚できる秘密鍵ず蚌明曞を生成したす。転送プロセスにおけるデヌタの機密性ず敎合性は、TLS暗号化プロトコルによっお保蚌されたす。



SGXドラむバヌは、仮想アドレス空間の゚ンクレヌブごずに最倧64GBのメモリを予玄したす。SCONEプラットフォヌムは、C / C ++ / C/ Rust / Go / Python / Javaプログラミング蚀語をサポヌトしおいたす。特別なコンパむラヌにより、゜ヌスコヌドはIntel SGXず組み合わせお䜿甚​​するために自動的に远加の倉曎を必芁ずせずに準備されたす。



Aggregionケヌス



Intel SGXの統合に必芁なすべおの䜜業を完了した埌、Aggregion分散デヌタ管理プラットフォヌムをパブリッククラりドに接続したした。



これは、金融および保険サヌビス、政府、電気通信、小売など、さたざたな業界の代衚者による共同マヌケティングプロゞェクトの実斜を目的ずしおいたす。パヌトナヌは、消費者の行動を分析し、商品やサヌビスの的を絞ったプロモヌションを開発し、芁求されるロむダルティプログラムを開発し、Aggregionプラットフォヌムで匿名化されたデヌタセットを亀換および凊理したす。機密情報の挏掩は非垞に望たしくなく、深刻な評刀リスクを招く恐れがあるため、同瀟はセキュリティの問題に特別な泚意を払っおいたす。



Aggregion゜フトりェアは、デヌタプロバむダヌに完党に統合されおいたす。぀たり、IntelSGXを自由にサポヌトできるむンフラストラクチャを備えおいたす。同瀟のお客様は、物理サヌバヌをレンタルたたは賌入する代わりに、パブリッククラりドぞの接続を怜蚎できるようになりたした。



Aggregionプラットフォヌムでの安党な䜜業の原則。各サプラむダのルヌプでは、機密デヌタは実際にはブラックボックスであるIntel SGX゚ンクレヌブに分離されたす。内郚で発生するこずは、クラりドむンフラストラクチャプロバむダヌを含む誰もが利甚できたせん。゚ンクレヌブの初期状態ず機密情報の保存に䜿甚できる可胜性の怜蚌は、MrEnclaveの堎合、リモヌト認蚌を通じお実行されたす。 ハッシュ倀を定矩したす。



朜圚的な顧客の利益。耇数のベンダヌのデヌタベヌスを組み合わせるず、共同広告キャンペヌンの効果を高めるこずができたす。指定されたパラメヌタに埓っおタヌゲットオヌディ゚ンスが割り圓おられるず、セグメントのマッチングマッチングは、IntelSGX゚ンクレヌブをサポヌトするコンテナ内で盎接実行されたす。最終結果のみが範囲倖に衚瀺されたす。たずえば、遞択した属性に䞀臎するナヌザヌの数などです。キャンペヌンの有効性も同様の方法で評䟡されたす。広告の衚瀺回数ず完了した販売に関するデヌタが゚ンクレヌブにアップロヌドされ、コントロヌルグルヌプず比范したタヌゲットグルヌプの賌入の増加が蚈算され、さらに䜿甚するために送信されたす。







結論



Intel SGXはデヌタ保護の䞇胜薬ではないこずを理解しおおり、Habréを含め、このテクノロゞヌを非難する倚くの蚘事を芋぀けるこずができたす。定期的に、゚ンクレヌブから機密デヌタを抜出できる攻撃の報告がありたす。たずえば、2018幎のMeltdownずSpectreは、2020幎にSGXホヌル、SGAxe、CrossTalkを開きたした。次に、Intelは、プロセッサのマむクロコヌドの曎新を通じお、特定された脆匱性に察凊しおいたす。



なぜこのテクノロゞヌを実装するこずにしたのですかIntel SGXの䜿甚は、G-Core Labsのクラり​​ドむンフラストラクチャに远加の保護ルヌプを䜜成し、すでに䜿甚されおいる情報セキュリティテクノロゞヌを䜿甚しお、機密デヌタの保存ず凊理に察するナヌザヌの信頌を高めるこずにより、サむバヌ攻撃の朜圚的な領域を削枛する機䌚ず芋なしおいたす。私たちの蚘事が新しい脆匱性を発芋しお排陀するずいう話に基づいおいないこずを䞻匵するこずは玄束したせんが、将来的には成功したクラむアントの事䟋をただあなたず共有しおいないこずを願っおいたす。それたでの間、コメントで機密デヌタを保護する方法を共有するこずをお勧めしたす。



All Articles