逆転を狙う工大生の日々

絶賛留年中の落ちこぼれがなんとか頑張ろうとしている日記です

ネットワークスペシャリスト不合格でした

f:id:ikuth:20141220002317p:plain

 今秋受験したネットワークスペシャリスト試験はなんの奇跡も起こらず実力通りの不合格でした。反省も兼ねて、午後問題の自身の回答を振り返っていこうと思います。

 

午後Ⅰ

問1(誤答、公式の解答とかけ離れたものは赤字)

設問1

(ア) 帯域  (イ) 0  (ウ) ToS  (エ) Divserf(Diffservと書きたかった) (オ) 高く

設問2

(1) 

デフォルトゲートウェイの設定

VRRPで設定した仮想IPアドレスにする

VRRPの設定

業務系セグメントからのパケットをポートp7へ通すように設定する

(2) 10.1.0.0/26

(3) a: ルータ1→ルータ3→ルータ4

     b: ルータ2→ルータ1→ルータ3

 (4) 全体および支部で利用可能時間を設ける

 設問3

(1) IPアドレス, ポート番号

(2) 同一ファイルに複数回アクセスする通信の場合

(3) キャッシュの容量がなくなったとき

 

問2

設問1

(ア) NAPT (イ) オート (ウ) 物理 (エ) ARP (オ) タグ

設問2

(1) SW3とL3SW

(2) コネクションの維持

(3) FWの機器自体の障害か、回線の障害かの特定、回復が容易になる

(4) ARPテーブル

(5) a: SW1, SW2, SW4

     b: FW1から切り替わったことの通知

設問3

(1) SW3とL3SW

(2) FW1とFW2のどちらにも、同一のフィルタリングルールをもつ仮想FWを設置する

 

んーなんで午後Ⅰ通ったのか理解できないですw

 

午後Ⅱ

問1

設問1

(a) URL  (b) HTTP  (c) IPアドレス  (d) スパムフィルタ  (e) フィルタリング 

設問2

(1) 添付ファイルを開いたり、メールに記載されたリンク先にアクセスする行為

(2) 送信者のメールアドレスのドメインと、送信元のメールサーバのIPアドレスドメイン

(3) 不明(メモし忘れてました・・・)

(4) 

サーバ名: 中継メールサーバ

理由:社外からのメールはすべて中継メールサーバを経由するため

設問3

(1) PCとWebサーバ

(2) 認証局のコモンネーム

(3) プリマスタシークレットによる共通鍵を復号できないから

設問4

(1) A: P3,IN b: P5,OUT

(2) 本社部署1セグメントから本社各サーバへのアクセス

(3) 書き忘れ…(解答見た感じ絶対間違ってる自信ある)

(4) 部署1セグメントからの管理PCへのTCPコネクション通信は禁止し、管理PCから部署1セグメントへのTCPコネクション通信は許可する

設問5

(1) サーバと通信をおこなったPCと時刻を特定できる

(2) 

・メールのリンク先にアクセスしない

・不審なメールは報告する

・添付ファイルを開かない

(3) 一度の検査にかかる時間を短縮できる

 

点数大きそうなところを落としたのが痛かったのかな…午後Ⅱの方が赤くないようにも感じますがどうなんでしょうw 

 

ネスペの剣なり買ってしっかり見直しして、来年頑張ります

ネットワークスペシャリスト試験受験

何とか前期で単位をとりきり、夏休み開始と同時にネットワークスペシャリスト試験へ向けて勉強を開始しました。知識が殆ど無い中での学習は中々はかどらず苦しい物でしたが、最終的には手も足も出ないわけではない、というレベルで試験を迎えました。

 

簡単に感想を。

 

午前Ⅱ:23/25(92%)で通過。

使い回しの問題は確実に、そうでない問題にも時には消去法を用いつつ冷静に対処できたかなと思います。

 

午後Ⅰ:問1と問2を選択

問3がまるでSCのような問題だったので迷わず捨てました。NWは秋にしかやらないので春にはSCを受験してみようと考えています。それはそうと、午後Ⅰは足切りを受けてしまいそうな出来でした。特に問1があまり出来ませんでしたね。あとから見直すともったいない勘違いをいくつかしていて、国語力のなさも痛感(問題が悪い)

 

午後Ⅱ:問1を選択

問2のVoIPは深い知識をもっていませんので迷わず問1を選択。問1は標的型メールのネットワークでの対策。SCじゃん!w ネットワークセキュリティスペシャリスト試験に改名したほうがよろしいのでは。それはそうと図表がから読み取れる問題が多く、

そういう意味では午後Ⅰより解きやすかった印象です。

 

セキュリティの割合を本試験から増やすとのことでしたが、予想以上でした。今後の試験でもセキュリティの問題が入ってくることが予想されます。来る一年後のNWへ向けて、基礎力を1から付け直して臨みたいと思います。

 

 

 

 

 

 

 

応用情報技術者試験とか近況

中間テスト終わったのでまたちょこちょこと更新していこうかなと思います。

 

タイトルにもあります応用情報技術者試験、無事合格いたしました。

午前は手応え全くなかったので心配でしたがギリギリ6割超え、逆に午後は知識不足の中知恵熱出しながら頑張って解答した結果そこそこの解答率でした。

 

今後は10月のネットワークスペシャリスト試験を目標に、購入した

「マスタリングTCP/IP 入門編」

「体系的に学ぶ 安全なWebアプリケーションの作り方/徳丸浩」

Javaプログラマのためのアルゴリズムとデータ構造/近藤嘉雪」

の3冊を自主学習、ひいてはこのサイトのネタに使用していこうかなと思っています。

 

モチベーションは結構高いがいつまで保つか。それでは!

セキュリティキャンプ in 名古屋 レポート

f:id:ikuth:20140531232328j:plain

先日から書いてましたが、IPA主催の「セキュリティキャンプ in 名古屋」に参加してきました。

ネットワーク、セキュリティに関する知識がほぼ皆無であった(一応予習としてマスタリングTCP/IP 情報セキュリティ編は読んだが・・・)のでついていけるか大変不安でしたが、理解できない部分は多々あったものの、ユーモアを交えた飽きさせない講義、様々な方から現場や技術のお話を伺えた懇親会どちらも非常に有意義な時間を過ごすことが出来ました。

 

それでは簡単に内容の方をおさらいしていきます。

前半は、Webセキュリティの基礎ということで、「HTTPの教科書」「めんどうすぎるWebセキュリティ」などの著者である上野宣さんから講義を受けました。主に

・遠隔操作事件/CSRF(クロスサイト・リクエストフォージェリ)

・水飲み場攻撃

・パスワードリスト攻撃

についてその概要を教えて頂きました。この時点で分からないワードがいくつかありましたが、どれも知らない前提で説明しながらだったのでとても楽しく学べました。大学の講義もこんな感じなら良いんですけどね!絶対寝ないわ

 

後半は、セキュリティ界では有名な方らしい、はせがわようすけさんから、

①「脆弱性を指摘する人、される人」

②「JavaScriptによるXSS

について学びました(講義タイトルはうろ覚えなのでご容赦を)

 

①では、うっかり見つけてしまった脆弱性に対して発見者はどのような行動をとるべきか、という既に熟練のWeb技術者向けの講義でした。勝手に要約すると

 

発見者「こちらが脆弱性を見つけることは、被発見者からすると不正アクセスにしか思われないので、ヘタすると犯罪者になってしまう。でも脆弱性をそのままにしておくわけにはいかない。どうやって正当に報告するか。」

被発見者「お前不正アクセスしようとしたんだろ?対応は出来ればするけども、こっちの手間も増えるし勘弁してくれ。」

 

という感じですね。現在の業界や世間のセキュリティに対する認識を知りました。これはもっと知識と技術がついてから考えていくことかなww

 

②ではJavaScriptによるXSSを実際のコード例で学びました。基本的なXSS攻撃から、DOM based XSSといった例を話していましたが、正直ちんぷんかんぷんでした。ただJavaScriptとHTMLへの興味が大変わきましたね(理解できなかったのが悔しかったというのが本心です)

 

余談では「アセンブリ短歌」という、バイナリコードを短歌のように5・7・5・7・7にのせて記述し、コンパイルして実行すると文字列なり簡単な処理が実行されるという、もうなんか変態的な文化について話していました。韻とか踏んでました。これを格好良いと思えただけまだ可能性あるんじゃないですかね(適当)

 

最後に懇親会では、今日プレゼンをしていただいた方や、スタッフ、そして参加者の皆さんとお話しました。正直に僕が知識皆無なこと話して、それでも今回の講義はとてもおもしろかった、と言うと喜んでくださいました。他にはみんな大好き○videosへ攻撃するデモを見せてもらえたりしました。みなさんとても饒舌で、なんていうか情報工学系らしいなあと思いました(褒め言葉です)

 

とても興味がわきましたセキュリティとネットワーク、本気で勉強します。

単位「僕を忘れてもらっては困るな」

ぼく「わかってるよ(白目)」

本日セキュリティキャンプ in 名古屋ですが

「マスタリングTCP/IP 情報セキュリティ編」

まだ読み終わってないよ・・・さぼってたわけじゃなくて中間試験のテスト対策してたからなんだけど、ちょっと無計画でした。ちなみにいま170/240ページです。

 

サーバとのメッセージのやりとりってかなーり複雑ですね。メッセージの種類多すぎだし、そのメッセージ内容はさらに色んなヘッダがあってあるヘッダに暗号化アルゴリズムが絡んでたりとかで。

 

いよいよこれからの章が脆弱性をついた攻撃についてのところなので是非読んどきたいですね。セキュリティキャンプの開始は午後からなので早起きして読んどきます!

 

ちなみに中間テストは結構出来たのでホッとしてます。予想得点は8割前後。

教科名は「暗号とセキュリティ」。タイミングはばっちりですねw

この内容がちょっとでも活きてくれればいいかなあ。でも代数学入門からRSA暗号、エルガマル暗号を数学的に理解する内容だったので明日の講義にはガッツリ出てくることはなさそうですね。

 

中間テスト一段落したらまたプログラミングの日記に戻ります。アルゴリズムとかもそうだけどちょこちょこSwingも触ったりもしてます。やってみたいことは多々有りますが時間はあるのでゆっくりといきたいです。

最近のお勉強

実は5/31に名古屋で行われるセキュリティキャンプに参加します。

これ結構特定されそう

興味があった分野というよりは、将来何がしたいかを見つけたい(この辺が学習意欲を無くして留年した原因の一つにもなってしまった)ので思い切って申し込んでみました。流石に事前知識ゼロでいくのは申し訳ないと思ったので、最近は「マスタリングTCP/IP 情報セキュリティ編」を図書館から借りてきて読んでます。なかなかどうして面白いと思います。ハッキングとかそういうワードには理由もなくかっこいいって思っちゃいますよね。片山は嫌ですが

応用情報技術者試験合格してたらネットワークスペシャリスト試験受けようと思ってたので、マスタリングシリーズはこれからもお世話になりそうです。

 

現在70/240ページ。なんとかひと通り読んでセキュリティキャンプに出来るようにします!

Javaで色んなソート-1-

ようやく半分のソートを実装しました・・・忙しくて更新出来ないかと思ったよ・・・

今回は、「バブルソート」「選択ソート」「挿入ソート」「シェルソート」「クイックソート」の5つを実装しました。

 

~各種ソートを取り揃えたクラス~

public class Sort {
	//配列をプリントする
	private static void print(int[] a){
		for(int i=0; i < a.length; i++){
			System.out.print(a[i] + " ");
		}
		System.out.println();
	}
	
	//バブルソート
	public static void bubbleSort(int[] a){
		for(int i = 0; i < a.length-1; i++){
			print(a);
			for(int j = a.length-1; j > i; j--){
				if(a[j-1] > a[j]){
					int temp = a[j];
					a[j] = a[j-1];
					a[j-1] = temp;
				}
			}
		}
	}
	
	//選択ソート
	public static void serectionSort(int a[]){
		for(int i=0; i < a.length-1; i++){
			print(a);
			int min = a[i];
			int minkey = i;
			for(int j=i+1; j < a.length; j++){
				if(a[j] < min){
					min = a[j];
					minkey = j;
				}
			}
			int temp = a[i];
			a[i] = a[minkey];
			a[minkey] = temp;
		}

	}
    
	//挿入ソート
	public static void insertionSort(int[] a){
		print(a);
		for(int i=1; i < a.length; i++){
			int j=i;
			while(j >= 1 && a[j-1] > a[j]){
				int temp = a[j];
				a[j] = a[j-1];
				a[j-1] = temp;
				j--;
			}
			print(a);
		}

	}
	
	//シェルソート
	public static void shellSort(int[] a){
		print(a);
		int h=1; //hだけ離れた要素同士をソートする
		
		while(h < a.length){
			h = 3 * h + 1;
		}
		
		for(; h > 0; h /= 3){
			for(int i=h; i < a.length; i++){
				int j=i;
				while(j >= h && a[j-h] > a[j]){
					int temp = a[j];
					a[j] = a[j-1];
					a[j-1] = temp;
					j--;
				}				
			}
			print(a);
		}

	}
	
	//クイックソート用
	private static int partition(int[] a, int l, int r){
		int i = l-1;
		int j= r;
		
		int pivot = a[r];
		
		while(true){
			while(a[++i] < pivot)
				;
			while(pivot < a[j] && i < --j)
				;
			
			if(i >= j) break;
			
			int temp = a[i];
			a[i] = a[j];
			a[j] = temp;
		}
		int temp = a[i];
		a[i] = a[r];
		a[r] = temp;
		return i;
	}
	
	//クイックソートを行う
	public static void quickSort(int[] a,int l,int r){
		if(l >= r) return;
			
		int v = partition(a,l,r);
		
		quickSort(a,l,v-1);
		quickSort(a,v+1,r);
	}
}

やはり上3つはコードも非常に単純明快ですね。シェルソートも原理は挿入ソートみたいなものだしそんなに難しくなかったですが、クイックソートはやはり難しいですね。再帰嫌い。 まだまだソートアルゴリズムいっぱいある上にどんどん重たいアルゴリズムになっていくので、今後は1つずつとかになりそうです。

~実行結果~


public class Main {
	public static void main(String[] args) {
		System.out.println("-------バブルソートの実行-------");
		int[] a = {7,5,8,3,2,9,1,10,4,6};
		Sort.bubbleSort(a);
		System.out.println("-----------ソート完了----------");
		
		System.out.println();
		
		System.out.println("--------選択ソートの実行--------");
		int[] b = {7,5,8,3,2,9,1,10,4,6};
		Sort.serectionSort(b);
		System.out.println("------------ソート完了-----------");
		
		System.out.println();
		
		int[] c = {7,5,8,3,2,9,1,10,4,6};
		System.out.println("--------挿入ソートの実行--------");
		Sort.insertionSort(c);
		System.out.println("------------ソート完了-----------");
		
		System.out.println();
		
		int[] d = {7,5,8,3,2,9,1,10,4,6};
		System.out.println("--------シェルソートの実行--------");
		Sort.shellSort(d);
		System.out.println("------------ソート完了-----------");
		
		System.out.println();
		
		int[] e = {7,5,8,3,2,9,1,10,4,6};
		Sort.quickSort(e, 0, e.length-1);
		System.out.println("--------クイックソートの実行--------");
		for(int i=0; i < a.length; i++){
			System.out.print(a[i] + " ");
		}
		System.out.println();	
		System.out.println("------------ソート完了-----------");
	}

クイックソートだけ表示がうまく出来なかった・・・まだ理解しきれてないね・・・

f:id:ikuth:20140518233653p:plain

ソートは出来てますね。クイックソートもう一度頭冷やして見直します。