ãã®è¨äºã¯Linux Advent Calendar 2014ã®25æ¥ç®ã§ãã½(=´â½`=)ï¾ ä»åã¯Linux Kernel Hackå ¥éç·¨ã¨ãããã¨ã§å ¥éçãªãã¨ãæ¸ãã¦ã¿ããã¨æãã¾ãã ã¾ã使ç¨ããç°å¢ã§ããã©æè¿åºãã°ã£ãã®Fedora 21ã®Workstationã«ãã¾ãããã¾ããä»åã®å 容çã«ã¯ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã¯åããªããã§ãããå¤ãã®äººã馴æãã§ããã§ãããfedoraç³»ã¨ãããããã±ã¼ã¸ããã¼ã¸ã£ãyumã¨ãããã¨ã§ããã«ãã¦ã¿ã¾ããããèªåã¯æ®æ®µArch Linuxãªãã§ããã©ããã£ã¡ã ã¨kernelã®make installæã«ã¡ãã£ã¨ããã¹ã¯ãªãããæ¸ãå¿ è¦ããã£ããããã®ããã£ã¦ãfedoraã®ã»ããæ軽ããªã¨ããã®ãããã¾ãã ã«ã¼ãã«ã³ã¼ãã»ãªã¼ãã£ã³ã° ãã©ã¦ã¶ãã¼ã¹ã§ã³ã¼ãã»ãªã¼ãã£ã³ã° èªããã½ã¼ã¹ã¯å¤§æ¦ã¡ã¤ã³ã©ã¤ã³ã®ã«ã¼ãã«ã¨ãããã¨ã«ãªãã¾ãã
2. Open Cloud Campus 2 Linux女åé¨ Dockerãæ¯ããæè¡ èªå·±ç´¹ä» ï§ ä¸äºæ¦å¸ï¼ãªãããã¤ãï¼ â Twitter @enakai00 ï§ æ¥ã ã®ä»äº â Senior Solution Architect and Cloud Evangelist at Red Hat K.K. ä¼æ¥ã·ã¹ãã ã§ãªã¼ãã³ã½ã¼ã¹ã®æ´»ç¨ãå¸æããã ã客æ§ãå ¨åã§ãæ¯æ´ããã¦ããã ãã¾ãã ï§ æã¨ã£ãæµæ â ç´ ç²åè«ã®ç 究ï¼è¶ 弦çè«ã¨ãï¼ â äºåæ ¡è¬å¸«ï¼ç©çæ å½ï¼ â ã¤ã³ãã©ã¨ã³ã¸ãã¢ï¼Unix/Linuxå°éï¼ å¥½è©çºå£²ä¸ï¼ 3. Open Cloud Campus 3 Linux女åé¨ Dockerãæ¯ããæè¡ Contents ï§ Linuxã³ã³ãã ï§ Device Mapper Thin-Provisioning ï§ Network Namespace ï§ s
è¬ç¾©ãã¼ãã®ç®æ¬¡ã¸ æ å ±ç§å¦ã®ä¸åéã§ãããæ å ±çè«ãï¼Information Theoryï¼ã®è¬ç¾©ãã¼ãã åå¼·ãããããã®ãéããã æ å ±çè«ã®ããã¹ãã«ã¯ï¼æå·ã«éç¹ããããç©ã¨ï¼ç¬¦å·çè«ï¼Coding Theoryï¼ããå§ããç©ã®ï¼ã¿ã¤ããåå¨ããã ããã«è¨ãã°ï¼ç¬¦å·çè«ãï¼ãã¼ã¿å§ç¸®ã¨èª¤ãè¨æ£ã®ï¼ã¤ã«å¤§å¥ãããã ããã§ã¯ä¸è¨ã®ããã«åé¡ããã ï¼ï¼ï¼æå·ã¨ï¼æå·çè«ã«å¿ è¦ãªæ°å¦ã è¦ç¹ï¼åçæ´æ°è«ï¼ç´ æ°ã«é¢é£ããã¢ã«ã´ãªãºã ï¼æéä½ï¼å ¬ééµæå·ï¼ã¨ã«ã¬ãã«æå·ï¼ã¼ãç¥è証æã ï¼ï¼ï¼æ å ±ã®ãã¸ã¿ã«ç¬¦å·åããã¼ãã«ãããæ å ±çè«ã è¦ç¹ï¼ã·ã£ãã³ã®æ å ±çè«ãã¨ã³ãããã¼ã¨æ å ±éï¼å§ç¸®ï¼éä¿¡è·¯ã®ç¬¦å·åï¼èª¤ãè¨æ£ãååãè¡åãªã©ï¼ç·å½¢ä»£æ°ã使ã£ã¦è¡¨ç¾ãããã¨ãå¤ããåºç¾©ã§ã¯æå·çè«ãå«ãã ãããã®äºé ãç¬å¦ããããã®è³æã â»ããæ°å¦ãè¦æã ã£ããï¼æå·ã ãããããããå ´åï¼ãã¡
ãªã¼ãã³ã½ã¼ã¹ã¨é¢æ°åè¨èªã«ãã ããã°ã©ã 解æ㨠ã«ãã¬ãã¸ãã¹ãèªåå®è¡ æéä¼ç¤¾ITãã©ã³ãã³ã° ä»äº æ¬å¾ 1 第12åçµã¿è¾¼ã¿ã·ã¹ãã æè¡ã«é¢ãããµãã¼ã¯ã¼ã¯ã·ã§ãã @ ããã«æ¥èªè±æ© ãã¹ãææ³ 2ã¤ã®ã¢ããã¼ã ãã©ãã¯ããã¯ã¹ãã¹ã ããã°ã©ã ã®å ¥åºåã«çç® å°ºåº¦ï¼ãå¤é¨ä»æ§éãã«å ¥åºåããããã㨠ãã¯ã¤ãããã¯ã¹ãã¹ã ããã°ã©ã ã®å é¨æ§é ã«çç® å°ºåº¦ï¼ãããã°ã©ã ã®å ¨é¨ãéããã㨠e.g. å½ä»¤ã«ãã¬ãã¸ãåå²ã«ãã¬ãã¸ããã¹ã«ãã¬ã㸠課é¡ï¼ èªååã«ããã³ã¹ãä½æ¸ ç¶²ç¾ æ§ã®åä¸ 2 ãã¹ãã±ã¼ã¹ã®èªåçæåé¡ ãã©ãã¯ããã¯ã¹ãã¹ãï¼ âæ¯è¼çå¹³æã«å®è£ å¯è½ å¤é¨ä»æ§ããã¼ã«å ¥åå¯è½ãªå½¢ã§æºåããå¿ è¦ãã ãã¯ã¤ãããã¯ã¹ãã¹ãï¼ âã½ã¼ã¹ã³ã¼ãããçæå¯è½ é«åº¦ãªããã°ã©ã 解ææè¡ãå¿ è¦ æ°å¦çã«èªåçæå°é£ãªå ´åã (eg. ããã·ã¥é¢æ°) æè¿ã®ãã¼ã«
ãããããªããã¸ã§ã¯ããæ©ã渡ã£ã¦æ¥ããç¸å¯¾ããã³ã¼ããæ§ã ã æ©è½åå²ããã¾ãã§ãã¦ããã®ãç解ãããããææ¬ã«ãªããããªãã®ãããå¿æ¥å¦çç㪠ã¤ãã¯ãã ãããã®ãæé·ä¸åé¢æ°ãéãã«ä¸ãè¡ããããªã¨ãã§ãã³ã¼ãã¾ã§ã ããã¯ãã®ããã¸ã§ã¯ãã®ã³ã¼ãã®æ¹ãã¾ã¨ãã ãªã¨æã£ã¦ãããã¨ããã¯çä¼¼ãã¦ããã æªããã®ã¯ãã§ãããã®ã¯ãªãã¡ã¯ã¿ãªã³ã°ããããããã¨ããããã©ããããããå ã®ã³ã¼ãã ç解ä¸è½ãªå ´åã¯ã©ããã¦ã塩漬ãã®ã¾ã¾ã¨ãªãã ããã¦ãèªåã®ã¨ãããããã¯ã»ã»ã»ã¨æ¸ãã¦ããã¤ããã ããããæªã ã«ãç¾ãããã¨è¨ããã絶対çãªã³ã¼ãã«ã¯åºä¼ã£ããã¨ããªãã 幸ãã®éãé³¥ã追ãæ±ãã¦ããã®ã ãããã OSSãªããææ¬ã¨ãã¦ã©ããªãã®ãããã ããã¨æã£ã¦æ¢ãã¦ã¿ãã以ä¸ã®è¨äºãè¦ã¤ãã£ãã Aaron Swartzæ°ãã¿ããªããããD.J. Bernsteinãä¸çå²ä¸æé«ã®ããã°
ä¸çåã®çµã¿è¾¼ã¿ã¹ã¼ãã¼ã³ã³ãã¥ã¼ã¿ã¼ NVIDIA Jetson TK1 éçºãããã¯ãGPUã®ãã¯ã¼ãçµã¿è¾¼ã¿ã¢ããªã±ã¼ã·ã§ã³ç¨ã«éçºããã®ã«å¿ è¦ãªãã®ããã¹ã¦æä¾ãã¾ããé©å½ç㪠NVIDIA® Tegra® K1 SOCãæè¼ãããä¸çä¸ã®ã¹ã¼ãã¼ã³ã³ãã¥ã¼ã¿ã¼ã«ãæ¡ç¨ããã¦ããNVIDIA Keplerâ¢ã³ã³ãã¥ã¼ãã£ã³ã°ã³ã¢ã¨åä¸ã®ãã®ã§ããããã«ããããã«ãã¡ã³ã¯ã·ã§ã³ãªNVIDIA CUDA® ãã©ãããã©ã¼ã ãå®ç¾ãããã®ã§ãã³ã³ãã¥ã¼ã¿ãã¸ã§ã³ãããããå·¥å¦ãè¬åãå»å¦ç¨ã®æ°å¤è¨ç®ã·ã¹ãã ãç´ æ©ãéçºãå±éãããã¨ãå¯è½ã«ãªãã¾ãã NVIDIA ã§ã¯ãCUDAã OpenGL 4.4ãNVIDIA VisionWorks ãã¼ã«ããã㪠ã©ãå«ããBSPã¨ã½ããã¦ã§ã¢ã¹ã¿ãã¯ãæä¾ãã¦ãã¾ããéçºã¨ãããã¡ã¤ãªã³ã°ç¨ãã¼ã«ã®å®çµããã½ããã¦ã§ã¢ã¹ã¤ã¼ããããã«ã¯ãã®ã¾
sum = 0; do { nread = read(0, addr, n-sum); if (nread != -1) sum += nread; } while (sum < n); As you may see, this implementation is weird because using read(0, addr, n-sum) instead of read(0, addr+sum, n-sum). Therefore, it is possible to do Partial Overwrite by splitting input into several. @wapiflapi, a great hacker in France shares the exploit using this method(http://hastebin.com/iyinepaxen.p
http://dev.gentoo.org/~dberkholz/articles/toolchain/tls.pdf ãèªã¿ã¾ããã TLS ã®å®è£ ã¯ãã£ããè¨ãã¨å¸¸ã« TLS 管çé åãæãã¦ãã¬ã¸ã¹ã¿ãä¸åä½ã£ã¦ã¦ããããã¹ã¬ãããã¨ã«å¥ã®å¤ã«ããã ãã 86 ã§ã¯ã»ã°ã¡ã³ãã¬ã¸ã¹ã¿ã使ããã¦ãâ¦ãããã®ãã£ã¨ããç解ã¯ã¾ãä¸è¬çã«ããã¨æããã§ãããç´°ããå®è£ ã¨ãªãã¨ãªããªãé£ãããééã£ã¦ãã¨ãããããã§ãããªããæ¸ãã¦ã¿ã¾ãã TLS ã¯ã¾ããæ¬å½ã«å ¨ã¹ã¬ããã使ãã®? ã£ã¦è©±ãããã®ã§ãã¡ã¢ãªå¹çãèããã¨é 延ãã¼ããããæ¹ãããããã é 延ãã¼ãããã¨ãªãã¨ã©ããã¦ãé¢æ°å¼ã³åºãã¨ãããããã§ãæåã«ç¢ºä¿ãã¦ãããæã®ã³ã¼ãããã©ããã£ã¦ãé ããªãã PLT ã¿ããã«é¢æ°ã®å¼ã³åºããã©ã£ã¡ã«ããèµ·ãããããªã±ã¼ã¹ã¨ã¯éã£ã¦ã CPU ã¨ã¡ã¢ãªã®ãã¬ã¼ããªããããã åºæ¬çã«ã¯
ã¹ã¬ããã¯ã°ãã¼ãã«ã¯å¤æ°ã¯å ±æãã¾ããããã«ãã¹ã¬ããã¢ããªã±ã¼ã·ã§ã³ã«ããã¦ãã¹ã¬ããåºæã®ãã¼ã¿ãä¿æãããå ´åãããã¾ãããããå®ç¾ããã®ããã¹ã¬ãããã¼ã«ã«ã¹ãã¬ã¼ã¸(TLS)ã§ãã func()ã2ã¤ã®ã¹ã¬ããã¨ãã¦ä½æãã¾ããããã§ã¯ã__thread int aã¨int bãã¤ã³ã¯ãªã¡ã³ãããå¤ã表示ãã¦ãã¾ããæåã®ã¹ã¬ããã§ã¯a = 1 b=1ã次ã®ã¹ã¬ããã§ã¯a = 1 b=2ã¨ãªã£ã¦ãã¾ããint aã¨ãããªãa=2ãªãã¨ããã§ããããªãã¡__thread int aã¯ã¹ã¬ããåºæã®å¤æ°ã¨ããããã§ãã #include <stdio.h> #include <pthread.h> __thread int a = 0; int b = 0; void *func(void *arg) { a++; b++; printf("a = %d b=%d\n", a, b
David A Rusling [email protected] January 25, 1999 JF Projectv0.8-3 December 2000 *ãã¬ã¼ã 表示* æ¬æ¸ã¯ãLinux ã«ã¼ãã«ã®ä»çµã¿ãç¥ããã Linux æ好家ã®ããã®ãã®ã§ãããã㯠å é¨æ§é ã®ããã¥ã¢ã«ã§ã¯ããã¾ãããããã Linux ã§ä½¿ç¨ããã¦ããåçã ã¡ã«ããºã ã解説ãããã®ã§ãããLinux ã®åä½åçã¨ã¯ã©ããããã®ã§ããªããã ãæ¡ç¨ããã¦ããã®ãã説æãããã®ã§ãã Linux ã¨ãã対象ã¯å¸¸ã«å¤åãã¦ãã¾ããæ¬æ¸ããã¼ã¹ã«ãã¦ããã®ã¯ç¾å¨ã®å®å® çã§ãã 2.0.33 ã®ã«ã¼ãã«ã½ã¼ã¹ã§ãããããã¯å人ãæ³äººã®å¤§é¨åã§ä½¿ç¨ãã㦠ããã®ããã®ãã¼ã¸ã§ã³ã ããã§ãã ã¾ããæ¬æ¸ã¯èªç±ã«é å¸ãã¦ããã£ã¦ãã¾ããªãã®ã§ãä¸å®ã®æ¡ä»¶ã®ãã¨ã«ã§ã¯ãã ã¾ãããè¤è£½ãåé
CERT C ã³ã¼ãã£ã³ã°ã¹ã¿ã³ãã¼ã æ¥æ¬èªç¿»è¨³çã³ã¼ãã£ã³ã°ã¹ã¿ã³ãã¼ãã®ãå©ç¨æ¡ä»¶ï¼èä½æ¨©ã»å 責äºé 00. ã¯ããã« 01. ããªããã»ããµ (PRE) 02. 宣è¨ã¨åæå (DCL) 03. å¼ (EXP) 04. æ´æ° (INT) 05. æµ®åå°æ°ç¹ (FLP) 06. é å (ARR) 07. æåã¨æåå (STR) 08. ã¡ã¢ãªç®¡ç (MEM) 09. å ¥åºå (FIO) 10. ç°å¢ (ENV) 11. ã·ã°ãã« (SIG) 12. ã¨ã©ã¼å¦ç (ERR) 13. Application Programming Interface (API) 14. 並è¡æ§ (CON) 49. éå (MSC) 50. POSIX (POS) AA. åèæ å ± BB. Definitions CC. æªå®ç¾©ã®åä½ DD. æªè¦å®ã®åä½ XX. ãåãåãã 00ã¯ããã« ãã®ãã¼ã¸
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}