Araştırmacı PDF Fiyatlandırmasını Değiştirmek İçin Tarayıcı İşleme Sürecini Kullanıyor


Tarayıcı İşleme Süreci PDF Fiyatlandırması

Siber güvenlik araştırmacısı Zakhar Fedotkin, farklı tarayıcılar ve işletim sistemleri arasında PDF oluşturma farklılıklarının, PDF faturalarında görüntülenen fiyatları değiştirmek için nasıl kullanılabileceğini gösterdi.

Bu güvenlik açığı, dijital faturalarla işlem yapan işletmeleri önemli ölçüde etkileyebilir.

DÖRT

Konstantin Weddige’nin “Kobold Mektupları” adlı blog yazısından ilham alan araştırmacı, bir PDF faturanın kullanılan görüntüleyiciye bağlı olarak farklı fiyatları nasıl gösterebileceğini gösteren bir kavram kanıtı oluşturdu.

Ücretsiz web seminerimize katılarak şu konularda bilgi edinin: yavaş DDoS saldırılarıyla mücadelebugün büyük bir tehdit.

Gösterimde, bir PDF faturası Safari ve MacOS Preview’da görüntülendiğinde toplam 399 £ fiyat gösterdi. Ancak, aynı dosya Windows işletim sisteminde Google Chrome veya Google Drive’da açıldığında toplam 999 £ fiyat gösterdi.

Gösterim süreci

Kararsız PDF’ler

PDF oluşturma tutarsızlıkları, her büyük tarayıcının PDF dosyalarını oluşturmak için farklı bir motor kullanmasından kaynaklanır:

  • Google Chrome: PDFium kullanır.
  • Safari:Kendi PDF oluşturma motorunu kullanır.
  • Firefox: PDF.js’yi kullanır.

Bu motorlar etkileşimli form alanlarını ve widget açıklamalarını farklı şekilde ele alır ve bu da aynı PDF dosyasının farklı platformlarda nasıl görüntülendiği konusunda tutarsızlıklara yol açar.

Araştırmacı, işleme tutarsızlıkları yaratmak için widget açıklamalarını kötüye kullanan bir karma PDF oluşturmak için org.apache.pdfbox Java kütüphanesini kullandı. Süreç şunları içerir:

  1. Etkileşimli Bir Form Oluşturma:Formda en az bir adet varsayılan değere sahip giriş metin alanı bulunmaktadır (örneğin 399 £).
  2. Widget Açıklamaları Ekleme: Bu açıklamalar, form alanlarına göre açıklamalara öncelik veren görüntüleyicilerde farklı bir değer (örneğin 999 £) oluşturmak için kullanılır.

Kullanılan kodun basitleştirilmiş hali şöyle:

PDDocument document = new PDDocument();
PDAcroForm acroForm = new PDAcroForm(document);
PDTextField field = new PDTextField(acroForm);
field.setValue("£399");

// Create and set custom appearance stream
PDFormXObject appearanceStream = new PDFormXObject(document);
PDPageContentStream appearanceContents = new PDPageContentStream(document, appearanceStream);
appearanceContents.beginText();
appearanceContents.showText("£999");
appearanceContents.endText();
appearanceContents.close();

PDAnnotationWidget widget = field.getWidgets().get(0);
widget.setAppearance(appearanceStream);
document.save("Invoice.pdf");
document.close();

Bu tutarsızlık, ele alınmazsa ciddi finansal tutarsızlıklara yol açabilir. Örneğin, bir CEO, Safari’de görüntülenen 399 £’a dayanarak bir faturayı onaylayabilir, ancak muhasebe departmanı aynı faturayı Google Chrome’da görüntüledikten sonra 999 £’luk bir ödemeyi işleme alabilir.

Farklı platformlardaki PDF oluşturma süreçlerinin karmaşıklığı ve belirsizliği, dijital faturaların işlenmesinde dikkatli olunmasını gerektirir.

İşletmeler, bu tür tutarsızlıkları önlemek için onay ve ödeme süreçlerine dahil olan tüm tarafların aynı PDF görüntüleyicisini kullandığından emin olmalıdır. Ayrıca, geliştiriciler ve siber güvenlik uzmanları, olası istismara karşı korunmak için bu güvenlik açıklarının farkında olmalıdır.

Bu araştırmada kullanılan teknik detaylara ve kodlara ilgi duyanlar için Fickle PDF örnekleri araştırmacının GitHub deposunda bulunabilir.

"Is Your System Under Attack? Try Cynet XDR: Automated Detection & Response for Endpoints, Networks, & Users!"- Free Demo



Source link