<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Karan Shah</title>
    <description>The latest articles on DEV Community by Karan Shah (@krshah3).</description>
    <link>https://dev.to/krshah3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4227446%2F8f6571ef-22fa-4841-adc8-038bed04ff1c.png</url>
      <title>DEV Community: Karan Shah</title>
      <link>https://dev.to/krshah3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/krshah3"/>
    <language>en</language>
    <item>
      <title>Why Access Control Cannot Enforce Purpose Limitation in Data Pipelines</title>
      <dc:creator>Karan Shah</dc:creator>
      <pubDate>Thu, 05 Nov 2026 03:48:23 +0000</pubDate>
      <link>https://dev.to/krshah3/why-access-control-cannot-enforce-purpose-limitation-in-data-pipelines-2h0g</link>
      <guid>https://dev.to/krshah3/why-access-control-cannot-enforce-purpose-limitation-in-data-pipelines-2h0g</guid>
      <description>&lt;p&gt;In May 2022, the FTC and the U.S. Department of Justice fined Twitter &lt;strong&gt;$150 million&lt;/strong&gt;. Twitter collected phone numbers and email addresses from more than &lt;strong&gt;140 million&lt;/strong&gt; users for account security. Advertisers then used the same data to target ads. The collection purpose was stated to users, but it did not restrict which systems could read those fields.&lt;/p&gt;

&lt;p&gt;In most organizations, policy text and consent databases store the allowed purposes of each record. A pipeline that reads the record gets an access decision only. It does not get the allowed purposes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Requirement: purpose limitation
&lt;/h2&gt;

&lt;p&gt;Purpose limitation means that you use personal data only for the purposes for which you collected it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GDPR Article 5(1)(b).&lt;/strong&gt; You collect data for specified purposes. You do not process it further in an incompatible way.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CCPA, Cal. Civ. Code § 1798.100(c).&lt;/strong&gt; Collection, use, retention, and sharing must be reasonably necessary and proportionate to the purpose of collection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FTC Act Section 5.&lt;/strong&gt; A use of data outside what a company told consumers can be a deceptive practice. (The Twitter case is an example)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The requirement applies to each record. A record can be allowed for fraud detection and not allowed for ad personalization. The allowed set changes when the user changes a consent setting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Access control and data use
&lt;/h2&gt;

&lt;p&gt;Data platforms enforce access control at the table, column, or row level. An access check evaluates the principal and the resource. It does not evaluate the purpose of the job or the allowed purposes of each record. After the read, the record goes through joins, feature transforms, copies, and training sets. These operations do not copy the collection purpose as metadata with the record. A downstream job has no field that shows that a phone-number column came from an account-security flow. Enforcement then depends on code review against the written policy and on audits after the data is used. Neither control runs automatically on each pipeline change before deployment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Published evidence
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Andow et al. (USENIX Security 2020) compared the privacy policies of &lt;strong&gt;13,796&lt;/strong&gt; Android apps with the data flows of those apps. Up to &lt;strong&gt;42.4%&lt;/strong&gt; of the apps disclosed their privacy-sensitive flows incorrectly or did not disclose them.&lt;/li&gt;
&lt;li&gt;A Kiteworks survey of 225 security, IT, and risk professionals (December 2025) reports that &lt;strong&gt;78%&lt;/strong&gt; of organizations cannot validate data before it enters a training pipeline. &lt;strong&gt;77%&lt;/strong&gt; cannot trace the source of their training data. These figures are self-reported survey answers from a vendor study. They are not independent measurements.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Impact on model training
&lt;/h2&gt;

&lt;p&gt;If a pipeline sends restricted data to a report, you fix the pipeline and delete the output. If a pipeline sends restricted data to a training job, the data becomes part of the model weights. You cannot remove it without retraining.&lt;/p&gt;

&lt;p&gt;The FTC has ordered companies to delete models that they trained on improperly obtained data: Everalbum (2021), WW International and Kurbo (2022), and Rite Aid (2023). A training set often joins many source tables, and one model can serve many products. A purpose violation in one source table propagates to each model trained on it and to each product that uses those models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Minimum enforcement design
&lt;/h2&gt;

&lt;p&gt;Denning published a lattice model of secure information flow in 1976. Information flow control applies that model to programs and operating systems. The requirement here is to apply it to production data platforms and training pipelines. The minimum design has four parts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Purpose labels on data.&lt;/strong&gt; Each record or field carries its allowed purposes. Joins, transforms, and copies keep the labels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Declared purpose on jobs.&lt;/strong&gt; Each pipeline and training job declares its purpose.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check at the point of use.&lt;/strong&gt; The system compares the job purpose with the data labels. It removes or blocks the records that are not allowed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre-deployment testing.&lt;/strong&gt; You test each change to a pipeline or a policy before production. The test finds violations. It also finds allowed data that the change drops by mistake.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Figure 1 shows parts 1 to 3 in a training pipeline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F418insnkt04d76rxqt9k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F418insnkt04d76rxqt9k.png" alt="Figure 1. Access check and purpose check in a training pipeline" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Figure 1.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Self-assessment
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;When a user withdraws consent for a purpose, which systems receive the change, and how fast?&lt;/li&gt;
&lt;li&gt;Can you list each training set and model that used a given dataset?&lt;/li&gt;
&lt;li&gt;Does a system, and not a person, compare the purpose of each job with the data that it reads?&lt;/li&gt;
&lt;li&gt;When a privacy policy changes, how does the change get into code?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the answer to a question is a manual process or a document, the system does not enforce that control.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Federal Trade Commission. &lt;a href="https://www.ftc.gov/node/79056" rel="noopener noreferrer"&gt;FTC Charges Twitter with Deceptively Using Account Security Data to Sell Targeted Ads&lt;/a&gt;. May 25, 2022.&lt;/li&gt;
&lt;li&gt;European Union. &lt;a href="https://eur-lex.europa.eu/eli/reg/2016/679/oj" rel="noopener noreferrer"&gt;Regulation (EU) 2016/679 (General Data Protection Regulation)&lt;/a&gt;, Article 5(1)(b).&lt;/li&gt;
&lt;li&gt;California Civil Code. &lt;a href="https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=CIV&amp;amp;sectionNum=1798.100" rel="noopener noreferrer"&gt;§ 1798.100(c)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Andow, B., et al. &lt;a href="https://www.usenix.org/conference/usenixsecurity20/presentation/andow" rel="noopener noreferrer"&gt;Actions Speak Louder than Words: Entity-Sensitive Privacy Policy and Data Flow Analysis with PoliCheck&lt;/a&gt;. 29th USENIX Security Symposium, 2020.&lt;/li&gt;
&lt;li&gt;Kiteworks. &lt;a href="https://www.kiteworks.com/sites/default/files/resources/kiteworks-report-data-security-compliance-risk-2026-forecast-report.pdf" rel="noopener noreferrer"&gt;2026 Data Security, Compliance and Risk Forecast Report&lt;/a&gt;. December 2025.&lt;/li&gt;
&lt;li&gt;Federal Trade Commission. In the Matter of Everalbum, Inc. (2021); &lt;a href="https://ftc.gov/news-events/press-releases/2022/03/ftc-takes-action-against-company-formerly-known-weight-watchers" rel="noopener noreferrer"&gt;United States v. Kurbo, Inc. and WW International, Inc.&lt;/a&gt; (2022); FTC v. Rite Aid Corporation (2023).&lt;/li&gt;
&lt;li&gt;Denning, D. E. &lt;a href="https://dl.acm.org/doi/10.1145/360051.360056" rel="noopener noreferrer"&gt;A Lattice Model of Secure Information Flow&lt;/a&gt;. Communications of the ACM 19(5), 1976.&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>privacy</category>
      <category>security</category>
      <category>dataengineering</category>
      <category>machinelearning</category>
    </item>
  </channel>
</rss>
