HOME»情報処理安全確保支援士掲示板»セキュアプログラミングについて
投稿する

[1023] セキュアプログラミングについて

 初学者さん(No.1) 
支援士の午後1の問題について
よくセキュアプログラミングについて難易度が高いという風に言われてプログラミング未経験者は選択しない方がよいというアドバイスを聞くのですが、それぞれの年度でどの大問がプログラミングに関する問題か判別する方法があればご教授いただければ大変ありがたいです。
2023.02.23 19:43
pixさん(No.2) 
SC ダイヤモンドマイスター
どの大問がセキュアプログラミングかは直接見て確かめるしかありません。
H29以降のセキュアプログラミングは以下です。
R4春PM1-1 Java,SQL
R3秋PM2-1 ECMAScript
R2秋PM2-1 Java
H30秋PM1-1 C
H30春PM1-1 C++
H29秋PM1-2 Java,SQL
H29春PM1-2 HTML

セキュアプログラミング自体の難易度はプログラミング経験者ならばそれほど
高いものではないです。
しかし最低限の知識として、C++,Java,ECMAScript,HTML,SQLを読めることが
前提となります。
2023.02.23 20:20
GinSanaさん(No.3) 
SC ブロンズマイスター
この投稿は投稿者により削除されました。(2023.02.23 23:51)
2023.02.23 23:51
GinSanaさん(No.4) 
SC ブロンズマイスター
昔は基本午後1の問1がそうでしたが、いっときなくなってから午後2でおまけみたいにでるようになったくらいです。令和4年春は、また戻ったか・・・とか思いましたが秋はなかったというね。そんなにプログラミングがいやか・・・?

普段からプログラムを書かずに来ちゃって基本情報を言語がイヤだとかアルゴがイヤだとか言って応用に来たようなやつは選ばない方がいいんじゃないの?ってくらいの難易度だと思います。難易度が高い、は山登りの初心者が官ノ倉山(山登りの中級者向け)にいきなり挑むようなレベルな気がします  たとえが変だけど

いま見返したら平成30年のってピュアCかと思ってたんだけど、C++だったんですね。ほんとにC++だなあと思ったのは平成22年春のときくらいですね。C++って書くから敷居が高いんだよ、って昔思ったんですが、実際に出題されるのはただのCですね  ほんとに

セキュアプログラミングにはある意味関係あるようでないのが、平成29年あたりに2014年のシェルショックをネタにした問題があって、前回だか前々回もtarのオプションがらみの問題があったので(正直tarのオプションは、gnu拡張したやつが想像力が足りなかったと思う)、linuxのコマンドもある程度わかっている方がやりやすいです。ある程度知っときましょう
いまやwslで大抵なんでもできます
2023.02.23 23:51
 初学者さん(No.5) 
お二方ともご丁寧に本当にありがとうございます!!
アドバイスいただいた内容をもとに学習計画を考えてみます!!
2023.02.24 10:49
pixさん(No.6) 
SC ダイヤモンドマイスター
>GinSanaさん
私も前々からその問題のtarオプション抑制の方法がわからなかったので、
気になったので調べてみました。多分これになると思われます。
---
www ALL=NOPASSWD:/bin/tar
www ALL=NOPASSWD:!/bin/tar *--checkpoint-action*
---
sudoの設定でワイルドカード文字が使えることを知っていないと解答できないです。
2023.02.24 11:11
GinSanaさん(No.7) 
SC ブロンズマイスター
この投稿は投稿者により削除されました。(2023.02.24 14:07)
2023.02.24 14:07
GinSanaさん(No.8) 
SC ブロンズマイスター
>pixさん(No.6)
>sudoの設定でワイルドカード文字が使えることを知っていないと
ある意味shellの展開(ワイルドカード)は共通原理なので、sudoで使えないなんてことはないことくらい知ってるだろ・・・って前段がありそうですね。まあ知らないほうが悪い、正真正銘の無知は罪、という業界なんで、そうなんですけどね。
展開を知っていても(普段腐るほどshellscriptとかを書いている割には)、実際に問題を見た時点でsodoersでアスタか・・・使えたっけかなあ、というかsudoersなんかしょっちゅう触るもんじゃないから・・・ってみんななると思います
sudoersって現場でもコマンド単位(オプションつけない)でしか書かないから、そもそもオプション書く概念が頭に浮かばないんですよね。そういう意味では、いい勉強になりました。
究極的には、gnuのtarをアンスコして、bsdに変えるとオプションがそもそもないのでsodoを書かなくてもよくなります・・・
2023.02.24 14:07
橙色文書さん(No.9) 
>GinSanaさん、pixさん
実機で確認してみたことがあり、以下のように複数行を1行に収めることもできました。
www ALL=(root) NOPASSWD: /bin/tar, !/bin/tar *NGOPT*

問題文に登場したものとは別のオプションでも、sudo tarコマンド内でwhoamiコマンドを実行しrootと表示できました。
1つのオプションで実行できたところで確認を止めましたから、まだ他にもあるかもしれません。
これはGNU tarがアップグレードされるたびにオプションを精査しなければならないことを意味します。
よって模範解答は実務における最適解ではありません。

シェルスクリプトにtarコマンドを記述し、そのシェルスクリプトをtarコマンドの代わりにsudoへ設定して実行できることも確認しました。
この方式であればシェルスクリプトに記述したオプションしか実行できませんから、イニシャルコストだけで済みます。

模範解答であれ上記の最適解であれ、Web検索すらできない試験会場の10分間で導き出すのは不可能です。
この設問は課題解決能力を問うもので、効果があり・実現可能性が高く・新たな脆弱性を生じない対策なら満点であると理解しています。
「NAS-AのOSをLinuxからUNIXへ変更する」という過剰な対策でさえ不正解ではありませんから、1点であっても得点できるでしょう。

最低限、UNIX系OSのアクセス制御・sudoコマンドによる最小特権という基礎を理解していれば、高度な知識が不要な設問だったと考えています。
基礎を有益な形に発展させるための応用力も必要でしたが、習得の方法はわかりません。
2023.02.24 20:51

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2014-2024 情報処理安全確保支援士ドットコム All Rights Reserved.

Pagetop