0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MacBookPro M5 32GBでqwen3.8:27b-mlx での設計・プログラミングの実験

0
Posted at

qwen3.8:27b-mlx で設計とプログラミングの実験

前提環境

  • MacBook Pro M5 32GB
  • Opencode

お題:OSコマンドインジェクションのダメな例と対処例

まずはデザインのプロンプト

あなたは専属のシステムアーキテクトです。
以下の要件でプログラムを作成したいので、計画を作成してDesign.mdに保存してください
**途中で確認は不要です、最後まで実施してください**

## OSコマンドインジェクションの事例
- アーキテクチャ
  - Java
  - Spring boot
  - Maven
  - thymeleaf
- コマンドインジェクション
  - Web画面の入力項目に入れたコマンドが実行される

結果(Design.md)がちゃんと出ました。全体で350行ほど

抜粋

# OSコマンドインジェクション 教育事例アプリ 設計書(Design.md)

## 1. 概要

### 1.1 目的
本ドキュメントは、**OSコマンドインジェクション(CWE-78 / CWE-94系)の危険性を可視化・習得する目的**の教育用Spring Bootアプリケーションの設計を示す。

- Web画面の入力項目に注入されたコマンドがシェルに通される **脆弱パターン** を提示する
- 同じ要件に対して安全な処理が行える **対策パターン(3種)** を提示する
- フロントエンド上で両結果を並べて対比できる

> 本アプリは「攻撃可能性の実演」ではなく「理解・防御の学習」が目的である。実行環境はサンドボックス化し、悪意ある実コマンドの常時実行を行わないこと(詳細は §9)。

<中略>

## 12. デザイン上の判断と理由(Summary)
1. **実行責務を Service/Pinger に集約** → 脆弱点の所在が可視化可能。
2. **`Pinger(抽象)` をテスト差し替え可能にする** → OS非依存で攻撃パズルを検証(T2/T3)。CI で安全。
3. **白リスト検証(InputSanitizer)** が最優先対策、引数分割検証次点。API選択(`ProcessBuilder`)の重要性を示す。
4. **5つの Mode(RAW/SHELL/WHITELIST/VALIDATE/BUILDER)による対比UI**が、本アプリの教育価値の中核。
   攻撃入力に対し「実行される / 拒否される」を UI で一目比較できる。

---
*本文書は実装可能な詳細を提供するものとして作成した。実装は §3〜§11 に従い行うこと。*

次にプログラム作成指示のプロンプト

あなたは専属のシステムエンジニアです。
Design.mdに沿ってソースコードを生成してください

ちゃんとソースが生成されて動作させた画面が以下
image.png

RAW、SHELLのモードの場合は、「cat /etc/passwd」が実行できちゃう感じになります。

感想

今までの、qwen2.5-coder:14bや、qwen3-coder:30bはちょっと癖があって使いにくかったのですが、qwen3.8:27bは賢いので、プロンプトをアバウトに書いてもちゃんと理解してくれて、期待通りのものができました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?