バグハンティングサイバーセキュリティへのデビューと品質コードを書く


  • バグは何ですか?
  • ソフトウェアのバグは、予期しない結果を生成したり、破壊的なファッションで動作するようにコンピュータプログラムのエラーです.
    バグが非常に無実の欠陥、不注意な誤りがあることがありえるかもしれないが、コードベースの大きい論理的エラーのために、それがまだexploitより大きい指数関数的に大きいことがありえます.

    eg. a small rounding error in the calculation of an orbit of a satellite can cause major financial damages with many other implications like space pollution.


    したがって、すべての開発者は基本的なサイバーセキュリティプラクティスを認識する必要があります!
  • あなたのコードのバグの数を減らす方法?
  • あなたのプロジェクトに構造をもたらすことは非常に役立つことができます、この構造はあなたのコードを整理することによってもたらされることができます、しかし、あなたのプロジェクトで、そして、あなたのチームの間でより重要に.
    これを達成するためにSDLCパイプラインを使用できます.
    1)計画
    プロジェクトについての基本的な計画を構築し、プロジェクトのすべての機能がカバーされ、プロジェクトに取り組んでいるさまざまなチームや人々の間に誤解はありません.
    こうすることができるいくつかのことは、Cakewalkがあなたのアプリケーションの大まかな流れをするためにLucidchartのようなツールを利用することです.また、開発のこの段階でクライアントからのアドバイスを含めることができます!
    Jiraのようなツールは、仕事を代表して、ものの上にいておくことができます!
    2 )分析
    あなたのアプリケーションの基本的な流れとあなたのチームとクライアントからのいろいろな入力をしたあと、あなたは正確にプロジェクトで確立する必要があるものの非常に良い理解があります.これは、技術のスタックとプロジェクトの複雑さを把握するのに適切な時期です.
    3)設計
    プロジェクトのこの段階では、UI/UX、Authflow等を含むアプリケーションのプロトタイプを持つことで、アプリケーションのワイヤフレームを作成することから始めなければなりません.
    Figmaのようなこのツールのためのlifesaverすることができます!
    4 )ビルド
    これは、作業の主要な部分が行われ、プロジェクトの基盤がレイアウトされている部分ですので、コードをデバッグして維持するのが簡単になるようにエレガントなコードを書くことが不可欠です.
    JavaScript/TypesScriptベースのプロジェクトのためのeslinthuskyなどの開発ツールを使用することができますが、そのようなツールは、ほとんどすべてのアーキテクチャ、言語またはフレームワークのために存在することができます.
    5 )テスト
    これは、アプリケーションのサイバーセキュリティの側面に関する非常に重要なステップです.アプリケーションのテストは、JavaScript等のMochaのような複数のテストフレームワークを使用して、単体テストのような複数のテストパラダイムを使用して行うことができます!
    異なるテストパラダイムについて読む良いリソースは、here.
    また、顧客/クライアントからの入力を取ることも深く役立つことができる、これはベータテストプログラムを介して行うことができます.
    展開
    それは、アプリケーションが配備される方法のように見えないかもしれませんが、アプリケーションのセキュリティに根本的な影響を及ぼすことができます.コンテナの中でサンドボックスされているか、SSL/TLS証明書を持っているか、ロードバランサを持つことのような側面は、それが最も重要であるとき、あなたのアプリケーションを作るか、壊すことができます.ので、確実かつ確実にあなたのアプリケーションを展開するようにしてください!

    Beware this is the stage where Project Secrets are leaked the most!


    維持管理
    プロジェクトがパブリックドメインに起動されると、定期的なメンテナンスは、少なくとも言う必要があります.
    ユーザーがWinstonのようなuse loggersを作ることによってあなたのアプリケーションとどのように相互作用しているかに注目しなければなりません.
    TrivyとDependabotアラートのようなツールの使用は、アプリケーションのピア依存関係における脆弱性の流入を避けるために、オートメーションスクリプトとバージョンコントロールと組み合わせて使用することができます.
    それはあなたのプロジェクトのインフラストラクチャを傷つけるよりもむしろあなたにそれを報告するために脆弱性を見つける人々にインセンティブを与えるように提供するバグの恩恵は、災害を回避することができます.

    However the above might seem trivial and not closely related to Cybersecurity, believe me it would lead to you avoiding having silly bugs in your code in the first place and make your life way easier in the future.


    アプリケーションのバグを見つける

  • 1)テストのための非常に一般的な方法は、BeVigil、携帯電話のアプリの脆弱性発見ツールのような自動テストツールを使用することです!そのようなツールでは、秘密のキーリークを見つけるのに役立つことができますし、ボタンをクリックしてはるかに.多くの努力がなければ、作業と存在する可能性がありますバグに洞察力を得ることができます.
    2)コードの所有権は、コードをテストできる環境を決定します.

  • Whitebox -ホワイトボックスの環境では、CodeBase全体とアプリケーションのロジックの動作の明確な理解へのアクセスがあります.一般に、そのような環境でバグを見つけることは簡単です.

  • ブラックボックス- Blackbox環境では、エンドユーザーが直面しているアプリケーションに直面しており、アプリケーションの内部作業についてすべての
  • に注意していません

  • グレイボックス-灰色のボックスでは、一部またはアプリケーションの内部の作業についてのあいまいなアイデアを持っている.
  • 3)複数のCTF(キャプチャフラグ)に参加している私の経験から、コード内のすべてのものに注意する必要があるバグを見つけるためには、コードの少しの罪のない探している部分が問題の最大の原因となる可能性があります.また、より多くのアプリケーションを開発し、あなたの知識を広げるように、それはあなたが他の人が彼らのプログラムを開発するために明らかな選択として使用している可能性があります推測することによってバグを見つけることが容易になります.常にあなたのインクを信頼!
    ここでは非常に一般的なバグの例を示します.

    Many applications make use of structured databases for the operation of an authentication systems, search fields etc. A vulnerability called SQL Injection can quite commonly be found in such applications


    この24679152を訪問するに従ってください.我々は今日の最初のバグを見つけるつもりです!
    あなたがリンクを訪問するとき、あなたはこのようなもので迎えられなければなりません
    link
    私たちは初心者なので、私たちのために行くいくつかのヒントを得た!🤩
    それの外観から、アプリは入力を与える検索プログラムのように動作し、結果の出力は入力に基づいて生成されます.
    我々が我々のヒントを見るならば、それは言います
    SELECT * FROM webfour.webfour where name = '$input'
    
    SQLを知っていない人々でさえ、単に英語としてコードを読んで、タグを付けることができます.
    つまり、WebFourから選択します.WebFOX (データベーステーブル)
    したがって、入力フィールドに書くものは、$inputの代わりに書きます
    それで、我々が線に沿って何かを書くならば
    foobar' OR '1'='1
    
    結果のクエリは
    SELECT * FROM webfour.webfour where name = 'foobar' OR '1'='1'
    
    それで、我々は基本的に条件が常に真実であるデータベースからすべてを選ぶと言います.
    したがって、データベースのすべてのエントリを取得する

    これは私の友人は、データベースのリークと呼ばれています!
  • 私たちがバグを見つけた今、我々はそれを報告する方法を学びます
  • ドス
  • は、242479182のバグを説明するためにシンプルで明確な言語を使用します
  • は、242479182のバグを観察するのに必要な特権を言及します
  • は、要求と応答フロー
  • でバグを再現する方法を説明します
  • は、242479182のバグの影響を記述します
  • エビデンス(スクリーンショット、ビデオなど)
  • ナイスで支持的な
  • が存在するならば、類似したバグ報告/問題をリンクします
  • バグに遭遇した環境の一覧を表示します.
    ドント
  • は、バグを報告しないでください!あなたがバグを見つけるならば、それを報告することを確認してください.それはあなたに影響を受けるアプリケーションの所有者と一般に一般的にすることができます.
  • は、あなたのレポート
  • の非常にパリッとした、aptタイトルを持ちます
  • メール/ツイートの代わりにJIRAのようなチャンネルを使用してください
    あなたがレポートを書いているとき、それはあなたのレポートがトリアージプロセスを介して開発者に到達する方法を知っているために有益です.

    これは、より良いレポートを書いて、あなたが値するバグ賞金を得るのを助けることができます.🤠
    サンプルのバグレポートは次のようになります.
    Bug Name: Application crashes upon clicking the SAVE button while creating a new user.
    Area Path: USERS menu -> New Users
    Build Number: Version Number 5.0.1
    Severity: HIGH (High/Medium/Low) or 1
    Priority: HIGH (High/Medium/Low) or 1
    Assigned to: Developer-X
    Reported By: Your Name
    Reported On: Date
    Reason: Defect
    Status: New/Open/Active (Depends on the Tool you are using)
    Environment: Windows 2003/SQL Server 2005
    
    Description: Application crashes upon clicking the SAVE button while creating a new the user, hence unable to create a new user in the application.
    
    Steps to Reproduce:
    
    1) Login into the Application.
    2) Navigate to the Users Menu -> New User
    3) Filled out all the user information fields.
    4) Clicked on the ‘Save’ button.
    5) Seen an error page “ORA1090 Exception: Insert values Error…”
    6) See the attached logs for more information (Attach more logs related to the bug if any)
    7) Also see the attached screenshot of the error page.
    
    Expected Result: On clicking the SAVE button, you should be prompted to a successful message “New User has been created successfully”.
    
    (Attach ‘application crash’ screenshot. IF any)
    
    私は、ポストが少し長くあったかもしれないということを知っています✌.
    リソース
    以下のワークショップは、