はじめに C++ には anonymous union という機能があります。 JIS 規格は参照していませんが、日本語では「無名共用体[1]」と呼ぶのが一般的なようです。 本記事でもこの呼び方を採用します。 どうも C++98 から存在していた機能のようですが、私はこれの存在を知らなかったので実際に遭遇して驚きました。 なお、本記事における C++ は C++20 を想定しており、規格書は N4861 を参照しています。 遭遇したコード 思いっきり抜粋しましたが、次の Hoge クラスのプライベートメンバが無名共用体です。 class Hoge { public: class A { ... }; class B { ... }; private: // これが無名共用体 union { A a_; B b_; }; }; ご存知の方には何でもないコードでしょうが、私は理解できなくて (
はじめに Log4jやStruts2など、Java製ソフトウェアにおいてリモートからの任意のコード実行(RCE)の脆弱性が目立つ時代になってしまっていますが、これにさらにSpringも加わってきました。この記事では特にCVE-2022-22965に焦点を当て、技術的な視点からの解説を行ってみます。 なぜJavaアプリでRCEとなるのか? Javaの(特にウェブアプリケーションで)RCEとなるパターンはいくつか知られており、以前こちらの記事にまとめました。今回のCVE-2022-22965はこの記事の「3. クラスローダを操作できてしまうパターン」のパターンになります。 なぜクラスローダを操作できるのか? そもそも「クラスローダの操作」とは何を意味しているのでしょうか。この文脈では、Javaのプロセス内のクラスローダ系のクラスのインスタンスの、getterやsetterのメソッドを攻撃者が実
「アジャイルサムライ」の著者が語る、技術志向の企業が世界をどう見ているのか? そしてソフトウェアテスト自動化を進化させる方法について(中編)。JaSST'22 Tokyo基調講演 Jonathan Rasmusson(ジョナサン・ラスムッソン)氏はアジャイル開発における著名人の一人であり、さまざまな先進的ソフトウェア企業において開発やテストに携わってきました。 日本ではアジャイル開発の入門書として話題となった書籍「アジャイルサムライ」(オーム社,2011)や「初めての自動テスト」(オライリー,2021)、「ユニコーン企業のひみつ」(オライリー,2017)の著者としても有名です。 そのラスムッソン氏が2022年3月10日と11日の2日間、ソフトウェアのテストに関わる国内最大のイベント「ソフトウェアテストシンポジウム 2022 東京」(JaSST'22 Tokyo)の基調講演に登壇しました。
AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be
アジャイル手法はソフトウェア開発の枠を超えて、人事、プロジェクト管理、営業など、ビジネスに関わるさまざまな領域に応用されている。しかし、目立つ成果を上げる組織が存在する一方、アジャイル化に頓挫する企業も多い。その原因は、プロセスとツールばかりに目が向けられ、個人との対話を軽視していることにあると筆者は指摘する。対話を促すうえでは、心理的安全性の担保が不可欠だ。本稿では、心理的安全性を高めるための5つの方法を紹介する。 21年前、17人のソフトウェアエンジニアが、アジャイルソフトウェア開発宣言――通称「アジャイル宣言」を発表した。これは直線的な工程と大量のドキュメンテーションを伴う、官僚的なウォーターフォール型のソフトウェア開発に対抗したものである。彼らが提唱したのは、目まぐるしく変化する環境において適応と成功を可能にする、より柔軟なアプローチだ。 価値観と原則を示したこの簡潔な宣言は、その
『ぷよぷよプログラミング』は、アクションパズルゲーム『ぷよぷよ』のソースコードを手本通り入力(写経)することでプログラミングを学習 できる教材で、アシアル社が提供するプログラミング学習環境「Monaca Education」で利用いただけます。ソースコードの改変や画像/音声ファイルの作成・編集・組み込みなど発展的な内容も可能で、これまでは「本物のプログラミングを体験できる」教材として、実践的なプログラミング学習を提供してまいりました。 このたび公開する副教材は京都精華大学メディア表現学部鹿野利春先生に監修いただき、小・中学校・高等学校の学習指導要領に対応しました。教員の方々が指導に活用できる授業マニュアルや児童/生徒用テキストなど、全6種類を公開いたします。本副教材の活用により、「論理的思考力の育成」「情報モラルの必要性理解」「問題発見・解決方法の理解や適切な使用の実践」など各校の授業にお
少しのコードで実装可能なHTML小技集これまで「少しのコードで実装可能な10のCSS小技集」シリーズでCSSのちょっとしたTipsを紹介していましたが、今回はHTMLバージョン!知っていると使い勝手がちょっとよくなる小技を集めました! 少しのコードで実装可能な 10 の CSS 小技集 目次セレクトメニューの選択肢をグループ化type 属性値によって入力欄が変化スマートフォンでエンターキーのテキストを変える画像の遅延読み込みテキストの折り返し位置を指定する番号付きリストの順番を変更する簡単アコーディオン任意のテキストを自動翻訳させないリンク先のテキストを指定してスクロールさせる1. セレクトメニューの選択肢をグループ化複数の選択肢を用意できるおなじみの select タグ。項目は option タグを利用しますが、さらに optgroup タグで囲むことでグループ化できます。選択肢が多い場
表2 Spring Core Remote Code Execution Vulnerabilityシグネチャをトリガーした接続元IP上位15 Spring Core Remote Code Execution Vulnerabilityのシグネチャをトリガーした31,953個のパケットキャプチャを解析し、エクスプロイトに成功した場合にサーバーに保存されるWebシェルのファイル名とWebシェルのコンテンツとを特定しました。多くの場合、Webシェルのファイル名には .jspという拡張子が与えられていました。これによりインストールしたWebシェルが有効に機能するようになります。ただし多くのケースではファイル名にはWebシェルには対応しない拡張子、たとえば .jsや.txtといった拡張子が与えられていました。これらはおそらく脆弱なサーバーの発見のためにファイルアップロード成功可否を示す目的で使用
こんにちは。マネージド&セキュリティサービス部セキュリティサービス部門の閏間です。総合リスクマネジメントサービス「WideAngle」の新サービスの企画を担当しています。 本記事では、私がセキュリティの知識・技術向上のために業務外で取り組んでいるバグバウンティプログラムについて、3回にわたって紹介します。 本記事により、バグバウンティプログラムの有効性と、脆弱性探しのおもしろさの両方を伝えられれば幸いです。 (前編)バグバウンティプログラムの有効性について (中編)脆弱性探しの魅力と調査方法について (後編)実際に発見した脆弱性の詳細について【本記事】 なお、バグバウンティに関する記事としては、NTT Com社内バグバウンティのご紹介もありますので、ぜひそちらもご覧ください。 脆弱性の実例:3つの問題が重なってXSS(Cross Site Scripting)が発生 本記事では、私が過去に
こんにちは。マネージド&セキュリティサービス部セキュリティサービス部門の閏間です。総合リスクマネジメントサービス「WideAngle」の新サービスの企画を担当しています。 本記事では、私がセキュリティの知識・技術向上のために業務外で取り組んでいるバグバウンティプログラムについて、3回にわたって紹介します。 本記事により、バグバウンティプログラムの有効性と、脆弱性探しのおもしろさの両方を伝えられれば幸いです。 (前編)バグバウンティプログラムの有効性について (中編)脆弱性探しの魅力と調査方法について【本記事】 (後編)実際に発見した脆弱性の詳細について なお、バグバウンティに関する記事としては、NTT Com社内バグバウンティのご紹介もありますので、ぜひそちらもご覧ください。 脆弱性探しはおもしろい 本記事では、バグハンターとしての経験を振り返りつつ、脆弱性探しの魅力をお伝えしたいと思いま
April 11, 2022 update – Azure Web Application Firewall (WAF) customers with Regional WAF with Azure Application Gateway now has enhanced protection for critical Spring vulnerabilities – CVE-2022-22963, CVE-2022-22965, and CVE-2022-22947. See Detect and protect with Azure Web Application Firewall (Azure WAF) section for details. On March 31, 2022, vulnerabilities in the Spring Framework for Java we
Re: 僕らを縛る Node.js という呪いについて - あるいはなぜ TypeScript 以外が真っ当な選択肢にならなかったか https://d.potato4d.me/entry/20220405-nodejs/ へのアンサーソング。 プログラミング言語としての JavaScript の話をする。 2010年頃、Python 2 でプログラミングを学習した自分にとっては Node.js + CoffeeScript が Better Python だった。 CoffeeScript は当時の JS(ES3~5) に足りない機能を補ってくれて、Python と同じく空白制御のオフサイドルールなのが気に入った。見た目が少しだけ Ruby っぽいので当時全盛だった Rails の人間に訴求するにも有利だった。 Node.js のモジュールシステムである Commonjs は Pytho
セキュリティベンダーのCheck Point Software Technologiesのリサーチ部門であるCheck Point Researchは2022年4月5日(現地時間)、同社のブログで、先日明らかになったJavaアプリケーションフレームワーク「Spring Framework」(Spring)に関するリモートコード実行の脆弱(ぜいじゃく)性(CVE-2022-22965)を悪用したサイバー攻撃が全世界で拡大していると報じた。 Check Point ResearchはSpringの脆弱性を悪用したサイバー攻撃が全世界で拡大していると報じた。今後もサイバー攻撃に使われる危険性が高く、迅速に対策を取ることが望まれる。(出典:Check Point Software TechnologiesのWebサイト)
ストレージには ブロックストレージ ファイルストレージ オブジェクトストレージ がある。このうちブロックストレージとファイルストレージがPOSIXに準拠する。大半のユーザーはこのようなことを理解する必要はない。だが、ITインフラを設計または調達するのであれば、特にオブジェクトストレージベースのクラウドが普及している現在では、この違いが重要になる。 本稿では前後編に分けてPOSIXとは何か、POSIXが提供すること、POSIXの制限事項、特にオブジェクトストレージの制限について説明する。さらに、その制限についてストレージメーカーやソフトウェアメーカーが行っている取り組みも紹介する。 そもそもPOSIXとは何か iStock.com/ipuwadol POSIXは「Portable Operating System Interface」の略称であり、IEEEが定めた規格を指す。POSIXはUN
[今回の回答者]日本マイクロソフト Azureビジネス本部 マーケットデベロップメント部 プロダクトマネージャー/Azure SME 佐藤 壮一 PowerShell(パワーシェル)は、Windowsの様々な機能をコマンド(PowerShellではコマンドレットと呼びます)で操作するツールです。Windowsで実行する処理のほとんどはPowerShellで実現可能です。例えばActive Directoryを設定したり、ネットワークの設定を変更したりできます。 Windowsには似たツールとして「コマンドプロンプト」が搭載されていますが、PowerShellにはコマンドプロンプトよりも多くのコマンドレットが用意されています。またコマンドプロンプトのコマンドはPowerShellでも実行できるので、PowerShellはいわばコマンドプロンプトの上位互換になっています。 コマンドレットは「動
Microsoftは、まもなく.NET Framework 4.5.2 / 4.6 / 4.6.1のサポートが終了することをアナウンスしました。 SHA-1の廃止に伴って、.NET Framework 4.5.2 / 4.6 / 4.6.1は2022年4月26日(現地時間)にサポート終了となり、この日以降、これらのバージョンのセキュリティアップデートとテクニカルサポートの提供が終了します。 .NET Framework 4.5.2 / 4.6 / 4.6.1のランタイムを使用している場合、今後もセキュリティアップデートやテクニカルサポートを継続して受けるには.NET Framework 4.6.2以降にアップデートする必要があります。 .NET Framework 4.6.2以降のバージョンは、下位バージョンと互換性があるため、.NET Framework 4.5.2 / 4.6 / 4.
注意! こちらの記事は自分の解釈を多く含みます。 十分に注意し、念のため検証してから情報を利用してください! この記事の内容と対象 この記事では、以下の内容に触れます。攻撃原理をわかった範囲でまとめるので、なにかのお役に立てば幸いです。 Spring4Shellの脆弱性の全体像 なぜJDK9.0以上のみ限定なの? なぜtomcatで影響は受けているの?ほかは? 脆弱性の概要 SpringShell RCE vulnerability: Guidance for protecting against and detecting CVE-2022-22965 によると 以下の条件を満たしているときに 任意コード実行 につながると書かれています。 Running JDK 9.0 or later Spring Framework versions 5.3.0 to 5.3.17, 5.2.0 t
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く