Fuzzer作るための算段   by足軽

uhm...i don't know how to make fuzzer.

ということで、色んな基礎知識を立てれば、Fuzzerを作る知恵が出てくる
んじゃないかって思いました思いました。

まず、セキュリティ・キャンプでもらった本を通読できるようにする。

Linuxネットワークプログラミングバイブル

Linuxネットワークプログラミングバイブル


ネットワーク知らんことには何も書けんぇだろ。っちゅーことで。

次が非常に悩むんですが、やっぱり

Violent Python: A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers

Violent Python: A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers

これ読んで、C言語でもPythonでもネットワークプログラミング(+α攻撃)も
できるようになったほうがいいなと思いました。
Scapyの使い方もちょっと詳しくのってた気がします。
(パケットパケット投げる投げる)

けどねぇ、これだとFuzzerできないよなー。

なんてたって…Fuzzingってそもそもなんだよ!!
ってなるからっす。

確かにキャンプでファジングやったけでも、fuzzerの概論なんて知らないよ!!

っていうことで、ViolentPythonの次読む本は…これだ!

って言いたんだけど、すごい悩んでいます。
先に、日本語で理解したほうがいいのか。
直接英語読むか。


日本語の方は、ファイルファジングって感じなんで、バイナリの知識が要求されます。
英語の方は、純粋にファジングの概論がわかるのでいいんですが、
英語です。読むのに時間かかります。

uhm...まぁいいや。

とりあえず、英語の方から読みたいと思います。
(じゃあViolentPythonは簡単に読めんのかってなるけど、ViolentPythonは
内容がすごい簡単なので、すぐに読めると思う(適当))

Fuzzing for Software Security Testing and Quality Assurance (Artech House Information Security and Privacy)

Fuzzing for Software Security Testing and Quality Assurance (Artech House Information Security and Privacy)

の次に

リバースエンジニアリング ―Pythonによるバイナリ解析技法 (Art Of Reversing)

リバースエンジニアリング ―Pythonによるバイナリ解析技法 (Art Of Reversing)

。。。

あれ?けど、リバース・エンジニアリング難しいよな?理解出来んの?

ってなると思うから、

たのしいバイナリの歩き方

たのしいバイナリの歩き方

をリバース・エンジニアリングの前に読む。

あれあれ?それも読めんのか?

さすがに読めると思うけど、ちょっと怖いので、

Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際

Hacking: 美しき策謀 第2版 ―脆弱性攻撃の理論と実際

これを愛甲さんの本の前に復習しておきます。(これはちゃんと読んだからな?)

まぁ…とりあえずこれぐらいやれば…

けど、さすがにこれだけの知識では知恵になるけど、作ることは難しい。

なんでかっていうと、Pythonでfuzzerを作るけど、
今までそんな大きいプログラミングしたことがない!!(ドヤ

だから、人のコード見て勉強しようと思います。

linux/net/caif/cfpkt_skbuff.c
linux/net/core/pktgen.c
linux/Documentation/networking/pktgen.txt
>ってそれC言語やん。<

Sulleyのソースなんか読んだら楽しいかもですね。

はい。がんばります。