연재 순서

   1. Assembly
   2. Variation study
  3. Expression study
   4. Epigenomics
   5. Genome Annotation
   6. Next Generation Bioinformatics
   7. Data Management for web 2.0 Era
   8. Semantic Network for Integrated Biology Data
   9. Gene Network Discovery by Text-mining
  10. Centralization for High-throughput Data Analysis

A. 반복서열 분석


 핵생물의 유전체 서열 중 반복 서열이 가장 많은 영역을 차지하고 있다. Transposon elements를 포함하여 simple repeat region, low complexity 영역이 전체 유전체의 약 70~ 80% 가량 해당된다. 따라서 반복서열 영역을 우선적으로 선별한 뒤 마스킹 작업을 통해 반복서열 영역에서의 유전자 예측은 예외로 처리한다. 물론, 반복서열 영역 내에도 단백질로 코딩 되는 부분이 존재 하지만, 극히 일부에 해당하기 때문에 추후에 따로 수행한다. 반복서열의 마스킹 작업은 주로 RepeatMasker (http://www.repeatmasker.org/) 분석 프로그램을 이용하여 진행한다. RepeatMasker는 유사성 기반의 검색을 통해 반복서열 데이터베이스에 존재하는 서열과 비교하여 유전체 내에 존재하는 transposon element와 retrotransposon element, rolling circles를 추출하고, TRF(tandem repeat finder)라는 서브 프로그램에 의해 단순반복 서열을 규명한다. 이때 종별로 특이적인 패턴을 가지는 반복서열이 (http://www.girinst.org/) 존재하므로 주기적으로 최신의 반복서열 데이터베이스를 업데이트하여 분석하는 것이 좋다. 2009년 11월 현재 Human을 포함하여 모두 26종에 대한 반복서열 데이터베이스를 제공하고 있으며, 연구자가 원하는 형태의 데이터베이스를 따로 구성하여 사용할 수도 있다. 

B. 유전자 모델링


 단백질로 코딩되는 유전자의 위치를 결정하는 일차적인 단계로 일반적으로 Ab initio 방식과 매핑 방식을 결합하여 사용한다. 이는 수학적 알고리즘을 통해 유전자의 위치를 예측하는 유전자 예측 과정과 실제 시퀀싱하여 밝혀진 mRNA, ESTs, 단백질 서열을 유전체 서열에 매핑하여 유전자 모델을 얻는 과정으로 구성된다.

 B-1. 유전자 예측


 유전자 예측 과정은 대부분 HMM 모델을 이용하여 서열상의 exon과 intron을 예측한다. exon과 intron사이의 ‘GT-AG’라는 splice signal을 인식하고 프로모터 영역과 3’ signal을 인지하는 방식으로 예측을 수행한다. 각 종마다 유전자 모델이 다르므로 정확한 유전자 모델을 설정하고 트레이닝 과정을 통해 종 특이적인 매트릭스를 형성하여 유전자 예측을 수행한다. 이때 예측 프로그램에 따라 연구자가 직접 매트릭스를 생성할 수 있도록 트레이닝을 수행할 수 있는 프로그램을 지원하는 공개용 예측 프로그램(Augustus[4], SNAP[10], GlimmerHMM[7])과 유료로 매트릭스를 구축, 제공하는 유전자 예측 프로그램(Fgenesh[6]), 그리고 주기적으로 업데이트된 매트릭스를 제공하는 프로그램(GeneId[8])으로 구분할 수 있다.  이들 중에서 가장 많이 사용되는 Softberry사의 Fgenesh는 다른 예측 프로그램에 비해서 정확성 및 신뢰성이 높아 국제적인 유전체 프로젝트에서도 이용되고 있다. Fgenesh는 유전자 예측 프로그램에서 가장 핵심이 되는 매트릭스를 제작하여 유료로 서비스하고 있으며, 일반적으로 매트릭스를 제작하는데 약 한 달 정도 분석을 수행한다. 고객은 mRNA, EST, 단백질 서열을 유전체 서열에 매핑 작업을 통해 정확한 유전자 모델을 제공하게 되고, Softberry사에서는 고객이 제공한 데이터와 공개되어 있는 서열을 대상으로 해당 유전체의 대표적인 유전자 모델 집단을 만든 후 매트릭스를 제작하게 된다. 이때, 제작된 매트릭스의 evaluation 자료도 함께 제공한다. 이후 유전자 예측 과정은 리눅스 환경에서 매우 간단하고 빠르게 진행된다. 분석 결과 또한 그림 3에서 보여 지는 것과 같이 유전자별로 TSS(transcription start site), CDS, polyA 등으로 유전체상의 위치 정보와 방향 정보를 알기 쉬운 구조로 제공하고 있다.

사용자 삽입 이미지
그림 3. Fgenesh 분석 결과


공개용 예측 프로그램으로 EBI에서 개발한 GeneId와 고전적인 예측 프로그램인 GenScan, GlimmerHMM과 Augustus 등이 주로 이용된다. 이들 모두 유전자 예측 프로그램의 사용 시에는 간단한 명령어로 유전자 예측을 수행한다. Augustus의 경우 분석 속도가 다른 프로그램들에 비해 느린 단점이 있다. 유전자 예측은 일반적으로 하나의 프로그램만을 사용하지 않고 여러 개의 프로그램을 동시에 사용하여 여러 개의 유전자 예측 모델을 생성한다. 이 후 유전자의 엑손, 인트론 단위로 규정화 되어있는 scoring 방식을 통해 여러 프로그램에서 중복적으로 예측된 유전자 모델을 우선적으로 채택하게 된다. 이러한 scoring 방식은 뒷부분에서 자세히 다루도록 한다.


다음 연재에서는 서열 정보를 이용하여 유전체를 정렬(Genome alignment)하는 방법에 대해 알아보겠습니다. 많은 관심 부탁드립니다.


참고문헌


 1. Lowe, T.M. and Eddy, S.R. (1997) tRNAscan-SE: a program for improved detection of transfer RNA genes in genomic sequence. Nucleic Acids Res. 25, 955-964.
 2. Lewis SE, et al. (2002). Apollo: a sequence annotation editor. Genome Biology. 12, research0082
 3. Noh SJ, Lee K, Paik H, Hur CG. (2006) TISA: tissue-specific alternative splicing in human and mouse genes. DNA Res. 13, 229-243
 4. Stanke M, Schoffmann O, Morgenstern B, Waack S. (2006) Gene prediction in eukaryotes with a generalized hidden Markov model that uses hints from external  
 sources. BMC Bioinformatics. 7, 62. 
 5. Burge, C. and Karlin, S. (1997) Prediction of complete gene structures in human genomic DNA.  J. Mol. Biol.   268,  78-94.
 6. Salamov AA, Solovyev VV. (2000) Ab initio gene finding in Drosophila genomic DNA. Genome Res. 10, 516–522.
 7. Majoros, W.H., Pertea, M., and Salzberg, S.L. TigrScan and GlimmerHMM: two open-source ab initio eukaryotic gene-finders Bioinformatics 20, 2878-2879.
 8. G. Parra, E. Blanco, and R. Guigó, (2000) Geneid in Drosophila Genome Research 4, 511-515.
 9. Haas BJ, Salzberg SL, Zhu W, Pertea M, Allen JE, Orvis J, White O, Buell CR, Wortman JR. (2008) Automated eukaryotic gene structure annotation using  
 EVidenceModeler and the Program to Assemble Spliced Alignments. Genome Biology 9, R7
 10. Korf I. (2004) Gene finding in novel genomes. BMC Bioinformatics. 5, 59.
 11. Kan, Z., Rouchka, E.C., Gish, W., and States, D. 2001, Gene structure prediction and AS analysis using genomically aligned ESTs, Genome Res. 11, 889–900.
 12. Eyras, E., Caccamo, M., Curwen, V., and Clamp, M. 2004, ESTGenes: AS from ESTs in Ensembl, Genome Res. 14, 976–987.
 13. Kent, W.J. 2002, BLAT-The BLAST-Like Alignment Tool, Genome Res. 12, 565–664.
 14. Florea, L., Hartzell, G., Zhang, Z., Rubin, G.M., Miller, W. 1998, Computer program for aligning a cDNA sequence with a genomic DNA sequence, Genome Res. 8,
 967–974.
 15. Huang X, Adams MD, Zhou H, Kerlavage AR. (1997) A tool for analyzing and annotating genomic sequences. Genomics. 46, 37–45.
 16. Wu TD, Watanabe CK. (2005) GMAP: a genomic mapping and alignment program for mRNA and EST sequences. Bioinformatics. 21, 1859–1875.
 17. Birney E, Clamp M, Durbin R. (2004) GeneWise and Genomewise. Genome Res. 14, 988–995.

Posted by 人Co

2010/03/16 10:56 2010/03/16 10:56

연재 순서

   1. Assembly
   2. Variation study
   3. Expression study
   4. Epigenomics
   5. Genome Annotation
   6. Next Generation Bioinformatics
   7. Data Management for web 2.0 Era
   8. Semantic Network for Integrated Biology Data
   9. Gene Network Discovery by Text-mining
  10. Centralization for High-throughput Data Analysis


이번 연재에서는 약 2주에 걸쳐 유전체 내의 유전자 위치와 기능을 해독하는 과정인 Genome Annotation에 대해 연재가 될 예정입니다. 오늘은 Genome Annotation 중에서도 첫번째 단계인 유전체 서열 내에서 유전자의 위치와 구조 정보를 밝혀내는 Structural annotation에 대해 알아보겠습니다.

2-4. Genome Annotation


 2009년 현재 human을 비롯한 mammalian에서 microbial까지 많은 유전체 프로젝트가 완료되었거나 진행되고 있으며, NCBI의 사이트에서 그 내용을 확인할 수 있다. 이렇게 다양한 종에서 완료되었거나 진행 중인 유전체 프로젝트는 NGS 시대를 맞이하여 더욱 가속화 되었다. 유전체 프로젝트는 유전체 서열을 시퀀싱을 통해 추출하는 단계와 유전체 내의 유전자 위치와 기능을 해독하는 단계로 구성된다. 여기서 유전체 내의 유전자 위치와 기능을 해독하는 과정을 genome annotation이라고 정의하며, genome annotation은 세 가지 과정으로 구분할 수 있다. 유전체 내의 유전자에 대한 구조적 정보를 분석하는 structural annotation, 유전자의 기능을 규명하는 functional annotation, 그리고 마지막으로 수학적 알고리즘으로 밝혀지지 않는 부분을 생물학 전문가가 면밀히 분석하는 manual curation 과정으로 구성되어 있다. 이번 장에서는 genome annotation에 대한 세 가지 과정에 대하여 구체적으로 알아보고자 한다.

 2-4-1. Structural annotation

 
 Genome annotation의 첫 번째 단계인 structural annotation은 유전체 서열 내에서 유전자의 위치와 구조 정보를 밝혀내는 것을 목적으로 하여 유전체 서열 전체의 유전자 지도를 완성한다. 유전체 서열에는 실제 단백질을 코딩하는 유전자 영역과 그 외 나머지 영역으로 크게 나눠진다. 그중 유전자는 exon과 intron으로 나눠지고 유전자의 발현을 조절하는 프로모터 영역이 일반적으로 유전자의 앞단에 위치하고 있다(그림 1).

사용자 삽입 이미지
그림 1. Structural annotation.
유전체 내의 유전자의 위치 정보와 상세 구조정보를 규명한다.

 또한 유전체 서열의 상당 부분을 차지하고 있는 반복 서열과 transposon elements 들도 유전체의 다양한 영역에 존재하고 있다. 인간 유전체의 경우 약 30억 쌍의 염기서열 중 실제 단백질로 코딩되는 영역인 엑손 영역은 전체 염기 중 단 1%에 불과하다. 99%의 나머지 서열은 non-cording RNA, intron, repeat, regulation 영역이 대부분 차지하고 있다. 따라서 유전체에서 여러 가지 형태의 서열들에 대한 위치 정보를 다양한 데이터베이스와 알고리즘을 이용하여 분석하고 있으며, 과정은 다음과 같다(그림 2).

사용자 삽입 이미지
그림 2. Structural annotation 워크플로우.
Ab initio 와 유전체 매핑을 결합한 방식.




다음 연재에서는 진핵생물의 유전체 서열 중 가장 많은 영역을 차지하는 반복서열 분석법과 유전자 모델링 중에서 유전자의 위치를 예측하는 유전자 예측에 대해 알아보겠습니다.
많은 관심 부탁드립니다.


참고문헌

 1. Lowe, T.M. and Eddy, S.R. (1997) tRNAscan-SE: a program for improved detection of transfer RNA genes in genomic sequence. Nucleic Acids Res. 25, 955-964.
 2. Lewis SE, et al. (2002). Apollo: a sequence annotation editor. Genome Biology. 12, research0082
 3. Noh SJ, Lee K, Paik H, Hur CG. (2006) TISA: tissue-specific alternative splicing in human and mouse genes. DNA Res. 13, 229-243
 4. Stanke M, Schoffmann O, Morgenstern B, Waack S. (2006) Gene prediction in eukaryotes with a generalized hidden Markov model that uses hints from external  
 sources. BMC Bioinformatics. 7, 62. 
 5. Burge, C. and Karlin, S. (1997) Prediction of complete gene structures in human genomic DNA.  J. Mol. Biol.   268,  78-94.
 6. Salamov AA, Solovyev VV. (2000) Ab initio gene finding in Drosophila genomic DNA. Genome Res. 10, 516–522.
 7. Majoros, W.H., Pertea, M., and Salzberg, S.L. TigrScan and GlimmerHMM: two open-source ab initio eukaryotic gene-finders Bioinformatics 20, 2878-2879.
 8. G. Parra, E. Blanco, and R. Guigó, (2000) Geneid in Drosophila Genome Research 4, 511-515.
 9. Haas BJ, Salzberg SL, Zhu W, Pertea M, Allen JE, Orvis J, White O, Buell CR, Wortman JR. (2008) Automated eukaryotic gene structure annotation using  
 EVidenceModeler and the Program to Assemble Spliced Alignments. Genome Biology 9, R7
 10. Korf I. (2004) Gene finding in novel genomes. BMC Bioinformatics. 5, 59.
 11. Kan, Z., Rouchka, E.C., Gish, W., and States, D. 2001, Gene structure prediction and AS analysis using genomically aligned ESTs, Genome Res. 11, 889–900.
 12. Eyras, E., Caccamo, M., Curwen, V., and Clamp, M. 2004, ESTGenes: AS from ESTs in Ensembl, Genome Res. 14, 976–987.
 13. Kent, W.J. 2002, BLAT-The BLAST-Like Alignment Tool, Genome Res. 12, 565–664.
 14. Florea, L., Hartzell, G., Zhang, Z., Rubin, G.M., Miller, W. 1998, Computer program for aligning a cDNA sequence with a genomic DNA sequence, Genome Res. 8,
 967–974.
 15. Huang X, Adams MD, Zhou H, Kerlavage AR. (1997) A tool for analyzing and annotating genomic sequences. Genomics. 46, 37–45.
 16. Wu TD, Watanabe CK. (2005) GMAP: a genomic mapping and alignment program for mRNA and EST sequences. Bioinformatics. 21, 1859–1875.
 17. Birney E, Clamp M, Durbin R. (2004) GeneWise and Genomewise. Genome Res. 14, 988–995.

Posted by 人Co

2010/03/15 13:34 2010/03/15 13:34

[Quipu Issue Paper] Epigenomics Ⅱ - ChIP-seq

연재 순서

   1. Assembly
   2. Variation study
   3. Expression study
   4. Epigenomics
   5. Genome Annotation
   6. Next Generation Bioinformatics
   7. Data Management for web 2.0 Era
   8. Semantic Network for Integrated Biology Data
   9. Gene Network Discovery by Text-mining
  10. Centralization for High-throughput Data Analysis

이번주 연재에서는 Next Generation Sequencing의 세 번째 Application인 Epigenomics 중에 단백질에 binding된 DNA 서열을 분리하여 NGS 방식의 시퀀싱을 통해 binding site를 동정하는 방법인 CHIP-Seq 분석 방법에 대해 알아보겠습니다.

2-3-2. ChIP-seq


 CHIP(chromatin-immunoprecipitation)은 특정 유전체 영역에 binding 하는 히스톤이나 전사 인자(Transcription Factors, TFs)와 같이 특정 DNA서열에 binding 하는 단백질과 genomic fragments를 분리하기 위해 많이 응용 되어 왔다. 이 기술은 빠르게 발전하여 large-scale의 TF-DNA interactions 혹은 chromatin packaging (histone modification을 통한 genomic DNA와의 packaging) 연구에 중심 기술로 자리 잡았다. CHIP-Seq은 기존의 CHIP-chip에서 보여 지던 해상도의 한계와 chip에 올려 진 프로브에 대한 한계를 극복하는 방법으로 단백질에 binding된 DNA 서열을 분리하여 NGS 방식의 시퀀싱 통해 binding site를 동정하는 방법으로 발전하였다(그림 3). 그 결과 genome wide epigenetic study가 가능하게 되었다.

사용자 삽입 이미지
그림 3. CHIP-Seq을 이용한 단백질 binding site 규명.
Genomic DNA와 특정 단백질의 binding 후 단백질 specific antibody를 이용하여 
분리한다. 이후 단백질을 제거하고 NGS 기술을 이용하여 시퀀싱 한다[5].

 CHIP-seq은 실험적으로 짧은 DNA 절편에 binding하는 특성 때문에 non-specific binding complex의 background 처리가 반드시 필요하다. 이를 해결하기 위해 실험적으로는 antibody 만을 사용한 대조군을 설정하여 비교하는 방법과, 통계학적으로는 주어진 단백질이 주어진 위치에 정확하게 binding 할 확률을 계산하도록 하는 것이다. 이때 genome 전체 서열(g)에 주어진 서열(t)이 정확하게 mapping될 확률은 t/g로 포아송 분포 (poisson distribution) 혹은 negative binomial distribution을 이용하여 추정하게 된다[3].
 이후 consensus binding sequence를 도출하게 되면 이를 데이터베이스로 하여 다른 종의 분석에 이용할 수 있게 된다. 이렇게 TF와 그에 관련된 정보로 전문화 하여 구축된 데이터베이스 중 거의 유일한 곳이 BIOBASETRANSFAC이다(그림4)[6].

사용자 삽입 이미지
그림 4. TRANSFAC.
Transcription factor와 binding site 및 관련
pathway정보를 담고 있는 유일한 TF database.

 TRANSFAC은 genome내의 유전자 upstream 분석에 기초 자료를 제공하여 유전자 조절 메카니즘 분석에 필수적으로 이용되고 있다. 실험적으로 검증된 TF의 정보를 manual curation을 통해 고품질의 데이터를 쌓아가고 있으며, 그간 CHIP-chip 방식의 데이터로 밝혀지던 정보들이 CHIP-seq 방식의 데이터로 전환 되면서 더욱 빠르게 진행되고 있어 이를 이용한 BIOBASE의 데이터베이스 또한 더욱 빠르게 쌓여갈 것으로 예상된다. 뿐만 아니라 이미 human의 경우 모든 유전자의 upstream을 분석하여 binding 가능한 TF를 제공하고 있으며, 이를 이용한 pathway 분석에도 많은 데이터와 분석 프로그램을 제공하고 있다. 그중 TRANSPATH는 affymatrix data를 이용한 발현 분석 시 DEGs의 pathway를 분석하는데 해당 유전자의 upstream에 존재하는 TFs와 관련 pathway를 분석하여 세포내 전체적인 유전자의 기능을 살펴볼 수 있도록 하였다[6].

 이러한 CHIP-Seq은 다양한 플랫폼에서 분석이 가능한 가운데, CLC NGS Cell을 이용하여 assembly를 진행하게 되면 genbank 형식의 ‘.gbk' 파일을 reference로 사용하여 GUI 형태로 유전체 전체의 분포를 확인할 수 있어 데이터 해석의 용이함을 얻을 수 있다(1-2. Assemble 참조). 또한 비슷하게 Illumina의 Genome Analyzer의 경우 ChIP-seq 분석을 통해 얻어진 작은 서열들을 ELAND를 이용하여 유전체에 정렬하게 되고 그 결과는 UCSC genome browser를 통해 유전체 내의 위치와 분포를 확인할 수 있다(그림 5).

사용자 삽입 이미지
그림 5. UCSC genome browser를 통한 TF binding site의 유전체 내 위치 확인.
붉은색으로 정렬된 바는 NGS로 시퀀싱 되어진 reads로
유전체와의 reference assemble를 통해 위치를 확인한다.[4]





다음 연재에서는 약 2주에 걸쳐 유전체 내의 유전자 위치와 기능을 해독하는 과정인 genome annotation에 대해 알아보겠습니다.
많은 관심 부탁드립니다.


참고문헌

 1. Horner DS, Pavesi G, Castrignanò T, De Meo PD, Liuni S, Sammeth M, Picardi E, Pesole G. (2009) Bioinformatics approaches for genomics and post genomics applications of next-generation sequencing. Brief Bioinform. [Epub ahead of print]
 2. Weber M, Schubeler D. (2007) Genomic patterns of DNA methylation: targets and function of an epigenetic mark. Curr Opin Cell Biol. 19, 273-80
 3. Roch 454 : Applications - Epigenetics
 (http://www.454.com/applications/ChIP-seq-methylation-epigenetics.asp)
 4. Illumina : Applications - Gene Regulation and Epigenetic Analysis
 (http://www.illumina.com/applications.ilmn#dna_protein_interaction_analysis_chip_seq)
 5. Appied Biosystems : Applications & Technologies - The SOLiD System
 (http://www3.appliedbiosystems.com/AB_Home/applicationstechnologies/SOLiD-System-Sequencing-A/index.htm)
 6. Kel, A., Voss, N., Jauregui, R., Kel-Margoulis, O. and Wingender, E. (2006) Beyond microarrays: Find key transcription factors controlling signal transduction pathways BMC Bioinformatics. 7, S13



Posted by 人Co

2010/03/12 08:18 2010/03/12 08:18

장고(Django)의 CSRF 웹 취약점 대응

웹(WWW)이 대중화되고 많은 프로그램들이 웹으로 넘어오면서 웹 보안의 중요성은 날이 갈수록 강조되고 있습니다. 웹은 타 인터넷 네트워크 프로토콜에 비해 상대적으로 안전하다고 인식되기 때문에 일반적으로 서비스 포트(80)가 열려있으며 다양한 웹 어플리케이션이 동작하고 서비스됩니다. 그러다보니 웹을 통한 네트워크 취약점 또한 많이 연구되고 있으며, 악의적인 목적을 가진 임의의 공격자 역시 예전의 다양한 네트워크 프로토콜에 관련된 것보다는 직접 웹 어플리케이션의 취약점을 노리는 경우가 많습니다.

따라서, 웹어플리케이션을 구현할 때는 보안에 보다 더 주의해야 합니다. 국제 웹 보안 표준기구인 OWASP에서는 주기적으로 보안 10대 취약점을 발표하는데, 이 내용을 기준으로 자신의 웹 어플리케이션에 취약점이 없는가 점검하는 일은 매우 중요합니다.

OWASP 2007 Top 10 에 의하면 다양한 취약점들이 보고되고 있는데(조만간 2010년 Top 10이 발표될 듯 합니다), 그 가운데 매우 중요한 보안요소임에도 불구하고 많은 부분 신경쓰고 있지 못하는 취약점이 바로 CSRF 취약점입니다.

CSRF(Cross-site Request Forgery, 크로스사이트 요청 위조) 공격은 원클릭 공격, 사이드 재킹, 세션 라이딩 등으로도 알려져 있고, 약어로는 XSRF로도 알려져 있습니다. 이 공격은 사이트가 신뢰하는 사용자를 통해 공격자가 원하는 명령을 사이트로 전송하는 기법을 사용합니다. 공격이 사용자를 통해 이루어지기 때문에 공격자의 IP는 추적 불가능한 특성이 있습니다.

은행사이트를 예를 들자면, 공격자 A는 피해자 B가 접속하는 은행 사이트에 조작된 이미지 태그를 게시판에 남깁니다.
<img src="http://bank.example.com/withdraw?account=B&amount=100000&for=A" />
피해자 B 가 은행사이트에 접속하고 로그인하면 세션 정보가 남아있는 상태이고 이때 공격자 A가 게시판에 남겨놓은 글을 B 가 읽게 되면 해당 링크가 요청되면서 공격이 실행됩니다. 원래는 이미지를 불러오기 위해 지정된 이미지 링크롤 GET 메쏘드로 요청하게 되는데, 피해자 B가 인증되어 있는 상태인점을 이용하여 이렇게 우회공격을 할 수 있게 된 것입니다. 특히 대부분의 게시판들이 자바스크립트는 막아놓지만, 이미지 포스팅은 막지 않는 것도 공격에 유리한 상황을 만들어줍니다.

최근에 발생했던 옥션의 1800만명 개인 정보 유출 사고는 CSRF 공격을 당한 것으로 밝혀졌다고 합니다. 중국 해커는 직접 서버를 공격하는 대신, 옥션 운영진을 대상으로 악성 코드를 첨부한 메일을 대량으로 유포했습니다. 운영자가 메일을 확인한 순간 ID를 얻을 수 있었고, 해커는 이 ID를 이용하여 옥션 서버에 로그인할 수 있었다고 합니다. (용어사전 CSRF의 내용을 일부 인용했습니다.)

이러한 취약점을 막는 가장 기본적인 방법은 서버의 상태를 변경하는 요청에 대해 GET 을 쓰지 않는 것입니다. 하지만 만일의 경우 공격자가 스크립트를 이용하여 POST로 보낼 수 도 있으므로 POST 메쏘드인 경우에도 대비를 해야합니다. 따라서 가장 일반적인 해결 방법은,
 1. 서버의 상태를 변경하는 요청은 GET 을 쓰지 않고,
 2. POST 의 경우에도 hidden 필드에 임의의 키값을 전달하고 그 키값이 맞는가를 매번 확인하는 것입니다.

하지만, 실제 보통의 웹 어플리케이션은 2번의 방비가 되어있지 않습니다. 이는 불특정 사용자가 서버의 상태를 임의로 변경할 수 있는 약점을 가지고 있게 합니다.

장고(Django)에서는 1.2 버전부터 이러한 CSRF 취약점을 막는 기능을 기본으로 제공합니다. 모든 POST 방식의 폼 전송에는 hidden 필드로 세션에 따른 임의 키값을 전송하며, 해당 키 값이 유효한지를 매번 확인합니다.

이를 위해서는
 1. 설정파일(settings.py)에 미들웨어에 django.middleware.csrf.CsrfViewMiddleware를 추가하고,
 2. POST 가 사용된 폼 템플릿에 {% csrf_token %} 을 직접 삽입해야 합니다.
<form action="" method="post">{% csrf_token %}
만일 미들웨어를 쓸 수 없는 경우라면, django.views.decorators.csrf 의 csrf_protect 장식자(decorator)를 쓸 수 도 있습니다.
from django.views.decorators.csrf import csrf_protect
from django.template import RequestContext

@csrf_protect
def my_view(request):
    c = {}
    # ...
    return render_to_response("a_template.html", c,
                               context_instance=RequestContext(request))
특정 뷰에 대해 csrf를 적용하고 싶지 않다면 csrf_exampt 장식자를 사용합니다.
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def my_view(request):
    return HttpResponse('Hello world')
장고 뿐 아니라 최신의 웹 프레임워크 (Ruby on rails, Spring 등)은 모두 CSRF를 위한 별도의 방어 방법들을 제공합니다. 하지만 장고는 별도의 설정없이도 CSRF 대응이 가능하도록 구현되어 웹 초보개발자도 취약점이 존재하는 사이트를 만들 수 있는 여지를 사전에 차단한다는 점이 특징이라고 할 수 있습니다.

인실리코젠 KM팀에서 구현하는 대부분의 웹 어플리케이션은 최신 버전의 장고를 사용하고 있으며, 중요한 보안위험요소들을 주기적으로 검토하고 있습니다.

Posted by 人Co

2010/03/10 17:52 2010/03/10 17:52
, , ,
Response
No Trackback , No Comment
RSS :
https://post-blog.insilicogen.com/blog/rss/response/55

 난 2월 26일(금) Systems Biology 전문 소프트웨어 개발회사인 Ariadne Genomics사에서 Anton Yuryev 박사가 내한하였습니다. Anton Yuryev 박사는 이번 세미나에서 nutrigenomics, toxicogenomics와 biomarker발굴 연구에 응용할 수 있는 Pathway Studio 프로그램의 다양한 분석 활용에 대해 소개해주셨습니다.

 세미나는 26일 하루 동안 서울과 대전 두 곳에서 바쁘게 진행되었습니다. 먼저 오전에 서울대학교 약학대학에서는 서울 근교 지역에서 여러 분들이 참석을 해주셨습니다. 서울대학교 분석약학실의 권성원 교수님의 Anton박사 약력 소개와 이어 (주)인실리코젠의 Codes팀 박준형 팀장님께서 이날 세미나의 취지에 대해 말씀해 주시는 것으로 세미나가 시작되었습니다. Anton박사는 Pathway Studio에 대한 간략한 소개와 skin care에 대한 새로운 idea, 다양한 물질에 대한 toxicity mechanism, drug action mechanism, disease pathway 등 다양한 case study를 Pathway Studio 이용하여 어떻게 분석할 수 있는지에 대해 설명해 주셨습니다.

사용자 삽입 이미지
1시간 30분간의 서울에서의 세미나 일정을 마치고 간단하게 점심을 먹고 대전으로 향했습니다. 점심을 먹는 동안에는 김연아 선수의 프리스케이팅 경기가 있었습니다. Anton Yuryev 박사님께 김연아 선수에 대한 소개도 해드리고 함께 경기를 지켜보았습니다. 김연아 선수의 좋은 성적으로 기분 좋게 대전으로 출발할 수 있었던 것 같습니다.

 전에서는 한국생명공학연구원에서 세미나가 진행되었는데 한국생명공학연구원분들과 KAIST 그리고 멀리 부산에서도 참석하여 함께 자리를 빛내주셨습니다. 세미나에 대한 소개를 시작으로 Anton Yuryev 박사의 세미나가 시작되었습니다. 세미나는 서울에서와 마찬가지로 Pathway Studio에 대한 간략한 소개와 drug epositioning and combination therapy design이라는 주제에 중점을 둔 case study 내용으로 진행되었습니다. 세미나가 끝나고 멀리 있어서 자주 찾아뵙지 못하는 분들과 반갑게 대화를 나누는 시간도 잠시 가졌습니다.

사용자 삽입 이미지
  렇게 26일의 서울과 대전의 바쁜 일정을 마치고 27일(토)에는 Anton Yuryev 박사께서 직접 저희 회사에 방문해 주셔서 내부 세미나를 진행해주시기도 하였습니다. 한층 더 업그레이드된 ResNet Database curator, MedScan 기술, 그리고 Pathway Studio의 API에 대해 Training을 받았습니다. 저희 회사에서 앞으로 Pathway Studio 컨설팅을 하는데 있어서 도움이 될 수 있는 내용에 대해 배우는 중요한 시간이 되었습니다.

사용자 삽입 이미지
  다시 한 번 바쁘신 와중에도 지난 26일(금)에 세미나에 참석해 주신 모든 분들께 진심으로 감사드리며, 이번에 개최된 세미나가 많은 분들께 유익한 시간이 되었기를 바랍니다. 앞으로도 저희 (주)인실리코젠에서는 세미나를 진행함에 있어 부족한 점들을 지속적으로 보완하여 세미나에 참여하시는 모든분들께 보다 새롭고 다양한 정보를 제공할 수 있도록 노력하겠습니다. 발표 내용이나 PathwayStudio에 대한 문의사항이 있으시면 언제든지 대표전화(031-278-0061) 또는 Codes팀(codes@insilicogen.com)으로 문의하여 주십시오.

감사합니다.




Posted by 人Co

2010/03/09 17:46 2010/03/09 17:46



« Previous : 1 : ... 61 : 62 : 63 : 64 : 65 : 66 : 67 : 68 : 69 : ... 75 : Next »