例えば関数ポインタのようにBuffer Overflowに対して影響を受けやすい何らかデータが動的確保された領域にあるならば、Heap-based Buffer OverflowはStack-based Buffer Overflowと同じくらい攻撃されやすいと考えられる。しかし、メモリレイアウトはアプリケーションごとに異なるため、リモートからの攻撃者にはそれが本当に攻撃可能かどうかが判らない。そのためHeap-based Buffer Overflowへの攻撃はそれほど実践的でないとも言えるが, 大変興味深いものなので焦点を当ててみよう。任意のコード実行のためにプログラムカウンタを得るというものは攻撃者の目的のひとつであり、攻撃者はそれを"write-what-where primitive"(任意の箇所への任意のデータを書き込み)により実現することがある。Unlink Attackという直接的な"write-what-where primitive"を実現する古典的な攻撃手法があったが、現在では緩和策が施されたことで使えなくなっている。そのため、Exploit書きはmalloc()の戻り値をほぼ任意のアドレスに固定させることで間接的な"write-what-where primitive"を実現する手法を考えた。間接的な"write-what-where primitive"を有するHeap ExploitationテクニックにはMalloc Maleficarum(Phantasmal Phantasmagoria氏による攻撃手法とその論文)などがある。そのうちのいくつかは既に修正されているが, 未だに有効なものもある。今回は最新のGLIBCでも有効であり, 間接的"write-what-where primitive"を有する新たな攻撃手法として"House of Einherjar"を提案したいと思う。 --- 松隈 大樹Hiroki Matsukuma サイバーディフェンス研究所の新米分析官であり、CTFチームTokyoWesternsのメンバーでもある。学生時代は国立東京工業高等専門学校というところで電子工学を学び, 趣味が高じてCTFに打ち込んでいたりした。アプリケーションをpwnする瞬間やカッコイイ音楽を聴いてるときが一番キテおり、おいしいものをひとと食べることも好む。最近はmalloc()の実装や組み込みシステムに対する攻撃など、やはりpwnに関することに興味をもっている.
PWNの超入門 大和セキュリティ神戸 2018-03-25 microcorruption ctf
10/19 SNIA, 10/24 NEDIAで講演したCXLについての解説資料です。 CXL2.0までの仕様、CXL3.0の仕様、Linuxの開発状況やコミュニティの議論の内容などを説明しています。
第32回コンピュータシステム・シンポジウム(ComSys2020)招待講演で使ったスライドです。TEE(Trusted Execution Environment)のハードウェア実装(Arm TrustZone, Intel SGX, RISC-V Keystone)の解説から、それぞれのTEE上のソフトウェア実装が多く異なる話、仮想化(Arm v8.4AでのTEE内仮想化、Intel TDX: Trusted Domain Extensions、AMD SEV: Secure Encrypted Virtualization)が導入されてくる話をしました。また、TEEに対するアンチテーゼの研究や関連規格などを紹介しました。
Stack Smashing Protection(SSP)はエクスプロイトに対する古くからある根本的な防御機構の1つであり、現在多くのコンパイラやオペレーティングシステムがこの機能を提供している。 SSPの提供する機能の1つであるスタックカナリアはスタックバッファの直後に配置された番兵の値が変化していないかを調べることでスタックバッファがオーバーフローしているかどうかを確認することができる。 今まで、スタックカナリアの回避方法としては、番兵の値の確認処理が行われる前にエクスプロイト処理を終わらせてしまうか、番兵の値を漏洩させてからオーバーフローさせるものが主流であったが、本講演では、これらの回避方法とは違うアプローチを取った回避手法を紹介する。
Hardware securityforum2019
次世代インターコネクトであるCXLについて自分なりに理解した範囲で解説しています。 CXLの前提知識としてPCIやACPIの知識も必要なので、それについて知らない人にもわかるように説明を加えています。
Kernel/Vm探検隊 online part2. 発表動画: https://youtu.be/brrm328XItM?t=8221
2021/4/28 に東京大学で開催された<AIセミナーシリーズ> 「Arm CPUにおけるSIMDを用いた高速計算入門」講演会で使用した資料になります。
イベント名:設立3周年記念チャリティーセミナー 講師:日本仮想化技術 宮原 日時:2010/2/6 アジェンダ: • KVMの概要 • KVM仮想マシン作成のコツ • KVMベンチマークテスト 概要: リリース直後に異例の速さでカーネルに取り込まれたKVMですが、VMwareやXenに比べて、まだまだ活用術や情報が少ないのが現状です。本セッションでは、KVMの仕組み、活用方法、性能評価の結果について解説いたします。
PPL2016@岡山 ディープラーニングの研究開発時には、計算を支援するためのフレームワークが用いられる。ChainerはPython上で動くディープラーニングフレームワークの一つである。他の多くのフレームワークと異なり、順伝播処理を行った時の実行履歴情報をもとに逆伝播のグラフを動的に構築するdefine-by-runという方式を採用している。この方式により、分岐や再帰を含むような複雑な構造のネットワークも直感的に構築でき、加えてデバッグが容易である。また、CuPyと呼ばれるNumPyサブセットのCUDAによる行列演算ライブラリを作成し、バックエンドとして利用している。本講演では、ディープラーニングフレームワークの基礎と実装、そして課題についてChainerを通して説明する。