タグ

ブックマーク / ya.maya.st (11)

  • bash の危険な算術式 - どさにっき

    ■ bash の危険な算術式 _ 使ってる人がいちばん多いだろうからタイトルでは bash としてるけど、ここで取り上げることは zsh および ksh 一族(家 ksh、pdksh、mksh)にも該当する。ash、dash などでは該当しない。 _ 以下のシェルスクリプトには脆弱性がある。わかるだろうか。 #!/bin/bash # "品目,単価,個数" の形式の CSV を読んで、"品目,合計金額" の形式で出力する csv="foo.csv" while IFS=, read item price num; do echo "$item,$((price*num))" done < "$csv" これ、細工された CSV ファイルをわせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

    korin
    korin 2019/09/02
    はてぶ経由で。20年以上前からbashやcshは(分かりにくいから)危ないって言われていたと思う。2003年には、execlineと言うスクリプディング用、代替シェルも出ていた。普段はbashかdash使うけど。。。
  • どさにっき

    ■ root KSK ロールオーバー _ 新聞はそっち方面の専門家でない人にもニュースを届ける必要があるので、難しい内容も噛み砕いて説明する必要があって、その結果まわりくどい説明になっちゃうことがあるのは理解している。事情はわかってるので、ふだんはそういう記事を見つけても記者さん苦心したんだろうな、とあたたかい目で見るようにしている。が、いくらなんでも これはひどい。噛み砕いて説明するのに苦心したのはすごくよく伝わってくる。しかしその挑戦にもかかわらず素人さんが理解できる内容になっているとは到底思えないし、わかりやすい説明のために専門用語を使っていないため、そっち方面を理解している人に対してさえ意味不明。この記事の内容を事前に知っていた人(=記事を読む必要がない人)が何度か読み直して「ああ、あのことか」と気がつくのがやっと。誰に対しても存在する価値のない記事になっちゃってる。もうすこし何と

    korin
    korin 2017/07/27
  • どさにっき

    2010年9月11日(土) ■ All Expressions _ ひさびさにあなごる。最近のではなく、 3年半も前の問題。「指定された数の並びに +,-,* とカッコをてきとーに挿入して得られるすべての組み合わせの式を計算せよ」。たとえば、1, 9, 13 が与えられた場合は、(1+(9+13)), (1-(9+13)), (1*(9+13)), (1+(9-13)), ... を計算する。 _ どうやって解くか考える。まず、カッコがうざい。ので、とっぱらう。ということは、逆ポーランド記法に変換すればよい。つまり、1 + 9 → 1 9 + に変換。RPN で表記しても数字の並びは変わらず、演算子の位置が変わるだけ。しかもカッコは消える。とゆーことで、n 個の数値に対して n-1 個の演算子をてきとーに散りばめた式を作って、あとは外部コマンドに丸投げしてやればよい。 _ という方針は見え

    korin
    korin 2010/09/12
  • どさにっき

    2009年11月23日(月) 勤労感謝の日 ■ devfs _ chroot なデーモンを動かそうとしてごにょごにょ。が、chroot 先で必要となるデバイスファイルを作ろうとしてもうまくいかない。 # ls -l /dev/random # ホンモノを確認 crw-rw-rw- 1 root wheel 0, 18 Nov 5 05:52 /dev/random # mknod random c 0 18 # マネして作る # chmod 666 random # ls -l random crw-rw-rw- 1 root wheel 0, 18 Nov 23 19:38 random # dd if=random bs=16 count=1 | hexdump # が、使えない dd: random: Operation not supported # dd if=/dev/rand

  • どさにっき

    2009年10月13日(火) ■ ネットワークが遅いって? _ サーバのネットワーク速度の調査/測定方法 。うーん。 次に実際に現在の回線速度を netperf で測定します。 トラブルシューティングに netperf を持ち出してくる例を初めて見た。よい子はマネしちゃいけません。netperf はネットワークに負荷をかけるベンチマークツールです。こいつによるトラフィックでネットワークが飽和して正常なホストまで遅くなる可能性がゼロではない(よほどのことがないと起きないけど)。あれは実験室環境で使うもの。「よほどのこと」が起きないと確信できるのでなければ番環境で使うのはやめておいた方がいい。 最後に ethtool で NIC の現在の状態を調べます。 いや、それいちばん最初にやろうよ。今どんな状態にあるのか把握しないでベンチマークしてどうすんの。 _ あと、調査する際には netstat

  • どさにっき

    2009年6月24日(水) ■ slowloris _ 最近話題になってる Apache その他に対する DoS 攻撃ツール slowloris。中途半端なリクエストヘッダを送って、宙ぶらりんのままの HTTP セッションを大量に生成させてサーバ側のリソースをパンクさせる、という理屈らしい。消化しきれない中途半端なリクエストを Apache がおうとしてるのが原因ってことだから、ちゃんと消化できる状態になるのを待ってから Apache にわせるようにしてやればこの攻撃にも耐えられるよね、きっと。 _ ということで試してみた。 AcceptFilter。FreeBSD で AcceptFilter http httpready と設定すると、accf_http(9) を利用してカーネルレベルで HTTP リクエストをバッファリングして、リクエスト全体を受信完了するまで apache にリ

    korin
    korin 2009/06/25
    slowloris
  • どさにっき

    2006年8月1日(火) ■ sendmail は遅くない _ この前各種 MTA の(いいかげんな)性能試験をやったが、 sendmail は情けないぐらい遅かった。しかし、これは わしの実感とは違いすぎた。どうにも気になったので、改めて実験してみた。 _ この前は並列30配送だったが、今度は控え目に10に抑えてみる。それ以外の条件ははこの前と同じで実験。MSP → sendmail にかかる時間は % time ./smtp-source -s 10 -m 10000 -t postmaster@MTA2 MTA1 29.580u 2.560s 6:44.83 7.9% 0+0k 0+0io 0pf+0w で、sendmail → MTA2 も同じだけの時間がかかって、1万通を送るのに7分弱。同時30接続だった 前回より4倍速いというだけでなく、世間一般では高速だと思われている qma

    korin
    korin 2007/10/30
    sendmailのベンチマークをpostfixのsmtp-sourceで
  • どさにっき - application/x-httpd-php

    2006年7月1日(土) ■ qmail の配信能力を極限まで引き出す方法 _ qmail のログを置くファイルシステムをディスクではなくメモリ上に置くことで配送を高速化、だそうで。が、その結果が5分で1万通って、遅くね? 単純計算で1日で300万通弱。Xeon 3GHz dual でたったのそれっぽっち? qmail ってそんなに遅かったっけ? _ というわけで、ローカルの環境でテストしてみる。実験環境は この前とほぼ同じ。 MSP → MTA1 → MTA2 という構成で MSP から並列30配送、合計1万通を送ったときに MTA1 のキューが掃けるまでの時間を計測。メールのサイズは文72バイト(ヘッダこみで400バイトちょい)の極めて小さなもの。 MSP: postfix のオマケについてくる smtp-source を使用。Celeron 2GHz、512MB の WinXP で

    korin
    korin 2007/10/30
    qmailのベンチマークをpostfixのsmtp-sourceで
  • どさにっき

    2006年5月13日(土) ■ なんとなく、MTA ベンチマーク _ postfix のおまけについてくる smtp-source を使用。SMTP で並列10セッション、合計1000通の送信。宛先はローカルの postmaster で、これはエイリアス展開されて yamaya のメールボックスに落ちる。 % time smtp-source -s10 -m1000 -t postmaster@hostname 127.0.0.1 機材は PenIII 800MHz、256MB の FreeBSD 6.1-STABLE で、sendmail は OS 標準のもの、それ以外は ports でインストール。設定は特記なき場合はインストール時のまま、あるいはホスト名などの最小の設定変更だけ。メールボックス形式は mbox。 _ sendmail-8.13.6: smtp-source 完了まで5

    korin
    korin 2007/10/30
    MTAのベンチマークをpostfixのsmtp-sourceで
  • どさにっき 平ユーザで ports を使う

    2007年1月12日(金) ■ Apache 2.2.4 _ 出た。 _ うーん、--with-included-apr がないと configure でコケる。なんでだろ。インストール済みの古いバージョンの APR を参照しちゃってるのかな。めんどくさいので、深くは追求しない。 _ とりあえず make まで。入れ替えは後で。 _ この前のパッチはたぶん使えなくなってると思う。実際に確認したわけじゃないけど。 ■ ローグ PS2 _ ちょとまて。太田純監修ってどういうことだ。rogue 風味じゃなくて、ほんまもんの rogue を PS2 で出すのか? 正気か? てゆーか最近 fj 見てないんだけど太田さんは今なにやってんの。 _ とりあえず1ヶ所だけツッコミ入れたい。 ローグは80年代にコンピューターのキー操作の習得用ソフトとして開発され、 ちげーよ! _ ひさしぶりにインストールして

    korin
    korin 2007/05/03
  • qmail RFC violations

    qmail の RFC 違反 違反してるからといって、それを糾弾するつもりも、使うなというつもりもないし、qmail 以外の MTA がまったく違反をしていないというつもりもない。ただ、他の MTA と比べてわりと目につきやすいところでやってるので、とりあえず気がついたところをメモしてみたもの。さらに、Qmail bugs and wishlist. というページの情報も加えてある。読めばわかるが、qmail-pop3d がかなり悲惨。 あんまり詳しく調査しているわけではないので鵜呑みにはしないように。間違いや追加情報があれば教えてください。 qmail-send: ダブルバウンス/VERP qmail-remote: 8BITMIME/バックアップ MX qmail-pop3d: サイズ/よけいな空行/LAST/STAT qmail-send: ダブルバウンスの envelope sen

    korin
    korin 2005/12/14
    qmail のRFC違反
  • 1