進捗報告
検知機構のコードを修正した ( 5 sessions + 40 mins )
誤検知の原因を今日も探していて,どうやらその大きな原因として,eq operatorの実装があるということを突き止めた.eqは数値比較のためのオペレータとして使われる一方で,値が幾つセットされたかを確認するためにも使われる.ここで,自分の実装では数値データと文字列データとが完全に分離されてしまっていたので,文字列データの個数を数えようとした時に初期化されて以降変更されていない数値の方を検査対象データと勘違いして比較をかけていて,それが誤検知の元になっていた.次のセッションではこの問題を修正していく.
カウンタ処理を実装してみたが,以前として問題は治らず.ヘッダの検索処理がおかしいのか?あちこち疑うところがある.
カウンタ処理付近を疑ってデバッガを回したりしていたのだが,作業の途中で別のところに原因があることに気がついた.ルールのパースのコードを見ていたら,2つのbool型の変数の格納が入れ替わっていた.それが原因.この手の凡ミスが,デバッグの時には一番障害になる.デバッガのおかげで気付いたので,疑わしいところは推測とかせずに,大人しくデバッガで司祭に見つめながら一周まわした方がいい.残りの誤検知はchaineが未実装であることに起因している気がするので,次のセッションではchainedのスキップの処理を実装していく.
chainルールをスキップすることによって誤検知をかなり取り除くことができたが,後2,3件ほどの誤検知が残っている.これらの原因がよくわからないが,variableのpicking自体は非常に正確に行われているようなので,ルールの比較とか, SecRuleの処理側での誤りだと思う.次のセッションで,この問題に時間をかけていく.
リクエストの誤検知については,header_tのデータサイズとメモリサイズが分割されていなかったことが原因であった.これを切り分けてデータサイズを適切にアップデートするようにすることで誤検知をなくすことができた.ただし,なぜか閾値の判定が誤検知を起こしているように思う.次のセッションではその原因を探っていく.
研修ワークを進めた ( 50 mins + )
アシモフの小説を読み進めた ( 40 mins + )
生活面
14時起床.おおよそ8時間睡眠.十分な覚醒度を得た.
夜は,米,鮭,フルグラでバランスよく食べれた.
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。