「マスタリングTCP/IP を読んだけど理解がイマイチ進まない。Goがどのようにサーバーを立てているのか気になる。」 そんなスキマを埋めるための本です。 Goの標準パッケージである net package を一切利用せずに、自作TCP/IPプロトコルでサーバーを作ります。 パケットをどのようにやり取りするかハンズオン形式で解説し、最後にToDoリストAPIを実装します。
前置き 本記事は特定のサービスのリバースエンジニアリングを推奨するものではありません。 リバースエンジニアリングの学習を目的とした利用を前提としています。 また、この記事は私が2021年に公開したWrite-upの日本語訳です。 内容は2018年に行ったリバースエンジニアリングの結果に基づいていますが、2020年にはいくつかの仕様が変更されたことに留意してください。 Shh 0. LINEの解析について こんにちは、リバースエンジニアリングについて学んでいる らと です。 各国にはそれぞれ人気なメッセージングアプリがあると思いますが、私の国、日本ではLINEが最も多くのユーザーに利用されています。 私はLINEの通信プロトコルに非常に興味がありましたが、LINEはOSSアプリケーションではありません。 そのため、LINEをリバースエンジニアリングすることに決めました。 1. LINEってな
はじめに インターネットではいろいろな個人の知識がブログなどで手軽に共有できます。 我々がお世話になっているQiitaもその一つですね。 とはいえエンジニアとしてはRFCなどの技術仕様が記載された文書も読まなければならない時もあります。 以前IPv6を勉強しようとRFCを読んでいたので、その内容とRFCのリンク(できれば日本語に翻訳されたもの)を添えてみようかと思います。 IPv6を勉強しようと思い書籍やブログを読んだことはあるけど実はRFCって読んだことないな、という方がリンクをポチポチすると楽しめるかもしれません。 RFCについては以下のリンクを参考にしていただければと思います。 JPNIC - RFCってなに? JPNIC - RFCの分類 ちなみに有名かと思いますがIPv6を勉強しようという方には小川晃通さんが執筆した「プロフェッショナルIPv6」という書籍がオススメです。 IPv
Webページはどうやって表示されるのでしょうか. 「ブラウザでアドレスバーにURLを入力してEnter押してからページが表示されるまでに何が起きているか説明してください」面接で使っていた質問が面白いと話題に 上記の質問には様々なレイヤーでの回答があると思うのですが,私はネットワークの動作に興味を持ちました.というのも,TCP,IP,ARP,Ethernetといったキーワードが関連しているのは教科書や講義で聞いた気がするのですが,それ以上のことはうまく説明できなかったからです. これらのプロトコルは,普段はカーネル内部に隠れていてあまり意識できません. しかし,以下の資料を参考にプロトコルスタックを写経すれば,少しは身近に感じられるかもしれないと思いました. 3月に開催したプロトコルスタック自作キャンプの講義資料を公開しました。1週間でTCP/IPのプロトコルスタックを自作してUDPやTCP
はじめに VMWare, VirtualBoxでネットワーク設定をする際、何をどう設定するのがよいかたびたびわからなくなるため、改めて接続方式・構成についてちゃんと理解しておこうと思いました。 そうすることで今後仮想環境を構築する際、ユースケースに応じて適切な設定を選択できればと思います。 対象 仮想環境のネットワークを何となく設定して繋がったので終わりにしている人 何となく設定したけれども思うように繋がらず困っている人 ちょっと前の自分 想定環境 ホストPC: Windows10 Pro 64bit 仮想化ソフトウェア: VMware WorkStation Player 12 Oracle VM VirtualBox 6.0 会社内LANなどに接続したホストPCで仮想環境を構築し、仮想マシンをネットワーク接続させる場合を想定 ネットワーク設定と概略 ざっくりまとめると以下のようになりま
NECサイバーセキュリティ戦略本部セキュリティ技術センターの日下部です。 エンジニアの方にとって、システムのネットワーク構成を設計する機会は多々あるかと思います。 ネットワーク構成を検討する際、機器の役割や設置場所によって異なるネットワークアドレスを付与するネットワーク分割を実施することになります。ネットワーク分割の方法はファイアウォールやルータといった装置での分割の他に、サーバやPCに二枚のNIC(Network Interface Card)を使用してネットワークを分割するいわゆる”NIC二枚挿し”という方法もあります。しかし、この方法はセキュリティ上推奨しないという考え方があります。 本記事では、セキュアな産業制御システム(ICS : Industrial Control System)を構築するためのガイドであるNIST SP800-82を参考にNIC二枚挿しによるネットワーク分割
このエントリを書こうと思った理由 先週、NURO光はセキュリティ的にやばい回線だから、セキュリティを理解していたり、それなりの知識がない人が使うとやべー回線。って某青い鳥でつぶやいたらなんか4.3万RT、11.6万favo行ってたので、そのことについてそこそこわかりやすくまとめてみようかなと思ったわけです。 要約 NUROひかりのHGWはデフォルトでIPv6ファイアウオール機能が 無効 または 未搭載 の可能性がある ので、そのまま使うと家庭内LANがインターネットから見えちゃうからちゃんと設定か対策して使おうぜって話。 このドキュメントの対象とする人たち 何も考えずに速度が速いだけでNURO光を使っている、「いんたぁねっとが何かよく分かっていない」人向けです。 ネットワークやセキュリティを理解していて、自分のルータでセキュリティを維持しつつ使える!って人には全く関係ない話なので気にしなく
BGPを通してインターネットが何なのか理解しよう リンク ・Macのオススメな初期設定15選(メールアプリ設定編) ・Macのオススメな初期設定30選 (システム環境設定編) ・Macのオススメな初期設定20選(Finder設定編) ・Chromeのオススメな初期設定10選(Mac) ・Macのオススメなアプリ40選 インターネットってそもそも何? インターネットの仕組みを知らない人に インターネットってどんな仕組みなの?って言われたらなんて答えますか? この答えをここで示したいなと思って書きました。 本記事では以下のような 「インターネットは世界中の誰とでも繋がることができるんだよ」 みたいな話はしません。 なるべく専門用語を少なくして、インターネットの仕組みを理解することを目的とします。 書籍では氷山の一角しか書かれないため非常に全体像が分かりにくくなっています。 そして専門用語が多す
会社でフルリモート体制が築かれるにつれ、各スタッフの自宅の回線などについての相談を受けることが増えてきました。ということで、筆者 sorah の見解として 2020 年の NTT フレッツ光網について、主に通信速度や輻輳についての問題を理解するための背景と仕組みを説明しようと思います。 理解が間違っていたら教えてください。なるべく総務省や NTT の資料からソースを集めてきた上で説明していますが、出典不明の情報も混ざっているかもしれません。できるだけ具体的な出典を文単位で示していますが、複数の資料に渡る複雑なトピックに関しては文末に纏める形になっています。 技術的な意味での細かい解説よりも複雑な事情や背景の説明が中心です。フレッツ光とか NGN とか IPoE とか IPv6 とか v6 プラス・アルファみたいな言葉を聞いて、なんでそんな難しいんだと思った人も多いんじゃないでしょうか。エン
ネットワークスキャナnmapでいろいろ探す方法のメモ。 自身が管理するIPアドレス、ドメイン以外へのスキャンは攻撃とみなされる場合があることに注意。 IPv4ホストを探索する -nはDNS逆引きの無効化、-snはポートスキャンしない。 # nmap -n -sn 192.168.0.0/24 LAN内のIPv6ホストを探索する LAN内の全ホストを表すマルチキャストアドレスff02::1にICMP pingを送る。 -vは詳細表示。 # nmap -v -n -sn --script targets-ipv6-multicast-echo 特定のホストをポートスキャンする -sSVCはSYN scanの指定とバージョン情報の調査と標準NSEスクリプトの実行、-OはOS推測、-p-は0から65535までの全ポートをスキャン、-T4はスキャン速度を上げる。 # nmap -v -sSVC -O
ポートスキャンとは ネットワークを通じてサーバに連続してアクセスし、保安上の弱点(セキュリティホール)を探す行為。e-wordsより 使い方 いいか、絶対悪用するなよ!! 絶対だからな!! 一番シンプルな使い方 $ nmap www.hogehoge.co.jp Starting Nmap 6.47 ( http://nmap.org ) at 2015-04-23 17:46 JST Nmap scan report for www.hogehoge.co.jp (xxx.xxx.xxx.xxx) Host is up (0.030s latency). Not shown: 998 filtered ports PORT STATE SERVICE 80/tcp open http 2222/tcp open EtherNet/IP-1 Nmap done: 1 IP address
サーバーの基本的なセキュリティ対策の1つとして重要なのが、ネットワーク内のどのマシンがどのポートでサービスを提供しているのかを把握することだ。このために有用なのが、ポートスキャナと呼ばれるツールだ。本記事ではポートスキャナとして有名な「Nmap」というソフトウェアを使用し、ポートスキャンを行う方法について解説する。 定番のポートスキャナ「Nmap」とは 対象として指定したホストに対してポート番号を変えながらIPパケットを送信し、その反応を調べることでどのポートが外部からアクセス可能なのかを調査する行為をポートスキャンと呼ぶ。Nmap(Network Mapperの略)は、オープンソース(GPLv2ライセンス)で開発・提供されているポートスキャンツール(ポートスキャナ)だ。NmapではOSが提供するソケット機能を利用するだけでなく、ポートスキャンに使用するパケットを独自に生成することで、高速
実践ネットワークセキュリティ監査―リスク評価と危機管理posted with カエレバクリス マクナブ オライリージャパン 2005-04-25 Amazonで探す楽天市場で探すYahooショッピングで探す 目次 目次 はじめに インストール Mac Ubuntu Windows nmapの使い方 指定したIPのコンピューターの使用ポートを調べる 指定したネットワークの使用されているIPを一覧にする 指定したIPアドレスのコンピューターのOSの確認 nmapのGUIソフトzenmapの使い方 参考資料 MyEnigma Supporters はじめに nmapはフリーのネットワーク調査ツールです。 nmap - Wikipedia Nmap: the Network Mapper - Free Security Scanner このnmapを使うことで、 あるIPアドレスのコンピューターの
何を解決したいか? Mac, Windows, Linux, iPhoneやAndroidのスマホ・タブレットとかのデバイス間でデータの転送したいことがあります。 SlackとかLineとかSkypeとかAirDropとかあっても 送りたい相手と共通して使っているサービスを探す必要とか、 GUIのソフトウェアのインストールが必要とか、 AirDropだとApple系OSである必要 があるなどの転送の障壁があって、GUIが使えないデバイスに送りたいときなどは困ってしまいます。 すでにたくさんのファイル共有系のサービスがありますが、コマンドを使ったCUIベースにあまり親切な設計なものはあまりないと思います。 そこで、上記の問題を解決するために、以下のようなファイル転送の仕組みを作りました。 他デバイス間でデータ転送ができ、 別途ソフトウェアのインストール不要で、 パイプにとても親和性が高くエン
今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のような本だったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ
私はpingが大好きです!簡単に使えて、ネットワークが稼働しているかを直接明らかにできます。 「 Pingはセキュリティの欠陥ではない!(むしろ友達である) 」、「 Traceroute上級 」の記事をご参照ください。少なくとも、外行きのping(trust(=信頼されるゾーン)からunstrust(=そうでないゾーン)へ)はセキュリティ上の心配なしに用いられるべきです。しかし、これらのuntrustからDMZへのICMPエコー・リクエストは多くの会社で拒否されているため、すべてのサーバが起動・稼働しているかをテストするのが困難になっています。 私は、顧客のサイトのDMZファイアウォールの置き換えに取り組んでいました。当然ながら私は「すべてのサーバが適切に接続されているか(NAT)」「ファイアウォールが接続を許可しているか(ポリシー)」を(外部から)知ろうとしました。 そこで私は、さまざま
It took me 2 years, but I think now I love tcpdump. Before we go into why – what’s tcpdump? tcpdump is a tool that will tell you about network traffic on your machine. I was scared of it for a long time and refused to learn how to use it. Now I am wiser and I am here to show you that tcpdump is awesome and there is no need to be scared of it. Let’s go! tcpdump: the basics (or: how not to use it) I
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く