SlideShare a Scribd company logo
サンドボックス化によるセキュアなプログラミン
グ
2014年度 システムソフトウェアゼミ 盧 亦愷
https://github.com/luyikei/
Qt アプリケーションをもっとセキュアにした
い!
応募した理由
事前学習
● Tcpdump のソースコードを読んだ
 ・chroot や setuid を使用していた。
 ・cap-ng を使用し(できるなら)、特権を禁止していた。
● OpenSSH のソースコードを読んだ
・プロセスを分割し、分割した先で、
 ・OS によって違う手法を使っており、 OS別に
異なるファイルにサンドボックスのコードがあった。
 ・基本は手法が違うだけで目的はTcpdumpとほぼ同じ
● パイプと fork() の修行
 プロセス分割をするときに必要だから
Privilege separated tcpdump(1)
●
Otto writes: "tcpdump(1) has a bad reputation; quite some vulnerabilities have
been found in it. Since tcpdump is run as root when capturing packets from an
interface, the impact of these vulnerabilities can be high.
● To reduce the risk of running tcpdump as root, tcpdump has been modified to
become privilege separated. The parsing and printing of the network packets
takes now place in an unprivileged, chrooted process.
● The work has been done by Can Erkin Acar and Otto Moerbeek.
http://www.undeadly.org/cgi?action=article&sid=20040220120426
(直訳) 特権分離 tcpdump(1)
● Otto が書いた: "tcpdump(1) は評判悪い; 実にいくつかの
脆弱性が見つかったのだ. Tcpdump はインターフェース
からパケットキャプチャをする以上 root で実行されなく
てはならない, なのでこういった脆弱性の影響が非常に
大きくなってしまいます.
● tcpdump が root で実行されるリスクを軽減するために,
tcpdump は特権を分離するように改変された. ネット
ワークのパケットのパースとプリントは非特権で行われ
ます, chroot のプロセスで動いています。
コードを見てみましょう
Privilege Separated OpenSSH
We use an unprivileged child process to contain
and restrict the effects of programming errors. A
bug in the unprivileged child process does not
result in a system compromise. In other words,
the goal is complete privilege separation within in
OpenSSH.
http://www.citi.umich.edu/u/provos/ssh/privsep.html
(直訳) 特権分離 OpenSSH
● 非特権の子プロセスを使用することでプログラ
ミングの不具合を含まれても影響を小さくでき
る.
● 非特権の子プロセスにバグがあってもシステム
の妥協は許さない.
● つまり, ゴールは OpenSSH の特権分離である.
http://www.citi.umich.edu/u/provos/ssh/priv.jpg
具体的な手法
●  rlimit
プロセスに様々な制限を掛けられる
ex ) CPU 時間、ファイルの作成, メモリのヒー
プの上限
●  seccomp, capability
システムコールの制限など.....
コードを見てみましょう
Privilege separation is a powerful principle to
improve cyber security that can also be applied to
other authentication services.
http://www.citi.umich.edu/u/provos/ssh/privsep.html
特権分離は他の認証サービスに使用する上での、
サイバーセキュリティを向上する
パワフルな原則である。
つまり危険な処理 (リモートのコードを実行する
など) をするようなプログラムは
面倒でもサンドボックスをするとよい。
面倒なのはプラットフォームごとで
手法が異なるためである
つまりサンドボックスとは
いいプロセス
つまりサンドボックスとは
いいプロセス やられる!
つまりサンドボックスとは
悪いプロセス やられる!
つまりサンドボックスとは
悪いプロセス やる!
つまりサンドボックスとは
いいプロセス
いい子プロセス
つまりサンドボックスとは
いいプロセス
いい子プロセス
fork()
つまりサンドボックスとは
いいプロセス
いい子プロセス やられる!
パイプ
または, Shared memory など
つまりサンドボックスとは
いいプロセス
悪い子プロセス やられる!
つまりサンドボックスとは
いいプロセス
いい子プロセス
つまり何故必要なのか
● 脆弱性を突かれて特権を排除して 攻撃者に好
き勝手させない
● 他のメリットに Chrome はプロセスを分割する
ことによって、タブの一つがフリーズしても全
体はフリーズしない!
キャンプでやったこと
まずは Konqueror のプラグイン作
成
● GenHash プラグイン
 MD5 ハッシュを計算するプラグイン
● Pi プラグイン
 モンテカルロ法を使用して円周率を計算する
 プラグイン
GenHash プラグイン
● 親プロセスがファイルを読みこむ
● 読み込んだデータをパイプで子プロセスに引き
渡す
● 子プロセスは計算するだけ!
● そして計算結果は親プロセスにパイプで渡す
子プロセスは計算するだけなので...
● prctlのPR_SET_NO_NEW_PRIVSを使って
exeve()の禁止
● seccomp を利用した子プロセスのシステム
コールの制限
許可したシステムコール: close(), 親プロセスと
の通信に使うパイプ用のread()/write()
● それ以外は禁止
Pi プラグイン
● モンテカルロ法で円周率の計算
● ループ回数は自由にユーザーが指定できる
● 子プロセスが計算し、結果を親プロセスにパイ
プで引き渡す
ループ回数が指定できてしまうので
● rlimit を使用して、子プロセスのCPU 時間を制
限
マルチプロセスアーキテクチャの
独自 webkit ベースのブラウザを作成!
ブラウザの構成
● 親プロセス(SandboxBrowser)が子プロセス
(SandboxBrowserChildProcess)を起動する
● 子プロセスは親プロセスのtabWidgetの中に,
QX11EmbedWidgetを使って埋め込む
● 子プロセスの起動はQProcessを使う. 要するに
完全に外部のプログラムを起動させる.
おこなったこと
● ブラウザの設計 / 作成
● straceを利用してどのシステムコールが必要かの
調査
● seccompを利用したシステムコール制限
● rlimitによるリソース制限
● 本当に一つの子プロセスが暴走しても大丈夫かテ
ストコードの作成
● 集大成
SandboxBadChild プロセス
while(true){
if(malloc(1024 * 1024 * 64) == NULL){
break;
}
}
おまけ
● Qt の闇
文字入力ができない!
救世主の Tab キー!
がしかし直った! (キャンプ後)
● 修正はパッチを Qt に提案 (一昨日)
謝辞
物理的におせわになりました
● 講師の忠鉢先生
● チューターの味噌野さん
● セキュリティ・キャンプに関わったその他の講
師、チューター、事務の方々
非物理的におせわになりました
● Tcpdump のコード
● OpenSSH のコード
● その他のコード
オープンソースは素晴らしい!
非物理的におせわになりました
Man
$ man man
ありがとうございました

More Related Content

What's hot

Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstepsmokey monkey
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法Naruto TAKAHASHI
 
Dexcs2018 of install
Dexcs2018 of installDexcs2018 of install
Dexcs2018 of install
Etsuji Nomura
 
123 dexcs2020
123 dexcs2020123 dexcs2020
123 dexcs2020
Etsuji Nomura
 
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
aha_oretama
 
Open Build Serviceで楽をする
Open Build Serviceで楽をするOpen Build Serviceで楽をする
Open Build Serviceで楽をする
Kento Kawakami
 
about DEXCS for OpenFOAM
about DEXCS for OpenFOAMabout DEXCS for OpenFOAM
about DEXCS for OpenFOAM
Etsuji Nomura
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Tetsuyuki Kobayashi
 
Dexcs2019 of install
Dexcs2019 of installDexcs2019 of install
Dexcs2019 of install
Etsuji Nomura
 
第1回 Open Build Service 道場
第1回 Open Build Service 道場第1回 Open Build Service 道場
第1回 Open Build Service 道場Fuminobu Takeyama
 
バッチリネーマーの制作
バッチリネーマーの制作バッチリネーマーの制作
バッチリネーマーの制作
eighttails
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
nGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テストnGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テストJunHo Yoon
 
Gws in fukuoka
Gws in fukuokaGws in fukuoka
Gws in fukuoka
Takuma Watabiki
 
Node js instruction
Node js instructionNode js instruction
Node js instructionrecast203
 
Debian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TADebian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TA
Netwalker lab kapper
 
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
y-uti
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話Kouhei Maeda
 
レビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみたレビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみた
Takhisa Hirokawa
 
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)
Uehara Junji
 

What's hot (20)

Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstep
 
NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法NPAPIを使ったandroid標準ブラウザの拡張方法
NPAPIを使ったandroid標準ブラウザの拡張方法
 
Dexcs2018 of install
Dexcs2018 of installDexcs2018 of install
Dexcs2018 of install
 
123 dexcs2020
123 dexcs2020123 dexcs2020
123 dexcs2020
 
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
 
Open Build Serviceで楽をする
Open Build Serviceで楽をするOpen Build Serviceで楽をする
Open Build Serviceで楽をする
 
about DEXCS for OpenFOAM
about DEXCS for OpenFOAMabout DEXCS for OpenFOAM
about DEXCS for OpenFOAM
 
Linuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書くLinuxのユーザーランドをinitから全てまるごとgolangで書く
Linuxのユーザーランドをinitから全てまるごとgolangで書く
 
Dexcs2019 of install
Dexcs2019 of installDexcs2019 of install
Dexcs2019 of install
 
第1回 Open Build Service 道場
第1回 Open Build Service 道場第1回 Open Build Service 道場
第1回 Open Build Service 道場
 
バッチリネーマーの制作
バッチリネーマーの制作バッチリネーマーの制作
バッチリネーマーの制作
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
nGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テストnGrinder3 : だれもが簡単にできる性能テスト
nGrinder3 : だれもが簡単にできる性能テスト
 
Gws in fukuoka
Gws in fukuokaGws in fukuoka
Gws in fukuoka
 
Node js instruction
Node js instructionNode js instruction
Node js instruction
 
Debian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TADebian Testing on Windows Tablet T100TA
Debian Testing on Windows Tablet T100TA
 
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話
 
レビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみたレビューで保守性のためにした コメントをふりかえってみた
レビューで保守性のためにした コメントをふりかえってみた
 
Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)Read Groovy Compile process(Groovy Benkyoukai 2013)
Read Groovy Compile process(Groovy Benkyoukai 2013)
 

Viewers also liked

Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブAppDjango 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
Yikei Lu
 
Micro Python で組み込み Python
Micro Python で組み込み PythonMicro Python で組み込み Python
Micro Python で組み込み Python
Hirotaka Kawata
 
CLSx tokyo 2015 #0
CLSx tokyo 2015 #0CLSx tokyo 2015 #0
CLSx tokyo 2015 #0
Masafumi Ohta
 
Qt Widget 入門① -様々なHello World編-
Qt Widget 入門① -様々なHello World編-Qt Widget 入門① -様々なHello World編-
Qt Widget 入門① -様々なHello World編-
Yikei Lu
 
オープンソースとコミュニティによる価値の創造
オープンソースとコミュニティによる価値の創造オープンソースとコミュニティによる価値の創造
オープンソースとコミュニティによる価値の創造
Rakuten Group, Inc.
 
Qt creatorでremote_debug
Qt creatorでremote_debugQt creatorでremote_debug
Qt creatorでremote_debug
Kazuo Asano (@kazuo_asa)
 
楽天トラベルの開発プロセスに関して
楽天トラベルの開発プロセスに関して楽天トラベルの開発プロセスに関して
楽天トラベルの開発プロセスに関して
Rakuten Group, Inc.
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
 
GitLab CI の布教 for iOS
GitLab CI の布教 for iOSGitLab CI の布教 for iOS
GitLab CI の布教 for iOS
Ikada Kaori
 

Viewers also liked (9)

Django 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブAppDjango 1.5 における効果的な MTV 設計 & ネイティブApp
Django 1.5 における効果的な MTV 設計 & ネイティブApp
 
Micro Python で組み込み Python
Micro Python で組み込み PythonMicro Python で組み込み Python
Micro Python で組み込み Python
 
CLSx tokyo 2015 #0
CLSx tokyo 2015 #0CLSx tokyo 2015 #0
CLSx tokyo 2015 #0
 
Qt Widget 入門① -様々なHello World編-
Qt Widget 入門① -様々なHello World編-Qt Widget 入門① -様々なHello World編-
Qt Widget 入門① -様々なHello World編-
 
オープンソースとコミュニティによる価値の創造
オープンソースとコミュニティによる価値の創造オープンソースとコミュニティによる価値の創造
オープンソースとコミュニティによる価値の創造
 
Qt creatorでremote_debug
Qt creatorでremote_debugQt creatorでremote_debug
Qt creatorでremote_debug
 
楽天トラベルの開発プロセスに関して
楽天トラベルの開発プロセスに関して楽天トラベルの開発プロセスに関して
楽天トラベルの開発プロセスに関して
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
GitLab CI の布教 for iOS
GitLab CI の布教 for iOSGitLab CI の布教 for iOS
GitLab CI の布教 for iOS
 

Similar to サンドボックス化によるセキュアなプログラミング

オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
DNA Data Bank of Japan center
 
FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法
fisuda
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
Ransui Iso
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介
Hiroyuki Wada
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
Makiko Konoshima
 
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdmod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Taisuke Yamada
 
配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokee
yut148atgmaildotcom
 
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
勇 黒沢
 
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオンHyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
健一 茂木
 
Windows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみたWindows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみた
Hikari Morita
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
 
FreeBSD Capsicum
FreeBSD CapsicumFreeBSD Capsicum
FreeBSD Capsicum
Yuichiro Naito
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
Takayoshi Tanaka
 
Gstreamer Basics
Gstreamer BasicsGstreamer Basics
Gstreamer Basics
Seiji Hiraki
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
ManaMurakami1
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud AutomationEtsuji Nakai
 
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
Ryuichi Ueda
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
Naoto Gohko
 

Similar to サンドボックス化によるセキュアなプログラミング (20)

オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
 
FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法FIWARE IoTデバイスを保護する方法
FIWARE IoTデバイスを保護する方法
 
PyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミングPyQtではじめるGUIプログラミング
PyQtではじめるGUIプログラミング
 
Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介Keycloakの実際・翻訳プロジェクト紹介
Keycloakの実際・翻訳プロジェクト紹介
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
 
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpdmod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
 
sshdのお話
sshdのお話sshdのお話
sshdのお話
 
配布用Cacti running with cherokee
配布用Cacti running with cherokee配布用Cacti running with cherokee
配布用Cacti running with cherokee
 
Prometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdfPrometheus超基礎公開用.pdf
Prometheus超基礎公開用.pdf
 
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオンHyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
Hyperledgerのチュートリアルで理解する基幹システム向けブロックチェーンハンズオン
 
Windows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみたWindows の Docker 上で PGX を動かしてみた
Windows の Docker 上で PGX を動かしてみた
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
FreeBSD Capsicum
FreeBSD CapsicumFreeBSD Capsicum
FreeBSD Capsicum
 
20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux20170527 inside .NET Core on Linux
20170527 inside .NET Core on Linux
 
Gstreamer Basics
Gstreamer BasicsGstreamer Basics
Gstreamer Basics
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
 

サンドボックス化によるセキュアなプログラミング