'08년 u-City 공모사업 정보보호 사전진단 종합결과보고서 입니다.

u-City 관련해서 많은 내용들이 포함되어 있어 참고하기 좋은 문서입니다.

다운로드 : http://www.nia.or.kr/Extra/Module/Common/Lib/Attach/DownLoad.aspx?Seq=18163

이전 포스팅에서 AntiXSS에 대해서 설명을 했습니다. (http://teamcrak.tistory.com/190)

라이브러리 사용 방법을 아래 URL에서 동영상과 함께 잘 설명해주고 있습니다.

홈페이지 : http://channel9.msdn.com/posts/Jossie/Using-the-Web-Protection-Library-WPL-CTP-Version/

Anil Revuru (RV), from Microsoft Information Security, walks us through the expansion of what used to be the Anti-XSS Library. This enhanced version of the library will introduce mitigation to other attacks like:
  • SQL Injection
  • Cross-Site Request Forgery (CSRF)
  • Setting Enforcement like SSL & HTTP_ONLY cookies
  • Security Runtime Engine for SQL Injection & XSS
  • Among others
홈페이지 : http://www.gocsi.com/

CSI(Computer Security Institute)에서 매년 컴퓨터 범죄와 보안에 대한 서베이를 발표하는데, 2009년판이네요~
16페이지정도인데 요약본이 아닌 버전(40페이지 정도..)은 구매하래요..


Anti-Cross Site Scripting Library V3.1

웹 어플리케이션 2009. 12. 9. 10:06 Posted by TEAMCR@K

1.Anti-Cross Site Scripting Library 란?
The Microsoft Anti-Cross Site Scripting Library V3.1 (Anti-XSS V3.1) XSS취약점으로부터 ASP.NET기반의 웹 어플리케이션을 대응하는데 사용되는 인코딩 기능을 가지고 있는 라이브러리 이다. XSS 공격들을 대응하는데, 허용되는 패턴과 가능한 패턴들을 정의하여 잠재적인 위험성이 존재하는 패턴들에 대해서 인코딩된 결과 값으로 표시한다.


2.적용 방법
Step1. 출력값이 생성되는 ASP.NET 코드를 검사

XSS(Cross Site Scripting) 취약점은 출력물의 결과값에 따라서 발생한다. 그렇기 때문에 출력문을 처음 검사를 해야 한다. .NET 환경에서 일반적으로 사용되는 패턴은 “Response.Write” 와 “<%=” 이다.


Step2. 신뢰하지 않는 입력값이 결과값에 포함이 되어 있는지 결정

신뢰하지 않는 입력값이 아래와 같은 변수에 사용되었는지 판단한다.

 Application variables

 Cookies

 Databases

 Form fields

 Query String variables

 Session variables


Step3. Encoding 메소드 사용할지 결정

아래 메소드 표를 참고하여 신뢰하지 않는 입력값에 따라서 메소드를 선택한다. 예를 들면 HTML 속성에 값이 입력 되었다면, Microsoft.Security.Application. HtmlAttributeEncode 메소드를 사용하고, Javascript 안에 값이 입력 된다면, Microsoft.Security.Application.JavaScriptEncode 메소드를 사용한다.

   // 취약한 소스 예제
  // HTML 속성값에 신뢰하지 않는 값이 입력될 경우
  Literal1.Text = ”<hr size='[untrusted input here]'></hr>”;

  // 수정된 소스 예제
  Literal1.Text = ”<hr size='+Microsoft.Security.Application.AntiXss.HtmlAttributeEncode([untrusted input here])+'></hr>”;



다음은 Encoding 메소드 사용시 관련된 내용 및 패턴 예제입니다.

 Encoding 메소드  관련 내용  패턴 예제
 HtmlEncode(String)  HTML 속성 이외에 신뢰하지 않는 입력값이 HTML출력에 사용할  <a href=”http://www.contoso.com”>Click Here [Untrusted input]</a>
 HtmlAttributeEncode(String)  신뢰하지 않는 입력값이 HTML 속성에 사용할  <hr noshade size=[Untrusted input]>
 JavaScriptEncode(String)  신뢰하지 않는 입력값이 Javascript 문에 사용할  

<script type=”text/javascript”>

[Untrusted input]

</script>
 UrlEncode(String)  신뢰하지 않는 입력값이 URL 사용할 <a href=”http://search.msn.com/results.aspx?q=[Untrusted input]”>Click Here!</a>
 VisualBasicScriptEncode(String)  신뢰하지 않는 입력값이 VBScript 문에 사용할  <script type=”text/vbscript” language=”vbscript”>

[Untrusted input]

</script>
 XmlEncode(String)  XML 속성 이외에 신뢰하지 않는 입력값이 XML출력에 사용할시  <xml_tag>[Untrusted input]</xml_tag>
 XmlAttributeEncode(String)  신뢰하지 않는 입력값이 XML 속성에 사용할  <xml_tag attribute=[Untrusted input]>Some Text</xml_tag>


Step4. 출력값 인코딩 구현

출력값에 인코딩을 적용할 시에 주의할 점이 두개 있다.
1) 출력물에는 한번만 구현 해야 한다.
2) 아래 예제와 같이 입력값을 저장하는 변수에 구현하는 것이 아니라, 실제 출력되는 부분에 구현하라.


// 잘못 구현한 예제
  protected void Button1_Click(object sender, EventArgs e)
  {
    // Read input
    String Input = TextBox1.Text;
    // Encode untrusted input
    Input = Microsoft.Security.Application.AntiXss.HtmlEncode(Input);
   
    // Process input
    ...
   
    // Write Output
    Response.Write(”The input you gave was” + Input );

   
  }

  // 잘 구현한 예제
  protected void Button1_Click(object sender, EventArgs e)
  {
    // Read input
    String Input = TextBox1.Text;

    // Process input
    ...
   
    // Encode untrusted input and write output
    Response.Write(”The input you gave was” + Microsoft.Security.Application.AntiXss.HtmlEncode(Input));

   
  }

 




상세내역을 보실려면 아래 "더보기"로 펼치시면 됩니다.



3.참고 자료
가. MSDN 블로그
http://blogs.msdn.com/sdl/archive/2009/09/23/new-and-improved-antixss-3-1-now-with-sanitization.aspx

나. MSDN 다운로드 페이지
http://www.microsoft.com/downloads/thankyou.aspx?familyId=051ee83c-5ccf-48ed-8463-02f56a6bfc09&displayLang=en

본 내용은 MSDN 을 참고하여 내용을 번역 및 추가하였습니다.

DLL 파일 다운로드 사이트

(무선)네트워크 2009. 12. 8. 14:44 Posted by TEAMCR@K
DLL 파일이 잘못되었거나 존재하지 않아서 실행 안되는 프로그램이 있습니다.

해당 사이트에서 검색해서 관련 DLL 파일을 검색할 수 있습니다.

http://www.dll-files.com/