DoSについて

プロトコルは使い方次第によっては相手に迷惑をかける事も出来る。

その一つがDoSだ。

頭の残念な人が脅し文句としてよく使う為、聞いたことある人は多数いるだろう

今回はこのDoSについて説明する。

 

DoS攻撃とは、相手に過負荷を与えて、処理を重くさせる、もしくはダウンさせる攻撃の事だ。

 

攻撃方法はたくさんあるが、今回は3つだけ抜粋して紹介する。

 

1,F5乱打

これはもう技術もクソもない原始的な攻撃方法だ。相手のサイトにアクセスし、何度もリロードして、大量のリクエストを送信し過負荷を与えるものである。

 

2,smurf

これはICMPプロトコルpingという接続の可否を確認できるコマンドを悪用した手法である。段階的に言うと、相手のIPアドレスを送信元に偽装し、大量のリクエストを送った後、pingが大量パケットを偽装したIP(相手)に返して過負荷を与えるというものだ。

つまりAがBに成りすまして大量の情報を要求し、要求された側はBが要求したと勘違いして大量の情報を送るというわけだ。この手法を総括してIP spoofing と言う。

 

3,DRDoS

これは多数のコンピュータ(主に踏み台)からTCP/IP通信プロトコルのパケットを大量に相手へ送り、ダウンさせるもの。

似たものにDDoSが挙げられるが厳密には違い、DDoSはエージェントを制御する必要があるのに対し、DRDoSはそれを必要としないのである。

DDRoSはReflectorといわれるクライアントから受け取ったパケットをシステムがクライアントに返し、その返したパケットをクライアントから再び受け取るまで返し続ける機能を悪用したものである。

まずDNSを代表とするIP詐称が可能でありサーバーの多いシステムへ問い合わせパケット(SYN)を送り込む。その際に送信元IPを詐称しておく。問い合わせられたシステムは受け取ったパケットの送信元へ、返す。この時、送信元から一定時間返信が無いと再び返す。

送信元(ターゲット)は身に覚えの無いパケットを受け取るがSYNの送信者では無いので返す事ができず、やがてリソースを潰される。

この様に、DRDoS提供されているシステムを使ったものであり、DDoSの様にトロイ等のワームを張り巡らせておく必要はない。

 

 

 

 

プロトコルとは(1)

インターネットというのは無数のコンピュータの集まりだ。ネット上でよく聞くサーバとかも「家庭用より処理の速いコンピュータ」みたいな認識で良い。

ネットに接続するというのはこのサーバに蓄積されている情報のやり取りをする事を指すのだ。こう考えると意外とマンツーマンな処理でしょ?

例えば皆が大好きなTwitterを使用する時、Twitter社が運営してる(と思う)サーバを介して通信を行っているのだ。

 

そして、この通信を行う際、自分の端末と接続先のサーバとの通信するやり取りの規約を通信プロトコルと呼ぶ

普段私達が現在地から目的地へ行く時、電車を使うか、それとも徒歩か、または車かと色々と手段が挙げられる。通信プロトコルはこの「手段」を指すという認識で良い。

例えばサイトを開く時、HTTPという言葉を見たことはあるだろう

あれは通信プロトコルの一種で、クライアント側とサーバー側が相互通信する為の仕組みである。

内容は単純で、自分がサイトを見たいという要求をブラウザから送信(リクエスト)

webサーバー側がその要求に対してコンテンツを提供(レスポンス)という二段階のプロセスだ。(正確には細かく分けられるが省略)

 

自然対数について

数学の話です。

この記事は数IIの課程を修了している人に向けて書きますのでご了承ください。

 

自然対数を知る前に、一度は見たことであろうe(ネイピア数)の定義を頭に叩き込んでおく必要があります。

現段階ではあぁ〜この式がe(ネイピア数)なのか〜程度の理解で十分です。

e = lim[n→∞](1+1/n)^n

単に数値で表すとe=2.71828182・・・

円周率と同じ超越数です。

また、(e^x)'=e^x という性質があります

微分しても変わらないってヤツですね。

何でこうなるか、はここでは説明しません。

 

自然対数とはこのネイピア数を底に置いた対数を指します。つまりlog[e]X(Xは真数)、この形を自然対数と言います。e=自然対数ではありませんよ。

 

そしてこの自然対数に対して、皆が抱く疑問は大体「何でこんな使い方も分からないし理解もしにくい物があるんだ?どこで使うんだ?」でしょう。私もそうでした。

結論から言うと、自然対数の存在意義は「計算を楽にするため」です。これに尽きます。

何故計算が楽になるのかは次の記事で 

C言語のシングルライブラリについて

そもそもシングルライブラリとは、

シングルファイル C/C++ ライブラリとは, ヘッダファイル .h ひとつだけで機能が実装されているライブラリ(もう少し条件をゆるくして .cc も含む)のことです. header-only とも言われれたりします.( http://qiita.com/syoyo/items/e9d4aff56f691f5b783b 様より引用)

例を挙げるとお馴染みのstdio.hや数学の関数が多数収録されているmath.hとか

ライブラリって色々な関数を纏めたファイルの事。便利ですね。

ライブラリを作る事も可能だけどそれは後日。

今回はANSI標準ライブラリの説明をサクッとします。

ーーーーーーーーーーーーーーー

stdio.h 入出力に関する関数が定義されてる

 

 

 

 

 

C言語について

僕の知識整理と並行する形でだらだらと書いていきます。

文体の崩壊に注意

 

当時、IBMから脱却したGEが独自のメインフレームを持ちたいが為にベル研と共同で作られたUNIX(OS)に使われたプログラム言語がC言語

謂わば副産物の様なもの

C言語の前身となるB言語というインタプリタ型の言語が当時UNIX上で走らせる為の高級アセンブリとして開発されたが、実行時に逐一インタプリタによって処理される為、非常に処理速度が遅かった。(PDP-7で、機械語を直接出力できる様に改良された。)この後、B言語に改良を重ねまくっていたらC言語が出来上がったという訳(C言語が完成した後、UNIXの大部分をC言語で書き直したらしい。辛そう)

 

C言語の特徴;

開発された経緯の通り、ソフトウェアの開発に用いられる言語。

移植性が高い。(勿論UNIXも)

また、ハードウェアに密着したコーディングが容易であった。(筆者もArduinoで使用していた。)

これは経験談だけど、ロボットを製作する際にサーボモーター等のPWMの調整する時に、かなりの恩恵を頂いた。

ラズパイはpythonでしかコーディングした事が無いので分かりません(>_<)

言うまでもなくコンパイラ型なので実行速度がクソ速い。

開発者自身が書いた説明書K&R(プログラマからはバイブルとか言われてる)が存在し、UNIXでの実績があるので安心。

C言語をベースにした言語(P言語とかC++)の習得が容易。

 

他にも色々と利点はあるけどこれぐらいにしておこう...。

 

KorgGadgetについて

KorgGadgetとはハードシンセのアプリを主軸に様々なDTM系のアプリを作ってきたKORG社が製作したDAWモドキの様なアプリです。

KORG社オリジナルのシンセが15個あり、音質も安っぽい感じが一切しませんでした。

値段は5000円(偶に値引きしてる)とPCのDAWに比べたら途轍もなく安いです。

 

さてこのKorgGadget、何と先述したオリジナルのモジュールが全て実在しないんです。つまりKorgGadgetでしか出せない音という事。シンセはクラブ系に偏っている感じですので、そちらの曲を作りたい方には是非オススメします。

 

また、不定期?にKORG社が、KorgGadgetのみで製作した曲のコンテストをSound Cloud で開催しているので、興味があれば是非聞いてください。