Kategorien
OpTinfoil StefanHomburg Updated

Das Homburg-Pastebin Disaster (Update)

Wie der durchgeknallte Professor keiner großen Pharmaverschwörung auf die Spur kam, sondern sich endgültig, also wirklich endgültig disqualifizierte. (Letztes Update: 16.02.2022 2230 Uhr)

Update: DocCheck erwirkt einstweilige Verfügung und Unterlassungserklärung von Homburg

Der seltsam wirre Professor Homburg ist für einige ein Ärgernis, für uns hier ist er immer wieder Grund für Schmunzeln oder wie gestern lautes Gelächter – egal wie, lächerlich ist er immer irgendwie.

Doch der Sonntag war nicht wie sonst geprägt von gehomburgten Diagrammen, sondern von einer erstaunlichen Ausprägung öffentlich zur Schau gestellter Leichtgläubigkeit und einem guten Teil Kruger-Dunning.

Homburg hat gezeigt, dass es ihm und seinen Jüngern allein darum geht, andere zu diskreditieren, zu mehr nutzt der alte Mann auf dem wissenschaftlichen Abstellgleis wohl nicht mehr.

Was war passiert?

Nun, auf Twitter gibt es einige Accounts von Ärzten, die dort – wie es ihr gesetzliches Recht ist – unter Pseudonym twittern. Einer davon twittert unter dem Handle @narkosedoc und genau dieser Account ist vielen Corona-Kritikern – dazu zählt sich irgendwie auch Homburg – ein Dorn im Auge. Schließlich spricht sich der Account offen für die Impfung aus. Doch nicht nur auf Twitter ist narcosedoc aktiv, auch auf dem Portal DocCheck.com postet er Artikel. Sein Profil dort ist natürlich öffentlich abrufbar.

Ein Twitteraccount @nulleberg hat nun über dieses DocCheck-Portal einen Request an die REST-API des Portals, also eine Anfrage an die Programmierschnittstelle abgesetzt und die Antwort ausgewertet. Wir lassen mal dahingestellt, woher @nulleberg den dafür notwendigen “Authorization-Bearer-Token” eines eingeloggten Users hatte, von dem er selbst schrieb, ist auch egal. Interessanter ist die Rückgabe der API, denn auf dieser baut der wirre Professor Homburg seine “Anklage” auf. Schauen wir doch mal. Denn der ganze Krempel wurde ja in einem Pastebin veröffentlicht, das zwischenzeitlich gelöscht wurde, aber unter Archive.org verfügbar ist.

// GET https://www.doccheck.com/api/channels/470/member-relations (mit gültigem Authorization-Bearer-Token eines eingeloggten Nutzers)
 
{
  "memberRelations": [
    {
      "id": 80,
      "roleType": "ADMIN",
      "creationDate": "2018-11-27T14:30:17+01:00",
      "userIdentity": {
        "id": 138,
        "classIdent": "user",
        "objectId": 134,
        "identityId": 138
      },
      "user": {
        "id": 134,
        "identity": {
          "id": 138,
          "classIdent": "user",
          "objectId": 134,
          "identityId": 138
        },
        "creationDate": "2015-09-15T00:00:00+02:00",
        "modificationDate": "2021-11-19T13:32:18+01:00",
        "editingDate": "2020-09-07T15:21:07+02:00",
        "groupAccessRole": "ROLE_GUEST",
        "postCount": 2,
        "viewCount": -1,
        "followerCount": 20,
        "processingStates": {
          "headerImage": null,
          "profileImage": "finished"
        },
        "images": {
          "profileImage": {
            "mdSq": "https://dccdn.de/www.doccheck.com/data/kp/j4/24/3m/ru/u2/mira_2_mdSq.jpg",
            "smSq": "https://dccdn.de/www.doccheck.com/data/kp/j4/24/3m/ru/u2/mira_2_smSq.jpg"
          }
        },
        "slug": "xxx-xxx",
        "title": "",
        "firstName": "xxx",
        "lastName": "xxx",
        "gender": "f",
        "followedCount": 84,
        "channelCount": 3,
        "primaryOccupationSetId": 134,
        "content": "",
        "contentTeaser": "",
        "autoGenerateTeaser": true,
        "confirmedTranslations": {
          "de": true
        },
        "contentLanguage": "de",
        "verified": true,
        "verifiedMedic": false,
        "detailUrl": "https://www.doccheck.com/de/profile/users/134-xxx-xxx",
        "determinedLanguage": "de",
        "primaryOccupationSet": {
          "id": 134,
          "type": "primary",
          "occupationVerificationState": "verified",
          "professions": [
            {
              "id": 224,
              "title": "DocCheck Team",
              "determinedLanguage": "en"
            }
          ],
          "disciplines": [],
          "activities": [
            {
              "id": 100220,
              "title": "Editing",
              "determinedLanguage": "en"
            }
          ],
          "additionals": [],
          "specialties": [],
          "positions": []
        }
      }
    },
    {
      "id": 104,
      "roleType": "AUTHOR",
      "creationDate": "2018-12-13T17:58:08+01:00",
      "userIdentity": {
        "id": 148,
        "classIdent": "user",
        "objectId": 145,
        "identityId": 148
      },
      "user": {
        "id": 145,
        "identity": {
          "id": 148,
          "classIdent": "user",
          "objectId": 145,
          "identityId": 148
        },
        "creationDate": "2017-04-03T00:00:00+02:00",
        "modificationDate": "2022-01-13T15:07:32+01:00",
        "editingDate": "2021-09-13T15:50:29+02:00",
        "groupAccessRole": "ROLE_GUEST",
        "postCount": 56,
        "viewCount": -1,
        "followerCount": 20,
        "processingStates": {
          "headerImage": null,
          "profileImage": "finished"
        },
        "images": {
          "profileImage": {
            "mdSq": "https://dccdn.de/www.doccheck.com/data/x7/vs/tf/kw/ty/ga/jane_1-1-1_mdSq.jpg",
            "smSq": "https://dccdn.de/www.doccheck.com/data/x7/vs/tf/kw/ty/ga/jane_1-1-1_smSq.jpg"
          }
        },
        "slug": "yyy-yyy",
        "title": "",
        "firstName": "yyy",
        "lastName": "yyy",
        "gender": "f",
        "followedCount": 53,
        "channelCount": 7,
        "primaryOccupationSetId": 144,
        "content": "",
        "contentTeaser": "",
        "autoGenerateTeaser": true,
        "confirmedTranslations": {
          "de": true
        },
        "contentLanguage": "de",
        "verified": true,
        "verifiedMedic": false,
        "detailUrl": "https://www.doccheck.com/de/profile/users/145-yyy-yyy",
        "determinedLanguage": "de",
        "primaryOccupationSet": {
          "id": 144,
          "type": "primary",
          "occupationVerificationState": "verified",
          "professions": [
            {
              "id": 224,
              "title": "DocCheck Team",
              "determinedLanguage": "en"
            }
          ],
          "disciplines": [],
          "activities": [
            {
              "id": 100220,
              "title": "Editing",
              "determinedLanguage": "en"
            }
          ],
          "additionals": [],
          "specialties": [],
          "positions": []
        }
      }
    },
    {
      "id": 366,
      "roleType": "AUTHOR",
      "creationDate": "2019-10-14T11:19:21+02:00",
      "userIdentity": {
        "id": 805914,
        "classIdent": "user",
        "objectId": 701164,
        "identityId": 805914
      },
      "user": {
        "id": 701164,
        "identity": {
          "id": 805914,
          "classIdent": "user",
          "objectId": 701164,
          "identityId": 805914
        },
        "creationDate": "2019-02-01T15:09:46+01:00",
        "modificationDate": "2022-01-13T17:00:15+01:00",
        "editingDate": "2021-07-20T16:31:51+02:00",
        "groupAccessRole": "ROLE_GUEST",
        "postCount": 78,
        "viewCount": -1,
        "followerCount": 24,
        "processingStates": {
          "headerImage": null,
          "profileImage": "finished"
        },
        "images": {
          "profileImage": {
            "mdSq": "https://dccdn.de/www.doccheck.com/data/vq/zw/6f/g9/g3/75/unbenannt-3_mdSq.jpg",
            "smSq": "https://dccdn.de/www.doccheck.com/data/vq/zw/6f/g9/g3/75/unbenannt-3_smSq.jpg"
          }
        },
        "slug": "zzz-zzz-zzz",
        "title": "",
        "firstName": "zzz",
        "lastName": "zzz-zzz",
        "gender": "f",
        "followedCount": 77,
        "channelCount": 4,
        "primaryOccupationSetId": 692072,
        "content": "",
        "contentTeaser": "",
        "autoGenerateTeaser": true,
        "confirmedTranslations": {
          "de": true
        },
        "contentLanguage": "de",
        "verified": true,
        "verifiedMedic": false,
        "detailUrl": "https://www.doccheck.com/de/profile/users/701164-zzz-zzz-zzz",
        "determinedLanguage": "de",
        "primaryOccupationSet": {
          "id": 692072,
          "type": "primary",
          "occupationVerificationState": "verified",
          "professions": [
            {
              "id": 224,
              "title": "DocCheck Team",
              "determinedLanguage": "en"
            }
          ],
          "disciplines": [],
          "activities": [
            {
              "id": 100220,
              "title": "Editing",
              "determinedLanguage": "en"
            }
          ],
          "additionals": [],
          "specialties": [],
          "positions": []
        }
      }
    },
    {
      "id": 804,
      "roleType": "ADMIN",
      "creationDate": "2020-11-10T15:10:18+01:00",
      "userIdentity": {
        "id": 1006977,
        "classIdent": "user",
        "objectId": 824878,
        "identityId": 1006977
      },
      "user": {
        "id": 824878,
        "identity": {
          "id": 1006977,
          "classIdent": "user",
          "objectId": 824878,
          "identityId": 1006977
        },
        "creationDate": "2020-01-02T13:50:24+01:00",
        "modificationDate": "2022-01-13T12:40:12+01:00",
        "editingDate": "2021-03-16T14:04:34+01:00",
        "groupAccessRole": "ROLE_GUEST",
        "postCount": 65,
        "viewCount": -1,
        "followerCount": 25,
        "processingStates": {
          "headerImage": null,
          "profileImage": "finished"
        },
        "images": {
          "profileImage": {
            "mdSq": "https://dccdn.de/www.doccheck.com/data/u5/rs/ng/ha/gs/6u/img_20200124_195224_095_bearbeitet_und_scha_rfer_mdSq.jpg",
            "smSq": "https://dccdn.de/www.doccheck.com/data/u5/rs/ng/ha/gs/6u/img_20200124_195224_095_bearbeitet_und_scha_rfer_smSq.jpg"
          }
        },
        "slug": "aa-aa-aa-a",
        "title": "aa",
        "firstName": "aaa",
        "lastName": "aaa",
        "gender": "f",
        "followedCount": 60,
        "channelCount": 6,
        "primaryOccupationSetId": 791444,
        "content": "",
        "contentTeaser": "",
        "autoGenerateTeaser": true,
        "confirmedTranslations": {
          "de": true
        },
        "contentLanguage": "de",
        "verified": true,
        "verifiedMedic": false,
        "detailUrl": "https://www.doccheck.com/de/profile/users/824878-aa-aaa-aaaaa",
        "determinedLanguage": "de",
        "primaryOccupationSet": {
          "id": 791444,
          "type": "primary",
          "occupationVerificationState": null,
          "professions": [
            {
              "id": 224,
              "title": "DocCheck Team",
              "determinedLanguage": "en"
            }
          ],
          "disciplines": [],
          "activities": [
            {
              "id": 100220,
              "title": "Editing",
              "determinedLanguage": "en"
            }
          ],
          "additionals": [],
          "specialties": [],
          "positions": []
        }
      }
    },
    {
      "id": 1042,
      "roleType": "ADMIN",
      "creationDate": "2021-04-08T11:17:03+02:00",
      "userIdentity": {
        "id": 68,
        "classIdent": "user",
        "objectId": 65,
        "identityId": 68
      },
      "user": {
        "id": 65,
        "identity": {
          "id": 68,
          "classIdent": "user",
          "objectId": 65,
          "identityId": 68
        },
        "creationDate": "2016-09-01T00:00:00+02:00",
        "modificationDate": "2021-11-19T13:32:15+01:00",
        "editingDate": "2020-07-21T11:03:54+02:00",
        "groupAccessRole": "ROLE_GUEST",
        "postCount": 221,
        "viewCount": -1,
        "followerCount": 43,
        "processingStates": {
          "headerImage": null,
          "profileImage": "finished"
        },
        "images": {
          "profileImage": {
            "mdSq": "https://dccdn.de/www.doccheck.com/data/hc/an/zw/5p/b3/ts/dc_staff_ag_bbb_m-legacy_user_profile_image_mdSq.jpg",
            "smSq": "https://dccdn.de/www.doccheck.com/data/hc/an/zw/5p/b3/ts/dc_staff_ag_bbb_m-legacy_user_profile_image_smSq.jpg"
          }
        },
        "slug": "bbbbbbbb",
        "title": "bbbbb",
        "firstName": "bbbb",
        "lastName": "bbb",
        "gender": "f",
        "followedCount": 49,
        "channelCount": 4,
        "primaryOccupationSetId": 65,
        "content": "",
        "contentTeaser": "",
        "autoGenerateTeaser": true,
        "confirmedTranslations": {
          "de": true
        },
        "contentLanguage": "de",
        "verified": true,
        "verifiedMedic": false,
        "detailUrl": "https://www.doccheck.com/de/profile/users/65-bbb-bbbbb-bbbbb",
        "determinedLanguage": "de",
        "primaryOccupationSet": {
          "id": 65,
          "type": "primary",
          "occupationVerificationState": "verified",
          "professions": [
            {
              "id": 224,
              "title": "DocCheck Team",
              "determinedLanguage": "en"
            }
          ],
          "disciplines": [],
          "activities": [
            {
              "id": 100220,
              "title": "Editing",
              "determinedLanguage": "en"
            }
          ],
          "additionals": [],
          "specialties": [],
          "positions": []
        }
      }
    }
  ]
}

Das Pastebin ist nicht mehr verfügbar, deswegen hier in Gänze, die Daten haben wir allerdings anonymisiert.

Dargestellt werden die sogenannten Member-Relations für den Account des fraglichen Arztes. Member Relations sind Accounts, die mit dem abgefragten Account in Verbindung stehen.

Bei einem Portal wie DocCheck erwartet man solche Member Relations, denn Beiträge werden von den Leuten dort für das Portal freigeschaltet, in die richtige Kategorie verschoben, sie müssen bei rechtlichen Problemen den Beitrag ggf. sperren können. Das Wasser ist nass, der Himmel ist blau … Portal Mitarbeiter haben Zugriff. Und mehr als das lässt sich aus den Daten auch nicht herauslesen.

Man sieht die Account-Daten mehrerer Accounts des “DocCheck Teams”. Darunter Admins, aber auch “Autoren”. Und eben jenes “Autoren” nimmt Homburg als Anlass für eine Kampagne gegen gleich mehrere Ärzte, einzig mit dem Ziel, sie zu diskreditieren.

Für Homburg ist der kurze, inhaltlich zur Bewertung völlig unzureichende Auszug Grund genug zu vermuten, dass die Damen und Herren, deren Accounts in der API-Antwort genannt werden, auch diejenigen sind, die die Texte schreiben. Oder anders gehomburgt: Die DocCheck-Leute schreiben alles selbst und – ein noch gewagterer Schritt – @narkosedoc ist deswegen kein echter Arzt, sondern ein bezahlter Agenturtroll. Alles Teil der großen Big-Pharma-Verschwörung im Hirn des psychotischen Professors.

Die Vermutung des Herrn Homburg ist als solche anhand dieser API-Antwort alles andere als bewiesen. Im Gegenteil. Dennoch schmiedet er seinen Tweet, denn es passt so schön zu seinem sonstigen Kernschrott.

“offenbart, wer dort wirklich schreibt”? Nein, gerade nicht. Jedenfalls nicht, solange @nullouvert nicht mit mehr Informationen und mehr Pastes aus der API herausrückt. Solange bleiben dieses Accounts das, was sie sind: Member Related. Und solange bleibt Homburgs Vermutung nicht mehr als das: eine Vermutung.

Aber hey, er wäre halt nicht Homburg, wenn er sich nicht extremst weit aus dem Fenster lehnen würde. Denn er weiß genau, dass seine hohlen Follower – einige haben sich eigens mit “IchBinStaatsfeind” getaggt – ihm alles unreflektiert abnehmen. Denken ja schließlich alle selbst, diese Leute. Und er kann auch darauf zählen, dass Springer-Schreiberlinge wie Tim Röhn (vom Druckwerk Welt – “Büdde nüch!!”) darauf anspringen.

Heute hat es dann eine Stellungnahme von DocCheck gegeben. Die hätte man sich etwas transparenter gewünscht, aber gut. Dort wird gesagt:

Die Identität aller DocCheck-Blogger:innen ist der Redaktion bekannt. Einige Blogger publizieren unter einem Pseudonym. Das gilt u. a. für den Blogger „Narkosedoc“ und seinen unabhängig von DocCheck unter demselben Namen betriebenen Twitter-Account. Die Inhalte von „Narkosedoc“ im gleichnamigen Blog sind authentisch und nicht von DocCheck-Mitarbeiter:innen verfasst.

https://www.doccheck.com/de/detail/articles/37147-aus-aktuellem-anlass-narkosedoc

Und daraufhin hat sofort auch Topschreiber Röhn seine Recherche abgebrochen – und klingt bisschen angepiht …

Und ja, wir hören die Homburg-Jünger murren: “Da steht doch aber ‘Author’!!!eins11”

Klar steht in der API-Response “Author” und wer sich ein kleines Bisschen mehr mit Portalen und CMS auskennt, der kennt auch den Begriff RoleType, der bei einigen dort “Admin” und bei anderen “Author” nennt. Diese “Rollen” in Content-Management-Systemen und bei vielen Portalen definieren einen Satz von Rechten, die der User zur Verarbeitung von geliefertem Content und zur Pflege des Portals hat. Ein “Admin” darf mehr als ein “Author”, kennt jeder, der sich schon mal mit der Benutzerverwaltung in WordPress beispielsweise beschäftigt hat.

Einige User auf Twitter haben sofort selbst Accounts dort bei DocCheck angelegt und das mit der API einmal ausprobiert. Dabei kam heraus, dass bei frischen Accounts “Member Relations” komplett leer ist. Klar, warum sollte es auch Member Relations geben, wenn keine Inhalte hinterlegt wurden, die vom Portal freigeschaltet oder bearbeitet werden mussten. Die Annahme, dass es leer sei, weil erst “Autoren zugewiesen” werden müssten, ist Quark, denn wenigstens der Member selbst wäre Autor. Es soll auch Menschen geben, die zwar intubieren, aber keinen Text in Portale einstellen können. Hier wird sicher jemand vom Portal tätig und stellt den Text fachgerecht ein. Wer Portale kennt, weiß das. Natalie Grams bestätigt dies sogar.

Und was soll das jetzt alles? Das müsst ihr den durchgeknallten Professor Homburg fragen. Seine Intention ist es, Ärzte auf Twitter mundtot zu machen und zu diskreditieren. In seiner erbarmungswürdigen Hilflosigkeit weiß er sich nicht mehr anderes zu helfen, so scheint es, als um sich zu schlagen. Seine Diagramme nimmt ja niemand mehr ernst, seine Statistiken wurden schon des Öfteren von DeStatis kritisiert oder widerlegt. “Doktern wie Homburg” oder “homburgen” sind mittlerweile auf Twitter Zeichen der Missachtung für diesen gescheiterten Professor. Nur seine knapp 60K Follower halten ihm noch die Stange, das Viagra für den alten Mann.

Kommen wir nochmal zurück auf den Request an die API. Wir hatten das mit dem Authentifzierungs-Token nochmal zurückgestellt. Wie ist das eigentlich: eine Schnittstelle ist durch ein Token gesichert. Irgendwie ist @nulldepp an ein Token gekommen und konnte so einen Request für einen anderen User absetzen, denn der User hatte sicher nicht den Token von narkosedoc und schreibt selbst im Pastebin von “gültigem Authorization-Bearer-Token eines eingeloggten Nutzers“?

Gut, nach der Definition im StGB wäre dies wahrscheinlich die Umgehung einer Sicherungsmaßnahme. Damit wäre es rein rechtlich ein Hack, wenn auch nicht technisch. Und damit hätte Homburg, der ja selbst von “Sicherheitslücke” schreibt, Daten veröffentlicht, die aus einem Hack stammen. Dann sollte Twitter diesen Hacker jetzt aber auch sperren. Also auch Homburg, denn er verlinkte auf Daten, die einem Hack entstammen könnten. Das wäre nur gerecht, streng genommen, denn andere wurden schon für noch weniger Hack gesperrt. Darüber hinaus waren die Daten nicht anonymisiert.

Aber von Twitter erwarten wir schon nichts mehr, nicht von Jolanta, nicht von Christoph. Twitter macht sich mitschuldig an Hass und Hetze, auch das ist unvergessen.

Ja … und weil unser Twitter-Account sich über Homburg lustig machte … hat der uns jetzt “auf dem Schirm”, denn auch wir sind seiner Meinung nach bezahlte Schergen der Big-Pharma-Verschwörung.

Wir zittern wie Espenlaub vor “Opa Homburg und den Staatsfeinden”.

Hey, cooler Bandname.


Update:

Ein User auf Twitter macht uns darauf aufmerksam, dass beim DocCheck-Login ein allgemeiner Benutzer-Token vergeben wird und es ansonsten keine Sicherungsmaßnahmen innerhalb der API gibt. Gut, dann kein §202a, keine Umgehung von Sicherheitsmaßnahmen.

Aber es ändert nichts an der Fehlinterpretation der Daten und der Hetze, die darauf folgte.

Update 16.02.2022, 22:30 Uhr

DocCheck hat gegen Homburg nach eigenen Angaben eine einstweilige Verfügung erwirkt, da dieser sich zunächst geweigert habe, eine Unterlassungserklärung abzugeben.

DocCheck hat vor diesem Hintergrund vom Verfasser des Tweets eine Unterlassungserklärung eingefordert und ist auch an anderen Stellen gegen Falschberichte aktiv vorgegangen. Als die Unterlassungserklärung zunächst verweigert wurde, strengte DocCheck eine einstweilige Verfügung an. Dieser hat das Landgericht Köln entsprochen und die Weiterverbreitung des Tweets bzw. die erneute Aufstellung entsprechender Behauptungen unter Androhung von Ordnungsgeld bzw. Ordnungshaft verboten. 

Mit Schreiben vom 15. Februar 2022 hat der Verfasser des Ausgangs-Tweets die einstweilige Verfügung jetzt vorbehaltlos als endgültige, rechtsverbindliche Regelung anerkannt und mitgeteilt, den Tweet gelöscht zu haben.

https://www.doccheck.com/de/detail/articles/37440-in-sachen-narkosedoc

Das ist aber letztlich nur ein Teilsieg. Homburg ist es gelungen, durch perfide Lüge die Meinung gegen einen Arzt zu beeinflussen. Seine Follower glauben es, ob er den Tweet nun löscht oder nicht, ob er nun recht hatte oder nicht.

Sehr viel tiefer kann man als “Professor” nicht mehr sinken. Ach doch, er könnte noch um Spenden jammern. Aber als Professor hat er gute Möglichkeiten für eine nette vom Steuerzahler finanzierte Pension, von daher wird er das nicht nötig haben.