はじめに Linuxのカーネルスタックオーバフローの検知機能の実装について記述します. Linux ver. 4.20.11のソースコードを見ていきます. アーキテクチャは,x86_64です. カーネルスタックオーバフロー検知機能 そもそもカーネルスタックオーバフローとは カーネルスタックとは,プロセスがシステムコールを発行するなどし,カーネル内のコンテキストに切り替わった際に使用するスタックです.この記事を読む人には,いらない説明だと思いますが,ユーザ側では,ユーザ用のスタック領域が別にあります.(Linuxのユーザプロセスのメモリマップについて)を見るとよく分かると思います. スタック用に使用できる領域は,上限があります. しかし,データをpushして使用している領域が伸長することにより,上限を超えてデータをpushしてしまうことがあります. これが,スタックオーバーフローであり,シス