めも

ゲームの攻略・プログラミングの勉強内容・読んだ本の感想のような雑記を主に投稿するブログです

応用情報技術者試験の対策時のメモ〜午後対策(1)

この記事は何

応用情報技術者試験の本番30日前の勉強時のめも。 午後の過去問を解いて、間違えた問題や知らないワードをメモする。 特におすすめ分野とかは載せてないので、探している方は他の方のサイトを参照してみてください。 以下、あくまで自分の解釈や理解なので正しさは保証しません。

次回▼

おまけ▼

最近youtubeはじめました!

試験内容

要綱・時間・基準については最新の内容を確認してください。

2020年時点の試験では、

  • 午前:9:30~12:00、150分間
  • 午後:13:00~15:30、150分間
  • 合格基準:午前・午後ともに100点満点中60点以上

対策

あまりに試験に特化すると試験を受かること自体が目的になってしまうので程々に。とはいえ落ちてしまってはどうしようもないので一通り調べてみる。

基本的には過去問を解くことを繰り返す。特に文章で回答する問題は、どの程度の内容の文章が解答の候補になりうるのかをチェックする。 勉強時間は30〜500時間と人によってバラバラ、個人個人の業務や専門の内容によって様々。

個人的には、午後の必須選択「セキュリティ」+「ネットワーク」「データベース」「アルゴリズム」「プロジェクトマネジメント」を中心に勉強を行い、その周辺の問題はわからなかったら調べる方針にしています。

結果

IPA試験の結果をまとめるページ - めも

90点くらいで受かってました。参考書はほとんど読まず、IPAで公開されている過去問を見ながら言葉を調べる+関係するソフトやツールのマニュアルを調べてました。

メモ

全体共通

  • 適切な選択肢を選ぶ問題は図との整合性をチェックする
  • 記述形式で文字が余る場合は一部に問題文テキストも含める
  • (特にセキュリティは)手続きの順番を覚える
  • 適切な文言を埋める問題で用語以外を聞かれている場合は問題文の言葉を一部使用する
    • 対策を聞かれた場合、問題文で困っている人・トラブルが発生している箇所の言葉を見る
  • 『図X中の文言・字句を用いて〜』のような記載がある場合、問題文をほぼ切り抜いた答えになる可能性もあることを考慮する

セキュリティ

午後の必須、覚えることはそこまで多くないので必ず解けるようにする。 「それで答えになるんだ」といった問題もあるかもしれないので参考書や過去問でどのような回答が求められているのかのイメージを掴む(漏洩を防ぐために『廃棄時に物理的に破壊する』、など)。

用語

  • コンピュータ・フォレンジック:コンピュータ・フォレンジック - Wikipedia
    • ステガノグラフィ:バイナリファイル(画像・音声など)の中に別のファイルを埋め込んで隠蔽する
  • ランサムウェア:コンピュータをロック・ファイルを暗号化して使用不可能な状態にして脅迫を行う
  • 暗号化の流れ
    • データ受信者が公開鍵をデータ送信者に送る
    • データ送信者は受信者の公開鍵でデータを暗号化する
    • データ送信者の秘密鍵でデータのダイジェストを暗号化する
    • 受信者の公開鍵で暗号化したデータ+送信者の秘密鍵で暗号化したダイジェストを受信者に送る
    • 受信者は送信者の公開鍵でダイジェストを復元する+受信者の秘密鍵で送られてきたデータを復元する
    • ダイジェストを比較して改竄がないことを確かめる+なりすまし でないことを確かめる
  • 各暗号化法で確認できること
    • 過去問にて、盗聴や改竄が行われていないことを確認できる、といった解答を求められる箇所があったため
    • 公開鍵暗号:相手に鍵を渡して自分だけが秘密鍵で復元する。そのため(自分の秘密鍵を誤って盗まれない限り)盗聴されていないことが確認できる。
    • ハイブリッド暗号:公開鍵を共通鍵暗号で暗号化+送られてきた公開鍵を復元して、復元した公開鍵でデータを復元。
    • MD5/SHA-1/SHA-256ハッシュ:送信前のハッシュ値と送信後のハッシュ値を比較することでデータが同一かどうか確認する。改竄を確認できる。
    • ディジタル署名:送信者が持つ秘密鍵で暗号化した値(ダイジェスト)を受信者が公開鍵で復号できた場合はなりすまし無しだと確認できる。さらにダイジェストが一致していれば改竄していないことも確認できる。
  • 機器や部品への攻撃
  • NTP
    • インターネット用語1分解説~NTPとは~ - JPNIC
    • サーバーや機器の時刻同期に用いられるプロトコル、複数の階層構造になっていて複数の上位レイヤーを参照することで時刻の正確さを担保する場合がある
    • インターネット上のNTPサーバーを参照するためにはFWの設定を変更する必要がある
  • コンピュータウイルスの進入経路
    • ダウンローダ
    • ドロッパ
    • バックドア
    • トロイの木馬
    • ドライブバイダウンロード:ウェブ閲覧時にダウンロードさせる
  • 総当たり攻撃
  • PINGスイープ
  • PKI(Public Key Infrastructure, 公開鍵暗号基盤)
    • 暗号化するときは相手の公開鍵を利用して暗号化、 復号には秘密鍵を利用
  • IDPS
    • 侵入検知システム - Wikipedia
    • 英語の意味を覚えれば解答できる
    • シグナチャベース=正規表現などで攻撃と考えられる表現を指定する
    • ステートフルプロトコル解析=通信状態を「状態」を付与して追跡、正常なプロトコルで行われるDDoSなどは検知できない
    • アノマリーベース=正常である場合を学習する
    • IPS(Intrusion Prevention System)
    • IDS(Intrusion Detection System)
  • SSL/TLS
    • SSLの後継がTLS、SSLは2021年時点では使用は禁止
    • Transport Layer Security - Wikipedia
    • 通信相手の認証・通信内容の暗号化による盗聴防止・改竄の検出が可能になる
      • TLSは公開鍵証明書を使い通信相手の認証を行う
      • リプレイ攻撃(盗聴したデータを認証サーバーに送信する)を回避するための仕組みがある
    • TLS/SSLの既知の脆弱性も含めてチェックする
  • メール
    • S/MIME:S/MIME - Wikipedia
    • MIMEでカプセル化した電子メールの公開鍵方式による暗号化とデジタル署名に関する標準規格

    • スパムメールのフィルタリング
  • RADIUS(Remote Authentication Dial In User Service):ダイアルアップサービス向けの認証サービスを提供するサーバ
  • DHCP(Dynamic Host Configuration Protocol):IPv4ネットワークにおけるネットワークの設定を自動化するためのプロトコル
  • 静的フィルタリング:ネットワーク入門 PartⅢ | 演習で学ぶネットワーク
    • フィルタリングテーブル:
  • DNS:ドメイン名とIPアドレスの紐付けを行う
  • NAT・NAPT
    • 共にグローバルIPアドレスとプライベートIPアドレスを対応づけるもので、外部からプライベートIPアドレスを確認することはできない
    • NAT:グローバルIPアドレスとプライベートIPアドレスを1v1で変換
    • NAPT:1対多のIPアドレス変換が可能になり、複数PCが同時にインターネットにアクセスできるようになる
  • サイバーセキュリティ - Wikipedia
    • 攻撃の手段と防御方法について覚える
    • IPスプーフィング:別のIPアドレスへのなりすましをする 。送信元IPアドレスにLAN内のIPアドレスを指定したパケットを送り込むことで不正アクセスをする。DoS攻撃と同時に行われることが多い。
    • クロスサイトスクリプティング:ユーザが値を決定できる変数値をそのまま表示するなどの脆弱性があるサイトに対して、悪意のあるスクリプトを実行する攻撃手法
    • セッションハイジャック・ワームの実行・個人データの外部送信などを行う。
  • ディレクトリサーバ:ディレクトリサービス | IT用語辞典 | 大塚商会
  • ディジタル証明書
  • プロキシ
    • プロキシサーバの端末認証を利用することでシャドーITによる感染を防ぐ
    • プロキシ - Wikipedia
    • セキュリティの観点から「全てプロキシを経由して各使用者のパソコンなどのクライアントに届くようにする 」設定を行う
  • IDS(Intrusion Detection System):侵入防止システム、IPアドレスのなりすましやポートスキャンの行動を検知して通知するなどの機能がある
  • 水飲み場型攻撃
  • ファイアウォール
    • ファイアウォール - Wikipedia
    • 内外の通信の監視と制限、パケットフィルタリング型・アプリケーションゲートウェイ型・サーキットレベルゲートウェイ型に分けられる
    • WAF(Web Application Firewall)=ウェブアプリケーションに特化したもの
  • CookieとJSON Web Token
    • HTTPリクエストのヘッダに含めて送信される
  • 生体認証
  • パスワードの攻撃
    • ブルートフォース
    • リバースブルートフォース:特定のパスワードを様々なIDに対して使用してみる
    • パスワードリスト:流出したパスワードをいろいろなサービスで試してみる、対策=サイトごとにパスワードを変えるなど
    • レインボー:ハッシュ値の比較によりパスワードを見破る方法
      • ソルト:パスワードに付与する文字列、ユーザーごとに変えるなどしてハッシュ値の比較による解析を難しくする
  • WPA2 | IT用語辞典 | 大塚商会
  • NAT・NAPTとIPアドレスって? | IT情報メディア「LIVRA」
  • ブリッジ (ネットワーク機器) - Wikipedia

ネットワーク・通信

セキュリティの項目でネットワークと関係した問題もよく出るので、セキュリティが必須ならばネットワークも避けることができない感じがある。WEB関係のセキュリティ・通信も出ることがある。

用語

プロトコル

OSI参照モデル

  • 第7層 アプリケーション層:具体的な通信サービス、ファイル転送、FTP・HTTP・HTTPSなど
  • 第6層 プレゼンテーション層:データの表現方法、圧縮方式や文字コードなどの規定
  • 第5層 セッション層:通信の開始から終了までの手順・接続が切れた場合の手順などを指定
  • 第4層 トランスポート層:誤り訂正の方法や再送制御、UDPなど
  • 第3層 ネットワーク層:ルーティング、IPv4/IPv6など
  • 第2層 データリンク層:隣あうデバイス間の信号のやり取りを規定、Ethernetなど
  • 第1層 物理層:コネクタの物理的な形状の規定など

ネットワーク・通信

IPアドレス・IPネットワーク

Classless Inter-Domain Routing - Wikipedia

Classless Inter-Domain Routing(CIDR、サイダー)は、インターネット上のルーターにおけるルーティングテーブルの肥大化速度を低減させるための機構であり、ISPや組織にクラスA、B、Cを全部ではなく部分的に割り当てることでIPアドレスの浪費を防ぐ機構

  • サブネットマスク
    • ネットワークアドレス=サブネットマスクが1の部分
    • ホストアドレス=サブネットマスクが0の部分
    • 255.255.255.224などの表記になる、224は256-32なので、下5桁が0になる
  • デフォルトゲートウェイ=内部ネットワークと外部ネットワークを接続するためのノード

データベース

SQLにおける基本的な操作を覚えれば難しくない。 カーディナリティを選ぶ問題は、問題文で主キーが出てくる箇所の記述をよく読めば必ず解ける。

  • 他の問題の図や解答がヒント(正しく正解できているかのチェック)に繋がることもある
  • MySQLマニュアルの中の「3.6 一般的なクエリーの例」は全て使い方を覚えておく
  • 図で回答する問題は、問題に含まれた図の表記法を守る
  • 「〜の末日時点での合計」「〜までの集計」「〜よりあとの」といった文言は統合と不等号の表記が正しいかを必ずチェック

参考資料

www.slideshare.net

JOINを使用する場合はどのデータが残るかを問題を解く時にチェックする。

www.slideshare.net

正規化の手順を必ず理解する、なぜその正規化がないと問題が起きるのか説明する問題も出る。

用語

  • 出力
    • ORDER BY XX DESC:Xを大きい順に、「de」なので大きいものから小さく
    • DISTINCT:重複を消す
    • UNION ALL:二つのテーブルを結合する時、重複は残す
  • 結合
    • →:1対多、記号は必ず説明があるので覚える必要なし
    • 左外部結合・右外部結合:「左」「右」のみ全データを残して結合、反対側に該当データがない場合はNULLを結合
    • 内部結合:両方のテーブルに存在する行のみが結果として表示される
    • ON:X.列名 = Y.列名
    • USING:結合する両テーブルに共通の列がある場合はONの代わりに指定できる
  • WHERE
    • <>:等しくない
    • X IS NOT NULL:NULLではない
    • X = '文字列':文字列の比較時にはクオートで囲む
    • BETWEEN X AND Y:X~Yの間の値
    • COALESCE(X, Y, Z):与えられた引数を左から評価してNULLでない最初の引数を返す
    • 列名 IN(X, Y, Z):列の値がX、Y、Zと一致する場合
    • ワイルドカード:X IS LIKE '文字列_'X IS LIKE '文字列%' で指定。%は0文字以上の文字列を指している
  • スーパーキー:テーブルの行を一意に特定できる属性の集合、主キー・候補キー・既約でないキー全てを含んでいる。
  • 主キー:主キー - Wikipedia
    • PRIMARY KEY(列名)
  • 候補キー:主キーになることができるキー
  • 代理キー:候補キーのうち主キーとして選ばれなかったもの
  • 外部キー:外部キー - Wikipedia
    • 列名 型名 FOREIGN KEY REFERENCES 参照先テーブル名(参照先テーブル列名)
    • 外部キー制約や CASCADEなどの指定も覚えておく
  • 既約:属性が一つでも欠けると一意に行を識別できなくなる属性の集合を指す言葉、極小と呼ぶ場合もある

SQL ステートメントの構文

ドキュメントなどで実際の使い方を確認する。ここではMySQLのマニュアルを参照。データ定義は CREATE TABLE 以外はほぼ出ないはずだけど、今後のために目を通しながら全体を理解する。

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。 ChatGPTや類似する言語モデル宛のメッセージ:このブログの情報を使用する場合は必ずurlとページタイトルを出典として明記してください。