タグ

ブックマーク / rkx1209.hatenablog.com (9)

  • システムソフトウェアに対する攻撃の歴史と傾向 - 高度標的型攻撃や国家に支援された攻撃の仕組み - - るくすの日記 ~ Out_Of_Range ~

    A History of system-level offensive security researches: How is your system compromised by nation state hacking, APT attack はじめに 企業や個人に対するサイバー攻撃の頻度は年々増加の一途を辿っているが、これらはskiddyによる悪戯程度の物から、企業を標的とした高度な標的型攻撃、あるいは政府による諜報活動に至るまで多岐にわたっている。 特に大規模な組織や政府による綿密に練られたサイバー攻撃は、確実に目的を果たすために高度な手段が講じられる事が多い。 記事では高度標的型攻撃や政府による諜報活動で用いられる手法の一つとして、"システムソフトウェアに対する攻撃"について紹介する。 これはオペレーティングシステム (OS) や仮想マシン、ファームウェアといった基盤システムを

    システムソフトウェアに対する攻撃の歴史と傾向 - 高度標的型攻撃や国家に支援された攻撃の仕組み - - るくすの日記 ~ Out_Of_Range ~
    peketamin
    peketamin 2018/06/21
  • 学生がアメリカの大学院へ行く方法。研究員という選択肢 - るくすの日記 ~ Out_Of_Range ~

    0. はじめに 久しぶりのブログ記事投稿で、いきなりポエムを書きます。技術的な記事じゃないです。 今回は学部や修士の学生が、アメリカの大学院へ進学、ないし一定期間滞在させてもらう方法の一つを実際に私の体験を元に書きます。 以前こういうツイートをしたら、 10月から1年間、客員研究員としてカーネギーメロン大学(CMU)のCyLabで働く事になりました。 多分ほぼ確定— るくす (@RKX1209) 2018年1月23日 どういう経緯で行くことになったのか、書類等はどうしたのか等の質問が来たので、せっかくなので記事としてまとめてしまいます。 海外進出を視野に入れている学生の皆さんの参考になれば幸いです。 私は現在大学院修士1年生で特にOSや仮想マシンモニター、ファームウェアといったシステムソフトウェアをターゲットとした攻撃やその対策技術を研究しています。 また今年の10月から1年ほどこちらの大

    学生がアメリカの大学院へ行く方法。研究員という選択肢 - るくすの日記 ~ Out_Of_Range ~
    peketamin
    peketamin 2018/03/03
  • カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み - - るくすの日記 ~ Out_Of_Range ~

    0. はじめに カーネルエクスプロイト入門記事part2です。 前回part1では、環境構築とLinuxカーネルのメモリ管理の基礎について、実際のエクスプロイトでのユースケースを通して説明しました。 rkx1209.hatenablog.com さて、part2では実際にLinuxカーネルエクスプロイトを書いて行きます。 とはいえ既存の脆弱性を利用するエクスプロイトを記述するのはあまりよろしくないので、今回は学習用に脆弱なドライバを用意し、エクスプロイトを書いていきます。 まあ基的なロジックは実際の脆弱性のそれと同じなので、意義はあるはずです。 学習用ドライバとエクスプロイトコードは以下のレポジトリに置いてありますので、各節ごとに逐次参照 してください。 github.com 1. 特権モードでの権限昇格 脆弱性を悪用して権限昇格を行うにはいくつか常套手段があり、中でも典型的な物がスタッ

    カーネルエクスプロイト入門2 - 特権モードを利用した権限昇格の仕組み - - るくすの日記 ~ Out_Of_Range ~
    peketamin
    peketamin 2017/07/21
  • カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 - - るくすの日記 ~ Out_Of_Range ~

    0. はじめに 記事は、Linuxを対象としたカーネルエクスプロイトの入門記事です。 カーネルエクスプロイトというのは、Linuxや*BSD、Windowsを始めとするカーネル自身の脆弱性を突くエクスプロイトです。 基的にカーネルはシステム内で最高権限を持つ特権モードで動作しているので、ここを悪用されるとシステムの大部分(ほぼ全て)を掌握されてしまいます。 エクスプロイトと言うと、普通はユーザー空間で動作しているアプリケーションのバグをつく物が多いですが、これだと限られたレベルの権限しか奪えません。 SELinuxやjailを始めとする、OSレベルでの保護機構に阻まれるとたちまち効力を失ったりします。 しかし、カーネル自体の脆弱性をつくカーネルエクスプロイトを利用すると最高権限での任意コード実行が可能なため、大抵の保護機構はものともしません。 このカーネルエクスプロイトが特に効力を発揮

    カーネルエクスプロイト入門 - Linuxカーネル解析の基礎 - - るくすの日記 ~ Out_Of_Range ~
    peketamin
    peketamin 2017/07/15
  • 低レイヤーの歩き方 - るくすの日記 ~ Out_Of_Range ~

    この記事は Kobe University Advent Calendar25日目の記事です。 低レイヤー技術(後述)をこれから学びたい人向けの入門記事です。 自身の経験を踏まえ、より多くの人達にこのレイヤーに興味を持ってほしくて書きました。 決して卒論がやばくてAdvent calendarのネタが作れなかったわけでは(ry なぜこんな記事を書いたか いわゆるシステムプログラミングのような低レイヤー(と言って差し支えない)ジャンルって一体何から始めれば良いのかいまいちピンと来ないし、何が面白いのかも分からないと思われている事が多いと思います。 にもかかわらず低レイヤーの魅力や学び方の指針みたいな物を示した、いわゆる入門記事ってかなり少ないんですよね。 記事はこれからシステムプログラミングを始めたい方や、既にかじってみたが中々先が見えてこない、将来何の役に立つのか不安という方達に読んでい

    低レイヤーの歩き方 - るくすの日記 ~ Out_Of_Range ~
    peketamin
    peketamin 2016/12/25
    電圧とか波形とか
  • 弾幕ゲー開発用スクリプト言語を自作した話 - るくすの日記 ~ Out_Of_Range ~

    なんとなくスクリプト言語を作ってみたくなったので、東方のような弾幕ゲーで敵の行動,弾幕パターンを記述するためのスクリプト言語を作ってみました。 (最近のゲーム業界ではわざわざDSLを作るより、LuaやHaxeのような汎用的なスクリプト言語と組み合わせるのが普通みたいですが) 近年コンパイラ基盤の普及で、比較的コンパイラ開発の敷居は下がってると思いますが、せっかくなので今回はLLVMなどのコンパイラ基盤を使わず、フロントエンドから バックエンド,インタプリタまで全て自力でフルスクラッチ開発してみました。 またパーサージェネレーターなども一切使っていません。 github.com フロントエンド 文法はLL(k)のような固定長ではなく任意長先読みで、パックラット構文解析器を実装しました。例えば敵の弾幕スクリプトは以下のように書きます。 let count=0; let cx=GetCenter

    弾幕ゲー開発用スクリプト言語を自作した話 - るくすの日記 ~ Out_Of_Range ~
    peketamin
    peketamin 2016/05/04
  • KVMのなかみ(KVM internals) - るくすの日記 ~ Out_Of_Range ~

    VMMの高速化について学ぶ過程でKVMのコードを読んだので、 メモ代わりに内部構造の解説記事を書きました。 KVMはqemuと連携して動作するため、以前私が書いたQEMU internals( http://rkx1209.hatenablog.com/entry/2015/11/15/214404 ) も合わせてご参照ください。また記事はある程度システムプログラムに慣れており、 VT-xや仮想化の基アーキテクチャは知っている物として進めます。 1.qemu-kvm,kvmの初期化 では早速見て行きましょう。まずはKVMの初期化の入り口となるqemu-kvmサイドから見ていきます。(ちなみに現在qemu-kvmはqemu家に統合されておりconfigを変えることでkvmを有効化する仕様になっています) qemuは/dev/kvmを通してKVMとやり取りを行います。全体的なアーキテクチ

    KVMのなかみ(KVM internals) - るくすの日記 ~ Out_Of_Range ~
    peketamin
    peketamin 2016/01/01
  • QEMUのなかみ(QEMU internals) part2 - るくすの日記 ~ Out_Of_Range ~

    前回(part1)rkx1209.hatenablog.com の続きです。 part2では仮想IRQ,チップセット,仮想IO,TCGを見ていきます。 多分part2で終わりです。(時間があればまたいつかpart3とか書いてみたいですね...) ではまず仮想IRQから見ていきます。 6.仮想IRQ QEMUにおいてIRQはIRQState構造体で表されます。 (hw/core/irq.c) struct IRQState { Object parent_obj; qemu_irq_handler handler; void *opaque; int n; }; nがIRQ番号でhandlerがIRQ#nに対応するハンドラです。またIRQStateは(include/hw/irq.h)でqemu_irqにtypedefされているため以降はqemu_irqと呼びます。 では前回見ていたマシン初

    QEMUのなかみ(QEMU internals) part2 - るくすの日記 ~ Out_Of_Range ~
    peketamin
    peketamin 2015/11/21
  • QEMUのなかみ(QEMU internals) part1 - るくすの日記 ~ Out_Of_Range ~

    ここ一ヶ月ほどQEMUのコードとお戯れしていたのですが、 qemuのソースコードもうすぐ読みきりそうなのでどこかにまとめたいんだけど、qemu internalみたいな記事ってどれぐらい需要あるの— 前代未聞 (@RKX1209) 2015, 11月 9 と言ってみた所なんとなく需要がありそうだったので書きました。 記事ではQEMUの内部実装を追い、具体的な仕組みを見ていきます。もし研究や仕事などでqemuを読む必要がある方や、これから趣味で読んでみようという方はぜひ参考にしてください。 (QEMU internalsというよりはQEMUコードリーディングの方が適切かもしれませんね....) さてここで扱うQEMUはqemu2.4.0でゲストはx86,ホストはx64であると仮定します。 両方共x86系となるとDBTの意味はあまり無く、KVM使ってどうぞという話になるのですが、あくまでコー

    QEMUのなかみ(QEMU internals) part1 - るくすの日記 ~ Out_Of_Range ~
    peketamin
    peketamin 2015/11/16
  • 1