読者です 読者をやめる 読者になる 読者になる

生パケット送受信用スクリプト

雑記 プログラミング

やはり、生パケットの送受信をスクリプトで操作したいという需要はあったようです。Nessus というセキュリティスキャナを使用すると、 NASL (Nessus Attack Scripting Language) という言語を使ってパケットの送受信を行うことができるとのこと。

参考: NASL のファレンスの日本語訳

ちなみに、Nessus は2から3に移る際に GPL ではなくなったそうで、Nessus3 をダウンロードするには個人情報をいろいろ入力する必要があるようです。Nessus2 のほうもまだ公開していて、こちらは普通にダウンロードできるようですね。

リファレンスを読む限りでは、NASL というドメイン固有言語を新たに作った理由として、スクリプト実行前に指定したサーバだけにパケットの送信先が限定されることを保障することと、ローカルのデータを勝手にアップロードできるような危険な行為ができないことを保障すること、が挙げられているようです。確かに、脆弱性の検証コードは信頼できない経路で流通してくることも多いのでしょうし、検証用コードと見せかけて何かを仕込めるようになっていたら本末転倒です。

ただ、機能へのバインディングとして何を提供するか/しないかと、言語の基本文法として何を選ぶかは、本当は分けて語るべきだと思うんですけどね。Python の文法や制御文を使用できるが、標準関数はといえば print すら使えないといった、特殊な用途の組み込み Python というのは十分にあるわけで。