SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Auther:idkqh7
自己紹介
}  脆弱性攻撃の基本
}  ○○大学の本当にあった怖い話
} 
名前:idkqh7
経歴:ニートしてたら大学へ
専門:バイオインフォマティクス
趣味:プログラミングと解析
}  講義で共用のパソコンを使っていた
}  保守契約の関係で放置され続ける脆弱

性があった
}  $apt-get install ○○が使いたかった。
}  教授に許可だけはもらえた
※パソコンの入れ替えに伴い、バグはFixさ
れています
 

セキュリティホールを利用して
本来ならばありえない動作
をさせるコードのこと。

  これらはセキュリティホールの検証コードとしてアプ
リやソースコードの形で一般に配布されている。
ただのバグだから
「よく分からないけどアプリが強制終了する!」
ときには同じ原因によるときも……	

「サーバーのルートとられた!!!」
セキュリティホールを利用した攻撃
}  バッファオーバーフロー攻撃(バッファのバグ)
}  フォーマット文字列攻撃(書式のバグ)
}  ダングリングポインタ攻撃(ポインタのバグ)

モニタリングによる攻撃
¨  スニッフィング(パケットキャプチャリング)
¨  キーロガー(キーロギング)
CVE-2009-2692
  The Linux kernel 2.6.0 through 2.6.30.4, and
2.4.4 through 2.4.37.4, does not initialize all
function pointers for socket operations in
proto_ops structures, which allows local users to
trigger a NULL pointer dereference and gain
privileges by using mmap to map page zero,
placing arbitrary code on this page, and then
invoking an unavailable operation, as
demonstrated by the sendpage operation
(sock_sendpage function) on a PF_PPPOX socket.	
} 
proto_ops構造体(プロセス同士で通信を行うための
構造体)に関数ポインタが存在するんだけど、ある方
法でアクセスするとポインタを初期化せずに(NULLポ
インタ)使える(デリファレンス)らしいよ。
 そこから mmap()関数でメモリの領域を取って(プロ
グラムの書き込める領域をメモリ上に確保)その中に
やばいコードを書くとrootとられちゃうよ。
NULLポインタの確認もしないクソ野郎は
sock_sendpage関数です。本当にありがとうござい
ました。
struct	
  roto_
p
ops	
  	
 
{
	
 	
 	
 	
 	
 	
 	
 	
 int	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 f iy;
am l 	
 
	
 	
 	
 	
 	
 	
 	
 	
 struct	
  odul
m
e	
 	
 	
 *ow ner;
	
 
	
 	
 	
 	
 	
 	
 	
 	
 int	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ( ease)
*rel
	
 	
 	
 (
struct	
  ocket	
  sock)	
 
s
*
;
	
 	
 	
 	
 	
 	
 	
 	
 int	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ( nd)
*bi 	
 	
 	
 	
 	
 	
 (struct	
  ocket	
  sock,
s
*
	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 struct	
  ockaddr	
  m yaddr,
s
*
	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 int	
  ockaddr_en)	
 
s
l ;
	
 	
 	
 	
 	
 	
 	
 	
 int	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 (
*connect)
	
 	
 	
 (
struct	
  ocket	
  sock,
s
*
	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 struct	
  ockaddr	
  vaddr,
s
*
	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 int	
  ockaddr_en,int	
  l ;
s
l 	
  fags)	
 
	
 	
 	
 	
 	
 	
 	
 	
 int	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 (
*socketpai (struct	
  ocket	
  sock1,
r)
s
*
	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 struct	
  ocket	
  sock2)	
 
s
*
;
	
 	
 	
 	
 	
 	
 	
 	
 int	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 (
*accept)
	
 	
 	
 	
 (struct	
  ocket	
  sock,
s
*
	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 struct	
  ocket	
  new sock,int	
  l ;
s
*
	
  fags)	
 
	
 	
 	
 	
 	
 ..
.	
 
}	
 
;
}  rootを取るってどういうこと?

}  NULLポインタデリファレンスでどうなるの?
#include <unistd.h>
#include <stdlib.h>

	

int main(void)
{
setuid(0);
system("/bin/sh");

//ファイル所有者の権限でコマンドを実行
//シェルの呼び出し

return 0;
}
System()はシステム・
コールであるexecve()
のWrapper関数
ファイル所有者の権限でプログラムを実行する機能。

使い方
>chmod 4711 hogehoge

user s-bit(4000) が立っているコマンドはそのファ
イル所有者の権限で実行 (setuid) される。
→所有者をrootにすればrootの権限で実行できる!
普通SetUIDは一般ユーザーに一時的に特権を与
えるために使う物。
} 
} 
} 

Linux のプロセスは、task 構造体で表現されている
task 構造体にはプロセスが使用するさまざまな情報がある
cred構造体はuid、gid、groups 等の資格情報を表す
struct	
 cred	
 {
	
 
	
 	
 	
 	
 atom i
c_t	
 	
 	
 	
 	
 	
 	
 	
 usage;
	
 
	
 	
 	
 	
 ui
d_t	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ui 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /*	
 realU I 	
 of	
 the	
 task	
 */	
 
d;
	
  D
	
 	
 	
 	
 gi
d_t	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 gi 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /*	
 realG I 	
 of	
 the	
 task	
 */	
 
d;
	
  D
	
 	
 	
 	
 ui
d_t	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 sui 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /*	
 saved	
 U I 	
 of	
 the	
 task	
 */	
 
d;
D
	
 	
 	
 	
 gi
d_t	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 sgi 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /*	
 saved	
 G I 	
 of	
 the	
 task	
 */	
 
d;
D
	
 	
 	
 	
 ui
d_t	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 eui 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /*	
 effecti U I 	
 of	
 the	
 task	
 */	
 
d;
ve	
  D
	
 	
 	
 	
 gi
d_t	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 egi 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 /*	
 effecti G I 	
 of	
 the	
 task	
 */	
 
d;
ve	
  D
..
.	
 
	
 	
 	
 	
 struct	
 user_struct	
 *user;
	
 	
 	
 	
 	
 	
 	
 /*	
 realuser	
 I 	
 subscri on	
 */	
 
	
 
D
pti
	
 	
 	
 	
 struct	
 group_i *group_i 	
 	
 /*	
 suppl entary	
 groups	
 for	
 eui
nfo	
 
nfo;
em
d/fsgi */	
 
d	
 
..
.	
 
}	
 
;
#include <unistd.h>
#include <stdlib.h>

	

int main(void)
{
setuid(0);
system("/bin/sh");

//ファイル所有者の権限でコマンドを実行
//シェルの呼び出し

return 0;
}
System()はシステム・
コールであるexecve()
のWrapper関数
前提:所有者がrootのとき、 SetUID(0)を実行

euid(effective uid) = 0(root)
つまり、 SetUID(0)のやっていることは、自プロセス
cred構造体のeuid部分を書き換えているだけ。
Credを操れるならば権限は無法地帯
return sock->ops->sendpage(sock, page, offset, size, flags);
	
 #include <unistd.h>
	
 #include <stdlib.h>
	
 int main(void)
{
	
setuid(0);
//ファイル所有者の権限でコマンドを実行
system("/bin/sh"); //シェルの呼び出し
	
return 0;
	
}
	
NULLポインタデリファレンスをうまく使うと、上記コードが実行できる!!!
sock_sendpage()関数は	
	
return sock->ops->sendpage(sock, page,
	
	
offset, size, flags);
	
といきなり書いていた。	
	
if (unlikely(!sock->ops->sendpage))
 return -EINVAL;
このようにすれば関数ポインタの初期化はチェックされてい
たはず。
NULLポインタ=どのアドレスも指していないポインタ
簡単に言うと、初期化していないポインタ。
((void *)0) …NULLポインタ定数(定義)
これをデリファレンスすると……
*((void*)0) ⇔ *0
アドレスの0番値を指定することになる

	

【デリファレンスとは】
}  ポインタが指し示す内容を得ること
}  間接参照・参照外しとも訳される
}  C言語でいうところのコイツ→*

NULLポインタを用いると0番地のアドレス内容
にアクセス可能となる
(アクセス違反などで強制終了する原因にも)
	

バグの原因!
1. 
2. 

mmap関数 を使って、 0 番地に権限昇格コード
を仕込んでおく。
まちがって NULL ポインタを関数ポインタとして
デリファレンス すると、その権限昇格コードが実行
される。	

管理者権限でメシウマ状態!
 mmap関数を用いて新規アドレス空間を作成
↓
0 番地に権限昇格コードを仕込んでおく。

↓
ヌルポインターでガッ!
↓
特権プログラムからシェルを起動	

実装するのは言うほど
簡単じゃない!
ソースコードが読解できなくても普通です。
Exploitのソースコードはかなり特殊(低レイヤー操作)
な部類に入るので、初見ではまず理解できない。	

} 

AndroidOSのrootハックでも同じ脆弱性が使われた
※繰り返しになりますが、パソコンの入れ替えに
伴いバグはFixされています
	

取り敢えず
>sudo apt-get install sl
} 

	

            ====                ________                                ___________  
    _D  _|    |_______/                __I_I_____===__|_________|  
      |(_)---    |      H________/  |      |                =|___  ___|            _________________    
      /          |    |      H    |    |          |      |                  ||_|  |_||          _|                                _____A  
    |            |    |      H    |__--------------------|  [___]  |      =|                                                |  
    |  ________|___H__/__|_____/[][]~_______|              |      -|                                                |  
    |/  |      |-----------I_____I  [][]  []    D      |=======|____|________________________|_  
__/  =|  o  |=-~~    /~~    /~~    /~~  ____Y___________|__|__________________________|_  
  |/-=|___||        ||        ||        ||        |_____/~___/                    |_D__D__D_|    |_D__D__D_|  
    _/            __/    __/    __/    __/            _/                              _/      _/        _/      _/  
	
 

A. ぬるぽ→ガッ!

Más contenido relacionado

La actualidad más candente

Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術Etsuji Nakai
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料一路 川染
 
Rust、何もわからない...#7 VecDeque再訪
Rust、何もわからない...#7 VecDeque再訪Rust、何もわからない...#7 VecDeque再訪
Rust、何もわからない...#7 VecDeque再訪Yusuke Mori
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService PrincipalToru Makabe
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術までAkihiro Suda
 
DrupalをDockerで起動してみる
DrupalをDockerで起動してみるDrupalをDockerで起動してみる
DrupalをDockerで起動してみるiPride Co., Ltd.
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門Yuichi Ito
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Etsuji Nakai
 
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現するゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現するKeioOyama
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~Daisuke Morishita
 
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術Unity Technologies Japan K.K.
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証についてTakeo Noda
 
Fantastic DSL in Python
Fantastic DSL in PythonFantastic DSL in Python
Fantastic DSL in Pythonkwatch
 
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷LIFULL Co., Ltd.
 

La actualidad más candente (20)

Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
Rust、何もわからない...#7 VecDeque再訪
Rust、何もわからない...#7 VecDeque再訪Rust、何もわからない...#7 VecDeque再訪
Rust、何もわからない...#7 VecDeque再訪
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
Dockerセキュリティ: 今すぐ役に立つテクニックから,次世代技術まで
 
DrupalをDockerで起動してみる
DrupalをDockerで起動してみるDrupalをDockerで起動してみる
DrupalをDockerで起動してみる
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
Protocol Buffers 入門
Protocol Buffers 入門Protocol Buffers 入門
Protocol Buffers 入門
 
Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造Dockerイメージ管理の内部構造
Dockerイメージ管理の内部構造
 
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現するゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
ゼロトラスト・アーキテクチャを無料で(やれるだけ)実現する
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
【Unite 2017 Tokyo】「黒騎士と白の魔王」にみるC#で統一したサーバー/クライアント開発と現実的なUniRx使いこなし術
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証について
 
Fantastic DSL in Python
Fantastic DSL in PythonFantastic DSL in Python
Fantastic DSL in Python
 
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷
 

Similar a ○○大学の本当にあった怖い話

SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-Hiromu Yakura
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 
[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User NamespacesAkihiro Suda
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめMakiko Konoshima
 
2011.06.11 v7から始めるunix まとめ
2011.06.11 v7から始めるunix まとめ2011.06.11 v7から始めるunix まとめ
2011.06.11 v7から始めるunix まとめMakiko Konoshima
 
dofilewrite and vn_write
dofilewrite and vn_writedofilewrite and vn_write
dofilewrite and vn_writekusabanachi
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス5mingame2
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すAromaBlack
 
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。Satoshi Mimura
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstartHideki Saito
 
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumilab
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築Saito5656
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 
デバドラを書いてみよう!
デバドラを書いてみよう!デバドラを書いてみよう!
デバドラを書いてみよう!Masami Ichikawa
 

Similar a ○○大学の本当にあった怖い話 (20)

SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces
 
2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ2011.09.18 v7から始めるunix まとめ
2011.09.18 v7から始めるunix まとめ
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 
SystemV IPC
SystemV IPCSystemV IPC
SystemV IPC
 
2011.06.11 v7から始めるunix まとめ
2011.06.11 v7から始めるunix まとめ2011.06.11 v7から始めるunix まとめ
2011.06.11 v7から始めるunix まとめ
 
dofilewrite and vn_write
dofilewrite and vn_writedofilewrite and vn_write
dofilewrite and vn_write
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス
 
ひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指すひのきのぼうだけで全クリ目指す
ひのきのぼうだけで全クリ目指す
 
実は怖くないDevOps
実は怖くないDevOps実は怖くないDevOps
実は怖くないDevOps
 
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
APASEC 2013 - ROP/JIT を使わずに DEP/ASLR を回避する手法を見てみた。
 
Ansible2.0と実用例
Ansible2.0と実用例Ansible2.0と実用例
Ansible2.0と実用例
 
Dockerと継続的インテグレーション
Dockerと継続的インテグレーションDockerと継続的インテグレーション
Dockerと継続的インテグレーション
 
Ansible quickstart
Ansible quickstartAnsible quickstart
Ansible quickstart
 
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作るgumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
gumiStudy#5 JavaScript でネイティブiPhone/Androidアプリを作る
 
WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築WSL2+docker+JupyterとVS Codeリモート環境の構築
WSL2+docker+JupyterとVS Codeリモート環境の構築
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
デバドラを書いてみよう!
デバドラを書いてみよう!デバドラを書いてみよう!
デバドラを書いてみよう!
 

○○大学の本当にあった怖い話