成果物から始めるプログラミング学習

教材を読み終わったとき、手元に
あなた自身の公開できるWebサイトが完成しています。

Tsumiki は、練習用の課題を解く教材ではありません。1章ごとに、あなた自身のサイトが少しずつ育っていきます。

第0章をはじめる(約70分)コースを選ぶ

無料・登録不要。必要なのは VS Code とブラウザだけ。

コース1の完成見本。自己紹介サイトに行き先カードとメモ機能が並んでいる。
これは教材の完成見本です。10章後、これの「あなた版」が公開URL付きで手元に残ります。 完成見本をさわってみる →

ふつうの学習サイトと違うところ

自分のパソコンで作る

ブラウザの中の練習場ではなく、最初からあなたのパソコンにフォルダを作ります。終わったあとも、そのファイルは手元に残ります。

途中で世界に公開する

完走しないと何も得られない構造にはしません。コースの中ほどで、いちど本当に公開してURLを手に入れます。

60%は写経、40%は自分の言葉

いきなり自由課題は出しません。書き写す部分と、自分用に書き換える部分がはっきり分かれています。

道1 — はじめてのプログラミング

どちらから始めるか

HTMLとCSSを書いたことがありますか?

はじめての自分サイトはじめての人はこちら

HTML と CSS だけで、公開できる自己紹介サイトを作りきる

コース1の完成見本。自己紹介サイトに行き先カードとメモ機能が並んでいる。
ボリューム
全10章 / 目安 約9時間
できあがるもの
教材を読み終わったとき、手元にあなた自身の公開できるWebサイトが完成しています。必要なのは VS Code とブラウザだけ。ターミナルもGitも使いません。
前提
前提はありません。使うのは VS Code とブラウザだけ。ターミナルもGitも出てきません。

第0章をはじめる章の一覧を見る

JavaScript × TypeScript 同時学習コース1を終えた人向け

本物のAPIで動く旅ダッシュボードを作りながら、JSとTSを1章ずつ行き来する

コース2の完成見本。旅ダッシュボードに天気と為替が表示されている。
ボリューム
全11章 / 目安 約15時間
できあがるもの
毎章「まずJSで書いて動かす → 同じファイルをTypeScriptにする」の順で進みます。JSがどう壊れるかを自分の画面で見てから型を入れるので、型が何から守ってくれているのかが手触りで分かります。作るのは天気と為替が本物のAPIで動く、公開URL付きのダッシュボードです。
前提
HTMLとCSSを書いたことがある人向けです。ターミナルとNode.jsを使います。

第0章をはじめる章の一覧を見る

道2 — 言語の試食コーナー

ミニ体験コース — 言語の試食コーナー

どの言語が自分に合うか、15分の試食から始められます。インストールは要りません。

Python — 面倒ごとを自動化する

標準ライブラリだけで、毎日の面倒を片づける道具を作る

作るもの
ダウンロードフォルダを片づけるスクリプトと、家計CSVの月次レポート
時間
試食 15分(インストール不要)
持ち帰り 約2.5時間
環境構築
重さ 1 / 3コース1修了相当(VS Codeとファイル操作)

試食してみる章の一覧

Go — 配れる道具を一瞬で作る

単一の実行ファイルにまとまる、配れるCLIを作る

作るもの
リンクの生死をまとめて調べるCLI(1個の実行ファイル)
時間
試食 15分(インストール不要)
持ち帰り 約2.5時間
環境構築
重さ 1 / 3コース2の第0章相当(ターミナルの4コマンド)

試食してみる章の一覧

Git / GitHub — 作品に歴史と住所を与える

作ったものに履歴を付けて、世界に住所を与える

作るもの
公開GitHubプロフィールと、GitHub Pagesで公開した自分のサイト
時間
試食 15分(インストール不要)
持ち帰り 約2.5時間
環境構築
重さ 1.5 / 3コース1修了相当

試食してみる章の一覧

Linux コマンド — 黒い画面を自分の道具にする

怖かった黒い画面を、毎日使える自分の道具に変える

作るもの
作品をワンコマンドで守る backup.sh と、自分で書いたコマンド帳
時間
試食 20分(インストール不要)
持ち帰り 約3時間
環境構築
重さ 2 / 3コース1修了相当(ファイル操作の考え方)

試食してみる章の一覧

React Native — 自分のスマホで動くアプリ

自分のスマホで本当に動くアプリを、その日のうちに

作るもの
自分のスマホのExpo Goから開ける「旅先ルーレット」
時間
試食 20分(インストール不要)
持ち帰り 約2.5時間
環境構築
重さ 2 / 3コース2修了相当(Node導入済み)+スマホ実機

試食してみる章の一覧

Ruby — 書き心地を味わう

書いていて気持ちいい、という価値をそのまま体験する

作るもの
1行日記のCLI(追記・一覧・ランダム振り返り)
時間
試食 15分(インストール不要)
持ち帰り 約2時間
環境構築
重さ 1.5 / 3コース1修了相当

試食してみる章の一覧

Rust — コンパイラと二人三脚で書く

コンパイラを敵ではなく相棒として使う感覚をつかむ

作るもの
買い物メモCLIと、cargo build で作る実行ファイル
時間
試食 20分(インストール不要)
持ち帰り 約3時間
環境構築
重さ 3 / 3コース2の第0章相当(ターミナルの4コマンド)

試食してみる章の一覧

C++ — コンピュータの素顔に触れる

多くの言語の祖語に触れ、コンパイルと速度を体感する

作るもの
友だちのPCでも動く、数当てゲームの実行ファイル
時間
試食 20分(インストール不要)
持ち帰り 約2.5時間
環境構築
重さ 2.5 / 3コース2の第0章相当(ターミナルの4コマンド)

試食してみる章の一覧

道3 — セキュリティエンジニアへの道

作ったものが、どう壊れるか

「作る側」を終えた人が、Web・スマホ・低レイヤーの脆弱性診断へ進むための道です。8つのトラックを、法と倫理から順に上っていきます。

T0法と倫理

すべての実習の前提。何が合法で、どこまでが許された環境か。ここを通らずに先はない。

セキュリティの法と倫理ミニ

不正アクセス禁止法・著作権・責任ある開示。手を動かす前に、線を引く。

実習
コード実行なし
環境の重さ
重さ 0 / 3
前提
前提はありません

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

責任ある開示を書くミニ

見つけた穴を、正しく・穏当に伝える。IPA早期警戒パートナーシップの流れ。

実習
コード実行なし
環境の重さ
重さ 0 / 3
前提
sec-law 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

ツール導入とライセンスの読み方ミニ

Ghidra・gdb・Wireshark を公式導線で入れ、OSS と無償プロプラを見分ける。

実習
コード実行なし
環境の重さ
重さ 2 / 3
前提
sec-law + mini-linux

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

CTF のルールと writeup の作法ミニ

競技規約を守り、他人の問題や writeup を転載しない書き方。

実習
コード実行なし
環境の重さ
重さ 0 / 3
前提
sec-law 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

自分だけの脆弱ターゲットを作るミニ

オリジナルのやられアプリを1本設計する。著作権とインターネット非公開の実践。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
sec-law + Web基礎(sec-web-basics 推奨)

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

T1診断の土台・入口

ゼロインストールの試食から、HTTP を手で話し、プロキシを立てるところまで。

Web はどう壊れるか — 15分の脆弱性試食ミニ

サンドボックス内で本物の DOM XSS を起こす。ゼロインストールの入口。

実習
ブラウザ内で完結
環境の重さ
重さ 0 / 3
前提
course-1 推奨 / sec-law の同意

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

HTTP を手で話す — リクエストの解剖ミニ

curl と Repeater で、メソッド・ヘッダ・Cookie を手で組む。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
course-2 推奨

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

Burp Suite 最初の一歩ミニ

プロキシ・CA証明書・スコープ。最頻の環境の壁を単独で超える。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
sec-http 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

T2低レイヤー・システム

C・アセンブリ・システムコール。壊れ方の最下層を、観察に徹して読む。

C言語 — ポインタとメモリ本コース

変数は番地のバイト列。pwn・rev・監査の最下層を読む。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
mini-cpp / mini-linux(gcc が使えること)

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

コンピュータのしくみ — アセンブリで読む CPU とスタック本コース

x86-64 を読む。レジスタ・呼出規約・スタックフレーム。rev の核。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
sec-c 推奨(gcc/objdump/gdb が使えること)

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

バイナリを覗くミニ

file・od・strings・readelfの頭。低レイヤーの最易な入口。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
mini-linux 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

システムコールを覗くミニ

straceでOSの境界を観察する。write(2)だけのhello。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
mini-linux 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

プロセスと仮想メモリミニ

ps・/proc・maps・シグナル。ASLRの入口。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
mini-linux / mini-syscall

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

パケットを手で見るミニ

nc・curl -v・自作キャプチャで、自分のloopbackを解剖する。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
mini-linux / course-2

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

T3Web 診断

攻めて、直して、再検証する。XSS・IDOR・インジェクションから業務ロジックまで。

Web セキュリティの土台(旗艦)本コース

反射XSS・IDOR・オープンリダイレクトを、攻めて・直して・再検証する。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
course-1/2 + T1(sec-http/sec-burp 推奨)

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

インジェクションを体で覚える本コース

XSS全種・SQLi・コマンド・SSTI・パストラバーサルと、直す側を対で。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
sec-web-basics 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

アクセス制御と認可の壊れ方本コース

IDOR・BOLA・権限昇格。ツールが最も見つけにくい高価値領域。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
sec-web-basics 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

サーバサイドの深い穴本コース

SSRF と安全でないデシリアライズ。サーバ自身が、攻撃の踏み台になる。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
sec-injection 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

API と GraphQL の診断本コース

BOLA・BFLA・mass assignment・introspection。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
sec-authz 修了。npm install graphql が使えること

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

ビジネスロジックと競合状態本コース

ツールが原理的に見つけないシニア領域。TOCTOU と競合。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
Web診断を複数

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

同一オリジンポリシーと CORSミニ

SOP と CORS 誤設定を、2オリジン構成で体感する。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
sec-web-basics 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

セキュリティヘッダーと CSPミニ

Tsumiki 自身の CSP をドッグフーディング教材にする。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
XSS を既習

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

T4認証・認可

セッション・Cookie・JWT・OAuth。誰が誰であるかの壊れ方。

認証とセッションの診断本コース

Cookie・セッション・CSRF・JWT・OAuth・OIDC。OAuth モック同梱。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
sec-web-basics / sec-authz

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

JWT を分解するミニ

デコード・検証・偽造・alg 混同・弱鍵。自作トークン限定。

実習
ブラウザ内で完結
環境の重さ
重さ 1 / 3
前提
sec-http 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

T5診断実務・キャリア

報告書・ソースコード監査・セキュアコーディング。売り物になる成果物を書く。

脆弱性診断の歩き方 — 報告書まで本コース

診断業務が実際に売る成果物=診断報告書を1本書く。キャリア最重要。

実習
コード実行なし
環境の重さ
重さ 0 / 3
前提
Web診断を数本

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

ソースコード診断入門本コース

動かさずに読む。source→sink のテイント追跡で穴を見つける。

実習
コード実行なし
環境の重さ
重さ 0 / 3
前提
course-2 + Web診断

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

作らせない側 — セキュアコーディング本コース

監査の物差し=あるべき実装。攻撃各コースの「直す側」を体系化する。

実習
コード実行なし
環境の重さ
重さ 0 / 3
前提
Web診断を数本

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

依存関係の脆弱性 — SCA 入門ミニ

npm audit・lockfile・typosquatting。防御の観点で。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
course-2 修了。npm が使えること

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

T6モバイル・クラウド診断

自分の Thousand SKY と Firebase を、許可された環境として診断する。

スマホアプリ診断入門本コース

自作の練習用APKを、静的解析で読む。MASVSライト。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
sec-auth + sec-audit(コード読解の基礎)

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

Firebase の落とし穴ミニ

セキュリティルールという発想を、自作モックで理解する。実案件最頻の所見。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
sec-authz(認可の考え方)

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

T7CTF

安全に旗を立てる。secret-notes-ctf を入口に、6カテゴリと実戦ワークフローへ。

CTF 入門 — 安全に始めて旗を立てる本コース

安全ゲート・全員必修。secret-notes-ctf で初回を通しで攻略する。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
course-1 / mini-linux

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

Web の穴を見つけて旗を取るミニ

新規オリジナルの arena-web で、競技文脈の旗探し。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
ctf-intro 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

弱い暗号を解いて旗を取るミニ

自作 challenge.py を、手元のPythonで解く。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
ctf-intro / mini-python

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

プログラムを読み解いて鍵を暴くミニ

自作クラックミー。ソースとレシピを配り、バイナリは配らない。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
ctf-intro / sec-asm 推奨

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

自作バイナリで教育目的にメモリを操るミニ

自作 vuln.c を、手元でビルドしてret2win。武器化はしない。

実習
localhost で実習
環境の重さ
重さ 2 / 3
前提
ctf-intro / sec-c

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

残されたデータから真相を掘り出すミニ

自作生成物(carving・steg・pcap)のみを配布する。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
ctf-intro 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

檻(jail)を破り符号を解くミニ

自作 pyjail とエンコード連鎖。手元のpython3で解く。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
ctf-intro / mini-python

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

実戦ワークフロー(triage→hints→writeup)ミニ

問題は出さない。既存3スキルをAlpacaHackへ橋渡しする。

実習
コード実行なし
環境の重さ
重さ 0 / 3
前提
ctf-intro + カテゴリ1本

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧

自作して直す(防御的capstone)ミニ

攻めて分かった穴を塞ぐ。修正後にexploitが失敗することをverify。

実習
localhost で実習
環境の重さ
重さ 1 / 3
前提
mini-ctf-web 修了

倫理ゲート必須自作・許可環境・CTF のみ

章の一覧