2019年06月07日に初出の投稿

Last modified: 2019-07-11

crontabコマンドにはrオプション(Remove)があり、これを実行すると何の警告もなく全てが消え失せる。

crontab -e は「絶対に」使ってはいけない

ひとくちに「セキュリティ担当者」とか「セキュリティ・エンジニア」と言っても、こういうマネジメントが全く分かっていない末端のコーダみたいな人たちも自称していたり、なにやら勉強会を開いていたりするので、やはり国内は特に酷いがきちんとレベルの低い議論はダメだと指摘するような習慣がないといけない。もちろん、この記事は単なる小手先の手順でしかなく、企業が正式に導入するようなことではない。せいぜい、個人事業主が好きにやるか、プライベートで cron を使うような人が好きにやればいいというだけの話でしかない。 このような、リスクだけを騒いで現実的なマネジメントやポリシーを無視した小手先の「セキュリティ対策」だけを喚く素人に特徴的なのが、やたらと危機的なキーワードを連呼することだ「絶対」とか「恐怖」とか「絶望」とか「消失」といった言葉を、セキュリティに何やら詳しそうな人間が書くだけで何か危険なことがあるように見えてしまうものだ。しかし、こんなのは言葉による牽制(ロゴロジー)やレトリックを理解していれば、政治家や経団連がよく使う《観測気球》的な泳がせ発言の一種だと分かる。現実には、そんな危機的な状況などない。もし、コンピュータのユーザが原理的あるいは自然に夥しい数のタイプミスを日常的かつ頻繁に繰り返し、データを消失するような脆弱性が明白に高いというのであれば、そもそも設定内容を消去するようなオプションを設計したり実装する方が間違っている。それは、いかなるコマンドにも言える。よって、タイプミスの可能性だけで e オプションの利用を「絶対」にやめろというのであれば、この人はそもそも rm コマンドを使うのをやめなくてはいけない(なぜなら rm と rmdir を取り違える可能性があるし、他の色々な悲惨とも言えるタイプミスが起きる可能性もある)。人がタイプミスをするのは、何もコマンドのオプションを打ち込むときだけに限った話ではなく、そもそも何であれコマンドを打ちこむという動作においても誤る可能性があるからだ。(極論を書いているように見えると思うが、要するに上記の記事が単純な極論であり、同じ前提で議論すればこういう話を展開できるという実例を示しているのである。) われわれプロの情報セキュリティの実務家は、もっと人の誤りについて現実的な理解をしているし、業務手順のポリシーにおいても適切で無理のないルールを作る。もちろん、人はミスを犯す可能性があり、ミスを犯しやすい状況というものは減らす方が望ましい。しかし、それはコマンドを使うなとか、コマンドのオプションを使うなという、それこそロボットが従えばいいような単調な手順だけで解決するような問題ではない。 もし e というキーを、キーボード上で隣にある r と打ち間違えるというのであれば、そもそもなんで画面に "crontab -r" と表示されているにもかかわらず Enter を打ち込んでしまうのかという問題が最初に出てくるだろう。もちろん、タイプが速い人はコマンドの文字列をいちいち確認しながら Enter など押さずに、コマンドを入力する一環として Enter も一部として打ち込む。よって、画面に何が表示されているかを確認するよりも先に Enter を打ち込んでしまっていることも多いだろう。それなら、シェルの alias で "crone" という文字列を "cron -e" として設定し、e オプションは使わなければいいとか、色々な対策がありうる(キーを打ち間違えることと、或るコマンドのオプションを間違えることは、同じではない)。それを「宗派」だの、何の根拠もなしにリスクがあるというだけでやめた方がいいだの、セキュリティ対策とは、そんな単純なものではない。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook