Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Developer-First Security という考え方 / Introduction to Developer-First Security

Takashi Yoneuchi
September 16, 2021

Developer-First Security という考え方 / Introduction to Developer-First Security

LOCAL Developer Day Online ’21 /Security というイベントで利用した講演資料です。
イベントページ: https://local.connpass.com/event/219312/
話者: https://twitter.com/lmt_swallow

Takashi Yoneuchi

September 16, 2021
Tweet

More Decks by Takashi Yoneuchi

Other Decks in Technology

Transcript

  1. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ XIPBNJ ৄࡉ͸IUUQTTIJGUKTJOGPʹ͋Γ·͢  ‣ ถ಺وࢤ :0/&6$)* 5BLBTIJ 

    ‣ גࣜձࣾ'MBUU4FDVSJUZࣥߦ໾һ$50 ‣ ʮ։ൃऀͷͨΊͷɺ։ൃऀʹدΓఴͬͨηΩϡ ϦςΟʯΛୈҰٛͱͯ͠ಇ͍͍ͯ·͢ ‣ ੈͷதͷʢಛʹΠϯϋ΢εͷʣϓϩμΫτνʔ Ϝ͕҆৺ͯ͠ಇ͚ΔੈքΛ࡞Γ͍ͨͰ͢ ‣ ஶॻͳͲ ‣ ʰ8FCϒϥ΢βηΩϡϦςΟʱ ‣ ʰৄղηΩϡϦςΟίϯςετʱ ‣ ๺ւಓ۴࿏ࢢग़਎
  2. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ ඪ४Խஂମ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ڭҭऀ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ηΩϡϦςΟ ϕϯμ
  3. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ηΩϡϦςΟ ϕϯμ ڭҭऀ ඪ४Խஂମ ͜Ε·Ͱࣗ෼͕ ޲͖߹͖ͬͯͨ͜ͱ
  4. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ηΩϡϦςΟ ϕϯμ IUUQTGMBUUUFDILFOSP ڭҭऀ ඪ४Խஂମ ͜Ε·Ͱࣗ෼͕ ޲͖߹͖ͬͯͨ͜ͱ
  5. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ ηΩϡϦςΟ ϕϯμ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ڭҭऀ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ඪ४Խஂମ ͜Ε·Ͱࣗ෼͕ ޲͖߹͖ͬͯͨ͜ͱ
  6. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ ηΩϡϦςΟ ϕϯμ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ڭҭऀ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ IUUQTCVHTDISPNJVNPSHQDISPNJVNJTTVFTEFUBJM JE IUUQTQPSUTXJHHFSOFUEBJMZTXJHCMJOESFHFYJOKFDUJPOUIFPSFUJDBM FYQMPJUPGGFSTOFXXBZUPGPSDFXFCBQQTUPTQJMMTFDSFUT ඪ४Խஂମ ͜Ε·Ͱࣗ෼͕ ޲͖߹͖ͬͯͨ͜ͱ
  7. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ ηΩϡϦςΟ ϕϯμ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ڭҭऀ ඪ४Խஂମ ͜Ε·Ͱࣗ෼͕ ޲͖߹͖ͬͯͨ͜ͱ
  8. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ ηΩϡϦςΟ ϕϯμ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ IUUQTGMBUUUFDIBTTFTTNFOUEFUBJM ڭҭऀ ඪ४Խஂମ ͜Ε·Ͱࣗ෼͕ ޲͖߹͖ͬͯͨ͜ͱ
  9. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ηΩϡϦςΟ ϕϯμ ڭҭऀ ඪ४Խஂମ ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ ͜Ε·Ͱࣗ෼͕ ޲͖߹͖ͬͯͨ͜ͱ
  10. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ηΩϡϦςΟ ϕϯμ ڭҭऀ ඪ४Խஂମ ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ ͜Ε·Ͱࣗ෼͕ ޲͖߹͖ͬͯͨ͜ͱ
  11. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ηΩϡϦςΟ ϕϯμ ڭҭऀ ඪ४Խஂମ ͜Ε·Ͱࣗ෼͕ ޲͖߹͖ͬͯͨ͜ͱ
  12. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ ίʔϙϨʔτ*5 ෦໳ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ  ։ൃऀ

    ӡ༻ऀ ηΩϡϦςΟ ݚڀऀ ؂ࠪ ΝʔϜ ඪ४Խஂମ ઃܭऀ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ γϑτϨϑτΛਪ͠ਐΊΔͱ ࠨͷ΄͏ʹ͍Δઃܭɾ։ൃऀʹ͍͍ۙͮͯ͘ ηΩϡϦςΟ ϕϯμ ڭҭऀ ܦݧΛܦͯಘͨ খ͞ͳؾ෇͖
  13. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ ίʔϙϨʔτ*5 ෦໳ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ  ։ൃऀ

    ӡ༻ऀ ηΩϡϦςΟ ݚڀऀ ؂ࠪ ΝʔϜ ඪ४Խஂମ ઃܭऀ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ γϑτϨϑτΛਪ͠ਐΊΔͱ ࠨͷ΄͏ʹ͍Δઃܭɾ։ൃऀʹ͍͍ۙͮͯ͘ ʜ͕ɺ௕Β͘ʮΈΜͳ౰ͨΓલʹ࢖͏΋ͷʯ͸ੜ·Εͯ͜ͳ͔ͬͨ ηΩϡϦςΟ ϕϯμ ڭҭऀ ܦݧΛܦͯಘͨ খ͞ͳؾ෇͖
  14. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ ඪ४Խஂମ ઃܭऀ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ %FW0QT͸͜ͷΞΫλʔؒͷ ༥࿨ͷͨΊͷϓϥΫςΟε ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ηΩϡϦςΟ ϕϯμ ڭҭऀ
  15. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ ‣ %FW0QTͷՃ଎͸0QTʢӡ༻νʔϜʣͷऔΓѻ͍ͬͯͨ΋ͷ͕ιϑτ΢ΣΞత ʹऔΓѻ͑ΔΑ͏ʹͳͬͨ͜ͱɺͱΓΘ͚ίʔυͰදݱՄೳͳ΋ͷʹมԽͨ͜͠ ͱʹେ͖͘ࢧ͑ΒΕ͍ͯΔͱ͍ͬͯ΋աݴͰ͸ͳ͍ɻ  %FW0QTͷਐԽΛࢧٕ͑ͨज़ resource "google_container_cluster"

    "challenge_cluster" { name = "challenges" location = "asia-northeast1" initial_node_count = 1 cluster_autoscaling { enabled = true resource_limits { resource_type = "cpu" minimum = 3 maximum = 32 } resource_limits { resource_type = "memory" minimum = 3 maximum = 32 } } ...
  16. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ։ൃऀ ηΩϡϦςΟ ܥͷ؅ཧ෦໳ ίʔϙϨʔτ*5 ෦໳ ӡ༻ऀ ηΩϡϦςΟ

    ݚڀऀ ؂ࠪ ΝʔϜ $*40΍ ͦͷଞܦӦ૚ ߈ܸऀ ൜ࡑ૊৫ ࠃՈ ৘ใηΩϡϦςΟʹ͸ ༷ʑͳΞΫλʔ͕ଘࡏ ηΩϡϦςΟ ϕϯμ ڭҭऀ %FW4FD0QT͸ ͜ͷลͷ༥࿨ͷͨΊͷϓϥΫςΟε ඪ४Խஂମ
  17. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ ‣ %FW0QTͷՃ଎0QTʢӡ༻νʔϜʣͷऔΓѻ͍ͬͯͨ΋ͷ͕ιϑτ΢ΣΞతʹ औΓѻ͑ΔΑ͏ʹͳͬͨ͜ͱɺͱΓΘ͚ίʔυͰදݱՄೳͳ΋ͷʹมԽͨ͜͠ͱ ʹେ͖͘ࢧ͑ΒΕ͍ͯΔͱ͍ͬͯ΋աݴͰ͸ͳ͍ɻ  %FW0QTͷਐԽΛࢧٕ͑ͨज़ resource "google_container_cluster"

    "challenge_cluster" { name = "challenges" location = "asia-northeast1" initial_node_count = 1 cluster_autoscaling { enabled = true resource_limits { resource_type = "cpu" minimum = 3 maximum = 32 } resource_limits { resource_type = "memory" minimum = 3 maximum = 32 } } ...
  18. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  1PMJDZBT$PEF ϙϦγʔͷΠϝʔδ ٕज़తର৅ʹؔ͢ΔϙϦγʔΛίʔυͱͯ͠දݱ͢Δख๏ version: '1' rules: -

    id: 'unencrypted-ebs-volume' language: hcl message: | There was unencrypted EBS module. pattern: | resource "aws_ebs_volume" :[NAME] { :[...X] } constraints: - target: X should: not-match pattern: | encrypted = true rewrite: | resource "aws_ebs_volume" :[NAME] { :[X] encrypted = true }
  19. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  0QFO1PMJDZ"HFOU IUUQTXXXPQFOQPMJDZBHFOUPSHEPDTWΑΓҾ༻ ‣ ൚༻ੑͷߴ͍ϙϦγʔΤϯδϯ ‣ 3FHPͱ͍͏%4-ΑΓʹهड़͞ΕͨϙϦ γʔΛݩʹɺ͋Δ৘ใʢ2VFSZʣ͕ϙϦγʔʹ

    ରͯ͠Ϛον͢Δ͔ͷ൑அʢ%FDJTJPOʣΛߦ͏ ͜ͱ͕Ͱ͖Δ ‣ ൑அͷͨΊͷϩδοΫͱ൑அ݁Ռʹґଘ͢Δ ϩδοΫ͕෼཭͞ΕΔʢ1PMJDZ%FDPVQMJOHʣ ‣ ར༻ྫ ‣ (BUFLFFQFS,VCFSOFUFTϫʔΫϩʔυͷอޢ ͷͨΊͷ࢓૊Έ ‣ $POGUFTU,VCFSOFUFTϚχϑΣετͷςετ ͷͨΊͷπʔϧ
  20. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  (BUFLFFQFS 0QFO1PMJDZ"HFOUΛݩʹͨ͠γεςϜ package deny_host_network violation[{"msg": msg, "details":

    {}}]{ input.review.object.spec.hostNetwork msg := sprintf("hostNetwork is prohibited", []) } apiVersion: v1 kind: Pod metadata: name: example labels: app: example spec: hostNetwork: true containers: - name: nginx image: nginx ports: - containerPort: 9001 hostPort: 9001 3FHPͰهड़͞ΕͨϙϦγʔ ϙϦγʔʹै͏΂͖,VCFSOFUFT.BOJGFTU $ kubectl apply ...͸ࣦഊ͢Δɻ ະવʹϙϦγʔʹԊΘͳ͍Ϧιʔεͷ ࡞੒Λ๷͙͜ͱ͕Ͱ͖Δ😌
  21. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  (BUFLFFQFS 0QFO1PMJDZ"HFOUΛݩʹͨ͠γεςϜ package deny_host_network violation[{"msg": msg, "details":

    {}}]{ input.review.object.spec.hostNetwork msg := sprintf("hostNetwork is prohibited", []) } apiVersion: v1 kind: Pod metadata: name: example labels: app: example spec: hostNetwork: true containers: - name: nginx image: nginx ports: - containerPort: 9001 hostPort: 9001 3FHPͰهड़͞ΕͨϙϦγʔ ϙϦγʔʹै͏΂͖,VCFSOFUFT.BOJGFTU $ kubectl apply ...͸ࣦഊ͢Δɻ ະવʹϙϦγʔʹԊΘͳ͍Ϧιʔεͷ ࡞੒Λ๷͙͜ͱ͕Ͱ͖Δ😌 ϙϦγʔʹҧ൓ͨ͠هड़͕͋Δ
  22. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  (BUFLFFQFS 0QFO1PMJDZ"HFOUΛݩʹͨ͠γεςϜ package deny_host_network violation[{"msg": msg, "details":

    {}}]{ input.review.object.spec.hostNetwork msg := sprintf("hostNetwork is prohibited", []) } apiVersion: v1 kind: Pod metadata: name: example labels: app: example spec: hostNetwork: true containers: - name: nginx image: nginx ports: - containerPort: 9001 hostPort: 9001 3FHPͰهड़͞ΕͨϙϦγʔ ϙϦγʔʹै͏΂͖,VCFSOFUFT.BOJGFTU $ kubectl apply ...͸ࣦഊ͢Δɻ ະવʹϙϦγʔʹԊΘͳ͍Ϧιʔεͷ ࡞੒Λ๷͙͜ͱ͕Ͱ͖Δ😌
  23. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ‣ )BTIJ$PSQ4FOUJOFM͸1PMJDZBT$PEFͷར఺ΛҎԼͷΑ͏ʹ੔ཧ͍ͯ͠Δ IUUQTEPDTIBTIJDPSQDPNTFOUJOFMDPODFQUTQPMJDZBTDPEF  ‣ 4BOECPYJOH؀ڥͷΨʔυϨʔϧͱͯ͠ϙϦγʔ͕ར༻Ͱ͖ΔΑ͏ʹͳΔ ‣

    $PEJpDBUJPOίʔυԽ͞ΕΔ͜ͱͰϙϦγʔ͕໌֬ʹͳΔ ‣ 7FSTJPO$POUSPMόʔδϣϯ؅ཧͷର৅ʹͳΔ ‣ 5FTUJOHϙϦγʔʹهड़͞Ε͍ͯΔ͜ͱ΋ςετՄೳͳର৅ʹͳΔ ‣ "VUPNBUJPOࣗಈԽπʔϧͰऔΓѻ͑Δର৅ʹͳΔ ‣ 1PMJDZBT$PEF͸ʮηΩϡϦςΟνʔϜͷ஌ݟ΍࢓ࣄΛදݱ͢ΔͨΊͷํ๏ʯ Ͱ͋ΓɺʮηΩϡϦςΟͱ͍͏࢓ࣄͷର৅ԽʯͰ͋Δ 1PMJDZBT$PEF͕΋ͨΒ͢΋ͷ
  24. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ  ‣ %FW4FD0QT΍γϑτϨϑτΛਪਐ͢Δจ຺ͷதʹ͓͍ͯɺηΩϡϦςΟઐ໳Ո ʹٻΊΒΕΔߦಈ͸ɺগͣͭ͠ม༰͖ͯͨ͠ͷͩͱࢥ͏ ‣ ͜ΕΒͷߦಈ͸ࠓͰ΋୭΋͕౰ͨΓલʹ࣮ફͰ͖͍ͯΔΘ͚Ͱ͸ͳ͍ ‣ ͜Ε͸%FW0QT͕͔ͭͯ౰ͨΓલͰͳ͔ͬͨͷͱಉ͜͡ͱ

    ‣ ઌड़ͷΑ͏ʹ4FD%FW0QTΛ༥࿨͢ΔͨΊͷςΫϊϩδͷෆ଍ͳͲ͕ҰҼ ηΩϡϦςΟઐ໳Ոz΁ͷظ଴ͷมԽ ઐ໳Ոͱͯ͠܅ྟ͢Δ ։ൃऀͷԕ͘Ͱಇ͘ ஌ࣝΛϓϩμΫτͷܗͰຽओԽ͢Δ ։ൃऀͱڠಇ͢Δ ։ൃऀͱҧ͏࢓ࣄΛ͢Δ ։ൃऀͱಉ͡ର৅Λѻ͏ ηΩϡϦςΟͷਓ ηΩϡϦςΟΛ ΤϯδχΞϦϯά͢Δਓ
  25. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ XIPBNJ ৄࡉ͸IUUQTTIJGUKTJOGPʹ͋Γ·͢  ‣ ถ಺وࢤ :0/&6$)* 5BLBTIJ 

    ‣ ๺ւಓ۴࿏ࢢग़਎ ‣ גࣜձࣾ'MBUU4FDVSJUZࣥߦ໾һ$50 ‣ ʮ։ൃऀͷͨΊͷɺ։ൃऀʹدΓఴͬͨηΩϡ ϦςΟʯΛୈҰٛͱͯ͠ಇ͍͍ͯ·͢ ‣ ੈͷதͷʢಛʹΠϯϋ΢εͷʣϓϩμΫτνʔ Ϝ͕҆৺ͯ͠ಇ͚ΔੈքΛ࡞Γ͍ͨͰ͢ ‣ ஶॻͳͲ ‣ ʰ8FCϒϥ΢βηΩϡϦςΟʱ ‣ ʰৄղηΩϡϦςΟίϯςετʱ
  26. ˜TIJGUKTJOGP %FWFMPQFS'JSTU4FDVSJUZͱ͍͏ߟ͑ํ XIPBNJ ৄࡉ͸IUUQTTIJGUKTJOGPʹ͋Γ·͢  ‣ ถ಺وࢤ :0/&6$)* 5BLBTIJ 

    ‣ ๺ւಓ۴࿏ࢢग़਎ ‣ גࣜձࣾ'MBUU4FDVSJUZࣥߦ໾һ$50 ‣ ʮ։ൃऀͷͨΊͷɺ։ൃऀʹدΓఴͬͨηΩϡ ϦςΟʯΛୈҰٛͱͯ͠ಇ͍͍ͯ·͢ ‣ ੈͷதͷʢಛʹΠϯϋ΢εͷʣϓϩμΫτνʔ Ϝ͕҆৺ͯ͠ಇ͚ΔੈքΛ࡞Γ͍ͨͰ͢ ‣ ஶॻͳͲ ‣ ʰ8FCϒϥ΢βηΩϡϦςΟʱ ‣ ʰৄղηΩϡϦςΟίϯςετʱ ηΩϡϦςΟͷྗͰ৴པΛͭͳ͛ɺ ΫϦΤΠςΟϒͳࣾձΛ࣮ݱ͢Δɻ CYBER SECURITY PROVIDING ALL SOCIETY TRUST and UNLIMITED CREATIVITY 8FSF)JSJOH